subtree updates

meta-raspberrypi: 90b3ac6fb3..836755370f:
  Alexandru Costache (3):
        conf/machine: Add Pi Zero 2 Wifi 64bit yocto machine
        linux-firmware-rpidistro: Package bcm43436 and bcm43436s firmware
        linux-raspberrypi: Bump to 5.10.78

  Andrei Gherzan (14):
        raspberrypi-firmware: Bump to 20211007
        linux-raspberrypi: Bump 5.10 to 5.10.76
        linux-raspberrypi: Drop 5.4
        README.md: Fix docs and minor tweaks
        docs: Bump copyright year
        README.md: Fix sponsor table
        README.md: Fix sponsor table take two
        docs: Fix RtD build
        docs: Add module dependency/requirement for RtD
        docs: Advertise raspberrypi0-2w-64 supported machine
        Update references to Yocto mailing list
        README.md: Fix the matrix chat link
        libwpe: Migrate build workaround from oe-core
        rpi-config: Take into consideration ENABLE_UART value of 0

  Cameron Kellough (1):
        rpi-base.inc: Added gpio-poweroff overlay. Some machines need to have the kernel toggle a gpio when an external power source needs to shut off power to complete a shutdown and de-energize the processor.  gpio-poweroff provides this functionality but was omitted from the kernel overlays brought oveer by the rpi-layer from the kernel. Signed-off-by: Cameron Kellough <cameron@telemetrak.com>

  Joel Winarske (1):
        mesa: Enable building vulkan driver

  Khem Raj (4):
        linux-firmware-rpidistro: Use bullseye branch
        parselogs: Update the error regexps to 5.10 kernel
        linux-raspberrypi: Upgrade to 5.10.81
        weston-init: Add --continue-without-input option to weston

  Marcel Hamer (1):
        recipes: Update SRC_URI protocols for github

  Martin Jansa (1):
        rpi-config: don't trigger bbfatal for empty ENABLE_UART

  Peter A. Bigot (1):
        conf/machine: add variant Wi-Fi/BT drivers for CM4 and Pi 400

meta-openembedded: 2f6797d8d6..6b63095946:
  Alex Kiernan (2):
        ntpsec: Add recipe
        ntpsec: Add glibc-2.34/kernel-5.14 seccomp fixes

  Alexander Kanavin (23):
        libstatgrab: update 0.92 -> 0.92.1
        open-vpm-tools: update 11.2.5 -> 11.3.5
        libid3tag: add from oe-core
        libportal: add from oe-core
        gtkmm3: add gdk-pixbuf-native to satisfy meson 0.61
        gjs: drop patch to satisfy meson 0.61
        gnome-terminal: backport a meson 0.61 patch
        gnome-bluetooth: backport a meson 0.61 patch
        gnome-font-viewer: backport a meson 0.61 patch
        gnome-session: update 40.1.1 -> 41.3
        gnome-settings-daemon: add a meson 0.61 patch
        gnome-shell: backport a meson 0.61 patch
        accountsservice: backport a meson 0.61 patch
        gnome-screenshot: backport a meson 0.61 patch
        evince: fix meson 0.61 builds
        gnome-calendar: fix meson 0.61 builds
        gthumb: fix meson 0.61 builds
        gedit: add a meson 0.61 patch
        gnome-disk-utility: add a meson 0.61 patch
        gnome-control-center: add a meson 0.61 patch
        gnome-photos: add a meson 0.61 patch
        dconf-editor: add a meson 0.61 patch
        network-manager-applet: add meson 0.61 patch

  Andreas Müller (111):
        xfce4-sensors-plugin: upgrade 1.3.95 -> 1.4.1
        fftw: remove unused patch
        mozjs: Move back to recipes-extended - no meta-python specifics required
        Rename mozjs -> mozjs-91 to allow multiple versions of mozjs
        polkit: Adjust to mozjs-91 in DEPENDS
        mozjs-91: remove static library
        mozjs-78: Initial add
        graphene: enable introspection by default - gtk4 & mutter 41 require it
        graphene: extend to native and nativesdk
        graphene: Tidy up recipe a bit
        gtk4: initial add 4.4.0
        gjs: upgrade 1.58.8 -> 1.70.0
        mutter: upgrade 3.34.6 -> 41.0
        gdm: upgrade 3.36.3 -> 41.0
        upower: upgrade 0.99.11 -> 0.99.13
        udisks2: upgrade 2.9.3 -> 2.9.4
        gnome-settings-daemon: upgrade 3.36.1 -> 41.0
        gnome-shell: upgrade 3.34.5 -> 41.0
        gnome-shell-extensions: upgrade 3.34.2 -> 40.1
        gnome-desktop: upgrade 3.38.8 -> 41.0 and give up '3' receipe name suffix
        gnome-session: upgrade 3.36.0 -> 40.1.1
        gnome-control-center: upgrade 3.36.4 -> 41.1
        gexiv2: upgrade 0.12.2 -> 0.14.0
        gparted: upgrade 1.3.0 -> 1.3.1
        gnome-backgrounds: upgrade 3.38.0 -> 41.0
        gnome-tweaks: upgrade 3.34.0 -> 40.0
        gnome-terminal: upgrade 3.40.2 -> 3.42.0 / meson build
        gnome-panel: upgrade 3.36.1 -> 3.38.0
        grilo: upgrade 0.3.13 -> 0.3.14
        grilo-plugins: upgrade 0.3.13 -> 0.3.14
        mozjs-91: Fix build on powerpc
        gdm: Fix REQUIRED_DISTRO_FEATURES broken by adding introspection
        gnome-control-center: Add libhandy to DEPENDS
        gnome-backgrounds: Fix licenses
        poppler: upgrade 21.10.0 -> 21.11.0
        xfce4-whiskermenu-plugin: upgrade 2.5.3 -> 2.6.2
        ristretto: upgrade 0.11.0 -> 0.12.0
        xfce4-cpugraph-plugin: upgrade 1.2.3 -> 1.2.5
        xfce4-sensors-plugin: upgrade 1.4.1 -> 1.4.2
        catfish: upgrade 4.16.0 -> 4.16.3
        mousepad: upgrade 0.5.5 -> 0.5.7
        libxfce4ui: upgrade 4.16.0 -> 4.16.1
        fluidsynth: upgrade 2.2.2 -> 2.2.3
        vlc: Fix build with un-renameed native libtool
        fltk: upgrade 1.3.7 -> 1.3.8
        xfce4-whiskermenu-plugin: upgrade 2.6.2 -> 2.7.1
        ristretto: upgrade 0.12.0 -> 0.12.1
        mousepad: upgrade 0.5.7 -> 0.5.8
        poppler: upgrade 21.11.0 -> 21.12.0
        menulibre: upgrade 2.2.1 -> 2.2.3
        fluidsynth: upgrade 2.2.3 -> 2.2.4
        gegl: upgrade 0.4.30 -> 0.4.34
        gimp: upgrade 2.10.24 -> 2.10.30
        mpv: upgrade 0.33.1 -> 0.34.0
        gupnp: upgrade 1.2.7 -> 1.4.1
        gupnp: merge recipe with inc-file
        gupnp-av: upgrade 0.12.11 -> 0.14.0 / build with mesa
        gupnp-av: merge recipe with inc-file
        gupnp-dlna: upgrade 0.10.5 -> 0.12.0 / build with meson
        gupnp-igd: upgrade 0.2.5 -> 1.2.0 / build with meson
        gupnp-tools: upgrade 0.10.0 -> 0.10.2 / prettify recipe
        gtkwave: upgrade 3.3.109 -> 3.3.111
        blueman: upgrade 2.2.1 -> 2.2.3
        geany: upgrade 1.37.1 -> 1.38
        geany-plugins: upgrade 1.37 -> 1.3.8
        gnuplot: upgrade 5.4.1 -> 5.4.2
        gtksourceview5: initial add 5.2.0
        amtk: upgrade 5.2.0 -> 5.3.1 / build with meson
        evince: upgrade 40.4 -> 41.3
        evolution-data-server: upgrade 3.40.2 -> 3.42.2
        gnome-autoar: upgrade 0.3.3 -> 0.4.1 / build with meson
        gnome-calculator: upgrade 40.1 -> 41.1
        gnome-calendar; upgrade 41.0 -> 41.2
        gnome-control-center: upgrade 41.1 -> 41.2
        gnome-desktop: upgrade 41.0 -> 41.2
        gnome-disk-utility: upgrade 40.1 -> 41.0
        gnome-flashback: upgrade 3.40.0 -> 3.42.1
        gnome-font-viewer: upgrade 40.0 -> 41.0
        gnome-screenshot: upgrade 40.0 -> 41.0
        gnome-shell: upgrade 41.0 -> 41.2
        gnome-shell-extensions: upgrade 41.0 -> 41.1
        gnome-system-monitor: upgrade 40.1 -> 41.0
        gnome-terminal: upgrade 3.42.0 -> 3.42.1
        gsound: upgrade 1.0.2 -> 1.0.3 / build with meson
        gthumb: upgrade 3.10.3 -> 3.12.0
        gtksourceview4: upgrade 4.8.1 -> 4.8.2
        libgsf: upgrade 1.14.47 -> 1.14.48
        libgtkstylus: remove
        metacity: upgrade 3.40.0 -> 3.42.0
        mutter: upgrade 41.0 -> 41.2
        nautilus: upgrade 40.2 -> 41.1
        gnome-shell: Add gnome-desktop to RDEPENDS
        Drop gnome-desktop3 providers
        Rename gnome-menus3 -> gnome-menus
        packagegroup-gnome-desktop: Mark TUNE_PKGARCH specific
        mozjs-78: Shelve breaking lib rename/linking & split lib to separate package
        mozjs-78: renumber patches
        gnome-shell-extensions: Enable gnome-classic session for wayland
        zenity: Upgrade 3.32.0 -> 3.41.0 / meson build / rework
        yelp: upgrade 41.1 -> 41.2
        yelp-xsl: upgrade 41.0 -> 41.1
        usermode: upgrade 1.113 -> 1.114
        sysprof: upgrade 3.42.0 -> 3.42.1
        gnome-terminal: upgrade 3.42.1 -> 3.42.2
        gnome-panel: upgrade 3.38.0 -> 3.42.0
        gnome-autoar: upgrade 0.4.1 -> 0.4.2
        evolution-data-server: upgrade 3.42.2 -> 3.42.3
        poppler: upgrade 21.12.0 -> 22.01.0
        exo: upgrade 4.16.1 -> 4.16.3
        imsettings: upgrade 1.8.2 -> 1.8.3
        thunar: upgrade 4.16.8 -> 4.16.9

  Andrei Gherzan (2):
        mosquitto: Don't depends on dlt-daemon unconditionally
        python3-pymetno: Introduce recipe on 0.7.0

  Andrey Zhizhikin (1):
        gpsd: fix clang buid via export CC explicitly

  Armin Kuster (6):
        ldns: update to 1.8.1
        strongswan: provide PACKAGECONFIG for cureve25519
        strongswan: add tpm PACKAGECONFIG
        strongswan: add integrity options
        strongswan: remove redundant DEPENDS
        wireshark: update to latest stable 3.4.11

  Bartosz Golaszewski (6):
        python3-email-validator: new package
        libgpiod: ptest: rrecommend python3-unittest when building python tests
        libgpiod: ptest: rrecommend coreutils
        libgpiod: ptest: redirect stderr to stdout for test executables
        cmatrix: new package
        python3-zeroconf: bump version 0.36.13 -> 0.38.1

  Bhargav Das (1):
        python3-colorzero: add recipe for python colorzero

  Bruce Ashfield (2):
        vboxguestdrivers: fix build against 5.15 kernel/libc-headers headers
        python: remove recipes imported to oe-core

  Changqing Li (5):
        mozjs-78: fix do_configure failure
        mozjs-91: fix do_configure failure
        mozjs-91/mozjs-78: fix compile failure on centos7
        php: correct module name and library name
        postgresql: fix CVE-2021-23214,CVE-2021-23222

  Christian Eggers (5):
        gpsd: remove obsolete files from FILES:${PN}-dev
        gpsd: remove obsolete libgpsd package
        gpsd: remove obsolete files from FILES:gps-utils
        gpsd: list files for gps-utils individually
        python3-gcovr: add recipe

  Claude Bing (2):
        php: update from 7.4.21 to 8.0.12
        php: use qemu wrapper to build minilua

  Claus Stovgaard (3):
        Added usbip-tools for kernel USB/IP
        Add gutenprint to meta-oe
        Add pycups - python bindings for CUPS

  Ed Tanous (1):
        Update to new version of boost-uri

  Fathi Boudra (1):
        makedumpfile: upgrade from 1.6.9 to 1.7.0

  Geoff Parker (2):
        python3-cchardet: add BBCLASSEXTEND = "native nativesdk"
        python3-aiosignal, python3-frozenlist: Add native & nativestdk package support

  Gianfranco (2):
        vboxguestdrivers: upgrade 6.1.28 -> 6.1.30
        vboxguestdrivers: drop md5sum from SRC_URI.

  He Zhe (1):
        protobuf: Fix static init fiasco

  Hongxu Jia (5):
        ostree: add nativesdk support
        ostree: use Yocto mirror
        ostree: workaround compile error with option gcc option -Og
        libblockdev: Do not include duplicate entries in bd_lvm_lvs output
        grubby: fix conflict with debianutils

  Jacob Kroon (1):
        Revert "ccid: Fix floating runtime dependency on flex"

  Jan Vermaete (6):
        netdata: Using the github.com release + upstream_check.
        netdata: from 1.22.1 to 1.32.0
        netdata: version bump from 1.32.0 to 1.32.1
        netdata: fixed some oelint-adv issues in the recipe.
        netdata: do not send anonymous statistics by default.
        netdata: fix for commit 8554624cc7f84e6b63b2ea4b94ee5fd2821021ca

  Jeremy A. Puhlman (1):
        cdrkit: remove ${PN} from ${PN}-dev RDEPENDS

  Jeremy Kerr (4):
        mctp: upgrade to v1.0
        mctp: install dbus service configuration
        contrib: allow override-style syntax for vars & routines
        contrib: fix python warnings for oe-stylize

  Joshua Watt (8):
        colord: introspection is not valid meson option
        gdm: introspection is not valid meson option
        gnome-settings-daemon: introspection is not valid meson option
        gnome-shell: introspection is not valid meson option
        gnome-control-center: Fixup polkit directory permissions
        gnome-online-accounts: Switch back to libsoup2
        graphene: Move from meta-gnome -> meta-oe
        jemalloc: Fix license file

  Kai Kang (1):
        libqb: use branch main

  Khem Raj (97):
        bitwise: Fix build with latest ncurses 6.3+
        libcdio: Fix build with ncurses 6.3+
        nmon: Upgrade to 16m
        sysdig: Fix build with ncurses 6.3+
        iptraf-ng: Upgrade to 1.2.1
        tiptop: Fix build with ncurses 6.3+
        mtr: Fix build with ncurses 6.3+
        mtr: Explicitly use branch= in SRC_URI
        liburing: Use libc mmap() wrapper instead of calling __NR_mmap syscall directly
        protobuf: Upgrade to 3.19.1
        protobuf: Disable tailcall on mips/clang
        packagegroup-meta-python: Add python3-imgtool
        python3-prctl: Use https protocol for git fetcher
        mozjs-78: Check for big-endian icu data file existence before creating it
        mozjs-78: Set X lib/include paths
        mozjs-78: Pass C/C++ flags to js configure
        libjs-jquery-globalize: Use a proper SHA in SRCREV instead of tag
        iptraf-ng: Create /var/log and /var/lib subdirs at runtime
        gstd: Remove empty /var/volatile/log
        monkey: Keep /var/volatile empty
        hiawatha: Create /var/log /var/run at runtime
        python3-kivy: Use branch parameter in SRC_URI
        mdns: Upgrade to 1310.140.1
        packagegroup-meta-networking: Enable mdns on musl systems
        ntpsec: Disable seccomp on musl/rv32
        ntpsec: Disable documentation
        packagegroup-meta-networking: Add ntpsec
        sdbus-c++-libsystemd: Fix build with kernel 5.15+
        mctp: Fix build with 5.15+ kernel headers
        packagegroup-meta-python.bb: Add python3-pytz-deprecation-shim
        packagegroup-meta-oe: Add fwupd and fwupd-efi
        protobuf-c: Export native protoc
        linpack: Build both sp and dp binaries
        php: Build minilua for build host
        xf86-video-ati: Upgrade to 19.1.0
        sdbus-c++-libsystemd: Upgrade to 249.5
        xf86-video-nouveau: fixup driver for new X server ABI
        tracker: introspection is not valid meson option
        gnome-desktop: introspection is not valid meson option
        libmediaart: introspection is not valid meson option
        libgweather: introspection is not valid meson option
        tepl: introspection is not valid meson option
        gjs: introspection is not valid meson option
        tracker-miners: introspection is not valid meson option
        gedit: introspection is not valid meson option
        tracker,tracker-miners: Upgrade to 3.2.1
        gnome-tweaks: introspection is not valid meson option
        colord-gtk: introspection is not valid meson option
        packagegroup-meta-python: Add python3-gcovr
        ippool: silence a DeprecationWarning
        packagegroup-meta-oe: Add pim435
        influxdb: Upgrade to 1.8.10
        influxdb: Fix build with Go 1.17 on x86_64
        packagegroup-core-clutter: Mark TUNE_PKGARCH specific
        packagegroup-xfce-base: Mark TUNE_PKGARCH specific
        libcamera: Fix build break on musl
        meta-networking,meta-python: Fix README for yocto check layer
        gjs: Link with libatomic on rv32
        ntpsec: Disable seccomp on riscv32
        libunix-statgrab: Use compiler driver for linking as well
        tbb: Upgrade to 2021.4.0
        packagegroup-meta-oe: Add unifex
        gjs: Fix build failures with meson 0.60.2
        packagegroup-meta-perl: Add new packages
        packagegroup-meta-python: Add python3-pymetno
        yelp: Add option to support webkit2gtk-4-0
        surf: Add soup3 patch conditionally
        netdata: Link libatomic on mips
        gssdp: Use sniffer only when gnome layer is in mix
        packagegroup-meta-oe: Add graphene
        inotify-tools: Upgrade to 3.21.9.6
        inotify-tools: Disable -Werror
        python3-matplotlib: Generate correctly names setup config file
        inotify-tools: Fix build on musl
        libkcapi: Fix build with musl
        packagegroup-meta-oe: Add gutenprint, python3-pycups and usbip-tools
        tvheadend: Disable dvbscan
        pkcs11-helper: Fix build with nss >= 3.73.1
        tbb: Disable LTO on rv64
        packagegroup-meta-python: Add python3-colorzero
        packagegroup-meta-oe: Add cmatrix
        pcp: Fix build to exclude qt5
        packagegroup-meta-oe: Add dool and pcp
        nautilus: Fix build with libportal >= 0.5
        influxdb: Enable network during do_compile
        meta-oe: Use setuptools3-base
        thunar: Depend on libxml-parser-perl-native
        python3-matplotlib: Do not use setuptools_scm_git_archive
        python3-pytest-helpers-namespace: Enable network during do_compile
        python3-pybind11: Use setuptools3 instead of distutils3 functions
        pcp: Fix build race condition
        tnftp: Add missing header stdc-predef.h
        jemalloc: Fix build with glibc 2.35+clang
        packagegroup-meta-oe: Add duktape
        iotop: Use lld with clang on arm
        meta-xfce: Convert catfish and menulibre to use setuptools3
        sdbus-c++-libsystemd: Fix build on musl

  Konrad Weihmann (3):
        python3-wtforms: add missing dependencies
        python3-execnet: depend on setuptools-scm
        python3-lazy-object-proxy: upgrade 1.6.0 > 1.7.1

  Lei Maohui (1):
        sysprof: Added json-glib into DEPENDS to fix build error.

  Leif Middelschulte (1):
        dbus-daemon-proxy: add missing `return` statement

  Leon Anavi (92):
        python3-qrcode: Upgrade 7.3 -> 7.3.1
        python3-bidict: Upgrade 0.21.2 -> 0.21.4
        python3-pint: Upgrade 0.17 -> 0.18
        python3-prettytable: Upgrade 2.2.1 -> 2.3.0
        python3-astroid: Upgrade 2.8.2 -> 2.8.4
        python3-isort: Upgrade 5.9.3 -> 5.10.0
        python3-aenum: Upgrade 3.1.0 -> 3.1.2
        python3-natsort: Upgrade 7.1.1 -> 8.0.0
        python3-cachecontrol: Upgrade 0.12.6 -> 0.12.9
        python3-wrapt: Upgrade 1.13.2 -> 1.13.3
        python3-prettytable: Upgrade 2.3.0 -> 2.4.0
        python3-imageio: Upgrade 2.10.1 -> 2.10.3
        python3-pytz-deprecation-shim: Add recipe
        python3-tzlocal: Upgrade 4.0.1 -> 4.1
        python3-soupsieve: Upgrade 2.2.1 -> 2.3
        python3-configparser: Upgrade 5.0.2 -> 5.1.0
        python3-yappi: Upgrade 1.3.2 -> 1.3.3
        python3-pydicti: Upgrade 1.1.4 -> 1.1.6
        python3-zeroconf: Upgrade 0.36.9 -> 0.36.12
        python3-yarl: Upgrade 1.7.0 -> 1.7.2
        python3-elementpath: Upgrade 2.3.2 -> 2.4.0
        python3-astroid: Upgrade 2.8.4 -> 2.8.5
        python3-coverage: Upgrade 6.1.1 -> 6.1.2
        python3-aenum: Upgrade 3.1.3 -> 3.1.5
        python3-zeroconf: Upgrade 0.36.12 -> 0.36.13
        python3-bandit: Uprade 1.7.0 -> 1.7.1
        python3-colorlog: Upgrade 6.5.0 -> 6.6.0
        python3-soupsieve: Upgrade 2.3 -> 2.3.1
        python3-cchardet: Add recipe
        python3-charset-normalizer: Add recipe
        python3-frozenlist: Add recipe
        python3-aiosignal: Add recipe
        python3-aiohttp: Upgrade 3.8.0 -> 3.8.1
        packagegroup-meta-python.bb: Add new packages
        python3-eventlet: Upgrade 0.32.0 -> 0.33.0
        python3-imageio: Upgrade 2.10.3 -> 2.10.5
        python3-deprecated: Upgrade 1.2.12 -> 1.2.13
        python3-parso: Add runtime dependencies
        python3-jedi: Upgrade 0.18.0 -> 0.18.1
        python3-prompt-toolkit: Upgrade 3.0.21 -> 3.0.22
        python3-imageio: Upgrade 2.10.5 -> 2.11.0
        python3-cmd2: Upgrade 2.3.0 -> 2.3.1
        python3-simplejson: Upgrade 3.17.5 -> 3.17.6
        python3-aiohue: Upgrade 2.6.3 -> 3.0.1
        python3-imageio: Upgrade 2.11.0 -> 2.11.1
        python3-marshmallow: Upgrade 3.14.0 -> 3.14.1
        python3-jsonpointer: Upgrade 2.1 -> 2.2
        python3-humanize: Upgrade 3.12.0 -> 3.13.1
        python3-cachecontrol: Upgrade 0.12.9 -> 0.12.10
        python3-prompt-toolkit: Upgrade 3.0.22 -> 3.0.24
        python3-isodate: Upgrade 0.6.0 -> 0.6.1
        python3-pychromecast: Upgrade 10.1.1 -> 10.2.3
        python3-imageio: Upgrade 2.13.3 -> 2.13.5
        python3-psutil: Upgrade 5.8.0 -> 5.9.0
        python3-astroid: Upgrade 2.9.0 -> 2.9.2
        python3-robotframework: Upgrade 4.1.2 -> 4.1.3
        python3-cantools: Upgrade 37.0.0 -> 37.0.1
        python3-diskcache: Upgrade 5.3.0 -> 5.4.0
        python3-typeguard: Upgrade 2.13.2 -> 2.13.3
        python3-huey: Upgrade 2.4.2 -> 2.4.3
        python3-ujson: Upgrade 5.0.0 -> 5.1.0
        python3-google-api-core: Upgrade 2.2.0 -> 2.3.2
        python3-astroid: Upgrade 2.9.2 -> 2.9.3
        python3-urllib3: Upgrade 1.26.7 -> 1.26.8
        python3-rdflib: Upgrade 6.0.2 -> 6.1.1
        python3-bitarray: Upgrade 2.3.4 -> 2.3.5
        python3-asyncio-throttle: Add recipe
        python3-aiohue: Upgrade 3.0.1 -> 3.0.11
        python3-requests: Upgrade 2.26.0 -> 2.27.1
        python3-natsort: Upgrade 8.0.0 -> 8.0.2
        python3-sentry-sdk: Upgrade 1.4.3 -> 1.5.2
        python3-regex: Upgrade 2021.10.8 -> 2021.11.10
        python3-wtforms: Upgrade 3.0.0 -> 3.0.1
        python3-charset-normalizer: Upgarde 2.0.7 -> 2.0.10
        python3-gmpy2: Upgrade 2.1.1 -> 2.1.2
        python3-jdatetime: Upgrade 3.6.4 -> 3.8.1
        python3-fasteners: Upgrade 0.16.3 -> 0.17.2
        python3-jsmin: Upgrade 3.0.0 -> 3.0.1
        python3-croniter: Upgrade 1.1.0 -> 1.2.0
        python3-fastjsonschema: Upgrade 2.15.1 -> 2.15.3
        python3-aenum: Upgrade 3.1.5 -> 3.1.6
        python3-decorator: Upgrade 5.1.0 -> 5.1.1
        python3-pythonping: Upgrade 1.1.0 -> 1.1.1
        python3-dnspython: Upgrade 2.1.0 -> 2.2.0
        python3-frozenlist: Upgrade 1.2.0 -> 1.3.0
        python3-simpleeval: Upgrade 0.9.10 -> 0.9.12
        python3-twine: Upgrade 3.4.1 -> 3.7.1
        python3-pillow: Upgrade 8.3.2 -> 9.0.0
        python3-pycocotools: Upgrade 2.0.2 -> 2.0.4
        python3-paramiko: Upgrade 2.9.1 -> 2.9.2
        python3-sentry-sdk: Upgrade 1.5.2 -> 1.5.3
        imageio: Upgrade 2.13.5 -> 2.14.0

  Luca Boccassi (2):
        lvm2: do not install systemd units/initscripts when building native SDK tools
        Add recipe for duktape

  Marek Vasut (4):
        libsdl2-ttf: Remove incorrect x11 from REQUIRED_DISTRO_FEATURES
        freerdp: Upgrade 2.3.0 -> 2.4.1
        freerdp: Add missing libusb1 dependency
        freerdp: Make PCSC dependency optional

  Mark Hatle (1):
        python3-matplotlib: Disable automatic download during do_compile

  Markus Volk (5):
        libgdata: add vala PACKAGECONFIG
        gspell: inherit vala
        gmime: inherit vala
        evolution-data-server: cleanup; enable vala introspection
        folks: initial add recipe

  Martin Jansa (7):
        nodejs: fix build without scrypt
        unicode-ucd: set downloadfilename to include PV
        ntpsec: require x11 in DISTRO_FEATURES
        libgusb: add PACKAGECONFIG for vapi and keep it enabled only when introspection is
        Revert "libgusb: Use the correct args to disable vala support"
        packagegroup-meta-multimedia: include x265 only with commercial in LICENSE_FLAGS_WHITELIST
        simple-mtpfs: add dependency on autoconf-archive

  Matthias Klein (2):
        paho-mqtt-c: upgrade 1.3.8 -> 1.3.9
        paho-mqtt-cpp: new package

  Mauro Anjo (2):
        Upgrade libcamera
        libcamera: Update to latest commit

  Michael Vetter (1):
        jasper: upgrade 2.0.26 -> 2.0.33

  Mingli Yu (6):
        mariadb: Fix openssl 3.x compatibility
        libteam: switch to python3
        libteam: improve the ptest output
        php: Upgrade to 8.1.0
        php: avoid textrel QA Issue warning
        python3-lxml: check the return value

  Nisha Parrakat (1):
        nodejs_16.11.1.bb: only handle npm if configured

  Oleksandr Kravchuk (48):
        python3-protobuf: update to 3.19.0
        python3-google-api-core: update to 2.2.0
        python3-google-api-python-client: update to 2.28.0
        python3-imageio: update to 2.10.1
        python3-pybind11: update to 2.8.1
        liburing: update to 2.1
        protobuf: update to 3.19.0
        wolfssl: update to 5.0.0
        fb-test: fix SRC_URI
        bmon: fix PV
        cpuid: update to 20211129
        gtk4: set UPSTREAM_CHECK_REGEX to stable versions
        iwd: update to 1.20
        libnma: update to 1.8.32
        python3-astroid: update to 2.9.0
        python3-coverage: update to 6.2
        python3-croniter: update to 1.1.0
        python3-diskcache: update to 5.3.0
        python3-graphviz: update to 0.19
        python3-imageio: update to 2.13.3
        python3-iso8601: update to 1.0.2
        python3-ldap: update to 3.4.0
        python3-lz4: update to 3.1.10
        python3-matplotlib: update to 3.5.1
        python3-pymetno: update to 0.9.0
        python3-pywbem: update to 1.3.0
        python3-redis: update to 4.0.2
        python3-wtforms: update to 3.0.0
        soci: update to 4.0.2
        uftrace: update to 0.11
        librdkafka: update to 1.8.2
        gparted: add UPSTREAM_CHECK_URI
        libwacom: update to 1.12
        libsrtp: update to 2.4.2
        dbus-cxx: update to 2.1.0
        sysprof: update to 3.42.0
        gssdp: update to 1.4.0.1
        libkcapi: update to 1.3.1
        python3-lxml: update to 4.7.1
        python3-icu: update to 2.8
        python3-googleapis-common-protos: update to 1.54.0
        python3-gevent: update to 21.12.0
        python3-twitter: update 4.4.0
        python3-contextlib2: update to 21.6.0
        simple-mtpfs: update to 0.4.0
        xl2tpd: update to 1.3.16
        python-cantools: update to 37.0.0
        lirc: replace setuptools3-bas with distutils-common-base

  Ovidiu Panait (1):
        syslog-ng: adjust control socket location

  Patrick Williams (1):
        unifex: add recipe

  Peter Kjellerstedt (16):
        libssh: Support building for native and nativesdk
        corosync: Clean up leftover support for qdevice and qnetd
        corosync: Do not install the /var/log/cluster directory
        collectd: Do not install /var/log
        atop: Do not install the /var/log/atop directory
        openflow: Create /var/log/openflow in runtime
        mongodb: A little clean up
        mongodb: Create /var/log/mongodb in runtime
        opensaf: Create /var/log/opensaf/saflog in runtime
        opensaf: Make sure a file needed by opensafd.service is not removed
        gattlib: Explicitly disable Python support
        googletest: Switch branch from master to main
        libsrtp: Add support for specifying the crypto library
        nodejs: Drop workaround for a Python 2 dependency
        nodejs: Drop workaround for an absolute path in the npm shebang
        nodejs: A little clean up

  Philip Balister (1):
        fftw: Update to fftw-3.3.10

  Philippe Coval (7):
        lv-drivers: Lint recipe
        lv-lib-png: Lint recipe
        lvgl: Introduce global variable for configuration
        lvgl: Add hints about using configuration variables
        lvgl: Support external wayland config
        lvgl: Update to 8.1.0
        pim435: Add recipe for C implementation for userspace driver app

  Pierre-Jean Texier (1):
        libmxml: upgrade 3.2 -> 3.3

  Ramon Fried (1):
        bitwise: Upgrade 0.42 -> 0.43

  Richard Hughes (4):
        libgusb: Use the correct args to disable vala support
        libjcat: Update to 0.1.9
        libxmlb: Update to 0.3.6
        fwupd: Update to 1.7.3

  Richard Purdie (1):
        recipes: Update SRC_URI branch and protocols

  Robert Joslyn (2):
        htop: Update to 3.1.2
        postgresql: Update to 14.1

  Ross Burton (58):
        python3-imgtool: add recipe
        modemmanager: remove intltool-native DEPENDS
        python3-cryptography: backport patches to make this work against OpenSSL 3
        fwupd-efi: add new recipe
        fwupd: add new recipe
        nginx: use ln -rs
        libxmlb: put binary into separate package
        imlib2: clarify license
        xmlrpc-c: set precise BSD license
        xmlrpc-c: remove unused libxml2 dependency
        xmlrpc-c: clean up PACKAGECONFIG
        xmlrpc-c: use gnu-configize
        dash: set precise BSD license
        sg3-utils: set precise BSD license
        nodejs: set precise BSD license
        libkcapi: remove DEPENDS on target libtool
        libkcapi: set precise BSD license
        pcsc-lite: set precise BSD license
        python3-cryptography: set precise BSD license
        python3-crypto-vectors: set precise BSD license
        python3-gevent: use system libraries instead of embedding
        python3-gevent: update license
        python3-lxml: set precise BSD license
        python3-posix-ipc: set precise BSD license
        python3-posix-ipc: remove spurious dependencies
        python3-pyzmq: set precise BSD license
        fwupd: upgrade to 1.7.2
        fwupd: fix dependency typo
        net-snmp: use precise BSD license
        gnome-themes-extra: set correct SRC_URI
        qpdf: remove obsolete support for renamed libtool
        php: remove obsolete support for renamed libtool
        dhcp-relay: remove obsolete support for renamed libtool
        apache2: remove obsolete support for renamed libtool
        xfsdump: remove obsolete support for renamed libtool
        unbound: remove obsolete support for renamed libtool
        cpufrequtils: remove obsolete support for renamed libtool
        gtk+: remove obsolete support for renamed libtool
        apache-websocket: remove obsolete support for renamed libtool
        srecord: remove obsolete support for renamed libtool
        srecord: add libgcrypt PACKAGECONFIG
        srecord: properly initialize libtool
        dhcp-relay: fix rebuilds
        tbb: enable native/nativesdk builds
        fwts: do out-of-tree builds
        tbb: upgrade to 2021.5.0
        python3-scapy: remove redundant pycrypto RDEPENDS
        python3-smbbus: use DISTUTILS_SETUP_PATH
        python3-pycrypto: remove obsolete pycrypto module
        python3-smbus: use setuptools
        python3-greenlet: remove redundant distutils3 inherit
        python3-hexdump: remove
        python3-pyparted: port to setuptools
        python3-dbussy: port to setuptools
        cxxtest: move to setuptools
        iotop: move to the C port of iotop
        sanlock: port to setuptools
        pyxdg: upgrade and remove distutils

  Sakib Sajal (2):
        io-compress-lzma-perl: add recipe for version 2.096
        nss: upgrade 3.64 -> 3.73.1

  Salman Ahmed (2):
        openldap: upgrade 2.4.58 -> 2.5.8
        python3-ldap: for openldap v2.5.8, link with libldap instead of libldap_r

  Sean Nyekjaer (1):
        msgpack-cpp: fix msgpack-cpp is a header only library

  Stanislav Angelovic (1):
        Bump sdbus-c++ to version v1.0.0

  Tim Orling (12):
        python3-gammu: add recipe for v3.2.4
        python3-setuptools-rust-native: add v1.1.2 recipe
        python3-pyruvate: add recipe for v1.1.2
        python3-pytest-subtests: upgrade 0.5.0 -> 0.6.0
        python3-cryptography-vectors: upgrade 35.0.0 => 36.0.1
        python3-cryptography: upgrade 3.3.2 -> 36.0.1
        gammu: upgrade 1.32.0 -> 1.42.0
        tiptop: update download URL and HOMEPAGE
        cmocka: use https protocol for fetching
        pyo3.bbclass: add class for PyO3 cross-compilation
        setuptools3_rust.bbclass: setuptoools Rust plugin
        python3-pyruvate: disable 64 bit atomics for mips

  Trevor Gamblin (7):
        python3-pycparser: RSUGGESTS cpp and cpp-symlinks
        libnftnl: upgrade 1.2.0 -> 1.2.1
        python3-django: upgrade 3.2.5 -> 3.2.10
        libnftnl: add ptest
        python3-django: upgrade 2.2.25 -> 2.2.26
        python3-django: upgrade 3.2.10 -> 3.2.11
        python3-django: Add recipe for 4.0.1

  Wang Mingyu (10):
        gsl: upgrade 2.7 -> 2.7.1
        mozjs: upgrade 91.2.0 -> 91.4.0
        libgusb: upgrade 0.3.8 -> 0.3.9
        python3-pychromecast: upgrade 10.1.0 -> 10.1.1
        python3-websocket-client: upgrade 1.2.1 -> 1.2.3
        python3-sqlalchemy: upgrade 1.4.27 -> 1.4.28
        dnf-plugin-tui: Fix bug when generating CSV file
        sdbus-c++-tools: upgrade 1.0.0 -> 1.1.0
        sdbus-c++-libsystemd: upgrade 249 -> 250.3
        fmt: upgrade 8.0.1 -> 8.1.1

  William A. Kennington III (2):
        ipmitool: Split ipmievd into a separate package
        jq: upgrade 1.6 -> 2021-10-24 git

  Windel Bouwman (1):
        python3-coloredlogs: Added nativesdk

  Xu Huan (35):
        python3-websockets: upgrade 10.0 -> 10.1
        python3-xlsxwriter: upgrade 3.0.1 -> 3.0.2
        python3-socketio: upgrade 5.4.1 -> 5.5.0
        python3-pymongo: upgrade 3.12.0 -> 4.0
        python3-pyephem: upgrade 4.1 -> 4.1.1
        python3-pycparser: upgrade 2.20 -> 2.21
        python3-aiofiles: upgrade 0.7.0 -> 0.8.0
        python3-bitstruct: upgrade 8.11.1 -> 8.12.1
        python3-cmd2: upgrade 2.3.1 -> 2.3.3
        python3-configparser: upgrade 5.1.0 -> 5.2.0
        python3-rsa: upgrade 4.7.2 -> 4.8
        python3-django: upgrade 2.2.24 -> 2.2.25
        python3-gnupg: upgrade 0.4.7 ->0.4.8
        python3-graphviz: upgrade 0.19 -> 0.19.1
        python3-gmpy2: upgrade 2.1.0rc1 -> 2.1.1
        python3-grpcio: upgrade 1.41.1 -> 1.43.0
        python3-sqlalchemy: upgrade 1.4.28 ->1.4.29
        python3-pyro4: upgrade 4.81 -> 4.82
        python3-huey: upgrade 2.4.1 -> 2.4.2
        python3-msgpack: upgrade 1.0.2 -> 1.0.3
        python3-smpplib: upgrade 2.2.0 -> 2.2.1
        python3-wheel: upgrade 0.37.0 -> 0.37.1
        python3-meh: upgrade 0.50 -> 0.50.1
        python3-pandas: upgrade 1.3.4 -> 1.3.5
        python3-paramiko: upgrade 2.8.0 ->2.9.1
        python3-parso: upgrade 0.8.2 -> 0.8.3
        python3-protobuf: upgrade 3.19.0 ->3.19.3
        python3-pymongo: upgrade 4.0 -> 4.0.1
        python3-pynacl: upgrade 1.4.0 -> 1.5.0
        python3-pytest-timeout: upgrade 2.0.1 -> 2.0.2
        python3-socketio: upgrade 5.5.0 -> 5.5.1
        python3-argcomplete upgrade 1.12.3 -> 2.0.0
        python3-async-timeout: upgrade 4.0.0 -> 4.0.2
        python3-engineio: upgrade 4.3.0 -> 4.3.1
        python3-google-api-python-client: upgrade 2.33.0 -> 2.36.0

  Yi Zhao (31):
        netplan: fix hardcoded path for /lib/netplan
        libssh: use https instead of git in SRC_URI
        strongswan: add required kernel modules to RRECOMMENDS
        libldb: upgrade 2.3.0 -> 2.3.2
        samba: upgrade 4.14.8 -> 4.14.10
        libtalloc: fix pyext_PATTERN for cross compilation
        libtdb: fix pyext_PATTERN for cross compilation
        libtevent: fix pyext_PATTERN for cross compilation
        libldb: fix pyext_PATTERN for cross compilation
        samba: fix pyext_PATTERN for cross compilation
        samba: add pyldb to rdepends for samba-python3
        samba: update cross-answers files
        openldap: fix parallel build failure
        openldap: upgrade 2.5.8 -> 2.5.9
        openldap: fix strip issue with new patch
        postfix: upgrade 3.6.2 -> 3.6.3
        openipmi: upgrade 2.0.31 -> 2.0.32
        xmlsec1: enable native build
        upower: add UPSTREAM_CHECK_GITTAGREGEX
        lvm2: add UPSTREAM_CHECK_GITTAGREGEX
        ndctl: add UPSTREAM_CHECK_GITTAGREGEX
        nftables: upgrade 1.0.0 -> 1.0.1
        ipset: upgrade 7.11 -> 7.15
        libnetfilter-queue: upgrade 1.0.3 -> 1.0.5
        bridge-utils: upgrade 1.7 -> 1.7.1
        iscsi-initiator-utils: upgrade 2.1.4. -> 2.1.5
        openldap: ignore the mkdir errors in Makefile
        tnftp: upgrade 20151004 -> 20210827
        dracut: upgrade 051 -> 055
        tree: upgrade 2.0.0 -> 2.0.1
        postfix: upgrade 3.6.3 -> 3.6.4

  Zheng Ruoqin (4):
        spitools: upgrade 1.0.0 -> 1.0.1
        python3-rdflib: upgrade 6.0.0 -> 6.0.2
        python3-typeguard: upgrade 2.13.0 -> 2.13.2
        python3-ujson: upgrade 4.2.0 -> 4.3.0

  leimaohui (5):
        dstat: Deleted terminated project.
        pcp: Added a new recipe which provides dstat command.
        dool: Added a new OSS that forked from dstat project.
        xrdp: Fixed build error with openssl 3.0 and upgraded from 0.9.17 to 0.9.18.
        xorg-xrdp: Upgraded from 0.2.5 to 0.2.18.

  mk (1):
        python3-marshmallow: add recipe at version 3.14.0

  wangmy (79):
        avro-c: upgrade 1.10.2 -> 1.11.0
        botan: upgrade 2.18.1 -> 2.18.2
        c-ares: upgrade 1.17.2 -> 1.18.1
        grpc: upgrade 1.41.0 -> 1.41.1
        libcrypt-openssl-guess-perl: upgrade 0.13 -> 0.14
        fetchmail: upgrade 6.4.21 -> 6.4.23
        iwd: upgrade 1.18 -> 1.19
        debootstrap: upgrade 1.0.124 -> 1.0.126
        jsoncpp: upgrade 1.9.4 -> 1.9.5
        python3-aenum: upgrade 3.1.2 -> 3.1.3
        python3-aiohttp: upgrade 3.7.4 -> 3.8.0
        python3-async-timeout: upgrade 3.0.1 -> 4.0.0
        python3-fastnumbers: upgrade 3.1.0 -> 3.2.1
        python3-google-api-python-client: upgrade 2.28.0 -> 2.30.0
        python3-graphviz: upgrade 0.17 -> 0.18
        python3-httplib2: upgrade 0.20.1 -> 0.20.2
        openvpn: Change the default cipher to AES-256-GCM for server configurations
        ctags: upgrade 5.9.20210905.0 -> 5.9.20211114.0
        libmbim: upgrade 1.26.0 -> 1.26.2
        smcroute: upgrade 2.5.3 -> 2.5.4
        python3-absl: upgrade 0.15.0 -> 1.0.0
        python3-alembic: upgrade 1.7.4 -> 1.7.5
        python3-cmd2: upgrade 2.2.0 -> 2.3.0
        python3-gast: upgrade 0.5.2 -> 0.5.3
        python3-isort: upgrade 5.10.0 -> 5.10.1
        python3-pychromecast: upgrade 9.3.1 -> 10.1.0
        python3-sqlalchemy: upgrade 1.4.26 -> 1.4.27
        wireguard-tools: upgrade 1.0.20210315 -> 1.0.20210914
        cryptsetup: upgrade 2.4.1 -> 2.4.2
        libqb: upgrade 2.0.3 -> 2.0.4
        qpdf: upgrade 10.3.2 -> 10.4.0
        tesseract: upgrade 4.1.1 -> 4.1.3
        thin-provisioning-tools: upgrade 0.8.5 -> 0.9.0
        xmlsec1: upgrade 1.2.32 -> 1.2.33
        libnetfilter-log: upgrade 1.0.1 -> 1.0.2
        python3-autobahn: upgrade 21.3.1 -> 21.11.1
        pure-ftpd: upgrade 1.0.49 -> 1.0.50
        icewm: upgrade 2.8.0 -> 2.9.0
        ostree: upgrade 2021.5 -> 2021.6
        ply: upgrade 2.1.1 -> 2.2.0
        pps-tools: upgrade 1.0.2 -> 1.0.3
        dnf-plugin-tui: Fix a bug with newer version rpm.
        snort: upgrade 2.9.18.1 -> 2.9.19
        cloc: upgrade 1.90 -> 1.92
        python3-scrypt: upgrade 0.8.18 -> 0.8.19
        fio: upgrade 3.28 -> 3.29
        mpich: upgrade 3.4.2 -> 3.4.3
        nano: upgrade 5.9 -> 6.0
        redis-plus-plus: upgrade 1.3.2 -> 1.3.3
        satyr: upgrade 0.38 -> 0.39
        qpdf: upgrade 10.4.0 -> 10.5.0
        tree: upgrade 1.8.0 -> 2.0.0
        libfile-slurper-perl: upgrade 0.012 -> 0.013
        libio-socket-ssl-perl: upgrade 2.072 -> 2.073
        python3-ipython: upgrade 7.28.0 -> 7.30.1
        apache2: upgrade 2.4.51 -> 2.4.52
        python3-pyhamcrest: upgrade 2.0.2 -> 2.0.3
        python3-pymisp: upgrade 2.4.148 -> 2.4.152
        weechat: upgrade 3.0 -> 3.4
        wolfssl: upgrade 5.0.0 -> 5.1.0
        pkcs11-helper: upgrade 1.27 -> 1.28
        bats: upgrade 1.4.1 -> 1.5.0
        doxygen: upgrade 1.9.2 -> 1.9.3
        pcsc-tools: upgrade 1.5.7 -> 1.5.8
        dnfdragora: upgrade 1.1.2 -> 2.1.2
        iwd: upgrade 1.20 -> 1.21
        python3-pyscaffold: upgrade 4.1.1 -> 4.1.4
        python3-supervisor: upgrade 4.2.2 -> 4.2.4
        rdma-core: upgrade 36.0 -> 38.0
        nlohmann-json: upgrade 3.10.4 -> 3.10.5
        protobuf: upgrade 3.19.1 -> 3.19.3
        uriparser: upgrade 0.9.5 -> 0.9.6
        mtr: upgrade 0.94 -> 0.95
        networkmanager: upgrade 1.32.12 -> 1.34.0
        cryptsetup: upgrade 2.4.2 -> 2.4.3
        cups-filters: upgrade 1.27.2 -> 1.28.11
        libmodbus: upgrade 3.1.6 -> 3.1.7
        libsdl2-ttf: upgrade 2.0.15 -> 2.0.18
        monit: upgrade 5.29.0 -> 5.30.0

  zangrc (1):
        python3-smpplib: upgrade 2.1.0 -> 2.2.0

  zhengruoqin (18):
        python3-cantools: upgrade 36.4.0 -> 36.5.0
        python3-coverage: upgrade 6.0.2 -> 6.1.1
        python3-cycler: upgrade 0.10.0 -> 0.11.0
        python3-engineio: upgrade 4.2.1 -> 4.3.0
        python3-grpcio-tools: upgrade 1.41.0 -> 1.41.1
        python3-grpcio: upgrade 1.41.0 -> 1.41.1
        python3-ujson: upgrade 4.3.0 -> 5.0.0
        chrony: upgrade 4.1 -> 4.2
        openvpn: upgrade 2.5.4 -> 2.5.5
        samba: upgrade 4.14.10 -> 4.14.11
        libnet-dns-perl: upgrade 1.32 -> 1.33
        byacc: upgrade 20210808 -> 20211224
        glmark2: upgrade 2021.02 -> 2021.12
        python3-djangorestframework: upgrade 3.12.4 -> 3.13.1
        python3-google-api-python-client: upgrade 2.30.0 -> 2.33.0
        python3-networkx: upgrade 2.6.2 -> 2.6.3
        python3-pyatspi: upgrade 2.38.1 -> 2.38.2
        pugixml: upgrade 1.11.2 -> 1.11.4

poky: d78650b980..27ff420543:
  Adrian Freihofer (1):
        runqemu: support rootfs mounted ro

  Alejandro Hernandez Samaniego (3):
        tclibc-newlib: Supply missing /bin/sh target in newlib sdk
        tclibc-baremetal: Supply missing /bin/sh target in the baremetal sdk
        gcc-cross-canadian: Fix cross canadian compiler for baremetal targets

  Alexander Kanavin (262):
        runqemu: unbreak non-gl displays
        curl: submit patch upstream
        libxml2: submit patch upstream
        psplash: upgrade to latest revision
        python3-gitdb: upgrade 4.0.7 -> 4.0.9
        python3-pyparsing: upgrade 3.0.0 -> 3.0.4
        vala: upgrade 0.54.2 -> 0.54.3
        asciidoc: upgrade 10.0.0 -> 10.0.1
        lighttpd: upgrade 1.4.60 -> 1.4.61
        stress-ng: upgrade 0.13.00 -> 0.13.06
        mesa: upgrade 21.2.4 -> 21.2.5
        linux-firmware: upgrade 20210919 -> 20211027
        puzzles: upgrade to latest revision
        libsoup: upgrade 3.0.1 -> 3.0.2
        libsoup-2.4: upgrade 2.74.0 -> 2.74.1
        nghttp2: upgrade 1.45.1 -> 1.46.0
        diffoscope: upgrade 188 -> 189
        gawk: update 5.1.0 -> 5.1.1
        cmake: update 3.21.3 -> 3.21.4
        ffmpeg: update 4.4 -> 4.4.1
        icu: update 69.1 -> 70.1
        librsvg: update 2.52.2 -> 2.52.3
        xf86-video-intel: update to latest commit
        cracklib: update 2.9.5 -> 2.9.7
        cracklib: patches submitted upstream
        docbook-xml: patch is not upstreamable
        lrzsz: patch is not upstreamable
        libjitterentropy: upgrade 3.3.0 -> 3.3.1
        gdbm: upgrade 1.19 -> 1.22
        perl: backport gdbm 1.2x compatibility fixes
        valgrind: mark ptest-specific patch as inappropriate
        systemd-bootchart: submit musl patches upstream
        librsvg: set the needed atomic configuration flags directly per-target
        libxml2: mark patch as non-upstreamable
        libpcre/libpcre2: correct SRC_URI
        ovmf: submit patch upstream
        mesa-demos: drop glx option and patch
        mesa-demos: mark glew/glu patch as non-upstreamable
        xserver-xorg: update 1.20.13 -> 21.1.1
        xserver-xorg: convert from autotools to meson
        xserver-xorg: add missing libtirpc dependency
        rust: update 1.56.0 -> 1.56.1
        libgpg-error: update 1.42 -> 1.43
        socat: upgrade 1.7.4.1 -> 1.7.4.2
        kexec-tools: update 2.0.22 -> 2.0.23
        python3-hypothesis: upgrade 6.24.0 -> 6.24.2
        python3-numpy: upgrade 1.21.3 -> 1.21.4
        python3-packaging: upgrade 21.0 -> 21.2
        python3-pbr: upgrade 5.6.0 -> 5.7.0
        python3-py: upgrade 1.10.0 -> 1.11.0
        python3-setuptools: upgrade 58.3.0 -> 58.5.3
        python3-pyparsing: update 3.0.4 -> 3.0.5
        vulkan-samples: update to latest revision
        gnu-config: update to latest revision
        libgpg-error: mark patch as non-upstreamable
        valgrind: submit patch upstream
        meson: upgrade 0.59.2 -> 0.60.1
        shared-mime-info: fix meson 0.60 builds
        webkitgtk: submit patches upstream
        webkitgtk: remove unneeded patch
        spirv-headers: PV should be 1.5.4
        ovmf: submit patch upstream
        weston: submit patch upstream
        db: mark all patches as non-upstreamable
        unzip/zip: mark all patches as non-upstreamable
        automake: update 1.16.3 -> 1.16.5
        libunistring: address automake 1.16.5 failures
        gettext: address automake 1.16.5 failures
        ccache: upgrade 4.4.2 -> 4.5
        python3-hypothesis: upgrade 6.24.2 -> 6.24.3
        python3-pyparsing: upgrade 3.0.5 -> 3.0.6
        asciidoc: upgrade 10.0.1 -> 10.0.2
        libpipeline: upgrade 1.5.3 -> 1.5.4
        diffoscope: upgrade 190 -> 192
        piglit: upgrade to latest revision
        systemd: upgrade 249.5 -> 249.6
        xwayland: upgrade 21.1.2 -> 21.1.3
        librstd-rs: submit patches upstream
        curl: update 7.79.1 -> 7.80.0
        librsvg: update 2.52.3 -> 2.52.4
        libsamplerate0: update 0.1.9 -> 0.2.2
        patches: correct whitespace/spelling for Upstream-Status tags
        autoconf: add missing Upstream-Status to patches
        libxml2: add missing Upstream-Status tag
        unfs3: add missing Upstream-Status tag
        kea: add missing Upstream-Status to a patch
        libnl: add missing Upstream-Status tag
        rust-hello-world: add missing Upstream-Status to a patch
        numactl: add missing Upstream-Status to a patch
        expect: do not install examples, drop related patch
        slang: mark patch as inappropriate for upstream submission
        busybox: drop 0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch
        librsvg: submit system-deps patch upstream
        groff: include references to corresponding upstream commits in a patch
        logrotate: add a link to upstream review for one of the patch
        glib-2.0: submit patch upstream
        ell: remove unneeded patch
        apt: drop unneeded chunk from a musl patch, submit the rest upstream
        diffstat: remove unneeded patch
        dpkg: replace a patch with a tweak to an already existing sed fixup
        elfutils: update 0.185 -> 0.186
        elfutils: submit patch upstream
        weston: mark patch as denied
        gptfdisk: submit patch upstream
        git: update 2.33.1 -> 2.34.0
        cmake: update 3.21.4 -> 3.22.0
        systemd: update 249.6 -> 249.7
        vulkan: update 1.2.191.0 -> 1.2.198.0
        bind: update 9.16.22 -> 9.16.23
        python3-packaging: update 21.2 -> 21.3
        python3-setuptools: update 58.5.3 -> 59.2.0
        libcomps: remove unneeded patch
        libdnf: submit patches upstream
        meson: submit patch upstream
        perl-cross: submit patches upstream
        perl: submitted patch upstream
        testimage.bbclass: request the use of kvm by default
        go-helloworld: update to latest revision
        go-helloworld: test at runtime
        python3-rfc3339/3986-validator: correct upstream version check
        go: update 1.16.10 -> 1.17.3
        ovmf: remove patch merged upstream
        insane.bbclass: add a check that Upstream-Status patch tag is present and correctly formed
        perl: replace a patch with a config option
        meson: configure and use generic exe_wrapper
        perlcross: do not copy ${S}/patches into sysroot
        python3: mark patch as inappropriate, with better explanation
        vala: submit patch upstream
        valgrind: remove unneeded patch
        lighttpd: remove unneeded (since meson switch) patch
        stress-ng: submit patch upstream
        zstd: submit patch upstream
        sudo: submit patch upstream
        adwaita-icon-theme: submit patch upstream
        igt-gpu-tools: correct patch status
        wayland: drop unnecessary patch
        xserver-xorg: remove unneeded patch
        kexec-tools: drop unneeded patch
        piglit: submit patches upstream
        systemtap: submit patch upstream
        ffmpeg: submit patch upstream
        libfm: submit patches upstream
        libgcrypt: submit patch upstream
        libgpg-error: submit patch upstream
        lttng: submit patches upstream
        rustfmt: remove the recipe
        python3-pycryptodome: update to 3.12.0
        strace: update 5.14 -> 5.15
        cups: update 2.3.3op2 -> 2.4.0
        erofs-utils: update 1.3 -> 1.4
        rust: update 1.56.1 -> 1.57.0
        git: upgrade 2.34.0 -> 2.34.1
        go: update 1.17.3 -> 1.17.4
        libunwind: update 1.6.0 -> 1.6.2
        libseccomp: update 2.5.2 -> 2.5.3
        bitbake: fetch2/wget: do not hardcode tarball compressors in version check
        ruby: update 3.0.2 -> 3.0.3
        glib-2.0: upgrade 2.70.1 -> 2.70.2
        ell: upgrade 0.45 -> 0.46
        ccache: upgrade 4.5 -> 4.5.1
        mmc-utils: upgrade to latest revision
        python3-hypothesis: upgrade 6.24.3 -> 6.30.0
        python3-markdown: upgrade 3.3.4 -> 3.3.6
        python3-more-itertools: upgrade 8.11.0 -> 8.12.0
        python3-pbr: upgrade 5.7.0 -> 5.8.0
        python3-ruamel-yaml: upgrade 0.17.16 -> 0.17.17
        python3-setuptools: upgrade 59.2.0 -> 59.4.0
        freetype: upgrade 2.11.0 -> 2.11.1
        harfbuzz: upgrade 3.1.1 -> 3.1.2
        vulkan-loader: upgrade 1.2.198.0 -> 1.2.198.1
        mesa: upgrade 21.3.0 -> 21.3.1
        piglit: upgrade to latest revision
        webkitgtk: upgrade 2.34.1 -> 2.34.2
        diffoscope: upgrade 192 -> 194
        enchant2: upgrade 2.3.1 -> 2.3.2
        libsoup: upgrade 3.0.2 -> 3.0.3
        xxhash: upgrade 0.8.0 -> 0.8.1
        kern-tools-native: check tags, not commits for new versions
        libid3tag: move to meta-oe
        bitbake: fetch: add a test for version check where compression changes
        meson: upgrade 0.60.1 -> 0.60.2
        sstatetests: add a test for moving oe-core around in the filesystem
        serf: mark upstream as inactive
        rust-hello-world: test at runtime
        btrfs-tools: upgrade 5.15 -> 5.15.1
        python3-hypothesis: upgrade 6.30.0 -> 6.31.4
        elfutils: update patch submitted upstream
        python3-setuptools: upgrade 59.4.0 -> 59.5.0
        lighttpd: upgrade 1.4.61 -> 1.4.63
        vim: do not report upstream version check as broken
        harfbuzz: upgrade 3.1.2 -> 3.2.0
        less: upgrade 590 -> 598
        alsa: upgrade 1.2.5 -> 1.2.6
        dpkg: update 1.20.9 -> 1.21.1
        piglit: upgrade to latest revision
        go: upgrade 1.17.4 -> 1.17.5
        repo: update 2.18 -> 2.19
        libptytty: add recipe
        boost: update 1.77.0 -> 1.78.0
        rxvt-unicode: upgrade 9.26 -> 9.30
        diffoscope: upgrade 194 -> 196
        debianutils: update 4.11.2 -> 5.5
        libx11: update 1.7.3 -> 1.7.3.1
        libsdl2: update 2.0.16 -> 2.0.18
        runqemu: additional setting to force software rendering with sdl 2.0.18
        cantarell-fonts: update 0.301 -> 0.303.1
        go: log build id computations
        lib/oe/reproducible: correctly set .git location when recursively looking for git repos
        go: correctly set debug-prefix-map and build directory
        go: additional patches to help reproducibility
        selftest/reproducible: drop go items from exception list
        virgl: skip headless test on alma 8
        ruby: disable rdoc due to non-reproducibility
        rust-llvm: apply the same reproducibility patch as for llvm proper
        busybox: update 1.34.1 -> 1.35.0
        systemd: update 249.7 -> 250.1
        python3-numpy: update 1.21.4 -> 1.22.0
        mdadm: update 4.1 -> 4.2
        libportal: update 0.4 -> 0.5
        epiphany: make libportal optional, and move it to meta-oe
        librsvg: update 2.52.4 -> 2.52.5
        qemuboot/runqemu: fully form the ip= kernel parameter
        parselogs: add a couple systemd false positives
        systemd-boot: restore reproducibility
        connman-conf: do nothing in qemu, do not touch eth0
        python3: drop unneeded multiprocessing module patch
        ruby: update 3.0.3 -> 3.1.0
        meson: fold nativesdk into the main recipe
        meson: update 0.60.3 -> 0.61.1
        efivar: update 37 -> 38
        libuv: update 1.42.0 -> 1.43.0
        resolvconf: update 1.87 -> 1.91
        systemd: update 250.1 -> 250.3
        python3: update 3.10.1 -> 3.10.2
        logrotate: update 3.18.1 -> 3.19.0, drop rotate-across-filesystems patches
        sqlite: update 3.37.1 -> 3.37.2
        rust: update 1.57.0 -> 1.58.0
        readline: upgrade 8.1 -> 8.1.2
        socat: upgrade 1.7.4.2 -> 1.7.4.3
        go: upgrade 1.17.5 -> 1.17.6
        shadow: upgrade 4.10 -> 4.11.1
        e2fsprogs: upgrade 1.46.4 -> 1.46.5
        mtools: upgrade 4.0.36 -> 4.0.37
        python3-pygments: upgrade 2.11.1 -> 2.11.2
        python3-pyrsistent: upgrade 0.18.0 -> 0.18.1
        python3-ruamel-yaml: upgrade 0.17.19 -> 0.17.20
        vala: upgrade 0.54.4 -> 0.54.6
        pigz: upgrade 2.6 -> 2.7
        rpcsvc-proto: upgrade 1.4.2 -> 1.4.3
        piglit: upgrade to latest revision
        libinput: upgrade 1.19.2 -> 1.19.3
        xwayland: upgrade 21.1.3 -> 21.1.4
        puzzles: upgrade to latest revision
        webkitgtk: upgrade 2.34.2 -> 2.34.3
        diffoscope: upgrade 199 -> 200
        libsoup: upgrade 3.0.3 -> 3.0.4
        liburcu: upgrade 0.13.0 -> 0.13.1
        ffmpeg: upgrade 4.4.1 -> 5.0
        p11-kit: update 0.24.0 -> 0.24.1
        libunistring: update 0.9.10 -> 1.0
        repo: upgrade 2.19 -> 2.20
        stress-ng: upgrade 0.13.09 -> 0.13.10

  Alexey Brodkin (1):
        openssl: Use linux-latomic target for ARC

  Andreas Müller (1):
        libsdl2: Move to CMake build

  Andrei Gherzan (2):
        gcc: Fix compile of gcc plugins
        gcc: Fix typo in linux64.h install patch

  Andres Beltran (2):
        create-spdx: Set the Organization field via a variable
        create-spdx: Fix key errors in do_create_runtime_spdx

  Anton Mikanovich (1):
        bitbake: process: Do not mix stderr with stdout

  Anuj Mittal (3):
        glibc-version.inc: remove branch= from GLIBC_GIT_URI
        releases.rst: move gatesgarth to outdated releases section
        xserver-xorg: update CVE_PRODUCT

  Bruce Ashfield (69):
        linux-yocto/5.14: update to v5.14.15
        linux-yocto/5.10: update to v5.10.76
        linux-yocto-rt/5.10: update to -rt54
        strace: fix build against 5.15 kernel/kernel-headers
        ppp: fix build against 5.15 headers
        linux-libc-headers: update to v5.15
        linux-yocto/5.15: introduce recipes
        linux-yocto-rt/5.15: update to -rt17
        linux-yocto/5.14: update to v5.14.16
        linux-yocto/5.10: update to v5.10.77
        linux-yocto/5.14: update to v5.14.17
        linux-yocto/5.15: update to v5.15.1
        linux-yocto/5.10: update to v5.10.78
        kernel: provide virtual/kernel for all kernels
        linux-yocto/5.15: update to v5.15.2
        linux-yocto/5.14: update to v5.14.18
        linux-yocto/5.10: update to v5.10.79
        kernel-yocto: conditionally enable stack protection checking on x86-64
        linux-yocto-dev: bump to v5.16+
        kernel: export native PKGCONFIG variables
        python: introduce python3-dtschema
        python: import jsonpointer from meta-python
        python3-jsonpointer: Update 2.1 to 2.2
        python: import jsonschema from meta-python
        python: import idna from meta-python
        python: import rfc3339-validator from meta-python
        python: import rfc3986-validator from meta-python
        python: import webcolors from meta-python
        python: import ruamel-yaml from meta-python
        python: import pyrsistent from meta-python
        python: import rfc3987 from meta-pyton
        python: import strict-rfc3339 from meta-python
        python: import vcversioner from meta-python
        maintainers: update for kernel dtschema checking dependencies
        linux-yocto: export pkgconfig variables to devshell
        kernel: introduce python3-dtschema-wrapper
        linux-yocto-dev: introduce dt-validation PACKAGECONFIG
        linux-yocto/5.14: update to v5.14.21
        linux-yocto/5.15: update to v5.15.5
        linux-yocto/5.10: update to v5.10.82
        linux-yocto/5.15: update to v5.15.6
        linux-yocto-dev: use versioned branch as default
        linux-yocto-rt/5.10: update to -rt56
        kern-tools: bug fixes and kgit-gconfig
        linux-yocto/5.10: update to v5.10.84
        linux-yocto/5.15: update to v5.15.7
        linux-yocto/5.15: update to v5.15.8
        linux-yocto/5.10: update to v5.10.85
        linux-yocto/5.15: update to v5.15.10
        linux-yocto/5.10: update to v5.10.87
        linux-yocto/5.10: update to v5.10.89
        linux-yocto/5.15: update to v5.15.12
        linux-yocto/5.14: fix arm 32bit -rt warnings
        linux-yocto/5.15: fix arm 32bit -rt warnings
        linux-yocto/5.10/cfg: add kcov feature fragment
        linux-yocto/5.15/cfg: add kcov feature fragment
        linux-yocto/5.15: update to v5.15.13
        linux-yocto/5.10: update to v5.10.90
        conf/machine: bump qemu preferred versions to 5.15
        linux-yocto: drop 5.14 recipes
        yocto-bsp: change default to 5.15
        yocto-bsp/5.14: drop recipes
        poky: set default kernel to 5.15
        linux-yocto/5.15: fix arm defconfig warnings
        lttng-modules: update to 2.13.1
        linux-yocto/5.10: amdgpu: updates for CVE-2021-42327
        linux-yocto/5.15: update to v5.15.14
        linux-yocto/5.10: update to v5.10.91
        linux-yocto-rt/5.15: update to -rt22

  Chaitanya Vadrevu (1):
        python3-pyelftools: Depend on debugger, pprint

  Changhyeok Bae (2):
        iputils: update 20210722 to 20211215
        iproute2: update 5.15.0 to 5.16.0

  Changqing Li (3):
        cmake: upgrade 3.22.0 -> 3.22.1
        rpm: fix CVE-2021-3521
        pigz: fix one failure of command "unpigz -l"

  Chen Qi (7):
        bitbake: tests/fetch.py: fix premirror test cases
        bitbake: tests/fetch.py: add test case to ensure downloadfilename is used for premirror
        bitbake: fetch2: fix downloadfilename issue with premirror
        opkg: use oe.qa.add_message istead of package_qa_add_message
        avahi: update CVE id fixed by local-ping.patch
        waffle: add cmake-native to DEPENDS
        populate_sdk_base: remove unneeded dirs such as /dev

  Claus Stovgaard (1):
        cups: Fix missing installation of cups sysv init scripts

  Daniel Gomez (1):
        os-release: Add DISTRO_CODENAME as vardeps for do_compile

  Denys Dmytriyenko (3):
        wayland-protocols: upgrade 1.23 -> 1.24
        wayland: upgrade 1.19.0 -> 1.20.0
        mtd-utils: upgrade 2.1.3 -> 2.1.4

  Dhruva Gole (2):
        scripts/checklayer/common.py: Fixed a minor grammatical error
        yocto-check-layer: Add additional README checks

  Dmitry Baryshkov (1):
        go: fix building without SECURITY_LDFLAGS

  Florian Amstutz (1):
        systemd: Fix systemd-journal-gateway user/groups

  He Zhe (1):
        linux-yocto-dev: Set KBRANCH with =

  Jacob Kroon (3):
        native/cross: Add ar wrapper for determinism
        no-static-libs.inc: Fixes
        sstate: Preserve permissions when extracting tar archive

  Jagadeesh Krishnanjanappa (1):
        tune-cortexa72: remove crypto for the default cortex-a72

  Jasper Orschulko (4):
        repo: Add recipe for 2.17.3
        base.bbclass: Add sysroot deps for repo fetcher
        repo: Use separate task for patching repo rev
        repo: upgrade 2.17.3 -> 2.18

  Jim Wilson (1):
        gdb-common: Add --with-liblzma-prefix in xz PACKAGECONFIG.

  Joel Winarske (1):
        mesa: Add PACKAGECONFIG option for broadcom v3d Vulkan driver

  Jon Mason (3):
        runqemu: work without SERIAL_CONSOLES being defined
        scripts/lib/wic/help.py: Update Fedora Kickstart URLs
        yocto-check-layer: disregard checks if referencing another README file

  Jose Quaresma (11):
        sstate: another fix for touching files inside pseudo
        bitbake: cooker: check if upstream hash equivalence server is available
        spirv-headers: upgrade 1.5.4 -> 1.5.5
        spirv-headers: bump to last master
        spirv-tools: upgrade 2021.3 -> 2021.4
        glslang: upgrade 11.6.0 -> 11.7.0
        shaderc: upgrade 2021.2 -> 2021.3
        sstate: cleanup the sstate mirror progress check
        sstate: only search on the mirrors for the missing files
        sstate: add a function to get the sstate file name in sstate_checkhashes
        glslang: upgrade 11.7.0 -> 11.7.1

  Joshua Watt (7):
        classes/meson: Add optional rust definitions
        classes/crate-fetch: Ensure crate fetcher is available
        yocto-check-layer: Relax README case checks
        webkitgtk: Add packageconfig for libsoup2
        epiphany: Add packageconfig for libsoup2
        selftest: reproducible: Set maximum report size
        classes/native: Propagate dependencies to outhash

  Justin Bronder (1):
        bitbake: fetch2/wget: add redirectauth parameter

  Kai Kang (7):
        squashfs-tools: fix CVE-2021-41072
        squashfs-tools: follow-up fix for CVE-2021-41072
        convert-srcuri.py: use regex to check space in SRC_URI
        packagegroup-core-tools-testapps: clear GOTOOLS for riscv32
        xserver-xorg: 21.1.2 -> 21.1.3
        multilib.bbclass: set rpm file color for 32-bit multilib image
        speex: fix CVE-2020-23903

  Kamil Dziezyk (1):
        grub-efi: Add xen_boot support when 'xen' is in DISTRO_FEATURES for aarch64

  Kevin Hao (6):
        meta-yocto-bsp: Introduce the v5.15 bbappend
        tune-cortexa72: Enable the crc extension by default for cortexa72
        arch-armv8-5a.inc: Add tune include for armv8.5a
        armv9a/tune: Add the support for the Neoverse N2 core
        tune-cortexa72: Drop the redundant cortexa72-crc tune
        tune-cortexa73: Introduce cortexa73-crypto tune

  Khairul Rohaizzat Jamaluddin (1):
        epiphany: update 41.0 -> 41.3

  Khem Raj (37):
        wpebackend-fdo: Add -Wno-c++11-narrowing
        musl: Update to tip of trunk
        site/common-musl: Enable qsort_r in glib
        libsolv: Enable correct qsort_r on musl
        kernel-devsrc: Add vdso.lds and other build files for riscv64 as well
        gdb: Upgrade to 11.1
        gdb: Add dependency on libgmp
        librsvg: Disable 64bit atomics on riscv32/mipsel in crossbeam
        qemu: Build on musl targets
        qemu: Fix build on aarch64/musl
        wic: Use os.rename instead of bb.utils.rename
        qemu: Exclude building on riscv32
        ptest-packagelists: Remove qemu ptests for rv32
        gobject-introspection: Add -Dintrospection only when GIR_MESON_OPTION is not empty
        gstreamer1.0-python: Improve introspection option handling
        python3-pygobject: Improve introspection handling
        vulkan-samples: Fix cmake errors about plain signature
        vulkan-samples: Enable for architectures where it builds
        glibc-tests: Do not set SYSTEMD_SERVICE
        image: Include psplash only when screen machine feature is enabled
        weston-init: Pass --continue-without-input when launching weston
        Revert "weston-init: Pass --continue-without-input when launching weston"
        boost: Fix build on arches with no atomics
        glibc: Drop patch to support/workaround prelinked apps on armv5
        libunwind: Enable for rv64
        perf: Enable libunwind packageconfig on riscv64
        glibc: Drop ppc sqrt optimisations
        ffmpeg: Fix build on ppc32
        mesa: Fix build on ARM systems without Neon
        gdb: Drop sh4 support patch
        binutils: Drop patch to wider sh regexp
        mesa: Fix broadcom vulkan driver build on 32bit arches with 64bit time_t
        mesa: Define broadcom packageconfig knob
        glibc: Redo tzselect bash dependency problem
        gcc: Update status of musl stddef.h patch
        libsdl2: Fix build when libunwind is not used
        valgrind: Avoid accessing network in ptest task

  Konrad Weihmann (3):
        insane: add Inactive-Upstream to Upstream-Status
        insane: move src-uri-bad checks to unpack stage
        cve-check: add lockfile to task

  Leif Middelschulte (1):
        meson: improve SDK's wrapper to make Wraps work

  Li Wang (1):
        libtool: change the default AR_FLAGS from "cru" to "cr"

  Lukasz Majewski (1):
        glibc: ptest: Add running glibc time related test suite (Y2038) with ptest

  Manuel Leonhardt (2):
        sstate: Account for reserved characters when shortening sstate filenames
        dpkg: Install dkpg-perl scripts to versioned perl directory

  Marek Vasut (2):
        bootchart2: Add missing python3-math dependency
        u-boot: upgrade 2021.10 -> 2022.01

  Markus Volk (2):
        libva: move PACKAGECONFIG options to libva.inc
        vulkan-loader: inherit pkgconfig

  Martin Jansa (1):
        gdb-cross: add dependency on gmp-native

  Matt Madison (2):
        qemu.bbclass: drop OLDEST_KERNEL reference
        qemu: add patch to set minimum kernel version for riscv32

  Matthias Klein (1):
        gdb: fix aarch64 remote debugging gdb/28355

  Max Krummenacher (4):
        perf: sort-pmuevents: don't drop elements
        perf: sort-pmuevents: allow for additional type qualifiers and storage class
        ref-manual: fix patch documentation
        libsdl2: fix build if egl.pc sets macros in cflags

  Michael Halstead (3):
        releases: update to include 3.3.4
        releases: update to include 3.4.1
        releases: update to include 3.1.13

  Michael Opdenacker (35):
        manuals: correct "take affect" by "take effect"
        manuals: start of documentation standards document
        bitbake: doc: bitbake-user-manual: expand SRC_URI description
        ref-manual: remove reference to TOPDIR
        ref-manual: BBFILES_DYNAMIC - fix punctuation and quoting issues
        ref-manual: simplify SRC_URI reference
        documentation: prepare for 3.1.12 release
        bitbake: bitbake-user-manual: quoting fixes
        bitbake: bitbake-user-manual: fix typo
        bitbake: bitbake-user-manual: add missing reference
        bitbake: bitbake-user-manual: fix backslash issues
        bitbake: bitbake-user-manual: SRC_URI: mention gitsm fetcher
        ref-manual: drop support for Ubuntu 16.04
        ref-manual: drop support for Fedora 30-32
        dev-manual: remove warning about += and :append
        manuals: add hyperlinks to files in meta-skeleton
        dev-manual: how to purge duplicate sstate cache files
        migration-guides: add more class references
        ref-manual: add more class references
        misc manuals: add further class references
        ref-manual: remove newline string in PREMIRRORS
        bitbake: doc: bitbake-user-manual: expand BB_HASHSERVE and document BB_HASHSERVE_UPSTREAM
        documentation: add comment to releases.rst switchers.js
        overview-manual: fix typo
        manuals: replace "rootfs" by "root filesystem"
        quick start manual: update Share State and Hash Equivalence settings
        documentation/README: trivial typo fix
        manuals: document hash equivalence
        dev-manual: update bitbake.conf sample for static libs
        manuals: add reference to GIR_EXTRA_LIBS_PATH plus minor improvements
        migration-guides: prepare for release 3.5
        manuals: simplify references to class sections
        ref-manual: Drop TUNEABI, TUNEABI_WHITELIST, TUNEABI_OVERRIDE
        dev-manual: stop mentioning nightly builds
        bitbake: doc: bitbake-user-manual: expand BB_HASHSERVE explanations

  Mike Crowe (3):
        kernel: improve transformation from KERNEL_IMAGETYPE_FOR_MAKE
        package: Only snap libraries if they would be processed by ldconfig OS-12840
        documentation: Document PACKAGE_SNAP_LIB_SYMLINKS

  Mingli Yu (4):
        wic: use shutil.which
        libpam: Backport ptest fix checking whether files exist
        libhandy: Backport a makefile header race
        bootchart2: remove wait_boot logic

  Oleksandr Kravchuk (5):
        libxcvt: add recipe
        python3: udpate to 3.10.1
        libx11: update to 1.7.3
        xserver-xorg: update to 21.1.2
        ofono: update to 1.34

  Oleksiy Obitotskyy (1):
        package_manager: ipk: Fix host manifest generation

  Otavio Salvador (20):
        acpica: upgrade 20210930 -> 20211217
        asciidoc: upgrade 10.0.2 -> 10.1.1
        alsa-ucm-conf: upgrade 1.2.6.2 -> 1.2.6.3
        bind: upgrade 9.16.23 -> 9.16.24
        kea: upgrade 2.0.0 -> 2.0.1
        meson: upgrade 0.60.2 -> 0.60.3
        mmc-utils: upgrade to latest revision
        python3-attrs: upgrade 21.2.0 -> 21.4.0
        python3-cython: upgrade 0.29.25 -> 0.29.26
        python3-hypothesis: upgrade 6.31.4 -> 6.34.1
        python3-importlib-metadata: upgrade 4.9.0 -> 4.10.0
        python3-pygments: upgrade 2.10.0 -> 2.11.1
        python3-ruamel-yaml: upgrade 0.17.17 -> 0.17.19
        python3-tomli: upgrade 1.2.2 -> 2.0.0
        python3-zipp: upgrade 3.6.0 -> 3.7.0
        sqlite3: upgrade 3.37.0 -> 3.37.1
        stress-ng: upgrade 0.13.08 -> 0.13.09
        python3-dtschema: upgrade 2021.10 -> 2021.12
        mesa: 21.3.1 -> 21.3.3
        libxcrypt, libxcrypt-compat: upgrade 4.4.26 -> 4.4.27

  Paul Eggleton (4):
        classes/kernel*: allow disabling symlink creation
        classes/qemuboot: allow IMAGE_LINK_NAME to be empty
        classes/kernel*: add variables to allow changing artifact extension
        classes/create-spdx: handle if IMAGE_LINK_NAME is empty

  Pavel Zhukov (2):
        go: upgrade 1.16.8 -> 1.16.10
        patch.py: Initialize git repo before patching

  Peter Kjellerstedt (22):
        systemd: Do not install anything in /var/volatile
        base-files: Ignore the empty-dirs QA error due to files in /var/volatile
        apt: Do not install /var/log/apt for target
        insane.bbclass: Add a check for directories that are expected to be empty
        libx11: Update LICENSE to better reflect reality
        libx11-compose-data: Update LICENSE to better reflect reality
        ncurses.inc: Remove a no longer relevant comment
        systemd: Revert inappropriate use of ${systemd_system_unitdir}
        systemd-conf: Revert inappropriate use of ${systemd_system_unitdir}
        systemd-bootchart: Revert inappropriate use of ${systemd_system_unitdir}
        mirrors.bbclass: Clean up the additions to MIRRORS
        own-mirrors.bbclass: Clean up the additions to PREMIRRORS
        gcc-common.inc: Clean up the additions to MIRRORS
        slang: Clean up the additions to PREMIRRORS
        testsdk.py: Clean up the additions to PREMIRRORS and SSTATE_MIRRORS
        gcc-common.inc: Remove mirrors that are no longer available
        tzdata: Make it compatible with devtool modify
        tzdata: Remove unnecessary RPROVIDES
        tzdata: Clean up
        tzdata: Remove no longer relevant RCONFLICTS:${PN}
        rootfs-postcommands.bbclass: Make two comments use the new variable syntax
        systemd: Avoid a Python deprecation warning

  Pgowda (2):
        gcc: Fix CVE-2021-35465
        rust-cross: Replace TARGET_ARCH with TUNE_PKGARCH

  Quentin Schulz (10):
        README.OE-Core.md: update URLs
        ptest-packagelists: Add missing python3-webcolors entry
        make the documentation a bit more inclusive
        docs: dev-manual: common-tasks: highlight creating your own layer is not required
        documentation: conf.py: add knob for loading appropriate objects.inv
        kmscube: fix build on OpenGL ES 3 dependencies not providing GLES3/gl3ext.h
        mesa: PROVIDES virtual/libgles3
        kmscube: add build dependency on virtual/libgles3
        mesa: make ligles3-dev RDEPENDS on libgles2-dev
        bitbake: doc: bitbake-user-manual: specify the URL to be used with SSH over git is different from `git clone`'s

  Randy MacLeod (5):
        valgrind: Add util-linux-taskset ptest dependency
        valgrind: backport rseq work-around
        valgrind: remove duplicate and skipped tests from remove-for-aarch64
        valgrind: skip boost_thread for aarch64 ptests
        valgrind: make run-ptest better

  Richard Purdie (133):
        meta: Add explict branch to git SRC_URIs
        meta/scripts: Manual git url branch additions
        linunistring: Add missing gperf-native dependency
        archiver: Default to xz compresison instead of gz
        gcc: Drop libgfortran patch
        pseudo: Add fcntl64 wrapper
        libgfortran: Set GFORTRAN
        bitbake: fetch2/git: Allow git fetcher to support subdir param
        bitbake: fetch2/git: Add a warning asking users to set a branch in git urls
        bitbake: tests/fetch: Update github urls
        bitbake: fetch/git: Handle github dropping git:// support
        bitbake: fetch/git: Show warning for invalid github urls
        bitbake: lib/bb: Clean up use of len()
        bitbake: daemonize: Avoid unclosed file warning
        bitbake: lib/bb: Fix string concatination potential performance issues
        bitbake: fetch: Handle mirror user/password replacements correctly
        bitbake: tests/fetch: Add test for url parameter rewriting
        bitbake.conf: Fix corruption of GNOME mirror url
        scripts/convert-srcuri: Update SRC_URI conversion script to handle github url changes
        recipes: Update github.com urls to use https
        go-helloworld/glide: Fix urls
        opkg: Fix poor operator combination choice
        bitbake: runqueue: Fix runall option task deletion ordering issue
        bitbake: tests/fetch: Update pcre.org address after github changes
        bitbake: cooker: Handle parse threads disappearing to avoid hangs
        bitbake: fetch2/checksum/siggen: Fix taskhashes not tracking file directories
        bitbake: runqueue: Fix runall option handling
        bitbake: cooker: Remove debug code, oops :(
        bitbake: parse/ast: Show warnings for append/prepend/remove operators combined with +=/.=
        bitbake: fetch/wget: Add timeout for checkstatus calls (30s)
        bitbake: cooker: Handle parsing results queue race
        mirrors: Add uninative mirror on kernel.org
        scripts/oe-package-browser: Fix after overrides change
        scripts/oe-package-browser: Handle no packages being built
        xserver-xorg: Remove orphaned comment
        bitbake: fetch: Add README on fetcher design constraints
        wpa-supplicant: Match package override to PACKAGES for pkg_postinst
        uninative: Add version to uninative tarball name
        packagegroup-core-buildessential: Mark as TUNE_PKGARCH specific
        packagegroups-core-full-cmdline: Drop libraries packagegroup and gmp
        packagegroup-core-full-cmdline: Drop compatibility mappings
        packagegroup-core-x11-base: Drop dbus dependency
        mirrors: Add kernel.org sources mirror for downloads.yoctoproject.org
        bitbake: cooker: Fix task-depends.dot for multiconfig targets
        bitbake: tests/runqueue: Set TOPDIR in test
        bitbake: cookerdata: Set TOPDIR explicitly and fix broken findTopdir()
        bitbake: cache/ConfHandler: Drop TOPDIR/chdir manipulations
        package: Add sanity check for allarch packagegroups
        gcc: Dropping mips workaround
        lua: Backport fix for CVE-2021-43396
        glibc: Backport fix for CVE-2021-43396
        gcc: Tweak Upstream-Status formatting
        bitbake: utils: Handle lockfile filenames that are too long for filesystems
        bitbake: fetch2: Fix url remap issue and add testcase
        bitbake: bitbake-user-manual: Remove newline string in MIRRORS/PREMIRRORS
        buildhistory: Drop support for older bitbakes
        buildhistory: Fix srcrevs output
        ptest-packagelists: Handle glibc vs musl for ptest
        buildhistory: Fix do_package race issues
        bitbake.conf: Pass -D option to ranlib for determisim
        glibc: Fix i586/c3 support
        gcc: Drop no longer needed patch
        ptest-packagelists: Add missing python3-jsonpointer entry
        python3: Add missing HOMEPAGE entries
        nativesdk: Handle chown/chgrp calls in nativesdk do_install tasks
        gcc: Drop mips default ABI patch
        gcc: Drop further unneeded precompiled header patch
        oeqa/utils/dump: Fix typo
        oeqa/parselogs: Fix quoting
        sanity/lib: Replace usage of LooseVersion() with bb.utils.vercmp_string_op()
        patchelf: Upgrade 0.14.1 -> 0.14.2
        debian: Fix renaming packagedata dependencies
        gst-plugins-bad: Add missing libxkbcommon vulkan dependency
        gcc: Update patch status submitted->backport
        minicom: Mark patches as backports
        minicom: Upgrade 2.7.1 -> 2.8
        glibc: Drop patch for obsolete conflict issue
        gst-plugins-bad: Bump cache versions to avoid libxkbcommon sstate issues
        puzzles: Refresh patches based upon upstream discussion
        gcc: Add CVE-2021-37322 to the list of CVEs to ignore
        bitbake: siggen: Ensure dumpsig output is deterministic
        build-appliance-image: Update to master head revision
        binutils: Drop mips gold patch
        binutils: Add more detail to the ppc patch
        binutils: Drop mips default target patch
        perf: Tweak for mips n64
        binutils: Drop mips XLP support patch
        puzzles: Upgrade to latest git with patches merged
        lttng-ust: upgrade 2.13.0 -> 2.13.1
        patchelf: upgrade 0.14.2 -> 0.14.3
        lttng-tools: Backport ptest fix
        lttng-tools: Disable problem tests
        bitbake: tests/runqueue: Improve lockfile handling race
        python3-idna: Update license to Unicode-TOU
        bitbake: tests/fetch: Drop gnu urls from wget connectivity test
        manpages: Fix override/append ordering and hence task signatures
        qemu: Upgrade 6.1.0 -> 6.2.0
        lttng-tools: Upgrade 2.13.1 -> 2.13.2
        oeqa/selftest/bbtests: Use YP sources mirror instead of GNU
        qemu: Add selinux PACKAGECONFIG
        package_deb/ipk/rpm: Add more minimal do_build dependencies back
        meson: Handle qemu riscv issues
        openssl: Add reproducibility fix
        webkitgtk: Add reproducibility fix
        scripts: Update to use exec_module() instead of load_module()
        bitbake: utils: Update to use exec_module() instead of load_module()
        gtk-doc/meson: Fix typos
        libsdl2: Fix X11 configure options
        Revert "qemu.bbclass: drop OLDEST_KERNEL reference"
        allarch: Fix interaction with qemu class
        expat: Update HOMEPAGE to current url
        wayland-protocols: Change inherit order
        sstatetests: Add OLDEST_KERNEL to allarch tests
        oeqa/sstate: Fix allarch samesigs test
        buildtools-installer: Update to use 3.4
        bitbake: utils: Add disable_network function
        bitbake: bitbake-worker: Add/support network task flag
        bitbake: runqueue: Drop BB_STAMP_POLICY/BB_STAMP_WHITELIST
        classes: Only allow network in existing network accessing code
        sanity: Drop TUNEABI, TUNEABI_WHITELIST, TUNEABI_OVERRIDE
        expat: Upgrade 2.4.2 -> 2.4.3
        expat: Drop unneeded libtool patch, we use cmake
        bitbake: doc: Drop BB_STAMP_POLICY/BB_STAMP_WHITELIST
        expat: Simplify ptest-runner
        build-appliance-image: Update to master head revision
        bitbake: build: Tweak exception handling for setscene tasks
        bitbake: fetch2: Add crate fetcher
        sstate: Show better exception information for failures
        sstate: Improve failure to obtain archive message/handling
        abi_version: Bump HASHEQUIV_HASH_VERSION
        crate-fetch: Switch to version contained in bitbake
        build-appliance-image: Update to master head revision
        build-appliance-image: Update to master head revision

  Robert Joslyn (4):
        ref-manual: Fix module_conf typo
        curl: Update to 7.81.0
        curl: Rework openssl and random PACKAGECONFIGs
        maintainers.inc: Add myself as maintainer for curl

  Robert P. J. Day (1):
        ref-manual: generalize definition of "container layer"

  Robert Yang (3):
        sanity.bbclass: Update required gcc version to v7.5
        bitbake: lib/pyinotify.py: Remove deprecated module asyncore
        bitbake: data_smart.py: Skip old override syntax checking for anonymous functions

  Ross Burton (61):
        openssl: fix builds on ARMv8 targets without Aarch64
        python3: silence DeprecationWarnings in python3-config
        meson: set objcopy in the cross and native toolchain files
        ref-manual: improve documentation for SDKMACHINE
        kickstart: update busybox note regarding PARTUUID
        scons: support out-of-tree builds
        vim: fix CVE-2021-3796, CVE-2021-3872, and CVE-2021-3875
        vim: add patch number to CVE-2021-3778 patch
        meta: use ln -rs instead of lnr
        insane: remove unrecognised option check for Meson
        dtc: merge .bb/.inc
        dtc: use Meson to build
        dtc: add PACKAGECONFIGs for tools and yaml
        dtc: fix mingw build
        ncurses: poll() works, but only on Linux
        vim: fix CVE-2021-3927 and CVE-2021-3928
        scripts/lnr: remove
        gmp: fix CVE-2021-43618
        oe/utils: allow naming threads in ThreadedPool
        sstate: explicitly name the checkhashes thread pool
        oe/utils: by default cap cpu_count() to 64 cores
        vim: fix CVE-2021-3968 and CVE-2021-3973
        vim: set PACKAGECONFIG idiomatically
        openssl: fix EVP_PKEY_CTX_get_rsa_pss_saltlen() not returning a value
        recipetool: handle GitLab URLs like we do GitHub
        recipetool: extend curl detection when creating recipes
        glew: update patch status
        libx11: update patch status
        libxkbcommon: remove obsolete util-macros dependency
        libxkbcommon: allow building of API documentation
        xkbcommon: split xkbcli into a separate package
        libxkbcommon: split libraries into separate packages
        xkbcommon: add option for xkbregistry
        tcf-agent: cleanup patches
        vim: upgrade to 8.2 patch 3752
        runqemu: check the qemu PID has been set before kill()ing it
        gstreamer1.0-plugins-bad: clean up X11 dependencies
        libtool: don't prefix the installed binary
        binutils: don't expect libtool to be host-prefixed
        pkgconfig: remove obsolete support for renamed libtool
        gtk+3: remove obsolete support for renamed libtool
        db: remove obsolete support for renamed libtool
        freetype: remove obsolete support for renamed libtool
        apr: remove obsolete support for renamed libtool
        qemu: remove obsolete support for renamed libtool
        subversion: remove obsolete support for renamed libtool
        apmd: remove obsolete support for renamed libtool
        libical: upgrade to 3.0.12
        python3: backport a fix so the test suite passes with OpenSSL 3.0.1
        openssl: upgrade to 3.0.1
        kmod: remove obsolete ac_pwd manipulation
        kmod: merge target/native recipes
        kmod: expand compression PACKAGECONFIGs
        gawk: remove load-sensitive tests
        linux-yocto: add libmpc-native to DEPENDS
        xserver-xorg: whitelist two CVEs
        systemtap: fix vsprintf errors
        oeqa/runtime/stap: rewrite test
        vim: update to include latest CVE fixes
        lighttpd: backport a fix for CVE-2022-22707
        oeqa/runtime/stap: increase buffer size

  S. Lockwood-Childs (1):
        cups: fix typo in flags to disable avahi

  Samuli Piippo (1):
        rpm: remove tmp folder created during install

  Saul Wold (7):
        create_spdx: ensure is_work_shared() is unique
        create-spdx: Protect against None from LICENSE_PATH
        kernel: add -dbg package
        perl: Enable threading
        kernel.bbclass: use common strip()
        package: Add support for kernel stripping
        create-spdx: Add kernel work-shared source

  Schmidt, Adriaan (1):
        wic: support rootdev identified by partition label

  Stefan Herbrechtsmeier (17):
        bitbake: fetch2: npmsw: Add support for duplicate dependencies without url
        bitbake: fetch2: npmsw: Add support for github prefix in npm shrinkwrap version
        bitbake: fetch2: Unify tar command in unpack
        bitbake: fetch2: Add striplevel support to unpack
        bitbake: bitbake-user-manual: Add striplevel unpack parameter
        bitbake: test/fetch: Add striplevel unpack parameter test
        recipetool: Set master branch only as fallback
        selftest/devtool: Check branch in git fetch
        selftest/recipetool: Split tests into separate test classes
        selftest: devtool: Separate common functions and devtool sstate setup into two classes
        selftest/recipetool: Add tests for branch parameter and srcbranch option
        bitbake: fetch: npm: Quote destdir in run chmod command
        bitbake: fetch: npm: Use temporary file for empty user config
        recipetool: Sort output of guess_license function to be deterministic
        recipetool: Separate licenses with & operator
        selftest: recipetool: Add test for split_pkg_licenses function
        selftest: recipetool: Add test for handle_license_vars function

  Steve Sakoman (4):
        ref-system-requirements.rst: Add Debian 11 to list of supported distros
        ref-system-requirements.rst: Add Fedora 33 and 34 to list of supported distros
        ref-system-requirements.rst: Add openSUSE Leap 15.2 to list of supported distros
        cve-extra-exclusions: add db CVEs to exclusion list

  Sundeep KOKKONDA (2):
        glibc : Fix CVE-2022-23218
        glibc : Fix CVE-2022-23219

  Teoh Jay Shen (2):
        linux-yocto/5.10: update genericx86* machines to v5.10.87
        linux-yocto/5.14: update genericx86* machines to v5.14.21

  Thomas Perrot (1):
        uboot-sign: fix the concatenation when multiple U-BOOT configurations are specified

  Tim Orling (29):
        scripts/buildhistory-diff: drop use of distutils
        maintainers.inc: update email address
        poky.yaml: centos-7 python36-pip -> python3-pip
        classes/distutils-*: add warning of deprecation
        setuptools3: refactor for no distutils bbclasses
        dnf: inherit setuptools3-base instead of distutils
        libdnf: inherit setuptools3-base not distutils
        python3-cython: DISTUTILS_* -> SETUPTOOLS_*
        python3-dbus: inherit setuptools3-base not distuils
        gpgme: inherit setuptools-base not distuils
        python3-pip: inherit setuptools3 not distuils3
        systemtap: use setuptools-base not distutils
        libcomps: inherit setuptools3-base not distutils
        createrepo-c: inherit setuptools3-base not distutils
        librepo: inherit setuptools3-base not distutils
        btrfs-tools: use setuptools3-base not distutils
        bind: inherit setuptools3-base instead of distutils
        python3-pygobject: setuptools instead of distuils
        python3-setuptools: do not depend on distutils
        gstreamer1.0-python: inherit setuptools3-base
        recipetool/create_buildsys_python.py: less distutils
        waf.bbclass: drop usage of distutils
        dnf: drop python3-distutils dependency
        python3native.bbclass: distutils -> sysconfig
        rootfs_rpm.bbclass: distutils -> sysconfig module
        python3-hypothesis: upgrade 6.34.1 -> 6.35.0
        ref-manual/variables.rst: add SETUPTOOLS_SETUP_PATH
        ref-manual/variables.rst: add SETUPTOOLS_*_ARGS
        ref-manual/classes.rst: add setuptools3-base

  Tom Hochstein (3):
        wayland: Fix wayland-tools packaging
        nativesdk-packagegroup-sdk-host.bb: Update host tools for wayland
        bitbake.conf: Use wayland distro feature for native builds

  Ulrich Ölmann (1):
        gstreamer1.0-plugins-base: add support for graphene

  Valerii Chernous (1):
        elf: Discard input .note.gnu.build-id sections

  Vivien Didelot (2):
        beaglebone-yocto: prefer u-boot
        beaglebone-yocto: move kernel and dtb to packagegroup-core-boot

  Vyacheslav Yurkov (17):
        overlayfs: all overlays unit
        oeqa/selftest: refactor common functions
        overlayfs: meta-selftest recipe fix
        oeqa/selftest: extend overlayfs test
        overlayfs: add debug information
        ref-manual: update overlayfs class
        rootfs-postcommands: update systemd_create_users
        files: add overlayfs-etc-preinit.sh.in
        wic: image for overlayfs-etc tests
        overlayfs-etc: mount etc as overlayfs
        image: add overlayfs-etc image feature
        oeqa/selftest: overlayfs helper function
        oeqa/selftest: unit tests for overlayfs-etc
        overlayfs: update notes on /etc
        overlayfs: move templates to files directory
        ref-manual: add overlayfs-etc class
        ref-manual: document overlayfs-etc image feature

  Yi Zhao (6):
        bind: remove -r option from rndc-confgen in initscript
        rpcbind: install rpcbind.conf
        python3-numpy: move recipe to python directory
        python3-numpy: add python3-json to RDEPENDS
        oeqa: fix warnings for append operators combined with +=
        meta-skeleton: fix warnings for append operators combined with +=

  Yongxin Liu (1):
        grub2: fix CVE-2021-3981

  Zev Weiss (1):
        u-boot: Split do_configure logic into separate file

  pgowda (2):
        gcc: Fix CVE-2021-42574
        binutils: CVE-2021-42574

  wangmy (67):
        bind: upgrade 9.16.21 -> 9.16.22
        glib-2.0: upgrade 2.70.0 -> 2.70.1
        python3-dbusmock: upgrade 0.24.0 -> 0.24.1
        python3-docutils: upgrade 0.17.1 -> 0.18
        btrfs-tools: upgrade 5.14.2 -> 5.15
        diffoscope: upgrade 189 -> 190
        ell: upgrade 0.44 -> 0.45
        harfbuzz: upgrade 3.0.0 -> 3.1.1
        iproute2: upgrade 5.14.0 -> 5.15.0
        iso-codes: upgrade 4.7.0 -> 4.8.0
        iw: upgrade 5.9 -> 5.16
        libpcre2: upgrade 10.37 -> 10.39
        msmtp: upgrade 1.8.18 -> 1.8.19
        libevdev: upgrade 1.11.0 -> 1.12.0
        libdrm: upgrade 2.4.107 -> 2.4.108
        libhandy: upgrade 1.4.0 -> 1.5.0
        python3-importlib-metadata: upgrade 4.8.1 -> 4.8.2
        python3-jinja2: upgrade 3.0.2 -> 3.0.3
        python3-more-itertools: upgrade 8.10.0 -> 8.11.0
        libtasn1: upgrade 4.17.0 -> 4.18.0
        ethtool: upgrade 5.14 -> 5.15
        stress-ng: upgrade 0.13.06 -> 0.13.07
        systemtap: upgrade 4.5 -> 4.6
        python3-scons: upgrade 4.2.0 -> 4.3.0
        libcap: upgrade 2.60 -> 2.61
        mesa: upgrade 21.2.5 -> 21.3.0
        python3-mako: upgrade 1.1.5 -> 1.1.6
        libjpeg-turbo: upgrade 2.1.1 -> 2.1.2
        libdrm: upgrade 2.4.108 -> 2.4.109
        libsoup-2.4: upgrade 2.74.1 -> 2.74.2
        libunwind: upgrade 1.5.0 -> 1.6.0
        libexif: upgrade 0.6.23 -> 0.6.24
        mtools: upgrade 4.0.35 -> 4.0.36
        patchelf: upgrade 0.13 -> 0.14.1
        sqlite3: upgrade 3.36.0 -> 3.37.0
        sysklogd: upgrade 2.2.3 -> 2.3.0
        ovmf: upgrade 202108 -> 202111
        python3-docutils: upgrade 0.18 -> 0.18.1
        python3-libarchive-c: upgrade 3.1 -> 3.2
        sysstat: upgrade 12.4.3 -> 12.4.4
        vala: upgrade 0.54.3 -> 0.54.4
        xauth: upgrade 1.1 -> 1.1.1
        mpg123: upgrade 1.29.2 -> 1.29.3
        python3-cython: upgrade 0.29.24 -> 0.29.25
        libcap: upgrade 2.61 -> 2.62
        linux-firmware: upgrade 20211027 -> 20211216
        python3-importlib-metadata: upgrade 4.8.2 -> 4.9.0
        sysvinit: upgrade 3.00 -> 3.01
        python3-dbusmock: upgrade 0.24.1 -> 0.25.0
        python3-numpy: upgrade 1.21.4 -> 1.21.5
        expat: upgrade 2.4.1 -> 2.4.2
        gnupg: upgrade 2.3.3 -> 2.3.4
        ell: upgrade 0.46 -> 0.47
        bash: upgrade 5.1.8 -> 5.1.16
        createrepo-c: upgrade 0.17.7 -> 0.18.0
        bluez5: upgrade 5.62 -> 5.63
        iso-codes: upgrade 4.8.0 -> 4.9.0
        less: upgrade 598 -> 600
        libpipeline: upgrade 1.5.4 -> 1.5.5
        diffoscope: upgrade 196 -> 199
        libsdl2: upgrade 2.0.18 -> 2.0.20
        hdparm: upgrade 9.62 -> 9.63
        mesa: upgrade 21.3.3 -> 21.3.4
        python3-git: upgrade 3.1.24 -> 3.1.26
        python3-numpy: upgrade 1.22.0 -> 1.22.1
        strace: upgrade 5.15 -> 5.16
        btrfs-tools: upgrade 5.15.1 -> 5.16

  zhengruoqin (9):
        opkg-utils: upgrade 0.4.5 -> 0.5.0
        opkg: upgrade 0.4.5 -> 0.5.0
        glib-networking: upgrade 2.70.0 -> 2.70.1
        stress-ng: upgrade 0.13.07 -> 0.13.08
        vte: upgrade 0.66.0 -> 0.66.2
        rt-tests: upgrade 2.2 -> 2.3
        shadow: upgrade 4.9 -> 4.10
        libmicrohttpd: upgrade 0.9.73 -> 0.9.75
        gtk+3: upgrade 3.24.30 -> 3.24.31

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I11c88e9f9999d629de5a0ecdb44ccc1003b02376
diff --git a/meta-openembedded/contrib/oe-stylize.py b/meta-openembedded/contrib/oe-stylize.py
index e1ba1b3..30b460e 100755
--- a/meta-openembedded/contrib/oe-stylize.py
+++ b/meta-openembedded/contrib/oe-stylize.py
@@ -210,8 +210,8 @@
     'others'
 ]
 
-varRegexp = r'^([a-zA-Z_0-9${}-]*)([ \t]*)([+.:]?=[+.]?)([ \t]*)([^\t]+)'
-routineRegexp = r'^([a-zA-Z0-9_ ${}-]+?)\('
+varRegexp = r'^([a-zA-Z_0-9${}:-]*)([ \t]*)([+.:]?=[+.]?)([ \t]*)([^\t]+)'
+routineRegexp = r'^([a-zA-Z0-9_ ${}:-]+?)\('
 
 # Variables seen in the processed .bb
 seen_vars = {}
@@ -369,7 +369,7 @@
             line = line.expandtabs().rstrip()
             # ignore empty lines (or line filled with spaces or tabs only)
             # so that rule6 is always respected
-            if line is not '':
+            if line != '':
                 lines.append(line)
 
     # -- parse the file --
@@ -386,7 +386,7 @@
         line = follow_rule(6, line)
 
         # ignore empty lines
-        if line.isspace() or line is '':
+        if line.isspace() or line == '':
             # flush comments into the olines
             for c in commentBloc:
                 olines.append(c)
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb
index d9864ac..e4a0f95 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb
@@ -11,7 +11,7 @@
 LIC_FILES_CHKSUM = "file://fsck.c;md5=3859dc73da97909ff1d0125e88a27e02"
 DEPENDS = "zlib"
 
-SRC_URI = "git://github.com/prasad-joshi/logfsprogs.git \
+SRC_URI = "git://github.com/prasad-joshi/logfsprogs.git;branch=master;protocol=https \
            file://0001-Add-LDFLAGS-to-linker-cmdline.patch \
            file://0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch \
            file://0001-include-sys-sysmacros.h-for-major-minor-definition.patch \
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb
index eb75699..c4bb94e 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb
@@ -10,7 +10,7 @@
 DEPENDS = "fuse virtual/libusb0"
 # v3.2p3
 SRCREV = "3744375dfaa350e31c9b360eb1e1a517bbeb5c47"
-SRC_URI = "git://github.com/owfs/owfs \
+SRC_URI = "git://github.com/owfs/owfs;branch=master;protocol=https \
            file://0001-Add-build-rule-for-README.patch \
            file://0001-Fix-compilation-with-GCC10.patch \
            file://owhttpd \
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_0.4.0.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_0.4.0.bb
new file mode 100644
index 0000000..2335771
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_0.4.0.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "SIMPLE-MTPFS is a FUSE based filsystem for MTP devices connected via USB"
+HOMEPAGE = "https://github.com/phatina/simple-mtpfs"
+BUGTRACKER = "19e7bb9b608b0c0dce2ee6f56fac75901bc69529"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
+
+DEPENDS = "fuse libmtp autoconf-archive"
+
+inherit autotools pkgconfig
+
+SRC_URI = "git://github.com/phatina/simple-mtpfs.git;protocol=https;branch=master"
+SRCREV = "19e7bb9b608b0c0dce2ee6f56fac75901bc69529"
+
+S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb
deleted file mode 100644
index 595b349..0000000
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "SIMPLE-MTPFS is a FUSE based filsystem for MTP devices connected via USB"
-HOMEPAGE = "https://github.com/phatina/simple-mtpfs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
-
-DEPENDS = "fuse libmtp"
-
-inherit autotools pkgconfig
-
-# 0.3.0
-SRC_URI = "git://github.com/phatina/simple-mtpfs.git;protocol=https;branch=master"
-SRCREV = "c9a691fc52fafaa55d26ac629856153c0514015a"
-
-S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.2.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.2.bb
index 60b664f..8eeca84 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.2.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.2.bb
@@ -6,7 +6,7 @@
 DEPENDS = "glib-2.0 fuse3"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
-SRC_URI = "git://github.com/libfuse/sshfs"
+SRC_URI = "git://github.com/libfuse/sshfs;branch=master;protocol=https"
 SRCREV = "9700b353700589dcc462205c638bcb40219a49c2"
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.2.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.2.bb
index 0cc0298..03ae418 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.2.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.2.bb
@@ -6,7 +6,7 @@
                     file://LICENSE;md5=7e5a37fce17307066eec6b23546da3b3 \
 "
 
-SRC_URI = "git://github.com/rpodgorny/${BPN}.git;branch=master \
+SRC_URI = "git://github.com/rpodgorny/${BPN}.git;branch=master;protocol=https \
            file://0001-support-cross-compiling.patch \
            "
 SRCREV = "b0e3805d3d84d44ddf3e4e5238ae0332145d8157"
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.14.0.bb b/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.14.0.bb
index d0b299f..14af721 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.14.0.bb
+++ b/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.14.0.bb
@@ -8,7 +8,7 @@
 DEPENDS = "util-linux"
 
 SRCREV = "d41dcbdf46dc3841cd0a0507e6573e38cb6c55bb"
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git \
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git;branch=master \
            "
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
 
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/fatcat/fatcat_1.1.0.bb b/meta-openembedded/meta-filesystems/recipes-utils/fatcat/fatcat_1.1.0.bb
index c726717..c90a7ec 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/fatcat/fatcat_1.1.0.bb
+++ b/meta-openembedded/meta-filesystems/recipes-utils/fatcat/fatcat_1.1.0.bb
@@ -7,7 +7,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=57fbbfebd0dd1d6ff21b8cecb552a03f"
 
-SRC_URI = "git://github.com/Gregwar/fatcat.git \
+SRC_URI = "git://github.com/Gregwar/fatcat.git;branch=master;protocol=https \
            file://0001-Use-unistd.h-not-argp.h-for-all-POSIX-systems.patch \
            "
 
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/fatresize/fatresize_1.1.0.bb b/meta-openembedded/meta-filesystems/recipes-utils/fatresize/fatresize_1.1.0.bb
index ec7e7f9..2517e9d 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/fatresize/fatresize_1.1.0.bb
+++ b/meta-openembedded/meta-filesystems/recipes-utils/fatresize/fatresize_1.1.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
-SRC_URI = "git://salsa.debian.org/parted-team/fatresize.git;protocol=https \
+SRC_URI = "git://salsa.debian.org/parted-team/fatresize.git;protocol=https;branch=master \
            file://0001-build-Do-not-build-.sgml-file.patch \
           "
 SRCREV = "12da22087de2ec43f0fe5af1237389e94619c483"
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_1.9.bb b/meta-openembedded/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_1.9.bb
index 12943b2..11cbb2d 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_1.9.bb
+++ b/meta-openembedded/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_1.9.bb
@@ -6,7 +6,7 @@
 
 SRCREV = "517c0b01e47d4441cc45be351509fb4c96843d5a"
 
-SRC_URI = "git://github.com/westerndigitalcorporation/ufs-utils.git;protocol=git;branch=${BRANCH} \
+SRC_URI = "git://github.com/westerndigitalcorporation/ufs-utils.git;protocol=https;branch=${BRANCH} \
            file://0001-Use-asm-type.h-for-kernel-types.patch \
 "
 
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.9.bb b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.9.bb
index 3e18fba..3b06730 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.9.bb
+++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.9.bb
@@ -25,8 +25,6 @@
 
 CFLAGS += "-D_FILE_OFFSET_BITS=64"
 
-EXTRA_OEMAKE += "'LIBTOOL=${HOST_SYS}-libtool' V=1"
-
 do_configure () {
     export DEBUG="-DNDEBUG"
     install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/folks/folks_0.15.4.bb b/meta-openembedded/meta-gnome/recipes-connectivity/folks/folks_0.15.4.bb
new file mode 100644
index 0000000..3e57fbb
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-connectivity/folks/folks_0.15.4.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Folks is a contact aggregation library."
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+DEPENDS = " \
+    dbus-glib \
+    glib-2.0 \
+    libgee \
+    libxml2 \
+    python3-dbusmock-native \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+PACKAGECONFIG[eds] = "-Deds_backend=true,-Deds_backend=false,evolution-data-server"
+PACKAGECONFIG[bluez] = "-Dbluez_backend=true,-Dbluez_backend=false"
+PACKAGECONFIG[ofono] = "-Dofono_backend=true,-Dofono_backend=false"
+PACKAGECONFIG[telepathy] = "-Dtelepathy_backend=true,-Dtelepathy_backend=false,telepathy-glib"
+
+PACKAGECONFIG ??= ""
+
+inherit pkgconfig gnomebase gettext gobject-introspection vala features_check
+
+SRC_URI[archive.sha256sum] = "e71099afc9e88fad4e757ae134bc3fd63e12b901ad62b0ed5536afb79124af5f"
+
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/libnma/libnma_1.8.30.bb b/meta-openembedded/meta-gnome/recipes-connectivity/libnma/libnma_1.8.30.bb
deleted file mode 100644
index fffd2b7..0000000
--- a/meta-openembedded/meta-gnome/recipes-connectivity/libnma/libnma_1.8.30.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "NetworkManager GUI library"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "glib-2.0 gtk+3 networkmanager"
-
-GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gobject-introspection gtk-doc gettext vala features_check
-
-REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG','gcr','x11','',d)}"
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI[archive.md5sum] = "e1ccac96405861ecab195be5524baae6"
-SRC_URI[archive.sha256sum] = "da33e72a49e07d855d97a52aa9a8962a4c96f52b9168c4e0027117ad8ffdafb4"
-
-PACKAGECONFIG ?= "gcr iso_codes mobile_broadband_provider_info"
-PACKAGECONFIG[gcr] = "-Dgcr=true,-Dgcr=false,gcr"
-PACKAGECONFIG[iso_codes] = "-Diso_codes=true,-Diso_codes=false,iso-codes,iso-codes"
-PACKAGECONFIG[mobile_broadband_provider_info] = "-Dmobile_broadband_provider_info=true,-Dmobile_broadband_provider_info=false,mobile-broadband-provider-info,mobile-broadband-provider-info"
-
-# go introspection is not supported for mipsn32/riscv32, but vapi needs it
-#
-EXTRA_OEMESON:append:mipsarchn32 = " -Dvapi=false"
-EXTRA_OEMESON:append:riscv32 = " -Dvapi=false"
-EXTRA_OEMESON:append:powerpc64le = " -Dvapi=false"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/libnma/libnma_1.8.32.bb b/meta-openembedded/meta-gnome/recipes-connectivity/libnma/libnma_1.8.32.bb
new file mode 100644
index 0000000..747c67b
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-connectivity/libnma/libnma_1.8.32.bb
@@ -0,0 +1,26 @@
+SUMMARY = "NetworkManager GUI library"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "glib-2.0 gtk+3 networkmanager"
+
+GNOMEBASEBUILDCLASS = "meson"
+inherit gnomebase gobject-introspection gtk-doc gettext vala features_check
+
+REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG','gcr','x11','',d)}"
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI[archive.sha256sum] = "0a57b93a2fad43acc763f320dd3a7a93c429b0e3118dfa549d67824cddc4e905"
+
+PACKAGECONFIG ?= "gcr iso_codes mobile_broadband_provider_info"
+PACKAGECONFIG[gcr] = "-Dgcr=true,-Dgcr=false,gcr"
+PACKAGECONFIG[iso_codes] = "-Diso_codes=true,-Diso_codes=false,iso-codes,iso-codes"
+PACKAGECONFIG[mobile_broadband_provider_info] = "-Dmobile_broadband_provider_info=true,-Dmobile_broadband_provider_info=false,mobile-broadband-provider-info,mobile-broadband-provider-info"
+
+# go introspection is not supported for mipsn32/riscv32, but vapi needs it
+#
+EXTRA_OEMESON:append:mipsarchn32 = " -Dvapi=false"
+EXTRA_OEMESON:append:riscv32 = " -Dvapi=false"
+EXTRA_OEMESON:append:powerpc64le = " -Dvapi=false"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet/0001-meson.build-address-meson-0.61-failures.patch b/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet/0001-meson.build-address-meson-0.61-failures.patch
new file mode 100644
index 0000000..4a5cd5b
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet/0001-meson.build-address-meson-0.61-failures.patch
@@ -0,0 +1,31 @@
+From ab27e6e6c839e1c65e4059a06982453a7aa1b6b3 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 21 Jan 2022 22:34:09 +0100
+Subject: [PATCH] meson.build: address meson 0.61 failures
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/107]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ meson.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 7ab613c8..688a7311 100644
+--- a/meson.build
++++ b/meson.build
+@@ -253,7 +253,6 @@ desktop_file_validate = find_program('desktop-file-validate', required: false)
+ 
+ foreach desktop: desktop_files
+   i18n.merge_file(
+-    desktop + '-desktop',
+     input: desktop + '.desktop.in',
+     output: desktop + '.desktop',
+     install: true,
+@@ -274,7 +273,6 @@ endforeach
+ appdata = 'nm-connection-editor.appdata.xml'
+ 
+ i18n.merge_file(
+-  'desktop',
+   input: appdata + '.in',
+   output: appdata,
+   install: true,
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.24.0.bb b/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.24.0.bb
index 6ebb3ea..c181d39 100644
--- a/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.24.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.24.0.bb
@@ -9,6 +9,7 @@
 
 REQUIRED_DISTRO_FEATURES = "x11"
 
+SRC_URI += " file://0001-meson.build-address-meson-0.61-failures.patch"
 SRC_URI[archive.sha256sum] = "b9f4bca5d0352718e07b7385fb195a9bbc8fd686b7959b74137854d52aab9c58"
 
 # We don't not have ubuntu's appindicator (yet?)
diff --git a/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_1.3.0.bb b/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_1.3.0.bb
deleted file mode 100644
index 9cca071..0000000
--- a/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_1.3.0.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "A partition editor to graphically manage disk partitions "
-HOMEPAGE = "http://gparted.org/index.php"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit features_check autotools pkgconfig python3native gnome-help gtk-icon-cache
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = " \
-    ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
-    file://0001-Install-polkit-action-unconditionally-executable-pke.patch \
-"
-SRC_URI[sha256sum] = "8dc180245dd9ea45e6e2f4bc69512f187e08be7f799c98a825a0b04c161cbd2a"
-
-DEPENDS += " \
-    glib-2.0-native \
-    yelp-tools-native \
-    intltool-native \
-    glib-2.0 \
-    gtkmm3 \
-    parted \
-"
-
-FILES:${PN} += " \
-    ${datadir}/appdata \
-    ${datadir}/icons \
-"
-
-PACKAGES += "${PN}-polkit"
-FILES:${PN}-polkit = "${datadir}/polkit-1"
-
-RDEPENDS:${PN} = " \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', '${PN}-polkit', '', d)} \
-    dosfstools \
-    mtools \
-    e2fsprogs \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_1.3.1.bb b/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_1.3.1.bb
new file mode 100644
index 0000000..1c8dd69
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_1.3.1.bb
@@ -0,0 +1,41 @@
+SUMMARY = "A partition editor to graphically manage disk partitions "
+HOMEPAGE = "http://gparted.org/index.php"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit features_check autotools pkgconfig python3native gnome-help gtk-icon-cache
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = " \
+    ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
+    file://0001-Install-polkit-action-unconditionally-executable-pke.patch \
+"
+SRC_URI[sha256sum] = "5eee2e6d74b15ef96b13b3a2310c868ed2298e03341021e7d12a5a98a1d1e109"
+
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/gparted/files/gparted/"
+UPSTREAM_CHECK_REGEX = "gparted-(?P<pver>\d+\.(\d+)+(\.\d+)+)"
+
+DEPENDS += " \
+    glib-2.0-native \
+    yelp-tools-native \
+    intltool-native \
+    glib-2.0 \
+    gtkmm3 \
+    parted \
+"
+
+FILES:${PN} += " \
+    ${datadir}/appdata \
+    ${datadir}/icons \
+"
+
+PACKAGES += "${PN}-polkit"
+FILES:${PN}-polkit = "${datadir}/polkit-1"
+
+RDEPENDS:${PN} = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', '${PN}-polkit', '', d)} \
+    dosfstools \
+    mtools \
+    e2fsprogs \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl/0001-Fix-build-with-OpenEXR-3.patch b/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl/0001-Fix-build-with-OpenEXR-3.patch
deleted file mode 100644
index b2f13af..0000000
--- a/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl/0001-Fix-build-with-OpenEXR-3.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 073d622fbf8564271cd9be87c2f619ea00498578 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 1 May 2021 08:25:24 -0700
-Subject: [PATCH] Fix build with OpenEXR 3
-
-Add a header that is no longer transitively included
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gegl/-/merge_requests/96]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- operations/external/exr-save.cc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/operations/external/exr-save.cc b/operations/external/exr-save.cc
-index 1e8c09d..87abed5 100644
---- a/operations/external/exr-save.cc
-+++ b/operations/external/exr-save.cc
-@@ -45,6 +45,7 @@ extern "C" {
- #include <ImfChromaticities.h>
- #include <ImfStandardAttributes.h>
- #include <ImfArray.h>
-+#include <ImfFrameBuffer.h>
- #include "ImathRandom.h"
- 
- 
--- 
-2.31.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.30.bb b/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.30.bb
deleted file mode 100644
index 80faa52..0000000
--- a/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.30.bb
+++ /dev/null
@@ -1,62 +0,0 @@
-SUMMARY = "GEGL (Generic Graphics Library) is a graph based image processing framework"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f1a8bfcbc85304df454b65d378b299c7"
-
-DEPENDS = " \
-    intltool-native \
-    babl \
-    glib-2.0 \
-    cairo \
-    expat \
-    zlib \
-    \
-    json-glib \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit features_check gnomebase vala gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SHPV = "${@gnome_verdir("${PV}")}"
-
-SRC_URI = " \
-    https://download.gimp.org/pub/${BPN}/${SHPV}/${BP}.tar.xz \
-    file://0001-Fix-build-with-OpenEXR-3.patch \
-"
-SRC_URI[sha256sum] = "c112782cf4096969e23217ccdfabe42284e35d5435ff0c43d40e4c70faeca8dd"
-
-PACKAGECONFIG ??= "gexiv2 jpeg libpng libraw librsvg pango poppler sdl2"
-PACKAGECONFIG:class-native = "libpng librsvg"
-
-PACKAGECONFIG[jasper] = "-Djasper=enabled,-Djasper=disabled,jasper"
-PACKAGECONFIG[gexiv2] = "-Dgexiv2=enabled,-Dgexiv2=disabled,gexiv2"
-PACKAGECONFIG[graphviz] = "-Dgraphviz=enabled,-Dgraphviz=disabled,graphviz"
-PACKAGECONFIG[jpeg] = "-Dlibjpeg=enabled,-Dlibjpeg=disabled,jpeg"
-PACKAGECONFIG[lcms] = "-Dlcms=enabled,-Dlcms=disabled,lcms"
-PACKAGECONFIG[libav] = "-Dlibav=enabled,-Dlibav=disabled,libav"
-PACKAGECONFIG[libpng] = "-Dlibpng=enabled,-Dlibpng=disabled,libpng"
-PACKAGECONFIG[libraw] = "-Dlibraw=enabled,-Dlibraw=disabled,libraw"
-PACKAGECONFIG[librsvg] = "-Dlibrsvg=enabled,-Dlibrsvg=disabled,librsvg"
-PACKAGECONFIG[pango] = "-Dpango=enabled -Dpangocairo=enabled,-Dpango=disabled -Dpangocairo=disabled,pango"
-PACKAGECONFIG[poppler] = "-Dpoppler=enabled,-Dpoppler=disabled,poppler"
-PACKAGECONFIG[sdl] = "-Dsdl1=enabled,-Dsdl1=disabled,virtual/libsdl"
-PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2"
-PACKAGECONFIG[tiff] = "-Dlibtiff=enabled,-Dlibtiff=disabled,tiff"
-PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,webp"
-
-# There are a couple of non-symlink .so files installed into libdir, which need to go into main package
-FILES:${PN} += " \
-    ${libdir}/*.so \
-    ${libdir}/gegl-${SHPV}/*.json \
-    ${libdir}/gegl-${SHPV}/*.so \
-"
-FILES_SOLIBSDEV = "${libdir}/libgegl-${SHPV}${SOLIBSDEV}"
-
-# Fails to build with thumb-1 (qemuarm)
-# gegl-0.2.0/operations/common/matting-global.c: In function 'matting_process':
-# gegl-0.2.0/operations/common/matting-global.c:463:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275
-ARM_INSTRUCTION_SET = "arm"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.34.bb b/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.34.bb
new file mode 100644
index 0000000..2f8928d
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.34.bb
@@ -0,0 +1,59 @@
+SUMMARY = "GEGL (Generic Graphics Library) is a graph based image processing framework"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f1a8bfcbc85304df454b65d378b299c7"
+
+DEPENDS = " \
+    intltool-native \
+    babl \
+    glib-2.0 \
+    cairo \
+    expat \
+    zlib \
+    \
+    json-glib \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit features_check gnomebase vala gobject-introspection
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SHPV = "${@gnome_verdir("${PV}")}"
+
+SRC_URI = "https://download.gimp.org/pub/${BPN}/${SHPV}/${BP}.tar.xz"
+SRC_URI[sha256sum] = "ef63f0bca5b431c6119addd834ca7fbb507c900c4861c57b3667b6f4ccfcaaaa"
+
+PACKAGECONFIG ??= "gexiv2 jpeg libpng libraw librsvg pango poppler sdl2"
+PACKAGECONFIG:class-native = "libpng librsvg"
+
+PACKAGECONFIG[jasper] = "-Djasper=enabled,-Djasper=disabled,jasper"
+PACKAGECONFIG[gexiv2] = "-Dgexiv2=enabled,-Dgexiv2=disabled,gexiv2"
+PACKAGECONFIG[graphviz] = "-Dgraphviz=enabled,-Dgraphviz=disabled,graphviz"
+PACKAGECONFIG[jpeg] = "-Dlibjpeg=enabled,-Dlibjpeg=disabled,jpeg"
+PACKAGECONFIG[lcms] = "-Dlcms=enabled,-Dlcms=disabled,lcms"
+PACKAGECONFIG[libav] = "-Dlibav=enabled,-Dlibav=disabled,libav"
+PACKAGECONFIG[libpng] = "-Dlibpng=enabled,-Dlibpng=disabled,libpng"
+PACKAGECONFIG[libraw] = "-Dlibraw=enabled,-Dlibraw=disabled,libraw"
+PACKAGECONFIG[librsvg] = "-Dlibrsvg=enabled,-Dlibrsvg=disabled,librsvg"
+PACKAGECONFIG[pango] = "-Dpango=enabled -Dpangocairo=enabled,-Dpango=disabled -Dpangocairo=disabled,pango"
+PACKAGECONFIG[poppler] = "-Dpoppler=enabled,-Dpoppler=disabled,poppler"
+PACKAGECONFIG[sdl] = "-Dsdl1=enabled,-Dsdl1=disabled,virtual/libsdl"
+PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2"
+PACKAGECONFIG[tiff] = "-Dlibtiff=enabled,-Dlibtiff=disabled,tiff"
+PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,webp"
+
+# There are a couple of non-symlink .so files installed into libdir, which need to go into main package
+FILES:${PN} += " \
+    ${libdir}/*.so \
+    ${libdir}/gegl-${SHPV}/*.json \
+    ${libdir}/gegl-${SHPV}/*.so \
+"
+FILES_SOLIBSDEV = "${libdir}/libgegl-${SHPV}${SOLIBSDEV}"
+
+# Fails to build with thumb-1 (qemuarm)
+# gegl-0.2.0/operations/common/matting-global.c: In function 'matting_process':
+# gegl-0.2.0/operations/common/matting-global.c:463:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275
+ARM_INSTRUCTION_SET = "arm"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-gnome/recipes-gimp/gimp/gimp_2.10.24.bb b/meta-openembedded/meta-gnome/recipes-gimp/gimp/gimp_2.10.24.bb
deleted file mode 100644
index 4b0f43b..0000000
--- a/meta-openembedded/meta-gnome/recipes-gimp/gimp/gimp_2.10.24.bb
+++ /dev/null
@@ -1,70 +0,0 @@
-SUMMARY = "The GIMP is the GNU Image Manipulation Program"
-HOMEPAGE = "http://www.gimp.org"
-SECTION = "x11/graphics"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e"
-
-DEPENDS = " \
-    alsa-lib \
-    atk \
-    cairo \
-    fontconfig \
-    freetype \
-    gdk-pixbuf-native \
-    intltool-native \
-    libxslt-native \
-    gegl-native \
-    dbus-glib \
-    gtk+ \
-    babl \
-    gegl \
-    libmypaint \
-    mypaint-brushes-1.0 \
-    gexiv2 \
-    jpeg \
-    libmng \
-    libpng \
-    libexif \
-    tiff \
-    lcms \
-    poppler \
-    poppler-data \
-    jasper \
-    bzip2 \
-    libgudev \
-    libmng \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)} \
-"
-DEPENDS:append:libc-musl = " libexecinfo"
-
-inherit features_check gnomebase gtk-icon-cache gtk-doc mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SHPV = "${@gnome_verdir("${PV}")}"
-
-SRC_URI = "https://download.gimp.org/pub/${BPN}/v${SHPV}/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "bd1bb762368c0dd3175cf05006812dd676949c3707e21f4e6857435cb435989e"
-
-EXTRA_OECONF = "--disable-python \
-                --without-webkit \
-                --disable-check-update \
-                --without-wmf"
-
-EXTRA_OECONF:append:toolchain-clang:riscv32 = " --disable-vector-icons"
-EXTRA_OECONF:append:toolchain-clang:mips = " --disable-vector-icons"
-
-do_configure:append() {
-    find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g
-    find ${B} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g
-}
-
-do_compile:prepend() {
-    # Let native babl/gegl find their plugins
-    export BABL_PATH=`find ${STAGING_LIBDIR_NATIVE} -maxdepth 1 -name 'babl-*'`
-    export GEGL_PATH=`find ${STAGING_LIBDIR_NATIVE} -maxdepth 1 -name 'gegl-*'`
-}
-
-FILES:${PN}  += "${datadir}/metainfo"
-
-RDEPENDS:${PN} += "mypaint-brushes-1.0"
diff --git a/meta-openembedded/meta-gnome/recipes-gimp/gimp/gimp_2.10.30.bb b/meta-openembedded/meta-gnome/recipes-gimp/gimp/gimp_2.10.30.bb
new file mode 100644
index 0000000..a74e240
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gimp/gimp/gimp_2.10.30.bb
@@ -0,0 +1,70 @@
+SUMMARY = "The GIMP is the GNU Image Manipulation Program"
+HOMEPAGE = "http://www.gimp.org"
+SECTION = "x11/graphics"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e"
+
+DEPENDS = " \
+    alsa-lib \
+    atk \
+    cairo \
+    fontconfig \
+    freetype \
+    gdk-pixbuf-native \
+    intltool-native \
+    libxslt-native \
+    gegl-native \
+    dbus-glib \
+    gtk+ \
+    babl \
+    gegl \
+    libmypaint \
+    mypaint-brushes-1.0 \
+    gexiv2 \
+    jpeg \
+    libmng \
+    libpng \
+    libexif \
+    tiff \
+    lcms \
+    poppler \
+    poppler-data \
+    jasper \
+    bzip2 \
+    libgudev \
+    libmng \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)} \
+"
+DEPENDS:append:libc-musl = " libexecinfo"
+
+inherit features_check gnomebase gtk-icon-cache gtk-doc mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SHPV = "${@gnome_verdir("${PV}")}"
+
+SRC_URI = "https://download.gimp.org/pub/${BPN}/v${SHPV}/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "88815daa76ed7d4277eeb353358bafa116cd2fcd2c861d95b95135c1d52b67dc"
+
+EXTRA_OECONF = "--disable-python \
+                --without-webkit \
+                --disable-check-update \
+                --without-wmf"
+
+EXTRA_OECONF:append:toolchain-clang:riscv32 = " --disable-vector-icons"
+EXTRA_OECONF:append:toolchain-clang:mips = " --disable-vector-icons"
+
+do_configure:append() {
+    find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g
+    find ${B} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g
+}
+
+do_compile:prepend() {
+    # Let native babl/gegl find their plugins
+    export BABL_PATH=`find ${STAGING_LIBDIR_NATIVE} -maxdepth 1 -name 'babl-*'`
+    export GEGL_PATH=`find ${STAGING_LIBDIR_NATIVE} -maxdepth 1 -name 'gegl-*'`
+}
+
+FILES:${PN}  += "${datadir}/metainfo"
+
+RDEPENDS:${PN} += "mypaint-brushes-1.0"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/amtk/amtk_5.2.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/amtk/amtk_5.2.0.bb
deleted file mode 100644
index 41cda1e..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/amtk/amtk_5.2.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Actions, Menus and Toolbars Kit"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = " \
-    glib-2.0-native \
-    gtk+3 \
-"
-
-inherit gnomebase gettext features_check gobject-introspection
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI[archive.sha256sum] = "820545bb4cf87ecebc2c3638d6b6e58b8dbd60a419a9b43cf020124e5dad7078"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/amtk/amtk_5.3.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/amtk/amtk_5.3.1.bb
new file mode 100644
index 0000000..d4d91ed
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/amtk/amtk_5.3.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Actions, Menus and Toolbars Kit"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = " \
+    glib-2.0-native \
+    gtk+3 \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+GIR_MESON_OPTION = ""
+
+inherit gnomebase gettext features_check gobject-introspection
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI[archive.sha256sum] = "d5aa236c5d71dc41aa4674f345560a67a27f21c0efc97c9b3da09cb582b4638b"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor/0001-editor-meson.build-fix-meson-0.61-errors.patch b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor/0001-editor-meson.build-fix-meson-0.61-errors.patch
new file mode 100644
index 0000000..850d8a9
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor/0001-editor-meson.build-fix-meson-0.61-errors.patch
@@ -0,0 +1,31 @@
+From 86379a220a4eb00c309f514d2ca57ed6c1c8b35c Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 21 Jan 2022 22:22:58 +0100
+Subject: [PATCH] editor/meson.build: fix meson 0.61 errors
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/dconf-editor/-/merge_requests/21]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ editor/meson.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/editor/meson.build b/editor/meson.build
+index 4c89ab99..0eb3bb1a 100644
+--- a/editor/meson.build
++++ b/editor/meson.build
+@@ -1,7 +1,6 @@
+ desktop = dconf_editor_namespace + '.desktop'
+ 
+ i18n.merge_file (
+-  desktop,
+   type: 'desktop',
+   input: desktop + '.in',
+   output: desktop,
+@@ -26,7 +25,6 @@ configure_file(
+ appdata = dconf_editor_namespace + '.appdata.xml'
+ 
+ i18n.merge_file(
+-  appdata,
+   input: appdata + '.in',
+   output: appdata,
+   po_dir: po_dir,
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.3.bb
index 97e994c..55b2913 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.3.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.3.bb
@@ -8,6 +8,7 @@
 
 inherit gnomebase vala gettext gsettings bash-completion
 
+SRC_URI += " file://0001-editor-meson.build-fix-meson-0.61-errors.patch"
 SRC_URI[archive.sha256sum] = "571af4c7dad4f049b53e6cd728b79addf08c27ddab6bc57b396d211866ee79e3"
 
 FILES:${PN} += " \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb b/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb
index f48f04f..8372448 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb
@@ -10,7 +10,7 @@
 
 SRCREV = "a3ee65b815a0247a0dbdaa39353444cef6f93499"
 
-SRC_URI = "git://github.com/dsalt/devilspie2;branch=master \
+SRC_URI = "git://github.com/dsalt/devilspie2;branch=master;protocol=https \
     file://default.lua \
     file://devilspie2.desktop \
 "
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Remove-incorrect-args-for-i18n.merge_file.patch b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Remove-incorrect-args-for-i18n.merge_file.patch
new file mode 100644
index 0000000..68447be
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Remove-incorrect-args-for-i18n.merge_file.patch
@@ -0,0 +1,52 @@
+From b525a64d26bcba4e3a74f09c580429625d8a2104 Mon Sep 17 00:00:00 2001
+From: r-value <i@rvalue.moe>
+Date: Wed, 17 Nov 2021 18:22:45 +0800
+Subject: [PATCH] Remove incorrect args for i18n.merge_file
+
+`i18n.merge_file` has been ignoring positional arguments for
+a time and explicitly rejects with error since meson 0.60.0
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ backend/meson.build | 1 -
+ data/meson.build    | 1 -
+ meson.build         | 1 -
+ 3 files changed, 3 deletions(-)
+
+diff --git a/backend/meson.build b/backend/meson.build
+index 14629f2..2f972a8 100644
+--- a/backend/meson.build
++++ b/backend/meson.build
+@@ -53,7 +53,6 @@ foreach backend, backend_mime_types: backends
+   )
+ 
+   i18n.merge_file(
+-    appstream,
+     input: appstream_in,
+     output: appstream,
+     po_dir: po_dir,
+diff --git a/data/meson.build b/data/meson.build
+index 8a308b8..afc3020 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -15,7 +15,6 @@ foreach desktop: desktops
+   )
+ 
+   i18n.merge_file(
+-    desktop,
+     type: 'desktop',
+     input: desktop_in,
+     output: desktop,
+diff --git a/meson.build b/meson.build
+index 07fb8ec..0bb5d0f 100644
+--- a/meson.build
++++ b/meson.build
+@@ -498,7 +498,6 @@ install_headers(
+ appdata = ev_namespace + '.appdata.xml'
+ 
+ i18n.merge_file(
+-  appdata,
+   input: appdata + '.in',
+   output: appdata,
+   po_dir: po_dir,
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_40.4.bb b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_40.4.bb
deleted file mode 100644
index ed4fb63..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_40.4.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-SUMMARY = "Evince is a document viewer for document formats like pdf, ps, djvu"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=96f2f8d5ee576a2163977938ea36fa7b"
-SECTION = "x11/office"
-DEPENDS = " \
-    gnome-common-native \
-    yelp-tools-native \
-    appstream-glib \
-    gtk+3 \
-    gspell \
-    libsecret \
-    poppler \
-    gstreamer1.0-plugins-base \
-    orc \
-    adwaita-icon-theme \
-    libhandy \
-    ${@bb.utils.contains('DISTRO_FEATURES','x11','gnome-desktop3','',d)} \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase itstool gnome-help pkgconfig gsettings gobject-introspection gettext mime-xdg gtk-doc
-
-def gnome_verdir(v):
-    return oe.utils.trim_version(v, 1)
-
-SRC_URI[archive.sha256sum] = "33420500e0e060f178a435063197d42dae7b67e39cc437a96510a33ddf7e95fb"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-EXTRA_OEMESON = " \
-    -Dsystemduserunitdir=no \
-"
-
-do_compile:prepend() {
-    export GIR_EXTRA_LIBS_PATH="${B}/libdocument/.libs"
-}
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[nautilus] = "-Dnautilus=true,-Dnautilus=false,nautilus"
-PACKAGECONFIG[browser-plugin] = "-Dbrowser_plugin=true,-Dbrowser_plugin=false"
-
-RDEPENDS:${PN} += "glib-2.0-utils"
-RRECOMMMENDS_${PN} = "adwaita-icon-theme"
-
-PACKAGES =+ "${PN}-nautilus-extension"
-PACKAGES =+ "${PN}-browser-plugin"
-
-FILES:${PN} += "${datadir}/dbus-1 \
-                ${datadir}/metainfo \
-                ${datadir}/thumbnailers \
-"
-FILES:${PN}-nautilus-extension = "${libdir}/nautilus/*/*so"
-FILES:${PN}-browser-plugin = "${libdir}/mozilla/*/*so"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_41.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_41.3.bb
new file mode 100644
index 0000000..ec3dca2
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_41.3.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Evince is a document viewer for document formats like pdf, ps, djvu"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=96f2f8d5ee576a2163977938ea36fa7b"
+SECTION = "x11/office"
+DEPENDS = " \
+    gnome-common-native \
+    yelp-tools-native \
+    appstream-glib \
+    gtk+3 \
+    gspell \
+    libsecret \
+    poppler \
+    gstreamer1.0-plugins-base \
+    orc \
+    adwaita-icon-theme \
+    libhandy \
+    ${@bb.utils.contains('DISTRO_FEATURES','x11','gnome-desktop','',d)} \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase itstool gnome-help pkgconfig gsettings gobject-introspection gettext mime-xdg gtk-doc
+
+def gnome_verdir(v):
+    return oe.utils.trim_version(v, 1)
+
+SRC_URI += " file://0001-Remove-incorrect-args-for-i18n.merge_file.patch"
+SRC_URI[archive.sha256sum] = "3346b01f9bdc8f2d5ffea92f110a090c64a3624942b5b543aad4592a9de33bb0"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+EXTRA_OEMESON = " \
+    -Dsystemduserunitdir=no \
+"
+
+do_compile:prepend() {
+    export GIR_EXTRA_LIBS_PATH="${B}/libdocument/.libs"
+}
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[nautilus] = "-Dnautilus=true,-Dnautilus=false,nautilus"
+
+RDEPENDS:${PN} += "glib-2.0-utils"
+RRECOMMMENDS_${PN} = "adwaita-icon-theme"
+
+PACKAGES =+ "${PN}-nautilus-extension"
+
+FILES:${PN} += "${datadir}/dbus-1 \
+                ${datadir}/metainfo \
+                ${datadir}/thumbnailers \
+"
+FILES:${PN}-nautilus-extension = "${libdir}/nautilus/*/*so"
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 571d430..9ccaedb 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
@@ -2,11 +2,11 @@
 
 DEPENDS = " \
     ${BPN}-native intltool-native gperf-native \
-    glib-2.0 gtk+3 libgdata \
+    glib-2.0 gtk+3 libgdata libxml2 icu \
     dbus db virtual/libiconv zlib libsoup-2.4 libical nss libsecret \
 "
 
-inherit gsettings gobject-introspection features_check cmake gtk-doc gettext perlnative
+inherit pkgconfig gsettings gobject-introspection features_check cmake gtk-doc gettext perlnative vala
 
 REQUIRED_DISTRO_FEATURES = "x11"
 
@@ -21,23 +21,23 @@
 LKSTRFTIME = "HAVE_LKSTRFTIME=ON"
 LKSTRFTIME:libc-musl = "HAVE_LKSTRFTIME=OFF"
 
-# For arm qemu-arm runs at 100% CPU load and never returns - so disable introspection for now
-GI_DATA_ENABLED="False"
-
 EXTRA_OECMAKE = " \
     -DSYSCONF_INSTALL_DIR=${sysconfdir} \
     -DWITH_KRB5=OFF \
-    -DENABLE_GOA=OFF \
     -DENABLE_UOA=OFF \
     -DENABLE_GOOGLE_AUTH=OFF \
     -DENABLE_WEATHER=OFF \
-    -DENABLE_INTROSPECTION=${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'ON', 'OFF', d)} \
+    -DG_IR_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper \
+    -DG_IR_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper \
+    -DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen \
+    ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON -DENABLE_VALA_BINDINGS=ON', '-DENABLE_INTROSPECTION=OFF', d)} \
     -D${LKSTRFTIME} \
     -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
 "
 
 PACKAGECONFIG[canberra] = "-DENABLE_CANBERRA=ON,-DENABLE_CANBERRA=OFF,libcanberra"
 PACKAGECONFIG[oauth]    = "-DENABLE_OAUTH2=ON,-DENABLE_OAUTH2=OFF,webkitgtk json-glib"
+PACKAGECONFIG[goa]    = "-DENABLE_GOA=ON,-DENABLE_GOA=OFF,gnome-online-accounts"
 
 # BROKEN: due missing pkg-config in openldap eds' cmake finds host-libs when
 # searching for openldap-libs
@@ -48,17 +48,8 @@
 
 do_configure:append () {
     cp ${WORKDIR}/iconv-detect.h ${S}/src
-
-    # fix native perl shebang
-    sed -i 's:${STAGING_BINDIR_NATIVE}/perl-native:${bindir}:' ${B}/src/tools/addressbook-export/csv2vcard
-
-    # fix abs path for g-ir-scanner-wrapper
-    sed  -i ${B}/build.ninja \
-        -e 's: ${bindir}/g-ir-scanner-wrapper: ${STAGING_BINDIR}/g-ir-scanner-wrapper:g'
-}
-
-do_compile:prepend() {
-    export GIR_EXTRA_LIBS_PATH="${B}/camel/.libs:${B}/libedataserver/.libs"
+    # avoid writing perl-native path into csv2vcard shebang
+    sed -i "s|@PERL@|${bindir}/perl|" ${S}/src/tools/addressbook-export/csv2vcard.in
 }
 
 FILES:${PN} =+ " \
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 86c7dea..96367aa 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] = "ec82951639f32a5cece80a8b0b9aa3f66b7d318e3ee2c1c35234f2e2bde8a418"
-PV = "3.40.2"
+SRC_URI[archive.sha256sum] = "6f5847a1234799073e9585db861c21381a09ed550dc0a2125f00ba5f90bd361d"
+PV = "3.42.3"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0001-Ensure-pam-file-installation.patch b/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0001-Ensure-pam-file-installation.patch
deleted file mode 100644
index 6362d5e..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0001-Ensure-pam-file-installation.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From f7bba53adf8a26f900442a05bb98326747c392b4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Tue, 3 Dec 2019 00:24:27 +0100
-Subject: [PATCH] Ensure pam-file installation
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-All the detection magic does not work for us
-
-Upstream-Status: Inappropriate [OE-specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- data/Makefile.am | 12 +-----------
- 1 file changed, 1 insertion(+), 11 deletions(-)
-
-diff --git a/data/Makefile.am b/data/Makefile.am
-index bda9160..dbc3ea3 100644
---- a/data/Makefile.am
-+++ b/data/Makefile.am
-@@ -296,22 +296,12 @@ endif
- 		chown root:root $(DESTDIR)$(logdir) || : ; \
- 	fi
- 
--	system=`uname`; \
--	if test -f /usr/include/security/pam_appl.h; then \
--	  if test '!' -d $(DESTDIR)$(PAM_PREFIX)/pam.d; then \
- 		$(mkinstalldirs) $(DESTDIR)$(PAM_PREFIX)/pam.d; \
- 		chmod 755 $(DESTDIR)$(PAM_PREFIX)/pam.d; \
--	   fi; \
--	   if test $$system = Linux; then \
- 	     for pamfile in $(pam_files); do \
- 	       bn=$$(basename $$pamfile .pam); \
- 	       $(INSTALL_DATA) $(srcdir)/$$pamfile $(DESTDIR)$(PAM_PREFIX)/pam.d/$$bn; \
--	     done; \
--	   fi; \
--	   if test $$system = SunOS; then \
--		echo "Please add PAM authentication for gdm, gdm-autologin and gdm-welcome in $(PAM_PREFIX)/pam.conf!"; \
--	   fi; \
--	fi
-+	     done;
- 
- 	if test '!' -d $(DESTDIR)$(xauthdir); then \
- 		$(mkinstalldirs) $(DESTDIR)$(xauthdir); \
--- 
-2.21.0
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_3.36.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_3.36.3.bb
deleted file mode 100644
index e4c590e..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_3.36.3.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "GNOME Display Manager"
-LICENSE="GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = " \
-    dconf-native \
-    gtk+3 \
-    accountsservice \
-    libcanberra \
-    libpam \
-"
-
-REQUIRED_DISTRO_FEATURES = "x11 systemd pam polkit"
-
-inherit gnomebase gsettings gobject-introspection gettext systemd useradd upstream-version-is-even features_check
-
-SRC_URI[archive.sha256sum] = "3bfbb620cbc0d1cbd70b4c4376cf4b705db4dc36a37124e5be386ccc25fa7e81"
-SRC_URI += "file://0001-Ensure-pam-file-installation.patch"
-
-EXTRA_OECONF = " \
-    --without-plymouth \
-    --with-default-pam-config=openembedded \
-    --with-pam-mod-dir=${base_libdir}/security \
-"
-
-do_install:append() {
-    rm -rf ${D}/run ${D}${localstatedir}/run
-}
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --no-create-home --home ${localstatedir}/lib/gdm --user-group gdm"
-
-SYSTEMD_SERVICE:${PN} = "${BPN}.service"
-
-# Some gnome components - as gnome-panel and gnome-shell (!!) - require gdm
-# components. To allow gnome-images using different display-manager, split them
-# out into a seperate package.
-PACKAGE_BEFORE_PN = "${PN}-base"
-FILES:${PN}-base = " \
-    ${datadir}/glib-2.0 \
-    ${datadir}/gnome-session \
-    ${libdir}/lib*${SOLIBS} \
-    ${libdir}/girepository-1.0 \
-"
-
-CONFFILES:${PN} += "${sysconfdir}/gdm/custom.conf"
-FILES:${PN} += " \
-    ${datadir}/dconf \
-    ${base_libdir}/security/pam_gdm.so \
-    ${localstatedir} \
-    ${systemd_unitdir} \
-"
-
-RDEPENDS:${PN} += "${PN}-base"
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_41.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_41.0.bb
new file mode 100644
index 0000000..e31ca13
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_41.0.bb
@@ -0,0 +1,57 @@
+SUMMARY = "GNOME Display Manager"
+LICENSE="GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = " \
+    dconf-native \
+    gtk+3 \
+    accountsservice \
+    libcanberra \
+    libpam \
+"
+
+REQUIRED_DISTRO_FEATURES = "x11 systemd pam polkit gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection gettext systemd useradd itstool gnome-help features_check
+
+SRC_URI[archive.sha256sum] = "5738c4293a9f5a80d4a6e9e06f4d0df3e9f313ca7b61bfb4d8afaba983e200dc"
+
+EXTRA_OEMESON = " \
+    -Dplymouth=disabled \
+    -Ddefault-pam-config=openembedded \
+    -Dpam-mod-dir=${base_libdir}/security \
+"
+
+do_install:append() {
+    rm -rf ${D}/run ${D}${localstatedir}/run
+}
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --home ${localstatedir}/lib/gdm --user-group gdm"
+
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+
+# Some gnome components - as gnome-panel and gnome-shell (!!) - require gdm
+# components. To allow gnome-images using different display-manager, split them
+# out into a seperate package.
+PACKAGE_BEFORE_PN = "${PN}-base"
+FILES:${PN}-base = " \
+    ${datadir}/glib-2.0 \
+    ${datadir}/gnome-session \
+    ${libdir}/lib*${SOLIBS} \
+    ${libdir}/girepository-1.0 \
+"
+
+CONFFILES:${PN} += "${sysconfdir}/gdm/custom.conf"
+FILES:${PN} += " \
+    ${datadir}/dconf \
+    ${base_libdir}/security/pam_gdm.so \
+    ${localstatedir} \
+    ${systemd_unitdir} ${systemd_user_unitdir} \
+"
+
+RDEPENDS:${PN} += "${PN}-base"
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit/0001-Remove-incorrect-args-for-i18n.merge_file.patch b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit/0001-Remove-incorrect-args-for-i18n.merge_file.patch
new file mode 100644
index 0000000..66df3c2
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit/0001-Remove-incorrect-args-for-i18n.merge_file.patch
@@ -0,0 +1,34 @@
+From ea9a15afb76c093aea37f6c56c559b61afd9a9f2 Mon Sep 17 00:00:00 2001
+From: rvalue <i@rvalue.moe>
+Date: Wed, 15 Dec 2021 07:02:09 +0000
+Subject: [PATCH] Remove incorrect args for i18n.merge_file
+
+The positional argument has been silently ignored for a time. And it causes failure
+with "ERROR: Function does not take positional arguments" since meson 0.60.0
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gedit/-/merge_requests/124]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ data/meson.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index bb61387..28d72a1 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -4,7 +4,6 @@ install_man('gedit.1')
+ 
+ appdata = 'org.gnome.gedit.appdata.xml'
+ appdata_file = i18n.merge_file(
+-  appdata,
+   input: appdata + '.in',
+   output: appdata,
+   po_dir: '../po/',
+@@ -23,7 +22,6 @@ endif
+ 
+ desktop_file = 'org.gnome.gedit.desktop'
+ desktop_output_file = i18n.merge_file(
+-  desktop_file,
+   type: 'desktop',
+   input: desktop_file + '.in',
+   output: desktop_file,
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_40.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_40.1.bb
index 035f5d1..df8ab62 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_40.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_40.1.bb
@@ -23,11 +23,12 @@
 
 REQUIRED_DISTRO_FEATURES = "x11"
 
+SRC_URI += " file://0001-Remove-incorrect-args-for-i18n.merge_file.patch"
 SRC_URI[archive.sha256sum] = "55e394a82cb65678b1ab49526cf5bd43f00d8fba21476a4849051a8e137d3691"
 
 # gobject-introspection is mandatory and cannot be configured
 REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST:append = " introspection"
+GIR_MESON_OPTION = ""
 
 GTKDOC_MESON_OPTION = "gtk_doc"
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.2.bb
deleted file mode 100644
index 708523e..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.2.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "A GObject-based Exiv2 wrapper"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=625f055f41728f84a8d7938acc35bdc2"
-
-DEPENDS = "exiv2"
-
-GNOMEBASEBUILDCLASS = "meson"
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-inherit gnomebase gobject-introspection gtk-doc
-
-SRC_URI[archive.md5sum] = "4c0cd962f021f937507904df147ea750"
-SRC_URI[archive.sha256sum] = "2322b552aca330eef79724a699c51a302345d5e074738578b398b7f2ff97944c"
-
-EXTRA_OEMESON = " \
-    -Dvapi=false \
-    -Dpython2_girdir=no \
-    -Dpython3_girdir=no \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.0.bb
new file mode 100644
index 0000000..b2fd4b0
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A GObject-based Exiv2 wrapper"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=625f055f41728f84a8d7938acc35bdc2"
+
+DEPENDS = "exiv2 python3-pygobject-native"
+
+GNOMEBASEBUILDCLASS = "meson"
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+inherit gnomebase gobject-introspection gtk-doc python3native
+
+SRC_URI[archive.sha256sum] = "e58279a6ff20b6f64fa499615da5e9b57cf65ba7850b72fafdf17221a9d6d69e"
+
+EXTRA_OEMESON = " \
+    -Dvapi=false \
+    -Dpython3_girdir=${PYTHON_SITEPACKAGES_DIR}/gi/overrides \
+"
+
+PACKAGES =+ "${PN}-python3"
+FILES:${PN}-python3 = "${PYTHON_SITEPACKAGES_DIR}"
+RDEPENDS:${PN}-python3 = "${PN}"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Disable-tests-on-host.patch b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Disable-tests-on-host.patch
deleted file mode 100644
index 0953214..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Disable-tests-on-host.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 95379de2132786f855e8caec1fd5869225774d02 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Sat, 18 May 2019 01:14:07 +0200
-Subject: [PATCH] Disable tests on host
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [OE-specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- configure.ac | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index fa4e136..056e96e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -335,9 +335,7 @@ AS_IF([test "x$with_dbus_tests" != "xno"], [
- ])
- AM_CONDITIONAL([DBUS_TESTS], [test "x$with_dbus_tests" != "xno"])
- 
--AC_MSG_CHECKING([for a suitable UTF-8 locale to run the tests in])
--TESTS_LOCALE=$($srcdir/build/choose-tests-locale.sh)
--AC_MSG_RESULT([$TESTS_LOCALE])
-+TESTS_LOCALE=C
- AC_SUBST([TESTS_LOCALE])
- 
- AC_SUBST([gjsjsdir], [\${datadir}/gjs-1.0])
--- 
-2.20.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch
new file mode 100644
index 0000000..55af681
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch
@@ -0,0 +1,50 @@
+From 550e98013b0e003c1a6771d8e811375913adf16b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Wed, 27 Oct 2021 20:18:47 +0200
+Subject: [PATCH] Support cross builds a bit better
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* Do not build/run mozjs-linked program
+* Do not try to run test applications
+
+Upstream-Status: Submitted[https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/690]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ meson.build | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index dfcc2c3..192b1b5 100644
+--- a/meson.build
++++ b/meson.build
+@@ -234,6 +234,7 @@ release builds of SpiderMonkey. Try configuring SpiderMonkey with
+ --disable-debug.''')
+ endif
+ 
++if not meson.is_cross_build()
+ # Check if a minimal SpiderMonkey program compiles, links, and runs. If not,
+ # it's most likely the case that SpiderMonkey was configured incorrectly, for
+ # example by building mozglue as a shared library.
+@@ -254,6 +255,7 @@ could not be compiled, linked, or run. Most likely you should build it with a
+ different configuration. Check the recommended configuration:
+ https://github.com/spidermonkey-embedders/spidermonkey-embedding-examples/blob/esr78/docs/Building%20SpiderMonkey.md''')
+ endif
++endif # not meson.is_cross_build()
+ 
+ have_printf_alternative_int = cc.compiles('''
+ #include <stdio.h>
+@@ -662,7 +664,7 @@ endif
+ 
+ # Note: The test program in test/ needs to be ported
+ #       to Windows before we can build it on Windows.
+-if host_machine.system() != 'windows'
++if host_machine.system() != 'windows' and not meson.is_cross_build()
+     subdir('test')
+ endif
+ 
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-maint-Avoid-g_once_init_enter-error-in-GCC-11.patch b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-maint-Avoid-g_once_init_enter-error-in-GCC-11.patch
deleted file mode 100644
index 6343a24..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-maint-Avoid-g_once_init_enter-error-in-GCC-11.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From dae0055be61937fe70252f3f4ee09b355aba2b8f Mon Sep 17 00:00:00 2001
-From: Philip Chimento <philip.chimento@gmail.com>
-Date: Sun, 14 Feb 2021 12:20:09 -0800
-Subject: [PATCH] maint: Avoid g_once_init_enter error in GCC 11
-
-On platforms where g_once_init_enter() is defined to use C11 atomic
-builtins, passing a pointer to a volatile value is an error in GCC 11 and
-later, in C++.
-
-More info about the GCC change:
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95378
-https://gcc.gnu.org/pipermail/gcc-patches/2020-June/548283.html
-
-However, it's my understanding that in modern C++ there is no longer a
-need to guard the initialization of these variables. Since C++11, static
-local variables in a function are guaranteed to be initialized only once,
-the first time control passes through that function. So we can just remove
-the g_once_init_enter guard.
-
-More info:
-https://en.cppreference.com/w/cpp/language/storage_duration#Static_local_variables
-
-Stack Overflow answers with quotations from the C++ standard:
-https://stackoverflow.com/a/58804/172999
-https://stackoverflow.com/a/8102145/172999
-
-Closes: #376
----
- gjs/error-types.cpp | 32 +++++++++++++-------------------
- 1 file changed, 13 insertions(+), 19 deletions(-)
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gjs/-/commit/f02eaf3a9d3465915eb849428c2d9615e2184a4c]
-diff --git a/gjs/error-types.cpp b/gjs/error-types.cpp
-index 86cb878..5eba61b 100644
---- a/gjs/error-types.cpp
-+++ b/gjs/error-types.cpp
-@@ -31,24 +31,18 @@ G_DEFINE_QUARK(gjs-js-error-quark, gjs_js_error)
- // clang-format on
- 
- GType gjs_js_error_get_type(void) {
--    static volatile GType g_type_id;
--
--    if (g_once_init_enter(&g_type_id)) {
--        static GEnumValue errors[] = {
--            { GJS_JS_ERROR_ERROR, "Error", "error" },
--            { GJS_JS_ERROR_EVAL_ERROR, "EvalError", "eval-error" },
--            { GJS_JS_ERROR_INTERNAL_ERROR, "InternalError", "internal-error" },
--            { GJS_JS_ERROR_RANGE_ERROR, "RangeError", "range-error" },
--            { GJS_JS_ERROR_REFERENCE_ERROR, "ReferenceError", "reference-error" },
--            { GJS_JS_ERROR_STOP_ITERATION, "StopIteration", "stop-iteration" },
--            { GJS_JS_ERROR_SYNTAX_ERROR, "SyntaxError", "syntax-error" },
--            { GJS_JS_ERROR_TYPE_ERROR, "TypeError", "type-error" },
--            { GJS_JS_ERROR_URI_ERROR, "URIError", "uri-error" },
--            { 0, nullptr, nullptr }
--        };
--
--        g_type_id = g_enum_register_static("GjsJSError", errors);
--    }
--
-+    static const GEnumValue errors[] = {
-+        {GJS_JS_ERROR_ERROR, "Error", "error"},
-+        {GJS_JS_ERROR_EVAL_ERROR, "EvalError", "eval-error"},
-+        {GJS_JS_ERROR_INTERNAL_ERROR, "InternalError", "internal-error"},
-+        {GJS_JS_ERROR_RANGE_ERROR, "RangeError", "range-error"},
-+        {GJS_JS_ERROR_REFERENCE_ERROR, "ReferenceError", "reference-error"},
-+        {GJS_JS_ERROR_STOP_ITERATION, "StopIteration", "stop-iteration"},
-+        {GJS_JS_ERROR_SYNTAX_ERROR, "SyntaxError", "syntax-error"},
-+        {GJS_JS_ERROR_TYPE_ERROR, "TypeError", "type-error"},
-+        {GJS_JS_ERROR_URI_ERROR, "URIError", "uri-error"},
-+        {0, nullptr, nullptr}};
-+    // Initialization of static local variable guaranteed only once in C++11
-+    static GType g_type_id = g_enum_register_static("GjsJSError", errors);
-     return g_type_id;
- }
--- 
-2.31.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch
new file mode 100644
index 0000000..8777d14
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch
@@ -0,0 +1,34 @@
+From 6a29818204e647d5fad68ed7ca8cac53d301cae6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Wed, 27 Oct 2021 20:04:02 +0200
+Subject: [PATCH] meson.build: Do not add dir installed-tests when
+ installed_tests is false
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Submitted[https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/690]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ meson.build | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 6878e2e..edbbf79 100644
+--- a/meson.build
++++ b/meson.build
+@@ -635,7 +635,9 @@ if not get_option('skip_gtk_tests')
+     have_gtk4 = dependency('gtk4', required: false).found()
+ endif
+ 
+-subdir('installed-tests')
++if get_option('installed_tests')
++    subdir('installed-tests')
++endif
+ 
+ # Note: The test program in test/ needs to be ported
+ #       to Windows before we can build it on Windows.
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.58.8.bb b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.58.8.bb
deleted file mode 100644
index 096e277..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.58.8.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Javascript bindings for GNOME"
-LICENSE = "MIT & LGPLv2+"
-LIC_FILES_CHKSUM = " \
-    file://COPYING;md5=beb29cf17fabe736f0639b09ee6e76fa \
-    file://COPYING.LGPL;md5=3bf50002aefd002f49e7bb854063f7e7 \
-"
-
-GNOMEBASEBUILDCLASS = "autotools"
-
-DEPENDS = "mozjs gtk+3"
-
-inherit gnomebase gsettings gobject-introspection vala gettext features_check upstream-version-is-even pkgconfig
-
-SRC_URI[archive.sha256sum] = "7fb3eb746c17363d9ee47f4a5d0bb048f0075611763eb0da11d85e0e57aff381"
-SRC_URI += "file://0001-Disable-tests-on-host.patch \
-            file://0001-maint-Avoid-g_once_init_enter-error-in-GCC-11.patch \
-"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST:append = " --enable-introspection --disable-introspection"
-
-EXTRA_OECONF = " \
-    --without-dbus-tests \
-    --disable-installed-tests \
-"
-
-do_configure:prepend() {
-    # make configure find gobject-introspection test code. Although we set
-    # --disable-installed-tests gjs builds them
-    sed -i 's|:$GI_DATADIR|:${STAGING_DIR_NATIVE}$GI_DATADIR|g' ${S}/configure.ac
-}
-
-FILES:${PN} += "${datadir}/gjs-1.0/lsan"
-
-PACKAGES =+ "${PN}-valgrind"
-FILES:${PN}-valgrind = "${datadir}/gjs-1.0/valgrind"
-RDEPENDS:${PN}-valgrind += "valgrind"
-
-# Valgrind not yet available on rv32/rv64
-RDEPENDS:${PN}-valgrind:remove:riscv32 = "valgrind"
-RDEPENDS:${PN}-valgrind:remove:riscv64 = "valgrind"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.70.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.70.0.bb
new file mode 100644
index 0000000..af4d7f6
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.70.0.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Javascript bindings for GNOME"
+LICENSE = "MIT & LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8dcea832f6acf45d856abfeb2d51ec48"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+DEPENDS = "mozjs-78 gtk4"
+
+inherit gnomebase gsettings gobject-introspection vala gettext features_check upstream-version-is-even pkgconfig
+
+SRC_URI[archive.sha256sum] = "4b0629341a318a02374e113ab97f9a9f3325423269fc1e0b043a5ffb01861c5f"
+SRC_URI += " \
+    file://0001-Support-cross-builds-a-bit-better.patch \
+    file://0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch \
+"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+EXTRA_OEMESON = " \
+    -Dinstalled_tests=false \
+    -Dskip_dbus_tests=true \
+"
+
+LDFLAGS:append:mipsarch = " -latomic"
+LDFLAGS:append:powerpc = " -latomic"
+LDFLAGS:append:powerpc64 = " -latomic"
+LDFLAGS:append:riscv32 = " -latomic"
+
+FILES:${PN} += "${datadir}/gjs-1.0/lsan"
+
+PACKAGES =+ "${PN}-valgrind"
+FILES:${PN}-valgrind = "${datadir}/gjs-1.0/valgrind"
+RDEPENDS:${PN}-valgrind += "valgrind"
+
+# Valgrind not yet available on rv32/rv64
+RDEPENDS:${PN}-valgrind:remove:riscv32 = "valgrind"
+RDEPENDS:${PN}-valgrind:remove:riscv64 = "valgrind"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.3.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.3.3.bb
deleted file mode 100644
index 3e7b254..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.3.3.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "GNOME archive library"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = " \
-    gtk+3 \
-    libarchive \
-"
-
-inherit gnomebase gobject-introspection gtk-doc vala
-
-SRC_URI[archive.sha256sum] = "272400f73a375a7e88fdf1e12591bfb8f3f03edf01780cadcd74f70b613e5c04"
-
-do_compile:prepend() {
-    export GIR_EXTRA_LIBS_PATH="${B}/gnome-autoar/.libs"
-}
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.2.bb
new file mode 100644
index 0000000..24e7760
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "GNOME archive library"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = " \
+    gtk+3 \
+    libarchive \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+inherit gnomebase gobject-introspection gtk-doc vala
+
+SRC_URI[archive.sha256sum] = "1d20694079300e12feabdb77304a969d1cc190d1d12a949be845cad01c78a5d3"
+
+do_compile:prepend() {
+    export GIR_EXTRA_LIBS_PATH="${B}/gnome-autoar/.libs"
+}
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_3.38.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_3.38.0.bb
deleted file mode 100644
index aa49012..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_3.38.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "GNOME wallpapers"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
-
-SECTION = "x11/gnome"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase allarch gettext upstream-version-is-even allarch
-
-SRC_URI[archive.sha256sum] = "f7712a873a80c9a9fcf3952611effeb2d9aed23a3e8abfcda8afb15c427d1ee3"
-
-FILES:${PN} += " \
-    ${datadir}/backgrounds \
-    ${datadir}/gnome-background-properties \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_41.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_41.0.bb
new file mode 100644
index 0000000..289cc9e
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_41.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "GNOME wallpapers"
+LICENSE = "GPL-2.0-only & CC-BY-2.0 & CC-BY-SA-2.0 & CC-BY-SA-3.0"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=75859989545e37968a99b631ef42722e \
+    file://COPYING_CCBY2;md5=effd72660912b727dfa9722cb295d7be \
+    file://COPYING_CCBYSA2;md5=4737b7833b3212fdf30257f056ef3e64 \
+    file://COPYING_CCBYSA3;md5=b52fb0a6df395efb7047cb6fc56bfd7e \
+"
+
+SECTION = "x11/gnome"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gettext allarch
+
+SRC_URI[archive.sha256sum] = "1da1ac0d261bedf0fcd2c85b480bc65505e23cf51f1143126c0d37717e693145"
+
+FILES:${PN} += " \
+    ${datadir}/backgrounds \
+    ${datadir}/gnome-background-properties \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth/0001-build-Fix-build-for-newer-versions-of-meson.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth/0001-build-Fix-build-for-newer-versions-of-meson.patch
new file mode 100644
index 0000000..16c87b6
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth/0001-build-Fix-build-for-newer-versions-of-meson.patch
@@ -0,0 +1,25 @@
+From 7355664f671bec7852e3c4523d75c27fc77a2eb2 Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Fri, 7 Jan 2022 12:51:22 +0100
+Subject: [PATCH] build: Fix build for newer versions of meson
+
+sendto/meson.build:24:5: ERROR: Function does not take positional arguments.
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ sendto/meson.build | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/sendto/meson.build b/sendto/meson.build
+index 24a4e39..3e233a0 100644
+--- a/sendto/meson.build
++++ b/sendto/meson.build
+@@ -22,7 +22,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file (
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.5.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.5.bb
index e3806f6..8eed262 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.5.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.5.bb
@@ -18,6 +18,7 @@
 # gtk-icon-cache bbclass will take care of this for us.
 EXTRA_OEMESON = "-Dicon_update=false"
 
+SRC_URI += " file://0001-build-Fix-build-for-newer-versions-of-meson.patch"
 SRC_URI[archive.md5sum] = "d83faa54abaf64bb40b5313bc233e74e"
 SRC_URI[archive.sha256sum] = "6c949e52c8becc2054daacd604901f66ce5cf709a5fa91c4bb7cacc939b53ea9"
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_40.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_40.1.bb
deleted file mode 100644
index 8c0183c..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_40.1.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "GNOME calculator"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SECTION = "x11/gnome"
-
-DEPENDS = " \
-    yelp-tools-native \
-    gtk+3 \
-    libsoup-2.4 \
-    libgee \
-    libmpc \
-    gtksourceview4 \
-    libhandy \
-"
-
-GIR_MESON_OPTION = 'disable-introspection'
-GIR_MESON_ENABLE_FLAG = 'false'
-GIR_MESON_DISABLE_FLAG = 'true'
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gobject-introspection gnome-help vala gtk-icon-cache gettext features_check
-
-def gnome_verdir(v):
-    return oe.utils.trim_version(v, 1)
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.sha256sum] = "7fe6c561f7b1f485ac106219772e45cc135c983bfa4278dd2d3fd83b57ff6af6"
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1 \
-    ${datadir}/metainfo \
-    ${datadir}/gnome-shell \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_41.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_41.1.bb
new file mode 100644
index 0000000..f4aba65
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_41.1.bb
@@ -0,0 +1,36 @@
+SUMMARY = "GNOME calculator"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SECTION = "x11/gnome"
+
+DEPENDS = " \
+    yelp-tools-native \
+    gtk+3 \
+    libsoup-2.4 \
+    libgee \
+    libmpc \
+    gtksourceview4 \
+    libhandy \
+"
+
+GIR_MESON_OPTION = 'disable-introspection'
+GIR_MESON_ENABLE_FLAG = 'false'
+GIR_MESON_DISABLE_FLAG = 'true'
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gobject-introspection gnome-help vala gtk-icon-cache gettext features_check
+
+def gnome_verdir(v):
+    return oe.utils.trim_version(v, 1)
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[archive.sha256sum] = "0267614afdb25d38b78411b42ebab7bc50c1b6340cc49bb68c0e432d7ddf8a34"
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1 \
+    ${datadir}/metainfo \
+    ${datadir}/gnome-shell \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar/0001-meson.build-fix-meson-0.61-builds.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar/0001-meson.build-fix-meson-0.61-builds.patch
new file mode 100644
index 0000000..8ec980b
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar/0001-meson.build-fix-meson-0.61-builds.patch
@@ -0,0 +1,23 @@
+From 7060aa63abbb64e7c6cbacc167d5f939d2a77e41 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 21 Jan 2022 21:18:39 +0100
+Subject: [PATCH] meson.build: fix meson 0.61 builds
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/198]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ data/appdata/meson.build | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/data/appdata/meson.build b/data/appdata/meson.build
+index b5ee6540..200c3507 100644
+--- a/data/appdata/meson.build
++++ b/data/appdata/meson.build
+@@ -1,7 +1,6 @@
+ appdata_conf = configuration_data()
+ appdata_conf.set('appid', application_id)
+ appdata = i18n.merge_file(
+-  'appdata',
+   input: configure_file(
+     input: files('org.gnome.Calendar.appdata.xml.in.in'),
+     output: 'org.gnome.Calendar.appdata.xml.in',
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_41.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_41.0.bb
deleted file mode 100644
index 4b9b14a..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_41.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "GNOME calendar"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a"
-
-SECTION = "x11/gnome"
-
-DEPENDS = " \
-    gtk+3 \
-    libical \
-    gsettings-desktop-schemas \
-    evolution-data-server \
-    libsoup-2.4 \
-    libdazzle \
-    libhandy \
-    libgweather \
-    geoclue \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gtk-icon-cache gettext features_check upstream-version-is-even mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.sha256sum] = "73ac923c6618bd0957d6b7c012a00a47bff67ee934249358817433772ceb193f"
-
-FILES:${PN} += " \
-    ${datadir}/gnome-shell \
-    ${datadir}/metainfo \
-    ${datadir}/dbus-1 \
-"
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_41.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_41.2.bb
new file mode 100644
index 0000000..4b62a0c
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_41.2.bb
@@ -0,0 +1,33 @@
+SUMMARY = "GNOME calendar"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a"
+
+SECTION = "x11/gnome"
+
+DEPENDS = " \
+    gtk+3 \
+    libical \
+    gsettings-desktop-schemas \
+    evolution-data-server \
+    libsoup-2.4 \
+    libdazzle \
+    libhandy \
+    libgweather \
+    geoclue \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gtk-icon-cache gettext features_check upstream-version-is-even mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += " file://0001-meson.build-fix-meson-0.61-builds.patch"
+SRC_URI[archive.sha256sum] = "956b2f190322651c67fe667223896f8aa5acf33b70ada5a3b05a5361bda6611a"
+
+FILES:${PN} += " \
+    ${datadir}/gnome-shell \
+    ${datadir}/metainfo \
+    ${datadir}/dbus-1 \
+"
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-meson-drop-unused-argument-for-i18n.merge_file.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-meson-drop-unused-argument-for-i18n.merge_file.patch
new file mode 100644
index 0000000..7a1180e
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-meson-drop-unused-argument-for-i18n.merge_file.patch
@@ -0,0 +1,504 @@
+From 90715329c277f21537eb5af86d8f222c4a2abd24 Mon Sep 17 00:00:00 2001
+From: Jan Beich <jbeich@FreeBSD.org>
+Date: Fri, 7 Jan 2022 01:53:52 +0000
+Subject: [PATCH] meson: drop unused argument for i18n.merge_file()
+
+Ignored in Meson < 0.60.0, deprecated since 0.60.1 and fatal since 0.61.0.
+
+panels/applications/meson.build:10:5: ERROR: Function does not take positional arguments.
+panels/background/meson.build:10:5: ERROR: Function does not take positional arguments.
+panels/camera/meson.build:10:5: ERROR: Function does not take positional arguments.
+[...]
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ panels/applications/meson.build                   | 1 -
+ panels/background/meson.build                     | 1 -
+ panels/bluetooth/meson.build                      | 1 -
+ panels/camera/meson.build                         | 1 -
+ panels/color/meson.build                          | 1 -
+ panels/datetime/meson.build                       | 2 --
+ panels/default-apps/meson.build                   | 1 -
+ panels/diagnostics/meson.build                    | 1 -
+ panels/display/meson.build                        | 1 -
+ panels/info-overview/meson.build                  | 1 -
+ panels/keyboard/meson.build                       | 2 --
+ panels/location/meson.build                       | 1 -
+ panels/lock/meson.build                           | 1 -
+ panels/microphone/meson.build                     | 1 -
+ panels/mouse/meson.build                          | 1 -
+ panels/multitasking/meson.build                   | 1 -
+ panels/network/meson.build                        | 1 -
+ panels/notifications/meson.build                  | 1 -
+ panels/online-accounts/meson.build                | 1 -
+ panels/power/meson.build                          | 1 -
+ panels/printers/meson.build                       | 1 -
+ panels/region/meson.build                         | 1 -
+ panels/removable-media/meson.build                | 1 -
+ panels/search/meson.build                         | 1 -
+ panels/sharing/meson.build                        | 2 --
+ panels/sound/meson.build                          | 1 -
+ panels/thunderbolt/meson.build                    | 1 -
+ panels/universal-access/meson.build               | 1 -
+ panels/usage/meson.build                          | 1 -
+ panels/user-accounts/meson.build                  | 2 --
+ panels/wacom/meson.build                          | 1 -
+ panels/wwan/meson.build                           | 1 -
+ shell/appdata/meson.build                         | 1 -
+ shell/meson.build                                 | 1 -
+ tests/interactive-panels/applications/meson.build | 1 -
+ 35 files changed, 39 deletions(-)
+
+diff --git a/panels/applications/meson.build b/panels/applications/meson.build
+index d511bf6..bd4fd64 100644
+--- a/panels/applications/meson.build
++++ b/panels/applications/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-       desktop,
+          type : 'desktop',
+         input : desktop_in,
+        output : desktop,
+diff --git a/panels/background/meson.build b/panels/background/meson.build
+index 730cf54..1f231b9 100644
+--- a/panels/background/meson.build
++++ b/panels/background/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/bluetooth/meson.build b/panels/bluetooth/meson.build
+index c3fce74..4bed812 100644
+--- a/panels/bluetooth/meson.build
++++ b/panels/bluetooth/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/camera/meson.build b/panels/camera/meson.build
+index 4f26118..bf2e727 100644
+--- a/panels/camera/meson.build
++++ b/panels/camera/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/color/meson.build b/panels/color/meson.build
+index 742caf6..bb038cd 100644
+--- a/panels/color/meson.build
++++ b/panels/color/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/datetime/meson.build b/panels/datetime/meson.build
+index 6568394..9bbdc7c 100644
+--- a/panels/datetime/meson.build
++++ b/panels/datetime/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+@@ -20,7 +19,6 @@ i18n.merge_file(
+ polkit = 'org.gnome.controlcenter.@0@.policy'.format(cappletname)
+ 
+ i18n.merge_file(
+-  polkit,
+   input: polkit + '.in',
+   output: polkit,
+   po_dir: po_dir,
+diff --git a/panels/default-apps/meson.build b/panels/default-apps/meson.build
+index 6855006..2a24321 100644
+--- a/panels/default-apps/meson.build
++++ b/panels/default-apps/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/diagnostics/meson.build b/panels/diagnostics/meson.build
+index fac9b4c..2f25c21 100644
+--- a/panels/diagnostics/meson.build
++++ b/panels/diagnostics/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/display/meson.build b/panels/display/meson.build
+index 12f35cc..57bdfcf 100644
+--- a/panels/display/meson.build
++++ b/panels/display/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/info-overview/meson.build b/panels/info-overview/meson.build
+index 2fe10b3..aa81c48 100644
+--- a/panels/info-overview/meson.build
++++ b/panels/info-overview/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/keyboard/meson.build b/panels/keyboard/meson.build
+index a2ae026..ae71c94 100644
+--- a/panels/keyboard/meson.build
++++ b/panels/keyboard/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+@@ -45,7 +44,6 @@ xml_files = [
+ 
+ foreach file: xml_files
+   i18n.merge_file(
+-    file,
+     input: file + '.in',
+     output: file,
+     po_dir: po_dir,
+diff --git a/panels/location/meson.build b/panels/location/meson.build
+index bfc6e82..f4c835d 100644
+--- a/panels/location/meson.build
++++ b/panels/location/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/lock/meson.build b/panels/lock/meson.build
+index 0661af4..18dbfb2 100644
+--- a/panels/lock/meson.build
++++ b/panels/lock/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/microphone/meson.build b/panels/microphone/meson.build
+index e0847a4..bc7f73a 100644
+--- a/panels/microphone/meson.build
++++ b/panels/microphone/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/mouse/meson.build b/panels/mouse/meson.build
+index 357aaae..7b46097 100644
+--- a/panels/mouse/meson.build
++++ b/panels/mouse/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/multitasking/meson.build b/panels/multitasking/meson.build
+index 772b638..53fd0d8 100644
+--- a/panels/multitasking/meson.build
++++ b/panels/multitasking/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/network/meson.build b/panels/network/meson.build
+index d7cd6e4..43a5690 100644
+--- a/panels/network/meson.build
++++ b/panels/network/meson.build
+@@ -25,7 +25,6 @@ foreach name: panel_names
+   )
+ 
+   i18n.merge_file(
+-    desktop,
+     type: 'desktop',
+     input: desktop_in,
+     output: desktop,
+diff --git a/panels/notifications/meson.build b/panels/notifications/meson.build
+index df70261..1b04b24 100644
+--- a/panels/notifications/meson.build
++++ b/panels/notifications/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/online-accounts/meson.build b/panels/online-accounts/meson.build
+index 82f1d56..6870977 100644
+--- a/panels/online-accounts/meson.build
++++ b/panels/online-accounts/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/power/meson.build b/panels/power/meson.build
+index 0e3ea1d..1cafe2a 100644
+--- a/panels/power/meson.build
++++ b/panels/power/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/printers/meson.build b/panels/printers/meson.build
+index ccce64c..042c67a 100644
+--- a/panels/printers/meson.build
++++ b/panels/printers/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/region/meson.build b/panels/region/meson.build
+index 68b7f00..27bc5ff 100644
+--- a/panels/region/meson.build
++++ b/panels/region/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/removable-media/meson.build b/panels/removable-media/meson.build
+index b51799a..fc07c48 100644
+--- a/panels/removable-media/meson.build
++++ b/panels/removable-media/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/search/meson.build b/panels/search/meson.build
+index 39b076b..a4dd79d 100644
+--- a/panels/search/meson.build
++++ b/panels/search/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/sharing/meson.build b/panels/sharing/meson.build
+index b3803bc..49dbb06 100644
+--- a/panels/sharing/meson.build
++++ b/panels/sharing/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+@@ -29,7 +28,6 @@ polkit_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  polkit,
+   input: polkit_in,
+   output: polkit,
+   po_dir: po_dir,
+diff --git a/panels/sound/meson.build b/panels/sound/meson.build
+index fa0f128..18f75dd 100644
+--- a/panels/sound/meson.build
++++ b/panels/sound/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/thunderbolt/meson.build b/panels/thunderbolt/meson.build
+index 53aa9b4..38ef294 100644
+--- a/panels/thunderbolt/meson.build
++++ b/panels/thunderbolt/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/universal-access/meson.build b/panels/universal-access/meson.build
+index 5e225fe..d845e70 100644
+--- a/panels/universal-access/meson.build
++++ b/panels/universal-access/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/usage/meson.build b/panels/usage/meson.build
+index 74f720e..6047ce0 100644
+--- a/panels/usage/meson.build
++++ b/panels/usage/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+diff --git a/panels/user-accounts/meson.build b/panels/user-accounts/meson.build
+index b8ee9d9..fa56aae 100644
+--- a/panels/user-accounts/meson.build
++++ b/panels/user-accounts/meson.build
+@@ -8,7 +8,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
+@@ -85,7 +84,6 @@ meson.add_install_script('sh', '-c',
+ polkit = 'org.gnome.controlcenter.@0@.policy'.format(cappletname)
+ 
+ i18n.merge_file(
+-  polkit,
+   input: polkit + '.in',
+   output: polkit,
+   po_dir: po_dir,
+diff --git a/panels/wacom/meson.build b/panels/wacom/meson.build
+index 5f62220..88a9137 100644
+--- a/panels/wacom/meson.build
++++ b/panels/wacom/meson.build
+@@ -30,7 +30,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-       desktop,
+          type : 'desktop',
+         input : desktop_in,
+        output : desktop,
+diff --git a/panels/wwan/meson.build b/panels/wwan/meson.build
+index 8c1b02f..2ab238a 100644
+--- a/panels/wwan/meson.build
++++ b/panels/wwan/meson.build
+@@ -11,7 +11,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-       desktop,
+          type : 'desktop',
+         input : desktop_in,
+        output : desktop,
+diff --git a/shell/appdata/meson.build b/shell/appdata/meson.build
+index 3b36171..fdb8279 100644
+--- a/shell/appdata/meson.build
++++ b/shell/appdata/meson.build
+@@ -1,7 +1,6 @@
+ appdata = 'gnome-control-center.appdata.xml'
+ 
+ i18n.merge_file(
+-  appdata,
+   input: appdata + '.in',
+   output: appdata,
+   po_dir: po_dir,
+diff --git a/shell/meson.build b/shell/meson.build
+index 89b9659..4667804 100644
+--- a/shell/meson.build
++++ b/shell/meson.build
+@@ -23,7 +23,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-       desktop,
+          type : 'desktop',
+         input : desktop_in,
+        output : desktop,
+diff --git a/tests/interactive-panels/applications/meson.build b/tests/interactive-panels/applications/meson.build
+index 2657f95..82eed4d 100644
+--- a/tests/interactive-panels/applications/meson.build
++++ b/tests/interactive-panels/applications/meson.build
+@@ -12,7 +12,6 @@ desktop_files = [
+ 
+ foreach desktop_file : desktop_files
+   i18n.merge_file(
+-              desktop,
+                 type : 'desktop',
+                input : 'gtp-@0@.desktop.in'.format(desktop_file),
+               output : 'gnome-@0@-panel.desktop'.format(desktop_file),
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_3.36.4.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_3.36.4.bb
deleted file mode 100644
index f080077..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_3.36.4.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "GNOME Settings"
-DESCRIPTION = "GNOME Settings is GNOME's main interface for configuration of various aspects of your desktop"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gettext vala upstream-version-is-even bash-completion features_check
-
-DEPENDS = " \
-    gdk-pixbuf-native \
-    colord-gtk \
-    udisks2 \
-    upower \
-    polkit \
-    pulseaudio \
-    accountsservice \
-    samba \
-    gsettings-desktop-schemas \
-    gnome-settings-daemon \
-    gnome-desktop3 \
-    gnome-online-accounts \
-    libnma \
-    gnome-bluetooth \
-    grilo \
-    libgtop \
-    gsound \
-    libpwquality \
-"
-
-REQUIRED_DISTRO_FEATURES += "polkit pulseaudio systemd x11"
-
-SRC_URI[archive.md5sum] = "16c228d7de4e9d2d57550791fbca3390"
-SRC_URI[archive.sha256sum] = "ac02346bcf3391aa5c86ed857d76689fdb6e43c2b4b20d3ec6eab0ea9fecf754"
-SRC_URI += "file://0001-Add-meson-option-to-pass-sysroot.patch"
-
-PACKAGECONFIG ??= "ibus ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}"
-PACKAGECONFIG[ibus] = "-Dibus=true, -Dibus=false, ibus"
-PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false, wayland"
-
-# Once we have (lib)cheese we can make cheese a PACKAGECONFIG
-EXTRA_OEMESON = " \
-    -Doe_sysroot=${STAGING_DIR_HOST} \
-    -Dcheese=false \
-"
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1 \
-    ${datadir}/gnome-shell \
-    ${datadir}/metainfo \
-"
-
-FILES:${PN}-dev += "${datadir}/gettext"
-
-RDEPENDS:${PN} += "gsettings-desktop-schemas"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_41.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_41.2.bb
new file mode 100644
index 0000000..f2b95ed
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_41.2.bb
@@ -0,0 +1,64 @@
+SUMMARY = "GNOME Settings"
+DESCRIPTION = "GNOME Settings is GNOME's main interface for configuration of various aspects of your desktop"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gettext vala upstream-version-is-even bash-completion features_check
+
+DEPENDS = " \
+    gdk-pixbuf-native \
+    colord-gtk \
+    udisks2 \
+    upower \
+    polkit \
+    pulseaudio \
+    accountsservice \
+    samba \
+    gsettings-desktop-schemas \
+    gnome-settings-daemon \
+    gnome-desktop \
+    gnome-online-accounts \
+    libnma \
+    gnome-bluetooth \
+    grilo \
+    libgtop \
+    gsound \
+    libpwquality \
+    libhandy \
+"
+
+REQUIRED_DISTRO_FEATURES += "polkit pulseaudio systemd x11"
+
+SRC_URI[archive.sha256sum] = "8271fc6b33ec2418a578304dd3e57d665f0d7cc706a99a97be419848618fe248"
+SRC_URI += "file://0001-Add-meson-option-to-pass-sysroot.patch"
+SRC_URI += "  file://0001-meson-drop-unused-argument-for-i18n.merge_file.patch"
+
+PACKAGECONFIG ??= "ibus ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}"
+PACKAGECONFIG[ibus] = "-Dibus=true, -Dibus=false, ibus"
+PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false, wayland"
+
+# Once we have (lib)cheese we can make cheese a PACKAGECONFIG
+EXTRA_OEMESON = " \
+    -Doe_sysroot=${STAGING_DIR_HOST} \
+    -Dcheese=false \
+"
+
+do_install:append() {
+	# If polkit is setup fixup permissions and ownership
+    if [ -d ${D}${datadir}/polkit-1/rules.d ]; then
+        chmod 700 ${D}${datadir}/polkit-1/rules.d
+        chown polkitd:root ${D}${datadir}/polkit-1/rules.d
+    fi
+}
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1 \
+    ${datadir}/gnome-shell \
+    ${datadir}/metainfo \
+"
+
+FILES:${PN}-dev += "${datadir}/gettext"
+
+RDEPENDS:${PN} += "gsettings-desktop-schemas"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch
index 4b3894f..99cf458 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch
@@ -18,14 +18,14 @@
  1 file changed, 1 insertion(+), 6 deletions(-)
 
 diff --git a/meson.build b/meson.build
-index 2e7160d..f83677d 100644
+index cceefe0..df3fdd9 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -58,12 +58,7 @@ udev_dep = dependency('libudev', required: get_option('udev'))
+@@ -59,12 +59,7 @@ udev_dep = dependency('libudev', required: get_option('udev'))
  host_os = host_machine.system()
  host_cpu = host_machine.cpu()
  supported_os = ['linux']
--unsupported_cpus = ['alpha', 'ia64', 'm68k', 'riscv64', 'sh4', 'sparc', 'sparc64']
+-unsupported_cpus = ['alpha', 'ia64', 'm68k', 'sh4', 'sparc', 'sparc64']
 -if supported_os.contains(host_os) and not unsupported_cpus.contains(host_cpu)
 -  seccomp_dep = dependency('libseccomp')
 -else
@@ -36,5 +36,5 @@
  
  xkb_base = xkb_config_dep.get_pkgconfig_variable('xkb_base')
 -- 
-2.20.1
+2.31.1
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.38.8.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.38.8.bb
deleted file mode 100644
index 61de652..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.38.8.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "GNOME library for reading .desktop files"
-SECTION = "x11/gnome"
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = " \
-    file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-    file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
-"
-
-BPN = "gnome-desktop"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase itstool pkgconfig upstream-version-is-even gobject-introspection features_check
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST:append = " introspection"
-
-SRC_URI[archive.sha256sum] = "04dc3b37c2b7d98df972670ac2a5a33ec7dc278e6814c3d23d099ae6789dcae8"
-
-SRC_URI += " \
-    file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \
-    file://0001-meson.build-Disable-libseccomp-for-all-archs.patch \
-"
-
-DEPENDS += "gsettings-desktop-schemas virtual/libx11 gtk+3 startup-notification xkeyboard-config iso-codes udev"
-
-inherit features_check gtk-doc
-REQUIRED_DISTRO_FEATURES += "x11"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-EXTRA_OEMESON = "-Ddesktop_docs=false"
-
-PACKAGES =+ "libgnome-desktop3"
-FILES:libgnome-desktop3 = "${libdir}/lib*${SOLIBS} ${datadir}/libgnome-desktop*/pnp.ids ${datadir}/gnome/*xml"
-
-RRECOMMENDS:libgnome-desktop3 += "gsettings-desktop-schemas"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_41.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_41.2.bb
new file mode 100644
index 0000000..3085d27
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_41.2.bb
@@ -0,0 +1,38 @@
+SUMMARY = "GNOME library for reading .desktop files"
+SECTION = "x11/gnome"
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+    file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase itstool pkgconfig upstream-version-is-even gobject-introspection features_check gtk-doc
+
+REQUIRED_DISTRO_FEATURES = "x11"
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
+
+GIR_MESON_OPTION = ""
+
+SRC_URI[archive.sha256sum] = "34329eefdacad2332a6adbae538c8da6e52235c7775a908b7c32040a0753ec6a"
+SRC_URI += " \
+    file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \
+    file://0001-meson.build-Disable-libseccomp-for-all-archs.patch \
+"
+
+DEPENDS += "gsettings-desktop-schemas virtual/libx11 gtk+3 startup-notification xkeyboard-config iso-codes udev"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+EXTRA_OEMESON = "-Ddesktop_docs=false"
+
+PACKAGES =+ "libgnome-desktop"
+RDEPENDS:${PN} += "libgnome-desktop"
+FILES:libgnome-desktop = " \
+    ${libdir}/lib*${SOLIBS} \
+    ${datadir}/libgnome-desktop*/pnp.ids \
+    ${datadir}/gnome/*xml \
+"
+
+RRECOMMENDS:libgnome-desktop += "gsettings-desktop-schemas"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-build-fix-arguments-of-i18n.merge_file.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-build-fix-arguments-of-i18n.merge_file.patch
new file mode 100644
index 0000000..2758af5
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-build-fix-arguments-of-i18n.merge_file.patch
@@ -0,0 +1,34 @@
+From 629ca0e61bb59303d43d7eac44a47ae866cc78f0 Mon Sep 17 00:00:00 2001
+From: rvalue <i@rvalue.moe>
+Date: Fri, 17 Dec 2021 12:29:30 +0000
+Subject: [PATCH] build: fix arguments of i18n.merge_file
+
+`i18n.merge_file` has been ignoring positional arguments for a time
+and explicitly rejects with error since meson 0.60.0
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ data/meson.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index e38a1d8..38fb520 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -11,7 +11,6 @@ desktops = [
+ 
+ foreach desktop: desktops
+   i18n.merge_file (
+-    desktop,
+     type: 'desktop',
+     input: desktop + '.in',
+     output: desktop,
+@@ -38,7 +37,6 @@ install_data(
+ info = 'org.gnome.DiskUtility.appdata.xml'
+ 
+ i18n.merge_file(
+-  info,
+   input: info + '.in',
+   output: info,
+   po_dir: po_dir,
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_40.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_40.1.bb
deleted file mode 100644
index 883e1c1..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_40.1.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "GNOME disk utility"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SECTION = "x11/gnome"
-
-DEPENDS = " \
-    gtk+3 \
-    libdvdread \
-    libcanberra \
-    libnotify \
-    libsecret \
-    libpwquality \
-    udisks2 \
-    libhandy \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gtk-icon-cache gettext features_check mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11 polkit"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-
-# As soon as elogind is of interest this needs rework: meson option is combo
-PACKAGECONFIG[systemd] = "-Dlogind=libsystemd,-Dlogind=none,systemd"
-
-SRC_URI[archive.sha256sum] = "2a4b99ac11ca23394b28c5584b9e96284e8c5a4da65cf06207de54f42b1ff141"
-
-FILES:${PN} += " \
-    ${datadir}/metainfo \
-    ${datadir}/dbus-1 \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_41.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_41.0.bb
new file mode 100644
index 0000000..7e254f5
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_41.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "GNOME disk utility"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SECTION = "x11/gnome"
+
+DEPENDS = " \
+    gtk+3 \
+    libdvdread \
+    libcanberra \
+    libnotify \
+    libsecret \
+    libpwquality \
+    udisks2 \
+    libhandy \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gtk-icon-cache gettext features_check mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+# As soon as elogind is of interest this needs rework: meson option is combo
+PACKAGECONFIG[systemd] = "-Dlogind=libsystemd,-Dlogind=none,systemd"
+
+SRC_URI += " file://0001-build-fix-arguments-of-i18n.merge_file.patch"
+SRC_URI[archive.sha256sum] = "8743c98fd656062ef862933efe30c5be4c6b322ec02eee154ec70d08ed0895df"
+
+FILES:${PN} += " \
+    ${datadir}/metainfo \
+    ${datadir}/dbus-1 \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.40.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.40.0.bb
deleted file mode 100644
index 9c599bb..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.40.0.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "GNOME Flashback (GNOME 2) session"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-inherit gnomebase gsettings gtk-icon-cache gettext upstream-version-is-even features_check
-
-REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
-
-DEPENDS += " \
-    upower \
-    ibus \
-    libxkbfile \
-    polkit \
-    metacity \
-    gdm \
-    gnome-desktop3 \
-    gnome-bluetooth \
-    gnome-panel \
-"
-
-SRC_URI[archive.sha256sum] = "e03f33100f1982019c2e59bbdcd664549ec5caa0ef2d99e2c0e1272cea08bb3b"
-
-do_install:append() {
-    # no oe-layer has compiz -> remove dead session
-    rm -f ${D}${datadir}/xsessions/gnome-flashback-compiz.desktop
-}
-
-FILES:${PN} += " \
-    ${datadir}/desktop-directories \
-    ${datadir}/gnome-panel \
-    ${datadir}/gnome-session \
-    ${datadir}/xsessions \
-    ${libdir}/gnome-panel \
-    ${systemd_user_unitdir} \
-"
-
-RDEPENDS:${PN} += "metacity"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.42.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.42.1.bb
new file mode 100644
index 0000000..3f47de6
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.42.1.bb
@@ -0,0 +1,37 @@
+SUMMARY = "GNOME Flashback (GNOME 2) session"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+inherit gnomebase gsettings gtk-icon-cache gettext upstream-version-is-even features_check
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
+
+DEPENDS += " \
+    upower \
+    ibus \
+    libxkbfile \
+    polkit \
+    metacity \
+    gdm \
+    gnome-desktop \
+    gnome-bluetooth \
+    gnome-panel \
+"
+
+SRC_URI[archive.sha256sum] = "c8029220acf268c520dbb0750834b2ef4df868324d0e0fb6a80354c80ba8844e"
+
+do_install:append() {
+    # no oe-layer has compiz -> remove dead session
+    rm -f ${D}${datadir}/xsessions/gnome-flashback-compiz.desktop
+}
+
+FILES:${PN} += " \
+    ${datadir}/desktop-directories \
+    ${datadir}/gnome-panel \
+    ${datadir}/gnome-session \
+    ${datadir}/xsessions \
+    ${libdir}/gnome-panel \
+    ${systemd_user_unitdir} \
+"
+
+RDEPENDS:${PN} += "metacity"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer/0001-Fix-meson-build-with-meson-0.60.0.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer/0001-Fix-meson-build-with-meson-0.60.0.patch
new file mode 100644
index 0000000..f32e120
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer/0001-Fix-meson-build-with-meson-0.60.0.patch
@@ -0,0 +1,40 @@
+From 9c5ce6836498fdb057a7f865f516ce28609f542a Mon Sep 17 00:00:00 2001
+From: r-value <i@rvalue.moe>
+Date: Thu, 30 Dec 2021 17:14:47 +0800
+Subject: [PATCH] Fix meson build with meson 0.60.0+
+
+`i18n.merge_file` has been ignoring positional arguments for a time
+and explicitly rejects with error since meson 0.60.0
+
+Upstrean-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ data/meson.build | 2 +-
+ src/meson.build  | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index bfc9caa..8e42134 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -1,6 +1,6 @@
+ appdatadir = join_paths(datadir, 'metainfo')
+ appdata_file = 'org.gnome.font-viewer.appdata.xml'
+-merged_appdata = i18n.merge_file(appdata_file,
++merged_appdata = i18n.merge_file(
+   input: appdata_file + '.in',
+   output: appdata_file,
+   po_dir: '../po',
+diff --git a/src/meson.build b/src/meson.build
+index f863d45..826c59b 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -39,7 +39,7 @@ desktop_file = 'org.gnome.font-viewer.desktop'
+ desktop_conf = configuration_data()
+ desktop_conf.set('VERSION', meson.project_version())
+ desktop_conf.set('APPLICATION_ID', application_id)
+-i18n.merge_file(desktop_file,
++i18n.merge_file(
+   input: configure_file(input: desktop_file + '.in.in',
+     output: desktop_file + '.in',
+     configuration: desktop_conf),
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_40.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_40.0.bb
deleted file mode 100644
index d8e6195..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_40.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "GNOME font viewer"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SECTION = "x11/gnome"
-
-DEPENDS = " \
-    gtk+3 \
-    gnome-desktop3 \
-    libhandy \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gtk-icon-cache gettext features_check mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.sha256sum] = "d2cc7686946690dc274a5d0c72841d358d0ccd42d3f34993c698bdf13588fe42"
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1 \
-    ${datadir}/metainfo \
-    ${datadir}/thumbnailers \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_41.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_41.0.bb
new file mode 100644
index 0000000..9528b66
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_41.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "GNOME font viewer"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SECTION = "x11/gnome"
+
+DEPENDS = " \
+    gtk+3 \
+    gnome-desktop \
+    libhandy \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gtk-icon-cache gettext features_check mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += " file://0001-Fix-meson-build-with-meson-0.60.0.patch"
+SRC_URI[archive.sha256sum] = "5dd410331be070e4e034397f2754980e073851d50a2119f2fbf96adc6fe2e876"
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1 \
+    ${datadir}/metainfo \
+    ${datadir}/thumbnailers \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.36.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.36.0.bb
deleted file mode 100644
index 2255ff0..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.36.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "GNOME menus"
-SECTION = "x11/gnome"
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-DEPENDS = "python3 libxml2 popt gtk+3 gnome-common-native"
-
-inherit features_check gnomebase gettext pkgconfig gobject-introspection upstream-version-is-even
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-BPN = "gnome-menus"
-
-SRC_URI[archive.md5sum] = "a8fd71fcf31a87fc799d80396a526829"
-SRC_URI[archive.sha256sum] = "d9348f38bde956fc32753b28c1cde19c175bfdbf1f4d5b06003b3aa09153bb1f"
-
-FILES:${PN} += "${datadir}/desktop-directories/"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_3.36.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_3.36.0.bb
new file mode 100644
index 0000000..c582298
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_3.36.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "GNOME menus"
+SECTION = "x11/gnome"
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+DEPENDS = "python3 libxml2 popt gtk+3 gnome-common-native"
+
+inherit features_check gnomebase gettext pkgconfig gobject-introspection upstream-version-is-even
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[archive.md5sum] = "a8fd71fcf31a87fc799d80396a526829"
+SRC_URI[archive.sha256sum] = "d9348f38bde956fc32753b28c1cde19c175bfdbf1f4d5b06003b3aa09153bb1f"
+
+FILES:${PN} += "${datadir}/desktop-directories/"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Update-to-rest-1.0.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Update-to-rest-1.0.patch
new file mode 100644
index 0000000..4a47fb2
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Update-to-rest-1.0.patch
@@ -0,0 +1,160 @@
+From 3c4a6eda580c6e38aeedb63d73ae7b96cc7f9a07 Mon Sep 17 00:00:00 2001
+From: Carlos Garcia Campos <cgarcia@igalia.com>
+Date: Mon, 7 Jun 2021 16:31:18 +0200
+Subject: [PATCH] Update to rest 1.0
+
+Updates to use the rest 1.0 API
+
+Upstream-Status: Inappropriate [rest 1.0 is not released yet]
+
+Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+---
+ configure.ac                       |  2 +-
+ src/goabackend/goalastfmprovider.c | 26 +++++++++++++-------------
+ src/goabackend/goaoauthprovider.c  | 17 +++++++++++------
+ src/goabackend/goarestproxy.h      |  2 --
+ 4 files changed, 25 insertions(+), 22 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1f88bbd..e43303d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -129,7 +129,7 @@ if test "$enable_backend" != "no"; then
+   AC_SUBST(JSON_GLIB_CFLAGS)
+   AC_SUBST(JSON_GLIB_LIBS)
+ 
+-  PKG_CHECK_MODULES(REST, [rest-0.7])
++  PKG_CHECK_MODULES(REST, [rest-1.0])
+   AC_SUBST(REST_CFLAGS)
+   AC_SUBST(REST_LIBS)
+ 
+diff --git a/src/goabackend/goalastfmprovider.c b/src/goabackend/goalastfmprovider.c
+index cb9a6f2..a2db037 100644
+--- a/src/goabackend/goalastfmprovider.c
++++ b/src/goabackend/goalastfmprovider.c
+@@ -483,18 +483,18 @@ add_account_cb (GoaManager *manager, GAsyncResult *res, gpointer user_data)
+ 
+ static void
+ check_cb (RestProxyCall *call,
+-          const GError *error,
+-          GObject *weak_object,
++          GAsyncResult *result,
+           gpointer user_data)
+ {
+   AddAccountData *data = user_data;
+   JsonNode *session;
+-  JsonParser *parser;
++  JsonParser *parser = NULL;
+   JsonObject *json_obj;
+   JsonObject *session_obj;
+   const gchar *payload;
+ 
+-  parser = NULL;
++  if (!rest_proxy_call_invoke_finish (call, result, &data->error))
++    goto out;
+ 
+   parser = json_parser_new ();
+   payload = rest_proxy_call_get_payload (call);
+@@ -562,12 +562,12 @@ on_rest_proxy_call_cancelled_cb (GCancellable *cancellable, RestProxyCall *call)
+ }
+ 
+ static void
+-lastfm_login (GoaProvider                  *provider,
+-              const gchar                  *username,
+-              const gchar                  *password,
+-              GCancellable                 *cancellable,
+-              RestProxyCallAsyncCallback   callback,
+-              gpointer                     user_data)
++lastfm_login (GoaProvider          *provider,
++              const gchar          *username,
++              const gchar          *password,
++              GCancellable         *cancellable,
++              GAsyncReadyCallback   callback,
++              gpointer              user_data)
+ {
+   AddAccountData *data = user_data;
+   RestProxyCall *call;
+@@ -598,7 +598,7 @@ lastfm_login (GoaProvider                  *provider,
+   rest_proxy_call_add_param (call, "api_sig", sig_md5);
+   rest_proxy_call_add_param (call, "format", "json");
+ 
+-  rest_proxy_call_async (call, callback, NULL, data, &data->error);
++  rest_proxy_call_invoke_async (call, NULL, callback, data);
+ 
+   g_signal_connect (cancellable, "cancelled", G_CALLBACK (on_rest_proxy_call_cancelled_cb), call);
+ 
+@@ -665,7 +665,7 @@ add_account (GoaProvider    *provider,
+                 username,
+                 password,
+                 data.cancellable,
+-                (RestProxyCallAsyncCallback) check_cb,
++                (GAsyncReadyCallback) check_cb,
+                 &data);
+ 
+   gtk_widget_set_sensitive (data.connect_button, FALSE);
+@@ -819,7 +819,7 @@ refresh_account (GoaProvider    *provider,
+                 username,
+                 password,
+                 data.cancellable,
+-                (RestProxyCallAsyncCallback) check_cb,
++                (GAsyncReadyCallback) check_cb,
+                 &data);
+   gtk_widget_set_sensitive (data.connect_button, FALSE);
+   gtk_widget_show (data.progress_grid);
+diff --git a/src/goabackend/goaoauthprovider.c b/src/goabackend/goaoauthprovider.c
+index 0bfab6b..6a69251 100644
+--- a/src/goabackend/goaoauthprovider.c
++++ b/src/goabackend/goaoauthprovider.c
+@@ -699,9 +699,15 @@ on_web_view_decide_policy (WebKitWebView            *web_view,
+ }
+ 
+ static void
+-rest_proxy_call_cb (RestProxyCall *call, const GError *error, GObject *weak_object, gpointer user_data)
++rest_proxy_call_cb (GObject *source, GAsyncResult *result, gpointer user_data)
+ {
++  RestProxyCall *call = REST_PROXY_CALL (source);
+   IdentifyData *data = user_data;
++
++  if (!rest_proxy_call_invoke_finish (call, result, &data->error))
++    {
++      g_prefix_error (&data->error, _("Error getting a Request Token: "));
++    }
+   g_main_loop_quit (data->loop);
+ }
+ 
+@@ -768,11 +774,7 @@ get_tokens_and_identity (GoaOAuthProvider *provider,
+       for (n = 0; request_params[n] != NULL; n += 2)
+         rest_proxy_call_add_param (call, request_params[n], request_params[n+1]);
+     }
+-  if (!rest_proxy_call_async (call, rest_proxy_call_cb, NULL, &data, &data.error))
+-    {
+-      g_prefix_error (&data.error, _("Error getting a Request Token: "));
+-      goto out;
+-    }
++  rest_proxy_call_invoke_async (call, NULL, rest_proxy_call_cb, &data);
+ 
+   goa_utils_set_dialog_title (GOA_PROVIDER (provider), dialog, add_account);
+ 
+@@ -794,6 +796,9 @@ get_tokens_and_identity (GoaOAuthProvider *provider,
+   g_main_loop_run (data.loop);
+   gtk_container_remove (GTK_CONTAINER (grid), spinner);
+ 
++  if (data.error)
++    goto out;
++
+   if (rest_proxy_call_get_status_code (call) != 200)
+     {
+       gchar *msg;
+diff --git a/src/goabackend/goarestproxy.h b/src/goabackend/goarestproxy.h
+index 09fb076..4948cb7 100644
+--- a/src/goabackend/goarestproxy.h
++++ b/src/goabackend/goarestproxy.h
+@@ -27,8 +27,6 @@
+ 
+ G_BEGIN_DECLS
+ 
+-G_DEFINE_AUTOPTR_CLEANUP_FUNC (RestProxy, g_object_unref);
+-
+ #define GOA_TYPE_REST_PROXY (goa_rest_proxy_get_type ())
+ G_DECLARE_FINAL_TYPE (GoaRestProxy, goa_rest_proxy, GOA, REST_PROXY, RestProxy);
+ 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Use-GUri-instead-of-SoupURI.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Use-GUri-instead-of-SoupURI.patch
deleted file mode 100644
index 11fc96b..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Use-GUri-instead-of-SoupURI.patch
+++ /dev/null
@@ -1,351 +0,0 @@
-From 5a5abbedb171986dbf6f5a37577ec6afa892b66b Mon Sep 17 00:00:00 2001
-From: Carlos Garcia Campos <cgarcia@igalia.com>
-Date: Mon, 7 Jun 2021 16:31:18 +0200
-Subject: [PATCH 1/2] Use GUri instead of SoupURI
-
-In preparation for libsoup3 where SoupURI has been removed in favor of
-GUri.
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gnome-online-accounts/-/merge_requests/73]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac                         |   2 +-
- src/goabackend/goaoauth2provider.c   |  11 +--
- src/goabackend/goaoauthprovider.c    |   8 +-
- src/goabackend/goaowncloudprovider.c | 107 ++++++++++++++++-----------
- src/goabackend/goawebview.c          |   9 +--
- 5 files changed, 80 insertions(+), 57 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 1f88bbd..7c0b39d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -90,7 +90,7 @@ GTK_DOC_CHECK([1.3])
- # Libraries
- #
- 
--PKG_CHECK_MODULES(GLIB, [glib-2.0 gio-2.0 gio-unix-2.0 >= 2.52])
-+PKG_CHECK_MODULES(GLIB, [glib-2.0 gio-2.0 gio-unix-2.0 >= 2.67.4])
- AC_SUBST(GLIB_CFLAGS)
- AC_SUBST(GLIB_LIBS)
- 
-diff --git a/src/goabackend/goaoauth2provider.c b/src/goabackend/goaoauth2provider.c
-index 3715431..2757838 100644
---- a/src/goabackend/goaoauth2provider.c
-+++ b/src/goabackend/goaoauth2provider.c
-@@ -763,7 +763,7 @@ on_web_view_decide_policy (WebKitWebView            *web_view,
-   GHashTable *key_value_pairs;
-   WebKitNavigationAction *action;
-   WebKitURIRequest *request;
--  SoupURI *uri;
-+  GUri *uri;
-   const gchar *fragment;
-   const gchar *oauth2_error;
-   const gchar *query;
-@@ -793,9 +793,9 @@ on_web_view_decide_policy (WebKitWebView            *web_view,
-   if (!g_str_has_prefix (requested_uri, redirect_uri))
-     goto default_behaviour;
- 
--  uri = soup_uri_new (requested_uri);
--  fragment = soup_uri_get_fragment (uri);
--  query = soup_uri_get_query (uri);
-+  uri = g_uri_parse (requested_uri, G_URI_FLAGS_ENCODED, NULL);
-+  fragment = g_uri_get_fragment (uri);
-+  query = g_uri_get_query (uri);
- 
-   /* Three cases:
-    * 1) we can either have the backend handle the URI for us, or
-@@ -808,7 +808,7 @@ on_web_view_decide_policy (WebKitWebView            *web_view,
-     {
-       gchar *url;
- 
--      url = soup_uri_to_string (uri, FALSE);
-+      url = g_uri_to_string (uri);
-       if (!goa_oauth2_provider_process_redirect_url (self, url, &priv->access_token, &priv->error))
-         {
-           g_prefix_error (&priv->error, _("Authorization response: "));
-@@ -889,6 +889,7 @@ on_web_view_decide_policy (WebKitWebView            *web_view,
-   goto ignore_request;
- 
-  ignore_request:
-+  g_uri_unref (uri);
-   g_assert (response_id != GTK_RESPONSE_NONE);
-   if (response_id < 0)
-     gtk_dialog_response (priv->dialog, response_id);
-diff --git a/src/goabackend/goaoauthprovider.c b/src/goabackend/goaoauthprovider.c
-index 0bfab6b..ff0927e 100644
---- a/src/goabackend/goaoauthprovider.c
-+++ b/src/goabackend/goaoauthprovider.c
-@@ -643,7 +643,7 @@ on_web_view_decide_policy (WebKitWebView            *web_view,
- {
-   GHashTable *key_value_pairs;
-   IdentifyData *data = user_data;
--  SoupURI *uri;
-+  GUri *uri;
-   WebKitNavigationAction *action;
-   WebKitURIRequest *request;
-   const gchar *query;
-@@ -664,8 +664,8 @@ on_web_view_decide_policy (WebKitWebView            *web_view,
-   if (!g_str_has_prefix (requested_uri, redirect_uri))
-     goto default_behaviour;
- 
--  uri = soup_uri_new (requested_uri);
--  query = soup_uri_get_query (uri);
-+  uri = g_uri_parse (requested_uri, G_URI_FLAGS_ENCODED, NULL);
-+  query = g_uri_get_query (uri);
- 
-   if (query != NULL)
-     {
-@@ -678,6 +678,8 @@ on_web_view_decide_policy (WebKitWebView            *web_view,
-       g_hash_table_unref (key_value_pairs);
-     }
- 
-+  g_uri_unref (uri);
-+
-   if (data->oauth_verifier != NULL)
-     goto ignore_request;
- 
-diff --git a/src/goabackend/goaowncloudprovider.c b/src/goabackend/goaowncloudprovider.c
-index d142966..10734be 100644
---- a/src/goabackend/goaowncloudprovider.c
-+++ b/src/goabackend/goaowncloudprovider.c
-@@ -22,8 +22,6 @@
- 
- #include <glib/gi18n-lib.h>
- 
--#include <libsoup/soup.h>
--
- #include "goahttpclient.h"
- #include "goaprovider.h"
- #include "goaowncloudprovider.h"
-@@ -78,45 +76,42 @@ get_provider_features (GoaProvider *provider)
- /* ---------------------------------------------------------------------------------------------------- */
- 
- static char *
--uri_to_string_with_path (SoupURI *soup_uri, const gchar *path)
-+uri_to_string_with_path (GUri *uri, const gchar *path)
- {
-   gchar *uri_string;
-   gchar *uri_tmp;
- 
--  if (soup_uri == NULL)
-+  if (uri == NULL)
-     return NULL;
- 
--  uri_tmp = soup_uri_to_string (soup_uri, FALSE);
-+  uri_tmp = g_uri_to_string (uri);
-   uri_string = g_strconcat (uri_tmp, path, NULL);
-   g_free (uri_tmp);
- 
-   return uri_string;
- }
- 
--static char *get_webdav_uri (SoupURI *soup_uri)
-+static char *get_webdav_uri (GUri *uri)
- {
--  SoupURI *uri_tmp;
-+  GUri *uri_tmp;
-   gchar *uri_webdav;
-   const gchar *scheme;
--  guint port;
- 
--  if (soup_uri == NULL)
-+  if (uri == NULL)
-     return NULL;
- 
--  scheme = soup_uri_get_scheme (soup_uri);
--  port = soup_uri_get_port (soup_uri);
--  uri_tmp = soup_uri_copy (soup_uri);
--
--  if (g_strcmp0 (scheme, SOUP_URI_SCHEME_HTTPS) == 0)
--    soup_uri_set_scheme (uri_tmp, "davs");
--  else
--    soup_uri_set_scheme (uri_tmp, "dav");
--
--  if (!soup_uri_uses_default_port (soup_uri))
--    soup_uri_set_port (uri_tmp, port);
-+  scheme = g_uri_get_scheme (uri);
-+  uri_tmp = g_uri_build (g_uri_get_flags (uri),
-+                         g_strcmp0 (scheme, "https") == 0 ? "davs" : "dav",
-+                         g_uri_get_userinfo (uri),
-+                         g_uri_get_host (uri),
-+                         g_uri_get_port (uri),
-+                         g_uri_get_path (uri),
-+                         g_uri_get_query (uri),
-+                         g_uri_get_fragment (uri));
- 
-   uri_webdav = uri_to_string_with_path (uri_tmp, WEBDAV_ENDPOINT);
--  soup_uri_free (uri_tmp);
-+  g_uri_unref (uri_tmp);
- 
-   return uri_webdav;
- }
-@@ -140,7 +135,7 @@ build_object (GoaProvider         *provider,
-   gchar *uri_carddav;
-   gchar *uri_webdav;
-   GoaPasswordBased *password_based = NULL;
--  SoupURI *uri = NULL;
-+  GUri *uri = NULL;
-   gboolean accept_ssl_errors;
-   gboolean calendar_enabled;
-   gboolean contacts_enabled;
-@@ -176,9 +171,24 @@ build_object (GoaProvider         *provider,
-   account = goa_object_get_account (GOA_OBJECT (object));
-   identity = goa_account_get_identity (account);
-   uri_string = g_key_file_get_string (key_file, group, "Uri", NULL);
--  uri = soup_uri_new (uri_string);
-+  uri = g_uri_parse (uri_string, G_URI_FLAGS_ENCODED, NULL);
-   if (uri != NULL)
--    soup_uri_set_user (uri, identity);
-+    {
-+      GUri *tmp_uri;
-+
-+      tmp_uri = g_uri_build_with_user (g_uri_get_flags (uri),
-+                                       g_uri_get_scheme (uri),
-+                                       identity,
-+                                       g_uri_get_password (uri),
-+                                       g_uri_get_auth_params (uri),
-+                                       g_uri_get_host (uri),
-+                                       g_uri_get_port (uri),
-+                                       g_uri_get_path (uri),
-+                                       g_uri_get_query (uri),
-+                                       g_uri_get_fragment (uri));
-+      g_uri_unref (uri);
-+      uri = tmp_uri;
-+    }
- 
-   accept_ssl_errors = g_key_file_get_boolean (key_file, group, "AcceptSslErrors", NULL);
- 
-@@ -224,7 +234,7 @@ build_object (GoaProvider         *provider,
- 
-  out:
-   g_clear_object (&password_based);
--  g_clear_pointer (&uri, soup_uri_free);
-+  g_clear_pointer (&uri, g_uri_unref);
-   g_free (uri_string);
-   return ret;
- }
-@@ -354,8 +364,11 @@ add_entry (GtkWidget     *grid,
- static gchar *
- normalize_uri (const gchar *address, gchar **server)
- {
--  SoupURI *uri = NULL;
-+  GUri *uri = NULL;
-+  GUri *uri_tmp = NULL;
-   const gchar *path;
-+  const gchar *new_scheme;
-+  gchar *new_path = NULL;
-   gchar *ret = NULL;
-   gchar *scheme = NULL;
-   gchar *uri_string = NULL;
-@@ -384,48 +397,56 @@ normalize_uri (const gchar *address, gchar **server)
-   else
-     goto out;
- 
--  uri = soup_uri_new (uri_string);
-+  uri = g_uri_parse (uri_string, G_URI_FLAGS_ENCODED, NULL);
-   if (uri == NULL)
-     goto out;
- 
-   if (g_strcmp0 (scheme, "dav") == 0)
--    soup_uri_set_scheme (uri, SOUP_URI_SCHEME_HTTP);
-+    new_scheme = "http";
-   else if (g_strcmp0 (scheme, "davs") == 0)
--    soup_uri_set_scheme (uri, SOUP_URI_SCHEME_HTTPS);
-+    new_scheme = "https";
-+  else
-+    new_scheme = g_uri_get_scheme (uri);
- 
--  path = soup_uri_get_path (uri);
-+  path = g_uri_get_path (uri);
-   if (!g_str_has_suffix (path, "/"))
--    {
--      gchar *new_path;
--
-       new_path = g_strconcat (path, "/", NULL);
--      soup_uri_set_path (uri, new_path);
--      path = soup_uri_get_path (uri);
--      g_free (new_path);
--    }
-+
-+  uri_tmp = g_uri_build (g_uri_get_flags (uri),
-+                         new_scheme,
-+                         g_uri_get_userinfo (uri),
-+                         g_uri_get_host (uri),
-+                         g_uri_get_port (uri),
-+                         new_path ? new_path : path,
-+                         g_uri_get_query (uri),
-+                         g_uri_get_fragment (uri));
-+  g_free (new_path);
-+  g_uri_unref (uri);
-+  uri = uri_tmp;
-+  path = g_uri_get_path (uri);
- 
-   if (server != NULL)
-     {
-       gchar *port_string;
-       gchar *pretty_path;
--      guint port;
-+      gint port;
- 
--      port = soup_uri_get_port (uri);
--      port_string = g_strdup_printf (":%u", port);
-+      port = g_uri_get_port (uri);
-+      port_string = g_strdup_printf (":%d", port);
- 
-       pretty_path = g_strdup (path);
-       pretty_path[strlen(pretty_path) - 1] = '\0';
- 
--      *server = g_strconcat (soup_uri_get_host (uri), (port == std_port) ? "" : port_string, pretty_path, NULL);
-+      *server = g_strconcat (g_uri_get_host (uri), (port == std_port || port == -1) ? "" : port_string, pretty_path, NULL);
- 
-       g_free (port_string);
-       g_free (pretty_path);
-     }
- 
--  ret = soup_uri_to_string (uri, FALSE);
-+  ret = g_uri_to_string (uri);
- 
-  out:
--  g_clear_pointer (&uri, soup_uri_free);
-+  g_clear_pointer (&uri, g_uri_unref);
-   g_free (scheme);
-   g_free (uri_string);
-   return ret;
-diff --git a/src/goabackend/goawebview.c b/src/goabackend/goawebview.c
-index 2438e0c..3df600e 100644
---- a/src/goabackend/goawebview.c
-+++ b/src/goabackend/goawebview.c
-@@ -25,7 +25,6 @@
- #include <glib.h>
- #include <glib/gi18n-lib.h>
- #include <jsc/jsc.h>
--#include <libsoup/soup.h>
- #include <webkit2/webkit2.h>
- 
- #include "goawebview.h"
-@@ -77,17 +76,17 @@ web_view_clear_notify_progress_cb (gpointer user_data)
- static char *
- web_view_create_loading_title (const gchar *url)
- {
--  SoupURI *uri;
-+  GUri *uri;
-   const gchar *hostname;
-   gchar *title;
- 
-   g_return_val_if_fail (url != NULL && url[0] != '\0', NULL);
- 
--  uri = soup_uri_new (url);
--  hostname = soup_uri_get_host (uri);
-+  uri = g_uri_parse (url, G_URI_FLAGS_NONE, NULL);
-+  hostname = g_uri_get_host (uri);
-   /* translators: %s here is the address of the web page */
-   title = g_strdup_printf (_("Loading “%s”…"), hostname);
--  soup_uri_free (uri);
-+  g_uri_unref (uri);
- 
-   return title;
- }
--- 
-2.33.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0002-Port-to-libsoup3.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0002-Port-to-libsoup3.patch
deleted file mode 100644
index 0f95908..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0002-Port-to-libsoup3.patch
+++ /dev/null
@@ -1,841 +0,0 @@
-From 7d8c5208d095ce8e7123935263ef7a02f0381ae5 Mon Sep 17 00:00:00 2001
-From: Carlos Garcia Campos <cgarcia@igalia.com>
-Date: Mon, 7 Jun 2021 18:28:42 +0200
-Subject: [PATCH 2/2] Port to libsoup3
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gnome-online-accounts/-/merge_requests/73]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac                       |   8 +-
- src/daemon/goadaemon.c             |   2 +-
- src/goabackend/goaewsclient.c      | 178 +++++++++++++++--------------
- src/goabackend/goahttpclient.c     |  72 +++++++-----
- src/goabackend/goalastfmprovider.c |  24 ++--
- src/goabackend/goaoauth2provider.c |   6 +-
- src/goabackend/goaoauthprovider.c  |  23 ++--
- src/goabackend/goarestproxy.h      |   2 -
- src/goabackend/goasouplogger.c     |  33 ++----
- src/goabackend/goasouplogger.h     |   3 -
- src/goabackend/goautils.c          |  27 ++---
- 11 files changed, 199 insertions(+), 179 deletions(-)
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -113,15 +113,15 @@ if test "$enable_backend" != "no"; then
-   AC_SUBST(GTK_CFLAGS)
-   AC_SUBST(GTK_LIBS)
- 
--  PKG_CHECK_MODULES(JAVASCRIPT_CORE_GTK, [javascriptcoregtk-4.0 >= 2.12.0])
-+  PKG_CHECK_MODULES(JAVASCRIPT_CORE_GTK, [javascriptcoregtk-4.1 >= 2.33.1])
-   AC_SUBST(JAVASCRIPT_CORE_GTK_CFLAGS)
-   AC_SUBST(JAVASCRIPT_CORE_GTK_LIBS)
- 
--  PKG_CHECK_MODULES(WEBKIT_GTK, [webkit2gtk-4.0 >= 2.26.0])
-+  PKG_CHECK_MODULES(WEBKIT_GTK, [webkit2gtk-4.1 >= 2.33.1])
-   AC_SUBST(WEBKIT_GTK_CFLAGS)
-   AC_SUBST(WEBKIT_GTK_LIBS)
- 
--  PKG_CHECK_MODULES(LIBSOUP, [libsoup-2.4 >= 2.42])
-+  PKG_CHECK_MODULES(LIBSOUP, [libsoup-3.0 >= 2.99.8])
-   AC_SUBST(LIBSOUP_CFLAGS)
-   AC_SUBST(LIBSOUP_LIBS)
- 
-@@ -129,7 +129,7 @@ if test "$enable_backend" != "no"; then
-   AC_SUBST(JSON_GLIB_CFLAGS)
-   AC_SUBST(JSON_GLIB_LIBS)
- 
--  PKG_CHECK_MODULES(REST, [rest-0.7])
-+  PKG_CHECK_MODULES(REST, [rest-1.0])
-   AC_SUBST(REST_CFLAGS)
-   AC_SUBST(REST_LIBS)
- 
---- a/src/daemon/goadaemon.c
-+++ b/src/daemon/goadaemon.c
-@@ -1496,7 +1496,7 @@ is_authorization_error (GError *error)
-   g_return_val_if_fail (error != NULL, FALSE);
- 
-   ret = FALSE;
--  if (error->domain == REST_PROXY_ERROR || error->domain == SOUP_HTTP_ERROR)
-+  if (error->domain == REST_PROXY_ERROR)
-     {
-       if (SOUP_STATUS_IS_CLIENT_ERROR (error->code))
-         ret = TRUE;
---- a/src/goabackend/goaewsclient.c
-+++ b/src/goabackend/goaewsclient.c
-@@ -63,6 +63,12 @@ goa_ews_client_new (void)
- 
- typedef struct
- {
-+  gchar *password;
-+  gchar *username;
-+} AutodiscoverAuthData;
-+
-+typedef struct
-+{
-   GCancellable *cancellable;
-   GError *error;
-   SoupMessage *msgs[2];
-@@ -71,13 +77,16 @@ typedef struct
-   guint pending;
-   gulong cancellable_id;
-   xmlOutputBuffer *buf;
-+  AutodiscoverAuthData *auth;
- } AutodiscoverData;
- 
--typedef struct
-+static void
-+ews_client_autodiscover_auth_data_free (AutodiscoverAuthData *auth)
- {
--  gchar *password;
--  gchar *username;
--} AutodiscoverAuthData;
-+  g_free (auth->password);
-+  g_free (auth->username);
-+  g_slice_free (AutodiscoverAuthData, auth);
-+}
- 
- static void
- ews_client_autodiscover_data_free (gpointer user_data)
-@@ -92,22 +101,12 @@ ews_client_autodiscover_data_free (gpoin
- 
-   g_clear_error (&data->error);
- 
--  /* soup_session_queue_message stole the references to data->msgs */
-   xmlOutputBufferClose (data->buf);
-+  g_clear_pointer (&data->auth, ews_client_autodiscover_auth_data_free);
-   g_object_unref (data->session);
-   g_slice_free (AutodiscoverData, data);
- }
- 
--static void
--ews_client_autodiscover_auth_data_free (gpointer data, GClosure *closure)
--{
--  AutodiscoverAuthData *auth = data;
--
--  g_free (auth->password);
--  g_free (auth->username);
--  g_slice_free (AutodiscoverAuthData, auth);
--}
--
- static gboolean
- ews_client_check_node (const xmlNode *node, const gchar *name)
- {
-@@ -115,9 +114,8 @@ ews_client_check_node (const xmlNode *no
-   return node->type == XML_ELEMENT_NODE && !g_strcmp0 ((gchar *) node->name, name);
- }
- 
--static void
--ews_client_authenticate (SoupSession *session,
--                         SoupMessage *msg,
-+static gboolean
-+ews_client_authenticate (SoupMessage *msg,
-                          SoupAuth *auth,
-                          gboolean retrying,
-                          gpointer user_data)
-@@ -125,26 +123,26 @@ ews_client_authenticate (SoupSession *se
-   AutodiscoverAuthData *data = user_data;
- 
-   if (retrying)
--    return;
-+    return FALSE;
- 
-   soup_auth_authenticate (auth, data->username, data->password);
-+  return TRUE;
- }
- 
--static void
--ews_client_request_started (SoupSession *session, SoupMessage *msg, SoupSocket *socket, gpointer user_data)
-+static gboolean
-+ews_client_accept_certificate (SoupMessage *msg, GTlsCertificate *cert, GTlsCertificateFlags cert_flags, gpointer user_data)
- {
-   AutodiscoverData *data;
-   GTask *task = G_TASK (user_data);
--  GTlsCertificateFlags cert_flags;
- 
--  g_debug ("goa_ews_client_autodiscover(): request started (%p)", msg);
-+  g_debug ("goa_ews_client_autodiscover(): accept certificate for request (%p)", msg);
- 
-   data = (AutodiscoverData *) g_task_get_task_data (task);
- 
--  if (!data->accept_ssl_errors
--      && soup_message_get_https_status (msg, NULL, &cert_flags)
--      && cert_flags != 0
--      && data->error == NULL)
-+  if (data->accept_ssl_errors || cert_flags == 0)
-+    return TRUE;
-+
-+  if (data->error == NULL)
-     {
-       goa_utils_set_error_ssl (&data->error, cert_flags);
- 
-@@ -153,6 +151,8 @@ ews_client_request_started (SoupSession
-        */
-       soup_session_abort (data->session);
-     }
-+
-+  return FALSE;
- }
- 
- static void
-@@ -192,8 +192,10 @@ ews_client_autodiscover_parse_protocol (
- }
- 
- static void
--ews_client_autodiscover_response_cb (SoupSession *session, SoupMessage *msg, gpointer user_data)
-+ews_client_autodiscover_response_cb (SoupSession *session, GAsyncResult *result, gpointer user_data)
- {
-+  SoupMessage *msg;
-+  GBytes *body;
-   GError *error = NULL;
-   AutodiscoverData *data;
-   GTask *task = G_TASK (user_data);
-@@ -204,7 +206,11 @@ ews_client_autodiscover_response_cb (Sou
-   xmlDoc *doc;
-   xmlNode *node;
- 
--  g_debug ("goa_ews_client_autodiscover(): response (%p, %u)", msg, msg->status_code);
-+  msg = soup_session_get_async_result_message (session, result);
-+
-+  g_debug ("goa_ews_client_autodiscover(): response (%p, %u)", msg, soup_message_get_status (msg));
-+
-+  body = soup_session_send_and_read_finish (session, result, &error);
- 
-   data = (AutodiscoverData *) g_task_get_task_data (task);
-   size = sizeof (data->msgs) / sizeof (data->msgs[0]);
-@@ -215,16 +221,19 @@ ews_client_autodiscover_response_cb (Sou
-         break;
-     }
-   if (idx == size || data->pending == 0)
--    return;
-+    {
-+      g_bytes_unref (body);
-+      g_clear_object (&error);
-+      g_object_unref (msg);
-+      return;
-+    }
- 
-   data->msgs[idx] = NULL;
--  status = msg->status_code;
--
--  /* status == SOUP_STATUS_CANCELLED, if we are being aborted by the
-+  /* G_IO_ERROR_CANCELLED, if we are being aborted by the
-    * GCancellable, an SSL error or another message that was
-    * successful.
-    */
--  if (status == SOUP_STATUS_CANCELLED)
-+  if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
-     {
-       /* If we are being aborted by the GCancellable, then the
-        * GTask is responsible for setting the GError automatically.
-@@ -235,21 +244,23 @@ ews_client_autodiscover_response_cb (Sou
-        */
-       goto out;
-     }
--  else if (status != SOUP_STATUS_OK)
-+
-+  status = soup_message_get_status (msg);
-+  if (status != SOUP_STATUS_OK || error)
-     {
--      g_warning ("goa_ews_client_autodiscover() failed: %u — %s", msg->status_code, msg->reason_phrase);
-+      g_warning ("goa_ews_client_autodiscover() failed: %u — %s", status, soup_message_get_reason_phrase (msg));
-       g_return_if_fail (data->error == NULL);
- 
--      goa_utils_set_error_soup (&error, msg);
-+      if (!error)
-+        goa_utils_set_error_soup (&error, msg);
-       goto out;
-     }
- 
--  soup_buffer_free (soup_message_body_flatten (SOUP_MESSAGE (msg)->response_body));
-   g_debug ("The response headers");
-   g_debug ("===================");
--  g_debug ("%s", SOUP_MESSAGE (msg)->response_body->data);
-+  g_debug ("%s", (char *)g_bytes_get_data (body, NULL));
- 
--  doc = xmlReadMemory (msg->response_body->data, msg->response_body->length, "autodiscover.xml", NULL, 0);
-+  doc = xmlReadMemory (g_bytes_get_data (body, NULL), g_bytes_get_size (body), "autodiscover.xml", NULL, 0);
-   if (doc == NULL)
-     {
-       g_set_error (&error,
-@@ -333,7 +344,7 @@ ews_client_autodiscover_response_cb (Sou
-           /* The callback (ie. this function) will be invoked after we
-            * have returned to the main loop.
-            */
--          soup_session_cancel_message (data->session, data->msgs[idx], SOUP_STATUS_CANCELLED);
-+          g_cancellable_cancel (data->cancellable);
-         }
-     }
- 
-@@ -368,6 +379,7 @@ ews_client_autodiscover_response_cb (Sou
- 
-   g_clear_error (&error);
-   g_object_unref (task);
-+  g_object_unref (msg);
- }
- 
- static xmlDoc *
-@@ -399,52 +411,54 @@ static void
- ews_client_post_restarted_cb (SoupMessage *msg, gpointer data)
- {
-   xmlOutputBuffer *buf = data;
-+  GBytes *body;
- 
-   /* In violation of RFC2616, libsoup will change a POST request to
-    * a GET on receiving a 302 redirect.
-    */
-   g_debug ("Working around libsoup bug with redirect");
--  g_object_set (msg, SOUP_MESSAGE_METHOD, "POST", NULL);
-+  g_object_set (msg, "method", "POST", NULL);
- 
--  soup_message_set_request(msg,
--                           "text/xml; charset=utf-8",
--                           SOUP_MEMORY_COPY,
- #ifdef LIBXML2_NEW_BUFFER
--                           (gchar *) xmlOutputBufferGetContent(buf),
--                           xmlOutputBufferGetSize(buf));
-+  body = g_bytes_new (xmlOutputBufferGetContent (buf), xmlOutputBufferGetSize (buf));
- #else
--                           (gchar *) buf->buffer->content,
--                           buf->buffer->use);
-+  body = g_bytes_new (buf->buffer->content, buf->buffer->use);
- #endif
-+  soup_message_set_request_body_from_bytes (msg, "text/xml; charset=utf-8", body);
-+  g_bytes_unref (body);
- }
- 
- static SoupMessage *
--ews_client_create_msg_for_url (const gchar *url, xmlOutputBuffer *buf)
-+ews_client_create_msg_for_url (const gchar *url, xmlOutputBuffer *buf, AutodiscoverAuthData *auth, GTask *task)
- {
-   SoupMessage *msg;
-+  GBytes *body = NULL;
- 
-   msg = soup_message_new (buf != NULL ? "POST" : "GET", url);
--  soup_message_headers_append (msg->request_headers, "User-Agent", "libews/0.1");
-+  soup_message_headers_append (soup_message_get_request_headers (msg),
-+                               "User-Agent", "libews/0.1");
-+
-+  g_signal_connect (msg, "authenticate",
-+                    G_CALLBACK (ews_client_authenticate),
-+                    auth);
-+  g_signal_connect (msg, "accept-certificate",
-+                    G_CALLBACK (ews_client_accept_certificate),
-+                    task);
- 
-   if (buf != NULL)
-     {
--      soup_message_set_request (msg,
--                                "text/xml; charset=utf-8",
--                                SOUP_MEMORY_COPY,
- #ifdef LIBXML2_NEW_BUFFER
--                                (gchar *) xmlOutputBufferGetContent(buf),
--                                xmlOutputBufferGetSize(buf));
-+      body = g_bytes_new (xmlOutputBufferGetContent (buf), xmlOutputBufferGetSize (buf));
- #else
--                                (gchar *) buf->buffer->content,
--                                buf->buffer->use);
-+      body = g_bytes_new (buf->buffer->content, buf->buffer->use);
- #endif
-+      soup_message_set_request_body_from_bytes (msg, "text/xml; charset=utf-8", body);
-       g_signal_connect (msg, "restarted", G_CALLBACK (ews_client_post_restarted_cb), buf);
-     }
- 
--  soup_buffer_free (soup_message_body_flatten (SOUP_MESSAGE (msg)->request_body));
-   g_debug ("The request headers");
-   g_debug ("===================");
--  g_debug ("%s", SOUP_MESSAGE (msg)->request_body->data);
-+  g_debug ("%s", body ? (char *)g_bytes_get_data (body, NULL) : "");
- 
-   return msg;
- }
-@@ -497,12 +511,15 @@ goa_ews_client_autodiscover (GoaEwsClien
-    * (successful) one win.
-    */
- 
-+  auth = g_slice_new0 (AutodiscoverAuthData);
-+  auth->username = g_strdup (username);
-+  auth->password = g_strdup (password);
-+  data->auth = auth;
-   data->buf = buf;
--  data->msgs[0] = ews_client_create_msg_for_url (url1, buf);
--  data->msgs[1] = ews_client_create_msg_for_url (url2, buf);
-+  data->msgs[0] = ews_client_create_msg_for_url (url1, buf, auth, task);
-+  data->msgs[1] = ews_client_create_msg_for_url (url2, buf, auth, task);
-   data->pending = sizeof (data->msgs) / sizeof (data->msgs[0]);
--  data->session = soup_session_new_with_options (SOUP_SESSION_SSL_STRICT, FALSE,
--                                                 NULL);
-+  data->session = soup_session_new ();
-   soup_session_add_feature_by_type (data->session, SOUP_TYPE_AUTH_NTLM);
-   data->accept_ssl_errors = accept_ssl_errors;
- 
-@@ -515,26 +532,19 @@ goa_ews_client_autodiscover (GoaEwsClien
-                                                     NULL);
-     }
- 
--  auth = g_slice_new0 (AutodiscoverAuthData);
--  auth->username = g_strdup (username);
--  auth->password = g_strdup (password);
--  g_signal_connect_data (data->session,
--                         "authenticate",
--                         G_CALLBACK (ews_client_authenticate),
--                         auth,
--                         ews_client_autodiscover_auth_data_free,
--                         0);
--
--  g_signal_connect (data->session, "request-started", G_CALLBACK (ews_client_request_started), task);
--
--  soup_session_queue_message (data->session,
--                              data->msgs[0],
--                              ews_client_autodiscover_response_cb,
--                              g_object_ref (task));
--  soup_session_queue_message (data->session,
--                              data->msgs[1],
--                              ews_client_autodiscover_response_cb,
--                              g_object_ref (task));
-+
-+  soup_session_send_and_read_async (data->session,
-+                                    data->msgs[0],
-+                                    G_PRIORITY_DEFAULT,
-+                                    data->cancellable,
-+                                    (GAsyncReadyCallback)ews_client_autodiscover_response_cb,
-+                                    g_object_ref (task));
-+  soup_session_send_and_read_async (data->session,
-+                                    data->msgs[1],
-+                                    G_PRIORITY_DEFAULT,
-+                                    data->cancellable,
-+                                    (GAsyncReadyCallback)ews_client_autodiscover_response_cb,
-+                                    g_object_ref (task));
- 
-   g_free (url2);
-   g_free (url1);
---- a/src/goabackend/goahttpclient.c
-+++ b/src/goabackend/goahttpclient.c
-@@ -82,7 +82,7 @@ http_client_check_data_free (gpointer us
- 
-   g_clear_error (&data->error);
- 
--  /* soup_session_queue_message stole the references to data->msg */
-+  g_object_unref (data->msg);
-   g_object_unref (data->session);
-   g_slice_free (CheckData, data);
- }
-@@ -97,9 +97,8 @@ http_client_check_auth_data_free (gpoint
-   g_slice_free (CheckAuthData, auth);
- }
- 
--static void
--http_client_authenticate (SoupSession *session,
--                         SoupMessage *msg,
-+static gboolean
-+http_client_authenticate (SoupMessage *msg,
-                          SoupAuth *auth,
-                          gboolean retrying,
-                          gpointer user_data)
-@@ -107,26 +106,26 @@ http_client_authenticate (SoupSession *s
-   CheckAuthData *data = user_data;
- 
-   if (retrying)
--    return;
-+    return FALSE;
- 
-   soup_auth_authenticate (auth, data->username, data->password);
-+  return TRUE;
- }
- 
--static void
--http_client_request_started (SoupSession *session, SoupMessage *msg, SoupSocket *socket, gpointer user_data)
-+static gboolean
-+http_client_accept_certificate (SoupMessage *msg, GTlsCertificate *cert, GTlsCertificateFlags cert_flags, gpointer user_data)
- {
-   CheckData *data;
-   GTask *task = G_TASK (user_data);
--  GTlsCertificateFlags cert_flags;
- 
-   g_debug ("goa_http_client_check(): request started (%p)", msg);
- 
-   data = (CheckData *) g_task_get_task_data (task);
- 
--  if (!data->accept_ssl_errors
--      && soup_message_get_https_status (msg, NULL, &cert_flags)
--      && cert_flags != 0
--      && data->error == NULL)
-+  if (data->accept_ssl_errors || cert_flags == 0)
-+    return TRUE;
-+
-+  if (data->error == NULL)
-     {
-       goa_utils_set_error_ssl (&data->error, cert_flags);
- 
-@@ -135,6 +134,8 @@ http_client_request_started (SoupSession
-        */
-       soup_session_abort (data->session);
-     }
-+
-+  return FALSE;
- }
- 
- static void
-@@ -154,21 +155,27 @@ http_client_check_cancelled_cb (GCancell
- }
- 
- static void
--http_client_check_response_cb (SoupSession *session, SoupMessage *msg, gpointer user_data)
-+http_client_check_response_cb (SoupSession *session, GAsyncResult *result, gpointer user_data)
- {
-+  SoupMessage *msg;
-   CheckData *data;
--  GCancellable *cancellable;
-   GTask *task = G_TASK (user_data);
-+  guint status;
-+  GBytes *body;
-+  GError *error = NULL;
- 
--  g_debug ("goa_http_client_check(): response (%p, %u)", msg, msg->status_code);
-+  msg = soup_session_get_async_result_message (session, result);
-+
-+  g_debug ("goa_http_client_check(): response (%p, %u)", msg, soup_message_get_status (msg));
-+
-+  body = soup_session_send_and_read_finish (session, result, &error);
- 
-   data = (CheckData *) g_task_get_task_data (task);
--  cancellable = g_task_get_cancellable (task);
- 
--  /* status == SOUP_STATUS_CANCELLED, if we are being aborted by the
-+  /* G_IO_ERROR_CANCELLED, if we are being aborted by the
-    * GCancellable or due to an SSL error.
-    */
--  if (msg->status_code == SOUP_STATUS_CANCELLED)
-+  if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
-     {
-       /* If we are being aborted by the GCancellable then there might
-        * or might not be an error. The GCancellable can be triggered
-@@ -176,20 +183,27 @@ http_client_check_response_cb (SoupSessi
-        * of events across threads.
-        */
-       if (data->error == NULL)
--        g_cancellable_set_error_if_cancelled (cancellable, &data->error);
-+        g_propagate_error (&data->error, g_steal_pointer (&error));
- 
-       goto out;
-     }
--  else if (msg->status_code != SOUP_STATUS_OK)
-+
-+  status = soup_message_get_status (msg);
-+  if (status != SOUP_STATUS_OK || error)
-     {
--      g_warning ("goa_http_client_check() failed: %u — %s", msg->status_code, msg->reason_phrase);
-+      g_warning ("goa_http_client_check() failed: %u — %s", status, soup_message_get_reason_phrase (msg));
-       g_return_if_fail (data->error == NULL);
- 
--      goa_utils_set_error_soup (&data->error, msg);
-+      if (error)
-+        g_propagate_error (&data->error, g_steal_pointer (&error));
-+      else
-+        goa_utils_set_error_soup (&data->error, msg);
-       goto out;
-     }
- 
-  out:
-+  g_clear_error (&error);
-+  g_clear_pointer (&body, g_bytes_unref);
-   if (data->error != NULL)
-     g_task_return_error (task, g_steal_pointer (&data->error));
-   else
-@@ -225,7 +239,7 @@ goa_http_client_check (GoaHttpClient
-   data = g_slice_new0 (CheckData);
-   g_task_set_task_data (task, data, http_client_check_data_free);
- 
--  data->session = soup_session_new_with_options (SOUP_SESSION_SSL_STRICT, FALSE, NULL);
-+  data->session = soup_session_new ();
- 
-   logger = goa_soup_logger_new (SOUP_LOGGER_LOG_BODY, -1);
-   soup_session_add_feature (data->session, SOUP_SESSION_FEATURE (logger));
-@@ -246,15 +260,21 @@ goa_http_client_check (GoaHttpClient
-   auth = g_slice_new0 (CheckAuthData);
-   auth->username = g_strdup (username);
-   auth->password = g_strdup (password);
--  g_signal_connect_data (data->session,
-+  g_signal_connect_data (data->msg,
-                          "authenticate",
-                          G_CALLBACK (http_client_authenticate),
-                          auth,
-                          http_client_check_auth_data_free,
-                          0);
- 
--  g_signal_connect (data->session, "request-started", G_CALLBACK (http_client_request_started), task);
--  soup_session_queue_message (data->session, data->msg, http_client_check_response_cb, g_object_ref (task));
-+  g_signal_connect (data->msg, "accept-certificate", G_CALLBACK (http_client_accept_certificate), task);
-+
-+  soup_session_send_and_read_async (data->session,
-+                                    data->msg,
-+                                    G_PRIORITY_DEFAULT,
-+                                    data->cancellable,
-+                                    (GAsyncReadyCallback)http_client_check_response_cb,
-+                                    g_object_ref (task));
- 
-   g_object_unref (task);
- }
---- a/src/goabackend/goalastfmprovider.c
-+++ b/src/goabackend/goalastfmprovider.c
-@@ -483,8 +483,7 @@ add_account_cb (GoaManager *manager, GAs
- 
- static void
- check_cb (RestProxyCall *call,
--          const GError *error,
--          GObject *weak_object,
-+          GAsyncResult *result,
-           gpointer user_data)
- {
-   AddAccountData *data = user_data;
-@@ -494,6 +493,9 @@ check_cb (RestProxyCall *call,
-   JsonObject *session_obj;
-   const gchar *payload;
- 
-+  if (!rest_proxy_call_invoke_finish (call, result, &data->error))
-+    goto out;
-+
-   parser = NULL;
- 
-   parser = json_parser_new ();
-@@ -562,12 +564,12 @@ on_rest_proxy_call_cancelled_cb (GCancel
- }
- 
- static void
--lastfm_login (GoaProvider                  *provider,
--              const gchar                  *username,
--              const gchar                  *password,
--              GCancellable                 *cancellable,
--              RestProxyCallAsyncCallback   callback,
--              gpointer                     user_data)
-+lastfm_login (GoaProvider          *provider,
-+              const gchar          *username,
-+              const gchar          *password,
-+              GCancellable         *cancellable,
-+              GAsyncReadyCallback   callback,
-+              gpointer              user_data)
- {
-   AddAccountData *data = user_data;
-   RestProxyCall *call;
-@@ -598,7 +600,7 @@ lastfm_login (GoaProvider
-   rest_proxy_call_add_param (call, "api_sig", sig_md5);
-   rest_proxy_call_add_param (call, "format", "json");
- 
--  rest_proxy_call_async (call, callback, NULL, data, &data->error);
-+  rest_proxy_call_invoke_async (call, NULL, callback, data);
- 
-   g_signal_connect (cancellable, "cancelled", G_CALLBACK (on_rest_proxy_call_cancelled_cb), call);
- 
-@@ -665,7 +667,7 @@ add_account (GoaProvider    *provider,
-                 username,
-                 password,
-                 data.cancellable,
--                (RestProxyCallAsyncCallback) check_cb,
-+                (GAsyncReadyCallback) check_cb,
-                 &data);
- 
-   gtk_widget_set_sensitive (data.connect_button, FALSE);
-@@ -819,7 +821,7 @@ refresh_account (GoaProvider    *provide
-                 username,
-                 password,
-                 data.cancellable,
--                (RestProxyCallAsyncCallback) check_cb,
-+                (GAsyncReadyCallback) check_cb,
-                 &data);
-   gtk_widget_set_sensitive (data.connect_button, FALSE);
-   gtk_widget_show (data.progress_grid);
---- a/src/goabackend/goaoauth2provider.c
-+++ b/src/goabackend/goaoauth2provider.c
-@@ -95,11 +95,15 @@ is_authorization_error (GError *error)
-   g_return_val_if_fail (error != NULL, FALSE);
- 
-   ret = FALSE;
--  if (error->domain == REST_PROXY_ERROR || error->domain == SOUP_HTTP_ERROR)
-+  if (error->domain == REST_PROXY_ERROR)
-     {
-       if (SOUP_STATUS_IS_CLIENT_ERROR (error->code))
-         ret = TRUE;
-     }
-+  else if (g_error_matches (error, GOA_ERROR, GOA_ERROR_NOT_AUTHORIZED))
-+    {
-+      ret = TRUE;
-+    }
-   return ret;
- }
- 
---- a/src/goabackend/goaoauthprovider.c
-+++ b/src/goabackend/goaoauthprovider.c
-@@ -77,11 +77,15 @@ is_authorization_error (GError *error)
-   g_return_val_if_fail (error != NULL, FALSE);
- 
-   ret = FALSE;
--  if (error->domain == REST_PROXY_ERROR || error->domain == SOUP_HTTP_ERROR)
-+  if (error->domain == REST_PROXY_ERROR)
-     {
-       if (SOUP_STATUS_IS_CLIENT_ERROR (error->code))
-         ret = TRUE;
-     }
-+  else if (g_error_matches (error, GOA_ERROR, GOA_ERROR_NOT_AUTHORIZED))
-+    {
-+      ret = TRUE;
-+    }
-   return ret;
- }
- 
-@@ -701,9 +705,15 @@ on_web_view_decide_policy (WebKitWebView
- }
- 
- static void
--rest_proxy_call_cb (RestProxyCall *call, const GError *error, GObject *weak_object, gpointer user_data)
-+rest_proxy_call_cb (GObject *source, GAsyncResult *result, gpointer user_data)
- {
-+  RestProxyCall *call = REST_PROXY_CALL (source);
-   IdentifyData *data = user_data;
-+
-+  if (!rest_proxy_call_invoke_finish (call, result, &data->error))
-+    {
-+      g_prefix_error (&data->error, _("Error getting a Request Token: "));
-+    }
-   g_main_loop_quit (data->loop);
- }
- 
-@@ -770,11 +780,7 @@ get_tokens_and_identity (GoaOAuthProvide
-       for (n = 0; request_params[n] != NULL; n += 2)
-         rest_proxy_call_add_param (call, request_params[n], request_params[n+1]);
-     }
--  if (!rest_proxy_call_async (call, rest_proxy_call_cb, NULL, &data, &data.error))
--    {
--      g_prefix_error (&data.error, _("Error getting a Request Token: "));
--      goto out;
--    }
-+  rest_proxy_call_invoke_async (call, NULL, rest_proxy_call_cb, &data);
- 
-   goa_utils_set_dialog_title (GOA_PROVIDER (provider), dialog, add_account);
- 
-@@ -796,6 +802,9 @@ get_tokens_and_identity (GoaOAuthProvide
-   g_main_loop_run (data.loop);
-   gtk_container_remove (GTK_CONTAINER (grid), spinner);
- 
-+  if (data.error)
-+    goto out;
-+
-   if (rest_proxy_call_get_status_code (call) != 200)
-     {
-       gchar *msg;
---- a/src/goabackend/goarestproxy.h
-+++ b/src/goabackend/goarestproxy.h
-@@ -27,8 +27,6 @@
- 
- G_BEGIN_DECLS
- 
--G_DEFINE_AUTOPTR_CLEANUP_FUNC (RestProxy, g_object_unref);
--
- #define GOA_TYPE_REST_PROXY (goa_rest_proxy_get_type ())
- G_DECLARE_FINAL_TYPE (GoaRestProxy, goa_rest_proxy, GOA, REST_PROXY, RestProxy);
- 
---- a/src/goabackend/goasouplogger.c
-+++ b/src/goabackend/goasouplogger.c
-@@ -22,15 +22,6 @@
- 
- #include "goasouplogger.h"
- 
--struct _GoaSoupLogger
--{
--  SoupLogger parent_instance;
--};
--
--G_DEFINE_TYPE (GoaSoupLogger, goa_soup_logger, SOUP_TYPE_LOGGER);
--
--/* ---------------------------------------------------------------------------------------------------- */
--
- static void
- goa_soup_logger_printer (SoupLogger         *logger,
-                          SoupLoggerLogLevel  level,
-@@ -45,24 +36,16 @@ goa_soup_logger_printer (SoupLogger
-   g_free (message);
- }
- 
--/* ---------------------------------------------------------------------------------------------------- */
--
--static void
--goa_soup_logger_init (GoaSoupLogger *self)
--{
--  soup_logger_set_printer (SOUP_LOGGER (self), goa_soup_logger_printer, NULL, NULL);
--}
--
--static void
--goa_soup_logger_class_init (GoaSoupLoggerClass *klass)
--{
--}
--
--/* ---------------------------------------------------------------------------------------------------- */
--
- SoupLogger *
- goa_soup_logger_new (SoupLoggerLogLevel   level,
-                      gint                 max_body_size)
- {
--  return g_object_new (GOA_TYPE_SOUP_LOGGER, "level", level, "max-body-size", max_body_size, NULL);
-+  SoupLogger *logger;
-+
-+  logger = soup_logger_new (level);
-+  if (max_body_size != -1)
-+    soup_logger_set_max_body_size (logger, max_body_size);
-+  soup_logger_set_printer (logger, goa_soup_logger_printer, NULL, NULL);
-+
-+  return logger;
- }
---- a/src/goabackend/goasouplogger.h
-+++ b/src/goabackend/goasouplogger.h
-@@ -27,9 +27,6 @@
- 
- G_BEGIN_DECLS
- 
--#define GOA_TYPE_SOUP_LOGGER (goa_soup_logger_get_type ())
--G_DECLARE_FINAL_TYPE (GoaSoupLogger, goa_soup_logger, GOA, SOUP_LOGGER, SoupLogger);
--
- SoupLogger     *goa_soup_logger_new                (SoupLoggerLogLevel   level,
-                                                     gint                 max_body_size);
- 
---- a/src/goabackend/goautils.c
-+++ b/src/goabackend/goautils.c
-@@ -841,29 +841,26 @@ goa_utils_set_error_soup (GError **err,
- {
-   gchar *error_msg = NULL;
-   gint error_code = GOA_ERROR_FAILED; /* TODO: more specific */
-+  guint status_code;
- 
--  switch (msg->status_code)
-+  status_code = soup_message_get_status (msg);
-+  switch (status_code)
-     {
--    case SOUP_STATUS_CANT_RESOLVE:
--      error_msg = g_strdup (_("Cannot resolve hostname"));
--      break;
--
--    case SOUP_STATUS_CANT_RESOLVE_PROXY:
--      error_msg = g_strdup (_("Cannot resolve proxy hostname"));
--      break;
--
-     case SOUP_STATUS_INTERNAL_SERVER_ERROR:
-     case SOUP_STATUS_NOT_FOUND:
-       error_msg = g_strdup (_("Cannot find WebDAV endpoint"));
-       break;
- 
--    case SOUP_STATUS_UNAUTHORIZED:
--      error_msg = g_strdup (_("Authentication failed"));
--      error_code = GOA_ERROR_NOT_AUTHORIZED;
--      break;
--
-     default:
--      error_msg = g_strdup_printf (_("Code: %u — Unexpected response from server"), msg->status_code);
-+      if (SOUP_STATUS_IS_CLIENT_ERROR (status_code))
-+        {
-+          error_msg = g_strdup (_("Authentication failed"));
-+          error_code = GOA_ERROR_NOT_AUTHORIZED;
-+        }
-+      else
-+        {
-+          error_msg = g_strdup_printf (_("Code: %u — Unexpected response from server"), status_code);
-+        }
-       break;
-     }
- 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.43.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.43.1.bb
index 8580d29..3dca7e3 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.43.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.43.1.bb
@@ -11,16 +11,13 @@
 
 DEPENDS = "glib-2.0"
 
-SRC_URI += "\
-    file://0001-Use-GUri-instead-of-SoupURI.patch \
-    file://0002-Port-to-libsoup3.patch \
-"
+SRC_URI += "file://0001-Update-to-rest-1.0.patch"
 SRC_URI[archive.sha256sum] = "3bcb3663a12efd4482d9fdda3e171676267fc739eb6440a2b7109a0e87afb7e8"
 
 # backend is required for gnome-control-center
 PACKAGECONFIG = "backend other"
 
-PACKAGECONFIG[backend] = "--enable-backend,--disable-backend,gtk+3 webkitgtk libsoup json-glib libsecret rest libxml2"
+PACKAGECONFIG[backend] = "--enable-backend,--disable-backend,gtk+3 webkitgtk libsoup-2.4 json-glib libsecret rest libxml2"
 PACKAGECONFIG[krb5] = "--enable-kerberos, --disable-kerberos , krb5 gcr"
 
 # no extra dependencies!
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.36.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.36.1.bb
deleted file mode 100644
index 9a7c377..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.36.1.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "GNOME flashback panel"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit gnomebase gsettings itstool gnome-help gtk-icon-cache gtk-doc gettext upstream-version-is-even features_check
-
-REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
-
-DEPENDS += " \
-    yelp-tools-native \
-    libwnck3 \
-    polkit \
-    dconf \
-    libgweather \
-    gnome-menus3 \
-    gnome-desktop3 \
-    gdm \
-"
-
-SRC_URI[archive.md5sum] = "b6bb185ce1724f4b19699042d90282a6"
-SRC_URI[archive.sha256sum] = "1e21b726dd397523ae79d29eb538bcae09e3427e23ccd63f28eb25ef3552abd3"
-
-PACKAGECONFIG[eds] = "--enable-eds,--disable-eds,evolution-data-server"
-
-RDEPENDS:${PN} += "gdm-base"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.42.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.42.0.bb
new file mode 100644
index 0000000..9c9add4
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.42.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "GNOME flashback panel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit gnomebase gsettings itstool gnome-help gtk-icon-cache gtk-doc gettext upstream-version-is-even features_check
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
+
+DEPENDS += " \
+    yelp-tools-native \
+    libwnck3 \
+    polkit \
+    dconf \
+    libgweather \
+    gnome-menus \
+    gnome-desktop \
+    gdm \
+"
+
+SRC_URI[archive.sha256sum] = "aea8c0efc2edba20e97ad4695179cd0a2538e64c2904702cc8c594e8e0898703"
+
+PACKAGECONFIG[eds] = "--enable-eds,--disable-eds,evolution-data-server"
+
+RDEPENDS:${PN} += "gdm-base"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos/0001-meson-remove-incorrect-args-for-i18n.merge_file.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos/0001-meson-remove-incorrect-args-for-i18n.merge_file.patch
new file mode 100644
index 0000000..9fb7a5b
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos/0001-meson-remove-incorrect-args-for-i18n.merge_file.patch
@@ -0,0 +1,31 @@
+From a112e8a089851035945b6848849149bb36787906 Mon Sep 17 00:00:00 2001
+From: rvalue <i@rvalue.moe>
+Date: Fri, 21 Jan 2022 12:36:02 +0000
+Subject: [PATCH] meson: remove incorrect args for i18n.merge_file
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ data/meson.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index 6e7192e..94271de 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -3,7 +3,6 @@ subdir('icons')
+ appdata = photos_namespace + '.appdata.xml'
+ 
+ i18n.merge_file(
+-  appdata,
+   input: appdata + '.in',
+   output: appdata,
+   po_dir: po_dir,
+@@ -23,7 +22,6 @@ desktop_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  desktop,
+   type: 'desktop',
+   input: desktop_in,
+   output: desktop,
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_40.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_40.0.bb
index fb1b7d3..ae8ab31 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_40.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_40.0.bb
@@ -30,6 +30,7 @@
 
 REQUIRED_DISTRO_FEATURES = "x11"
 
+SRC_URI += " file://0001-meson-remove-incorrect-args-for-i18n.merge_file.patch"
 SRC_URI[archive.sha256sum] = "e02d73e138af8b2868b5cad7faa1bdd278aeade3b6c3c92836511a4e6f3af1af"
 
 do_install:append() {
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot/0001-meson-remove-extraneous-positional-argument.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot/0001-meson-remove-extraneous-positional-argument.patch
new file mode 100644
index 0000000..c80fda6
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot/0001-meson-remove-extraneous-positional-argument.patch
@@ -0,0 +1,36 @@
+From c38c604b06a63f690d67318d4ef97ac556264876 Mon Sep 17 00:00:00 2001
+From: Jack Hill <jackhill@jackhill.us>
+Date: Thu, 18 Nov 2021 00:46:58 -0500
+Subject: [PATCH] meson: remove extraneous positional argument
+
+* data/meson.build (desktop_file)
+  (metainfo_file): Remove extraneous positional argument.
+
+Closes #186
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ data/meson.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index fd570b3..4e2e2e8 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -1,7 +1,6 @@
+ gnome = import('gnome')
+ 
+ desktop_file = i18n.merge_file(
+-  'desktop',
+   type: 'desktop',
+   input: 'org.gnome.Screenshot.desktop.in',
+   output: 'org.gnome.Screenshot.desktop',
+@@ -23,7 +22,6 @@ if desktop_file_validate.found()
+ endif
+ 
+ metainfo_file = i18n.merge_file(
+-  'appdata',
+   input: 'org.gnome.Screenshot.metainfo.xml.in',
+   output: 'org.gnome.Screenshot.metainfo.xml',
+   po_dir: join_paths(meson.current_source_dir(), '../po'),
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot_40.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot_40.0.bb
deleted file mode 100644
index 72272f9..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot_40.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "GNOME Screenshot"
-DESCRIPTION = "GNOME Screenshot is a small utility that takes a screenshot \
-of the whole desktop, the currently focused window, or an area of the screen."
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-SECTION = "x11/gnome"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit features_check gnomebase gettext upstream-version-is-even pkgconfig
-
-SRC_URI[archive.sha256sum] = "368ca95a39e39dc2406c849e8c4205e3f574acdd874c30741873455e3d21a5e2"
-
-DEPENDS += "glib-2.0 glib-2.0-native gtk+3 libhandy xext"
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1 \
-    ${datadir}/metainfo \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot_41.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot_41.0.bb
new file mode 100644
index 0000000..18d73d8
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot_41.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "GNOME Screenshot"
+DESCRIPTION = "GNOME Screenshot is a small utility that takes a screenshot \
+of the whole desktop, the currently focused window, or an area of the screen."
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+SECTION = "x11/gnome"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit features_check gnomebase gettext upstream-version-is-even pkgconfig
+
+SRC_URI += " file://0001-meson-remove-extraneous-positional-argument.patch"
+SRC_URI[archive.sha256sum] = "4adb7dec926428f74263d5796673cf142e4720b6e768f5468a8d0933f98c9597"
+
+DEPENDS += "glib-2.0 glib-2.0-native gtk+3 libhandy xext"
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1 \
+    ${datadir}/metainfo \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_3.36.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_3.36.0.bb
deleted file mode 100644
index 3fdcfd8..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_3.36.0.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "GNOME session"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = " \
-    glib-2.0-native \
-    libxslt-native \
-    xmlto-native \
-    xtrans \
-    libice \
-    libsm \
-    virtual/libx11 \
-    gtk+3 \
-    gnome-desktop3 \
-    gsettings-desktop-schemas \
-    json-glib \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gettext gsettings upstream-version-is-even features_check
-
-REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data"
-
-SRC_URI[archive.md5sum] = "cd23e30c4991ca1f477020c67ea3a540"
-SRC_URI[archive.sha256sum] = "d54b38b818c812f64b82cc6a1279e3ca5a6e391ee662793322a38cab5670bb7a"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit',d)}"
-
-PACKAGECONFIG[consolekit] = "-Dconsolekit=true, -Dconsolekit=false, consolekit"
-PACKAGECONFIG[systemd] = "-Dsystemd=true -Dsystemd_journal=true, -Dsystemd=false -Dsystemd_journal=false, systemd"
-
-FILES:${PN} += " \
-    ${datadir}/xsessions \
-    ${datadir}/wayland-sessions \
-    ${systemd_user_unitdir} \
-"
-
-RDEPENDS:${PN} += "gnome-shell gnome-settings-daemon gsettings-desktop-schemas"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_41.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_41.3.bb
new file mode 100644
index 0000000..010f815
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_41.3.bb
@@ -0,0 +1,38 @@
+SUMMARY = "GNOME session"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = " \
+    glib-2.0-native \
+    libxslt-native \
+    xmlto-native \
+    xtrans \
+    libice \
+    libsm \
+    virtual/libx11 \
+    gtk+3 \
+    gnome-desktop \
+    gsettings-desktop-schemas \
+    json-glib \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gettext gsettings upstream-version-is-even features_check
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data"
+
+SRC_URI[archive.sha256sum] = "ee4a229053f522624054889609335b885287cf67bbde0dc9fd882b01ec9b5b39"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit',d)}"
+
+PACKAGECONFIG[consolekit] = "-Dconsolekit=true, -Dconsolekit=false, consolekit"
+PACKAGECONFIG[systemd] = "-Dsystemd=true -Dsystemd_journal=true, -Dsystemd=false -Dsystemd_journal=false, systemd"
+
+FILES:${PN} += " \
+    ${datadir}/xsessions \
+    ${datadir}/wayland-sessions \
+    ${systemd_user_unitdir} \
+"
+
+RDEPENDS:${PN} += "gnome-shell gnome-settings-daemon gsettings-desktop-schemas"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon/0001-build-remove-positional-i18n.merge_file-arguments.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon/0001-build-remove-positional-i18n.merge_file-arguments.patch
new file mode 100644
index 0000000..cb758c7
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon/0001-build-remove-positional-i18n.merge_file-arguments.patch
@@ -0,0 +1,40 @@
+From 56535d2f1ec64e847e5fbd0613e78bd0dc046519 Mon Sep 17 00:00:00 2001
+From: Michal Vasilek <michal@vasilek.cz>
+Date: Fri, 14 Jan 2022 23:55:06 +0100
+Subject: [PATCH] build: remove positional i18n.merge_file arguments
+
+otherwise building with meson 0.61+ fails:
+
+    ERROR: Function does not take positional arguments.
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/281]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ plugins/power/meson.build | 1 -
+ plugins/wacom/meson.build | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/plugins/power/meson.build b/plugins/power/meson.build
+index 69e619f..014bb6d 100644
+--- a/plugins/power/meson.build
++++ b/plugins/power/meson.build
+@@ -76,7 +76,6 @@ if host_is_linux
+   )
+ 
+   i18n.merge_file(
+-    policy,
+     input: policy_in,
+     output: policy,
+     po_dir: po_dir,
+diff --git a/plugins/wacom/meson.build b/plugins/wacom/meson.build
+index d8dd0ec..c00323d 100644
+--- a/plugins/wacom/meson.build
++++ b/plugins/wacom/meson.build
+@@ -7,7 +7,6 @@ policy_in = configure_file(
+ )
+ 
+ i18n.merge_file(
+-  policy,
+   input: policy_in,
+   output: policy,
+   po_dir: po_dir,
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_3.36.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_3.36.1.bb
deleted file mode 100644
index 171e46e..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_3.36.1.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SUMMARY = "Window navigation construction toolkit"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gobject-introspection gettext features_check upstream-version-is-even
-
-DEPENDS = " \
-    colord \
-    geocode-glib \
-    gcr \
-    gnome-desktop3 \
-    libgweather \
-    lcms \
-    libcanberra \
-    geoclue \
-    libnotify \
-    upower \
-    libwacom \
-    virtual/libx11 \
-"
-
-# all these are mandatory
-REQUIRED_DISTRO_FEATURES = "x11 polkit pulseaudio systemd gobject-introspection-data"
-
-SRC_URI[archive.md5sum] = "102dc488a6a726e4050cf5ab7e967e8d"
-SRC_URI[archive.sha256sum] = "3e33dbd319b562a5ab602dcab6de3ca81b85f8346672e90ec632b36bbf15ee4b"
-
-UNKNOWN_CONFIGURE_WHITELIST = "introspection"
-
-PACKAGECONFIG ??= " \
-    cups nm \
-    alsa gudev \
-    smartcard \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
-"
-PACKAGECONFIG[alsa] = "-Dalsa=true,-Dalsa=false,alsa-lib"
-PACKAGECONFIG[cups] = "-Dcups=true,-Dcups=false,cups"
-PACKAGECONFIG[gudev] = "-Dgudev=true,-Dgudev=false,libgudev"
-PACKAGECONFIG[nm] = "-Dnetwork_manager=true,-Dnetwork_manager=false,networkmanager"
-PACKAGECONFIG[smartcard] = "-Dsmartcard=true,-Dsmartcard=false,nss"
-PACKAGECONFIG[wayland] = "-Dwayland=true,-Dwayland=false,wayland"
-
-FILES:${PN} += " \
-    ${systemd_user_unitdir} \
-    ${libdir}/gnome-settings-daemon-3.0/libgsd.so \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_41.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_41.0.bb
new file mode 100644
index 0000000..78d6811
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_41.0.bb
@@ -0,0 +1,47 @@
+SUMMARY = "Window navigation construction toolkit"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection gettext features_check upstream-version-is-even
+
+DEPENDS = " \
+    colord \
+    geocode-glib \
+    gcr \
+    gnome-desktop \
+    libgweather \
+    lcms \
+    libcanberra \
+    geoclue \
+    libnotify \
+    upower \
+    libwacom \
+    virtual/libx11 \
+"
+
+# all these are mandatory
+REQUIRED_DISTRO_FEATURES = "x11 polkit pulseaudio systemd gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+SRC_URI += " file://0001-build-remove-positional-i18n.merge_file-arguments.patch"
+SRC_URI[archive.sha256sum] = "e6ca6361fbd1deab2de1a1e390d4f14167cf47b1c547dbb8b65a5d89e9663884"
+
+PACKAGECONFIG ??= " \
+    cups nm \
+    alsa gudev \
+    smartcard \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
+"
+PACKAGECONFIG[alsa] = "-Dalsa=true,-Dalsa=false,alsa-lib"
+PACKAGECONFIG[cups] = "-Dcups=true,-Dcups=false,cups"
+PACKAGECONFIG[gudev] = "-Dgudev=true,-Dgudev=false,libgudev"
+PACKAGECONFIG[nm] = "-Dnetwork_manager=true,-Dnetwork_manager=false,networkmanager"
+PACKAGECONFIG[smartcard] = "-Dsmartcard=true,-Dsmartcard=false,nss"
+PACKAGECONFIG[wayland] = "-Dwayland=true,-Dwayland=false,wayland"
+
+FILES:${PN} += " \
+    ${systemd_user_unitdir} \
+    ${libdir}/gnome-settings-daemon-41/libgsd.so \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_3.34.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_3.34.2.bb
deleted file mode 100644
index f74a853..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_3.34.2.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "GNOME Shell Extensions"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4cb3a392cbf81a9e685ec13b88c4c101"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gettext gsettings features_check upstream-version-is-even
-
-REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data"
-
-SRC_URI[archive.md5sum] = "d3a69cde0c3e3dc0b0c243af026c4b7a"
-SRC_URI[archive.sha256sum] = "a1e16e75a06ea511435a6f7478de92aff21d02d4e1d59ec8ce7fb6396819b4b8"
-
-DEPENDS += " \
-    sassc-native \
-"
-
-EXTRA_OEMESON += " \
-    -Dextension_set=all \
-    -Dclassic_mode=true \
-"
-
-RDEPENDS:${PN} += "gnome-shell"
-
-FILES:${PN} += " \
-    ${datadir}/gnome-shell \
-    ${datadir}/gnome-session \
-    ${datadir}/xsessions \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_41.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_41.1.bb
new file mode 100644
index 0000000..16184f2
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_41.1.bb
@@ -0,0 +1,35 @@
+SUMMARY = "GNOME Shell Extensions"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4cb3a392cbf81a9e685ec13b88c4c101"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gettext gsettings features_check
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data"
+
+SRC_URI[archive.sha256sum] = "d0e6f2273f08d52d925fc2bb66b47b28e5ef50d1b8a14020877c662423d507d3"
+
+DEPENDS += " \
+    sassc-native \
+"
+
+EXTRA_OEMESON += " \
+    -Dextension_set=all \
+    -Dclassic_mode=true \
+"
+
+do_install:append() {
+    # enable gnome-classic session for wayland
+    install -d ${D}${datadir}/wayland-sessions
+    install -m644 ${D}${datadir}/xsessions/gnome-classic.desktop ${D}${datadir}/wayland-sessions/
+}
+
+RDEPENDS:${PN} += "gnome-shell"
+
+FILES:${PN} += " \
+    ${datadir}/gnome-shell \
+    ${datadir}/gnome-session \
+    ${datadir}/wayland-sessions \
+    ${datadir}/xsessions \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch
new file mode 100644
index 0000000..15e3c8c
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch
@@ -0,0 +1,112 @@
+From 3bf597b16e23cd2ce0ee3b05c23b46add5e26cd4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Thu, 28 Oct 2021 18:57:24 +0200
+Subject: [PATCH] Introduce options 'gjs_path' to optionally set path to gjs
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ js/dbusServices/meson.build                  | 2 +-
+ meson.build                                  | 6 +++++-
+ meson_options.txt                            | 6 ++++++
+ subprojects/extensions-app/js/meson.build    | 2 +-
+ subprojects/extensions-app/meson.build       | 7 ++++++-
+ subprojects/extensions-app/meson_options.txt | 6 ++++++
+ 6 files changed, 25 insertions(+), 4 deletions(-)
+
+diff --git a/js/dbusServices/meson.build b/js/dbusServices/meson.build
+index 68e8bd12d..16efaebe5 100644
+--- a/js/dbusServices/meson.build
++++ b/js/dbusServices/meson.build
+@@ -27,7 +27,7 @@ foreach service, dir : dbus_services
+ 
+   serviceconf = configuration_data()
+   serviceconf.set('service', service)
+-  serviceconf.set('gjs', gjs.path())
++  serviceconf.set('gjs', gjs)
+   serviceconf.set('pkgdatadir', pkgdatadir)
+ 
+   configure_file(
+diff --git a/meson.build b/meson.build
+index d4583ecf2..3448c6312 100644
+--- a/meson.build
++++ b/meson.build
+@@ -138,7 +138,11 @@ endif
+ 
+ mutter_typelibdir = mutter_dep.get_pkgconfig_variable('typelibdir')
+ python = find_program('python3')
+-gjs = find_program('gjs')
++if get_option('gjs_path') == ''
++  gjs = find_program('gjs')
++else
++  gjs = get_option('gjs_path')
++endif
+ 
+ cc = meson.get_compiler('c')
+ 
+diff --git a/meson_options.txt b/meson_options.txt
+index f0f2ecf6c..a45f2e453 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -45,3 +45,9 @@ option('soup2',
+   value: true,
+   description: 'Use Soup 2.4 instead of Soup 3. Must be in sync with libgweather'
+ )
++
++option('gjs_path',
++  type: 'string',
++  value: '',
++  description: 'Instead of searching gjs executable, configure path'
++)
+diff --git a/subprojects/extensions-app/js/meson.build b/subprojects/extensions-app/js/meson.build
+index f311db6e0..8f7bba4e4 100644
+--- a/subprojects/extensions-app/js/meson.build
++++ b/subprojects/extensions-app/js/meson.build
+@@ -9,7 +9,7 @@ endif
+ launcherconf.set('prefix', prefix)
+ launcherconf.set('libdir', libdir)
+ launcherconf.set('pkgdatadir', pkgdatadir)
+-launcherconf.set('gjs', gjs.path())
++launcherconf.set('gjs', gjs)
+ 
+ configure_file(
+   input: prgname + '.in',
+diff --git a/subprojects/extensions-app/meson.build b/subprojects/extensions-app/meson.build
+index f9ccfc24d..bdf118975 100644
+--- a/subprojects/extensions-app/meson.build
++++ b/subprojects/extensions-app/meson.build
+@@ -44,7 +44,12 @@ localedir = join_paths(datadir, 'locale')
+ metainfodir = join_paths(datadir, 'metainfo')
+ servicedir = join_paths(datadir, 'dbus-1', 'services')
+ 
+-gjs = find_program('gjs')
++if get_option('gjs_path') == ''
++  gjs = find_program('gjs')
++else
++  gjs = get_option('gjs_path')
++endif
++
+ appstream_util = find_program('appstream-util', required: false)
+ desktop_file_validate = find_program('desktop-file-validate', required: false)
+ 
+diff --git a/subprojects/extensions-app/meson_options.txt b/subprojects/extensions-app/meson_options.txt
+index ca2eb4115..2787785bf 100644
+--- a/subprojects/extensions-app/meson_options.txt
++++ b/subprojects/extensions-app/meson_options.txt
+@@ -10,3 +10,9 @@ option('profile',
+   ],
+   value: 'default'
+ )
++
++option('gjs_path',
++  type: 'string',
++  value: '',
++  description: 'Instead of searching gjs executable, configure path'
++)
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-build-Drop-incorrect-positional-arg.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-build-Drop-incorrect-positional-arg.patch
new file mode 100644
index 0000000..edc32de
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-build-Drop-incorrect-positional-arg.patch
@@ -0,0 +1,81 @@
+From 6f797c21703ce9e996da17c49879e2a16dfbc256 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
+Date: Thu, 23 Dec 2021 17:18:16 +0100
+Subject: [PATCH] build: Drop incorrect positional arg
+
+Unlike other targets that take a name, i18n.merge_file() does not.
+
+Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2078>
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ data/meson.build                                      | 2 +-
+ src/calendar-server/meson.build                       | 2 +-
+ subprojects/extensions-app/data/meson.build           | 2 +-
+ subprojects/extensions-app/data/metainfo/meson.build  | 2 +-
+ subprojects/extensions-tool/src/templates/meson.build | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index f924fdf..76ae45c 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -16,7 +16,7 @@ desktopconf.set('bindir', bindir)
+ desktopconf.set('systemd_hidden', have_systemd ? 'true' : 'false')
+ 
+ foreach desktop_file : desktop_files
+-  i18n.merge_file('desktop',
++  i18n.merge_file(
+     input: configure_file(
+       input: desktop_file + '.in.in',
+       output: desktop_file + '.in',
+diff --git a/src/calendar-server/meson.build b/src/calendar-server/meson.build
+index 7363282..8b4ef41 100644
+--- a/src/calendar-server/meson.build
++++ b/src/calendar-server/meson.build
+@@ -27,7 +27,7 @@ configure_file(
+   install_dir: servicedir
+ )
+ 
+-i18n.merge_file('evolution-calendar.desktop',
++i18n.merge_file(
+   input: 'evolution-calendar.desktop.in',
+   output: 'evolution-calendar.desktop',
+   po_dir: po_dir,
+diff --git a/subprojects/extensions-app/data/meson.build b/subprojects/extensions-app/data/meson.build
+index d7e7d40..4b601e8 100644
+--- a/subprojects/extensions-app/data/meson.build
++++ b/subprojects/extensions-app/data/meson.build
+@@ -14,7 +14,7 @@ desktopconf.set('bindir', bindir)
+ desktopconf.set('app_id', app_id)
+ desktopconf.set('prgname', prgname)
+ 
+-i18n.merge_file('desktop',
++i18n.merge_file(
+   input: configure_file(
+     input: base_id + '.desktop.in.in',
+     output: desktop_file + '.in',
+diff --git a/subprojects/extensions-app/data/metainfo/meson.build b/subprojects/extensions-app/data/metainfo/meson.build
+index c4962c0..a19bfa8 100644
+--- a/subprojects/extensions-app/data/metainfo/meson.build
++++ b/subprojects/extensions-app/data/metainfo/meson.build
+@@ -1,5 +1,5 @@
+ metainfo = app_id + '.metainfo.xml'
+-i18n.merge_file(metainfo,
++i18n.merge_file(
+   input: base_id + '.metainfo.xml.in',
+   output: metainfo,
+   po_dir: po_dir,
+diff --git a/subprojects/extensions-tool/src/templates/meson.build b/subprojects/extensions-tool/src/templates/meson.build
+index 670e2bf..d693bfa 100644
+--- a/subprojects/extensions-tool/src/templates/meson.build
++++ b/subprojects/extensions-tool/src/templates/meson.build
+@@ -4,7 +4,7 @@ template_metas = [
+ ]
+ template_deps = []
+ foreach template : template_metas
+-  template_deps += i18n.merge_file(template,
++  template_deps += i18n.merge_file(
+     input: template + '.in',
+     output: template,
+     po_dir: po_dir,
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_3.34.5.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_3.34.5.bb
deleted file mode 100644
index b1aa519..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_3.34.5.bb
+++ /dev/null
@@ -1,66 +0,0 @@
-SUMMARY = "GNOME Shell is the graphical shell of the GNOME desktop environment"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gettext gobject-introspection features_check upstream-version-is-even bash-completion
-
-REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
-
-DEPENDS = " \
-    libxml2-native \
-    sassc-native \
-    gtk+3 \
-    mutter \
-    evolution-data-server \
-    gcr \
-    gjs \
-    gnome-autoar \
-    polkit \
-    libcroco \
-    startup-notification \
-    ibus \
-    gsettings-desktop-schemas \
-"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST:append = " introspection"
-
-SRC_URI[archive.md5sum] = "4bd27c8a91d30fde78cb69b94677cf1f"
-SRC_URI[archive.sha256sum] = "d296f318a74a6d7883358a6ce1c4d8808b7903dbbb4f9c61ab4230f18e6d7550"
-
-PACKAGECONFIG ??= "bluetooth nm ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[bluetooth] = ",,gnome-bluetooth"
-PACKAGECONFIG[nm] = "-Dnetworkmanager=true, -Dnetworkmanager=false, networkmanager"
-PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
-
-EXTRA_OEMESON = " \
-    -Dman=false \
-"
-
-do_install:append() {
-    # fix shebangs
-    for tool in `find ${D}${bindir} -name '*-tool'`; do
-        sed -i 's:#!${PYTHON}:#!${bindir}/${PYTHON_PN}:' $tool
-    done
-}
-
-GSETTINGS_PACKAGE = "${PN}-gsettings"
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1 \
-    ${datadir}/gnome-control-center \
-    ${datadir}/xdg-desktop-portal \
-    ${systemd_user_unitdir} \
-"
-
-RDEPENDS:${PN} += "gsettings-desktop-schemas gdm-base librsvg-gtk ${PN}-gsettings"
-
-PACKAGES =+ "${PN}-tools ${PN}-gsettings"
-FILES:${PN}-tools = "${bindir}/*-tool"
-RDEPENDS:${PN}-tools = "python3-core"
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_41.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_41.2.bb
new file mode 100644
index 0000000..d1b1989
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_41.2.bb
@@ -0,0 +1,71 @@
+SUMMARY = "GNOME Shell is the graphical shell of the GNOME desktop environment"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gettext gobject-introspection features_check bash-completion
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
+
+DEPENDS = " \
+    libxml2-native \
+    sassc-native \
+    gtk4 \
+    mutter \
+    evolution-data-server \
+    gcr \
+    gjs \
+    gnome-autoar \
+    polkit \
+    libcroco \
+    startup-notification \
+    ibus \
+    gsettings-desktop-schemas \
+"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+GIR_MESON_OPTION = ""
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
+
+SRC_URI[archive.sha256sum] = "384651eb051393dbabe006d1ad057bf29d5cd73ebb87bc779ff5e1c31e80a827"
+SRC_URI += "file://0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch"
+SRC_URI += "  file://0001-build-Drop-incorrect-positional-arg.patch"
+
+PACKAGECONFIG ??= "bluetooth nm ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[bluetooth] = ",,gnome-bluetooth"
+PACKAGECONFIG[nm] = "-Dnetworkmanager=true, -Dnetworkmanager=false, networkmanager"
+PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
+
+EXTRA_OEMESON = " \
+    -Dgjs_path=${bindir}/gjs \
+    -Dextensions-app:gjs_path=${bindir}/gjs \
+    -Dtests=false \
+    -Dman=false \
+"
+
+do_install:append() {
+    # fix shebangs
+    for tool in `find ${D}${bindir} -name '*-tool'`; do
+        sed -i 's:#!${PYTHON}:#!${bindir}/${PYTHON_PN}:' $tool
+    done
+}
+
+GSETTINGS_PACKAGE = "${PN}-gsettings"
+
+FILES:${PN} += " \
+    ${datadir}/metainfo \
+    ${datadir}/dbus-1 \
+    ${datadir}/gnome-control-center \
+    ${datadir}/xdg-desktop-portal \
+    ${systemd_user_unitdir} \
+"
+
+RDEPENDS:${PN} += "gnome-desktop gsettings-desktop-schemas gdm-base librsvg-gtk ${PN}-gsettings"
+
+PACKAGES =+ "${PN}-tools ${PN}-gsettings"
+FILES:${PN}-tools = "${bindir}/*-tool"
+RDEPENDS:${PN}-tools = "python3-core"
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_40.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_40.1.bb
deleted file mode 100644
index 01f0619..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_40.1.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Gnome system monitor"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = " \
-    gnome-common-native \
-    libxml2-native \
-    glib-2.0-native \
-    gtkmm3 \
-    libgtop \
-    librsvg \
-    polkit \
-    libhandy \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gnome-help itstool gtk-icon-cache features_check gettext
-
-REQUIRED_DISTRO_FEATURES = "x11 polkit"
-
-def gnome_verdir(v):
-    return oe.utils.trim_version(v, 1)
-
-SRC_URI[archive.sha256sum] = "fdb30f4367907aab86d7c2bb76a7b773ba850b765c9666a39f42abfe22691d1a"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
-
-RRECOMMENDS:${PN} = "adwaita-icon-theme"
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1 \
-    ${datadir}/metainfo \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_41.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_41.0.bb
new file mode 100644
index 0000000..9b573d0
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_41.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Gnome system monitor"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = " \
+    gnome-common-native \
+    libxml2-native \
+    glib-2.0-native \
+    gtkmm3 \
+    libgtop \
+    librsvg \
+    polkit \
+    libhandy \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gnome-help itstool gtk-icon-cache features_check gettext
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit"
+
+def gnome_verdir(v):
+    return oe.utils.trim_version(v, 1)
+
+SRC_URI[archive.sha256sum] = "c7fc44c61949b794b0289968ebbbcc0c15f8cfc3d9e45bfaa81ed45c12139e5f"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
+
+RRECOMMENDS:${PN} = "adwaita-icon-theme"
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1 \
+    ${datadir}/metainfo \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
index a69390e..ef722a0 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
@@ -1,6 +1,6 @@
 From f231cecc151930fd5b6309da317a8c5bc6001f38 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Sun, 17 Nov 2019 15:55:54 +0100
+Date: Sat, 30 Oct 2021 15:10:28 +0200
 Subject: [PATCH] Add W_EXITCODE macro for non-glibc systems
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -10,14 +10,14 @@
 
 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
 ---
- src/terminal.c | 6 ++++++
- 1 file changed, 6 insertions(+)
+ src/terminal.cc | 5 +++++
+ 1 file changed, 5 insertions(+)
 
-diff --git a/src/terminal.c b/src/terminal.c
-index d06ce35..6284e4c 100644
---- a/src/terminal.c
-+++ b/src/terminal.c
-@@ -47,6 +47,12 @@
+diff --git a/src/terminal.cc b/src/terminal.cc
+index 27ee91e..5f4d880 100644
+--- a/src/terminal.cc
++++ b/src/terminal.cc
+@@ -47,6 +47,11 @@
  GS_DEFINE_CLEANUP_FUNCTION0(TerminalOptions*, gs_local_options_free, terminal_options_free)
  #define gs_free_options __attribute__ ((cleanup(gs_local_options_free)))
  
@@ -26,10 +26,9 @@
 +#define W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
 +#endif
 +
-+
  /* Wait-for-exit helper */
  
  typedef struct {
 -- 
-2.21.0
+2.31.1
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-build-Fix-for-newer-meson.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-build-Fix-for-newer-meson.patch
new file mode 100644
index 0000000..12520b1
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-build-Fix-for-newer-meson.patch
@@ -0,0 +1,46 @@
+From f88447850e162c8d514be367db574c6fa2fec2a5 Mon Sep 17 00:00:00 2001
+From: Christian Persch <chpe@src.gnome.org>
+Date: Fri, 14 Jan 2022 11:33:32 +0100
+Subject: [PATCH] build: Fix for newer meson
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ data/meson.build | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index 79d97e5..e0bcbb9 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -18,7 +18,6 @@
+ metainfodir = gt_datadir / 'metainfo'
+ 
+ i18n.merge_file(
+-  gt_dns_name + '.metainfo.xml',
+   input: gt_dns_name + '.metainfo.xml.in',
+   output: '@BASENAME@',
+   po_dir: po_dir,
+@@ -27,7 +26,6 @@ i18n.merge_file(
+ )
+ 
+ i18n.merge_file(
+-  gt_dns_name + '.Nautilus.metainfo.xml',
+   input: gt_dns_name + '.Nautilus.metainfo.xml.in',
+   output: '@BASENAME@',
+   po_dir: po_dir,
+@@ -40,7 +38,6 @@ i18n.merge_file(
+ desktopdatadir = gt_datadir / 'applications'
+ 
+ i18n.merge_file(
+-  gt_dns_name + '.desktop',
+   input: gt_dns_name + '.desktop.in',
+   output: '@BASENAME@',
+   type: 'desktop',
+@@ -57,4 +54,4 @@ meson.add_install_script(
+ 
+ # Subdirs
+ 
+-subdir('icons')
+\ No newline at end of file
++subdir('icons')
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.40.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.40.2.bb
deleted file mode 100644
index 88fb5d7..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.40.2.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "GNOME terminal"
-LICENSE = "GPLv3 & GFDL-1.3"
-LIC_FILES_CHKSUM = " \
-    file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
-    file://COPYING.GFDL;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
-"
-
-inherit gnomebase gsettings gnome-help gettext itstool upstream-version-is-even
-
-DEPENDS = " \
-    glib-2.0-native \
-    intltool-native \
-    yelp-tools-native \
-    docbook-xsl-stylesheets-native libxslt-native \
-    desktop-file-utils-native \
-    gtk+3 \
-    gsettings-desktop-schemas \
-    vte \
-    dconf \
-    libpcre2 \
-"
-
-SRC_URI[archive.sha256sum] = "4c79af8ffe8bd3a5daca1911ea2c0acd6872860a1dd5d7eea219f4ab4ae556ac"
-SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch"
-
-EXTRA_OECONF += " \
-    --disable-search-provider \
-    --without-nautilus-extension \
-"
-
-FILES:${PN} += " \
-    ${datadir}/metainfo \
-    ${datadir}/dbus-1 \
-    ${systemd_user_unitdir} \
-"
-
-RRECOMMENDS:${PN} += "vte-prompt gsettings-desktop-schemas"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.42.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.42.2.bb
new file mode 100644
index 0000000..2b3f3a6
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.42.2.bb
@@ -0,0 +1,40 @@
+SUMMARY = "GNOME terminal"
+LICENSE = "GPLv3 & GFDL-1.3"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
+    file://COPYING.GFDL;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gnome-help gettext itstool upstream-version-is-even
+
+DEPENDS = " \
+    glib-2.0-native \
+    intltool-native \
+    yelp-tools-native \
+    docbook-xsl-stylesheets-native libxslt-native \
+    desktop-file-utils-native \
+    gtk+3 \
+    gsettings-desktop-schemas \
+    vte \
+    dconf \
+    libpcre2 \
+"
+
+SRC_URI[archive.sha256sum] = "8a9c8e5ef7a3a73b246a947e1190bb08ec98935af860cf0b3aa2fbf4606817a0"
+SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch"
+SRC_URI += "  file://0001-build-Fix-for-newer-meson.patch"
+
+EXTRA_OEMESON += " \
+    -Dsearch_provider=false \
+    -Dnautilus_extension=false \
+"
+
+FILES:${PN} += " \
+    ${datadir}/metainfo \
+    ${datadir}/dbus-1 \
+    ${systemd_user_unitdir} \
+"
+
+RRECOMMENDS:${PN} += "vte-prompt gsettings-desktop-schemas"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0001-Make-python-path-configurable.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0001-Make-python-path-configurable.patch
index 8129f85..733249c 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0001-Make-python-path-configurable.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0001-Make-python-path-configurable.patch
@@ -16,14 +16,14 @@
  create mode 100644 meson_options.txt
 
 diff --git a/meson.build b/meson.build
-index b7da518..d58fb5b 100644
+index 5b824e9..a673d9c 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -13,7 +13,7 @@ bindir = join_paths(prefix, get_option('bindir'))
+@@ -18,7 +18,7 @@ bindir = join_paths(prefix, get_option('bindir'))
  datadir = join_paths(prefix, get_option('datadir'))
  libexecdir = join_paths(prefix, get_option('libexecdir'))
  localedir = join_paths(prefix, get_option('localedir'))
--pythondir = join_paths(prefix, python3.sysconfig_path('purelib'))
+-pythondir = join_paths(prefix, python3.get_path('purelib'))
 +pythondir = get_option('python_site_dir')
  
  pkgdatadir = join_paths(datadir, meson.project_name())
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_3.34.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_3.34.0.bb
deleted file mode 100644
index 0fa0b31..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_3.34.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "GNOME tweaks: Advanced options for GNOME 3 session"
-LICENSE = "GPLv3 & CC0-1.0"
-LIC_FILES_CHKSUM = " \
-    file://LICENSES/CC0-1.0;md5=65d3616852dbf7b1a6d4b53b00626032 \
-    file://LICENSES/GPL-3.0;md5=9eef91148a9b14ec7f9df333daebc746 \
-"
-
-DEPENDS = "libhandy"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gtk-icon-cache gobject-introspection features_check upstream-version-is-even
-
-# same as gnome-shell
-REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST:append = " introspection"
-
-SRC_URI[archive.md5sum] = "a625d8b167c5549c68e1c6ac7a87d369"
-SRC_URI[archive.sha256sum] = "003326fab46e6faad9485924bca503f0c583e3b4553d6f673406eda396205250"
-SRC_URI += "file://0001-Make-python-path-configurable.patch"
-
-EXTRA_OEMESON = "-Dpython_site_dir=${PYTHON_SITEPACKAGES_DIR}"
-
-FILES:${PN} += " \
-    ${datadir}/metainfo \
-    ${PYTHON_SITEPACKAGES_DIR} \
-"
-
-RDEPENDS:${PN} += "gnome-shell python3-core python3-logging libhandy"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_40.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_40.0.bb
new file mode 100644
index 0000000..30275c9
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_40.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "GNOME tweaks: Advanced options for GNOME 3 session"
+LICENSE = "GPLv3 & CC0-1.0"
+LIC_FILES_CHKSUM = " \
+    file://LICENSES/CC0-1.0;md5=65d3616852dbf7b1a6d4b53b00626032 \
+    file://LICENSES/GPL-3.0;md5=9eef91148a9b14ec7f9df333daebc746 \
+"
+
+DEPENDS = "libhandy"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gtk-icon-cache gobject-introspection features_check
+
+# same as gnome-shell
+REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+SRC_URI[archive.sha256sum] = "f95f3fe031b0b01c02f79a1659f889152d3772ae3e44df8403d1460ba5eec36a"
+SRC_URI += "file://0001-Make-python-path-configurable.patch"
+
+EXTRA_OEMESON = "-Dpython_site_dir=${PYTHON_SITEPACKAGES_DIR}"
+
+FILES:${PN} += " \
+    ${datadir}/metainfo \
+    ${PYTHON_SITEPACKAGES_DIR} \
+"
+
+RDEPENDS:${PN} += "gnome-shell python3-core python3-logging libhandy"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/graphene/graphene_1.10.6.bb b/meta-openembedded/meta-gnome/recipes-gnome/graphene/graphene_1.10.6.bb
deleted file mode 100644
index 77579ff..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/graphene/graphene_1.10.6.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A thin layer of graphic data types"
-HOMEPAGE = "http://ebassi.github.io/graphene/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a7d871d9e23c450c421a85bb2819f648"
-
-#DEPENDS = "gtk+3 iso-codes enchant2"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gobject-introspection gtk-doc
-
-SRC_URI[archive.md5sum] = "390139e704772b915ff2b7cac56c24ae"
-SRC_URI[archive.sha256sum] = "80ae57723e4608e6875626a88aaa6f56dd25df75024bd16e9d77e718c3560b25"
-
-PACKAGECONFIG[introspection] = "-Dintrospection=enabled,-Dintrospection=disabled,"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-EXTRA_OEMESON = "-Dinstalled_tests=false"
-
-FILES:${PN} += "${libdir}/graphene-1.0"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.13.bb b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.13.bb
deleted file mode 100644
index 2732374..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.13.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Grilo is a framework forsearching media content from various sources"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-DEPENDS = " \
-    glib-2.0-native \
-    gperf-native \
-    itstool-native \
-    grilo \
-    tracker \
-    lua \
-    liboauth \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gnome-help vala
-
-SRC_URI += "file://0001-Avoid-running-trackertestutils.patch"
-SRC_URI[archive.sha256sum] = "1c4305d67364a930543836cc1982f30e946973b8ff6af3efe31d87709ab520f8"
-
-FILES:${PN} += "${libdir}/grilo-0.3"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.14.bb b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.14.bb
new file mode 100644
index 0000000..028e1d2
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.14.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Grilo is a framework forsearching media content from various sources"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+DEPENDS = " \
+    glib-2.0-native \
+    gperf-native \
+    itstool-native \
+    grilo \
+    tracker \
+    lua \
+    liboauth \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gnome-help vala
+
+SRC_URI += "file://0001-Avoid-running-trackertestutils.patch"
+SRC_URI[archive.sha256sum] = "686844b34ec73b24931ff6cc4f6033f0072947a6db60acdc7fb3eaf157a581c8"
+
+FILES:${PN} += "${libdir}/grilo-0.3"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo_0.3.13.bb b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo_0.3.13.bb
deleted file mode 100644
index fe6858f..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo_0.3.13.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Grilo is a framework forsearching media content from various sources"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-DEPENDS = " \
-    libxml2 \
-    glib-2.0 \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gobject-introspection gtk-doc gettext vala
-
-SRC_URI[archive.sha256sum] = "d14837f22341943ed8a189d9f0827a17016b802d18d0ed080e1413de0fdc927b"
-
-GIR_MESON_OPTION = "enable-introspection"
-GTKDOC_MESON_OPTION = "enable-gtk-doc"
-
-# Note: removing 'net' from PACKAGECONFIG causes
-# | bindings/vala/meson.build:15:0: ERROR: Unknown variable "grlnet_gir".
-PACKAGECONFIG ??= "net"
-
-PACKAGECONFIG[net] = "-Denable-grl-net=true, -Denable-grl-net=false, libsoup-2.4"
-PACKAGECONFIG[test-ui] = "-Denable-test-ui=true, -Denable-test-ui=false, gtk+3 liboauth"
-
-# Once we have a recipe for 'totem-plparser' this can turn into a PACKAGECONFIG
-EXTRA_OEMESON = "-Denable-grl-pls=false"
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo_0.3.14.bb b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo_0.3.14.bb
new file mode 100644
index 0000000..53d80c5
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo_0.3.14.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Grilo is a framework forsearching media content from various sources"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+DEPENDS = " \
+    libxml2 \
+    glib-2.0 \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gobject-introspection gtk-doc gettext vala
+
+SRC_URI[archive.sha256sum] = "0369d0b00bb0f59ba5f7aea8cfc665f38df14a5b4182d28c7c1e2cd15b518743"
+
+GIR_MESON_OPTION = "enable-introspection"
+GTKDOC_MESON_OPTION = "enable-gtk-doc"
+
+# Note: removing 'net' from PACKAGECONFIG causes
+# | bindings/vala/meson.build:15:0: ERROR: Unknown variable "grlnet_gir".
+PACKAGECONFIG ??= "net"
+
+PACKAGECONFIG[net] = "-Denable-grl-net=true, -Denable-grl-net=false, libsoup-2.4"
+PACKAGECONFIG[test-ui] = "-Denable-test-ui=true, -Denable-test-ui=false, gtk+3 liboauth"
+
+# Once we have a recipe for 'totem-plparser' this can turn into a PACKAGECONFIG
+EXTRA_OEMESON = "-Denable-grl-pls=false"
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gsound/gsound/0001-Set-vapidir.patch b/meta-openembedded/meta-gnome/recipes-gnome/gsound/gsound/0001-Set-vapidir.patch
deleted file mode 100644
index ffccfd5..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gsound/gsound/0001-Set-vapidir.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 0a790273aca3ba07dfa6d2f61e3aaa7157c1a3bb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 20 Mar 2021 09:22:18 -0700
-Subject: [PATCH] Set vapidir
-
-Use parentheses instead of braces, it makes automake and perl happy
-newer perl does not like ${} for VALAFLAGS
-
-Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.30), passed through in regex; marked by <-- HERE in m/^${ <-- HERE abs_top_builddir}/gsound$/ at TOPDIR/build/tmp/work/mips32r2-yoe-linux/gsound/1.0.2-r0/recipe-sysroot-native/usr/bin/automake line 5759.
-autoreconf: error: automake failed with exit status: 255
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tools/Makefile.am | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -8,7 +8,7 @@ bin_PROGRAMS = gsound-play
- gsound_play_SOURCES = gsound-play.vala
- 
- gsound_play_VALAFLAGS = \
--    --vapidir ${abs_top_builddir}/gsound \
-+    --vapidir $(abs_top_builddir)/gsound \
-     --pkg gsound \
-     ${NULL}
- 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gsound/gsound_1.0.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gsound/gsound_1.0.2.bb
deleted file mode 100644
index 65ee1e1..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gsound/gsound_1.0.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Small gobject library for playing system sounds"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=447b837ae57f08b7060593ac6256163f"
-
-DEPENDS = " \
-    glib-2.0 \
-    libcanberra \
-"
-
-inherit gnomebase gettext gobject-introspection vala
-
-SRC_URI += "file://0001-Set-vapidir.patch"
-
-SRC_URI[archive.md5sum] = "c26fd21c21b9ef6533a202a73fab21db"
-SRC_URI[archive.sha256sum] = "bba8ff30eea815037e53bee727bbd5f0b6a2e74d452a7711b819a7c444e78e53"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gsound/gsound_1.0.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/gsound/gsound_1.0.3.bb
new file mode 100644
index 0000000..7c79254
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gsound/gsound_1.0.3.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Small gobject library for playing system sounds"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=447b837ae57f08b7060593ac6256163f"
+
+DEPENDS = " \
+    glib-2.0 \
+    libcanberra \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gettext gobject-introspection vala
+
+SRC_URI[archive.sha256sum] = "ca2d039e1ebd148647017a7f548862350bc9af01986d39f10cfdc8e95f07881a"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.9.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.9.1.bb
index d6de146..aba9be8 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.9.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.9.1.bb
@@ -5,6 +5,6 @@
 
 DEPENDS = "gtk+3 iso-codes enchant2"
 
-inherit gnomebase gettext gobject-introspection
+inherit gnomebase gettext gobject-introspection vala
 
 SRC_URI[archive.sha256sum] = "dcbb769dfdde8e3c0a8ed3102ce7e661abbf7ddf85df08b29915e92cd723abdd"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gthumb/gthumb/0001-LINGUAS-removed-duplicated-entry.patch b/meta-openembedded/meta-gnome/recipes-gnome/gthumb/gthumb/0001-LINGUAS-removed-duplicated-entry.patch
new file mode 100644
index 0000000..b50b175
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gthumb/gthumb/0001-LINGUAS-removed-duplicated-entry.patch
@@ -0,0 +1,23 @@
+From f3d399892e59a2e850be1d0de30c429417c78360 Mon Sep 17 00:00:00 2001
+From: Paolo Bacchilega <paobac@src.gnome.org>
+Date: Tue, 11 Jan 2022 12:30:44 +0100
+Subject: [PATCH] LINGUAS: removed duplicated entry
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ help/LINGUAS | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/help/LINGUAS b/help/LINGUAS
+index 0e8a52d..fa1fc3e 100644
+--- a/help/LINGUAS
++++ b/help/LINGUAS
+@@ -8,7 +8,6 @@ eu
+ fr
+ hu
+ id
+-id
+ nl
+ oc
+ sl
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gthumb/gthumb_3.10.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/gthumb/gthumb_3.10.3.bb
deleted file mode 100644
index bae13e1..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gthumb/gthumb_3.10.3.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Image viewer and browser"
-LICENSE="GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-REQUIRED_DISTRO_FEATURES = "polkit gobject-introspection-data"
-
-DEPENDS = " \
-    glib-2.0-native \
-    bison-native \
-    yelp-tools-native \
-    gtk+3 \
-    gsettings-desktop-schemas \
-    zlib \
-    jpeg \
-    exiv2 \
-    colord \
-    lcms \
-    libraw \
-    librsvg \
-    libsoup-2.4 \
-    json-glib \
-    libsecret \
-"
-
-inherit features_check gnomebase gnome-help gsettings itstool mime-xdg
-
-SRC_URI[archive.sha256sum] = "dab73f77cc2963ebe90112972c301441d228af3003cfef3f8b7300a6d5d3c212"
-
-FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.0.bb
new file mode 100644
index 0000000..e9c52f3
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Image viewer and browser"
+LICENSE="GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+REQUIRED_DISTRO_FEATURES = "polkit gobject-introspection-data"
+
+DEPENDS = " \
+    glib-2.0-native \
+    bison-native \
+    yelp-tools-native \
+    gtk+3 \
+    gsettings-desktop-schemas \
+    zlib \
+    jpeg \
+    exiv2 \
+    colord \
+    lcms \
+    libraw \
+    librsvg \
+    libsoup-2.4 \
+    json-glib \
+    libsecret \
+"
+
+inherit features_check gnomebase gnome-help gsettings itstool mime-xdg
+
+SRC_URI += " file://0001-LINGUAS-removed-duplicated-entry.patch"
+SRC_URI[archive.sha256sum] = "3deffc030384e64b57361c437c79b481ae1489ef44c87ae856e81bb10d8e383f"
+
+FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gtk4/gtk4_4.4.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gtk4/gtk4_4.4.0.bb
new file mode 100644
index 0000000..07ee853
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gtk4/gtk4_4.4.0.bb
@@ -0,0 +1,141 @@
+SUMMARY = "Multi-platform toolkit for creating GUIs"
+DESCRIPTION = "GTK is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \
+set of widgets, GTK is suitable for projects ranging from small one-off projects to complete application suites."
+HOMEPAGE = "http://www.gtk.org"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+SECTION = "libs"
+
+DEPENDS = " \
+    sassc-native \
+    glib-2.0 \
+    libepoxy \
+    graphene \
+    cairo \
+    pango \
+    atk \
+    jpeg \
+    libpng \
+    gdk-pixbuf-native gdk-pixbuf \
+"
+
+LICENSE = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
+    file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \
+    file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \
+    file://tests/testgtk.c;endline=25;md5=49d06770681b8322466b52ed19d29fb2 \
+"
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+UPSTREAM_CHECK_REGEX = "gtk-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)\.tar.xz"
+
+SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk/${MAJ_VER}/gtk-${PV}.tar.xz"
+SRC_URI[sha256sum] = "e0a1508f441686c3a20dfec48af533b19a4b2e017c18eaee31dccdb7d292505b"
+
+S = "${WORKDIR}/gtk-${PV}"
+
+inherit meson gettext pkgconfig gtk-doc update-alternatives gsettings features_check gobject-introspection
+
+# TBD: nativesdk
+# gobject-introspection.bbclass pins introspection off for nativesk. As long as
+# we do not remove this wisdom or hack gtk4, it is not possible to build
+# nativesdk-gtk4
+BBCLASSEXTEND = "native"
+
+GSETTINGS_PACKAGE:class-native = ""
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_OPTION = 'gtk_doc'
+
+# ../gtk-4.4.0/testsuite/reftests/gtk-reftest.c:28:10: fatal error: execinfo.h: No such file or directory
+EXTRA_OEMESON:append:libc-musl = " -Dbuild-tests=false"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
+PACKAGECONFIG:class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+
+PACKAGECONFIG[x11] = "-Dx11-backend=true,-Dx11-backend=false,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes xinerama"
+PACKAGECONFIG[wayland] = "-Dwayland-backend=true,-Dwayland-backend=false,wayland wayland-protocols libxkbcommon virtual/egl virtual/libgles2 wayland-native"
+PACKAGECONFIG[cups] = "-Dprint-cups=enabled,-Dprint-cups=disabled,cups"
+PACKAGECONFIG[colord] = "-Dcolord=enabled,-Dcolord=disabled,colord"
+# gtk4 wants gstreamer-player-1.0 -> gstreamer1.0-plugins-bad
+PACKAGECONFIG[gstreamer] = "-Dmedia-gstreamer=enabled,-Dmedia-gstreamer=disabled,gstreamer1.0-plugins-bad"
+PACKAGECONFIG[tracker] = "-Dtracker=enabled,-Dtracker=disabled,tracker"
+
+
+do_compile:prepend() {
+    export GIR_EXTRA_LIBS_PATH="${B}/gdk/.libs"
+}
+
+
+PACKAGES =+ "${PN}-demo"
+LIBV = "4.0.0"
+
+FILES:${PN}-demo = " \
+    ${datadir}/applications/org.gtk.Demo4.desktop \
+    ${datadir}/applications/org.gtk.IconBrowser4.desktop \
+    ${datadir}/applications/org.gtk.WidgetFactory4.desktop \
+    ${datadir}/icons/hicolor/*/apps/org.gtk.Demo4*.* \
+    ${datadir}/icons/hicolor/*/apps/org.gtk.IconBrowser4*.* \
+    ${datadir}/icons/hicolor/*/apps/org.gtk.WidgetFactory4*.* \
+    ${bindir}/gtk4-demo \
+    ${bindir}/gtk4-demo-application \
+    ${bindir}/gtk4-icon-browser \
+    ${bindir}/gtk4-widget-factory \
+"
+
+FILES:${PN}:append = " \
+    ${datadir}/glib-2.0/schemas/ \
+    ${datadir}/gtk-4.0/emoji/ \
+    ${datadir}/metainfo/ \
+    ${datadir}/icons/hicolor/*/apps/org.gtk.PrintEditor4*.* \
+    ${libdir}/gtk-4.0/${LIBV}/printbackends \
+    ${bindir}/gtk4-update-icon-cache \
+    ${bindir}/gtk4-launch \
+"
+
+FILES:${PN}-dev += " \
+    ${datadir}/gtk-4.0/gtk4builder.rng \
+    ${datadir}/gtk-4.0/include \
+    ${datadir}/gtk-4.0/valgrind \
+    ${datadir}/gettext/its \
+    ${bindir}/gtk4-builder-tool \
+    ${bindir}/gtk4-encode-symbolic-svg \
+    ${bindir}/gtk4-query-settings \
+"
+
+GTKBASE_RRECOMMENDS ?= " \
+    liberation-fonts \
+    gdk-pixbuf-loader-png \
+    gdk-pixbuf-loader-jpeg \
+    gdk-pixbuf-loader-gif \
+    gdk-pixbuf-loader-xpm \
+    shared-mime-info \
+    adwaita-icon-theme-symbolic \
+"
+
+GTKBASE_RRECOMMENDS:class-native ?= ""
+
+GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1"
+
+RRECOMMENDS:${PN} = "${GTKBASE_RRECOMMENDS}"
+RRECOMMENDS:${PN}:libc-glibc = "${GTKGLIBC_RRECOMMENDS}"
+RDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}"
+
+PACKAGES_DYNAMIC += "^gtk4-printbackend-.*"
+python populate_packages:prepend () {
+    import os.path
+
+    gtk_libdir = d.expand('${libdir}/gtk-3.0/${LIBV}')
+    printmodules_root = os.path.join(gtk_libdir, 'printbackends');
+
+    do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk4-printbackend-%s', 'GTK printbackend module for %s')
+
+    if (d.getVar('DEBIAN_NAMES')):
+        d.setVar(d.expand('PKG:${PN}'), '${MLPREFIX}libgtk-4.0')
+}
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.1.bb
deleted file mode 100644
index 10b60be..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.1.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "Portable C library for multiline text editing"
-HOMEPAGE = "http://projects.gnome.org/gtksourceview/"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-DEPENDS = "gtk+3 libxml2 intltool-native gnome-common-native glib-2.0-native"
-
-PNAME = "gtksourceview"
-
-S = "${WORKDIR}/${PNAME}-${PV}"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase lib_package gettext features_check gtk-doc gobject-introspection vala
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "https://download.gnome.org/sources/gtksourceview/4.8/${PNAME}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "d163d71b5fcafbc5b1eec6dd841edbdbcddd3a7511cd5fdcffd86b8bbfe69ac1"
-
-GIR_MESON_OPTION = 'gir'
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-# Override the definition in meson.bbclass.  The dependencies in mason.build are incomplete
-# and the recipe will not build with "-j 1".  This fix is benign but should be reviewed when
-# updating versions.
-#
-meson_do_compile() {
-    bbnote "========== generating gtksourceview-gresources.h ========"
-    bbnote "PARALLEL_MAKE is ${PARALLEL_MAKE}"
-    ninja ${PARALLEL_MAKE} gtksourceview/gtksourceview-gresources.h
-    bbnote "========== compiling target all ========"
-    ninja ${PARALLEL_MAKE}
-}
-
-FILES:${PN} += "${datadir}/gtksourceview-4"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.2.bb
new file mode 100644
index 0000000..5b5ce53
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.2.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Portable C library for multiline text editing"
+HOMEPAGE = "http://projects.gnome.org/gtksourceview/"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+DEPENDS = "gtk+3 libxml2 intltool-native gnome-common-native glib-2.0-native"
+
+PNAME = "gtksourceview"
+
+S = "${WORKDIR}/${PNAME}-${PV}"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase lib_package gettext features_check gtk-doc gobject-introspection vala
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "https://download.gnome.org/sources/gtksourceview/4.8/${PNAME}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "842de7e5cb52000fd810e4be39cd9fe29ffa87477f15da85c18f7b82d45637cc"
+
+GIR_MESON_OPTION = 'gir'
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+# Override the definition in meson.bbclass.  The dependencies in mason.build are incomplete
+# and the recipe will not build with "-j 1".  This fix is benign but should be reviewed when
+# updating versions.
+#
+meson_do_compile() {
+    bbnote "========== generating gtksourceview-gresources.h ========"
+    bbnote "PARALLEL_MAKE is ${PARALLEL_MAKE}"
+    ninja ${PARALLEL_MAKE} gtksourceview/gtksourceview-gresources.h
+    bbnote "========== compiling target all ========"
+    ninja ${PARALLEL_MAKE}
+}
+
+FILES:${PN} += "${datadir}/gtksourceview-4"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.2.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.2.0.bb
new file mode 100644
index 0000000..c7c6e92
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.2.0.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Portable C library for multiline text editing"
+HOMEPAGE = "http://projects.gnome.org/gtksourceview/"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+DEPENDS = " \
+    glib-2.0-native \
+    gnome-common-native \
+    intltool-native \
+    gtk+3 \
+    gtk4 \
+    libxml2 \
+    libpcre2 \
+"
+
+PNAME = "gtksourceview"
+
+S = "${WORKDIR}/${PNAME}-${PV}"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase lib_package gettext features_check gtk-doc gtk-icon-cache gobject-introspection vala
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "https://download.gnome.org/sources/gtksourceview/5.2/${PNAME}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "c9b34fa02654f56ce22fa08827d89db4ba81631b2e6d7d31ea65d13c729430e9"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+FILES:${PN} += "${datadir}/gtksourceview-5"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb b/meta-openembedded/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb
index 9b99bbc..51ca63e 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb
@@ -8,7 +8,7 @@
 REQUIRED_DISTRO_FEATURES = "opengl"
 
 SRCREV = "145e417f32e507b63c21ad4e915b808a6174099e"
-SRC_URI = "git://github.com/gnome/libchamplain.git"
+SRC_URI = "git://github.com/gnome/libchamplain.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.18.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.18.1.bb
index aaefcec..a1be2a2 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.18.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.18.1.bb
@@ -22,7 +22,7 @@
 }
 
 # goa is required for gnome-photos
-PACKAGECONFIG ??= "goa gtk"
+PACKAGECONFIG ??= "goa gtk vala"
 PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false"
 PACKAGECONFIG[goa] = "-Dgoa=enabled,-Dgoa=disabled,gnome-online-accounts"
 PACKAGECONFIG[gtk] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.47.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.47.bb
deleted file mode 100644
index 8748a02..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.47.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "GNOME Structured File Library"
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dc7371b50816c96e145fa0f8ade8e24d \
-                    file://COPYING.LIB;md5=61464cfe342798eeced82efe9ae55f63"
-
-SECTION = "libs"
-
-DEPENDS= "libxml2 bzip2 glib-2.0 zlib gnome-common-native"
-
-inherit gnomebase gobject-introspection gettext gtk-doc
-
-SRC_URI[archive.md5sum] = "20bf9933128210d7a9f920a34198d22f"
-SRC_URI[archive.sha256sum] = "d188ebd3787b5375a8fd38ee6f761a2007de5e98fa0cf5623f271daa67ba774d"
-SRC_URI += "file://0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gdk-pixbuf] = "--with-gdk-pixbuf,--without-gdk-pixbuf,gdk-pixbuf"
-
-EXTRA_OECONF = "\
-    --with-bz2 \
-"
-
-FILES:${PN} += "${datadir}/thumbnailers"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.48.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.48.bb
new file mode 100644
index 0000000..a3ff13f
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.48.bb
@@ -0,0 +1,22 @@
+SUMMARY = "GNOME Structured File Library"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dc7371b50816c96e145fa0f8ade8e24d \
+                    file://COPYING.LIB;md5=61464cfe342798eeced82efe9ae55f63"
+
+SECTION = "libs"
+
+DEPENDS= "libxml2 bzip2 glib-2.0 zlib gnome-common-native"
+
+inherit gnomebase gobject-introspection gettext gtk-doc
+
+SRC_URI[archive.sha256sum] = "ff86d7f1d46dd0ebefb7bd830a74a41db64362b987bf8853fff6ab4c1132b837"
+SRC_URI += "file://0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gdk-pixbuf] = "--with-gdk-pixbuf,--without-gdk-pixbuf,gdk-pixbuf"
+
+EXTRA_OECONF = "\
+    --with-bz2 \
+"
+
+FILES:${PN} += "${datadir}/thumbnailers"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/files/gtkstylus.sh b/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/files/gtkstylus.sh
deleted file mode 100644
index b1302ed..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/files/gtkstylus.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-GTK_MODULES=libgtkstylus.so
-
-export GTK_MODULES
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb
deleted file mode 100644
index 2a6e185..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "GTK plugin for stylus based systems"
-SECTION = "libs"
-DEPENDS = "gtk+"
-LICENSE = "LGPL-2.0+"
-LIC_FILES_CHKSUM = "file://tap.c;beginline=1;endline=20;md5=71756eeb144e9eeb177c69aa672b1635"
-PR = "r4"
-
-inherit features_check autotools pkgconfig
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://burtonini.com/temp/${BP}.tar.gz \
-    file://gtkstylus.sh"
-SRC_URI[md5sum] = "fa1c82cd9fd2fafd7ff10d78eb5781c5"
-SRC_URI[sha256sum] = "383e0a22a537f653b8d41688277560f95678a042967198085ec7caa1a5cc2f4c"
-
-do_install:append() {
-    install -d ${D}/${sysconfdir}/X11/Xsession.d
-    install -m 755 ${WORKDIR}/gtkstylus.sh ${D}/${sysconfdir}/X11/Xsession.d/45gtkstylus
-}
-
-# Horrible but rpm falls over if you use '*'
-GTKVER = "2.10.0"
-
-FILES:${PN} = "${sysconfdir} \
-               ${libdir}/gtk-2.0/${GTKVER}/modules/libgtkstylus.so.*"
-FILES:${PN}-dbg += "${libdir}/gtk-2.0/${GTKVER}/modules/.debug"
-FILES:${PN}-dev += "${libdir}/gtk-2.0/${GTKVER}/modules/libgtkstylus.so"
-FILES:${PN}-staticdev += "${libdir}/gtk-2.0/${GTKVER}/modules/libgtkstylus.*a"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_40.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_40.0.bb
index 1d9daac..49493b1 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_40.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_40.0.bb
@@ -11,7 +11,7 @@
 
 # gobject-introspection is mandatory and cannot be configured
 REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST:append = " introspection"
+GIR_MESON_OPTION = ""
 
 GTKDOC_MESON_OPTION = "gtk_doc"
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libportal/libportal_0.5.bb b/meta-openembedded/meta-gnome/recipes-gnome/libportal/libportal_0.5.bb
new file mode 100644
index 0000000..67f63fe
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libportal/libportal_0.5.bb
@@ -0,0 +1,17 @@
+SUMMARY = "libportal provides GIO-style async APIs for most Flatpak portals."
+DESCRIPTION = "It provides simple asynchronous wrappers for most Flatpak portals \
+with a familiar GObject API along side the D-Bus API"
+HOMEPAGE = "https://github.com/flatpak/libportal"
+BUGTRACKER = "https://github.com/flatpak/libportal/issues"
+LICENSE = "LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3000208d539ec061b899bce1d9ce9404"
+
+SRC_URI = "git://github.com/flatpak/${BPN}.git;protocol=https;branch=master"
+SRCREV = "467a397fd7996557f837cdc26ac07c01c62810e5"
+S = "${WORKDIR}/git"
+
+inherit meson gtk-doc gobject-introspection
+
+DEPENDS += "glib-2.0 glib-2.0-native gtk+3"
+
+EXTRA_OEMESON = "-Dbackends=gtk3 -Dvapi=false"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity/0001-drop-zenity-detection.patch b/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity/0001-drop-zenity-detection.patch
index 3493e51..315d4e4 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity/0001-drop-zenity-detection.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity/0001-drop-zenity-detection.patch
@@ -13,10 +13,10 @@
  1 file changed, 5 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index 5f9e7e9..80b32c7 100644
+index 528b7d2..8932ae6 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -359,11 +359,6 @@ fi
+@@ -337,11 +337,6 @@ fi
  
  AM_CONDITIONAL(HAVE_SM, test "$found_sm" = "yes") 
  
@@ -25,9 +25,9 @@
 -  AC_MSG_ERROR([zenity not found in your path - needed for dialogs])
 -fi
 -
- dnl **************************************************************************
- dnl Check for Vulkan support
- dnl **************************************************************************
+ AC_SEARCH_LIBS([dlsym], [dl], [], [
+   AC_MSG_ERROR([unable to find the dlsym() function])
+ ])
 -- 
-1.8.3.1
+2.31.1
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity/0001-fix-build-with-disable-dependency-tracking.patch b/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity/0001-fix-build-with-disable-dependency-tracking.patch
deleted file mode 100644
index 864d0ba..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity/0001-fix-build-with-disable-dependency-tracking.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 632670273cc880917e78a152a3ae39e209b57864 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: Sat, 28 Aug 2021 05:58:25 +0200
-Subject: [PATCH] fix build with --disable-dependency-tracking
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-With split build and source directories AND --disable-dependency-tracking
-(like the way Yocto builds are done) there's a reproducible make
-failure on my Fedora 33 build host:
-
-| Making all in src
-| make[2]: Entering directory '.../metacity/1_3.40.0-r0/build/src'
-| .../metacity/1_3.40.0-r0/recipe-sysroot-native/usr/bin/glib-mkenums --template ../../metacity-3.40.0/src/core/meta-enum-types.c.in ../../metacity-3.40.0/src/core/window-private.h ../../metacity-3.40.0/src/include/meta-compositor.h  > \
-| 	meta-enum-types.c.tmp && mv meta-enum-types.c.tmp core/meta-enum-types.c
-| .../metacity/1_3.40.0-r0/recipe-sysroot-native/usr/bin/glib-mkenums --template ../../metacity-3.40.0/src/core/meta-enum-types.h.in ../../metacity-3.40.0/src/core/window-private.h ../../metacity-3.40.0/src/include/meta-compositor.h  > \
-| 	meta-enum-types.h.tmp && mv meta-enum-types.h.tmp core/meta-enum-types.h
-| mv: cannot move 'meta-enum-types.c.tmp' to 'core/meta-enum-types.c'mv: cannot move 'meta-enum-types.h.tmp' to 'core/meta-enum-types.h': No such file or directory
-| : No such file or directory
-| make[2]: *** [Makefile:2240: core/meta-enum-types.c] Error 1
-
-https://gitlab.gnome.org/GNOME/metacity/-/merge_requests/24
-
-Upstream-Status: Pending
-
-Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
----
- configure.ac    | 1 +
- src/Makefile.am | 2 ++
- 2 files changed, 3 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index ebb00b85..04aafb94 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -139,6 +139,7 @@ dnl **************************************************************************
- AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}")
- 
- AC_PROG_CC
-+AC_PROG_MKDIR_P
- AC_ISC_POSIX
- AC_HEADER_STDC
- 
-diff --git a/src/Makefile.am b/src/Makefile.am
-index f86af600..4aa3fdae 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -204,10 +204,12 @@ ENUM_TYPES = \
- 	$(NULL)
- 
- core/meta-enum-types.c: core/meta-enum-types.c.in $(ENUM_TYPES) Makefile.am
-+	$(MKDIR_P) core
- 	$(AM_V_GEN) $(GLIB_MKENUMS) --template $(srcdir)/core/meta-enum-types.c.in $(ENUM_TYPES) > \
- 		meta-enum-types.c.tmp && mv meta-enum-types.c.tmp core/meta-enum-types.c
- 
- core/meta-enum-types.h: core/meta-enum-types.h.in $(ENUM_TYPES) Makefile.am
-+	$(MKDIR_P) core
- 	$(AM_V_GEN) $(GLIB_MKENUMS) --template $(srcdir)/core/meta-enum-types.h.in $(ENUM_TYPES) > \
- 		meta-enum-types.h.tmp && mv meta-enum-types.h.tmp core/meta-enum-types.h
- 
--- 
-2.31.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.40.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.40.0.bb
deleted file mode 100644
index e7570ec..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.40.0.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SECTION = "x11/wm"
-SUMMARY = "Metacity is the boring window manager for the adult in you"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b4cce53560b8e619ffa7c830fb8761aa \
-                    file://src/include/main.h;endline=24;md5=72148ede07a6dadd01de6a882d20a9ad"
-
-PE = "1"
-
-DEPENDS = " \
-    gdk-pixbuf-native \
-    gtk+3 \
-    gsettings-desktop-schemas \
-    startup-notification \
-    libcanberra \
-    libgtop \
-    libxres \
-    libxpresent \
-"
-
-
-# depends on startup-notification which depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-inherit gnomebase gsettings gettext upstream-version-is-even features_check
-
-SRC_URI[archive.sha256sum] = "224c1f65487eac21f0c1d9856152343768ee726c48b1a8a2835a46a8ad9015b5"
-SRC_URI += " \
-    file://0001-drop-zenity-detection.patch \
-    file://0001-fix-build-with-disable-dependency-tracking.patch \
-"
-
-PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama"
-# enable as neccessary until new warnings are dealt with
-PACKAGECONFIG[werror] = "--enable-Werror,--disable-Werror,,"
-
-FILES:${PN} += " \
-    ${datadir}/themes \
-    ${datadir}/gnome-control-center \
-    ${datadir}/gnome\
-"
-
-RDEPENDS:${PN} += "gsettings-desktop-schemas"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.42.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.42.0.bb
new file mode 100644
index 0000000..58479cf
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.42.0.bb
@@ -0,0 +1,39 @@
+SECTION = "x11/wm"
+SUMMARY = "Metacity is the boring window manager for the adult in you"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b4cce53560b8e619ffa7c830fb8761aa \
+                    file://src/include/main.h;endline=24;md5=72148ede07a6dadd01de6a882d20a9ad"
+
+PE = "1"
+
+DEPENDS = " \
+    gdk-pixbuf-native \
+    gtk+3 \
+    gsettings-desktop-schemas \
+    startup-notification \
+    libcanberra \
+    libgtop \
+    libxres \
+    libxpresent \
+"
+
+
+# depends on startup-notification which depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+inherit gnomebase gsettings gettext upstream-version-is-even features_check
+
+SRC_URI[archive.sha256sum] = "d89d679dcfed9b5eef18f06e2dcb33a7ab543d53b358fa89ce65593c231eeebc"
+SRC_URI += "file://0001-drop-zenity-detection.patch"
+
+PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama"
+# enable as neccessary until new warnings are dealt with
+PACKAGECONFIG[werror] = "--enable-Werror,--disable-Werror,,"
+
+FILES:${PN} += " \
+    ${datadir}/themes \
+    ${datadir}/gnome-control-center \
+    ${datadir}/gnome\
+"
+
+RDEPENDS:${PN} += "gsettings-desktop-schemas"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter/0001-EGL-Include-EGL-eglmesaext.h.patch b/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter/0001-EGL-Include-EGL-eglmesaext.h.patch
deleted file mode 100644
index b4fd039..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter/0001-EGL-Include-EGL-eglmesaext.h.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From a444a4c5f58ea516ad3cd9d6ddc0056c3ca9bc90 Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
-Date: Sun, 20 Oct 2019 12:04:31 +0200
-Subject: [PATCH] EGL: Include EGL/eglmesaext.h
-
-The eglext.h shipped by libglvnd does not include the Mesa extensions,
-unlike the header shipped in Mesa.
-
-Fixes https://gitlab.gnome.org/GNOME/mutter/issues/876
-
-Upstream-Status: Applied [1]
-
-[1] https://gitlab.gnome.org/GNOME/mutter/-/commit/a444a4c5f58ea516ad3cd9d6ddc0056c3ca9bc90
----
- cogl/cogl/meson.build       | 2 +-
- src/backends/meta-egl-ext.h | 1 +
- src/backends/meta-egl.c     | 1 +
- src/backends/meta-egl.h     | 1 +
- 4 files changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/cogl/cogl/meson.build b/cogl/cogl/meson.build
-index 261955796..b0e66bff3 100644
---- a/cogl/cogl/meson.build
-+++ b/cogl/cogl/meson.build
-@@ -48,7 +48,7 @@ cogl_gl_header_h = configure_file(
- built_headers += [cogl_gl_header_h]
- 
- if have_egl
--  cogl_egl_includes_string = '#include <EGL/egl.h>\n#include <EGL/eglext.h>'
-+  cogl_egl_includes_string = '#include <EGL/egl.h>\n#include <EGL/eglext.h>\n#include <EGL/eglmesaext.h>'
- else
-   cogl_egl_includes_string = ''
- endif
-diff --git a/src/backends/meta-egl-ext.h b/src/backends/meta-egl-ext.h
-index 8705e7d5b..db0b74f76 100644
---- a/src/backends/meta-egl-ext.h
-+++ b/src/backends/meta-egl-ext.h
-@@ -29,6 +29,7 @@
- 
- #include <EGL/egl.h>
- #include <EGL/eglext.h>
-+#include <EGL/eglmesaext.h>
- 
- /*
-  * This is a little different to the tests shipped with EGL implementations,
-diff --git a/src/backends/meta-egl.c b/src/backends/meta-egl.c
-index 6554be935..fdeff4f77 100644
---- a/src/backends/meta-egl.c
-+++ b/src/backends/meta-egl.c
-@@ -27,6 +27,7 @@
- 
- #include <EGL/egl.h>
- #include <EGL/eglext.h>
-+#include <EGL/eglmesaext.h>
- #include <gio/gio.h>
- #include <glib.h>
- #include <glib-object.h>
-diff --git a/src/backends/meta-egl.h b/src/backends/meta-egl.h
-index f2a816445..4591e7d85 100644
---- a/src/backends/meta-egl.h
-+++ b/src/backends/meta-egl.h
-@@ -28,6 +28,7 @@
- 
- #include <EGL/egl.h>
- #include <EGL/eglext.h>
-+#include <EGL/eglmesaext.h>
- #include <glib-object.h>
- 
- #define META_EGL_ERROR meta_egl_error_quark ()
--- 
-2.21.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.6.bb b/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.6.bb
deleted file mode 100644
index b659d92..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.6.bb
+++ /dev/null
@@ -1,99 +0,0 @@
-SUMMARY = "Window and compositing manager based on Clutter"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = " \
-    xserver-xorg-cvt-native \
-    virtual/libx11 \
-    gtk+3 \
-    gdk-pixbuf \
-    cairo \
-    pango \
-    gsettings-desktop-schemas \
-    json-glib \
-    gnome-desktop3 \
-    gnome-settings-daemon \
-    libxtst \
-    libxkbfile \
-    xinerama \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even features_check
-
-SRC_URI[archive.md5sum] = "20913c458406e6efa3df005a3ce48c8e"
-SRC_URI[archive.sha256sum] = "23bde87d33b8981358831cec8915bb5ff1eaf9c1de74c90cd1660b1b95883526"
-SRC_URI += "file://0001-EGL-Include-EGL-eglmesaext.h.patch"
-
-# x11 is still manadatory - see meson.build
-REQUIRED_DISTRO_FEATURES = "x11 polkit"
-
-# systemd can be replaced by libelogind (not available atow - make systemd
-# mandatory distro feature)
-LOGIND ?= "systemd"
-REQUIRED_DISTRO_FEATURES += "systemd"
-
-# profiler requires sysprof 3.34 which is not willing to build atow
-PACKAGECONFIG ??= " \
-    native-backend \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl glx', '', d)} \
-    sm \
-    startup-notification \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'wayland', '', d)} \
-"
-
-EXTRA_OEMESON += " \
-    -Dxwayland_path=${bindir}/Xwayland \
-"
-
-# combi-config - see meson_options.txt for more details
-PACKAGECONFIG[native-backend] = "-Dnative_backend=true -Dudev=true, -Dnative_backend=false -Dudev=false, libdrm virtual/libgbm libinput ${LOGIND} virtual/egl virtual/libgles2 udev"
-PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=true, virtual/libgl"
-PACKAGECONFIG[glx] = "-Dglx=true, -Dglx=false"
-PACKAGECONFIG[libwacom] = "-Dlibwacom=true, -Dlibwacom=false, libwacom"
-# Remove depending on pipewire-0.2 when mutter is upgraded to 3.36+
-PACKAGECONFIG[remote-desktop] = "-Dremote_desktop=true, -Dremote_desktop=false, pipewire-0.2"
-PACKAGECONFIG[sm] = "-Dsm=true, -Dsm=false, libsm"
-PACKAGECONFIG[profiler] = "-Dprofiler=true,-Dprofiler=false,sysprof"
-PACKAGECONFIG[startup-notification] = "-Dstartup_notification=true, -Dstartup_notification=false, startup-notification, startup-notification"
-PACKAGECONFIG[wayland] = "-Dwayland=true,-Dwayland=false,wayland wayland-native, xwayland"
-PACKAGECONFIG[wayland-eglstream] = "-Dwayland_eglstream=true,-Dwayland_eglstream=false"
-
-# yes they changed from mutter-4 -> mutter-5 recently so be perpared
-MUTTER_API_NAME = "mutter-5"
-
-do_install:append() {
-    # Add gir links in standard paths. That makes dependents life much easier
-    # to find them
-    install -d ${D}${datadir}/gir-1.0
-    for gir_full in `find ${D}${libdir}/${MUTTER_API_NAME} -name '*.gir'`; do
-        gir=`basename "$gir_full"`
-        ln -sr "${D}${libdir}/${MUTTER_API_NAME}/$gir" "${D}${datadir}/gir-1.0/$gir"
-    done
-}
-
-GSETTINGS_PACKAGE = "${PN}-gsettings"
-
-PACKAGES =+ "${PN}-tests ${PN}-gsettings"
-
-FILES:${PN} += " \
-    ${datadir}/gnome-control-center \
-    ${libdir}/${MUTTER_API_NAME}/lib*${SOLIBS} \
-    ${libdir}/${MUTTER_API_NAME}/*.typelib \
-    ${libdir}/${MUTTER_API_NAME}/plugins \
-"
-
-FILES:${PN}-tests += " \
-    ${datadir}/installed-tests \
-    ${datadir}/${MUTTER_API_NAME}/tests \
-    ${libexecdir}/installed-tests/${MUTTER_API_NAME} \
-"
-
-FILES:${PN}-dev += " \
-    ${libdir}/${MUTTER_API_NAME}/*.gir \
-    ${libdir}/${MUTTER_API_NAME}/lib*.so \
-"
-
-RDEPENDS:${PN} += "zenity ${PN}-gsettings"
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_41.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_41.2.bb
new file mode 100644
index 0000000..19dad21
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_41.2.bb
@@ -0,0 +1,98 @@
+SUMMARY = "Window and compositing manager based on Clutter"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = " \
+    xserver-xorg-cvt-native \
+    wayland-native \
+    virtual/libx11 \
+    graphene \
+    gtk+3 \
+    gdk-pixbuf \
+    cairo \
+    pango \
+    gsettings-desktop-schemas \
+    json-glib \
+    gnome-desktop \
+    gnome-settings-daemon \
+    libxtst \
+    libxkbfile \
+    xinerama \
+    xwayland \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection gettext features_check
+
+SRC_URI[archive.sha256sum] = "00dfa812f1c486d74a2b73f42045ae1182f9246c7794d67d74b5e543ea700617"
+
+# x11 is still manadatory - see meson.build
+REQUIRED_DISTRO_FEATURES = "wayland x11 polkit"
+
+# systemd can be replaced by libelogind (not available atow - make systemd
+# mandatory distro feature)
+LOGIND ?= "systemd"
+REQUIRED_DISTRO_FEATURES += "systemd"
+
+# profiler requires sysprof 3.34 which is not willing to build atow
+PACKAGECONFIG ??= " \
+    native-backend \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl glx', '', d)} \
+    sm \
+    startup-notification \
+"
+
+EXTRA_OEMESON += " \
+    -Dtests=false \
+    -Dnative_tests=false \
+    -Dxwayland_path=${bindir}/Xwayland \
+"
+
+# combi-config - see meson_options.txt for more details
+PACKAGECONFIG[native-backend] = "-Dnative_backend=true -Dudev=true, -Dnative_backend=false -Dudev=false, libdrm virtual/libgbm libinput ${LOGIND} virtual/egl virtual/libgles2 udev"
+PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=true, virtual/libgl"
+PACKAGECONFIG[glx] = "-Dglx=true, -Dglx=false"
+PACKAGECONFIG[libwacom] = "-Dlibwacom=true, -Dlibwacom=false, libwacom"
+# Remove depending on pipewire-0.2 when mutter is upgraded to 3.36+
+PACKAGECONFIG[remote-desktop] = "-Dremote_desktop=true, -Dremote_desktop=false, pipewire"
+PACKAGECONFIG[sm] = "-Dsm=true, -Dsm=false, libsm"
+PACKAGECONFIG[profiler] = "-Dprofiler=true,-Dprofiler=false,sysprof"
+PACKAGECONFIG[startup-notification] = "-Dstartup_notification=true, -Dstartup_notification=false, startup-notification, startup-notification"
+
+MUTTER_API_NAME = "mutter-9"
+
+do_install:append() {
+    # Add gir links in standard paths. That makes dependents life much easier
+    # to find them
+    install -d ${D}${datadir}/gir-1.0
+    for gir_full in `find ${D}${libdir}/${MUTTER_API_NAME} -name '*.gir'`; do
+        gir=`basename "$gir_full"`
+        ln -sr "${D}${libdir}/${MUTTER_API_NAME}/$gir" "${D}${datadir}/gir-1.0/$gir"
+    done
+}
+
+GSETTINGS_PACKAGE = "${PN}-gsettings"
+
+PACKAGES =+ "${PN}-tests ${PN}-gsettings"
+
+FILES:${PN} += " \
+    ${datadir}/gnome-control-center \
+    ${libdir}/${MUTTER_API_NAME}/lib*${SOLIBS} \
+    ${libdir}/${MUTTER_API_NAME}/*.typelib \
+    ${libdir}/${MUTTER_API_NAME}/plugins \
+"
+
+FILES:${PN}-tests += " \
+    ${datadir}/installed-tests \
+    ${datadir}/${MUTTER_API_NAME}/tests \
+    ${libexecdir}/installed-tests/${MUTTER_API_NAME} \
+"
+
+FILES:${PN}-dev += " \
+    ${libdir}/${MUTTER_API_NAME}/*.gir \
+    ${libdir}/${MUTTER_API_NAME}/lib*.so \
+"
+
+RDEPENDS:${PN} += "zenity ${PN}-gsettings"
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/liportal-0.5-fix.patch b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/liportal-0.5-fix.patch
new file mode 100644
index 0000000..708595a
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/liportal-0.5-fix.patch
@@ -0,0 +1,28 @@
+Fix an issue building Nautilus with libportal-0.5+
+where expected header is moved to different directory
+in staging sysroot
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/meson.build
++++ b/meson.build
+@@ -123,7 +123,7 @@ gtk = dependency('gtk+-3.0', version: '>
+ libhandy = dependency('libhandy-1', version: '>= 1.1.90')
+ libportal = []
+ if get_option('libportal')
+-  libportal = dependency('libportal', version: '>= 0.3')
++  libportal = dependency('libportal-gtk3', version: '>= 0.3')
+ endif
+ selinux = []
+ if get_option('selinux')
+--- a/src/nautilus-files-view.c
++++ b/src/nautilus-files-view.c
+@@ -92,7 +92,7 @@
+ 
+ #ifdef HAVE_LIBPORTAL
+ #include <libportal/portal.h>
+-#include <libportal/portal-gtk3.h>
++#include <libportal-gtk3/portal-gtk3.h>
+ #endif
+ 
+ /* Minimum starting update inverval */
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_40.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_40.2.bb
deleted file mode 100644
index 3e6a5ba..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_40.2.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "File manager for GNOME"
-SECTION = "x11/gnome"
-
-LICENSE="GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-DEPENDS = " \
-    fontconfig \
-    gtk+3 \
-    gnome-desktop3 \
-    gsettings-desktop-schemas \
-    gnome-autoar \
-    tracker \
-    libhandy \
-    libportal \
-"
-
-inherit gnomebase gsettings gobject-introspection gtk-doc gettext features_check mime-xdg
-
-def gnome_verdir(v):
-    return oe.utils.trim_version(v, 1)
-
-SRC_URI[archive.sha256sum] = "b71ef2fe07e5eea89a2bb1e5bd30947bd18873bfb30f79cbf17edfbd4d20f60d"
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OEMESON += " \
-    -Dtests=none \
-"
-
-PACKAGECONFIG = "extensions"
-PACKAGECONFIG[extensions] = "-Dextensions=true,-Dextensions=false, gexiv2 gstreamer1.0-plugins-base"
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1 \
-    ${datadir}/metainfo \
-    ${datadir}/gnome-shell \
-    ${datadir}/tracker3 \
-"
-
-# mandatory - not checked during configuration:
-# | (org.gnome.Nautilus:863): GLib-GIO-ERROR **: 21:03:52.326: Settings schema 'org.freedesktop.Tracker.Miner.Files' is not installed
-RDEPENDS:${PN} += "tracker-miners"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_41.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_41.1.bb
new file mode 100644
index 0000000..330c361
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_41.1.bb
@@ -0,0 +1,46 @@
+SUMMARY = "File manager for GNOME"
+SECTION = "x11/gnome"
+
+LICENSE="GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+DEPENDS = " \
+    fontconfig \
+    gtk+3 \
+    gnome-desktop \
+    gsettings-desktop-schemas \
+    gnome-autoar \
+    tracker \
+    libhandy \
+    libportal \
+"
+
+inherit gnomebase gsettings gobject-introspection gtk-doc gettext features_check mime-xdg
+
+def gnome_verdir(v):
+    return oe.utils.trim_version(v, 1)
+
+SRC_URI += "file://liportal-0.5-fix.patch"
+SRC_URI[archive.sha256sum] = "3e633098853711a3e96b12fe9228b3201816e554b2823f161e7d901a8880582f"
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OEMESON += " \
+    -Dtests=none \
+"
+
+PACKAGECONFIG = "extensions"
+PACKAGECONFIG[extensions] = "-Dextensions=true,-Dextensions=false, gexiv2 gstreamer1.0-plugins-base"
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1 \
+    ${datadir}/metainfo \
+    ${datadir}/gnome-shell \
+    ${datadir}/tracker3 \
+"
+
+# mandatory - not checked during configuration:
+# | (org.gnome.Nautilus:863): GLib-GIO-ERROR **: 21:03:52.326: Settings schema 'org.freedesktop.Tracker.Miner.Files' is not installed
+RDEPENDS:${PN} += "tracker-miners"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/sysprof/sysprof/0001-sysprof-Define-NT_GNU_BUILD_ID-if-undefined.patch b/meta-openembedded/meta-gnome/recipes-gnome/sysprof/sysprof/0001-sysprof-Define-NT_GNU_BUILD_ID-if-undefined.patch
deleted file mode 100644
index 75aa86c..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/sysprof/sysprof/0001-sysprof-Define-NT_GNU_BUILD_ID-if-undefined.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 3025d80aaacc5f67aa9eb1e6fde30f71d9c5b04b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 18 Jul 2011 16:00:17 -0700
-Subject: [PATCH 1/2] sysprof: Define NT_GNU_BUILD_ID if undefined
-
-On uclibc elf.h does not have GNU extentions but we need this define
-so we define it locally if its not getting it from elf.h
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
-
-%% original patch: define-NT_GNU_BUILD_ID.patch
----
- src/libsysprof/elfparser.h | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/libsysprof/elfparser.h b/src/libsysprof/elfparser.h
-index 160e4c9..94fa5c0 100644
---- a/src/libsysprof/elfparser.h
-+++ b/src/libsysprof/elfparser.h
-@@ -18,6 +18,10 @@
- 
- #include <glib.h>
- 
-+#ifndef NT_GNU_BUILD_ID
-+#define NT_GNU_BUILD_ID 3
-+#endif
-+
- typedef struct ElfSym ElfSym;
- typedef struct ElfParser ElfParser;
- 
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/sysprof/sysprof/0002-tests-use-G_GSIZE_FORMAT-instead-of-G_GUINT64_FORMAT.patch b/meta-openembedded/meta-gnome/recipes-gnome/sysprof/sysprof/0002-tests-use-G_GSIZE_FORMAT-instead-of-G_GUINT64_FORMAT.patch
deleted file mode 100644
index d8fffbb..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/sysprof/sysprof/0002-tests-use-G_GSIZE_FORMAT-instead-of-G_GUINT64_FORMAT.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 5dea152c7728f5a37370ad8a229115833e36b4f6 Mon Sep 17 00:00:00 2001
-From: Rasmus Thomsen <oss@cogitri.dev>
-Date: Sat, 7 Mar 2020 10:44:16 +0100
-Subject: [PATCH] tests: use G_GSIZE_FORMAT instead of G_GUINT64_FORMAT for
- gsize
-
-This fixes the build on 32-bit platforms with -Werror-format
-
-fixes #32
-
-Upstream-Status: Applied[https://gitlab.gnome.org/GNOME/sysprof/-/commit/5dea152c7728f5a37370ad8a229115833e36b4f6]
----
- src/tests/allocs-by-size.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/tests/allocs-by-size.c b/src/tests/allocs-by-size.c
-index 666113a..6260d4b 100644
---- a/src/tests/allocs-by-size.c
-+++ b/src/tests/allocs-by-size.c
-@@ -109,7 +109,7 @@ allocs_by_size (SysprofCaptureReader *reader)
-     {
-       const Item *item = &g_array_index (ar, Item, i);
- 
--      g_print ("%"G_GUINT64_FORMAT",%"G_GUINT64_FORMAT",%"G_GUINT64_FORMAT"\n",
-+      g_print ("%"G_GSIZE_FORMAT",%"G_GSIZE_FORMAT",%"G_GSIZE_FORMAT"\n",
-                item->size, item->cmp, item->count);
-     }
- }
--- 
-2.21.3
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/sysprof/sysprof_3.36.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/sysprof/sysprof_3.36.0.bb
deleted file mode 100644
index 1f8351f..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/sysprof/sysprof_3.36.0.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "System-wide Performance Profiler for Linux"
-HOMEPAGE = "http://www.sysprof.com"
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
-                    file://src/sysprof/sysprof-application.c;endline=17;md5=a3de8df3b0f8876dd01e1388d2d4b607"
-
-GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gnome-help gettext systemd upstream-version-is-even gsettings mime mime-xdg
-
-DEPENDS += " \
-    glib-2.0-native \
-    yelp-tools-native \
-    libxml2-native \
-    glib-2.0 \
-"
-
-SRC_URI[archive.md5sum] = "3956e82b8744715006dde59e0ce8910b"
-SRC_URI[archive.sha256sum] = "8670db4dacf7b219d30c575c465b17c8ed6724dbade347f2cde9548bff039108"
-SRC_URI += " \
-    file://0001-sysprof-Define-NT_GNU_BUILD_ID-if-undefined.patch \
-    file://0002-tests-use-G_GSIZE_FORMAT-instead-of-G_GUINT64_FORMAT.patch \
-"
-
-PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'sysprofd', '', d)} \
-                  ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'libsysprof', '', d)} \
-                  ${@bb.utils.contains_any('DISTRO_FEATURES', '${GTK3DISTROFEATURES}', 'gtk', '', d)}"
-PACKAGECONFIG[gtk] = "-Denable_gtk=true,-Denable_gtk=false,gtk+3 libdazzle"
-PACKAGECONFIG[sysprofd] = "-Dwith_sysprofd=bundled,-Dwith_sysprofd=none,polkit"
-PACKAGECONFIG[libsysprof] = "-Dlibsysprof=true,-Dlibsysprof=false,polkit"
-
-EXTRA_OEMESON += "-Dsystemdunitdir=${systemd_unitdir}/system"
-
-SOLIBS = ".so"
-FILES_SOLIBSDEV = ""
-
-SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'sysprofd', 'sysprof2.service sysprof3.service', '', d)}"
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1/system-services \
-    ${datadir}/dbus-1/system.d \
-    ${datadir}/dbus-1/interfaces \
-    ${datadir}/metainfo \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/sysprof/sysprof_3.42.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/sysprof/sysprof_3.42.1.bb
new file mode 100644
index 0000000..3dd08a2
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/sysprof/sysprof_3.42.1.bb
@@ -0,0 +1,39 @@
+SUMMARY = "System-wide Performance Profiler for Linux"
+HOMEPAGE = "http://www.sysprof.com"
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://src/sysprof/sysprof-application.c;endline=17;md5=a3de8df3b0f8876dd01e1388d2d4b607"
+
+GNOMEBASEBUILDCLASS = "meson"
+inherit gnomebase gnome-help gettext systemd upstream-version-is-even gsettings mime mime-xdg
+
+DEPENDS += " \
+    glib-2.0-native \
+    yelp-tools-native \
+    libxml2-native \
+    glib-2.0 \
+    json-glib \
+"
+
+SRC_URI[archive.sha256sum] = "1796b81404ee75fd1ebacf54464ad7affebf62f2851eef524d9f8eac0c4a2001"
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'sysprofd', '', d)} \
+                  ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'libsysprof', '', d)} \
+                  ${@bb.utils.contains_any('DISTRO_FEATURES', '${GTK3DISTROFEATURES}', 'gtk', '', d)}"
+PACKAGECONFIG[gtk] = "-Denable_gtk=true,-Denable_gtk=false,gtk+3 libdazzle"
+PACKAGECONFIG[sysprofd] = "-Dwith_sysprofd=bundled,-Dwith_sysprofd=none,polkit"
+PACKAGECONFIG[libsysprof] = "-Dlibsysprof=true,-Dlibsysprof=false,polkit"
+
+EXTRA_OEMESON += "-Dsystemdunitdir=${systemd_unitdir}/system"
+
+SOLIBS = ".so"
+FILES_SOLIBSDEV = ""
+
+SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'sysprofd', 'sysprof2.service sysprof3.service', '', d)}"
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1/system-services \
+    ${datadir}/dbus-1/system.d \
+    ${datadir}/dbus-1/interfaces \
+    ${datadir}/metainfo \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_6.00.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_6.00.0.bb
index 755cb96..0ac7e36 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_6.00.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_6.00.0.bb
@@ -19,6 +19,6 @@
 
 # gobject-introspection is mandatory and cannot be configured
 REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST:append = " introspection"
+GIR_MESON_OPTION = ""
 
 GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.1.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.1.1.bb
deleted file mode 100644
index c2de723..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.1.1.bb
+++ /dev/null
@@ -1,73 +0,0 @@
-SUMMARY = "Tracker miners and metadata extractors"
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = " \
-    file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \
-    file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
-"
-
-DEPENDS = " \
-    intltool-native \
-    tracker \
-    zlib \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gobject-introspection vala bash-completion features_check
-
-SRC_URI[archive.sha256sum] = "e4d361351b156f2862a524415fbebf0539c781cd87c6629662f0265b4803b8b8"
-SRC_URI += "file://0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST:append = " introspection"
-
-PACKAGECONFIG ??= " \
-    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "ffmpeg", "", d)} \
-    gexiv2 \
-    gstreamer \
-    icu \
-    libexif \
-    libgsf \
-    jpeg \
-    pdf \
-    png \
-    tiff \
-    xml \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \
-"
-
-PACKAGECONFIG[battery]     = "-Dbattery_detection=upower,-Dbattery_detection=none,upower"
-PACKAGECONFIG[ffmpeg]     = ",,ffmpeg"
-PACKAGECONFIG[gexiv2]     = ",,gexiv2"
-PACKAGECONFIG[gstreamer]  = ",,gstreamer1.0 gstreamer1.0-plugins-base"
-PACKAGECONFIG[gupnp]      = ",,gupnp-dlna"
-PACKAGECONFIG[gif]        = "-Dgif=enabled,-Dgif=disabled,giflib"
-PACKAGECONFIG[icu]        = ",,icu"
-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[xml]        = "-Dxml=enabled,-Dxml=disabled,libxml2"
-PACKAGECONFIG[networkmanager] = "-Dnetwork_manager=enabled,-Dnetwork_manager=disabled,networkmanger"
-
-# For security reasons it is strongly recommended to set add meta-security in
-# your layers and 'libseccomp' to PACKAGECONFIG".
-PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp"
-# not yet in meta-gnome
-PACKAGECONFIG[rss]        = "-Dminer_rss=true,-Dminer_rss=false,libgrss"
-
-EXTRA_OEMESON += " \
-    -Dman=false \
-    -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \
-    -Dsystemd_user_services_dir=${systemd_user_unitdir} \
-"
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1 \
-    ${datadir}/tracker3-miners \
-    ${libdir}/tracker-miners-3.0 \
-    ${systemd_user_unitdir} \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.2.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.2.1.bb
new file mode 100644
index 0000000..a9c96a5
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.2.1.bb
@@ -0,0 +1,73 @@
+SUMMARY = "Tracker miners and metadata extractors"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = " \
+    file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \
+    file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+"
+
+DEPENDS = " \
+    intltool-native \
+    tracker \
+    zlib \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection vala bash-completion features_check
+
+SRC_URI += "file://0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch"
+SRC_URI[archive.sha256sum] = "44369f53e2edef41437406dbeecd477a97f8a9afdd9134832ea45d1ba2aa2c47"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+PACKAGECONFIG ??= " \
+    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "ffmpeg", "", d)} \
+    gexiv2 \
+    gstreamer \
+    icu \
+    libexif \
+    libgsf \
+    jpeg \
+    pdf \
+    png \
+    tiff \
+    xml \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \
+"
+
+PACKAGECONFIG[battery]     = "-Dbattery_detection=upower,-Dbattery_detection=none,upower"
+PACKAGECONFIG[ffmpeg]     = ",,ffmpeg"
+PACKAGECONFIG[gexiv2]     = ",,gexiv2"
+PACKAGECONFIG[gstreamer]  = ",,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[gupnp]      = ",,gupnp-dlna"
+PACKAGECONFIG[gif]        = "-Dgif=enabled,-Dgif=disabled,giflib"
+PACKAGECONFIG[icu]        = ",,icu"
+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[xml]        = "-Dxml=enabled,-Dxml=disabled,libxml2"
+PACKAGECONFIG[networkmanager] = "-Dnetwork_manager=enabled,-Dnetwork_manager=disabled,networkmanger"
+
+# For security reasons it is strongly recommended to set add meta-security in
+# your layers and 'libseccomp' to PACKAGECONFIG".
+PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp"
+# not yet in meta-gnome
+PACKAGECONFIG[rss]        = "-Dminer_rss=true,-Dminer_rss=false,libgrss"
+
+EXTRA_OEMESON += " \
+    -Dman=false \
+    -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \
+    -Dsystemd_user_services_dir=${systemd_user_unitdir} \
+"
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1 \
+    ${datadir}/tracker3-miners \
+    ${libdir}/tracker-miners-3.0 \
+    ${systemd_user_unitdir} \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.1.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.1.1.bb
deleted file mode 100644
index b16a5a2..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.1.1.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "Tracker is a file search engine"
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = " \
-    file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \
-    file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
-"
-
-DEPENDS = " \
-    dbus-native \
-    glib-2.0 \
-    sqlite3 \
-    libarchive \
-    dbus \
-    icu \
-    json-glib \
-    libsoup-2.4 \
-    libstemmer \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gobject-introspection vala gtk-doc manpages bash-completion features_check
-
-SRC_URI[archive.sha256sum] = "4376e2e98454066f44f7a242e45b99b3bfe4c03b67fab19abb0ed586ca748ae7"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST:append = " introspection"
-
-# text search is not an option anymore and requires sqlite3 build with
-# PACKAGECONFIG[fts5] set (default)
-
-# set required cross property sqlite3_has_fts5
-do_write_config[vardeps] += "PACKAGECONFIG"
-do_write_config:append() {
-    echo "[properties]" > ${WORKDIR}/meson-tracker.cross
-    echo "sqlite3_has_fts5 = 'true'" >> ${WORKDIR}/meson-tracker.cross
-}
-
-EXTRA_OEMESON = " \
-    --cross-file ${WORKDIR}/meson-tracker.cross \
-    -Dman=false \
-    -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \
-    -Dsystemd_user_services_dir=${systemd_user_unitdir} \
-"
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1 \
-    ${datadir}/tracker3 \
-    ${libdir}/tracker-3.0 \
-    ${systemd_user_unitdir} \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.2.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.2.1.bb
new file mode 100644
index 0000000..1c18efb
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.2.1.bb
@@ -0,0 +1,53 @@
+SUMMARY = "Tracker is a file search engine"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = " \
+    file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \
+    file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+"
+
+DEPENDS = " \
+    dbus-native \
+    python3-pygobject-native \
+    glib-2.0 \
+    sqlite3 \
+    libarchive \
+    dbus \
+    icu \
+    json-glib \
+    libsoup-2.4 \
+    libstemmer \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection vala gtk-doc manpages bash-completion features_check python3native
+
+SRC_URI[archive.sha256sum] = "1847e08b39e6e61d848735aa1f97f7d96c038201653fa0d7cb9e81b37eb9c03a"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+# text search is not an option anymore and requires sqlite3 build with
+# PACKAGECONFIG[fts5] set (default)
+
+# set required cross property sqlite3_has_fts5
+do_write_config[vardeps] += "PACKAGECONFIG"
+do_write_config:append() {
+    echo "[properties]" > ${WORKDIR}/meson-tracker.cross
+    echo "sqlite3_has_fts5 = 'true'" >> ${WORKDIR}/meson-tracker.cross
+}
+
+EXTRA_OEMESON = " \
+    --cross-file ${WORKDIR}/meson-tracker.cross \
+    -Dman=false \
+    -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \
+    -Dsystemd_user_services_dir=${systemd_user_unitdir} \
+"
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1 \
+    ${datadir}/tracker3 \
+    ${libdir}/tracker-3.0 \
+    ${systemd_user_unitdir} \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-xsl_41.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-xsl_41.0.bb
deleted file mode 100644
index 029fd02..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-xsl_41.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "XSL stylesheets for the yelp help browser"
-LICENSE = "LGPLv2.1 & GPLv2 & BSD-3-Clause"
-LIC_FILES_CHKSUM = " \
-    file://COPYING;md5=8ca13a5a6972ac1620a1e42a3dacd774 \
-    file://COPYING.GPL;md5=eb723b61539feef013de476e68b5c50a \
-    file://COPYING.LGPL;md5=a6f89e2100d9b6cdffcea4f398e37343 \
-"
-
-inherit gnomebase gettext itstool
-
-DEPENDS += "libxml2"
-
-SRC_URI[archive.sha256sum] = "c8cd64c093bbd8c5d5e47fd38864e90831b5f9cf7403530870206fa96636a4a5"
-
-RDEPENDS:${PN}:append:class-target = " libxml2 itstool"
-
-# ensure our native consumers are forced to inherit itstool
-RDEPENDS:${PN}:append:class-native = " libxml2-native"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-xsl_41.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-xsl_41.1.bb
new file mode 100644
index 0000000..3b23979
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-xsl_41.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "XSL stylesheets for the yelp help browser"
+LICENSE = "LGPLv2.1 & GPLv2 & BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=8ca13a5a6972ac1620a1e42a3dacd774 \
+    file://COPYING.GPL;md5=eb723b61539feef013de476e68b5c50a \
+    file://COPYING.LGPL;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+"
+
+inherit gnomebase gettext itstool
+
+DEPENDS += "libxml2"
+
+SRC_URI[archive.sha256sum] = "0d6db37ac2ef812483e0104703f1fa9cf032e9e0956a5f1c3afbcc23791f8a54"
+
+RDEPENDS:${PN}:append:class-target = " libxml2 itstool"
+
+# ensure our native consumers are forced to inherit itstool
+RDEPENDS:${PN}:append:class-native = " libxml2-native"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_41.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_41.1.bb
deleted file mode 100644
index 980b9a1..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_41.1.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Help browser for the GNOME desktop"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = " \
-    file://COPYING;md5=6e1b9cb787e76d7e6946887a65caa754 \
-"
-
-inherit gnomebase itstool autotools-brokensep gsettings gettext gtk-doc features_check mime-xdg
-
-# for webkitgtk
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.sha256sum] = "456a6415647bceeb0159b90b3553ff328728cf29a608fce08024232504ccb874"
-
-DEPENDS += " \
-    libxml2-native \
-    glib-2.0-native \
-    gtk+3 \
-    appstream-glib \
-    libxslt \
-    sqlite3 \
-    webkitgtk \
-    yelp-xsl \
-"
-
-do_configure:prepend() {
-    export ITSTOOL=${STAGING_BINDIR_NATIVE}/itstool
-}
-
-FILES:${PN} += " \
-    ${datadir}/metainfo \
-    ${datadir}/yelp-xsl \
-"
-
-RDEPENDS:${PN} += "yelp-xsl"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_41.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_41.2.bb
new file mode 100644
index 0000000..590ff2f
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_41.2.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Help browser for the GNOME desktop"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=6e1b9cb787e76d7e6946887a65caa754 \
+"
+
+inherit gnomebase itstool autotools-brokensep gsettings gettext gtk-doc features_check mime-xdg
+
+# for webkitgtk
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[archive.sha256sum] = "b00bf033f02dd79b6d3f255031c71df8d6ed38e552c870b8f391a374724c43c5"
+
+DEPENDS += " \
+    libxml2-native \
+    glib-2.0-native \
+    gtk+3 \
+    appstream-glib \
+    libxslt \
+    sqlite3 \
+    webkitgtk \
+    yelp-xsl \
+"
+PACKAGECONFIG ?= ""
+
+# Enable if soup3 is enabled in webkit recipe
+PACKAGECONFIG[soup3] = ",--with-webkit2gtk-4-0,"
+
+do_configure:prepend() {
+    export ITSTOOL=${STAGING_BINDIR_NATIVE}/itstool
+}
+
+FILES:${PN} += " \
+    ${datadir}/metainfo \
+    ${datadir}/yelp-xsl \
+"
+
+RDEPENDS:${PN} += "yelp-xsl"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity/0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity/0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch
new file mode 100644
index 0000000..e054ff7
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity/0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch
@@ -0,0 +1,28 @@
+From c8be0d5e7d17930d819635df6570fa5331a5dedd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Mon, 10 Jan 2022 20:18:00 +0100
+Subject: [PATCH] Harcode shebang to avoid pointing to build system's perl
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ src/gdialog.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/gdialog.in b/src/gdialog.in
+index 2fc4633..f891861 100755
+--- a/src/gdialog.in
++++ b/src/gdialog.in
+@@ -1,4 +1,4 @@
+-#!@PERL@
++#!/usr/bin/env perl
+ 
+ # gdialog -> zenity conversion wrapper
+ #
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.32.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.32.0.bb
deleted file mode 100644
index f5f1f99..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.32.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Display dialog boxes from the command line and shell scripts"
-SECTION = "x11/gnome"
-LICENSE = "GPLv2+"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
-
-inherit gnomebase itstool gnome-help features_check gettext
-
-DEPENDS = " \
-    yelp-tools-native \
-    gtk+3 \
-"
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.md5sum] = "ba2b2a13248773b4ec0fd323d95e6d5a"
-SRC_URI[archive.sha256sum] = "e786e733569c97372c3ef1776e71be7e7599ebe87e11e8ad67dcc2e63a82cd95"
-
-do_install:append() {
-    # Remove gdialog compatibility helper - we don't want to pull in perl
-    rm ${D}${bindir}/gdialog
-}
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.41.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.41.0.bb
new file mode 100644
index 0000000..ea1db57
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.41.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Display dialog boxes from the command line and shell scripts"
+SECTION = "x11/gnome"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase pkgconfig itstool gnome-help features_check gettext
+
+DEPENDS = " \
+    yelp-tools-native \
+    gtk+3 \
+"
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[archive.sha256sum] = "19b676c3510e22badfcc3204062d432ba537402f5e0ae26128c0d90c954037e1"
+SRC_URI += "file://0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch"
+
+PACKAGECONFIG[libnotify] = "-Dlibnotify=true,-Dlibnotify=false,libnotify"
+PACKAGECONFIG[webkitgtk] = "-Dwebkitgtk=true,-Dwebkitgtk=false,webkitgtk"
+
+PACKAGES =+ "${PN}-gdialog"
+FILES:${PN}-gdialog = "${bindir}/gdialog"
+RDEPENDS:${PN}-gdialog += "perl"
diff --git a/meta-openembedded/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb b/meta-openembedded/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
index ee528f7..d4df611 100644
--- a/meta-openembedded/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
+++ b/meta-openembedded/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
@@ -6,6 +6,10 @@
 
 PR = "r6"
 
+# clutter-1.0 gets debian renamed to libclutter-1.0-0
+# clutter-gtk-1.0 gets debian renamed to libclutter-gtk-1.0-0
+PACKAGE_ARCH = "${TUNE_PKGARCH}"
+
 inherit packagegroup features_check
 # rdepends on clutter-*
 REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0001-Fix-build-with-meson-0.60.patch b/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0001-Fix-build-with-meson-0.60.patch
new file mode 100644
index 0000000..98b483d
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0001-Fix-build-with-meson-0.60.patch
@@ -0,0 +1,29 @@
+From bedec82615ca6858c3e9494650a5bbf33c710ebb Mon Sep 17 00:00:00 2001
+From: Luca Boccassi <bluca@debian.org>
+Date: Sun, 31 Oct 2021 12:29:14 +0000
+Subject: [PATCH] Fix build with meson 0.60
+
+Positional parameters to merge_file() were never allowed and always
+ignored, so just drop it.
+See: https://github.com/mesonbuild/meson/issues/9441
+
+Fixes #97
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ data/meson.build | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index 4987937..ed0e2c4 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -29,7 +29,6 @@ configure_file(
+ policy = act_namespace.to_lower() + '.policy'
+ 
+ i18n.merge_file(
+-  policy,
+   input: policy + '.in',
+   output: policy,
+   po_dir: po_dir,
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 c2310fe..429192c 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
@@ -1,10 +1,7 @@
-From 2a1c7103839c20df5ca9ce2fa863535d802f8f3a Mon Sep 17 00:00:00 2001
+From ff0718174faf1167fb4765ebe4bd280bbe8d2ac6 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
 Date: Sun, 8 Dec 2019 23:42:00 +0100
 Subject: [PATCH] musl: Hack to fix configure
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
 
 ---
  meson.build | 10 ++++++++--
@@ -31,6 +28,3 @@
  endif
  
  # compiler flags
--- 
-2.21.0
-
diff --git a/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0002-musl-add-missing-fgetspent_r.patch b/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0002-musl-add-missing-fgetspent_r.patch
index 1416180..2b0924b 100644
--- a/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0002-musl-add-missing-fgetspent_r.patch
+++ b/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0002-musl-add-missing-fgetspent_r.patch
@@ -1,4 +1,4 @@
-From 820249ea8e38c568e6a36fbd9c852718c7665b56 Mon Sep 17 00:00:00 2001
+From 7401e682400df87f3258f795bb1d143f64a35a9f Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
 Date: Mon, 9 Dec 2019 00:12:08 +0100
 Subject: [PATCH] musl: add missing fgetspent_r
@@ -6,6 +6,7 @@
 Stolen from void-linux
 
 Upstream-Status: Inappropriate [musl-specific]
+
 ---
  src/daemon.c | 20 ++++++++++++++++++++
  1 file changed, 20 insertions(+)
@@ -41,6 +42,3 @@
  static struct passwd *
  entry_generator_fgetpwent (Daemon       *daemon,
                             GHashTable   *users,
--- 
-2.21.0
-
diff --git a/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice_0.6.55.bb b/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice_0.6.55.bb
index a19102e..26cc04b 100644
--- a/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice_0.6.55.bb
+++ b/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice_0.6.55.bb
@@ -12,7 +12,9 @@
 
 REQUIRED_DISTRO_FEATURES = "polkit"
 
-SRC_URI = "https://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz"
+SRC_URI = "https://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \
+           file://0001-Fix-build-with-meson-0.60.patch \
+           "
 SRC_URI:append:libc-musl = " \
     file://0001-musl-Hack-to-fix-build.patch \
     file://0002-musl-add-missing-fgetspent_r.patch \
diff --git a/meta-openembedded/meta-gnome/recipes-support/colord-gtk/colord-gtk_0.2.0.bb b/meta-openembedded/meta-gnome/recipes-support/colord-gtk/colord-gtk_0.2.0.bb
index d5fd6a1..2b09adf 100644
--- a/meta-openembedded/meta-gnome/recipes-support/colord-gtk/colord-gtk_0.2.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-support/colord-gtk/colord-gtk_0.2.0.bb
@@ -15,11 +15,9 @@
 SRC_URI[sha256sum] = "2a4cfae08bc69f000f40374934cd26f4ae86d286ce7de89f1622abc59644c717"
 
 EXTRA_OEMESON = "-Dman=false"
-
+GIR_MESON_OPTION = ""
 # gobject-introspection is mandatory and cannot be configured
 REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
 
 # colord
 REQUIRED_DISTRO_FEATURES += "polkit"
-
-UNKNOWN_CONFIGURE_WHITELIST:append = " introspection"
diff --git a/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.inc b/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.inc
index 810f369..01f05c1 100644
--- a/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.inc
+++ b/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.inc
@@ -10,7 +10,7 @@
 DEPENDS = "unicode-ucd"
 
 SRC_URI = " \
-    git://github.com/ibus/ibus.git \
+    git://github.com/ibus/ibus.git;branch=master;protocol=https \
     file://0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch \
 "
 SRCREV = "dd4cc5b028c35f9bb8fa9d3bdc8f26bcdfc43d40"
diff --git a/meta-openembedded/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb b/meta-openembedded/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb
index e64fcf1..971ad90 100644
--- a/meta-openembedded/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb
@@ -13,7 +13,7 @@
 
 SRCREV = "736ccef40d39603b8111c8a3a0bca0319bbafdc0"
 PV = "3.0+git${SRCPV}"
-SRC_URI = "git://github.com/engla/keybinder.git;branch=keybinder-3.0 \
+SRC_URI = "git://github.com/engla/keybinder.git;branch=keybinder-3.0;protocol=https \
 "
 
 RDEPENDS:${PN} = "gtk+"
diff --git a/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb b/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb
index b169afc..7f0706e 100644
--- a/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb
+++ b/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb
@@ -6,7 +6,7 @@
 DEPENDS:class-target = "${BPN}-native"
 
 SRC_URI = "\
-    git://github.com/snowballstem/snowball.git \
+    git://github.com/snowballstem/snowball.git;branch=master;protocol=https \
     file://0001-Build-so-lib.patch \
 "
 SRCREV = "4764395431c8f2a0b4fe18b816ab1fc966a45837"
diff --git a/meta-openembedded/meta-gnome/recipes-support/libwacom/libwacom_0.33.bb b/meta-openembedded/meta-gnome/recipes-support/libwacom/libwacom_0.33.bb
deleted file mode 100644
index 6fb3b82..0000000
--- a/meta-openembedded/meta-gnome/recipes-support/libwacom/libwacom_0.33.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "A tablet description library"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=40a21fffb367c82f39fd91a3b137c36e"
-
-DEPENDS = " \
-    libxml2-native \
-    libgudev \
-"
-
-inherit autotools pkgconfig
-
-SRC_URI = "git://github.com/linuxwacom/libwacom.git"
-SRCREV = "87cc710e21a6220e267dd08936bbec2932aa3658"
-S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-gnome/recipes-support/libwacom/libwacom_1.12.bb b/meta-openembedded/meta-gnome/recipes-support/libwacom/libwacom_1.12.bb
new file mode 100644
index 0000000..d35bbaa
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/libwacom/libwacom_1.12.bb
@@ -0,0 +1,24 @@
+SUMMARY = "A tablet description library"
+DESCRIPTION = "libwacom is a library to identify Wacom tablets and their model-specific features. \
+               It provides easy access to information such as 'is this a built-in on-screen tablet\', \
+               'what is the size of this model', etc."
+HOMEPAGE = "https://github.com/linuxwacom/libwacom"
+BUGTRACKER = "https://github.com/linuxwacom/libwacom/issues"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=40a21fffb367c82f39fd91a3b137c36e"
+
+SRC_URI = "git://github.com/linuxwacom/libwacom.git;branch=master;protocol=https"
+SRCREV = "942628be9faffa96ae1068833eccb00a1bfe4578"
+
+DEPENDS = " \
+    libxml2-native \
+    libgudev \
+"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON = " \
+    -Dtests=disabled \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-desktop.bb b/meta-openembedded/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-desktop.bb
index 95ef690..13394ca 100644
--- a/meta-openembedded/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-desktop.bb
+++ b/meta-openembedded/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-desktop.bb
@@ -2,6 +2,9 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
+# gnome-menus & gmime get debian renamed
+PACKAGE_ARCH = "${TUNE_PKGARCH}"
+
 inherit packagegroup features_check
 
 REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data"
@@ -13,10 +16,10 @@
     gnome-backgrounds \
     gnome-bluetooth \
     gnome-control-center \
-    gnome-desktop3 \
+    gnome-desktop \
     gnome-flashback \
     gnome-keyring \
-    gnome-menus3 \
+    gnome-menus \
     gnome-session \
     gnome-settings-daemon \
     gnome-shell \
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 76640b0..8ea34cf 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
@@ -9,18 +9,18 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Makefile.am b/Makefile.am
-index 4219f28..2a5ceac 100644
+index 779416a..67e2cc3 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -69,7 +69,7 @@ dist_pkgdata_DATA = usermode.ui
+@@ -82,7 +82,7 @@ endif
  userhelper_SOURCES = userhelper.c userhelper.h shvar.c shvar.h
  userhelper_CPPFLAGS = $(AM_CPPFLAGS) -DSYSCONFDIR='"$(sysconfdir)"'
- userhelper_LDADD = liblib.a $(LIBUSER_LIBS) $(GLIB_LIBS) $(PAM_LIBS) \
+ userhelper_LDADD = liblib.a $(LIBUSER_LIBS) $(GLIB_LIBS) $(PAM_LIBS) -lm \
 -	$(SELINUX_LIBS) $(EFENCE_LIBS)
 +	$(SELINUX_LIBS) $(EFENCE_LIBS) -lm
  
+ if GTK
  userinfo_SOURCES = userinfo.c
- userinfo_CPPFLAGS = $(AM_CPPFLAGS) $(PIXMAPDIR_CPPFLAGS) $(SBINDIR_CPPFLAGS) \
 -- 
-2.13.3
+2.31.1
 
diff --git a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.113.bb b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.113.bb
deleted file mode 100644
index a94440c..0000000
--- a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.113.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-DESCRIPTION = "The usermode contains the userhelper program, which can be used to allow configured \
-programs to be run with superuser privileges by ordinary users, and several \
-graphical tools for users: \
-* userinfo allows users to change their finger information. \
-* usermount lets users mount, unmount, and format filesystems. \
-* userpasswd allows users to change their passwords. \
-"
-HOMEPAGE = "https://pagure.io/usermode"
-LICENSE = "GPLv2+"
-DEPENDS = "libuser ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \
-           gtk+ desktop-file-utils-native \
-           startup-notification intltool-native \
-           util-linux \
-"
-
-SRC_URI = "https://releases.pagure.org/${BPN}/${BPN}-${PV}.tar.xz \
-           file://0001-fix-compile-failure-against-musl-C-library.patch \
-           file://0001-Makefile.am-Link-with-libm-for-powl-API.patch \
-           "
-SRC_URI[md5sum] = "eadfbff18578b645096b6fa61854b41d"
-SRC_URI[sha256sum] = "99fbfd248b411ed0e7c44d1957b0ecde699b5a968a4db5d37228e82e7b1ba092"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit features_check autotools gettext pkgconfig
-
-EXTRA_OEMAKE += "INSTALL='install -p'"
-
-REQUIRED_DISTRO_FEATURES = "x11 pam"
diff --git a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.114.bb b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.114.bb
new file mode 100644
index 0000000..478d8fa
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.114.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Tools for certain user account management tasks"
+DESCRIPTION = "The usermode contains the userhelper program, which can be used to allow configured \
+programs to be run with superuser privileges by ordinary users, and several \
+graphical tools for users: \
+* userinfo allows users to change their finger information. \
+* usermount lets users mount, unmount, and format filesystems. \
+* userpasswd allows users to change their passwords. \
+"
+HOMEPAGE = "https://pagure.io/usermode"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+DEPENDS = "libuser ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \
+           gtk+ desktop-file-utils-native \
+           startup-notification intltool-native \
+           util-linux \
+"
+
+SRC_URI = "https://releases.pagure.org/${BPN}/${BPN}-${PV}.tar.xz \
+           file://0001-fix-compile-failure-against-musl-C-library.patch \
+           file://0001-Makefile.am-Link-with-libm-for-powl-API.patch \
+           "
+SRC_URI[sha256sum] = "e7f58712b12175965b3a21522052863a061f3f1a888df3ffbe713b434f80254f"
+
+REQUIRED_DISTRO_FEATURES = "x11 pam"
+
+inherit features_check autotools gettext pkgconfig
+
+EXTRA_OEMAKE += "INSTALL='install -p'"
+
diff --git a/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb b/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb
index d45c62a..08d983e 100644
--- a/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb
+++ b/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 PV = "0.6+git${SRCPV}"
 S = "${WORKDIR}/git"
-SRC_URI = "git://github.com/kexecboot/kexecboot.git"
+SRC_URI = "git://github.com/kexecboot/kexecboot.git;branch=master;protocol=https"
 SRC_URI:append:libc-klibc = "\
     file://0001-kexecboot-Use-new-reboot-API-with-klibc.patch \
     file://0001-make-Add-compiler-includes-in-cflags.patch \
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-util.h-include-sys-reg.h-when-libc-glibc.patch b/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-util.h-include-sys-reg.h-when-libc-glibc.patch
index 3271403..aa2ea72 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-util.h-include-sys-reg.h-when-libc-glibc.patch
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-util.h-include-sys-reg.h-when-libc-glibc.patch
@@ -1,4 +1,4 @@
-From 06011ce55b1e892e863568a73d64eebc6389544f Mon Sep 17 00:00:00 2001
+From 9f7740c4c2fda64029c23674e9858ce8bd4367df Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Thu, 13 Jul 2017 17:14:05 -0700
 Subject: [PATCH] util.h: include <sys/reg.h> when libc != glibc
@@ -11,13 +11,13 @@
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
- install/util.h | 3 +++
+ src/install/util.h | 3 +++
  1 file changed, 3 insertions(+)
 
-diff --git a/install/util.h b/install/util.h
-index 2ad3254d..062626ec 100644
---- a/install/util.h
-+++ b/install/util.h
+diff --git a/src/install/util.h b/src/install/util.h
+index a6f9a184..82732913 100644
+--- a/src/install/util.h
++++ b/src/install/util.h
 @@ -36,6 +36,9 @@
  #include <sys/stat.h>
  #include <dirent.h>
@@ -29,5 +29,5 @@
  #include "macro.h"
  
 -- 
-2.13.2
+2.17.1
 
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_055.bb b/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_055.bb
new file mode 100644
index 0000000..91514b8
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_055.bb
@@ -0,0 +1,70 @@
+SUMMARY = "Initramfs generator using udev"
+HOMEPAGE = "https://dracut.wiki.kernel.org/index.php/Main_Page"
+DESCRIPTION = "Dracut is an event driven initramfs infrastructure. dracut (the tool) is used to create an initramfs image by copying tools and files from an installed system and combining it with the dracut framework, usually found in /usr/lib/dracut/modules.d."
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+PE = "1"
+
+SRCREV = "86bf2533d77762e823ad7a3e06a574522c1a90e3"
+SRC_URI = "git://git.kernel.org/pub/scm/boot/dracut/dracut.git;protocol=http;branch=master \
+           file://0001-util.h-include-sys-reg.h-when-libc-glibc.patch \
+           "
+
+DEPENDS += "kmod"
+DEPENDS:append:libc-musl = " fts"
+
+inherit bash-completion pkgconfig
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF = "--prefix=${prefix} \
+                --libdir=${prefix}/lib \
+                --datadir=${datadir} \
+                --sysconfdir=${sysconfdir} \
+                --sbindir=${sbindir} \
+                --disable-documentation \
+                --bindir=${bindir} \
+                --includedir=${includedir} \
+                --localstatedir=${localstatedir} \
+               "
+
+# RDEPEND on systemd optionally
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,,systemd"
+
+EXTRA_OEMAKE += 'libdir=${prefix}/lib LDLIBS="${LDLIBS}"'
+
+LDLIBS:append:libc-musl = " -lfts"
+
+do_configure() {
+    ./configure ${EXTRA_OECONF}
+}
+
+do_install() {
+    oe_runmake install DESTDIR=${D}
+    # Its Makefile uses cp -arx to install modules.d, so fix the owner
+    # to root:root
+    chown -R root:root ${D}/${prefix}/lib/dracut/modules.d
+}
+
+FILES:${PN} += "${prefix}/lib/kernel \
+                ${prefix}/lib/dracut \
+                ${systemd_unitdir} \
+               "
+FILES:${PN}-dbg += "${prefix}/lib/dracut/.debug"
+
+CONFFILES:${PN} += "${sysconfdir}/dracut.conf"
+
+RDEPENDS:${PN} = "findutils cpio util-linux-blkid util-linux-getopt util-linux bash ldd"
+
+# This could be optimized a bit, but let's avoid non-booting systems :)
+RRECOMMENDS:${PN} = " \
+                     kernel-modules \
+                     busybox \
+                     coreutils \
+                    "
+
+# CVE-2010-4176 affects only Fedora
+CVE_CHECK_WHITELIST += "CVE-2010-4176"
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb b/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb
deleted file mode 100644
index 73c2e09..0000000
--- a/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "Initramfs generator using udev"
-HOMEPAGE = "https://dracut.wiki.kernel.org/index.php/Main_Page"
-DESCRIPTION = "Dracut is an event driven initramfs infrastructure. dracut (the tool) is used to create an initramfs image by copying tools and files from an installed system and combining it with the dracut framework, usually found in /usr/lib/dracut/modules.d."
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-PE = "1"
-PV = "051"
-
-SRCREV = "e473057ae1de303340dec297c786c4a701cc61bd"
-SRC_URI = "git://git.kernel.org/pub/scm/boot/dracut/dracut.git;protocol=http \
-           file://0001-util.h-include-sys-reg.h-when-libc-glibc.patch \
-           "
-
-DEPENDS += "kmod"
-DEPENDS:append:libc-musl = " fts"
-
-inherit bash-completion pkgconfig
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF = "--prefix=${prefix} \
-                --libdir=${prefix}/lib \
-                --datadir=${datadir} \
-                --sysconfdir=${sysconfdir} \
-                --sbindir=${sbindir} \
-                --disable-documentation \
-                --bindir=${bindir} \
-                --includedir=${includedir} \
-                --localstatedir=${localstatedir} \
-               "
-
-# RDEPEND on systemd optionally
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,,systemd"
-
-EXTRA_OEMAKE += 'libdir=${prefix}/lib LDLIBS="${LDLIBS}"'
-
-LDLIBS:append:libc-musl = " -lfts"
-
-do_configure() {
-    ./configure ${EXTRA_OECONF}
-}
-
-do_install() {
-    oe_runmake install DESTDIR=${D}
-    # Its Makefile uses cp -arx to install modules.d, so fix the owner
-    # to root:root
-    chown -R root:root ${D}/${prefix}/lib/dracut/modules.d
-}
-
-FILES:${PN} += "${prefix}/lib/kernel \
-                ${prefix}/lib/dracut \
-                ${systemd_unitdir} \
-               "
-FILES:${PN}-dbg += "${prefix}/lib/dracut/.debug"
-
-CONFFILES:${PN} += "${sysconfdir}/dracut.conf"
-
-RDEPENDS:${PN} = "findutils cpio util-linux-blkid util-linux-getopt util-linux bash ldd"
-
-# This could be optimized a bit, but let's avoid non-booting systems :)
-RRECOMMENDS:${PN} = " \
-                     kernel-modules \
-                     busybox \
-                     coreutils \
-                    "
-
-# CVE-2010-4176 affects only Fedora
-CVE_CHECK_WHITELIST += "CVE-2010-4176"
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb b/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb
index c4d7410..b224a5c 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb
@@ -14,7 +14,7 @@
 
 S = "${WORKDIR}/git"
 SRCREV = "79c5cfa02c567efdc5bb18cdd584789e2e35aa23"
-SRC_URI = "git://github.com/rhboot/grubby.git;protocol=https; \
+SRC_URI = "git://github.com/rhboot/grubby.git;protocol=https;;branch=master \
            file://grubby-rename-grub2-editenv-to-grub-editenv.patch \
            file://run-ptest \
            file://0001-Add-another-variable-LIBS-to-provides-libraries-from.patch \
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_git.bb b/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_git.bb
index 38075e3..43fcc1a 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_git.bb
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_git.bb
@@ -14,7 +14,7 @@
 
 S = "${WORKDIR}/git"
 SRCREV = "a1d2ae93408c3408e672d7eba4550fdf27fb0201"
-SRC_URI = "git://github.com/rhboot/grubby.git;protocol=https; \
+SRC_URI = "git://github.com/rhboot/grubby.git;protocol=https;;branch=master \
            file://grubby-rename-grub2-editenv-to-grub-editenv.patch \
            file://run-ptest \
            file://0001-Add-another-variable-LIBS-to-provides-libraries-from.patch \
@@ -38,4 +38,8 @@
 RDEPENDS:${PN} += "bash"
 RDEPENDS:${PN}-ptest = "util-linux-getopt bash"
 
+inherit update-alternatives
+ALTERNATIVE_${PN} = "installkernel"
+ALTERNATIVE_LINK_NAME[installkernel] = "${sbindir}/installkernel"
+
 COMPATIBLE_HOST = '(x86_64.*|i.86.*)-(linux|freebsd.*)'
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb
index 4d944a1..e5446c1 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb
@@ -10,7 +10,7 @@
 inherit autotools pkgconfig klibc
 
 SRCREV = "64f61a9dc71b158c7084006cbce4ea23886f0b47"
-SRC_URI = "git://git.infradead.org/mtd-utils.git \
+SRC_URI = "git://git.infradead.org/mtd-utils.git;branch=master \
              file://0001-libmissing.h-fix-klibc-build-when-using-glibc-toolch.patch \
              file://0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch \
              file://0003-Makefile.am-only-build-ubi-utils.patch \
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb
index 393f04f..a588296 100644
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb
@@ -12,7 +12,7 @@
 
 inherit klibc autotools siteinfo
 
-SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git"
+SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git;branch=master"
 SRCREV = "5750980cdbbc33ef75bfba6660295b932376ce15"
 
 BUILD_PATCHES = "file://0001-force-static-build.patch \
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.2.3.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.2.3.bb
deleted file mode 100644
index 8f27ae2..0000000
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.2.3.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Resource discovery and announcement over SSDP"
-DESCRIPTION = "GSSDP implements resource discovery and announcement over SSDP (Simpe Service Discovery Protocol)."
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
-DEPENDS = "glib-2.0 libsoup-2.4"
-
-SRC_URI = "${GNOME_MIRROR}/${BPN}/1.2/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "ef3295a965c06ce0f683522391fbb910"
-SRC_URI[sha256sum] = "a263dcb6730e3b3dc4bbbff80cf3fab4cd364021981d419db6dd5a8e148aa7e8"
-
-GTKDOC_MESON_OPTION = 'gtk_doc'
-
-inherit meson pkgconfig gobject-introspection vala gtk-doc
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'sniffer', '', d)}"
-PACKAGECONFIG[sniffer] = "-Dsniffer=true,-Dsniffer=false,gtk+3,"
-
-PACKAGES =+ "gssdp-tools"
-
-FILES:gssdp-tools = "${bindir}/gssdp* ${datadir}/gssdp/*.glade"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.4.0.1.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.4.0.1.bb
new file mode 100644
index 0000000..97b0bbd
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.4.0.1.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Resource discovery and announcement over SSDP"
+DESCRIPTION = "GSSDP implements resource discovery and announcement over SSDP \
+               (Simpe Service Discovery Protocol)."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/gssdp/"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/gssdp/-/issues"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "${GNOME_MIRROR}/${BPN}/1.4/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "8676849d57fb822b8728856dbadebf3867f89ee47a0ec47a20045d011f431582"
+
+GTKDOC_MESON_OPTION = 'gtk_doc'
+
+DEPENDS = " \
+    glib-2.0 \
+    libsoup-2.4 \
+"
+
+inherit meson pkgconfig gobject-introspection vala gtk-doc
+
+SNIFFER = "${@bb.utils.contains("BBFILE_COLLECTIONS", "gnome-layer", "sniffer", "", d)}"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', "${SNIFFER}", "", d)}"
+
+PACKAGECONFIG[sniffer] = "-Dsniffer=true,-Dsniffer=false,gtk4,"
+
+PACKAGES =+ "gssdp-tools"
+
+FILES:gssdp-tools = "${bindir}/gssdp* ${datadir}/gssdp/*.glade"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc
deleted file mode 100644
index a06c98e..0000000
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Helpers for AV applications using UPnP"
-DESCRIPTION = "GUPnP-AV is a collection of helpers for building AV (audio/video) applications using GUPnP."
-LICENSE = "LGPLv2"
-DEPENDS = "gupnp"
-
-inherit autotools pkgconfig gobject-introspection vala
-
-# Copy vapigen.m4 so that it doesn't get removed by vala class
-# (normally this would be the right thing to do, but in gupnp-av the vapigen.m4 has only a custom macro)
-do_configure:prepend() {
-        cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true
-}
-
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.11.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.11.bb
deleted file mode 100644
index 1881656..0000000
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.11.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require gupnp-av.inc
-
-SRC_URI = "${GNOME_MIRROR}/${BPN}/0.12/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "f09e99ae20271b0a8cadce806098ae8b"
-SRC_URI[sha256sum] = "689dcf1492ab8991daea291365a32548a77d1a2294d85b33622b55cca9ce6fdc"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
-                    file://libgupnp-av/gupnp-av.h;beginline=1;endline=22;md5=2b47b7b5f799d2ebabe62b895e848820"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.0.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.0.bb
new file mode 100644
index 0000000..b253c54
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Helpers for AV applications using UPnP"
+DESCRIPTION = "GUPnP-AV is a collection of helpers for building AV (audio/video) applications using GUPnP."
+
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "gupnp"
+
+inherit meson pkgconfig gobject-introspection vala
+
+SRC_URI = "${GNOME_MIRROR}/${BPN}/0.14/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "20aed546fc882e78a3f186a0c8bce5c841cc3a44b7ea528298fbdc82596fb156"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna/move_vapigen.patch b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna/move_vapigen.patch
deleted file mode 100644
index 9bfc31b..0000000
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna/move_vapigen.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-OE-Core's vala class known one type of vapigen.m4 and deletes it since its
-not cross compile friendly, but this is a different case here where its not
-same vapigen.m4 just name is same and it tends to inherit vala bbclass so
-save it
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: gupnp-dlna-0.10.5/m4/vapigen-custom.m4
-===================================================================
---- /dev/null
-+++ gupnp-dlna-0.10.5/m4/vapigen-custom.m4
-@@ -0,0 +1,43 @@
-+
-+dnl vala.m4
-+dnl
-+dnl Copyright 2010 Marc-Andre Lureau
-+dnl Copyright 2011 Rodney Dawes <dobey.pwns@gmail.com>
-+dnl
-+dnl This library is free software; you can redistribute it and/or
-+dnl modify it under the terms of the GNU Lesser General Public
-+dnl License as published by the Free Software Foundation; either
-+dnl version 2.1 of the License, or (at your option) any later version.
-+dnl
-+dnl This library is distributed in the hope that it will be useful,
-+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+dnl Lesser General Public License for more details.
-+dnl
-+dnl You should have received a copy of the GNU Lesser General Public
-+dnl License along with this library; if not, write to the Free Software
-+dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
-+
-+dnl dropped everything but VALA_PROG_VAPIGEN - Jens Georg <mail@jensge.org>
-+
-+# Check whether the Vala API Generator exists in `PATH'. If it is found,
-+# the variable VAPIGEN is set. Optionally a minimum release number of the
-+# generator can be requested.
-+#
-+# VALA_PROG_VAPIGEN([MINIMUM-VERSION])
-+# ------------------------------------
-+AC_DEFUN([GUPNP_PROG_VAPIGEN],
-+[AC_PATH_PROG([VAPIGEN], [vapigen], [])
-+  AS_IF([test -z "$VAPIGEN"],
-+    [AC_MSG_WARN([No Vala API Generator found. You will not be able to generate .vapi files.])],
-+    [AS_IF([test -n "$1"],
-+        [AC_MSG_CHECKING([$VAPIGEN is at least version $1])
-+         am__vapigen_version=`$VAPIGEN --version | sed 's/Vala API Generator  *//'`
-+         AS_VERSION_COMPARE([$1], ["$am__vapigen_version"],
-+           [AC_MSG_RESULT([yes])],
-+           [AC_MSG_RESULT([yes])],
-+           [AC_MSG_RESULT([no])
-+            AC_MSG_WARN([Vala API Generator $1 not found.])
-+            VAPIGEN=""
-+           ])])])
-+])
-Index: gupnp-dlna-0.10.5/m4/vapigen.m4
-===================================================================
---- gupnp-dlna-0.10.5.orig/m4/vapigen.m4
-+++ /dev/null
-@@ -1,43 +0,0 @@
--
--dnl vala.m4
--dnl
--dnl Copyright 2010 Marc-Andre Lureau
--dnl Copyright 2011 Rodney Dawes <dobey.pwns@gmail.com>
--dnl
--dnl This library is free software; you can redistribute it and/or
--dnl modify it under the terms of the GNU Lesser General Public
--dnl License as published by the Free Software Foundation; either
--dnl version 2.1 of the License, or (at your option) any later version.
--dnl
--dnl This library is distributed in the hope that it will be useful,
--dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
--dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
--dnl Lesser General Public License for more details.
--dnl
--dnl You should have received a copy of the GNU Lesser General Public
--dnl License along with this library; if not, write to the Free Software
--dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
--
--dnl dropped everything but VALA_PROG_VAPIGEN - Jens Georg <mail@jensge.org>
--
--# Check whether the Vala API Generator exists in `PATH'. If it is found,
--# the variable VAPIGEN is set. Optionally a minimum release number of the
--# generator can be requested.
--#
--# VALA_PROG_VAPIGEN([MINIMUM-VERSION])
--# ------------------------------------
--AC_DEFUN([GUPNP_PROG_VAPIGEN],
--[AC_PATH_PROG([VAPIGEN], [vapigen], [])
--  AS_IF([test -z "$VAPIGEN"],
--    [AC_MSG_WARN([No Vala API Generator found. You will not be able to generate .vapi files.])],
--    [AS_IF([test -n "$1"],
--        [AC_MSG_CHECKING([$VAPIGEN is at least version $1])
--         am__vapigen_version=`$VAPIGEN --version | sed 's/Vala API Generator  *//'`
--         AS_VERSION_COMPARE([$1], ["$am__vapigen_version"],
--           [AC_MSG_RESULT([yes])],
--           [AC_MSG_RESULT([yes])],
--           [AC_MSG_RESULT([no])
--            AC_MSG_WARN([Vala API Generator $1 not found.])
--            VAPIGEN=""
--           ])])])
--])
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.10.5.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.10.5.bb
deleted file mode 100644
index 7cb9ff9..0000000
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.10.5.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Helpers for AV applications using DLNA"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
-                    file://libgupnp-dlna/gupnp-dlna-profile.h;beginline=1;endline=22;md5=1b85459f65cb1e73a885ca137aab6274"
-
-DEPENDS = "libxml2 glib-2.0"
-
-SRC_URI = "http://download.gnome.org/sources/${BPN}/0.10/${BPN}-${PV}.tar.xz \
-           file://move_vapigen.patch \
-"
-SRC_URI[md5sum] = "2d0dc1e4189d0243ac3838ece1e8fea0"
-SRC_URI[sha256sum] = "123e368227c11d5c17fc1aa76cbdaffa345355eb51d172cd39fc74a5b468ff6a"
-
-inherit autotools pkgconfig gobject-introspection vala
-
-PACKAGECONFIG ?= "gstreamer"
-PACKAGECONFIG[gstreamer] = "--enable-gstreamer-metadata-backend,--disable-gstreamer-metadata-backend,gstreamer1.0 gstreamer1.0-plugins-base"
-
-FILES:${PN} += "${datadir}/gupnp-dlna-2.0/dlna-profiles"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.12.0.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.12.0.bb
new file mode 100644
index 0000000..e1758c1
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.12.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Helpers for AV applications using DLNA"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+                    file://libgupnp-dlna/gupnp-dlna-profile.h;beginline=1;endline=22;md5=1b85459f65cb1e73a885ca137aab6274"
+
+DEPENDS = "libxml2 glib-2.0"
+
+SRC_URI = "http://download.gnome.org/sources/${BPN}/0.12/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "3d53b96f85bc5628d33e367ec9bf2adb38ef2b34d7ad0434a6ba0cf4ad9048e6"
+
+inherit meson pkgconfig gobject-introspection vala
+
+PACKAGECONFIG ?= "gstreamer"
+PACKAGECONFIG[gstreamer] = "-Dgstreamer_backend=enabled,-Dgstreamer_backend=disabled,gstreamer1.0 gstreamer1.0-plugins-base"
+
+FILES:${PN} += "${datadir}/gupnp-dlna-2.0/dlna-profiles"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd/0001-Swtich-to-new-GUPnP-API.patch b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd/0001-Swtich-to-new-GUPnP-API.patch
deleted file mode 100644
index ff5a6d9..0000000
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd/0001-Swtich-to-new-GUPnP-API.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 63531558a16ac2334a59f627b2fca5576dcfbb2e Mon Sep 17 00:00:00 2001
-From: Jens Georg <mail@jensge.org>
-Date: Sat, 1 Dec 2018 21:33:21 +0100
-Subject: [PATCH] Swtich to new GUPnP API
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gupnp-igd/commit/63531558a16ac2334a59f627b2fca5576dcfbb2e]
----
- configure.ac                    | 2 +-
- gupnp-igd-1.0-uninstalled.pc.in | 2 +-
- gupnp-igd-1.0.pc.in             | 2 +-
- libgupnp-igd/Makefile.am        | 2 +-
- tests/gtest/gupnp-simple-igd.c  | 6 ++++--
- 5 files changed, 8 insertions(+), 6 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index f03921f..aa7f0ca 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -11,7 +11,7 @@ AC_STDC_HEADERS
- AC_PROG_LIBTOOL
- AC_FUNC_MMAP
- 
--PKG_CHECK_MODULES(LIBGUPNP, glib-2.0 >= 2.26 gobject-2.0 >= 2.26 gssdp-1.0 gupnp-1.0 >= 0.18 gthread-2.0)
-+PKG_CHECK_MODULES(LIBGUPNP, glib-2.0 >= 2.26 gobject-2.0 >= 2.26 gssdp-1.2 gupnp-1.2 >= 0.18 gthread-2.0)
- 
- # glib-genmarshal
- GLIB_GENMARSHAL=`pkg-config --variable=glib_genmarshal glib-2.0`
-diff --git a/gupnp-igd-1.0-uninstalled.pc.in b/gupnp-igd-1.0-uninstalled.pc.in
-index 483956f..6db3bee 100644
---- a/gupnp-igd-1.0-uninstalled.pc.in
-+++ b/gupnp-igd-1.0-uninstalled.pc.in
-@@ -5,7 +5,7 @@ includedir=${pcfiledir}/
- 
- Name: gupnp-igd-1.0
- Description: GUPnP Simple IGD library
--Requires: gupnp-1.0
-+Requires: gupnp-1.2
- Version: @VERSION@
- Libs: ${libdir}/libgupnp-av-1.0.la
- Cflags: -I${includedir}
-diff --git a/gupnp-igd-1.0.pc.in b/gupnp-igd-1.0.pc.in
-index 6660d63..aa74ed3 100644
---- a/gupnp-igd-1.0.pc.in
-+++ b/gupnp-igd-1.0.pc.in
-@@ -5,7 +5,7 @@ includedir=@includedir@
- 
- Name: gupnp-igd-1.0
- Description: GUPnP Simple IGD library
--Requires: gupnp-1.0
-+Requires: gupnp-1.2
- Version: @VERSION@
- Libs: -L${libdir} -lgupnp-igd-1.0
- Cflags: -I${includedir}/gupnp-igd-1.0
-diff --git a/libgupnp-igd/Makefile.am b/libgupnp-igd/Makefile.am
-index fe020b5..e10d857 100644
---- a/libgupnp-igd/Makefile.am
-+++ b/libgupnp-igd/Makefile.am
-@@ -60,7 +60,7 @@ GUPnPIgd_1_0_gir_VERSION = 1.0
- GUPnPIgd_1_0_gir_LIBS = $(lib_LTLIBRARIES)
- GUPnPIgd_1_0_gir_FILES = $(libgupnp_igd_1_0_la_SOURCES) $(libgupnp_igd_inc_HEADERS)
- GUPnPIgd_1_0_gir_INCLUDES=GObject-2.0
--GUPnPIgd_1_0_gir_PACKAGES=gupnp-1.0
-+GUPnPIgd_1_0_gir_PACKAGES=gupnp-1.2
- GUPnPIgd_1_0_gir_CFLAGS=-I$(srcdir) -I$(top_srcdir)
- 
- if HAVE_INTROSPECTION
-diff --git a/tests/gtest/gupnp-simple-igd.c b/tests/gtest/gupnp-simple-igd.c
-index 9b32b2a..d051d13 100644
---- a/tests/gtest/gupnp-simple-igd.c
-+++ b/tests/gtest/gupnp-simple-igd.c
-@@ -273,13 +273,14 @@ run_gupnp_simple_igd_test (GMainContext *mainctx, GUPnPSimpleIgd *igd,
-   GUPnPDeviceInfo *subdev1;
-   GUPnPDeviceInfo *subdev2;
-   const gchar *xml_path = ".";
-+  GError *error = NULL;
- 
-   g_signal_connect (igd, "context-available",
-         G_CALLBACK (ignore_non_localhost), NULL);
- 
-   if (mainctx)
-     g_main_context_push_thread_default (mainctx);
--  context = gupnp_context_new (NULL, "lo", 0, NULL);
-+  context = gupnp_context_new ("lo", 0, NULL);
-   g_assert (context);
- 
-   if (g_getenv ("XML_PATH"))
-@@ -293,8 +294,9 @@ run_gupnp_simple_igd_test (GMainContext *mainctx, GUPnPSimpleIgd *igd,
-   gupnp_context_host_path (context, "WANPPPConnection.xml", "/WANPPPConnection.xml");
-   */
- 
--  dev = gupnp_root_device_new (context, "InternetGatewayDevice.xml", xml_path);
-+  dev = gupnp_root_device_new (context, "InternetGatewayDevice.xml", xml_path, &error);
-   g_assert (dev);
-+  g_assert (error == NULL);
- 
-   subdev1 = gupnp_device_info_get_device (GUPNP_DEVICE_INFO (dev),
-       "urn:schemas-upnp-org:device:WANDevice:1");
--- 
-2.25.1
-
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.5.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.5.bb
deleted file mode 100644
index 1a98ace..0000000
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.5.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Helpers for interacting with Internet Gateway Devices over UPnP"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
-                    file://libgupnp-igd/gupnp-simple-igd.c;beginline=1;endline=21;md5=aa292c0d9390463a6e1055dc5fc68e80"
-
-DEPENDS = "glib-2.0 gssdp gupnp sqlite3"
-
-SRC_URI = "http://download.gnome.org/sources/${BPN}/0.2/${BPN}-${PV}.tar.xz \
-           file://0001-Swtich-to-new-GUPnP-API.patch \
-          "
-SRC_URI[md5sum] = "d164e096d0f140bb1f5d9503727b424a"
-SRC_URI[sha256sum] = "8b4a1aa38bacbcac2c1755153147ead7ee9af7d4d1f544b6577cfc35e10e3b20"
-
-inherit autotools pkgconfig gtk-doc gobject-introspection
-
-EXTRA_OECONF = "--disable-python"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_1.2.0.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_1.2.0.bb
new file mode 100644
index 0000000..4bbfb6e
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_1.2.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Helpers for interacting with Internet Gateway Devices over UPnP"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+                    file://libgupnp-igd/gupnp-simple-igd.c;beginline=1;endline=21;md5=aa292c0d9390463a6e1055dc5fc68e80"
+
+DEPENDS = "glib-2.0 gssdp gupnp sqlite3"
+
+SRC_URI = "http://download.gnome.org/sources/${BPN}/1.2/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "4b5120098aa13edd27818ba9ee4d7fe961bf540bf50d056ff703c61545e02be1"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+inherit meson pkgconfig gtk-doc gobject-introspection
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.0.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.0.bb
deleted file mode 100644
index 20129c7..0000000
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Tools for GUPnP"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
-                    file://src/network-light/main.c;beginline=1;endline=21;md5=2c39b3a000495dabd4932f231c7efed8"
-DEPENDS = "gupnp gupnp-av gtk+3 glib-2.0-native intltool-native"
-RRECOMMENDS:${PN} = "adwaita-icon-theme"
-
-SRC_URI = "http://download.gnome.org/sources/${BPN}/0.10/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "8c66d4aca756478615761a26ed7c8dba"
-SRC_URI[sha256sum] = "41da7ff5ba8e2425adcb64ca5e04c81f57ca20ec6fdb84923939fdad42c6a18d"
-inherit features_check meson pkgconfig gettext gtk-icon-cache
-
-REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb
new file mode 100644
index 0000000..49f7d91
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Tools for GUPnP"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://src/network-light/main.c;beginline=1;endline=21;md5=2c39b3a000495dabd4932f231c7efed8"
+
+DEPENDS = "gupnp gupnp-av gtk+3 glib-2.0-native intltool-native"
+
+inherit features_check meson pkgconfig gettext gtk-icon-cache
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "http://download.gnome.org/sources/${BPN}/0.10/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "6de49ef4b375b8a164f74b766168b1184e0d28196b6b07a4f5341f08dfd85d6c"
+
+RRECOMMENDS:${PN} = "adwaita-icon-theme"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc
deleted file mode 100644
index a959751..0000000
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "UPnP framework"
-DESCRIPTION = "GUPnP is an elegant, object-oriented open source framework for creating UPnP  devices and control points, written in C using GObject and libsoup. The GUPnP API is intended to be easy to use, efficient and flexible. It provides the same set of features as libupnp, but shields the developer from most of UPnP's internals."
-LICENSE = "LGPLv2+"
-
-DEPENDS = "e2fsprogs gssdp libsoup-2.4 libxml2"
-
-inherit meson pkgconfig vala gobject-introspection
-
-FILES:${PN} = "${libdir}/*.so.*"
-FILES:${PN}-dev += "${bindir}/gupnp-binding-tool*"
-
-RDEPENDS:${PN}-dev = "python3 python3-xml"
-
-SYSROOT_PREPROCESS_FUNCS += "gupnp_sysroot_preprocess"
-
-gupnp_sysroot_preprocess () {
-    install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
-    install -m 755 ${D}${bindir}/gupnp-binding-tool* ${SYSROOT_DESTDIR}${bindir_crossscripts}/
-}
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.2.7.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.2.7.bb
deleted file mode 100644
index 7ad594f..0000000
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.2.7.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require gupnp.inc
-
-SRC_URI = "${GNOME_MIRROR}/${BPN}/1.2/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "8441276f1afd0176e6f595026a3a507eed1809abfa04026bad3f21622b3523ec"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
-                    file://libgupnp/gupnp.h;beginline=1;endline=20;md5=d78a69d9b6e63ee2dc72e7b674d97520"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb
new file mode 100644
index 0000000..708e384
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "UPnP framework"
+DESCRIPTION = "GUPnP is an elegant, object-oriented open source framework for creating UPnP  devices and control points, written in C using GObject and libsoup. The GUPnP API is intended to be easy to use, efficient and flexible. It provides the same set of features as libupnp, but shields the developer from most of UPnP's internals."
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "e2fsprogs gssdp libsoup-2.4 libxml2"
+
+inherit meson pkgconfig vala gobject-introspection
+
+SRC_URI = "${GNOME_MIRROR}/${BPN}/1.4/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "899196b5e66f03b8e25f046a7a658cd2a6851becb83f2d55345ab3281655dc0c"
+
+SYSROOT_PREPROCESS_FUNCS += "gupnp_sysroot_preprocess"
+
+gupnp_sysroot_preprocess () {
+    install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+    install -m 755 ${D}${bindir}/gupnp-binding-tool* ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+}
+
+FILES:${PN}-dev += "${bindir}/gupnp-binding-tool*"
+
+RDEPENDS:${PN}-dev = "python3 python3-xml"
diff --git a/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb b/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
index 82c2cbe..1930558 100644
--- a/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
+++ b/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
@@ -8,7 +8,7 @@
 LICENSE = "GPLv3+"
 LIC_FILES_CHKSUM = "file://LICENSE.md;md5=9cae5acac2e9ee2fc3aec01ac88ce5db"
 
-SRC_URI = "git://github.com/tvheadend/tvheadend.git \
+SRC_URI = "git://github.com/tvheadend/tvheadend.git;branch=master;protocol=https \
            file://0001-adjust-for-64bit-time_t.patch \
            "
 
@@ -23,6 +23,7 @@
                  --disable-ffmpeg_static \
                  --disable-libav \
                  --python=python3 \
+                 --disable-dvbscan \
                  "
 
 CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb
index 2741fe7..778dc19 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb
@@ -6,7 +6,7 @@
                     file://PATENTS;md5=e69ad12202bd20da3c76a5d3648cfa83 \
                    "
 
-SRC_URI = "git://aomedia.googlesource.com/aom;protocol=https"
+SRC_URI = "git://aomedia.googlesource.com/aom;protocol=https;branch=master"
 
 SRCREV = "307ce06ed82d93885ee8ed53e152c9268ac0d98d"
 
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb
index 1a51abc..343b9d7 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://COPYING.LGPLv2.1;md5=4fbd65380cdd255951079008b364516c"
 
 SRCREV = "b93deed1a231dd6dd7e39b9fe7d2abe05aa00158"
-SRC_URI = "git://github.com/foo86/dcadec.git;protocol=https \
+SRC_URI = "git://github.com/foo86/dcadec.git;protocol=https;branch=master \
            file://0001-define-BASELIB-make-variable.patch \
           "
 
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb
index 6cff4aa..5645de2 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb
@@ -7,7 +7,7 @@
 
 DEPENDS = "glib-2.0 dbus dleyna-core"
 
-SRC_URI = "git://github.com/01org/${BPN}.git"
+SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https"
 SRCREV = "de913c35e5c936e2d40ddbd276ee902cd802bd3a"
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb
index 8939cd3..647532d 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb
@@ -13,7 +13,7 @@
 
 PV .= "+git${SRCPV}"
 
-SRC_URI = "git://github.com/01org/${BPN}.git"
+SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https"
 SRCREV = "1c6853f5bc697dc0a8774fd70dbc915c4dbe7c5b"
 S = "${WORKDIR}/git"
 
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 8ce8003..9c4af81 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
@@ -11,7 +11,7 @@
 DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 dleyna-core"
 RDEPENDS:${PN} = "dleyna-connector-dbus"
 
-SRC_URI = "git://github.com/01org/${BPN}.git \
+SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https \
            file://0001-add-gupnp-1.2-API-support.patch \
           "
 SRCREV = "50fd1ec9d51328e7dea98874129dc8d6fe3ea1dd"
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 4d3d9f5..036d5c1 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
@@ -12,7 +12,7 @@
 RDEPENDS:${PN} = "dleyna-connector-dbus"
 
 PV .= "+git${SRCPV}"
-SRC_URI = "git://github.com/01org/${BPN}.git"
+SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https"
 SRCREV = "eb895ae82715e9889a948ffa810c0f828b4f4c76"
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb
index d791168..c499119 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb
@@ -11,7 +11,7 @@
 LICENSE_FLAGS = "commercial"
 LIC_FILES_CHKSUM = "file://NOTICE;md5=5985e1e12f4afa710d64ed7bfd291875"
 
-SRC_URI = "git://github.com/mstorsjo/fdk-aac.git;protocol=git;branch=master"
+SRC_URI = "git://github.com/mstorsjo/fdk-aac.git;protocol=https;branch=master"
 SRCREV = "d387d3b6ed79ff9a82c60440bdd86e6e5e324bec"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc b/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc
index 51101e8..978d05e 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc
@@ -4,9 +4,9 @@
 LICENSE = "LGPL-2.1"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594"
 
-SRC_URI = "git://github.com/FluidSynth/fluidsynth.git"
-SRCREV = "fc21d284dc7fcacdbc456f30228110a55e6e79f6"
+SRC_URI = "git://github.com/FluidSynth/fluidsynth.git;branch=master;protocol=https"
+SRCREV = "6c807bdd37748411801e93c48fcd5789d5a6a278"
 S = "${WORKDIR}/git"
-PV = "2.2.2"
+PV = "2.2.4"
 
 inherit cmake pkgconfig lib_package
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb
index f7d9c76..ec5548a 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://LICENSE.md;md5=25cdec9afe3f1f26212ead6bd2f7fac8"
 
-SRC_URI = "git://github.com/v00d00/gerbera.git;protocol=https \
+SRC_URI = "git://github.com/v00d00/gerbera.git;protocol=https;branch=master \
            file://0001-include-optional-header.patch \
           "
 
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb
index baf75aa..d986360 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb
@@ -17,7 +17,7 @@
 SRCREV_FORMAT = "base_common"
 SRC_URI = " \
     git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH};name=base \
-    git://gitlab.freedesktop.org/gstreamer/common.git;protocol=https;destsuffix=git/common;name=common; \
+    git://gitlab.freedesktop.org/gstreamer/common.git;protocol=https;destsuffix=git/common;name=common;;branch=master \
     "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb
index 5ea104d..d37ab98 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb
@@ -20,7 +20,9 @@
 inherit autotools pkgconfig gettext gtk-doc
 
 do_install:append() {
-        rm -fr ${D}${localstatedir}/run ${D}/run ${D}${bindir}/gst-client ${D}${bindir}/gstd-client
+        rmdir ${D}${localstatedir}/run/${BPN} ${D}${localstatedir}/run \
+              ${D}${localstatedir}/log/${BPN} ${D}${localstatedir}/log
+        rm -f ${D}${bindir}/gst-client ${D}${bindir}/gstd-client
         if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
                 install -d ${D}${sysconfdir}/tmpfiles.d
                 echo "d /run/${BPN} - - - -" \
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
index 04a2ac7..82028ec 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
@@ -9,10 +9,10 @@
 "
 
 SRC_URI = " \
-        git://linuxtv.org/libcamera.git;protocol=git \
+        git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master \
 "
 
-SRCREV = "193ca8c353a42334f65ddfc988a105a47bca3547"
+SRCREV = "acf8d028edda0a59b10e15962c2606137a4940af"
 
 PV = "202105+git${SRCPV}"
 
@@ -35,7 +35,8 @@
 }
 
 do_install:append() {
-    chrpath -d ${D}${libdir}/libcamera.so
+    chrpath -d ${D}${libdir}/libcamera.so.0.0.0
+    chrpath -d ${D}${libdir}/libcamera-base.so.0.0.0
 }
 
 addtask do_recalculate_ipa_signatures_package after do_package before do_packagedata
@@ -52,5 +53,10 @@
 }
 
 FILES:${PN}-dev = "${includedir} ${libdir}/pkgconfig"
-FILES:${PN} += " ${libdir}/libcamera.so"
+FILES:${PN}-dev += " ${libdir}/libcamera.so"
+FILES:${PN}-dev += " ${libdir}/libcamera.so.0"
+FILES:${PN} += " ${libdir}/libcamera.so.0.0.0"
+FILES:${PN}-dev += " ${libdir}/libcamera-base.so"
+FILES:${PN}-dev += " ${libdir}/libcamera-base.so.0"
+FILES:${PN} += " ${libdir}/libcamera-base.so.0.0.0"
 FILES:${PN}-gst = "${libdir}/gstreamer-1.0/libgstlibcamera.so"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb
index 26a4057..f9b8c7d 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb
@@ -5,7 +5,7 @@
 
 SRCREV = "bc6c0b164a87ce05e9925785cc6fb3f54c02b026"
 
-SRC_URI = "git://code.videolan.org/videolan/libdvbcsa.git;protocol=https \
+SRC_URI = "git://code.videolan.org/videolan/libdvbcsa.git;protocol=https;branch=master \
            file://libdvbcsa.pc \
 "
 
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb
index f060f1e..cb42d94 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb
@@ -6,7 +6,7 @@
 PV = "1.10+git${SRCPV}"
 
 SRCREV = "52e7d93c5947f72380521116c05d97c528863ba8"
-SRC_URI = "git://github.com/OpenELEC/libsquish.git;protocol=https"
+SRC_URI = "git://github.com/OpenELEC/libsquish.git;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libuvc/libuvc.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/libuvc/libuvc.bb
index b34479f..464b1dc 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/libuvc/libuvc.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libuvc/libuvc.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2f1963e0bb88c93463af750daf9ba0c2"
 DEPENDS = "libusb jpeg"
 
-SRC_URI = "git://github.com/libuvc/libuvc.git"
+SRC_URI = "git://github.com/libuvc/libuvc.git;branch=master;protocol=https"
 SRCREV = "ad6c72a4e390367f0d2be81aac00cfc0b6680d74"
 PV = "v0.0.6+git${SRCPV}"
 
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb
index 412a272..0cdc709 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb
@@ -20,7 +20,7 @@
 DEPENDS = "curl-native libpcre2"
 
 SRCREV = "adf655da0399530ac1b586590257847eb61be232"
-SRC_URI = "git://github.com/MycroftAI/mimic1.git \
+SRC_URI = "git://github.com/MycroftAI/mimic1.git;branch=master;protocol=https \
            file://0001-Fix-musl-compatibility.patch \
            file://0001-cmu_indic_lang-Make-cst_rx_not_indic-as-extern-decla.patch \
           "
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
index 0fcd77d..3564f6d 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
@@ -8,7 +8,7 @@
 PV = "5.1.0+git${SRCPV}"
 
 SRCREV = "8be45b12a86bc0e46f2f836c8ac88e1e98d82aee"
-SRC_URI = "git://github.com/metabrainz/libmusicbrainz.git"
+SRC_URI = "git://github.com/metabrainz/libmusicbrainz.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.19.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.19.bb
index 27bc1d2..6cff3c4 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.19.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.19.bb
@@ -6,7 +6,7 @@
 inherit meson
 
 SRC_URI = " \
-    git://github.com/MusicPlayerDaemon/libmpdclient \
+    git://github.com/MusicPlayerDaemon/libmpdclient;branch=master;protocol=https \
 "
 SRCREV = "27767959442ef390aabb16790494ba93fed962ef"
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpc_0.33.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpc_0.33.bb
index 32ec15d..09190a8 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpc_0.33.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpc_0.33.bb
@@ -7,7 +7,7 @@
 
 DEPENDS += "libmpdclient"
 
-SRC_URI = "git://github.com/MusicPlayerDaemon/mpc"
+SRC_URI = "git://github.com/MusicPlayerDaemon/mpc;branch=master;protocol=https"
 SRCREV = "ef16b280052ef0320cb80f79d74c8ce0324005ed"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.9.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.9.bb
index 9daa19c..4eac256 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.9.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.9.bb
@@ -18,7 +18,7 @@
 "
 
 SRC_URI = " \
-    git://github.com/MusicPlayerDaemon/MPD;branch=v0.22.x \
+    git://github.com/MusicPlayerDaemon/MPD;branch=v0.22.x;protocol=https \
     file://0001-include-utility-for-std-forward.patch \
     file://mpd.conf.in \
 "
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.45.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.45.bb
index aa1a234..b1ecbf1 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.45.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.45.bb
@@ -33,7 +33,7 @@
 PACKAGECONFIG[chat_screen] = "-Dchat_screen=true,-Dchat_screen=false"
 
 SRC_URI = " \
-    git://github.com/MusicPlayerDaemon/ncmpc \
+    git://github.com/MusicPlayerDaemon/ncmpc;branch=master;protocol=https \
 "
 SRCREV = "6780ec072f1d314f44ed77efdc58d03c6fbcc96b"
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
index 35c7989..aab43ea 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.md;md5=79aa497b11564d1d419ee889e7b498f6"
 
 SRCREV = "913f29d3d550637934f9abf43a097eb2c30d76fc"
-SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master \
+SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master;protocol=https \
            file://0001-Remove-python-venv.patch \
            file://0002-dev_setup.sh-Remove-the-git-dependency.patch \
            file://0003-dev_setup.sh-Remove-the-TERM-dependency.patch \
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb
index e380a6f..095ef93 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb
@@ -6,7 +6,7 @@
 inherit cmake pkgconfig
 
 SRCREV = "f5e0eef34db3a3ab94b61a2f99f84f078ba947e7"
-SRC_URI = "git://github.com/kcat/openal-soft \
+SRC_URI = "git://github.com/kcat/openal-soft;branch=master;protocol=https \
            file://0001-Use-BUILD_CC-to-compile-native-tools.patch \
            file://0002-makehrtf-Disable-Wstringop-truncation.patch \
            "
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
index 7e58139..cfe96bf 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
@@ -74,7 +74,7 @@
     tinyalsa \
     tremor \
     webrtc-audio-processing \
-    ${@bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 x86-64", "x265", "", d)} \
+    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 i686 x86-64", "x265", "", d), "", d)} \
 "
 RDEPENDS:packagegroup-meta-multimedia:remove:libc-musl = "projucer"
 RDEPENDS:packagegroup-meta-multimedia:remove:powerpc64le = "openh264"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
index 31b33c0..d6dfd87 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
@@ -11,7 +11,7 @@
 SRCREV = "14c11c0fe4d366bad4cfecdee97b6652ff9ed63d"
 PV = "0.2.7"
 
-SRC_URI = "git://github.com/PipeWire/pipewire"
+SRC_URI = "git://github.com/PipeWire/pipewire;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb
index 5f78be4..53ee2a8 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb
@@ -9,7 +9,7 @@
 
 SRCREV = "fa8646daeb19dfd12c181f7d19de708d623704c0"
 SRC_URI = " \
-    git://git.ffmpeg.org/rtmpdump \
+    git://git.ffmpeg.org/rtmpdump;branch=master \
     file://fix-racing-build-issue.patch"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb
index 0620968..68cf879 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://NOTICE;md5=dbdefe400d894b510a9de14813181d0b"
 
 SRCREV = "8449529c7e50f432091539ba7b438e79b04059b5"
-SRC_URI = "git://github.com/tinyalsa/tinyalsa \
+SRC_URI = "git://github.com/tinyalsa/tinyalsa;branch=master;protocol=https \
            file://0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch \
           "
 PV = "1.1.1+git${SRCPV}"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb
index 6abf608..f8ab1bf 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb
@@ -6,7 +6,7 @@
                     file://os.h;beginline=3;endline=14;md5=5c0af5e1bedef3ce8178c89f48cd6f1f"
 DEPENDS = "libogg"
 
-SRC_URI = "git://gitlab.xiph.org/xiph/tremor.git;protocol=https \
+SRC_URI = "git://gitlab.xiph.org/xiph/tremor.git;protocol=https;branch=master \
            file://obsolete_automake_macros.patch;striplevel=0 \
            file://tremor-arm-thumb2.patch \
 "
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb
index af25698..3846372 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb
@@ -96,8 +96,6 @@
 PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native"
 
 do_configure:append() {
-    sed -i -e s:'${top_builddir_slash}libtool':'${top_builddir_slash}'${TARGET_SYS}-libtool:g ${B}/doltlibtool
-
     # moc needs support: precreate build paths
     for qtpath in adapters components/epg components/playlist components/sout dialogs managers styles util/buttons; do
         mkdir -p "${B}/modules/gui/qt/$qtpath"
diff --git a/meta-openembedded/meta-multimedia/recipes-support/crossguid/crossguid_0.2.2.bb b/meta-openembedded/meta-multimedia/recipes-support/crossguid/crossguid_0.2.2.bb
index 7441716..bc54ea9 100644
--- a/meta-openembedded/meta-multimedia/recipes-support/crossguid/crossguid_0.2.2.bb
+++ b/meta-openembedded/meta-multimedia/recipes-support/crossguid/crossguid_0.2.2.bb
@@ -8,7 +8,7 @@
 DEPENDS += "util-linux"
 
 SRCREV = "5b45cdd9a56ca9da35ee0f8845cb4e2603d245dc"
-SRC_URI = "git://github.com/graeme-hill/crossguid;protocol=https"
+SRC_URI = "git://github.com/graeme-hill/crossguid;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb b/meta-openembedded/meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb
index f237e81..c345721 100644
--- a/meta-openembedded/meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb
+++ b/meta-openembedded/meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb
@@ -9,7 +9,7 @@
 
 S = "${WORKDIR}/git"
 SRCREV = "3b862e52e5c53ad1023dc6808effa4cb75572c4b"
-SRC_URI = "git://github.com/kirushyk/gst-instruments.git;protocol=https;"
+SRC_URI = "git://github.com/kirushyk/gst-instruments.git;protocol=https;;branch=master"
 
 FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*a"
 FILES:${PN} += "${libdir}/*"
diff --git a/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.5.bb b/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.5.bb
index 31fe43b..ffedb26 100644
--- a/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.5.bb
+++ b/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.5.bb
@@ -18,6 +18,6 @@
 
 # gobject-introspection is mandatory and cannot be configured
 REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST = "introspection"
+GIR_MESON_OPTION = ""
 
 EXTRA_OEMESON = "-Dimage_library=gdk-pixbuf"
diff --git a/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_2.3.0.bb b/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_2.3.0.bb
deleted file mode 100644
index 07b8101..0000000
--- a/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_2.3.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "library implementing Secure RTP (RFC 3711)"
-HOMEPAGE = "https://github.com/cisco/libsrtp"
-SECTION = "libs"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2909fcf6f09ffff8430463d91c08c4e1"
-
-S = "${WORKDIR}/git"
-SRCREV = "d02d21111e379c297e93a9033d7b653135f732ee"
-SRC_URI = "git://github.com/cisco/libsrtp.git"
-
-inherit autotools pkgconfig
-
-EXTRA_OEMAKE += "shared_library"
-
-do_configure:prepend() {
-    cp ${STAGING_DATADIR_NATIVE}/automake-*/ar-lib ${S}
-}
-
-ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_2.4.2.bb b/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_2.4.2.bb
new file mode 100644
index 0000000..b17e476
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_2.4.2.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Library implementing Secure RTP (RFC 3711)"
+DESCRIPTION = "This package provides an implementation of the Secure Real-time Transport Protocol (SRTP), \
+               the Universal Security Transform (UST), and a supporting cryptographic kernel. The SRTP API \
+               is documented in include/srtp.h, and the library is in libsrtp2.a (after compilation)."
+HOMEPAGE = "https://github.com/cisco/libsrtp"
+BUGTRACKER = "https://github.com/cisco/libsrtp/issues"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2909fcf6f09ffff8430463d91c08c4e1"
+
+SRC_URI = "git://github.com/cisco/libsrtp.git;branch=2_4_x_throttle;protocol=https"
+SRCREV = "90d05bf8980d16e4ac3f16c19b77e296c4bc207b"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[nss] = "-Dcrypto-library=nss,, nss,,, openssl"
+PACKAGECONFIG[openssl] = "-Dcrypto-library=openssl,, openssl,,, nss"
+
+inherit meson pkgconfig
diff --git a/meta-openembedded/meta-multimedia/recipes-support/srt/srt_1.4.2.bb b/meta-openembedded/meta-multimedia/recipes-support/srt/srt_1.4.2.bb
index 72b84ab..5b5c1f2 100644
--- a/meta-openembedded/meta-multimedia/recipes-support/srt/srt_1.4.2.bb
+++ b/meta-openembedded/meta-multimedia/recipes-support/srt/srt_1.4.2.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad"
 
 SRCREV = "50b7af06f3a0a456c172b4cb3aceafa8a5cc0036"
-SRC_URI = "git://github.com/Haivision/srt;protocol=https \
+SRC_URI = "git://github.com/Haivision/srt;protocol=https;branch=master \
            file://0001-don-t-install-srt-ffplay.patch \
            file://0001-core-Fix-build-with-GCC-11.-1806.patch \
            "
diff --git a/meta-openembedded/meta-networking/README b/meta-openembedded/meta-networking/README
index 1aea8a6..34e11a9 100644
--- a/meta-openembedded/meta-networking/README
+++ b/meta-openembedded/meta-networking/README
@@ -32,6 +32,9 @@
 
 Maintenance
 -----------
+Layer maintainers: Khem Raj <raj.khem@gmail.com>
+                   Armin Kuster <akuster808@gmail.com> (recipes-netkit)
+
 
 Please see the MAINTAINERS file for information on contacting the
 maintainers of this layer, as well as instructions for submitting patches. 
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt
index fc0400d..a89d9b3 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt
@@ -38,3 +38,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: OK
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt
index fc0400d..a89d9b3 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt
@@ -38,3 +38,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: OK
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt
index 759afe8..b329675 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt
@@ -39,3 +39,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: NO
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt
index 759afe8..b329675 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt
@@ -39,3 +39,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: NO
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt
index 759afe8..b329675 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt
@@ -39,3 +39,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: NO
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt
index 759afe8..b329675 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt
@@ -39,3 +39,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: NO
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt
index c989f27..e884498 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt
@@ -39,3 +39,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: NO
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt
index 215f574..e78761d 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt
@@ -38,3 +38,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: OK
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt
index 215f574..e78761d 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt
@@ -38,3 +38,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: OK
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt
index c989f27..e884498 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt
@@ -39,3 +39,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: NO
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt
index f107974..4d27261 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt
@@ -39,3 +39,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: NO
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt
index 7a443cc..b32d30b 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt
@@ -39,3 +39,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: OK
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64le.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64le.txt
index 7a443cc..b32d30b 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64le.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64le.txt
@@ -39,3 +39,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: OK
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-riscv32.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-riscv32.txt
index 759afe8..b329675 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-riscv32.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-riscv32.txt
@@ -39,3 +39,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: NO
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt
index fc0400d..a89d9b3 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt
@@ -38,3 +38,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: OK
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt
index fc0400d..a89d9b3 100644
--- a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt
@@ -38,3 +38,8 @@
 Checking whether blkcnt_t is 64 bit: OK
 Checking whether fcntl lock supports open file description locks: OK
 Checking for a 64-bit host to support lmdb: OK
+Checking errno of iconv for illegal multibyte sequence: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
+Checking value of GNUTLS_MAC_AES_CMAC_128: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: NO
+Checking whether fcntl supports setting/geting hints: NO
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb b/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
index c0556e7..777ba22 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
@@ -25,7 +25,7 @@
 
 PV .= "+git${SRCPV}"
 SRCREV = "79b1a9996c094ff593ae50bc4edc1f349f39dd6d"
-SRC_URI = "git://www.bearssl.org/git/BearSSL;protocol=https \
+SRC_URI = "git://www.bearssl.org/git/BearSSL;protocol=https;branch=master \
 	   file://0001-conf-Unix.mk-remove-fixed-command-definitions.patch \
 	   file://0002-test-test_x509.c-fix-potential-overflow-issue.patch \
            file://0001-make-Pass-LDFLAGS-when-building-shared-objects.patch \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.2.1.bb b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.2.1.bb
deleted file mode 100644
index 8e874ed..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.2.1.bb
+++ /dev/null
@@ -1,57 +0,0 @@
-DESCRIPTION = "Blueman is a GTK+ Bluetooth Manager"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = "bluez5 python3-pygobject python3-cython-native python3-setuptools-native intltool-native"
-
-inherit autotools gettext systemd gsettings pkgconfig python3native gtk-icon-cache
-
-SRC_URI = " \
-    https://github.com/blueman-project/blueman/releases/download/${PV}/blueman-${PV}.tar.xz \
-    file://0001-Search-for-cython3.patch \
-    file://0002-fix-fail-to-enable-bluetooth.patch \
-"
-SRC_URI[sha256sum] = "fcc10a2259bef2c5ac63f577010d76caed460d68810b7f70fecf056bf10a1a72"
-
-EXTRA_OECONF = " \
-    --disable-appindicator \
-    --disable-runtime-deps-check \
-    --disable-schemas-compile \
-"
-
-SYSTEMD_SERVICE:${PN} = "${BPN}-mechanism.service"
-SYSTEMD_AUTO_ENABLE:${PN} = "disable"
-
-RRECOMENDS_${PN} += "adwaita-icon-theme"
-RDEPENDS:${PN} += " \
-    python3-core \
-    python3-dbus \
-    packagegroup-tools-bluetooth \
-"
-
-PACKAGECONFIG ??= "thunar"
-PACKAGECONFIG[thunar] = "--enable-thunar-sendto,--disable-thunar-sendto"
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1 \
-    ${datadir}/Thunar \
-    ${systemd_user_unitdir} \
-    ${exec_prefix}${systemd_system_unitdir} \
-    ${PYTHON_SITEPACKAGES_DIR} \
-"
-
-FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/_blueman.a"
-
-# In code, path to python is a variable that is replaced with path to native version of it
-# during the configure stage, e.g ../recipe-sysroot-native/usr/bin/python3-native/python3.
-# Replace it with #!/usr/bin/env python3
-do_install:append() {
-    sed -i "1s/.*/#!\/usr\/bin\/env python3/" ${D}${prefix}/libexec/blueman-rfcomm-watcher \
-                                              ${D}${prefix}/libexec/blueman-mechanism \
-                                              ${D}${bindir}/blueman-adapters \
-                                              ${D}${bindir}/blueman-applet \
-                                              ${D}${bindir}/blueman-manager \
-                                              ${D}${bindir}/blueman-sendto \
-                                              ${D}${bindir}/blueman-services \
-                                              ${D}${bindir}/blueman-tray
-}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.2.3.bb b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.2.3.bb
new file mode 100644
index 0000000..df496c3
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.2.3.bb
@@ -0,0 +1,57 @@
+DESCRIPTION = "Blueman is a GTK+ Bluetooth Manager"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "bluez5 python3-pygobject python3-cython-native python3-setuptools-native intltool-native"
+
+inherit autotools gettext systemd gsettings pkgconfig python3native gtk-icon-cache
+
+SRC_URI = " \
+    https://github.com/blueman-project/blueman/releases/download/${PV}/blueman-${PV}.tar.xz \
+    file://0001-Search-for-cython3.patch \
+    file://0002-fix-fail-to-enable-bluetooth.patch \
+"
+SRC_URI[sha256sum] = "6edd791da6afd8f610ffb08d5138cfcf50e6257ad30efad686287f3a2be106e9"
+
+EXTRA_OECONF = " \
+    --disable-appindicator \
+    --disable-runtime-deps-check \
+    --disable-schemas-compile \
+"
+
+SYSTEMD_SERVICE:${PN} = "${BPN}-mechanism.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
+
+RRECOMENDS_${PN} += "adwaita-icon-theme"
+RDEPENDS:${PN} += " \
+    python3-core \
+    python3-dbus \
+    packagegroup-tools-bluetooth \
+"
+
+PACKAGECONFIG ??= "thunar"
+PACKAGECONFIG[thunar] = "--enable-thunar-sendto,--disable-thunar-sendto"
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1 \
+    ${datadir}/Thunar \
+    ${systemd_user_unitdir} \
+    ${exec_prefix}${systemd_system_unitdir} \
+    ${PYTHON_SITEPACKAGES_DIR} \
+"
+
+FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/_blueman.a"
+
+# In code, path to python is a variable that is replaced with path to native version of it
+# during the configure stage, e.g ../recipe-sysroot-native/usr/bin/python3-native/python3.
+# Replace it with #!/usr/bin/env python3
+do_install:append() {
+    sed -i "1s/.*/#!\/usr\/bin\/env python3/" ${D}${prefix}/libexec/blueman-rfcomm-watcher \
+                                              ${D}${prefix}/libexec/blueman-mechanism \
+                                              ${D}${bindir}/blueman-adapters \
+                                              ${D}${bindir}/blueman-applet \
+                                              ${D}${bindir}/blueman-manager \
+                                              ${D}${bindir}/blueman-sendto \
+                                              ${D}${bindir}/blueman-services \
+                                              ${D}${bindir}/blueman-tray
+}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/bluepy/bluepy_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/bluepy/bluepy_git.bb
index 887870f..a3b734c 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/bluepy/bluepy_git.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/bluepy/bluepy_git.bb
@@ -7,7 +7,7 @@
 SRCREV = "7ad565231a97c304c0eff45f2649cd005e69db09"
 PV = "1.3.0+git${SRCPV}"
 
-SRC_URI = "git://github.com/IanHarvey/bluepy.git;protocol=https \
+SRC_URI = "git://github.com/IanHarvey/bluepy.git;protocol=https;branch=master \
            file://0001-bluepy-Fix-username-issue-with-tarballs.patch \
           "
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni_1.0.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni_1.0.0.bb
index 0cf57cc..86b6577 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni_1.0.0.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni_1.0.0.bb
@@ -2,7 +2,7 @@
 HOMEPAGE = "https://github.com/mguentner/cannelloni"
 LICENSE = "GPLv2"
 
-SRC_URI = "git://github.com/mguentner/cannelloni.git;protocol=https"
+SRC_URI = "git://github.com/mguentner/cannelloni.git;protocol=https;branch=master"
 SRCREV = "0bd7e27db35bdef361226882ae04205504f7b2f4"
 
 LIC_FILES_CHKSUM = "file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb
index 2820f9f..e9c2056 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb
@@ -6,7 +6,7 @@
 
 SRCREV = "4b440a339979852d5a51fb11a822952712231c23"
 PV = "1.12+git${SRCPV}"
-SRC_URI = "git://github.com/civetweb/civetweb.git \
+SRC_URI = "git://github.com/civetweb/civetweb.git;branch=master;protocol=https \
            file://0001-Unittest-Link-librt-and-libm-using-l-option.patch \
            "
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.2p1.bb b/meta-openembedded/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.2p1.bb
index 9336475..c869268 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.2p1.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.2p1.bb
@@ -11,7 +11,7 @@
 DEPENDS = "openssl libcap zlib"
 
 SRC_URI = "https://ftp.isc.org/isc/dhcp/4.4.2-P1/dhcp-4.4.2-P1.tar.gz \
-           https://ftp.isc.org/isc/bind9/9.11.32/bind-9.11.32.tar.gz;name=bind;downloadfilename=bind.tar.gz;unpack=0 \
+           https://ftp.isc.org/isc/bind9/9.11.32/bind-9.11.32.tar.gz;name=bind;unpack=0 \
            file://default-relay \
            file://init-relay \
            file://dhcrelay.service \
@@ -43,23 +43,22 @@
                 --enable-libtool \
                 --with-randomdev=/dev/random \
                "
-EXTRA_OEMAKE += "LIBTOOL='${S}/${HOST_SYS}-libtool'"
 
 # Enable shared libs per dhcp README
 do_configure:prepend () {
     cp configure.ac+lt configure.ac
-    rm ${S}/bind/bind.tar.gz
-    mv ${WORKDIR}/bind.tar.gz ${S}/bind/
+    cp ${WORKDIR}/bind-9.11.32.tar.gz ${S}/bind/bind.tar.gz
 }
 
 do_compile:prepend() {
+    # Need to unpack this now instead of earlier as do_configure will delete the configure script
     rm -rf ${S}/bind/bind-9.11.32/
     tar xf ${S}/bind/bind.tar.gz -C ${S}/bind
     install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/bind/bind-9.11.32/
     install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/bind/bind-9.11.32/
     cp -fpR ${S}/m4/*.m4 ${S}/bind/bind-9.11.32/libtool.m4/
     rm -rf ${S}/bind/bind-9.11.32/libtool
-    install -m 0755 ${S}/${HOST_SYS}-libtool ${S}/bind/bind-9.11.32/
+    install -m 0755 ${S}/libtool ${S}/bind/bind-9.11.32/
 }
 
 do_install:append () {
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb
index 7558c31..8c74c39 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb
@@ -7,7 +7,7 @@
 
 SRCREV = "a7c6cf58a88a510cb00841351e75030ce78d36bf"
 
-SRC_URI = "git://github.com/tomaszmrugalski/dibbler \
+SRC_URI = "git://github.com/tomaszmrugalski/dibbler;branch=master;protocol=https \
            file://dibbler_fix_getSize_crash.patch \
            "
 PV = "1.0.1+1.0.2RC1+git${SRCREV}"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb
index 0d1c4ad..3e5cca6 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb
@@ -13,7 +13,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a"
 DEPENDS = "openssl-native openssl libidn libtool libpcap libtalloc"
 
-SRC_URI = "git://github.com/FreeRADIUS/freeradius-server.git;branch=v3.0.x;lfs=0; \
+SRC_URI = "git://github.com/FreeRADIUS/freeradius-server.git;branch=v3.0.x;lfs=0;;protocol=https \
     file://freeradius \
     file://volatiles.58_radiusd \
     file://freeradius-enble-user-in-conf.patch \
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
index df48782..9f2ff51 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.14.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.14.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0036c1b155f4e999f3e0a373490b5db9"
 
-SRC_URI = "git://github.com/dugsong/libdnet.git;nobranch=1"
+SRC_URI = "git://github.com/dugsong/libdnet.git;nobranch=1;protocol=https"
 SRCREV = "3e782472d2a58d5e1b94d04eda4a364c2d257600"
 
 UPSTREAM_CHECK_GITTAGREGEX = "libdnet-(?P<pver>\d+(\.\d+)+)"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.5.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.5.0.bb
index ab7167c..fa42be6 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.5.0.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.5.0.bb
@@ -15,7 +15,7 @@
 DEPENDS = "swig-native python3"
 SRCREV = "fcefc746fea286aeaa40d2f62240216da81c85e5"
 
-SRC_URI = "git://github.com/mz-automation/${BPN}.git;branch=v1.5 \
+SRC_URI = "git://github.com/mz-automation/${BPN}.git;branch=v1.5;protocol=https \
            file://0001-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch \
 "
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.12.bb b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.12.bb
index d2fa9cf..06d8211 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.12.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.12.bb
@@ -12,7 +12,7 @@
                     file://epl-v20;md5=d9fc0efef5228704e7f5b37f27192723 \
                     file://NOTICE.md;md5=a7a91b4754c6f7995020d1b49bc829c6 \
 "
-DEPENDS = "uthash cjson dlt-daemon"
+DEPENDS = "uthash cjson"
 
 SRC_URI = "http://mosquitto.org/files/source/mosquitto-${PV}.tar.gz \
            file://mosquitto.init \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.1.5.bb b/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.1.5.bb
index 750b252..3c2ab98 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.1.5.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.1.5.bb
@@ -9,7 +9,7 @@
 
 SECTION = "libs/networking"
 
-SRC_URI = "git://github.com/nanomsg/nanomsg.git;protocol=https"
+SRC_URI = "git://github.com/nanomsg/nanomsg.git;protocol=https;branch=master"
 SRCREV = "1749fd7b039165a91b8d556b4df18e3e632ad830"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nng_1.5.2.bb b/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nng_1.5.2.bb
index 1ffd891..ab29071 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nng_1.5.2.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nng_1.5.2.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a41e579bb4326c21c774f8e51e41d8a3"
 
-SRC_URI = "git://github.com/nanomsg/nng.git"
+SRC_URI = "git://github.com/nanomsg/nng.git;branch=master;protocol=https"
 SRCREV = "169221da8d53b2ca4fda76f894bee8505887a7c6"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nngpp_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nngpp_git.bb
index 176fa3b..b521540 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nngpp_git.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nngpp_git.bb
@@ -7,7 +7,7 @@
 SRCREV = "cc5d2641babab165d8a9943817c46d36c6dc17c2"
 PV = "1.3.0"
 
-SRC_URI = "git://github.com/cwzx/nngpp"
+SRC_URI = "git://github.com/cwzx/nngpp;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan_0.103.bb b/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan_0.103.bb
index 3527bce..81e20b9 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan_0.103.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan_0.103.bb
@@ -14,7 +14,7 @@
 SRCREV = "51c872d856db80281ea810ebc02e05c09d5310fa"
 PV = "0.103"
 
-SRC_URI = "git://github.com/CanonicalLtd/netplan.git;branch=main \
+SRC_URI = "git://github.com/CanonicalLtd/netplan.git;branch=main;protocol=https \
            file://0001-parse-nm-fix-32bit-format-string.patch \
            file://0001-Makefile-do-not-use-Werror.patch \
            "
@@ -40,6 +40,7 @@
 	install -m 644 ${S}/netplan/cli/commands/*.py ${D}${datadir}/netplan/netplan/cli/commands
 	install -m 755 ${S}/src/netplan.script ${D}${datadir}/netplan/
 	ln -srf ${D}${datadir}/netplan/netplan.script ${D}${sbindir}/netplan
+	sed -i -e "s#/lib/netplan/generate#${base_libdir}/netplan/generate#" ${D}${datadir}/netplan/netplan/cli/utils.py
 
 	install -d ${D}/${systemd_unitdir}/system ${D}${systemd_unitdir}/system-generators
 	ln -srf ${D}/${base_libdir}/netplan/generate ${D}${systemd_unitdir}/system-generators
@@ -49,6 +50,7 @@
 		install -m 755 ${S}/netplan-dbus ${D}${base_libdir}/netplan
 		install -m 644 ${S}/dbus/io.netplan.Netplan.conf ${D}${datadir}/dbus-1/system.d
 		install -m 644 ${S}/dbus/io.netplan.Netplan.service ${D}${datadir}/dbus-1/system-services
+		sed -i -e "s#^Exec=/lib/#Exec=${base_libdir}/#" ${D}${datadir}/dbus-1/system-services/io.netplan.Netplan.service
 	fi
 
 	install -m 755 ${S}/libnetplan.so.0.0 ${D}${libdir}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.32.12.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.32.12.bb
deleted file mode 100644
index c45452f..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.32.12.bb
+++ /dev/null
@@ -1,180 +0,0 @@
-SUMMARY = "NetworkManager"
-HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager"
-SECTION = "net/misc"
-
-LICENSE = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \
-"
-
-DEPENDS = " \
-    intltool-native \
-    libxslt-native \
-    libnl \
-    udev \
-    util-linux \
-    libndp \
-    libnewt \
-    curl \
-"
-
-inherit gnomebase gettext update-rc.d systemd vala gobject-introspection gtk-doc update-alternatives upstream-version-is-even
-
-SRC_URI = " \
-    ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
-    file://${BPN}.initd \
-    file://0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \
-    file://0002-Do-not-create-settings-settings-property-documentati.patch \
-    file://0003-install-firewalld-to-var-libdir-rather-than-hardcod-.patch \
-"
-SRC_URI[sha256sum] = "a8ab36a0a502fe73cd8e3bacb6585f97fbb94ebef79e276cdbaf11c33ff8f54b"
-
-S = "${WORKDIR}/NetworkManager-${PV}"
-
-EXTRA_OECONF = " \
-    --disable-ifcfg-rh \
-    --disable-more-warnings \
-    --with-iptables=${sbindir}/iptables \
-    --with-tests \
-    --with-nmtui=yes \
-    --with-udev-dir=${nonarch_base_libdir}/udev \
-    --with-dhclient=no \
-    --with-dhcpcd=no \
-    --with-dhcpcanon=no \
-    --with-netconfig=no \
-"
-
-# stolen from https://github.com/void-linux/void-packages/blob/master/srcpkgs/NetworkManager/template
-# avoids:
-# | ../NetworkManager-1.16.0/libnm-core/nm-json.c:106:50: error: 'RTLD_DEEPBIND' undeclared (first use in this function); did you mean 'RTLD_DEFAULT'?
-CFLAGS:append:libc-musl = " \
-    -DRTLD_DEEPBIND=0 \
-"
-
-do_compile:prepend() {
-    export GIR_EXTRA_LIBS_PATH="${B}/src/libnm-client-impl/.libs"
-}
-
-PACKAGECONFIG ??= "nss ifupdown dnsmasq nmcli \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'wifi polkit', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit', '', d)} \
-"
-
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'nmcli', 'bash-completion', '', d)}
-
-PACKAGECONFIG[systemd] = " \
-    --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd, \
-    --without-systemdsystemunitdir, \
-"
-PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit,polkit"
-PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5"
-# consolekit is not picked by shlibs, so add it to RDEPENDS too
-PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit"
-PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager"
-PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp"
-PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq"
-PACKAGECONFIG[nss] = "--with-crypto=nss,,nss"
-PACKAGECONFIG[resolvconf] = "--with-resolvconf=${base_sbindir}/resolvconf,,,resolvconf"
-PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls"
-PACKAGECONFIG[wifi] = "--with-wext=yes --enable-wifi=yes,--with-wext=no --enable-wifi=no,,wpa-supplicant"
-PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown"
-PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free"
-PACKAGECONFIG[cloud-setup] = "--with-nm-cloud-setup=yes,--with-nm-cloud-setup=no"
-PACKAGECONFIG[nmcli] = "--with-nmcli=yes,--with-nmcli=no,readline"
-PACKAGECONFIG[ovs] = "--enable-ovs,--disable-ovs,jansson"
-PACKAGECONFIG[audit] = "--with-libaudit,--without-libaudit,audit"
-PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux"
-
-PACKAGES =+ " \
-  ${PN}-nmcli ${PN}-nmcli-doc \
-  ${PN}-nmtui ${PN}-nmtui-doc \
-  ${PN}-adsl ${PN}-cloud-setup \
-"
-
-SYSTEMD_PACKAGES = "${PN} ${PN}-cloud-setup"
-
-FILES:${PN}-adsl = "${libdir}/NetworkManager/${PV}/libnm-device-plugin-adsl.so"
-
-FILES:${PN}-cloud-setup = " \
-    ${libexecdir}/nm-cloud-setup \
-    ${systemd_system_unitdir}/nm-cloud-setup.service \
-    ${systemd_system_unitdir}/nm-cloud-setup.timer \
-    ${libdir}/NetworkManager/dispatcher.d/90-nm-cloud-setup.sh \
-    ${libdir}/NetworkManager/dispatcher.d/no-wait.d/90-nm-cloud-setup.sh \
-"
-ALLOW_EMPTY:${PN}-cloud-setup = "1"
-SYSTEMD_SERVICE:${PN}-cloud-setup = "${@bb.utils.contains('PACKAGECONFIG', 'cloud-setup', 'nm-cloud-setup.service nm-cloud-setup.timer', '', d)}"
-
-FILES:${PN} += " \
-    ${libexecdir} \
-    ${libdir}/NetworkManager/${PV}/*.so \
-    ${libdir}/NetworkManager \
-    ${libdir}/firewalld/zones \
-    ${nonarch_libdir}/NetworkManager/conf.d \
-    ${nonarch_libdir}/NetworkManager/dispatcher.d \
-    ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-down.d \
-    ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-up.d \
-    ${nonarch_libdir}/NetworkManager/dispatcher.d/no-wait.d \
-    ${nonarch_libdir}/NetworkManager/VPN \
-    ${nonarch_libdir}/NetworkManager/system-connections \
-    ${datadir}/polkit-1 \
-    ${datadir}/dbus-1 \
-    ${nonarch_base_libdir}/udev/* \
-    ${systemd_system_unitdir} \
-    ${libdir}/pppd \
-"
-
-RRECOMMENDS:${PN} += "iptables \
-    ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
-"
-RCONFLICTS:${PN} = "connman"
-
-FILES:${PN}-dev += " \
-    ${datadir}/NetworkManager/gdb-cmd \
-    ${libdir}/pppd/*/*.la \
-    ${libdir}/NetworkManager/*.la \
-    ${libdir}/NetworkManager/${PV}/*.la \
-"
-
-FILES:${PN}-nmcli = " \
-    ${bindir}/nmcli \
-"
-
-FILES:${PN}-nmcli-doc = " \
-    ${mandir}/man1/nmcli* \
-"
-
-FILES:${PN}-nmtui = " \
-    ${bindir}/nmtui \
-    ${bindir}/nmtui-edit \
-    ${bindir}/nmtui-connect \
-    ${bindir}/nmtui-hostname \
-"
-
-FILES:${PN}-nmtui-doc = " \
-    ${mandir}/man1/nmtui* \
-"
-
-INITSCRIPT_NAME = "network-manager"
-SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'NetworkManager.service NetworkManager-dispatcher.service', '', d)}"
-
-ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE:${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','resolv-conf','',d)}"
-ALTERNATIVE_TARGET[resolv-conf] = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${sysconfdir}/resolv-conf.NetworkManager','',d)}"
-ALTERNATIVE_LINK_NAME[resolv-conf] = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${sysconfdir}/resolv.conf','',d)}"
-
-do_install:append() {
-    install -Dm 0755 ${WORKDIR}/${BPN}.initd ${D}${sysconfdir}/init.d/network-manager
-
-    rm -rf ${D}/run ${D}${localstatedir}/run
-
-    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-        # For read-only filesystem, do not create links during bootup
-        ln -sf ../run/NetworkManager/resolv.conf ${D}${sysconfdir}/resolv-conf.NetworkManager
-
-        # systemd v210 and newer do not need this rule file
-        rm ${D}/${nonarch_base_libdir}/udev/rules.d/84-nm-drivers.rules
-    fi
-}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.34.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.34.0.bb
new file mode 100644
index 0000000..ec15aea
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.34.0.bb
@@ -0,0 +1,180 @@
+SUMMARY = "NetworkManager"
+HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager"
+SECTION = "net/misc"
+
+LICENSE = "GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \
+"
+
+DEPENDS = " \
+    intltool-native \
+    libxslt-native \
+    libnl \
+    udev \
+    util-linux \
+    libndp \
+    libnewt \
+    curl \
+"
+
+inherit gnomebase gettext update-rc.d systemd vala gobject-introspection gtk-doc update-alternatives upstream-version-is-even
+
+SRC_URI = " \
+    ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
+    file://${BPN}.initd \
+    file://0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \
+    file://0002-Do-not-create-settings-settings-property-documentati.patch \
+    file://0003-install-firewalld-to-var-libdir-rather-than-hardcod-.patch \
+"
+SRC_URI[sha256sum] = "819795d0899076204f5672421a58f1b1d9e393536ee87bb844b911e6243bf0bd"
+
+S = "${WORKDIR}/NetworkManager-${PV}"
+
+EXTRA_OECONF = " \
+    --disable-ifcfg-rh \
+    --disable-more-warnings \
+    --with-iptables=${sbindir}/iptables \
+    --with-tests \
+    --with-nmtui=yes \
+    --with-udev-dir=${nonarch_base_libdir}/udev \
+    --with-dhclient=no \
+    --with-dhcpcd=no \
+    --with-dhcpcanon=no \
+    --with-netconfig=no \
+"
+
+# stolen from https://github.com/void-linux/void-packages/blob/master/srcpkgs/NetworkManager/template
+# avoids:
+# | ../NetworkManager-1.16.0/libnm-core/nm-json.c:106:50: error: 'RTLD_DEEPBIND' undeclared (first use in this function); did you mean 'RTLD_DEFAULT'?
+CFLAGS:append:libc-musl = " \
+    -DRTLD_DEEPBIND=0 \
+"
+
+do_compile:prepend() {
+    export GIR_EXTRA_LIBS_PATH="${B}/src/libnm-client-impl/.libs"
+}
+
+PACKAGECONFIG ??= "nss ifupdown dnsmasq nmcli \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'wifi polkit', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit', '', d)} \
+"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'nmcli', 'bash-completion', '', d)}
+
+PACKAGECONFIG[systemd] = " \
+    --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd, \
+    --without-systemdsystemunitdir, \
+"
+PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit,polkit"
+PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5"
+# consolekit is not picked by shlibs, so add it to RDEPENDS too
+PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit"
+PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager"
+PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp"
+PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq"
+PACKAGECONFIG[nss] = "--with-crypto=nss,,nss"
+PACKAGECONFIG[resolvconf] = "--with-resolvconf=${base_sbindir}/resolvconf,,,resolvconf"
+PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls"
+PACKAGECONFIG[wifi] = "--with-wext=yes --enable-wifi=yes,--with-wext=no --enable-wifi=no,,wpa-supplicant"
+PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown"
+PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free"
+PACKAGECONFIG[cloud-setup] = "--with-nm-cloud-setup=yes,--with-nm-cloud-setup=no"
+PACKAGECONFIG[nmcli] = "--with-nmcli=yes,--with-nmcli=no,readline"
+PACKAGECONFIG[ovs] = "--enable-ovs,--disable-ovs,jansson"
+PACKAGECONFIG[audit] = "--with-libaudit,--without-libaudit,audit"
+PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux"
+
+PACKAGES =+ " \
+  ${PN}-nmcli ${PN}-nmcli-doc \
+  ${PN}-nmtui ${PN}-nmtui-doc \
+  ${PN}-adsl ${PN}-cloud-setup \
+"
+
+SYSTEMD_PACKAGES = "${PN} ${PN}-cloud-setup"
+
+FILES:${PN}-adsl = "${libdir}/NetworkManager/${PV}/libnm-device-plugin-adsl.so"
+
+FILES:${PN}-cloud-setup = " \
+    ${libexecdir}/nm-cloud-setup \
+    ${systemd_system_unitdir}/nm-cloud-setup.service \
+    ${systemd_system_unitdir}/nm-cloud-setup.timer \
+    ${libdir}/NetworkManager/dispatcher.d/90-nm-cloud-setup.sh \
+    ${libdir}/NetworkManager/dispatcher.d/no-wait.d/90-nm-cloud-setup.sh \
+"
+ALLOW_EMPTY:${PN}-cloud-setup = "1"
+SYSTEMD_SERVICE:${PN}-cloud-setup = "${@bb.utils.contains('PACKAGECONFIG', 'cloud-setup', 'nm-cloud-setup.service nm-cloud-setup.timer', '', d)}"
+
+FILES:${PN} += " \
+    ${libexecdir} \
+    ${libdir}/NetworkManager/${PV}/*.so \
+    ${libdir}/NetworkManager \
+    ${libdir}/firewalld/zones \
+    ${nonarch_libdir}/NetworkManager/conf.d \
+    ${nonarch_libdir}/NetworkManager/dispatcher.d \
+    ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-down.d \
+    ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-up.d \
+    ${nonarch_libdir}/NetworkManager/dispatcher.d/no-wait.d \
+    ${nonarch_libdir}/NetworkManager/VPN \
+    ${nonarch_libdir}/NetworkManager/system-connections \
+    ${datadir}/polkit-1 \
+    ${datadir}/dbus-1 \
+    ${nonarch_base_libdir}/udev/* \
+    ${systemd_system_unitdir} \
+    ${libdir}/pppd \
+"
+
+RRECOMMENDS:${PN} += "iptables \
+    ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
+"
+RCONFLICTS:${PN} = "connman"
+
+FILES:${PN}-dev += " \
+    ${datadir}/NetworkManager/gdb-cmd \
+    ${libdir}/pppd/*/*.la \
+    ${libdir}/NetworkManager/*.la \
+    ${libdir}/NetworkManager/${PV}/*.la \
+"
+
+FILES:${PN}-nmcli = " \
+    ${bindir}/nmcli \
+"
+
+FILES:${PN}-nmcli-doc = " \
+    ${mandir}/man1/nmcli* \
+"
+
+FILES:${PN}-nmtui = " \
+    ${bindir}/nmtui \
+    ${bindir}/nmtui-edit \
+    ${bindir}/nmtui-connect \
+    ${bindir}/nmtui-hostname \
+"
+
+FILES:${PN}-nmtui-doc = " \
+    ${mandir}/man1/nmtui* \
+"
+
+INITSCRIPT_NAME = "network-manager"
+SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'NetworkManager.service NetworkManager-dispatcher.service', '', d)}"
+
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE:${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','resolv-conf','',d)}"
+ALTERNATIVE_TARGET[resolv-conf] = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${sysconfdir}/resolv-conf.NetworkManager','',d)}"
+ALTERNATIVE_LINK_NAME[resolv-conf] = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${sysconfdir}/resolv.conf','',d)}"
+
+do_install:append() {
+    install -Dm 0755 ${WORKDIR}/${BPN}.initd ${D}${sysconfdir}/init.d/network-manager
+
+    rm -rf ${D}/run ${D}${localstatedir}/run
+
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        # For read-only filesystem, do not create links during bootup
+        ln -sf ../run/NetworkManager/resolv.conf ${D}${sysconfdir}/resolv-conf.NetworkManager
+
+        # systemd v210 and newer do not need this rule file
+        rm ${D}/${nonarch_base_libdir}/udev/rules.d/84-nm-drivers.rules
+    fi
+}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_8.10.bb b/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_8.10.bb
index c66192a..7a61f74 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_8.10.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_8.10.bb
@@ -3,7 +3,7 @@
 LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=243b725d71bb5df4a1e5920b344b86ad"
 
 SRC_URI = " \
-    git://git.infradead.org/users/dwmw2/openconnect.git \
+    git://git.infradead.org/users/dwmw2/openconnect.git;branch=master \
 "
 SRCREV = "9d287e40c57233190a51b6434ba7345370e36f38"
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb
index ebe64cb..1dd50f6 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb
@@ -5,7 +5,7 @@
 
 DEPENDS = "libubox"
 
-SRC_URI = "git://git.openwrt.org/project/relayd.git \
+SRC_URI = "git://git.openwrt.org/project/relayd.git;branch=master \
            file://0001-rtnl_flush-Error-on-failed-write.patch \
 "
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
new file mode 100644
index 0000000..d497dd3
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,63 @@
+From a0547cacaddcb2fbef1fb9991c5ad522226e6817 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 24 Nov 2021 13:33:35 +0800
+Subject: [PATCH] Fix pyext_PATTERN for cross compilation
+
+The pyext_PATTERN will add native arch as suffix when cross compiling.
+For example, on qemuarm64, it is expanded to:
+pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
+which will result in the incorrect library name.
+
+root@qemuarm64:~# find /usr/lib -name \*cpython\*
+/usr/lib/pkgconfig/samba-policy.cpython-310-x86_64-linux-gnu.pc
+/usr/lib/libsamba-policy.cpython-310-x86-64-linux-gnu.so
+/usr/lib/samba/libsamba-python.cpython-310-x86-64-linux-gnu-samba4.so
+/usr/lib/samba/libsamba-net.cpython-310-x86-64-linux-gnu-samba4.so
+/usr/lib/libsamba-policy.cpython-310-x86-64-linux-gnu.so.0
+/usr/lib/libsamba-policy.cpython-310-x86-64-linux-gnu.so.0.0.1
+/usr/lib/python3.10/site-packages/samba/dsdb_dns.cpython-310-x86_64-linux-gnu.so
+/usr/lib/python3.10/site-packages/samba/dsdb.cpython-310-x86_64-linux-gnu.so
+/usr/lib/python3.10/site-packages/samba/xattr_tdb.cpython-310-x86_64-linux-gnu.so
+/usr/lib/python3.10/site-packages/samba/_ldb.cpython-310-x86_64-linux-gnu.so
+/usr/lib/python3.10/site-packages/samba/gensec.cpython-310-x86_64-linux-gnu.so
+[snip]
+
+Set pyext_PATTERN to '%s.so' to remove the suffix.
+After the patch:
+root@qemuarm64:~# find /usr/lib/
+/usr/lib/pkgconfig/samba-policy.pc
+/usr/lib/libsamba-policy.so
+/usr/lib/samba/libsamba-python-samba4.so
+/usr/lib/samba/libsamba-net-samba4.so
+/usr/lib/libsamba-policy.so.0
+/usr/lib/libsamba-policy.so.0.0.1
+/usr/lib/python3.10/site-packages/samba/dsdb_dns.so
+/usr/lib/python3.10/site-packages/samba/dsdb.so
+/usr/lib/python3.10/site-packages/samba/xattr_tdb.so
+/usr/lib/python3.10/site-packages/samba/_ldb.so
+/usr/lib/python3.10/site-packages/samba/gensec.so
+[snip]
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ third_party/waf/waflib/Tools/python.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
+index b1c8dd0..24faa31 100644
+--- a/third_party/waf/waflib/Tools/python.py
++++ b/third_party/waf/waflib/Tools/python.py
+@@ -328,7 +328,7 @@ def check_python_headers(conf, features='pyembed pyext'):
+ 	x = 'MACOSX_DEPLOYMENT_TARGET'
+ 	if dct[x]:
+ 		env[x] = conf.environ[x] = dct[x]
+-	env.pyext_PATTERN = '%s' + dct['SO'] # not a mistake
++	env.pyext_PATTERN = '%s.so'
+ 
+ 
+ 	# Try to get pythonX.Y-config
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0006-samba-defeat-iconv-test.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0006-samba-defeat-iconv-test.patch
deleted file mode 100644
index 00b692b..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0006-samba-defeat-iconv-test.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 59f7098bfbd63f9b3c19d7d297a8f90870a1893d Mon Sep 17 00:00:00 2001
-From: Joe Slater <joe.slater@windriver.com>
-Date: Mon, 31 May 2021 14:50:38 +0800
-Subject: [PATCH] samba: defeat iconv test
-
-A test was added when configuring samba which requires target code
-to be executed.  In general, this will not work, so we eliminate it.
-
-Upstream-Status: Pending
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
----
- lib/util/charset/wscript_configure | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/lib/util/charset/wscript_configure b/lib/util/charset/wscript_configure
-index 9c27fc6..845eb36 100644
---- a/lib/util/charset/wscript_configure
-+++ b/lib/util/charset/wscript_configure
-@@ -17,6 +17,8 @@ if (conf.CHECK_FUNCS_IN('iconv_open', 'iconv', checklibc=False, headers='iconv.h
-     
-     conf.DEFINE('HAVE_NATIVE_ICONV', 1)
- 
-+"""
-+[added for 4.7.0, but breaks cross-compilation]
- conf.CHECK_CODE('''
-                 uint8_t inbuf[2] = { 0x30, 0xdf };
-                 uint8_t outbuf[4] = { 0 };
-@@ -36,6 +38,7 @@ conf.CHECK_CODE('''
-                 msg='Checking errno of iconv for illegal multibyte sequence',
-                 lib='iconv',
-                 headers='errno.h iconv.h')
-+"""
- 
- if conf.CHECK_CFG(package='icu-i18n',
-                args='--cflags --libs',
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0007-wscript_configure_system_gnutls-disable-check-gnutls.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0007-wscript_configure_system_gnutls-disable-check-gnutls.patch
deleted file mode 100644
index 0f843af..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0007-wscript_configure_system_gnutls-disable-check-gnutls.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From a31a014c5d98501074fde1acb5c00162c927c361 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Mon, 31 May 2021 15:47:58 +0800
-Subject: [PATCH] wscript_configure_system_gnutls: disable check gnutls
- AES_CFB8/AES_CMAC
-
-The CHECK_VALUEOF() can not work on cross-compilation.
-
-Fixes configure error:
-  Checking value of GNUTLS_CIPHER_AES_128_CFB8: UNKNOWN
-  Checking value of GNUTLS_MAC_AES_CMAC_128: UNKNOWN
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- wscript_configure_system_gnutls | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/wscript_configure_system_gnutls b/wscript_configure_system_gnutls
-index 2ec217f..cd91b55 100644
---- a/wscript_configure_system_gnutls
-+++ b/wscript_configure_system_gnutls
-@@ -39,6 +39,7 @@ if (parse_version(gnutls_version) > parse_version('3.6.14')):
- if conf.CHECK_FUNCS_IN('gnutls_get_system_config_file', 'gnutls'):
-     conf.DEFINE('HAVE_GNUTLS_CRYPTO_POLICIES', 1)
- 
-+"""
- if conf.CHECK_VALUEOF('GNUTLS_CIPHER_AES_128_CFB8', headers='gnutls/gnutls.h'):
-     conf.DEFINE('HAVE_GNUTLS_AES_CFB8', 1)
- else:
-@@ -48,3 +49,4 @@ if conf.CHECK_VALUEOF('GNUTLS_MAC_AES_CMAC_128', headers='gnutls/gnutls.h'):
-     conf.DEFINE('HAVE_GNUTLS_AES_CMAC', 1)
- else:
-     Logs.warn('No gnutls support for AES CMAC')
-+"""
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0008-source3-wscript-disable-check-fcntl-F_OWNER_EX.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0008-source3-wscript-disable-check-fcntl-F_OWNER_EX.patch
deleted file mode 100644
index d4ceb5c..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0008-source3-wscript-disable-check-fcntl-F_OWNER_EX.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From ba6bc5459cf148dd617fd9cd38dd50c3a9b5d706 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Mon, 31 May 2021 15:50:48 +0800
-Subject: [PATCH] source3/wscript: disable check fcntl F_OWNER_EX
-
-It fails on cross-compilation.
-
-Fixes configure error:
-  Checking whether fcntl supports flags to send direct I/O availability signals: UNKNOWN
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- source3/wscript | 48 ------------------------------------------------
- 1 file changed, 48 deletions(-)
-
-diff --git a/source3/wscript b/source3/wscript
-index adc31ce..f6de0a6 100644
---- a/source3/wscript
-+++ b/source3/wscript
-@@ -1168,54 +1168,6 @@ err:
- #include <fcntl.h>
- #include <unistd.h>
- #include <stdlib.h>
--#include <sys/socket.h>
--
--int main(void)
--{
--        int sockfd, ret;
--        struct f_owner_ex owner, get_owner;
--
--        sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
--        if (sockfd == -1) {
--            goto err;
--        }
--
--        owner.type = F_OWNER_PID;
--        owner.pid = getpid();
--
--        ret = fcntl(sockfd, F_SETOWN_EX, &owner);
--        if (ret == -1) {
--            goto err;
--        }
--
--        ret = fcntl(sockfd, F_GETOWN_EX, &get_owner);
--        if (ret == -1) {
--            goto err;
--        }
--
--        if (get_owner.type != F_OWNER_PID) {
--            goto err;
--        }
--
--        if (get_owner.pid != getpid()) {
--            goto err;
--        }
--
--        close(sockfd);
--        exit(0);
--err:
--        close(sockfd);
--        exit(1);
--}''',
--            'HAVE_F_OWNER_EX',
--            addmain=False,
--            execute=True,
--            msg="Checking whether fcntl supports flags to send direct I/O availability signals")
--
--    conf.CHECK_CODE('''
--#include <fcntl.h>
--#include <unistd.h>
--#include <stdlib.h>
- #include <stdint.h>
- 
- #define DATA "hinttest.fcntl"
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0009-source3-wscript-disable-check-fcntl-RW_HINTS.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0009-source3-wscript-disable-check-fcntl-RW_HINTS.patch
deleted file mode 100644
index a0b7510..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0009-source3-wscript-disable-check-fcntl-RW_HINTS.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 9942bca2e276c7b4c7696a08594258430c4c5bb5 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Thu, 3 Jun 2021 09:39:56 +0800
-Subject: [PATCH] source3/wscript: disable check fcntl RW_HINTS
-
-It fails on cross-compilation for musl.
-
-Fixes configure error:
-  Checking whether fcntl supports setting/geting hints: UNKNOWN
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- source3/wscript | 61 -------------------------------------------------
- 1 file changed, 61 deletions(-)
-
-diff --git a/source3/wscript b/source3/wscript
-index f6de0a6..3e260c1 100644
---- a/source3/wscript
-+++ b/source3/wscript
-@@ -1164,67 +1164,6 @@ err:
-             execute=True,
-             msg="Checking whether fcntl lock supports open file description locks")
- 
--    conf.CHECK_CODE('''
--#include <fcntl.h>
--#include <unistd.h>
--#include <stdlib.h>
--#include <stdint.h>
--
--#define DATA "hinttest.fcntl"
--
--int main(void)
--{
--        uint64_t hint, get_hint;
--        int fd;
--
--        fd = open(DATA, O_RDONLY | O_CREAT | O_EXCL);
--        if (fd == -1) {
--            goto err;
--        }
--
--        hint = RWH_WRITE_LIFE_SHORT;
--        int ret = fcntl(fd, F_SET_RW_HINT, &hint);
--        if (ret == -1) {
--            goto err;
--        }
--
--        ret = fcntl(fd, F_GET_RW_HINT, &get_hint);
--        if (ret == -1) {
--            goto err;
--        }
--
--        if (get_hint != RWH_WRITE_LIFE_SHORT) {
--            goto err;
--        }
--
--        hint = RWH_WRITE_LIFE_EXTREME;
--        ret = fcntl(fd, F_SET_FILE_RW_HINT, &hint);
--        if (ret == -1) {
--            goto err;
--        }
--
--        ret = fcntl(fd, F_GET_FILE_RW_HINT, &get_hint);
--        if (ret == -1) {
--            goto err;
--        }
--
--        if (get_hint != RWH_WRITE_LIFE_EXTREME) {
--            goto err;
--        }
--
--        close(fd);
--        unlink(DATA);
--        exit(0);
--err:
--        close(fd);
--        unlink(DATA);
--        exit(1);
--}''',
--            'HAVE_RW_HINTS',
--            addmain=False,
--            execute=True,
--            msg="Checking whether fcntl supports setting/geting hints")
--
-     conf.CHECK_STRUCTURE_MEMBER('struct stat', 'st_mtim.tv_nsec',
-                                 define='HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC') # Linux, Solaris
-     conf.CHECK_STRUCTURE_MEMBER('struct stat', 'st_mtimensec',
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.14.11.bb b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.14.11.bb
new file mode 100644
index 0000000..0e12589
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.14.11.bb
@@ -0,0 +1,342 @@
+HOMEPAGE = "https://www.samba.org/"
+SECTION = "console/network"
+
+LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://${COREBASE}/meta/files/common-licenses/LGPL-3.0-or-later;md5=c51d3eef3be114124d11349ca0d7e117 \
+                    file://${COREBASE}/meta/files/common-licenses/GPL-2.0-or-later;md5=fed54355545ffd980b814dab4a3b312c"
+
+SAMBA_MIRROR = "http://samba.org/samba/ftp"
+MIRRORS += "\
+${SAMBA_MIRROR}    http://mirror.internode.on.net/pub/samba \n \
+${SAMBA_MIRROR}    http://www.mirrorservice.org/sites/ftp.samba.org \n \
+"
+
+SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
+           file://smb.conf \
+           file://volatiles.03_samba \
+           file://0001-Don-t-check-xsltproc-manpages.patch \
+           file://0002-do-not-import-target-module-while-cross-compile.patch \
+           file://0003-Add-config-option-without-valgrind.patch \
+           file://0004-Add-options-to-configure-the-use-of-libbsd.patch \
+           file://0005-samba-build-dnsserver_common-code.patch \
+           file://0001-Fix-pyext_PATTERN-for-cross-compilation.patch \
+           "
+
+SRC_URI:append:libc-musl = " \
+           file://netdb_defines.patch \
+           file://samba-pam.patch \
+           file://samba-4.3.9-remove-getpwent_r.patch \
+           file://cmocka-uintptr_t.patch \
+           file://samba-fix-musl-lib-without-innetgr.patch \
+           "
+
+SRC_URI[sha256sum] = "3d9ebbf3280c7cf5eac1b15aeff8857b31151abaec4d2987be015a66c2945d98"
+
+UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.14(\.\d+)+).tar.gz"
+
+inherit systemd waf-samba cpan-base perlnative update-rc.d perl-version pkgconfig
+
+# CVE-2011-2411 is valnerble only on HP NonStop Servers.
+CVE_CHECK_WHITELIST += "CVE-2011-2411" 
+
+# remove default added RDEPENDS on perl
+RDEPENDS:${PN}:remove = "perl"
+
+DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb libaio libpam libtasn1 jansson libparse-yapp-perl-native gnutls"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+DEPENDS:append:libc-musl = " libtirpc"
+CFLAGS:append:libc-musl = " -I${STAGING_INCDIR}/tirpc"
+LDFLAGS:append:libc-musl = " -ltirpc"
+
+COMPATIBLE_HOST:riscv32 = "null"
+
+INITSCRIPT_NAME = "samba"
+INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ."
+
+SYSTEMD_PACKAGES = "${PN}-base ${PN}-ad-dc winbind"
+SYSTEMD_SERVICE:${PN}-base = "nmb.service smb.service"
+SYSTEMD_SERVICE:${PN}-ad-dc = "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'samba.service', '', d)}"
+SYSTEMD_SERVICE:winbind = "winbind.service"
+
+# There are prerequisite settings to enable ad-dc, so disable the service by default.
+# Reference:
+# https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
+SYSTEMD_AUTO_ENABLE:${PN}-ad-dc = "disable"
+
+#cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
+#to cross Popen
+export WAF_NO_PREFORK="yes"
+
+# Use krb5.  Build active domain controller.
+#
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd zeroconf', d)} \
+                   acl cups ad-dc ldap mitkrb5 \
+"
+
+RDEPENDS:${PN}-ctdb-tests += "bash util-linux-getopt"
+
+PACKAGECONFIG[acl] = "--with-acl-support,--without-acl-support,acl"
+PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin"
+PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups"
+PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
+PACKAGECONFIG[sasl] = ",,cyrus-sasl"
+PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd"
+PACKAGECONFIG[dmapi] = "--with-dmapi,--without-dmapi,dmapi"
+PACKAGECONFIG[zeroconf] = "--enable-avahi,--disable-avahi,avahi"
+PACKAGECONFIG[valgrind] = ",--without-valgrind,valgrind,"
+PACKAGECONFIG[lttng] = "--with-lttng, --without-lttng,lttng-ust"
+PACKAGECONFIG[archive] = "--with-libarchive, --without-libarchive, libarchive"
+PACKAGECONFIG[libunwind] = ", , libunwind"
+PACKAGECONFIG[gpgme] = ",--without-gpgme,,"
+PACKAGECONFIG[lmdb] = ",--without-ldb-lmdb,lmdb,"
+PACKAGECONFIG[libbsd] = "--with-libbsd, --without-libbsd, libbsd"
+PACKAGECONFIG[ad-dc] = "--with-experimental-mit-ad-dc,--without-ad-dc,python3-markdown python3-dnspython,"
+PACKAGECONFIG[mitkrb5] = "--with-system-mitkrb5 --with-system-mitkdc=/usr/sbin/krb5kdc,,krb5,"
+
+SAMBA4_IDMAP_MODULES="idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2"
+SAMBA4_PDB_MODULES="pdb_tdbsam,${@bb.utils.contains('PACKAGECONFIG', 'ldap', 'pdb_ldap,', '', d)}pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4"
+SAMBA4_AUTH_MODULES="auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4"
+SAMBA4_MODULES="${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MODULES}"
+
+# These libraries are supposed to replace others supplied by packages, but decorate the names of
+# .so files so there will not be a conflict.  This is not done consistantly, so be very careful
+# when adding to this list.
+#
+SAMBA4_LIBS="heimdal,cmocka,NONE"
+
+EXTRA_OECONF += "--enable-fhs \
+                 --with-piddir=/run \
+                 --with-sockets-dir=/run/samba \
+                 --with-modulesdir=${libdir}/samba \
+                 --with-lockdir=${localstatedir}/lib/samba \
+                 --with-cachedir=${localstatedir}/lib/samba \
+                 --disable-rpath-install \
+                 --with-shared-modules=${SAMBA4_MODULES} \
+                 --bundled-libraries=${SAMBA4_LIBS} \
+                 ${@oe.utils.conditional('TARGET_ARCH', 'x86_64', '', '--disable-glusterfs', d)} \
+                 --with-cluster-support \
+                 --with-profiling-data \
+                 --with-libiconv=${STAGING_DIR_HOST}${prefix} \
+                 --with-pam --with-pammodulesdir=${base_libdir}/security \
+                "
+
+LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
+do_configure:append () {
+    cd ${S}/pidl/
+    perl Makefile.PL PREFIX=${prefix}
+    sed -e 's,VENDORPREFIX)/lib/perl,VENDORPREFIX)/${baselib}/perl,g' \
+        -e 's,PERLPREFIX)/lib/perl,PERLPREFIX)/${baselib}/perl,g' -i Makefile
+
+}
+
+do_compile:append () {
+    oe_runmake -C ${S}/pidl
+}
+
+do_install:append() {
+    for section in 1 5 7; do
+        install -d ${D}${mandir}/man$section
+        install -m 0644 ctdb/doc/*.$section ${D}${mandir}/man$section
+    done
+    for section in 1 5 7 8; do
+        install -d ${D}${mandir}/man$section
+        install -m 0644 docs/manpages/*.$section ${D}${mandir}/man$section
+    done
+
+    install -d ${D}${systemd_system_unitdir}
+    install -m 0644 ${S}/bin/default/packaging/systemd/*.service ${D}${systemd_system_unitdir}/
+    sed -e 's,\(ExecReload=\).*\(/kill\),\1${base_bindir}\2,' \
+        -e 's,/etc/sysconfig/samba,${sysconfdir}/default/samba,' \
+        -i ${D}${systemd_system_unitdir}/*.service
+
+    if [ "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'yes', 'no', d)}" = "no" ]; then
+        rm -f ${D}${systemd_system_unitdir}/samba.service
+    fi
+
+    install -d ${D}${sysconfdir}/tmpfiles.d
+    install -m644 packaging/systemd/samba.conf.tmp ${D}${sysconfdir}/tmpfiles.d/samba.conf
+    echo "d ${localstatedir}/log/samba 0755 root root -" \
+        >> ${D}${sysconfdir}/tmpfiles.d/samba.conf
+    install -d ${D}${sysconfdir}/init.d
+    install -m 0755 packaging/sysv/samba.init ${D}${sysconfdir}/init.d/samba
+    sed -e 's,/opt/samba/bin,${sbindir},g' \
+        -e 's,/opt/samba/smb.conf,${sysconfdir}/samba/smb.conf,g' \
+        -e 's,/opt/samba/log,${localstatedir}/log/samba,g' \
+        -e 's,/etc/init.d/samba.server,${sysconfdir}/init.d/samba,g' \
+        -e 's,/usr/bin,${base_bindir},g' \
+        -i ${D}${sysconfdir}/init.d/samba
+
+    install -d ${D}${sysconfdir}/samba
+    echo "127.0.0.1 localhost" > ${D}${sysconfdir}/samba/lmhosts
+    install -m644 ${WORKDIR}/smb.conf ${D}${sysconfdir}/samba/smb.conf
+    install -D -m 644 ${WORKDIR}/volatiles.03_samba ${D}${sysconfdir}/default/volatiles/03_samba
+
+    install -d ${D}${sysconfdir}/default
+    install -m644 packaging/systemd/samba.sysconfig ${D}${sysconfdir}/default/samba
+
+    # the items are from ctdb/tests/run_tests.sh
+    for d in cunit eventd eventscripts onnode shellcheck takeover takeover_helper tool; do
+        testdir=${D}${datadir}/ctdb-tests/UNIT/$d
+        install -d $testdir
+        cp ${S}/ctdb/tests/UNIT/$d/*.sh $testdir
+        cp -r ${S}/ctdb/tests/UNIT/$d/scripts ${S}/ctdb/tests/UNIT/$d/stubs $testdir || true
+    done
+
+    # fix file-rdeps qa warning
+    if [ -f ${D}${bindir}/onnode ]; then
+        sed -i 's:\(#!/bin/\)bash:\1sh:' ${D}${bindir}/onnode
+    fi
+
+    chmod 0750 ${D}${sysconfdir}/sudoers.d || true
+    rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log
+    
+    for f in samba-gpupdate samba_upgradedns samba_spnupdate samba_kcc samba_dnsupdate samba_downgrade_db; do
+        if [ -f "${D}${sbindir}/$f" ]; then
+            sed -i -e 's,${PYTHON},/usr/bin/env python3,g' ${D}${sbindir}/$f
+        fi
+    done
+    if [ -f "${D}${bindir}/samba-tool" ]; then
+        sed -i -e 's,${PYTHON},/usr/bin/env python3,g' ${D}${bindir}/samba-tool
+    fi
+
+    oe_runmake -C ${S}/pidl DESTDIR=${D} install_vendor
+    find ${D}${libdir}/ -type f -name "perllocal.pod" | xargs rm -f
+    rm -rf ${D}${libdir}/perl5/vendor_perl/${PERLVERSION}/${BUILD_SYS}/auto/Parse/Pidl/.packlist
+    sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${bindir}/pidl
+}
+
+PACKAGES =+ "${PN}-python3 ${PN}-pidl \
+             ${PN}-dsdb-modules ${PN}-testsuite registry-tools \
+             winbind \
+             ${PN}-common ${PN}-base ${PN}-ad-dc ${PN}-ctdb-tests \
+             smbclient ${PN}-client ${PN}-server ${PN}-test"
+
+python samba_populate_packages() {
+    def module_hook(file, pkg, pattern, format, basename):
+        pn = d.getVar('PN')
+        d.appendVar('RRECOMMENDS:%s-base' % pn, ' %s' % pkg)
+
+    mlprefix = d.getVar('MLPREFIX') or ''
+    pam_libdir = d.expand('${base_libdir}/security')
+    pam_pkgname = mlprefix + 'pam-plugin%s'
+    do_split_packages(d, pam_libdir, '^pam_(.*)\.so$', pam_pkgname, 'PAM plugin for %s', extra_depends='', prepend=True)
+
+    libdir = d.getVar('libdir')
+    do_split_packages(d, libdir, '^lib(.*)\.so\..*$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True, allow_links=True)
+    pkglibdir = '%s/samba' % libdir
+    do_split_packages(d, pkglibdir, '^lib(.*)\.so$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True)
+    moduledir = '%s/samba/auth' % libdir
+    do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-auth-%s', 'Samba %s authentication backend', hook=module_hook, extra_depends='', prepend=True)
+    moduledir = '%s/samba/pdb' % libdir
+    do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-pdb-%s', 'Samba %s password backend', hook=module_hook, extra_depends='', prepend=True)
+}
+
+PACKAGESPLITFUNCS:prepend = "samba_populate_packages "
+PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*"
+
+RDEPENDS:${PN} += "${PN}-base ${PN}-python3 ${PN}-dsdb-modules python3"
+RDEPENDS:${PN}-python3 += "pytalloc python3-tdb pyldb"
+
+FILES:${PN}-base = "${sbindir}/nmbd \
+                    ${sbindir}/smbd \
+                    ${sysconfdir}/init.d \
+                    ${systemd_system_unitdir}/nmb.service \
+                    ${systemd_system_unitdir}/smb.service"
+
+FILES:${PN}-ad-dc = "${sbindir}/samba \
+                     ${systemd_system_unitdir}/samba.service \
+                     ${libdir}/krb5/plugins/kdb/samba.so \
+"
+RDEPENDS:${PN}-ad-dc = "krb5-kdc"
+
+FILES:${PN}-ctdb-tests = "${bindir}/ctdb_run_tests \
+                          ${bindir}/ctdb_run_cluster_tests \
+                          ${sysconfdir}/ctdb/nodes \
+                          ${datadir}/ctdb-tests \
+                          ${datadir}/ctdb/tests \
+                          ${localstatedir}/lib/ctdb \
+                         "
+
+FILES:${BPN}-common = "${sysconfdir}/default \
+                       ${sysconfdir}/samba \
+                       ${sysconfdir}/tmpfiles.d \
+                       ${localstatedir}/lib/samba \
+                       ${localstatedir}/spool/samba \
+"
+
+FILES:${PN} += "${libdir}/vfs/*.so \
+                ${libdir}/charset/*.so \
+                ${libdir}/*.dat \
+                ${libdir}/auth/*.so \
+                ${datadir}/ctdb/events/* \
+"
+
+FILES:${PN}-dsdb-modules = "${libdir}/samba/ldb"
+
+FILES:${PN}-testsuite = "${bindir}/gentest \
+                         ${bindir}/locktest \
+                         ${bindir}/masktest \
+                         ${bindir}/ndrdump \
+                         ${bindir}/smbtorture"
+
+FILES:registry-tools = "${bindir}/regdiff \
+                        ${bindir}/regpatch \
+                        ${bindir}/regshell \
+                        ${bindir}/regtree"
+
+FILES:winbind = "${sbindir}/winbindd \
+                 ${bindir}/wbinfo \
+                 ${bindir}/ntlm_auth \
+                 ${libdir}/samba/idmap \
+                 ${libdir}/samba/nss_info \
+                 ${libdir}/winbind_krb5_locator.so \
+                 ${libdir}/winbind-krb5-localauth.so \
+                 ${sysconfdir}/init.d/winbind \
+                 ${systemd_system_unitdir}/winbind.service"
+
+FILES:${PN}-python3 = "${PYTHON_SITEPACKAGES_DIR}"
+
+FILES:smbclient = "${bindir}/cifsdd \
+                   ${bindir}/rpcclient \
+                   ${bindir}/smbcacls \
+                   ${bindir}/smbclient \
+                   ${bindir}/smbcquotas \
+                   ${bindir}/smbget \
+                   ${bindir}/smbspool \
+                   ${bindir}/smbtar \
+                   ${bindir}/smbtree \
+                   ${libdir}/samba/smbspool_krb5_wrapper"
+
+RDEPENDS:${PN}-pidl:append = " perl libparse-yapp-perl"
+FILES:${PN}-pidl = "${bindir}/pidl \
+                    ${libdir}/perl5 \
+                   "
+
+RDEPENDS:${PN}-client = "\
+    smbclient \
+    winbind \
+    registry-tools \
+    ${PN}-pidl \
+    "
+
+ALLOW_EMPTY:${PN}-client = "1"
+
+RDEPENDS:${PN}-server = "\
+    ${PN} \
+    winbind \
+    registry-tools \
+    "
+
+ALLOW_EMPTY:${PN}-server = "1"
+
+RDEPENDS:${PN}-test = "\
+    ${PN}-ctdb-tests \
+    ${PN}-testsuite \
+    "
+
+ALLOW_EMPTY:${PN}-test = "1"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.14.8.bb b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.14.8.bb
deleted file mode 100644
index 0dd563c..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.14.8.bb
+++ /dev/null
@@ -1,346 +0,0 @@
-HOMEPAGE = "https://www.samba.org/"
-SECTION = "console/network"
-
-LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
-                    file://${COREBASE}/meta/files/common-licenses/LGPL-3.0-or-later;md5=c51d3eef3be114124d11349ca0d7e117 \
-                    file://${COREBASE}/meta/files/common-licenses/GPL-2.0-or-later;md5=fed54355545ffd980b814dab4a3b312c"
-
-SAMBA_MIRROR = "http://samba.org/samba/ftp"
-MIRRORS += "\
-${SAMBA_MIRROR}    http://mirror.internode.on.net/pub/samba \n \
-${SAMBA_MIRROR}    http://www.mirrorservice.org/sites/ftp.samba.org \n \
-"
-
-SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
-           file://smb.conf \
-           file://volatiles.03_samba \
-           file://0001-Don-t-check-xsltproc-manpages.patch \
-           file://0002-do-not-import-target-module-while-cross-compile.patch \
-           file://0003-Add-config-option-without-valgrind.patch \
-           file://0004-Add-options-to-configure-the-use-of-libbsd.patch \
-           file://0005-samba-build-dnsserver_common-code.patch \
-           file://0006-samba-defeat-iconv-test.patch \
-           file://0007-wscript_configure_system_gnutls-disable-check-gnutls.patch \
-           file://0008-source3-wscript-disable-check-fcntl-F_OWNER_EX.patch \
-           file://0009-source3-wscript-disable-check-fcntl-RW_HINTS.patch \
-           "
-
-SRC_URI:append:libc-musl = " \
-           file://netdb_defines.patch \
-           file://samba-pam.patch \
-           file://samba-4.3.9-remove-getpwent_r.patch \
-           file://cmocka-uintptr_t.patch \
-           file://samba-fix-musl-lib-without-innetgr.patch \
-           "
-
-SRC_URI[md5sum] = "5c6636b34a322de0eb917ee0403be322"
-SRC_URI[sha256sum] = "c936b782c2aced8cd7299c13bec67c495fd4affdb217a6ed6150f4fd6d770fde"
-
-UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.14(\.\d+)+).tar.gz"
-
-inherit systemd waf-samba cpan-base perlnative update-rc.d perl-version pkgconfig
-
-# CVE-2011-2411 is valnerble only on HP NonStop Servers.
-CVE_CHECK_WHITELIST += "CVE-2011-2411" 
-
-# remove default added RDEPENDS on perl
-RDEPENDS:${PN}:remove = "perl"
-
-DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb libaio libpam libtasn1 jansson libparse-yapp-perl-native gnutls"
-
-inherit features_check
-REQUIRED_DISTRO_FEATURES = "pam"
-
-DEPENDS:append:libc-musl = " libtirpc"
-CFLAGS:append:libc-musl = " -I${STAGING_INCDIR}/tirpc"
-LDFLAGS:append:libc-musl = " -ltirpc"
-
-COMPATIBLE_HOST:riscv32 = "null"
-
-INITSCRIPT_NAME = "samba"
-INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ."
-
-SYSTEMD_PACKAGES = "${PN}-base ${PN}-ad-dc winbind"
-SYSTEMD_SERVICE:${PN}-base = "nmb.service smb.service"
-SYSTEMD_SERVICE:${PN}-ad-dc = "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'samba.service', '', d)}"
-SYSTEMD_SERVICE:winbind = "winbind.service"
-
-# There are prerequisite settings to enable ad-dc, so disable the service by default.
-# Reference:
-# https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
-SYSTEMD_AUTO_ENABLE:${PN}-ad-dc = "disable"
-
-#cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
-#to cross Popen
-export WAF_NO_PREFORK="yes"
-
-# Use krb5.  Build active domain controller.
-#
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd zeroconf', d)} \
-                   acl cups ad-dc ldap mitkrb5 \
-"
-
-RDEPENDS:${PN}-ctdb-tests += "bash util-linux-getopt"
-
-PACKAGECONFIG[acl] = "--with-acl-support,--without-acl-support,acl"
-PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin"
-PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups"
-PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
-PACKAGECONFIG[sasl] = ",,cyrus-sasl"
-PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd"
-PACKAGECONFIG[dmapi] = "--with-dmapi,--without-dmapi,dmapi"
-PACKAGECONFIG[zeroconf] = "--enable-avahi,--disable-avahi,avahi"
-PACKAGECONFIG[valgrind] = ",--without-valgrind,valgrind,"
-PACKAGECONFIG[lttng] = "--with-lttng, --without-lttng,lttng-ust"
-PACKAGECONFIG[archive] = "--with-libarchive, --without-libarchive, libarchive"
-PACKAGECONFIG[libunwind] = ", , libunwind"
-PACKAGECONFIG[gpgme] = ",--without-gpgme,,"
-PACKAGECONFIG[lmdb] = ",--without-ldb-lmdb,lmdb,"
-PACKAGECONFIG[libbsd] = "--with-libbsd, --without-libbsd, libbsd"
-PACKAGECONFIG[ad-dc] = "--with-experimental-mit-ad-dc,--without-ad-dc,python3-markdown python3-dnspython,"
-PACKAGECONFIG[mitkrb5] = "--with-system-mitkrb5 --with-system-mitkdc=/usr/sbin/krb5kdc,,krb5,"
-
-SAMBA4_IDMAP_MODULES="idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2"
-SAMBA4_PDB_MODULES="pdb_tdbsam,${@bb.utils.contains('PACKAGECONFIG', 'ldap', 'pdb_ldap,', '', d)}pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4"
-SAMBA4_AUTH_MODULES="auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4"
-SAMBA4_MODULES="${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MODULES}"
-
-# These libraries are supposed to replace others supplied by packages, but decorate the names of
-# .so files so there will not be a conflict.  This is not done consistantly, so be very careful
-# when adding to this list.
-#
-SAMBA4_LIBS="heimdal,cmocka,NONE"
-
-EXTRA_OECONF += "--enable-fhs \
-                 --with-piddir=/run \
-                 --with-sockets-dir=/run/samba \
-                 --with-modulesdir=${libdir}/samba \
-                 --with-lockdir=${localstatedir}/lib/samba \
-                 --with-cachedir=${localstatedir}/lib/samba \
-                 --disable-rpath-install \
-                 --with-shared-modules=${SAMBA4_MODULES} \
-                 --bundled-libraries=${SAMBA4_LIBS} \
-                 ${@oe.utils.conditional('TARGET_ARCH', 'x86_64', '', '--disable-glusterfs', d)} \
-                 --with-cluster-support \
-                 --with-profiling-data \
-                 --with-libiconv=${STAGING_DIR_HOST}${prefix} \
-                 --with-pam --with-pammodulesdir=${base_libdir}/security \
-                "
-
-LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
-
-do_configure:append () {
-    cd ${S}/pidl/
-    perl Makefile.PL PREFIX=${prefix}
-    sed -e 's,VENDORPREFIX)/lib/perl,VENDORPREFIX)/${baselib}/perl,g' \
-        -e 's,PERLPREFIX)/lib/perl,PERLPREFIX)/${baselib}/perl,g' -i Makefile
-
-}
-
-do_compile:append () {
-    oe_runmake -C ${S}/pidl
-}
-
-do_install:append() {
-    for section in 1 5 7; do
-        install -d ${D}${mandir}/man$section
-        install -m 0644 ctdb/doc/*.$section ${D}${mandir}/man$section
-    done
-    for section in 1 5 7 8; do
-        install -d ${D}${mandir}/man$section
-        install -m 0644 docs/manpages/*.$section ${D}${mandir}/man$section
-    done
-
-    install -d ${D}${systemd_system_unitdir}
-    install -m 0644 ${S}/bin/default/packaging/systemd/*.service ${D}${systemd_system_unitdir}/
-    sed -e 's,\(ExecReload=\).*\(/kill\),\1${base_bindir}\2,' \
-        -e 's,/etc/sysconfig/samba,${sysconfdir}/default/samba,' \
-        -i ${D}${systemd_system_unitdir}/*.service
-
-    if [ "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'yes', 'no', d)}" = "no" ]; then
-        rm -f ${D}${systemd_system_unitdir}/samba.service
-    fi
-
-    install -d ${D}${sysconfdir}/tmpfiles.d
-    install -m644 packaging/systemd/samba.conf.tmp ${D}${sysconfdir}/tmpfiles.d/samba.conf
-    echo "d ${localstatedir}/log/samba 0755 root root -" \
-        >> ${D}${sysconfdir}/tmpfiles.d/samba.conf
-    install -d ${D}${sysconfdir}/init.d
-    install -m 0755 packaging/sysv/samba.init ${D}${sysconfdir}/init.d/samba
-    sed -e 's,/opt/samba/bin,${sbindir},g' \
-        -e 's,/opt/samba/smb.conf,${sysconfdir}/samba/smb.conf,g' \
-        -e 's,/opt/samba/log,${localstatedir}/log/samba,g' \
-        -e 's,/etc/init.d/samba.server,${sysconfdir}/init.d/samba,g' \
-        -e 's,/usr/bin,${base_bindir},g' \
-        -i ${D}${sysconfdir}/init.d/samba
-
-    install -d ${D}${sysconfdir}/samba
-    echo "127.0.0.1 localhost" > ${D}${sysconfdir}/samba/lmhosts
-    install -m644 ${WORKDIR}/smb.conf ${D}${sysconfdir}/samba/smb.conf
-    install -D -m 644 ${WORKDIR}/volatiles.03_samba ${D}${sysconfdir}/default/volatiles/03_samba
-
-    install -d ${D}${sysconfdir}/default
-    install -m644 packaging/systemd/samba.sysconfig ${D}${sysconfdir}/default/samba
-
-    # the items are from ctdb/tests/run_tests.sh
-    for d in cunit eventd eventscripts onnode shellcheck takeover takeover_helper tool; do
-        testdir=${D}${datadir}/ctdb-tests/UNIT/$d
-        install -d $testdir
-        cp ${S}/ctdb/tests/UNIT/$d/*.sh $testdir
-        cp -r ${S}/ctdb/tests/UNIT/$d/scripts ${S}/ctdb/tests/UNIT/$d/stubs $testdir || true
-    done
-
-    # fix file-rdeps qa warning
-    if [ -f ${D}${bindir}/onnode ]; then
-        sed -i 's:\(#!/bin/\)bash:\1sh:' ${D}${bindir}/onnode
-    fi
-
-    chmod 0750 ${D}${sysconfdir}/sudoers.d || true
-    rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log
-    
-    for f in samba-gpupdate samba_upgradedns samba_spnupdate samba_kcc samba_dnsupdate samba_downgrade_db; do
-        if [ -f "${D}${sbindir}/$f" ]; then
-            sed -i -e 's,${PYTHON},/usr/bin/env python3,g' ${D}${sbindir}/$f
-        fi
-    done
-    if [ -f "${D}${bindir}/samba-tool" ]; then
-        sed -i -e 's,${PYTHON},/usr/bin/env python3,g' ${D}${bindir}/samba-tool
-    fi
-
-    oe_runmake -C ${S}/pidl DESTDIR=${D} install_vendor
-    find ${D}${libdir}/ -type f -name "perllocal.pod" | xargs rm -f
-    rm -rf ${D}${libdir}/perl5/vendor_perl/${PERLVERSION}/${BUILD_SYS}/auto/Parse/Pidl/.packlist
-    sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${bindir}/pidl
-}
-
-PACKAGES =+ "${PN}-python3 ${PN}-pidl \
-             ${PN}-dsdb-modules ${PN}-testsuite registry-tools \
-             winbind \
-             ${PN}-common ${PN}-base ${PN}-ad-dc ${PN}-ctdb-tests \
-             smbclient ${PN}-client ${PN}-server ${PN}-test"
-
-python samba_populate_packages() {
-    def module_hook(file, pkg, pattern, format, basename):
-        pn = d.getVar('PN')
-        d.appendVar('RRECOMMENDS:%s-base' % pn, ' %s' % pkg)
-
-    mlprefix = d.getVar('MLPREFIX') or ''
-    pam_libdir = d.expand('${base_libdir}/security')
-    pam_pkgname = mlprefix + 'pam-plugin%s'
-    do_split_packages(d, pam_libdir, '^pam_(.*)\.so$', pam_pkgname, 'PAM plugin for %s', extra_depends='', prepend=True)
-
-    libdir = d.getVar('libdir')
-    do_split_packages(d, libdir, '^lib(.*)\.so\..*$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True, allow_links=True)
-    pkglibdir = '%s/samba' % libdir
-    do_split_packages(d, pkglibdir, '^lib(.*)\.so$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True)
-    moduledir = '%s/samba/auth' % libdir
-    do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-auth-%s', 'Samba %s authentication backend', hook=module_hook, extra_depends='', prepend=True)
-    moduledir = '%s/samba/pdb' % libdir
-    do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-pdb-%s', 'Samba %s password backend', hook=module_hook, extra_depends='', prepend=True)
-}
-
-PACKAGESPLITFUNCS:prepend = "samba_populate_packages "
-PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*"
-
-RDEPENDS:${PN} += "${PN}-base ${PN}-python3 ${PN}-dsdb-modules python3"
-RDEPENDS:${PN}-python3 += "pytalloc python3-tdb"
-
-FILES:${PN}-base = "${sbindir}/nmbd \
-                    ${sbindir}/smbd \
-                    ${sysconfdir}/init.d \
-                    ${systemd_system_unitdir}/nmb.service \
-                    ${systemd_system_unitdir}/smb.service"
-
-FILES:${PN}-ad-dc = "${sbindir}/samba \
-                     ${systemd_system_unitdir}/samba.service \
-                     ${libdir}/krb5/plugins/kdb/samba.so \
-"
-RDEPENDS:${PN}-ad-dc = "krb5-kdc"
-
-FILES:${PN}-ctdb-tests = "${bindir}/ctdb_run_tests \
-                          ${bindir}/ctdb_run_cluster_tests \
-                          ${sysconfdir}/ctdb/nodes \
-                          ${datadir}/ctdb-tests \
-                          ${datadir}/ctdb/tests \
-                          ${localstatedir}/lib/ctdb \
-                         "
-
-FILES:${BPN}-common = "${sysconfdir}/default \
-                       ${sysconfdir}/samba \
-                       ${sysconfdir}/tmpfiles.d \
-                       ${localstatedir}/lib/samba \
-                       ${localstatedir}/spool/samba \
-"
-
-FILES:${PN} += "${libdir}/vfs/*.so \
-                ${libdir}/charset/*.so \
-                ${libdir}/*.dat \
-                ${libdir}/auth/*.so \
-                ${datadir}/ctdb/events/* \
-"
-
-FILES:${PN}-dsdb-modules = "${libdir}/samba/ldb"
-
-FILES:${PN}-testsuite = "${bindir}/gentest \
-                         ${bindir}/locktest \
-                         ${bindir}/masktest \
-                         ${bindir}/ndrdump \
-                         ${bindir}/smbtorture"
-
-FILES:registry-tools = "${bindir}/regdiff \
-                        ${bindir}/regpatch \
-                        ${bindir}/regshell \
-                        ${bindir}/regtree"
-
-FILES:winbind = "${sbindir}/winbindd \
-                 ${bindir}/wbinfo \
-                 ${bindir}/ntlm_auth \
-                 ${libdir}/samba/idmap \
-                 ${libdir}/samba/nss_info \
-                 ${libdir}/winbind_krb5_locator.so \
-                 ${libdir}/winbind-krb5-localauth.so \
-                 ${sysconfdir}/init.d/winbind \
-                 ${systemd_system_unitdir}/winbind.service"
-
-FILES:${PN}-python3 = "${PYTHON_SITEPACKAGES_DIR}"
-
-FILES:smbclient = "${bindir}/cifsdd \
-                   ${bindir}/rpcclient \
-                   ${bindir}/smbcacls \
-                   ${bindir}/smbclient \
-                   ${bindir}/smbcquotas \
-                   ${bindir}/smbget \
-                   ${bindir}/smbspool \
-                   ${bindir}/smbtar \
-                   ${bindir}/smbtree \
-                   ${libdir}/samba/smbspool_krb5_wrapper"
-
-RDEPENDS:${PN}-pidl:append = " perl libparse-yapp-perl"
-FILES:${PN}-pidl = "${bindir}/pidl \
-                    ${libdir}/perl5 \
-                   "
-
-RDEPENDS:${PN}-client = "\
-    smbclient \
-    winbind \
-    registry-tools \
-    ${PN}-pidl \
-    "
-
-ALLOW_EMPTY:${PN}-client = "1"
-
-RDEPENDS:${PN}-server = "\
-    ${PN} \
-    winbind \
-    registry-tools \
-    "
-
-ALLOW_EMPTY:${PN}-server = "1"
-
-RDEPENDS:${PN}-test = "\
-    ${PN}-ctdb-tests \
-    ${PN}-testsuite \
-    "
-
-ALLOW_EMPTY:${PN}-test = "1"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.18.1.bb b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.18.1.bb
deleted file mode 100644
index 1e24954..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.18.1.bb
+++ /dev/null
@@ -1,111 +0,0 @@
-DESCRIPTION = "snort - a free lightweight network intrusion detection system for UNIX and Windows."
-HOMEPAGE = "http://www.snort.org/"
-SECTION = "net"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5"
-
-DEPENDS = "xz libpcap libpcre daq libdnet util-linux daq-native libtirpc bison-native"
-
-SRC_URI = "https://www.snort.org/downloads/archive/snort/${BP}.tar.gz \
-    file://snort.init \
-    file://volatiles.99_snort \
-    file://0001-libpcap-search-sysroot-for-headers.patch \
-    file://fix-host-contamination-when-enable-static-daq.patch \
-    file://disable-run-test-program-while-cross-compiling.patch \
-    file://configure.in-disable-tirpc-checking-for-fedora.patch \
-"
-SRC_URI[sha256sum] = "da8af0f1b2e4f247d970c6a3c0e83fb6dcd5c84faa21aea49f306f269e8e28aa"
-
-UPSTREAM_CHECK_URI = "https://www.snort.org/downloads"
-UPSTREAM_CHECK_REGEX = "snort-(?P<pver>\d+(\.\d+)+)\.tar"
-
-inherit autotools gettext update-rc.d pkgconfig
-
-INITSCRIPT_NAME = "snort"
-INITSCRIPT_PARAMS = "defaults"
-
-EXTRA_OECONF = " \
-    --enable-gre \
-    --enable-linux-smp-stats \
-    --enable-reload \
-    --enable-reload-error-restart \
-    --enable-targetbased \
-    --enable-static-daq \
-    --with-dnet-includes=${STAGING_INCDIR} \
-    --with-dnet-libraries=${STAGING_LIBDIR} \
-    --with-libpcre-includes=${STAGING_INCDIR} \
-    --with-libpcre-libraries=${STAGING_LIBDIR} \
-    --with-daq-includes=${STAGING_INCDIR} \
-    --with-daq-libraries=${STAGING_LIBDIR} \
-"
-
-# if you want to disable it, you need to patch configure.in first
-# AC_CHECK_HEADERS([openssl/sha.h],, SHA_H="no")
-# is called even with --without-openssl-includes
-PACKAGECONFIG ?= "openssl lzma"
-PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl,"
-PACKAGECONFIG[lzma] = "--with-lzma-includes=${STAGING_INCDIR} --with-lzma-libraries=${STAGING_LIBDIR}, --without-lzma-includes --without-lzma-libraries, xz,"
-PACKAGECONFIG[appid] = "--enable-open-appid, --disable-open-appid, luajit, bash"
-
-CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-LDFLAGS += " -ltirpc"
-
-do_install:append() {
-    install -d ${D}${sysconfdir}/snort/rules
-    install -d ${D}${sysconfdir}/snort/preproc_rules
-    install -d ${D}${sysconfdir}/init.d
-    for i in map config conf dtd; do
-        cp ${S}/etc/*.$i ${D}${sysconfdir}/snort/
-    done
-
-    # fix the hardcoded path and lib name
-    # comment out the rules that are not provided
-    sed -i -e 's#/usr/local/lib#${libdir}#' \
-           -e 's#\.\./\(.*rules\)#${sysconfdir}/snort/\1#' \
-           -e 's#\(libsf_engine.so\)#\1.0#' \
-           -e 's/^\(include $RULE_PATH\)/#\1/' \
-           -e 's/^\(dynamicdetection\)/#\1/' \
-           -e '/preprocessor reputation/,/blacklist/ s/^/#/' \
-           ${D}${sysconfdir}/snort/snort.conf
-
-    cp ${S}/preproc_rules/*.rules ${D}${sysconfdir}/snort/preproc_rules/
-    install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort
-
-    install -d ${D}${sysconfdir}/default/volatiles
-    install -m 0644 ${WORKDIR}/volatiles.99_snort ${D}${sysconfdir}/default/volatiles/99_snort
-
-    sed -i -e 's|-ffile-prefix-map[^ ]*||g; s|-fdebug-prefix-map[^ ]*||g; s|-fmacro-prefix-map[^ ]*||g; s|${STAGING_DIR_TARGET}||g' ${D}${libdir}/pkgconfig/*.pc
-}
-
-pkg_postinst:${PN}() {
-    if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
-        ${sysconfdir}/init.d/populate-volatile.sh update
-    fi
-}
-
-FILES:${PN} += " \
-    ${libdir}/snort_dynamicengine/*.so.* \
-    ${libdir}/snort_dynamicpreprocessor/*.so.* \
-    ${libdir}/snort_dynamicrules/*.so.* \
-"
-FILES:${PN}-dbg += " \
-    ${libdir}/snort_dynamicengine/.debug \
-    ${libdir}/snort_dynamicpreprocessor/.debug \
-    ${libdir}/snort_dynamicrules/.debug \
-"
-FILES:${PN}-staticdev += " \
-    ${libdir}/snort_dynamicengine/*.a \
-    ${libdir}/snort_dynamicpreprocessor/*.a \
-    ${libdir}/snort_dynamicrules/*.a \
-    ${libdir}/snort/dynamic_preproc/*.a \
-    ${libdir}/snort/dynamic_output/*.a \
-"
-FILES:${PN}-dev += " \
-    ${libdir}/snort_dynamicengine/*.la \
-    ${libdir}/snort_dynamicpreprocessor/*.la \
-    ${libdir}/snort_dynamicrules/*.la \
-    ${libdir}/snort_dynamicengine/*.so \
-    ${libdir}/snort_dynamicpreprocessor/*.so \
-    ${libdir}/snort_dynamicrules/*.so \
-    ${prefix}/src/snort_dynamicsrc \
-"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.19.bb b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.19.bb
new file mode 100644
index 0000000..9c479d2
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.19.bb
@@ -0,0 +1,111 @@
+DESCRIPTION = "snort - a free lightweight network intrusion detection system for UNIX and Windows."
+HOMEPAGE = "http://www.snort.org/"
+SECTION = "net"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5"
+
+DEPENDS = "xz libpcap libpcre daq libdnet util-linux daq-native libtirpc bison-native"
+
+SRC_URI = "https://www.snort.org/downloads/archive/snort/${BP}.tar.gz \
+    file://snort.init \
+    file://volatiles.99_snort \
+    file://0001-libpcap-search-sysroot-for-headers.patch \
+    file://fix-host-contamination-when-enable-static-daq.patch \
+    file://disable-run-test-program-while-cross-compiling.patch \
+    file://configure.in-disable-tirpc-checking-for-fedora.patch \
+"
+SRC_URI[sha256sum] = "b12fc6db72afb58987a2bf1954b8f45bde02047c235513c7663857b9506369c7"
+
+UPSTREAM_CHECK_URI = "https://www.snort.org/downloads"
+UPSTREAM_CHECK_REGEX = "snort-(?P<pver>\d+(\.\d+)+)\.tar"
+
+inherit autotools gettext update-rc.d pkgconfig
+
+INITSCRIPT_NAME = "snort"
+INITSCRIPT_PARAMS = "defaults"
+
+EXTRA_OECONF = " \
+    --enable-gre \
+    --enable-linux-smp-stats \
+    --enable-reload \
+    --enable-reload-error-restart \
+    --enable-targetbased \
+    --enable-static-daq \
+    --with-dnet-includes=${STAGING_INCDIR} \
+    --with-dnet-libraries=${STAGING_LIBDIR} \
+    --with-libpcre-includes=${STAGING_INCDIR} \
+    --with-libpcre-libraries=${STAGING_LIBDIR} \
+    --with-daq-includes=${STAGING_INCDIR} \
+    --with-daq-libraries=${STAGING_LIBDIR} \
+"
+
+# if you want to disable it, you need to patch configure.in first
+# AC_CHECK_HEADERS([openssl/sha.h],, SHA_H="no")
+# is called even with --without-openssl-includes
+PACKAGECONFIG ?= "openssl lzma"
+PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl,"
+PACKAGECONFIG[lzma] = "--with-lzma-includes=${STAGING_INCDIR} --with-lzma-libraries=${STAGING_LIBDIR}, --without-lzma-includes --without-lzma-libraries, xz,"
+PACKAGECONFIG[appid] = "--enable-open-appid, --disable-open-appid, luajit, bash"
+
+CFLAGS += "-I${STAGING_INCDIR}/tirpc"
+LDFLAGS += " -ltirpc"
+
+do_install:append() {
+    install -d ${D}${sysconfdir}/snort/rules
+    install -d ${D}${sysconfdir}/snort/preproc_rules
+    install -d ${D}${sysconfdir}/init.d
+    for i in map config conf dtd; do
+        cp ${S}/etc/*.$i ${D}${sysconfdir}/snort/
+    done
+
+    # fix the hardcoded path and lib name
+    # comment out the rules that are not provided
+    sed -i -e 's#/usr/local/lib#${libdir}#' \
+           -e 's#\.\./\(.*rules\)#${sysconfdir}/snort/\1#' \
+           -e 's#\(libsf_engine.so\)#\1.0#' \
+           -e 's/^\(include $RULE_PATH\)/#\1/' \
+           -e 's/^\(dynamicdetection\)/#\1/' \
+           -e '/preprocessor reputation/,/blacklist/ s/^/#/' \
+           ${D}${sysconfdir}/snort/snort.conf
+
+    cp ${S}/preproc_rules/*.rules ${D}${sysconfdir}/snort/preproc_rules/
+    install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort
+
+    install -d ${D}${sysconfdir}/default/volatiles
+    install -m 0644 ${WORKDIR}/volatiles.99_snort ${D}${sysconfdir}/default/volatiles/99_snort
+
+    sed -i -e 's|-ffile-prefix-map[^ ]*||g; s|-fdebug-prefix-map[^ ]*||g; s|-fmacro-prefix-map[^ ]*||g; s|${STAGING_DIR_TARGET}||g' ${D}${libdir}/pkgconfig/*.pc
+}
+
+pkg_postinst:${PN}() {
+    if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+        ${sysconfdir}/init.d/populate-volatile.sh update
+    fi
+}
+
+FILES:${PN} += " \
+    ${libdir}/snort_dynamicengine/*.so.* \
+    ${libdir}/snort_dynamicpreprocessor/*.so.* \
+    ${libdir}/snort_dynamicrules/*.so.* \
+"
+FILES:${PN}-dbg += " \
+    ${libdir}/snort_dynamicengine/.debug \
+    ${libdir}/snort_dynamicpreprocessor/.debug \
+    ${libdir}/snort_dynamicrules/.debug \
+"
+FILES:${PN}-staticdev += " \
+    ${libdir}/snort_dynamicengine/*.a \
+    ${libdir}/snort_dynamicpreprocessor/*.a \
+    ${libdir}/snort_dynamicrules/*.a \
+    ${libdir}/snort/dynamic_preproc/*.a \
+    ${libdir}/snort/dynamic_output/*.a \
+"
+FILES:${PN}-dev += " \
+    ${libdir}/snort_dynamicengine/*.la \
+    ${libdir}/snort_dynamicpreprocessor/*.la \
+    ${libdir}/snort_dynamicrules/*.la \
+    ${libdir}/snort_dynamicengine/*.so \
+    ${libdir}/snort_dynamicpreprocessor/*.so \
+    ${libdir}/snort_dynamicrules/*.so \
+    ${prefix}/src/snort_dynamicsrc \
+"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb b/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
index 63a0494..421ebaa 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
@@ -9,7 +9,7 @@
 
 PV .= "r550-2jnpr1"
 SRCREV = "b1243d29e0c00312ead038b04a2cf5e2fa31d740"
-SRC_URI = "git://github.com/ndpgroup/vpnc \
+SRC_URI = "git://github.com/ndpgroup/vpnc;branch=master;protocol=https \
            file://long-help \
            file://default.conf \
            file://0001-search-for-log-help-in-build-dir.patch \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.7.1.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.7.1.bb
deleted file mode 100644
index c2b3c3d..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.7.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "wolfSSL Lightweight Embedded SSL/TLS Library"
-DESCRIPTION = "wolfSSL, formerly CyaSSL, is a lightweight SSL library written \
-               in C and optimized for embedded and RTOS environments. It can \
-               be up to 20 times smaller than OpenSSL while still supporting \
-               a full TLS client and server, up to TLS 1.3"
-HOMEPAGE = "https://www.wolfssl.com/products/wolfssl"
-BUGTRACKER = "https://github.com/wolfssl/wolfssl/issues"
-SECTION = "libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-PROVIDES += "cyassl"
-RPROVIDES:${PN} = "cyassl"
-
-SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https \
-"
-SRCREV = "95b91d89133a712a3d0f389442924612c103da24"
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.1.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.1.0.bb
new file mode 100644
index 0000000..7b43b06
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.1.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "wolfSSL Lightweight Embedded SSL/TLS Library"
+DESCRIPTION = "wolfSSL, formerly CyaSSL, is a lightweight SSL library written \
+               in C and optimized for embedded and RTOS environments. It can \
+               be up to 20 times smaller than OpenSSL while still supporting \
+               a full TLS client and server, up to TLS 1.3"
+HOMEPAGE = "https://www.wolfssl.com/products/wolfssl"
+BUGTRACKER = "https://github.com/wolfssl/wolfssl/issues"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+PROVIDES += "cyassl"
+RPROVIDES:${PN} = "cyassl"
+
+SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https;branch=master"
+SRCREV = "2b670c026debc8e70621eb5c75b60931c9aa0bc5"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb b/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
index e84086e..a539dfe 100644
--- a/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
+++ b/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
@@ -172,8 +172,6 @@
     xl2tpd \
 "
 
-RDEPENDS:packagegroup-meta-networking-protocols:remove:libc-musl = "mdns"
-
 RDEPENDS:packagegroup-meta-networking-support = "\
     aoetools \
     arptables \
@@ -219,6 +217,7 @@
     yp-tools \
     mtr \
     ntp ntpdate sntp ntpdc ntpq ntp-tickadj ntp-utils \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "ntpsec", "", d)} \
     nbd-client \
     nbd-server \
     nbd-trdump \
diff --git a/meta-openembedded/meta-networking/recipes-daemons/atftp/atftp_0.7.5.bb b/meta-openembedded/meta-networking/recipes-daemons/atftp/atftp_0.7.5.bb
index de283df..59905b5 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/atftp/atftp_0.7.5.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/atftp/atftp_0.7.5.bb
@@ -6,7 +6,7 @@
 
 SRCREV = "00921e75728e3681b051c2e48c59e36c6cfa2e97"
 
-SRC_URI = "git://git.code.sf.net/p/atftp/code \
+SRC_URI = "git://git.code.sf.net/p/atftp/code;branch=master \
            file://atftpd.init \
            file://atftpd.service \
 "
diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb
index 46aeb23..7a6243b 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb
@@ -7,7 +7,7 @@
 
 SRCREV = "e41cfb986c1b1935770de554872247453fdbb079"
 
-SRC_URI = "git://github.com/cyrusimap/cyrus-sasl;protocol=https \
+SRC_URI = "git://github.com/cyrusimap/cyrus-sasl;protocol=https;branch=master \
            file://avoid-to-call-AC_TRY_RUN.patch \
            file://Fix-hardcoded-libdir.patch \
            file://debian_patches_0014_avoid_pic_overwrite.diff \
diff --git a/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb b/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
index 19fbd0f..3ed1767 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
@@ -96,7 +96,7 @@
         return None
 
     bb.debug(1, "pppd plugin dir %s" % pppd_plugin)
-    r = re.compile("\d*\.\d*\.\d*")
+    r = re.compile(r"\d*\.\d*\.\d*")
     for f in os.listdir(pppd_plugin):
         if os.path.isdir(os.path.join(pppd_plugin, f)):
             ma = r.match(f)
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Fix-compiler-error-introduced-with-recent-IPv6-commi.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Fix-compiler-error-introduced-with-recent-IPv6-commi.patch
new file mode 100644
index 0000000..ba0ca4c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Fix-compiler-error-introduced-with-recent-IPv6-commi.patch
@@ -0,0 +1,43 @@
+From 424d5967e94f6adf4c0669d390779af8da0bef20 Mon Sep 17 00:00:00 2001
+From: Lee Duncan <lduncan@suse.com>
+Date: Sat, 18 Sep 2021 16:10:50 -0700
+Subject: [PATCH] Fix compiler error introduced with recent IPv6 commit.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Commit 76350316de38 ("Handle IPv6 interfaces correctly.") added
+a string copy that creates this gcc-11 error message:
+
+> gcc-11 -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod    -c -o idbm.o idbm.c
+> idbm.c: In function ‘_idbm_node_rec_link’:
+> idbm.c:999:17: error: ‘strncpy’ specified bound 65 equals destination size [-Werror=stringop-truncation]
+>   999 |                 strncpy((*node).iface.name, iface_name, ISCSI_MAX_IFACE_LEN);
+>       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+So copy one less character, maximum.
+
+Upstream-Status: Backport
+[https://github.com/open-iscsi/open-iscsi/commit/424d5967e94f6adf4c0669d390779af8da0bef20]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ libopeniscsiusr/idbm.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libopeniscsiusr/idbm.c b/libopeniscsiusr/idbm.c
+index b2524ed..6f57e45 100644
+--- a/libopeniscsiusr/idbm.c
++++ b/libopeniscsiusr/idbm.c
+@@ -996,7 +996,7 @@ static void _idbm_node_rec_link(struct iscsi_node *node, struct idbm_rec *recs,
+ 
+ 	/* use the interface name passed in, if any */
+ 	if (iface_name)
+-		strncpy((*node).iface.name, iface_name, ISCSI_MAX_IFACE_LEN);
++		strncpy((*node).iface.name, iface_name, ISCSI_MAX_IFACE_LEN-1);
+ 
+ 	/*
+ 	 * Note: because we do not add the iface.iscsi_ifacename to
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.4.bb b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.4.bb
deleted file mode 100644
index 8e0da23..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.4.bb
+++ /dev/null
@@ -1,117 +0,0 @@
-SUMMARY = "iSCSI daemon and utility programs"
-DESCRIPTION = "Open-iSCSI project is a high performance, transport \
-independent, multi-platform implementation of RFC3720. The iscsi package \
-provides the server daemon for the iSCSI protocol, as well as the utility \
-programs used to manage it. iSCSI is a protocol for distributed \
-disk access using SCSI commands sent over Internet Protocol networks."
-HOMEPAGE = "http://www.open-iscsi.com/"
-LICENSE = "GPLv2 & LGPLv2.1"
-SECTION = "net"
-DEPENDS = "openssl flex-native bison-native open-isns util-linux kmod"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRCREV ?= "095f59ca464220eae285de6b5f2ee31185a6a84c"
-
-SRC_URI = "git://github.com/open-iscsi/open-iscsi \
-           file://0001-Makefile-Do-not-set-Werror.patch \
-           file://initd.debian \
-           file://99_iscsi-initiator-utils \
-           file://iscsi-initiator \
-           file://iscsi-initiator.service \
-           file://iscsi-initiator-targets.service \
-           file://set_initiatorname \
-           "
-S = "${WORKDIR}/git"
-
-inherit update-rc.d systemd autotools pkgconfig
-
-EXTRA_OECONF = " \
-    --target=${TARGET_SYS} \
-    --host=${BUILD_SYS} \
-"
-
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', '--without-systemd NO_SYSTEMD=1',     d)}"
-
-EXTRA_OEMAKE = ' \
-    OS="${TARGET_SYS}" \
-    TARGET="${TARGET_OS}" \
-    BASE="${prefix}" \
-    MANDIR="${mandir}" \
-    OPTFLAGS="-DNO_SYSTEMD ${CFLAGS}" \
-    PKG_CONFIG="${STAGING_BINDIR_NATIVE}/pkg-config" \
-'
-
-
-do_configure () {
-    cd ${S}/iscsiuio ; autoreconf --install; ./configure ${EXTRA_OECONF}
-}
-
-do_compile () {
-    # Make sure we DO NOT regenerate prom_lex.c.
-    if [ -f ${S}/utils/fwparam_ibft/prom_lex.l ]; then
-        mv ${S}/utils/fwparam_ibft/prom_lex.l ${S}/utils/fwparam_ibft/prom_lex.l.unused
-    fi
-    oe_runmake -C ${S} ${EXTRA_OEMAKE} user
-}
-
-do_install () {
-    #install necessary directories
-    install -d ${D}${sbindir} \
-        ${D}${sysconfdir}/init.d \
-        ${D}${sysconfdir}/iscsi \
-        ${D}${localstatedir}/lib/iscsi/nodes \
-        ${D}${localstatedir}/lib/iscsi/send_targets \
-        ${D}${localstatedir}/lib/iscsi/static \
-        ${D}${localstatedir}/lib/iscsi/isns \
-        ${D}${localstatedir}/lib/iscsi/slp \
-        ${D}${localstatedir}/lib/iscsi/ifaces \
-        ${D}${libdir} \
-        ${D}${mandir}/man8
-
-    install -p -m 755 ${S}/usr/iscsid ${S}/usr/iscsiadm \
-        ${S}/utils/iscsi-iname \
-        ${S}/usr/iscsistart ${D}/${sbindir}
-
-    cp -dR ${S}/libopeniscsiusr/libopeniscsiusr.so* ${D}${libdir}
-    install -p -m 644 ${S}/doc/iscsiadm.8 ${S}/doc/iscsid.8 ${D}/${mandir}/man8
-    install -p -m 644 ${S}/etc/iscsid.conf ${D}${sysconfdir}/iscsi
-    install -p -m 755 ${WORKDIR}/initd.debian ${D}${sysconfdir}/init.d/iscsid
-
-    sed -i -e "s:= /sbin/iscsid:= ${sbindir}/iscsid:" ${D}${sysconfdir}/iscsi/iscsid.conf
-
-    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
-        install -d ${D}${sysconfdir}/tmpfiles.d
-        echo "d /run/${BPN}/lock - - - -" \
-                     > ${D}${sysconfdir}/tmpfiles.d/iscsi.conf
-        install -d ${D}/etc/default/
-        install -p -m 755 ${WORKDIR}/iscsi-initiator ${D}${sysconfdir}/default/
-
-        install -d ${D}${systemd_unitdir}/system/
-        install -m 0644 ${WORKDIR}/iscsi-initiator.service \
-                        ${WORKDIR}/iscsi-initiator-targets.service \
-                        ${D}${systemd_unitdir}/system/
-        install -d ${D}${nonarch_libdir}/iscsi
-        install -m 0755 ${WORKDIR}/set_initiatorname ${D}${nonarch_libdir}/iscsi
-    else
-        install -d ${D}/etc/default/volatiles
-        install -m 0644 ${WORKDIR}/99_iscsi-initiator-utils ${D}/etc/default/volatiles
-    fi
-}
-
-pkg_postinst:${PN}() {
-    if [ "x$D" = "x" ]; then
-        if [ -e /etc/init.d/populate-volatile.sh ]; then
-            /etc/init.d/populate-volatile.sh update
-        elif command -v systemd-tmpfiles >/dev/null; then
-            systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/iscsi.conf
-        fi
-    fi
-}
-
-SYSTEMD_SERVICE = " iscsi-initiator.service iscsi-initiator-targets.service "
-INITSCRIPT_NAME = "iscsid"
-INITSCRIPT_PARAMS = "start 30 1 2 3 4 5 . stop 70 0 1 2 3 4 5 6 ."
-
-FILES:${PN} += "${nonarch_libdir}/iscsi"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.5.bb b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.5.bb
new file mode 100644
index 0000000..26b5b5c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.5.bb
@@ -0,0 +1,118 @@
+SUMMARY = "iSCSI daemon and utility programs"
+DESCRIPTION = "Open-iSCSI project is a high performance, transport \
+independent, multi-platform implementation of RFC3720. The iscsi package \
+provides the server daemon for the iSCSI protocol, as well as the utility \
+programs used to manage it. iSCSI is a protocol for distributed \
+disk access using SCSI commands sent over Internet Protocol networks."
+HOMEPAGE = "http://www.open-iscsi.com/"
+LICENSE = "GPLv2 & LGPLv2.1"
+SECTION = "net"
+DEPENDS = "openssl flex-native bison-native open-isns util-linux kmod"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRCREV ?= "20d0aa96f2170339b1967f4be81e9c5042bbce03"
+
+SRC_URI = "git://github.com/open-iscsi/open-iscsi;branch=master;protocol=https \
+           file://0001-Makefile-Do-not-set-Werror.patch \
+           file://0001-Fix-compiler-error-introduced-with-recent-IPv6-commi.patch \
+           file://initd.debian \
+           file://99_iscsi-initiator-utils \
+           file://iscsi-initiator \
+           file://iscsi-initiator.service \
+           file://iscsi-initiator-targets.service \
+           file://set_initiatorname \
+           "
+S = "${WORKDIR}/git"
+
+inherit update-rc.d systemd autotools pkgconfig
+
+EXTRA_OECONF = " \
+    --target=${TARGET_SYS} \
+    --host=${BUILD_SYS} \
+"
+
+EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', '--without-systemd NO_SYSTEMD=1',     d)}"
+
+EXTRA_OEMAKE = ' \
+    OS="${TARGET_SYS}" \
+    TARGET="${TARGET_OS}" \
+    BASE="${prefix}" \
+    MANDIR="${mandir}" \
+    OPTFLAGS="-DNO_SYSTEMD ${CFLAGS}" \
+    PKG_CONFIG="${STAGING_BINDIR_NATIVE}/pkg-config" \
+'
+
+
+do_configure () {
+    cd ${S}/iscsiuio ; autoreconf --install; ./configure ${EXTRA_OECONF}
+}
+
+do_compile () {
+    # Make sure we DO NOT regenerate prom_lex.c.
+    if [ -f ${S}/utils/fwparam_ibft/prom_lex.l ]; then
+        mv ${S}/utils/fwparam_ibft/prom_lex.l ${S}/utils/fwparam_ibft/prom_lex.l.unused
+    fi
+    oe_runmake -C ${S} ${EXTRA_OEMAKE} user
+}
+
+do_install () {
+    #install necessary directories
+    install -d ${D}${sbindir} \
+        ${D}${sysconfdir}/init.d \
+        ${D}${sysconfdir}/iscsi \
+        ${D}${localstatedir}/lib/iscsi/nodes \
+        ${D}${localstatedir}/lib/iscsi/send_targets \
+        ${D}${localstatedir}/lib/iscsi/static \
+        ${D}${localstatedir}/lib/iscsi/isns \
+        ${D}${localstatedir}/lib/iscsi/slp \
+        ${D}${localstatedir}/lib/iscsi/ifaces \
+        ${D}${libdir} \
+        ${D}${mandir}/man8
+
+    install -p -m 755 ${S}/usr/iscsid ${S}/usr/iscsiadm \
+        ${S}/utils/iscsi-iname \
+        ${S}/usr/iscsistart ${D}/${sbindir}
+
+    cp -dR ${S}/libopeniscsiusr/libopeniscsiusr.so* ${D}${libdir}
+    install -p -m 644 ${S}/doc/iscsiadm.8 ${S}/doc/iscsid.8 ${D}/${mandir}/man8
+    install -p -m 644 ${S}/etc/iscsid.conf ${D}${sysconfdir}/iscsi
+    install -p -m 755 ${WORKDIR}/initd.debian ${D}${sysconfdir}/init.d/iscsid
+
+    sed -i -e "s:= /sbin/iscsid:= ${sbindir}/iscsid:" ${D}${sysconfdir}/iscsi/iscsid.conf
+
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+        install -d ${D}${sysconfdir}/tmpfiles.d
+        echo "d /run/${BPN}/lock - - - -" \
+                     > ${D}${sysconfdir}/tmpfiles.d/iscsi.conf
+        install -d ${D}/etc/default/
+        install -p -m 755 ${WORKDIR}/iscsi-initiator ${D}${sysconfdir}/default/
+
+        install -d ${D}${systemd_unitdir}/system/
+        install -m 0644 ${WORKDIR}/iscsi-initiator.service \
+                        ${WORKDIR}/iscsi-initiator-targets.service \
+                        ${D}${systemd_unitdir}/system/
+        install -d ${D}${nonarch_libdir}/iscsi
+        install -m 0755 ${WORKDIR}/set_initiatorname ${D}${nonarch_libdir}/iscsi
+    else
+        install -d ${D}/etc/default/volatiles
+        install -m 0644 ${WORKDIR}/99_iscsi-initiator-utils ${D}/etc/default/volatiles
+    fi
+}
+
+pkg_postinst:${PN}() {
+    if [ "x$D" = "x" ]; then
+        if [ -e /etc/init.d/populate-volatile.sh ]; then
+            /etc/init.d/populate-volatile.sh update
+        elif command -v systemd-tmpfiles >/dev/null; then
+            systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/iscsi.conf
+        fi
+    fi
+}
+
+SYSTEMD_SERVICE = " iscsi-initiator.service iscsi-initiator-targets.service "
+INITSCRIPT_NAME = "iscsid"
+INITSCRIPT_PARAMS = "start 30 1 2 3 4 5 . stop 70 0 1 2 3 4 5 6 ."
+
+FILES:${PN} += "${nonarch_libdir}/iscsi"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.21.09.bb b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.21.09.bb
index 6c8a481..c24fccf 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.21.09.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.21.09.bb
@@ -55,15 +55,33 @@
 do_install:append() {
     rm -fr "${D}${localstatedir}/lock"
     rm -fr "${D}${localstatedir}/run"
+    rmdir "${D}${localstatedir}/log/${BPN}/saflog"
+    rmdir "${D}${localstatedir}/log/${BPN}"
+    rmdir "${D}${localstatedir}/log"
     rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
     rmdir --ignore-fail-on-non-empty "${D}${datadir}/java"
-    if [ ! -d "${D}${sysconfdir}/init.d" ]; then
-        install -d ${D}${sysconfdir}/init.d
-        install -m 0755 ${B}/osaf/services/infrastructure/nid/scripts/opensafd ${D}${sysconfdir}/init.d/
+
+    # Rename /etc/init.d/opensafd to /usr/lib/opensaf/opensafd-init as it is
+    # needed by opensafd.service, but /etc/init.d is removed by systemd.bbclass
+    # if sysvinit is not in DISTRO_FEATURES.
+    mv ${D}${sysconfdir}/init.d/opensafd ${D}${libdir}/${BPN}/opensafd-init
+    ln -srf ${D}${libdir}/${BPN}/opensafd-init ${D}${sysconfdir}/init.d/opensafd
+    [ ! -f ${D}${systemd_system_unitdir}/opensafd.service ] ||
+        sed -ri -e "s|/etc/init.d/opensafd|${libdir}/${BPN}/opensafd-init|" ${D}${systemd_system_unitdir}/opensafd.service
+
+    # Create /var/log/opensaf/saflog in runtime.
+    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
+        install -d ${D}${nonarch_libdir}/tmpfiles.d
+        echo "d ${localstatedir}/log/${BPN}/saflog - - - -" > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
+    fi
+    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then
+        install -d ${D}${sysconfdir}/default/volatiles
+        echo "d root root 0755 ${localstatedir}/log/${BPN}/saflog none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
     fi
 }
 
 FILES:${PN} += "${libdir}/libSa*.so ${systemd_unitdir}/system/*.service"
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
 FILES:${PN}-dev += "${libdir}/libopensaf_core.so"
 FILES:${PN}-staticdev += "${PKGLIBDIR}/*.a"
 
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Fix-makedefs.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Fix-makedefs.patch
new file mode 100644
index 0000000..e83085d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Fix-makedefs.patch
@@ -0,0 +1,117 @@
+From 9000ee4d8bb5c5e0bcc588e9bec86eb56f4285e1 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Fri, 19 Jun 2015 16:45:54 +0900
+Subject: [PATCH] Fix makedefs
+
+1)remove RANLIB, SYSLIBS, AR and get them from env.
+2)reference sysroot when searching header files
+3)include sysroot path instead of absolute include path
+for Linux2 and Linux3 systems.
+4)for non-native build, search STAGING_BASELIBDIR/LIBDIR
+  native build, search host library path for nsl and resolv library
+  which comes from libc
+
+Upstreamstatus: Inappropriate [embedded specific]
+
+Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
+---
+ makedefs | 27 +++++++++++----------------
+ 1 file changed, 11 insertions(+), 16 deletions(-)
+
+diff --git a/makedefs b/makedefs
+index 3448c1e..78e0717 100644
+--- a/makedefs
++++ b/makedefs
+@@ -197,9 +197,6 @@ echo "# pie=$pie"
+ 
+ # Defaults for most sane systems
+ 
+-RANLIB=ranlib
+-SYSLIBS=
+-AR=ar
+ ARFL=rv
+ 
+ # Ugly function to make our error message more visible among the
+@@ -492,12 +489,12 @@ case "$SYSTEM.$RELEASE" in
+ 		case "$CCARGS" in
+ 		 *-DNO_DB*) ;;
+ 		 *-DHAS_DB*) ;;
+-		 *) if [ -f /usr/include/db.h ]
++		 *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ]
+ 		    then
+ 			: we are all set
+-		    elif [ -f /usr/include/db/db.h ]
++		    elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ]
+ 		    then
+-			CCARGS="$CCARGS -I/usr/include/db"
++			CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db"
+ 		    else
+ 			# No, we're not going to try db1 db2 db3 etc.
+ 			# On a properly installed system, Postfix builds
+@@ -506,12 +503,12 @@ case "$SYSTEM.$RELEASE" in
+ 			echo "Install the appropriate db*-devel package first." 1>&2
+ 			exit 1
+ 		    fi
+-		    SYSLIBS="-ldb"
++		    SYSLIBS="$SYSLIBS -ldb"
+ 		    ;;
+ 		esac
+ 		for name in nsl resolv $GDBM_LIBS
+ 		do
+-		    for lib in /usr/lib64 /lib64 /usr/lib /lib
++		    for lib in $BUILD_SYSROOT_NSL_PATH
+ 		    do
+ 			test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
+ 			    SYSLIBS="$SYSLIBS -l$name"
+@@ -531,7 +528,7 @@ case "$SYSTEM.$RELEASE" in
+ 		       if [ `expr "X$CCARGS" : "X.*-DNO_EPOLL"` -gt 0 ]
+ 		       then
+ 			   :
+-		       elif [ ! -e /usr/include/sys/epoll.h ]
++		       elif [ ! -e "$BUILD_SYSROOT"/usr/include/sys/epoll.h ]
+ 		       then
+ 			   echo CCARGS="$CCARGS -DNO_EPOLL"
+ 		       else
+@@ -555,8 +552,6 @@ int     main(int argc, char **argv)
+ }
+ EOF
+ 			   ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
+-			   ./makedefs.test 2>/dev/null ||
+-				CCARGS="$CCARGS -DNO_EPOLL"
+ 			   rm -f makedefs.test makedefs.test.[co]
+ 		       fi;;
+ 		esac
+@@ -572,12 +567,12 @@ EOF
+ 		case "$CCARGS" in
+ 		 *-DNO_DB*) ;;
+ 		 *-DHAS_DB*) ;;
+-		 *) if [ -f /usr/include/db.h ]
++		 *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ]
+ 		    then
+ 			: we are all set
+-		    elif [ -f /usr/include/db/db.h ]
++		    elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ]
+ 		    then
+-			CCARGS="$CCARGS -I/usr/include/db"
++			CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db"
+ 		    else
+ 			# On a properly installed system, Postfix builds
+ 			# by including <db.h> and by linking with -ldb
+@@ -585,12 +580,12 @@ EOF
+ 			echo "Install the appropriate db*-devel package first." 1>&2
+ 			exit 1
+ 		    fi
+-		    SYSLIBS="-ldb"
++		    SYSLIBS="$SYSLIBS -ldb"
+ 		    ;;
+ 		esac
+ 		for name in nsl resolv
+ 		do
+-		    for lib in /usr/lib64 /lib64 /usr/lib /usr/lib/* /lib /lib/*
++		    for lib in $BUILD_SYSROOT_NSL_PATH
+ 		    do
+ 			test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
+ 			    SYSLIBS="$SYSLIBS -l$name"
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch
deleted file mode 100644
index 763a4a9..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From a0d0de10e4c5ab55bc2fa48798079e2876b1211d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Aug 2017 10:29:37 -0700
-Subject: [PATCH] makedefs: Use native compiler to build makedefs.test
-
-Its a binary used during build
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- makedefs | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/makedefs b/makedefs
-index 9fd4bc2..5ee7747 100644
---- a/makedefs
-+++ b/makedefs
-@@ -526,7 +526,7 @@ int     main(int argc, char **argv)
-     exit(0);
- }
- EOF
--			   ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
-+			   ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1
- 			   rm -f makedefs.test makedefs.test.[co]
- 		       fi;;
- 		esac
-@@ -762,7 +762,7 @@ int     main(int argc, char **argv)
-     exit(0);
- }
- EOF
--		   ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
-+		   ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1
- 		   ./makedefs.test 2>/dev/null ||
- 			CCARGS="$CCARGS -DNO_SIGSETJMP"
- 		   rm -f makedefs.test makedefs.test.[co]
-@@ -796,7 +796,7 @@ int main(int argc, char **argv)
- 				  &error) != 14);
- }
- EOF
--		    ${CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
-+		    ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
- 			$icu_ldflags >/dev/null 2>&1
- 		    if ./makedefs.test 2>/dev/null ; then
- 			CCARGS="$CCARGS $icu_cppflags"
-@@ -911,7 +911,7 @@ int     main(void)
-     exit(ferror(stdout) ? 1 : 0);
- }
- EOF
--    eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
-+    eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
-     ./makedefs.test || exit 1
-     rm -f makedefs.test makedefs.test.[co]
- }
-@@ -1067,7 +1067,7 @@ int     main(void)
-     exit(ferror(stdout) ? 1 : 0);
- }
- EOF
--	eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
-+	eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
- 	parm_val=`./makedefs.test` || exit 1
- 	rm -f makedefs.test makedefs.test.[co]
- 	eval ${parm_name}=\""\$parm_val"\"
--- 
-2.14.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch
deleted file mode 100644
index 5650984..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 4caa18feb70f8f3d133657c1250a53f4e292bb42 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Fri, 12 Oct 2018 12:38:02 +0800
-Subject: [PATCH] makedefs: add -lnsl and -lresolv to SYSLIBS by default
-
-We don't need to check libnsl.so and libresolv.so since the libnsl2 is
-specified in DEPENDS and libresolv.so is from c libarary.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- makedefs | 22 ++--------------------
- 1 file changed, 2 insertions(+), 20 deletions(-)
-
-diff --git a/makedefs b/makedefs
-index 2683bce..8f1b3f4 100644
---- a/makedefs
-+++ b/makedefs
-@@ -484,16 +484,7 @@ case "$SYSTEM.$RELEASE" in
- 		    SYSLIBS="$SYSLIBS -ldb"
- 		    ;;
- 		esac
--		for name in nsl resolv $GDBM_LIBS
--		do
--		    for lib in $BUILD_SYSROOT_NSL_PATH
--		    do
--			test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
--			    SYSLIBS="$SYSLIBS -l$name"
--			    break
--			}
--		    done
--		done
-+		SYSLIBS="$SYSLIBS -lnsl -lresolv"
- 		# Kernel 2.4 added IPv6
- 		case "$RELEASE" in
- 		2.[0-3].*) CCARGS="$CCARGS -DNO_IPV6";;
-@@ -561,16 +552,7 @@ EOF
- 		    SYSLIBS="$SYSLIBS -ldb"
- 		    ;;
- 		esac
--		for name in nsl resolv
--		do
--		    for lib in $BUILD_SYSROOT_NSL_PATH
--		    do
--			test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
--			    SYSLIBS="$SYSLIBS -l$name"
--			    break
--			}
--		    done
--		done
-+		SYSLIBS="$SYSLIBS -lnsl -lresolv"
- 		SYSLIBS="$SYSLIBS -ldl"
- 		: ${SHLIB_SUFFIX=.so}
- 		: ${SHLIB_CFLAGS=-fPIC}
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch
new file mode 100644
index 0000000..347b9de
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch
@@ -0,0 +1,107 @@
+From cb69ffda0c2cbde6acdc8b01c8d5ff78d81a84fc Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Fri, 19 Jun 2015 17:14:58 +0900
+Subject: [PATCH] Change fixed postconf to a variable for cross-compiling
+
+Upstreamstatus: Inappropriate [embedded specific]
+
+Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
+---
+ Makefile.in     |  2 +-
+ postfix-install | 18 ++++++++++--------
+ 2 files changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 65e7911..40295be 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -22,7 +22,7 @@ META	= meta/main.cf.proto meta/master.cf.proto meta/postfix-files \
+ EXPAND	= sed -e "s;\$${LIB_PREFIX};$(LIB_PREFIX);" \
+ 	    -e "s;\$${LIB_SUFFIX};$(LIB_SUFFIX);"
+ SHLIB_DIR_OVERRIDE = \
+-	$${shlib_directory:-`$(SHLIB_ENV) bin/postconf -dhx shlib_directory`}
++	$${shlib_directory:-`$(SHLIB_ENV) $(POSTCONF) -dhx shlib_directory`}
+ 
+ default: update
+ 
+diff --git a/postfix-install b/postfix-install
+index e498cd3..8049f43 100644
+--- a/postfix-install
++++ b/postfix-install
+@@ -244,8 +244,8 @@ test -z "$non_interactive" -a ! -t 0 && {
+     exit 1
+ }
+ 
+-test -x bin/postconf || {
+-    echo $0: Error: no bin/postconf file. Did you forget to run \"make\"? 1>&2
++test -x "$POSTCONF" || {
++    echo $0: Error: no $POSTCONF file. Did you forget to run \"make\"? 1>&2
+     exit 1
+ }
+ 
+@@ -266,7 +266,7 @@ do
+     case "$junk" in
+     *MAIL_VERSION*) 
+ 	case "$mail_version" in
+-	"") mail_version="`bin/postconf -dhx mail_version`" || exit 1
++	"") mail_version="`$POSTCONF -dhx mail_version`" || exit 1
+ 	esac
+ 	val=`echo "$junk" | sed 's/MAIL_VERSION$/'"$mail_version/g"` || exit 1
+ 	case "$val" in
+@@ -454,7 +454,7 @@ template files main.cf.proto and master.cf.proto."
+ 
+ : ${install_root=/}
+ : ${tempdir=`pwd`}
+-: ${config_directory=`bin/postconf -c conf -h -d config_directory`}
++: ${config_directory=`$POSTCONF -c conf -h -d config_directory`}
+ 
+ # Find out the location of installed configuration files.
+ 
+@@ -520,7 +520,7 @@ test -f $CONFIG_DIRECTORY/main.cf && {
+ 	case "$junk" in
+ 	"") eval unset $name;;
+ 	esac
+-	eval : \${$name=\`bin/postconf -c $CONFIG_DIRECTORY -hx $name\`} ||
++	eval : \${$name=\`$POSTCONF -c $CONFIG_DIRECTORY -hx $name\`} ||
+ 	    exit 1
+     done
+ }
+@@ -533,7 +533,7 @@ do
+     case "$junk" in
+     "") eval unset $name;;
+     esac
+-    eval : \${$name=\`bin/postconf -c conf -d -hx $name\`} || exit 1
++    eval : \${$name=\`$POSTCONF -c conf -d -hx $name\`} || exit 1
+ done
+ 
+ # Override settings manually.
+@@ -670,6 +670,8 @@ README_DIRECTORY=$install_root$readme_directory
+ SHLIB_DIRECTORY=$install_root$shlib_directory
+ META_DIRECTORY=$install_root$meta_directory
+ 
++test "x$POSTCONF" != "x" || POSTCONF="bin/postconf"
++
+ # Avoid repeated tests for existence of these; default permissions suffice.
+ 
+ test -d $DAEMON_DIRECTORY || mkdir -p $DAEMON_DIRECTORY || exit 1
+@@ -841,7 +843,7 @@ IFS="$BACKUP_IFS"
+ # the wrong place when Postfix is being upgraded.
+ 
+ case "$mail_version" in
+-"") mail_version="`bin/postconf -dhx mail_version`" || exit 1
++"") mail_version="`$POSTCONF -c $CONFIG_DIRECTORY -dhx mail_version`" || exit 1
+ esac
+ 
+ # Undo MAIL_VERSION expansion at the end of a parameter value. If
+@@ -861,7 +863,7 @@ do
+     esac
+ done
+ 
+-bin/postconf -c $CONFIG_DIRECTORY -e \
++"$POSTCONF" -c $CONFIG_DIRECTORY -e \
+     "daemon_directory = $daemon_directory" \
+     "data_directory = $data_directory" \
+     "command_directory = $command_directory" \
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch
new file mode 100644
index 0000000..0fc938e
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch
@@ -0,0 +1,64 @@
+From 995bddd9563b1aecca2369f2f9c675f88bdc0053 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 26 Aug 2017 10:29:37 -0700
+Subject: [PATCH] makedefs: Use native compiler to build makedefs.test
+
+Its a binary used during build
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ makedefs | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/makedefs b/makedefs
+index 78e0717..3299eba 100644
+--- a/makedefs
++++ b/makedefs
+@@ -551,7 +551,7 @@ int     main(int argc, char **argv)
+     exit(0);
+ }
+ EOF
+-			   ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
++			   ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1
+ 			   rm -f makedefs.test makedefs.test.[co]
+ 		       fi;;
+ 		esac
+@@ -787,7 +787,7 @@ int     main(int argc, char **argv)
+     exit(0);
+ }
+ EOF
+-		   ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
++		   ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1
+ 		   ./makedefs.test 2>/dev/null ||
+ 			CCARGS="$CCARGS -DNO_SIGSETJMP"
+ 		   rm -f makedefs.test makedefs.test.[co]
+@@ -823,7 +823,7 @@ int main(int argc, char **argv)
+ 				  &error) != 14);
+ }
+ EOF
+-		    ${CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
++		    ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
+ 			$icu_ldflags >/dev/null 2>&1
+ 		    if ./makedefs.test 2>/dev/null ; then
+ 			CCARGS="$CCARGS $icu_cppflags"
+@@ -938,7 +938,7 @@ int     main(void)
+     exit(ferror(stdout) ? 1 : 0);
+ }
+ EOF
+-    eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
++    eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
+     ./makedefs.test || exit 1
+     rm -f makedefs.test makedefs.test.[co]
+ }
+@@ -1094,7 +1094,7 @@ int     main(void)
+     exit(ferror(stdout) ? 1 : 0);
+ }
+ EOF
+-	eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
++	eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
+ 	parm_val=`./makedefs.test` || exit 1
+ 	rm -f makedefs.test makedefs.test.[co]
+ 	eval ${parm_name}=\""\$parm_val"\"
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0004-Fix-icu-config.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0004-Fix-icu-config.patch
new file mode 100644
index 0000000..6b4a5f7
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0004-Fix-icu-config.patch
@@ -0,0 +1,32 @@
+From afef4a9391e6bb1a6c3e73d370f240577ed8b0dd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 16 Jan 2022 11:21:54 +0800
+Subject: [PATCH] Fix icu config
+
+do not entertain cppflags from icu, this is because
+icu-config feeds the -I path without sysroot which
+caused native headers to be included and build is
+corrupted in any case its just adding -I/usr/include
+to the CCARGS which we loose nothing if its not
+entertained.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ makedefs | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/makedefs b/makedefs
+index 3299eba..2a76f20 100644
+--- a/makedefs
++++ b/makedefs
+@@ -826,7 +826,6 @@ EOF
+ 		    ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
+ 			$icu_ldflags >/dev/null 2>&1
+ 		    if ./makedefs.test 2>/dev/null ; then
+-			CCARGS="$CCARGS $icu_cppflags"
+ 			SYSLIBS="$SYSLIBS $icu_ldflags"
+ 		    else
+ 			CCARGS="$CCARGS -DNO_EAI"
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0005-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0005-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch
new file mode 100644
index 0000000..b425cf8
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0005-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch
@@ -0,0 +1,58 @@
+From 545d4a79b50caa5698622c0c1905ae154197a16f Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Fri, 12 Oct 2018 12:38:02 +0800
+Subject: [PATCH] makedefs: add -lnsl and -lresolv to SYSLIBS by default
+
+We don't need to check libnsl.so and libresolv.so since the libnsl2 is
+specified in DEPENDS and libresolv.so is from c libarary.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ makedefs | 22 ++--------------------
+ 1 file changed, 2 insertions(+), 20 deletions(-)
+
+diff --git a/makedefs b/makedefs
+index 2a76f20..9d5db9f 100644
+--- a/makedefs
++++ b/makedefs
+@@ -506,16 +506,7 @@ case "$SYSTEM.$RELEASE" in
+ 		    SYSLIBS="$SYSLIBS -ldb"
+ 		    ;;
+ 		esac
+-		for name in nsl resolv $GDBM_LIBS
+-		do
+-		    for lib in $BUILD_SYSROOT_NSL_PATH
+-		    do
+-			test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
+-			    SYSLIBS="$SYSLIBS -l$name"
+-			    break
+-			}
+-		    done
+-		done
++		SYSLIBS="$SYSLIBS -lnsl -lresolv"
+ 		# Kernel 2.4 added IPv6
+ 		case "$RELEASE" in
+ 		2.[0-3].*) CCARGS="$CCARGS -DNO_IPV6";;
+@@ -583,16 +574,7 @@ EOF
+ 		    SYSLIBS="$SYSLIBS -ldb"
+ 		    ;;
+ 		esac
+-		for name in nsl resolv
+-		do
+-		    for lib in $BUILD_SYSROOT_NSL_PATH
+-		    do
+-			test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
+-			    SYSLIBS="$SYSLIBS -l$name"
+-			    break
+-			}
+-		    done
+-		done
++		SYSLIBS="$SYSLIBS -lnsl -lresolv"
+ 		SYSLIBS="$SYSLIBS -ldl"
+ 		: ${SHLIB_SUFFIX=.so}
+ 		: ${SHLIB_CFLAGS=-fPIC}
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0006-correct-signature-of-closefrom-API.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0006-correct-signature-of-closefrom-API.patch
new file mode 100644
index 0000000..95ca03b
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0006-correct-signature-of-closefrom-API.patch
@@ -0,0 +1,104 @@
+From 56bec31c4117fddee3a141bcca6c585aa8ddbbe2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 14 Jul 2021 18:08:30 -0700
+Subject: [PATCH] correct signature of closefrom() API
+
+glibc 2.34 introduced this function and finds this error which has been
+all along.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/util/sys_compat.c |  6 +++---
+ src/util/sys_defs.h   | 12 ++++++------
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/src/util/sys_compat.c b/src/util/sys_compat.c
+index 8bf8e58..c87f043 100644
+--- a/src/util/sys_compat.c
++++ b/src/util/sys_compat.c
+@@ -286,7 +286,7 @@ int     dup2_pass_on_exec(int oldd, int newd)
+ 
+ /* closefrom() - closes all file descriptors from the given one up */
+ 
+-int     closefrom(int lowfd)
++void     closefrom(int lowfd)
+ {
+     int     fd_limit = open_limit(0);
+     int     fd;
+@@ -298,14 +298,14 @@ int     closefrom(int lowfd)
+      */
+     if (lowfd < 0) {
+ 	errno = EBADF;
+-	return (-1);
++	return;
+     }
+     if (fd_limit > 500)
+ 	fd_limit = 500;
+     for (fd = lowfd; fd < fd_limit; fd++)
+ 	(void) close(fd);
+ 
+-    return (0);
++    return;
+ }
+ 
+ #endif
+diff --git a/src/util/sys_defs.h b/src/util/sys_defs.h
+index 2e1c953..515de6c 100644
+--- a/src/util/sys_defs.h
++++ b/src/util/sys_defs.h
+@@ -1509,7 +1509,7 @@ extern int setsid(void);
+ #endif
+ 
+ #ifndef HAS_CLOSEFROM
+-extern int closefrom(int);
++extern void closefrom(int);
+ 
+ #endif
+ 
+@@ -1563,7 +1563,7 @@ typedef int pid_t;
+ 
+  /*
+   * Clang-style attribute tests.
+-  * 
++  *
+   * XXX Without the unconditional test below, gcc 4.6 will barf on ``elif
+   * defined(__clang__) && __has_attribute(__whatever__)'' with error message
+   * ``missing binary operator before token "("''.
+@@ -1577,7 +1577,7 @@ typedef int pid_t;
+   * warn for missing initializations and other trouble. However, OPENSTEP4
+   * gcc 2.7.x cannot handle this so we define this only if NORETURN isn't
+   * already defined above.
+-  * 
++  *
+   * Data point: gcc 2.7.2 has __attribute__ (Wietse Venema) but gcc 2.6.3 does
+   * not (Clive Jones). So we'll set the threshold at 2.7.
+   */
+@@ -1653,12 +1653,12 @@ typedef int pid_t;
+   * write to output parameters (for example, stat- or scanf-like functions)
+   * or from functions that have other useful side effects (for example,
+   * fseek- or rename-like functions).
+-  * 
++  *
+   * DO NOT use this for functions that write to a stream; it is entirely
+   * legitimate to detect write errors with fflush() or fclose() only. On the
+   * other hand most (but not all) functions that read from a stream must
+   * never ignore result values.
+-  * 
++  *
+   * XXX Prepending "(void)" won't shut up GCC. Clang behaves as expected.
+   */
+ #if ((__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || __GNUC__ > 3)
+@@ -1739,7 +1739,7 @@ typedef const char *CONST_CHAR_STAR;
+   * Safety. On some systems, ctype.h misbehaves with non-ASCII or negative
+   * characters. More importantly, Postfix uses the ISXXX() macros to ensure
+   * protocol compliance, so we have to rule out non-ASCII characters.
+-  * 
++  *
+   * XXX The (unsigned char) casts in isalnum() etc arguments are unnecessary
+   * because the ISASCII() guard already ensures that the values are
+   * non-negative; the casts are done anyway to shut up chatty compilers.
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0007-correct-signature-of-closefrom-API.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0007-correct-signature-of-closefrom-API.patch
deleted file mode 100644
index e583354..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0007-correct-signature-of-closefrom-API.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 1e451ddc15af1a4e19318c8b1ced46c5c41610d3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 14 Jul 2021 18:08:30 -0700
-Subject: [PATCH] correct signature of closefrom() API
-
-glibc 2.34 introduced this function and finds this error which has been
-all along.
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/util/sys_compat.c |  6 +++---
- src/util/sys_defs.h   | 12 ++++++------
- 2 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/src/util/sys_compat.c b/src/util/sys_compat.c
-index 8bf8e58..c87f043 100644
---- a/src/util/sys_compat.c
-+++ b/src/util/sys_compat.c
-@@ -286,7 +286,7 @@ int     dup2_pass_on_exec(int oldd, int newd)
- 
- /* closefrom() - closes all file descriptors from the given one up */
- 
--int     closefrom(int lowfd)
-+void     closefrom(int lowfd)
- {
-     int     fd_limit = open_limit(0);
-     int     fd;
-@@ -298,14 +298,14 @@ int     closefrom(int lowfd)
-      */
-     if (lowfd < 0) {
- 	errno = EBADF;
--	return (-1);
-+	return;
-     }
-     if (fd_limit > 500)
- 	fd_limit = 500;
-     for (fd = lowfd; fd < fd_limit; fd++)
- 	(void) close(fd);
- 
--    return (0);
-+    return;
- }
- 
- #endif
-diff --git a/src/util/sys_defs.h b/src/util/sys_defs.h
-index 2e1c953..515de6c 100644
---- a/src/util/sys_defs.h
-+++ b/src/util/sys_defs.h
-@@ -1509,7 +1509,7 @@ extern int setsid(void);
- #endif
- 
- #ifndef HAS_CLOSEFROM
--extern int closefrom(int);
-+extern void closefrom(int);
- 
- #endif
- 
-@@ -1563,7 +1563,7 @@ typedef int pid_t;
- 
-  /*
-   * Clang-style attribute tests.
--  * 
-+  *
-   * XXX Without the unconditional test below, gcc 4.6 will barf on ``elif
-   * defined(__clang__) && __has_attribute(__whatever__)'' with error message
-   * ``missing binary operator before token "("''.
-@@ -1577,7 +1577,7 @@ typedef int pid_t;
-   * warn for missing initializations and other trouble. However, OPENSTEP4
-   * gcc 2.7.x cannot handle this so we define this only if NORETURN isn't
-   * already defined above.
--  * 
-+  *
-   * Data point: gcc 2.7.2 has __attribute__ (Wietse Venema) but gcc 2.6.3 does
-   * not (Clive Jones). So we'll set the threshold at 2.7.
-   */
-@@ -1653,12 +1653,12 @@ typedef int pid_t;
-   * write to output parameters (for example, stat- or scanf-like functions)
-   * or from functions that have other useful side effects (for example,
-   * fseek- or rename-like functions).
--  * 
-+  *
-   * DO NOT use this for functions that write to a stream; it is entirely
-   * legitimate to detect write errors with fflush() or fclose() only. On the
-   * other hand most (but not all) functions that read from a stream must
-   * never ignore result values.
--  * 
-+  *
-   * XXX Prepending "(void)" won't shut up GCC. Clang behaves as expected.
-   */
- #if ((__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || __GNUC__ > 3)
-@@ -1739,7 +1739,7 @@ typedef const char *CONST_CHAR_STAR;
-   * Safety. On some systems, ctype.h misbehaves with non-ASCII or negative
-   * characters. More importantly, Postfix uses the ISXXX() macros to ensure
-   * protocol compliance, so we have to rule out non-ASCII characters.
--  * 
-+  *
-   * XXX The (unsigned char) casts in isalnum() etc arguments are unnecessary
-   * because the ISASCII() guard already ensures that the values are
-   * non-negative; the casts are done anyway to shut up chatty compilers.
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/aliasesdb b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/aliasesdb
old mode 100755
new mode 100644
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/check_hostname.sh b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/check_hostname.sh
old mode 100755
new mode 100644
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/icu-config.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/icu-config.patch
deleted file mode 100644
index 9bd9c2f..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/icu-config.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-do not entertain cppflags from icu, this is because
-icu-config feeds the -I path without sysroot which
-caused native headers to be included and build is
-corrupted in any case its just adding -I/usr/include
-to the CCARGS which we loose nothing if its not
-entertained.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: postfix-3.2.2/makedefs
-===================================================================
---- postfix-3.2.2.orig/makedefs
-+++ postfix-3.2.2/makedefs
-@@ -799,7 +799,6 @@ EOF
- 		    ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
- 			$icu_ldflags >/dev/null 2>&1
- 		    if ./makedefs.test 2>/dev/null ; then
--			CCARGS="$CCARGS $icu_cppflags"
- 			SYSLIBS="$SYSLIBS $icu_ldflags"
- 		    else
- 			CCARGS="$CCARGS -DNO_EAI"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/install.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/install.patch
deleted file mode 100644
index d023680..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/install.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 190650e1cd5700cd6950ead3fcb17ebcec192a2e Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Fri, 19 Jun 2015 17:14:58 +0900
-Subject: [PATCH] Change fixed postconf to a variable for cross-compiling
-
-Upstreamstatus: Inappropriate [embedded specific]
-
-Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
----
- postfix-install | 18 ++++++++++--------
- 1 file changed, 10 insertions(+), 8 deletions(-)
-
-diff --git a/postfix-install b/postfix-install
-index 1662c3d..d11fa12 100644
---- a/postfix-install
-+++ b/postfix-install
-@@ -226,8 +226,8 @@ test -z "$non_interactive" -a ! -t 0 && {
-     exit 1
- }
- 
--test -x bin/postconf || {
--    echo $0: Error: no bin/postconf file. Did you forget to run \"make\"? 1>&2
-+test -x "$POSTCONF" || {
-+    echo $0: Error: no $POSTCONF file. Did you forget to run \"make\"? 1>&2
-     exit 1
- }
- 
-@@ -248,7 +248,7 @@ do
-     case "$junk" in
-     *MAIL_VERSION*) 
- 	case "$mail_version" in
--	"") mail_version="`bin/postconf -dhx mail_version`" || exit 1
-+	"") mail_version="`$POSTCONF -dhx mail_version`" || exit 1
- 	esac
- 	val=`echo "$junk" | sed 's/MAIL_VERSION$/'"$mail_version/g"` || exit 1
- 	case "$val" in
-@@ -434,7 +434,7 @@ template files main.cf.proto and master.cf.proto."
- 
- : ${install_root=/}
- : ${tempdir=`pwd`}
--: ${config_directory=`bin/postconf -c conf -h -d config_directory`}
-+: ${config_directory=`$POSTCONF -c conf -h -d config_directory`}
- 
- # Find out the location of installed configuration files.
- 
-@@ -500,7 +500,7 @@ test -f $CONFIG_DIRECTORY/main.cf && {
- 	case "$junk" in
- 	"") eval unset $name;;
- 	esac
--	eval : \${$name=\`bin/postconf -c $CONFIG_DIRECTORY -hx $name\`} ||
-+	eval : \${$name=\`$POSTCONF -c $CONFIG_DIRECTORY -hx $name\`} ||
- 	    exit 1
-     done
- }
-@@ -513,7 +513,7 @@ do
-     case "$junk" in
-     "") eval unset $name;;
-     esac
--    eval : \${$name=\`bin/postconf -c conf -d -hx $name\`} || exit 1
-+    eval : \${$name=\`$POSTCONF -c conf -d -hx $name\`} || exit 1
- done
- 
- # Override settings manually.
-@@ -639,6 +639,8 @@ README_DIRECTORY=$install_root$readme_directory
- SHLIB_DIRECTORY=$install_root$shlib_directory
- META_DIRECTORY=$install_root$meta_directory
- 
-+test "x$POSTCONF" != "x" || POSTCONF="bin/postconf"
-+
- # Avoid repeated tests for existence of these; default permissions suffice.
- 
- test -d $DAEMON_DIRECTORY || mkdir -p $DAEMON_DIRECTORY || exit 1
-@@ -810,7 +812,7 @@ IFS="$BACKUP_IFS"
- # the wrong place when Postfix is being upgraded.
- 
- case "$mail_version" in
--"") mail_version="`bin/postconf -dhx mail_version`" || exit 1
-+"") mail_version="`$POSTCONF -dhx mail_version`" || exit 1
- esac
- 
- # Undo MAIL_VERSION expansion at the end of a parameter value. If
-@@ -830,7 +832,7 @@ do
-     esac
- done
- 
--bin/postconf -c $CONFIG_DIRECTORY -e \
-+"$POSTCONF" -c $CONFIG_DIRECTORY -e \
-     "daemon_directory = $daemon_directory" \
-     "data_directory = $data_directory" \
-     "command_directory = $command_directory" \
--- 
-1.8.4.2
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/makedefs.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/makedefs.patch
deleted file mode 100644
index 98d5f7e..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/makedefs.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 4f49e2ce420fb3c17415937530493158ef312733 Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Fri, 19 Jun 2015 16:45:54 +0900
-Subject: [PATCH] 1)remove RANLIB, SYSLIBS, AR and get them from env.
-
-2)reference sysroot when searching header files
-3)include sysroot path instead of absolute include path
-for Linux2 and Linux3 systems.
-4)for non-native build, search STAGING_BASELIBDIR/LIBDIR
-  native build, search host library path for nsl and resolv library
-  which comes from libc
-
-Upstreamstatus: Inappropriate [embedded specific]
-
-Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
----
- makedefs | 27 +++++++++++----------------
- 1 file changed, 11 insertions(+), 16 deletions(-)
-
-diff --git a/makedefs b/makedefs
-index 8b84e47..893fb0d 100644
---- a/makedefs
-+++ b/makedefs
-@@ -170,9 +170,6 @@ echo "# pie=$pie"
- 
- # Defaults for most sane systems
- 
--RANLIB=ranlib
--SYSLIBS=
--AR=ar
- ARFL=rv
- 
- # Ugly function to make our error message more visible among the
-@@ -424,12 +421,12 @@ case "$SYSTEM.$RELEASE" in
- 		case "$CCARGS" in
- 		 *-DNO_DB*) ;;
- 		 *-DHAS_DB*) ;;
--		 *) if [ -f /usr/include/db.h ]
-+		 *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ]
- 		    then
- 			: we are all set
--		    elif [ -f /usr/include/db/db.h ]
-+		    elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ]
- 		    then
--			CCARGS="$CCARGS -I/usr/include/db"
-+			CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db"
- 		    else
- 			# No, we're not going to try db1 db2 db3 etc.
- 			# On a properly installed system, Postfix builds
-@@ -438,12 +435,12 @@ case "$SYSTEM.$RELEASE" in
- 			echo "Install the appropriate db*-devel package first." 1>&2
- 			exit 1
- 		    fi
--		    SYSLIBS="-ldb"
-+		    SYSLIBS="$SYSLIBS -ldb"
- 		    ;;
- 		esac
- 		for name in nsl resolv $GDBM_LIBS
- 		do
--		    for lib in /usr/lib64 /lib64 /usr/lib /lib
-+		    for lib in $BUILD_SYSROOT_NSL_PATH
- 		    do
- 			test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
- 			    SYSLIBS="$SYSLIBS -l$name"
-@@ -463,7 +460,7 @@ case "$SYSTEM.$RELEASE" in
- 		       if [ `expr "X$CCARGS" : "X.*-DNO_EPOLL"` -gt 0 ]
- 		       then
- 			   :
--		       elif [ ! -e /usr/include/sys/epoll.h ]
-+		       elif [ ! -e "$BUILD_SYSROOT"/usr/include/sys/epoll.h ]
- 		       then
- 			   echo CCARGS="$CCARGS -DNO_EPOLL"
- 		       else
-@@ -487,8 +484,6 @@ int     main(int argc, char **argv)
- }
- EOF
- 			   ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
--			   ./makedefs.test 2>/dev/null ||
--				CCARGS="$CCARGS -DNO_EPOLL"
- 			   rm -f makedefs.test makedefs.test.[co]
- 		       fi;;
- 		esac
-@@ -504,12 +499,12 @@ EOF
- 		case "$CCARGS" in
- 		 *-DNO_DB*) ;;
- 		 *-DHAS_DB*) ;;
--		 *) if [ -f /usr/include/db.h ]
-+		 *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ]
- 		    then
- 			: we are all set
--		    elif [ -f /usr/include/db/db.h ]
-+		    elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ]
- 		    then
--			CCARGS="$CCARGS -I/usr/include/db"
-+			CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db"
- 		    else
- 			# On a properly installed system, Postfix builds
- 			# by including <db.h> and by linking with -ldb
-@@ -517,12 +512,12 @@ EOF
- 			echo "Install the appropriate db*-devel package first." 1>&2
- 			exit 1
- 		    fi
--		    SYSLIBS="-ldb"
-+		    SYSLIBS="$SYSLIBS -ldb"
- 		    ;;
- 		esac
- 		for name in nsl resolv
- 		do
--		    for lib in /usr/lib64 /lib64 /usr/lib /usr/lib/* /lib /lib/*
-+		    for lib in $BUILD_SYSROOT_NSL_PATH
- 		    do
- 			test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
- 			    SYSLIBS="$SYSLIBS -l$name"
--- 
-1.8.4.2
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix
old mode 100755
new mode 100644
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix-install.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix-install.patch
deleted file mode 100644
index 45479bd..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix-install.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Index: postfix-3.2.2/postfix-install
-===================================================================
---- postfix-3.2.2.orig/postfix-install
-+++ postfix-3.2.2/postfix-install
-@@ -843,7 +843,7 @@ IFS="$BACKUP_IFS"
- # the wrong place when Postfix is being upgraded.
- 
- case "$mail_version" in
--"") mail_version="`$POSTCONF -dhx mail_version`" || exit 1
-+"") mail_version="`$POSTCONF -c $CONFIG_DIRECTORY -dhx mail_version`" || exit 1
- esac
- 
- # Undo MAIL_VERSION expansion at the end of a parameter value. If
-Index: postfix-3.2.2/Makefile.in
-===================================================================
---- postfix-3.2.2.orig/Makefile.in
-+++ postfix-3.2.2/Makefile.in
-@@ -20,7 +20,7 @@ META	= meta/main.cf.proto meta/master.cf
- EXPAND	= sed -e "s;\$${LIB_PREFIX};$(LIB_PREFIX);" \
- 	    -e "s;\$${LIB_SUFFIX};$(LIB_SUFFIX);"
- SHLIB_DIR_OVERRIDE = \
--	$${shlib_directory:-`$(SHLIB_ENV) bin/postconf -dhx shlib_directory`}
-+	$${shlib_directory:-`$(SHLIB_ENV) $(POSTCONF) -dhx shlib_directory`}
- 
- default: update
- 
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.6.2.bb b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.6.2.bb
deleted file mode 100644
index 982544d..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.6.2.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require postfix.inc
-
-SRC_URI += "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \
-           file://makedefs.patch \
-           file://install.patch \
-           file://main.cf \
-           file://postfix \
-           file://internal_recipient \
-           file://postfix.service \
-           file://aliasesdb \
-           file://check_hostname.sh \
-           file://0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch \
-           file://postfix-install.patch \
-           file://icu-config.patch \
-           file://0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch \
-           file://0007-correct-signature-of-closefrom-API.patch \
-           "
-SRC_URI[sha256sum] = "507323d20d7b3f705f49cf8c07d437c6d8090bed07e15a3c0ec405edad54a7d4"
-UPSTREAM_CHECK_REGEX = "postfix\-(?P<pver>3\.6(\.\d+)+).tar.gz"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.6.4.bb b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.6.4.bb
new file mode 100644
index 0000000..54c8eab
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.6.4.bb
@@ -0,0 +1,18 @@
+require postfix.inc
+
+SRC_URI += "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \
+            file://main.cf \
+            file://postfix \
+            file://internal_recipient \
+            file://postfix.service \
+            file://aliasesdb \
+            file://check_hostname.sh \
+            file://0001-Fix-makedefs.patch \
+            file://0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch \
+            file://0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch \
+            file://0004-Fix-icu-config.patch \
+            file://0005-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch \
+            file://0006-correct-signature-of-closefrom-API.patch \
+           "
+SRC_URI[sha256sum] = "8de0619dcf2fa7c215a80cf84b82ab71631d4d4722cba0949725ce3e18031d4e"
+UPSTREAM_CHECK_REGEX = "postfix\-(?P<pver>3\.6(\.\d+)+).tar.gz"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.7a.bb b/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.7a.bb
index 981757b..cdebd24 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.7a.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.7a.bb
@@ -7,7 +7,7 @@
 SRCREV = "715eadc1aa4f6b07d69f9d09558e9cb471e51d87"
 BRANCH = "1.3.7"
 
-SRC_URI = "git://github.com/proftpd/proftpd.git;branch=${BRANCH} \
+SRC_URI = "git://github.com/proftpd/proftpd.git;branch=${BRANCH};protocol=https \
            file://basic.conf.patch \
            file://proftpd-basic.init \
            file://default \
diff --git a/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.49.bb b/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.49.bb
deleted file mode 100644
index 5a8e9c1..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.49.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "FTP Server with a strong focus on software security"
-DESCRIPTION = "Pure-FTPd is a free (BSD license), secure, production-quality and standard-conformant FTP server."
-HOMEPAGE = "http://www.pureftpd.org/project/pure-ftpd"
-SECTION = "net"
-LICENSE = "BSD-0-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e25e28bc568d70eb26c3a91387c86ccb"
-
-DEPENDS = "libcap virtual/crypt"
-
-SRC_URI = "http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-${PV}.tar.gz \
-           file://0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch \
-           file://nostrip.patch \
-"
-SRC_URI[md5sum] = "451879495ba61c1d7dcfca8dd231119f"
-SRC_URI[sha256sum] = "767bf458c70b24f80c0bb7a1bbc89823399e75a0a7da141d30051a2b8cc892a5"
-
-inherit autotools
-
-PACKAGECONFIG[libsodium] ="ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=yes, \
-                           ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=no, libsodium"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.50.bb b/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.50.bb
new file mode 100644
index 0000000..e29d063
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.50.bb
@@ -0,0 +1,19 @@
+SUMMARY = "FTP Server with a strong focus on software security"
+DESCRIPTION = "Pure-FTPd is a free (BSD license), secure, production-quality and standard-conformant FTP server."
+HOMEPAGE = "http://www.pureftpd.org/project/pure-ftpd"
+SECTION = "net"
+LICENSE = "BSD-0-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a4496a14dea009df36c612707d455d02"
+
+DEPENDS = "libcap virtual/crypt"
+
+SRC_URI = "http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-${PV}.tar.gz \
+           file://0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch \
+           file://nostrip.patch \
+"
+SRC_URI[sha256sum] = "abe2f94eb40b330d4dc22b159991f44e5e515212f8e887049dccdef266d0ea23"
+
+inherit autotools
+
+PACKAGECONFIG[libsodium] ="ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=yes, \
+                           ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=no, libsodium"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_25.bb b/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_25.bb
index 15bf350..688add5 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_25.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_25.bb
@@ -7,7 +7,7 @@
 UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/aoetools/files/vblade/"
 
 SRCREV = "5f1a0ba8b9815e3f08a3e2635a17f78bbf2a5b10"
-SRC_URI = "git://github.com/OpenAoE/vblade \
+SRC_URI = "git://github.com/OpenAoE/vblade;branch=master;protocol=https \
            file://cross.patch \
            file://makefile-add-ldflags.patch \
            file://${BPN}.conf \
diff --git a/meta-openembedded/meta-networking/recipes-devtools/python/python3-ldap_3.3.1.bb b/meta-openembedded/meta-networking/recipes-devtools/python/python3-ldap_3.3.1.bb
deleted file mode 100644
index 0f62b57..0000000
--- a/meta-openembedded/meta-networking/recipes-devtools/python/python3-ldap_3.3.1.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# Copyright (C) 2012 Wind River Systems, Inc.
-#
-SUMMARY = "Provides a wrapper in Python to LDAP"
-DESCRIPTION = "This module provides access to the LDAP \
-(Lightweight Directory Access Protocol) through Python operations \
-instead of C API. The module mainly acts as a wrapper for the \
-OpenLDAP 2.x libraries. Errors will appear as exceptions."
-
-LICENSE = "PSF"
-HOMEPAGE = "http://www.python-ldap.org/"
-DEPENDS = "python3 openldap cyrus-sasl"
-
-PYPI_PACKAGE = "python-ldap"
-inherit pypi setuptools3
-
-LIC_FILES_CHKSUM = "file://LICENCE;md5=36ce9d726d0321b73c1521704d07db1b"
-SRC_URI[md5sum] = "7608579722c491e42f5f63b3f88a95fb"
-SRC_URI[sha256sum] = "4711cacf013e298754abd70058ccc995758177fb425f1c2d30e71adfc1d00aa5"
-
-do_configure:prepend() {
-    sed -i -e 's:^library_dirs =.*::' ${S}/setup.cfg
-    sed -i -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' ${S}/setup.cfg
-}
-
-RDEPENDS:${PN} = " \
-    ${PYTHON_PN}-pprint \
-    ${PYTHON_PN}-threading \
-    ${PYTHON_PN}-pyasn1 \
-    ${PYTHON_PN}-pyasn1-modules \
-"
diff --git a/meta-openembedded/meta-networking/recipes-devtools/python/python3-ldap_3.4.0.bb b/meta-openembedded/meta-networking/recipes-devtools/python/python3-ldap_3.4.0.bb
new file mode 100644
index 0000000..42f113d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-devtools/python/python3-ldap_3.4.0.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Provides a wrapper in Python to LDAP"
+DESCRIPTION = "This module provides access to the LDAP \
+(Lightweight Directory Access Protocol) through Python operations \
+instead of C API. The module mainly acts as a wrapper for the \
+OpenLDAP 2.x libraries. Errors will appear as exceptions."
+HOMEPAGE = "http://www.python-ldap.org/"
+LICENSE = "PSF"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=36ce9d726d0321b73c1521704d07db1b"
+
+DEPENDS = "python3 openldap cyrus-sasl"
+
+PYPI_PACKAGE = "python-ldap"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "60464c8fc25e71e0fd40449a24eae482dcd0fb7fcf823e7de627a6525b3e0d12"
+
+do_configure:prepend() {
+    sed -i -e 's:^library_dirs =.*::' \
+        -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' \
+        -e 's/= ldap_r/= ldap/g' ${S}/setup.cfg
+}
+
+RDEPENDS:${PN} = " \
+    ${PYTHON_PN}-pprint \
+    ${PYTHON_PN}-threading \
+    ${PYTHON_PN}-pyasn1 \
+    ${PYTHON_PN}-pyasn1-modules \
+"
diff --git a/meta-openembedded/meta-networking/recipes-devtools/python/python3-scapy_2.4.5.bb b/meta-openembedded/meta-networking/recipes-devtools/python/python3-scapy_2.4.5.bb
index 84acc86..d318c27 100644
--- a/meta-openembedded/meta-networking/recipes-devtools/python/python3-scapy_2.4.5.bb
+++ b/meta-openembedded/meta-networking/recipes-devtools/python/python3-scapy_2.4.5.bb
@@ -17,7 +17,7 @@
 # UTscapy does not exist in the pypi pkg
 #
 SRCREV = "32cd7eb0f620d9adf171c48d55514e8326a538d7"
-SRC_URI = "git://github.com/secdev/scapy.git \
+SRC_URI = "git://github.com/secdev/scapy.git;branch=master;protocol=https \
            file://run-ptest"
 
 S = "${WORKDIR}/git"
@@ -38,4 +38,4 @@
 
 RDEPENDS:${PN} = "tcpdump ${PYTHON_PN}-compression ${PYTHON_PN}-cryptography ${PYTHON_PN}-netclient  \
                   ${PYTHON_PN}-netserver ${PYTHON_PN}-pydoc ${PYTHON_PN}-pkgutil ${PYTHON_PN}-shell \
-                  ${PYTHON_PN}-threading ${PYTHON_PN}-numbers ${PYTHON_PN}-pycrypto"
+                  ${PYTHON_PN}-threading ${PYTHON_PN}-numbers"
diff --git a/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_3.0.3.bb b/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_3.0.3.bb
index 9092961..ec2a785 100644
--- a/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_3.0.3.bb
+++ b/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_3.0.3.bb
@@ -5,7 +5,7 @@
 
 SECTION = "base"
 
-inherit autotools pkgconfig systemd useradd
+inherit autotools pkgconfig systemd
 
 SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \
            file://corosync.conf \
@@ -18,10 +18,7 @@
 
 DEPENDS = "groff-native nss libqb kronosnet"
 
-SYSTEMD_SERVICE:${PN} = "corosync.service corosync-notifyd.service \
-                         ${@bb.utils.contains('PACKAGECONFIG', 'qdevice', 'corosync-qdevice.service', '', d)} \
-                         ${@bb.utils.contains('PACKAGECONFIG', 'qnetd', 'corosync-qnetd.service', '', d)} \
-"
+SYSTEMD_SERVICE:${PN} = "corosync.service corosync-notifyd.service"
 SYSTEMD_AUTO_ENABLE = "disable"
 
 INITSCRIPT_NAME = "corosync-daemon"
@@ -43,21 +40,17 @@
 #}
 
 do_install:append() {
-    install -D -m 0644 ${WORKDIR}/corosync.conf ${D}/${sysconfdir}/corosync/corosync.conf.example
+    install -D -m 0644 ${WORKDIR}/corosync.conf ${D}${sysconfdir}/corosync/corosync.conf.example
     install -d ${D}${sysconfdir}/sysconfig/
     install -m 0644 ${S}/init/corosync.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync
     install -m 0644 ${S}/tools/corosync-notifyd.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync-notifyd
 
-    rm -rf "${D}${localstatedir}/run"
+    rmdir ${D}${localstatedir}/log/cluster ${D}${localstatedir}/log
+    rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
 
     install -d ${D}${sysconfdir}/default/volatiles
     echo "d root root 0755 ${localstatedir}/log/cluster none" > ${D}${sysconfdir}/default/volatiles/05_corosync
 
-    if [ ${@bb.utils.filter('PACKAGECONFIG', 'qnetd', d)} ]; then
-        chown -R coroqnetd:coroqnetd ${D}${sysconfdir}/${BPN}/qnetd
-        echo "d coroqnetd coroqnetd 0770 /var/run/corosync-qnetd none" >> ${D}${sysconfdir}/default/volatiles/05_corosync
-    fi
-
     if [ ${@bb.utils.filter('DISTRO_FEATURES','systemd',d)} ]; then
         install -d ${D}${sysconfdir}/tmpfiles.d
         echo "d ${localstatedir}/log/cluster - - - -" > ${D}${sysconfdir}/tmpfiles.d/corosync.conf
@@ -68,7 +61,3 @@
 
 FILES:${PN}-dbg += "${libexecdir}/lcrso/.debug"
 FILES:${PN}-doc += "${datadir}/snmp/mibs/COROSYNC-MIB.txt"
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM:${PN} = "--system coroqnetd"
-USERADD_PARAM:${PN} = "--system -d / -M -s /bin/nologin -c 'User for corosync-qnetd' -g coroqnetd coroqnetd"
diff --git a/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.1.bb b/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.1.bb
index 48723d9..8b78433 100644
--- a/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.1.bb
+++ b/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.1.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://gpl_license.txt;md5=11c7b65c4a4acb9d5175f7e9bf99c403"
 
 SRCREV = "a96b81da4a9b619e4045805f5f13a1e982c95663"
-SRC_URI = "git://github.com/arno-iptables-firewall/aif"
+SRC_URI = "git://github.com/arno-iptables-firewall/aif;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-networking/recipes-filter/ipset/ipset_7.11.bb b/meta-openembedded/meta-networking/recipes-filter/ipset/ipset_7.11.bb
deleted file mode 100644
index 3e64f41..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ipset/ipset_7.11.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (C) 2017 Aaron Brice <aaron.brice@datasoft.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-DESCRIPTION = "Administration tool for IP sets"
-HOMEPAGE = "http://ipset.netfilter.org"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-SECTION = "base"
-
-DEPENDS = "libtool libmnl"
-
-SRC_URI = "http://ftp.netfilter.org/pub/ipset/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "3151baad30f1d9e317b2ab4f2f5aa7a9f7b4dc11fcf8fe73acd0dc0b5dbabf7d"
-
-inherit autotools pkgconfig module-base
-
-EXTRA_OECONF += "-with-kbuild=${KBUILD_OUTPUT} --with-ksource=${STAGING_KERNEL_DIR}"
-
-RRECOMMENDS:${PN} = "\
-    kernel-module-ip-set \
-"
diff --git a/meta-openembedded/meta-networking/recipes-filter/ipset/ipset_7.15.bb b/meta-openembedded/meta-networking/recipes-filter/ipset/ipset_7.15.bb
new file mode 100644
index 0000000..7af7dea
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/ipset/ipset_7.15.bb
@@ -0,0 +1,21 @@
+# Copyright (C) 2017 Aaron Brice <aaron.brice@datasoft.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "Administration tool for IP sets"
+HOMEPAGE = "http://ipset.netfilter.org"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+SECTION = "base"
+
+DEPENDS = "libtool libmnl"
+
+SRC_URI = "http://ftp.netfilter.org/pub/ipset/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "0a5545aaadb640142c1f888d366a78ddf8724799967fa20686a70053bd621751"
+
+inherit autotools pkgconfig module-base
+
+EXTRA_OECONF += "-with-kbuild=${KBUILD_OUTPUT} --with-ksource=${STAGING_KERNEL_DIR}"
+
+RRECOMMENDS:${PN} = "\
+    kernel-module-ip-set \
+"
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch b/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch
deleted file mode 100644
index aa9ff09..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch
+++ /dev/null
@@ -1,1227 +0,0 @@
-From db7eb5f0a4e78c6bd3c4f9cbd8332d909eb82ad6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 10 Apr 2017 12:09:41 -0700
-Subject: [PATCH] Declare the define visivility attribute together
-
-clang ignores the visibility attribute if its not
-defined before the definition. As a result these
-symbols become hidden and consumers of this library
-fail to link due to these missing symbols
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- doxygen.cfg.in           |   2 +-
- src/extra/ipv4.c         |  15 ++----
- src/extra/ipv6.c         |   9 ++--
- src/extra/pktbuff.c      |  42 +++++----------
- src/extra/tcp.c          |  21 +++-----
- src/extra/udp.c          |  21 +++-----
- src/internal.h           |   5 +-
- src/libnetfilter_queue.c | 108 +++++++++++++--------------------------
- src/nlmsg.c              |  21 +++-----
- 9 files changed, 82 insertions(+), 162 deletions(-)
-
-diff --git a/doxygen.cfg.in b/doxygen.cfg.in
-index a7378ca..659abee 100644
---- a/doxygen.cfg.in
-+++ b/doxygen.cfg.in
-@@ -72,7 +72,7 @@ RECURSIVE              = YES
- EXCLUDE                = 
- EXCLUDE_SYMLINKS       = NO
- EXCLUDE_PATTERNS       = 
--EXCLUDE_SYMBOLS        = EXPORT_SYMBOL
-+EXCLUDE_SYMBOLS        =
- EXAMPLE_PATH           = 
- EXAMPLE_PATTERNS       = 
- EXAMPLE_RECURSIVE      = NO
-diff --git a/src/extra/ipv4.c b/src/extra/ipv4.c
-index a93d113..56d5dc7 100644
---- a/src/extra/ipv4.c
-+++ b/src/extra/ipv4.c
-@@ -32,7 +32,7 @@
-  * This funcion returns NULL if the IPv4 is malformed or the protocol version
-  * is not 4. On success, it returns a valid pointer to the IPv4 header.
-  */
--struct iphdr *nfq_ip_get_hdr(struct pkt_buff *pktb)
-+struct iphdr __EXPORTED *nfq_ip_get_hdr(struct pkt_buff *pktb)
- {
- 	struct iphdr *iph;
- 	unsigned int pktlen = pktb->tail - pktb->network_header;
-@@ -53,14 +53,13 @@ struct iphdr *nfq_ip_get_hdr(struct pkt_buff *pktb)
- 
- 	return iph;
- }
--EXPORT_SYMBOL(nfq_ip_get_hdr);
- 
- /**
-  * nfq_ip_set_transport_header - set transport header
-  * \param pktb: pointer to network packet buffer
-  * \param iph: pointer to the IPv4 header
-  */
--int nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph)
-+int __EXPORTED nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph)
- {
- 	int doff = iph->ihl * 4;
- 
-@@ -71,7 +70,6 @@ int nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph)
- 	pktb->transport_header = pktb->network_header + doff;
- 	return 0;
- }
--EXPORT_SYMBOL(nfq_ip_set_transport_header);
- 
- /**
-  * nfq_ip_set_checksum - set IPv4 checksum
-@@ -80,14 +78,13 @@ EXPORT_SYMBOL(nfq_ip_set_transport_header);
-  * \note Call to this function if you modified the IPv4 header to update the
-  * checksum.
-  */
--void nfq_ip_set_checksum(struct iphdr *iph)
-+void __EXPORTED nfq_ip_set_checksum(struct iphdr *iph)
- {
- 	uint32_t iph_len = iph->ihl * 4;
- 
- 	iph->check = 0;
- 	iph->check = nfq_checksum(0, (uint16_t *)iph, iph_len);
- }
--EXPORT_SYMBOL(nfq_ip_set_checksum);
- 
- /**
-  * nfq_ip_mangle - mangle IPv4 packet buffer
-@@ -100,7 +97,7 @@ EXPORT_SYMBOL(nfq_ip_set_checksum);
-  *
-  * \note This function recalculates the IPv4 checksum (if needed).
-  */
--int nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff,
-+int __EXPORTED nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff,
- 		  unsigned int match_offset, unsigned int match_len,
- 		  const char *rep_buffer, unsigned int rep_len)
- {
-@@ -116,7 +113,6 @@ int nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff,
- 
- 	return 1;
- }
--EXPORT_SYMBOL(nfq_ip_mangle);
- 
- /**
-  * nfq_pkt_snprintf_ip - print IPv4 header into buffer in iptables LOG format
-@@ -128,7 +124,7 @@ EXPORT_SYMBOL(nfq_ip_mangle);
-  * case that there is enough room in the buffer. Read snprintf manpage for more
-  * information to know more about this strange behaviour.
-  */
--int nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph)
-+int __EXPORTED nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph)
- {
- 	int ret;
- 	struct in_addr src = { iph->saddr };
-@@ -147,7 +143,6 @@ int nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph)
- 
- 	return ret;
- }
--EXPORT_SYMBOL(nfq_ip_snprintf);
- 
- /**
-  * @}
-diff --git a/src/extra/ipv6.c b/src/extra/ipv6.c
-index 7c5dc9b..6641c6b 100644
---- a/src/extra/ipv6.c
-+++ b/src/extra/ipv6.c
-@@ -33,7 +33,7 @@
-  * This funcion returns NULL if an invalid header is found. On sucess, it
-  * returns a valid pointer to the header.
-  */
--struct ip6_hdr *nfq_ip6_get_hdr(struct pkt_buff *pktb)
-+struct ip6_hdr __EXPORTED *nfq_ip6_get_hdr(struct pkt_buff *pktb)
- {
- 	struct ip6_hdr *ip6h;
- 	unsigned int pktlen = pktb->tail - pktb->network_header;
-@@ -50,7 +50,6 @@ struct ip6_hdr *nfq_ip6_get_hdr(struct pkt_buff *pktb)
- 
- 	return ip6h;
- }
--EXPORT_SYMBOL(nfq_ip6_get_hdr);
- 
- /**
-  * nfq_ip6_set_transport_header - set transport header pointer for IPv6 packet
-@@ -61,7 +60,7 @@ EXPORT_SYMBOL(nfq_ip6_get_hdr);
-  * This function returns 1 if the protocol has been found and the transport
-  * header has been set. Otherwise, it returns 0.
-  */
--int nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h,
-+int __EXPORTED nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h,
- 				 uint8_t target)
- {
- 	uint8_t nexthdr = ip6h->ip6_nxt;
-@@ -115,7 +114,6 @@ int nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h,
- 	pktb->transport_header = cur;
- 	return cur ? 1 : 0;
- }
--EXPORT_SYMBOL(nfq_ip6_set_transport_header);
- 
- /**
-  * nfq_ip6_snprintf - print IPv6 header into one buffer in iptables LOG format
-@@ -124,7 +122,7 @@ EXPORT_SYMBOL(nfq_ip6_set_transport_header);
-  * \param ip6_hdr: pointer to a valid IPv6 header.
-  *
-  */
--int nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h)
-+int __EXPORTED nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h)
- {
- 	int ret;
- 	char src[INET6_ADDRSTRLEN];
-@@ -143,7 +141,6 @@ int nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h)
- 
- 	return ret;
- }
--EXPORT_SYMBOL(nfq_ip6_snprintf);
- 
- /**
-  * @}
-diff --git a/src/extra/pktbuff.c b/src/extra/pktbuff.c
-index 1c15a00..54d8244 100644
---- a/src/extra/pktbuff.c
-+++ b/src/extra/pktbuff.c
-@@ -40,7 +40,7 @@
-  *
-  * \return a pointer to a new queue handle or NULL on failure.
-  */
--struct pkt_buff *
-+struct pkt_buff __EXPORTED *
- pktb_alloc(int family, void *data, size_t len, size_t extra)
- {
- 	struct pkt_buff *pktb;
-@@ -84,120 +84,108 @@ pktb_alloc(int family, void *data, size_t len, size_t extra)
- 	}
- 	return pktb;
- }
--EXPORT_SYMBOL(pktb_alloc);
- 
- /**
-  * pktb_data - return pointer to the beginning of the packet buffer
-  * \param pktb Pointer to packet buffer
-  */
--uint8_t *pktb_data(struct pkt_buff *pktb)
-+uint8_t __EXPORTED *pktb_data(struct pkt_buff *pktb)
- {
- 	return pktb->data;
- }
--EXPORT_SYMBOL(pktb_data);
- 
- /**
-  * pktb_len - return length of the packet buffer
-  * \param pktb Pointer to packet buffer
-  */
--uint32_t pktb_len(struct pkt_buff *pktb)
-+uint32_t __EXPORTED pktb_len(struct pkt_buff *pktb)
- {
- 	return pktb->len;
- }
--EXPORT_SYMBOL(pktb_len);
- 
- /**
-  * pktb_free - release packet buffer
-  * \param pktb Pointer to packet buffer
-  */
--void pktb_free(struct pkt_buff *pktb)
-+void __EXPORTED pktb_free(struct pkt_buff *pktb)
- {
- 	free(pktb);
- }
--EXPORT_SYMBOL(pktb_free);
- 
- /**
-  * pktb_push - update pointer to the beginning of the packet buffer
-  * \param pktb Pointer to packet buffer
-  */
--void pktb_push(struct pkt_buff *pktb, unsigned int len)
-+void __EXPORTED pktb_push(struct pkt_buff *pktb, unsigned int len)
- {
- 	pktb->data -= len;
- 	pktb->len += len;
- }
--EXPORT_SYMBOL(pktb_push);
- 
- /**
-  * pktb_pull - update pointer to the beginning of the packet buffer
-  * \param pktb Pointer to packet buffer
-  */
--void pktb_pull(struct pkt_buff *pktb, unsigned int len)
-+void __EXPORTED pktb_pull(struct pkt_buff *pktb, unsigned int len)
- {
- 	pktb->data += len;
- 	pktb->len -= len;
- }
--EXPORT_SYMBOL(pktb_pull);
- 
- /**
-  * pktb_put - add extra bytes to the tail of the packet buffer
-  * \param pktb Pointer to packet buffer
-  */
--void pktb_put(struct pkt_buff *pktb, unsigned int len)
-+void __EXPORTED pktb_put(struct pkt_buff *pktb, unsigned int len)
- {
- 	pktb->tail += len;
- 	pktb->len += len;
- }
--EXPORT_SYMBOL(pktb_put);
- 
- /**
-  * pktb_trim - set new length for this packet buffer
-  * \param pktb Pointer to packet buffer
-  */
--void pktb_trim(struct pkt_buff *pktb, unsigned int len)
-+void __EXPORTED pktb_trim(struct pkt_buff *pktb, unsigned int len)
- {
- 	pktb->len = len;
- }
--EXPORT_SYMBOL(pktb_trim);
- 
- /**
-  * pktb_tailroom - get room in bytes in the tail of the packet buffer
-  * \param pktb Pointer to packet buffer
-  */
--unsigned int pktb_tailroom(struct pkt_buff *pktb)
-+unsigned int __EXPORTED pktb_tailroom(struct pkt_buff *pktb)
- {
- 	return pktb->data_len - pktb->len;
- }
--EXPORT_SYMBOL(pktb_tailroom);
- 
- /**
-  * pktb_mac_header - return pointer to layer 2 header (if any)
-  * \param pktb Pointer to packet buffer
-  */
--uint8_t *pktb_mac_header(struct pkt_buff *pktb)
-+uint8_t __EXPORTED *pktb_mac_header(struct pkt_buff *pktb)
- {
- 	return pktb->mac_header;
- }
--EXPORT_SYMBOL(pktb_mac_header);
- 
- /**
-  * pktb_network_header - return pointer to layer 3 header
-  * \param pktb Pointer to packet buffer
-  */
--uint8_t *pktb_network_header(struct pkt_buff *pktb)
-+uint8_t __EXPORTED *pktb_network_header(struct pkt_buff *pktb)
- {
- 	return pktb->network_header;
- }
--EXPORT_SYMBOL(pktb_network_header);
- 
- /**
-  * pktb_transport_header - return pointer to layer 4 header (if any)
-  * \param pktb Pointer to packet buffer
-  */
--uint8_t *pktb_transport_header(struct pkt_buff *pktb)
-+uint8_t __EXPORTED *pktb_transport_header(struct pkt_buff *pktb)
- {
- 	return pktb->transport_header;
- }
--EXPORT_SYMBOL(pktb_transport_header);
- 
- static int pktb_expand_tail(struct pkt_buff *pkt, int extra)
- {
-@@ -224,7 +212,7 @@ static int enlarge_pkt(struct pkt_buff *pkt, unsigned int extra)
- 	return 1;
- }
- 
--int pktb_mangle(struct pkt_buff *pkt,
-+int __EXPORTED pktb_mangle(struct pkt_buff *pkt,
- 		 unsigned int dataoff,
- 		 unsigned int match_offset,
- 		 unsigned int match_len,
-@@ -258,17 +246,15 @@ int pktb_mangle(struct pkt_buff *pkt,
- 	pkt->mangled = true;
- 	return 1;
- }
--EXPORT_SYMBOL(pktb_mangle);
- 
- /**
-  * pktb_mangled - return true if packet has been mangled
-  * \param pktb Pointer to packet buffer
-  */
--bool pktb_mangled(const struct pkt_buff *pkt)
-+bool __EXPORTED pktb_mangled(const struct pkt_buff *pkt)
- {
- 	return pkt->mangled;
- }
--EXPORT_SYMBOL(pktb_mangled);
- 
- /**
-  * @}
-diff --git a/src/extra/tcp.c b/src/extra/tcp.c
-index d1cd79d..8038ce5 100644
---- a/src/extra/tcp.c
-+++ b/src/extra/tcp.c
-@@ -40,7 +40,7 @@
-  * \note You have to call nfq_ip_set_transport_header or
-  * nfq_ip6_set_transport_header first to access the TCP header.
-  */
--struct tcphdr *nfq_tcp_get_hdr(struct pkt_buff *pktb)
-+struct tcphdr __EXPORTED *nfq_tcp_get_hdr(struct pkt_buff *pktb)
- {
- 	if (pktb->transport_header == NULL)
- 		return NULL;
-@@ -51,14 +51,13 @@ struct tcphdr *nfq_tcp_get_hdr(struct pkt_buff *pktb)
- 
- 	return (struct tcphdr *)pktb->transport_header;
- }
--EXPORT_SYMBOL(nfq_tcp_get_hdr);
- 
- /**
-  * nfq_tcp_get_payload - get the TCP packet payload
-  * \param tcph: pointer to the TCP header
-  * \param pktb: pointer to user-space network packet buffer
-  */
--void *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb)
-+void __EXPORTED *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb)
- {
- 	unsigned int len = tcph->doff * 4;
- 
-@@ -72,47 +71,43 @@ void *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb)
- 
- 	return pktb->transport_header + len;
- }
--EXPORT_SYMBOL(nfq_tcp_get_payload);
- 
- /**
-  * nfq_tcp_get_payload_len - get the tcp packet payload
-  * \param tcph: pointer to the TCP header
-  * \param pktb: pointer to user-space network packet buffer
-  */
--unsigned int
-+unsigned int __EXPORTED
- nfq_tcp_get_payload_len(struct tcphdr *tcph, struct pkt_buff *pktb)
- {
- 	return pktb->tail - pktb->transport_header;
- }
--EXPORT_SYMBOL(nfq_tcp_get_payload_len);
- 
- /**
-  * nfq_tcp_set_checksum_ipv4 - computes IPv4/TCP packet checksum
-  * \param tcph: pointer to the TCP header
-  * \param iph: pointer to the IPv4 header
-  */
--void
-+void __EXPORTED
- nfq_tcp_compute_checksum_ipv4(struct tcphdr *tcph, struct iphdr *iph)
- {
- 	/* checksum field in header needs to be zero for calculation. */
- 	tcph->check = 0;
- 	tcph->check = nfq_checksum_tcpudp_ipv4(iph);
- }
--EXPORT_SYMBOL(nfq_tcp_compute_checksum_ipv4);
- 
- /**
-  * nfq_tcp_set_checksum_ipv6 - computes IPv6/TCP packet checksum
-  * \param tcph: pointer to the TCP header
-  * \param iph: pointer to the IPv6 header
-  */
--void
-+void __EXPORTED
- nfq_tcp_compute_checksum_ipv6(struct tcphdr *tcph, struct ip6_hdr *ip6h)
- {
- 	/* checksum field in header needs to be zero for calculation. */
- 	tcph->check = 0;
- 	tcph->check = nfq_checksum_tcpudp_ipv6(ip6h, tcph);
- }
--EXPORT_SYMBOL(nfq_tcp_compute_checksum_ipv6);
- 
- /*
-  *	The union cast uses a gcc extension to avoid aliasing problems
-@@ -134,7 +129,7 @@ union tcp_word_hdr {
-  * \param tcp: pointer to a valid tcp header.
-  *
-  */
--int nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph)
-+int __EXPORTED nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph)
- {
- 	int ret, len = 0;
- 
-@@ -177,7 +172,6 @@ int nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph)
- 
- 	return ret;
- }
--EXPORT_SYMBOL(nfq_tcp_snprintf);
- 
- /**
-  * nfq_tcp_mangle_ipv4 - mangle TCP/IPv4 packet buffer
-@@ -189,7 +183,7 @@ EXPORT_SYMBOL(nfq_tcp_snprintf);
-  *
-  * \note This function recalculates the IPv4 and TCP checksums for you.
-  */
--int
-+int __EXPORTED
- nfq_tcp_mangle_ipv4(struct pkt_buff *pkt,
- 		    unsigned int match_offset, unsigned int match_len,
- 		    const char *rep_buffer, unsigned int rep_len)
-@@ -208,7 +202,6 @@ nfq_tcp_mangle_ipv4(struct pkt_buff *pkt,
- 
- 	return 1;
- }
--EXPORT_SYMBOL(nfq_tcp_mangle_ipv4);
- 
- /**
-  * @}
-diff --git a/src/extra/udp.c b/src/extra/udp.c
-index 8c44a66..99c8faa 100644
---- a/src/extra/udp.c
-+++ b/src/extra/udp.c
-@@ -37,7 +37,7 @@
-  * This function returns NULL if invalid UDP header is found. On success,
-  * it returns the UDP header.
-  */
--struct udphdr *nfq_udp_get_hdr(struct pkt_buff *pktb)
-+struct udphdr __EXPORTED *nfq_udp_get_hdr(struct pkt_buff *pktb)
- {
- 	if (pktb->transport_header == NULL)
- 		return NULL;
-@@ -48,14 +48,13 @@ struct udphdr *nfq_udp_get_hdr(struct pkt_buff *pktb)
- 
- 	return (struct udphdr *)pktb->transport_header;
- }
--EXPORT_SYMBOL(nfq_udp_get_hdr);
- 
- /**
-  * nfq_udp_get_payload - get the UDP packet payload.
-  * \param udph: the pointer to the UDP header.
-  * \param tail: pointer to the tail of the packet
-  */
--void *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb)
-+void __EXPORTED *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb)
- {
- 	uint16_t len = ntohs(udph->len);
- 
-@@ -69,17 +68,15 @@ void *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb)
- 
- 	return pktb->transport_header + sizeof(struct udphdr);
- }
--EXPORT_SYMBOL(nfq_udp_get_payload);
- 
- /**
-  * nfq_udp_get_payload_len - get the udp packet payload.
-  * \param udp: the pointer to the udp header.
-  */
--unsigned int nfq_udp_get_payload_len(struct udphdr *udph, struct pkt_buff *pktb)
-+unsigned int __EXPORTED nfq_udp_get_payload_len(struct udphdr *udph, struct pkt_buff *pktb)
- {
- 	return pktb->tail - pktb->transport_header;
- }
--EXPORT_SYMBOL(nfq_udp_get_payload_len);
- 
- /**
-  * nfq_udp_set_checksum_ipv4 - computes a IPv4/TCP packet's segment
-@@ -91,14 +88,13 @@ EXPORT_SYMBOL(nfq_udp_get_payload_len);
-  * \see nfq_pkt_compute_ip_checksum
-  * \see nfq_pkt_compute_udp_checksum
-  */
--void
-+void __EXPORTED
- nfq_udp_compute_checksum_ipv4(struct udphdr *udph, struct iphdr *iph)
- {
- 	/* checksum field in header needs to be zero for calculation. */
- 	udph->check = 0;
- 	udph->check = nfq_checksum_tcpudp_ipv4(iph);
- }
--EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv4);
- 
- /**
-  * nfq_udp_set_checksum_ipv6 - computes a IPv6/TCP packet's segment
-@@ -110,14 +106,13 @@ EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv4);
-  * \see nfq_pkt_compute_ip_checksum
-  * \see nfq_pkt_compute_udp_checksum
-  */
--void
-+void __EXPORTED
- nfq_udp_compute_checksum_ipv6(struct udphdr *udph, struct ip6_hdr *ip6h)
- {
- 	/* checksum field in header needs to be zero for calculation. */
- 	udph->check = 0;
- 	udph->check = nfq_checksum_tcpudp_ipv6(ip6h, udph);
- }
--EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv6);
- 
- /**
-  * nfq_tcp_mangle_ipv4 - mangle TCP/IPv4 packet buffer
-@@ -129,7 +124,7 @@ EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv6);
-  *
-  * \note This function recalculates the IPv4 and TCP checksums for you.
-  */
--int
-+int __EXPORTED
- nfq_udp_mangle_ipv4(struct pkt_buff *pkt,
- 		    unsigned int match_offset, unsigned int match_len,
- 		    const char *rep_buffer, unsigned int rep_len)
-@@ -148,7 +143,6 @@ nfq_udp_mangle_ipv4(struct pkt_buff *pkt,
- 
- 	return 1;
- }
--EXPORT_SYMBOL(nfq_udp_mangle_ipv4);
- 
- /**
-  * nfq_pkt_snprintf_udp_hdr - print udp header into one buffer in a humnan
-@@ -158,12 +152,11 @@ EXPORT_SYMBOL(nfq_udp_mangle_ipv4);
-  * \param udp: pointer to a valid udp header.
-  *
-  */
--int nfq_udp_snprintf(char *buf, size_t size, const struct udphdr *udph)
-+int __EXPORTED nfq_udp_snprintf(char *buf, size_t size, const struct udphdr *udph)
- {
- 	return snprintf(buf, size, "SPT=%u DPT=%u ",
- 			htons(udph->source), htons(udph->dest));
- }
--EXPORT_SYMBOL(nfq_udp_snprintf);
- 
- /**
-  * @}
-diff --git a/src/internal.h b/src/internal.h
-index 558d267..79b0752 100644
---- a/src/internal.h
-+++ b/src/internal.h
-@@ -5,10 +5,9 @@
- #include <stdint.h>
- #include <stdbool.h>
- #ifdef HAVE_VISIBILITY_HIDDEN
--#	define __visible	__attribute__((visibility("default")))
--#	define EXPORT_SYMBOL(x)	typeof(x) (x) __visible
-+#	define __EXPORTED	__attribute__((visibility("default")))
- #else
--#	define EXPORT_SYMBOL
-+#	define __EXPORTED
- #endif
- 
- struct iphdr;
-diff --git a/src/libnetfilter_queue.c b/src/libnetfilter_queue.c
-index 673e3b0..c12f068 100644
---- a/src/libnetfilter_queue.c
-+++ b/src/libnetfilter_queue.c
-@@ -133,8 +133,7 @@ struct nfq_data {
- 	struct nfattr **data;
- };
- 
--int nfq_errno;
--EXPORT_SYMBOL(nfq_errno);
-+int __EXPORTED nfq_errno;
- 
- /***********************************************************************
-  * low level stuff 
-@@ -218,11 +217,10 @@ static int __nfq_rcv_pkt(struct nlmsghdr *nlh, struct nfattr *nfa[],
- 
- /* public interface */
- 
--struct nfnl_handle *nfq_nfnlh(struct nfq_handle *h)
-+struct nfnl_handle __EXPORTED *nfq_nfnlh(struct nfq_handle *h)
- {
- 	return h->nfnlh;
- }
--EXPORT_SYMBOL(nfq_nfnlh);
- 
- /**
-  *
-@@ -294,11 +292,10 @@ EXPORT_SYMBOL(nfq_nfnlh);
-  * over the netlink connection associated with the given queue connection
-  * handle.
-  */
--int nfq_fd(struct nfq_handle *h)
-+int __EXPORTED nfq_fd(struct nfq_handle *h)
- {
- 	return nfnl_fd(nfq_nfnlh(h));
- }
--EXPORT_SYMBOL(nfq_fd);
- /**
-  * @}
-  */
-@@ -349,7 +346,7 @@ EXPORT_SYMBOL(nfq_fd);
-  *
-  * \return a pointer to a new queue handle or NULL on failure.
-  */
--struct nfq_handle *nfq_open(void)
-+struct nfq_handle __EXPORTED *nfq_open(void)
- {
- 	struct nfnl_handle *nfnlh = nfnl_open();
- 	struct nfq_handle *qh;
-@@ -366,7 +363,6 @@ struct nfq_handle *nfq_open(void)
- 
- 	return qh;
- }
--EXPORT_SYMBOL(nfq_open);
- 
- /**
-  * @}
-@@ -382,7 +378,7 @@ EXPORT_SYMBOL(nfq_open);
-  *
-  * \return a pointer to a new queue handle or NULL on failure.
-  */
--struct nfq_handle *nfq_open_nfnl(struct nfnl_handle *nfnlh)
-+struct nfq_handle __EXPORTED *nfq_open_nfnl(struct nfnl_handle *nfnlh)
- {
- 	struct nfnl_callback pkt_cb = {
- 		.call		= __nfq_rcv_pkt,
-@@ -419,7 +415,6 @@ out_free:
- 	free(h);
- 	return NULL;
- }
--EXPORT_SYMBOL(nfq_open_nfnl);
- 
- /**
-  * \addtogroup LibrarySetup
-@@ -438,7 +433,7 @@ EXPORT_SYMBOL(nfq_open_nfnl);
-  *
-  * \return 0 on success, non-zero on failure. 
-  */
--int nfq_close(struct nfq_handle *h)
-+int __EXPORTED nfq_close(struct nfq_handle *h)
- {
- 	int ret;
- 	
-@@ -447,7 +442,6 @@ int nfq_close(struct nfq_handle *h)
- 		free(h);
- 	return ret;
- }
--EXPORT_SYMBOL(nfq_close);
- 
- /**
-  * nfq_bind_pf - bind a nfqueue handler to a given protocol family
-@@ -460,11 +454,10 @@ EXPORT_SYMBOL(nfq_close);
-  *
-  * \return integer inferior to 0 in case of failure
-  */
--int nfq_bind_pf(struct nfq_handle *h, uint16_t pf)
-+int __EXPORTED nfq_bind_pf(struct nfq_handle *h, uint16_t pf)
- {
- 	return __build_send_cfg_msg(h, NFQNL_CFG_CMD_PF_BIND, 0, pf);
- }
--EXPORT_SYMBOL(nfq_bind_pf);
- 
- /**
-  * nfq_unbind_pf - unbind nfqueue handler from a protocol family
-@@ -476,11 +469,10 @@ EXPORT_SYMBOL(nfq_bind_pf);
-  *
-  * This call is obsolete, Linux kernels from 3.8 onwards ignore it.
-  */
--int nfq_unbind_pf(struct nfq_handle *h, uint16_t pf)
-+int __EXPORTED nfq_unbind_pf(struct nfq_handle *h, uint16_t pf)
- {
- 	return __build_send_cfg_msg(h, NFQNL_CFG_CMD_PF_UNBIND, 0, pf);
- }
--EXPORT_SYMBOL(nfq_unbind_pf);
- 
- 
- /**
-@@ -524,7 +516,7 @@ typedef int nfq_callback(struct nfq_q_handle *qh,
-  * The callback should return < 0 to stop processing.
-  */
- 
--struct nfq_q_handle *nfq_create_queue(struct nfq_handle *h, 
-+struct nfq_q_handle __EXPORTED *nfq_create_queue(struct nfq_handle *h, 
- 		uint16_t num,
- 		nfq_callback *cb,
- 		void *data)
-@@ -555,7 +547,6 @@ struct nfq_q_handle *nfq_create_queue(struct nfq_handle *h,
- 	add_qh(qh);
- 	return qh;
- }
--EXPORT_SYMBOL(nfq_create_queue);
- 
- /**
-  * @}
-@@ -573,7 +564,7 @@ EXPORT_SYMBOL(nfq_create_queue);
-  * Removes the binding for the specified queue handle. This call also unbind
-  * from the nfqueue handler, so you don't have to call nfq_unbind_pf.
-  */
--int nfq_destroy_queue(struct nfq_q_handle *qh)
-+int __EXPORTED nfq_destroy_queue(struct nfq_q_handle *qh)
- {
- 	int ret = __build_send_cfg_msg(qh->h, NFQNL_CFG_CMD_UNBIND, qh->id, 0);
- 	if (ret == 0) {
-@@ -583,7 +574,6 @@ int nfq_destroy_queue(struct nfq_q_handle *qh)
- 
- 	return ret;
- }
--EXPORT_SYMBOL(nfq_destroy_queue);
- 
- /**
-  * nfq_handle_packet - handle a packet received from the nfqueue subsystem
-@@ -597,11 +587,10 @@ EXPORT_SYMBOL(nfq_destroy_queue);
-  *
-  * \return 0 on success, non-zero on failure.
-  */
--int nfq_handle_packet(struct nfq_handle *h, char *buf, int len)
-+int __EXPORTED nfq_handle_packet(struct nfq_handle *h, char *buf, int len)
- {
- 	return nfnl_handle_packet(h->nfnlh, buf, len);
- }
--EXPORT_SYMBOL(nfq_handle_packet);
- 
- /**
-  * nfq_set_mode - set the amount of packet data that nfqueue copies to userspace
-@@ -618,7 +607,7 @@ EXPORT_SYMBOL(nfq_handle_packet);
-  *
-  * \return -1 on error; >=0 otherwise.
-  */
--int nfq_set_mode(struct nfq_q_handle *qh,
-+int __EXPORTED nfq_set_mode(struct nfq_q_handle *qh,
- 		uint8_t mode, uint32_t range)
- {
- 	union {
-@@ -638,7 +627,6 @@ int nfq_set_mode(struct nfq_q_handle *qh,
- 
- 	return nfnl_query(qh->h->nfnlh, &u.nmh);
- }
--EXPORT_SYMBOL(nfq_set_mode);
- 
- /**
-  * nfq_set_queue_flags - set flags (options) for the kernel queue
-@@ -708,7 +696,7 @@ EXPORT_SYMBOL(nfq_set_mode);
-  *
-  * \return -1 on error with errno set appropriately; =0 otherwise.
-  */
--int nfq_set_queue_flags(struct nfq_q_handle *qh,
-+int __EXPORTED nfq_set_queue_flags(struct nfq_q_handle *qh,
- 			uint32_t mask, uint32_t flags)
- {
- 	union {
-@@ -729,7 +717,6 @@ int nfq_set_queue_flags(struct nfq_q_handle *qh,
- 
- 	return nfnl_query(qh->h->nfnlh, &u.nmh);
- }
--EXPORT_SYMBOL(nfq_set_queue_flags);
- 
- /**
-  * nfq_set_queue_maxlen - Set kernel queue maximum length parameter
-@@ -742,7 +729,7 @@ EXPORT_SYMBOL(nfq_set_queue_flags);
-  *
-  * \return -1 on error; >=0 otherwise.
-  */
--int nfq_set_queue_maxlen(struct nfq_q_handle *qh,
-+int __EXPORTED nfq_set_queue_maxlen(struct nfq_q_handle *qh,
- 				uint32_t queuelen)
- {
- 	union {
-@@ -760,7 +747,6 @@ int nfq_set_queue_maxlen(struct nfq_q_handle *qh,
- 
- 	return nfnl_query(qh->h->nfnlh, &u.nmh);
- }
--EXPORT_SYMBOL(nfq_set_queue_maxlen);
- 
- /**
-  * @}
-@@ -847,14 +833,13 @@ static int __set_verdict(struct nfq_q_handle *qh, uint32_t id,
-  *
-  * \return -1 on error; >= 0 otherwise.
-  */
--int nfq_set_verdict(struct nfq_q_handle *qh, uint32_t id,
-+int __EXPORTED nfq_set_verdict(struct nfq_q_handle *qh, uint32_t id,
- 		uint32_t verdict, uint32_t data_len,
- 		const unsigned char *buf)
- {
- 	return __set_verdict(qh, id, verdict, 0, 0, data_len, buf,
- 						NFQNL_MSG_VERDICT);
- }
--EXPORT_SYMBOL(nfq_set_verdict);
- 
- /**
-  * nfq_set_verdict2 - like nfq_set_verdict, but you can set the mark.
-@@ -865,14 +850,13 @@ EXPORT_SYMBOL(nfq_set_verdict);
-  * \param data_len number of bytes of data pointed to by #buf
-  * \param buf the buffer that contains the packet data
-  */
--int nfq_set_verdict2(struct nfq_q_handle *qh, uint32_t id,
-+int __EXPORTED nfq_set_verdict2(struct nfq_q_handle *qh, uint32_t id,
- 		     uint32_t verdict, uint32_t mark,
- 		     uint32_t data_len, const unsigned char *buf)
- {
- 	return __set_verdict(qh, id, verdict, htonl(mark), 1, data_len,
- 						buf, NFQNL_MSG_VERDICT);
- }
--EXPORT_SYMBOL(nfq_set_verdict2);
- 
- /**
-  * nfq_set_verdict_batch - issue verdicts on several packets at once
-@@ -886,13 +870,12 @@ EXPORT_SYMBOL(nfq_set_verdict2);
-  * batch support was added in Linux 3.1.
-  * These functions will fail silently on older kernels.
-  */
--int nfq_set_verdict_batch(struct nfq_q_handle *qh, uint32_t id,
-+int __EXPORTED nfq_set_verdict_batch(struct nfq_q_handle *qh, uint32_t id,
- 					  uint32_t verdict)
- {
- 	return __set_verdict(qh, id, verdict, 0, 0, 0, NULL,
- 					NFQNL_MSG_VERDICT_BATCH);
- }
--EXPORT_SYMBOL(nfq_set_verdict_batch);
- 
- /**
-  * nfq_set_verdict_batch2 - like nfq_set_verdict_batch, but you can set a mark.
-@@ -901,13 +884,12 @@ EXPORT_SYMBOL(nfq_set_verdict_batch);
-  * \param verdict verdict to return to netfilter (NF_ACCEPT, NF_DROP)
-  * \param mark mark to put on packet
-  */
--int nfq_set_verdict_batch2(struct nfq_q_handle *qh, uint32_t id,
-+int __EXPORTED nfq_set_verdict_batch2(struct nfq_q_handle *qh, uint32_t id,
- 		     uint32_t verdict, uint32_t mark)
- {
- 	return __set_verdict(qh, id, verdict, htonl(mark), 1, 0,
- 				NULL, NFQNL_MSG_VERDICT_BATCH);
- }
--EXPORT_SYMBOL(nfq_set_verdict_batch2);
- 
- /**
-  * nfq_set_verdict_mark - like nfq_set_verdict, but you can set the mark.
-@@ -923,14 +905,13 @@ EXPORT_SYMBOL(nfq_set_verdict_batch2);
-  * This function is deprecated since it is broken, its use is highly
-  * discouraged. Please, use nfq_set_verdict2 instead.
-  */
--int nfq_set_verdict_mark(struct nfq_q_handle *qh, uint32_t id,
-+int __EXPORTED nfq_set_verdict_mark(struct nfq_q_handle *qh, uint32_t id,
- 		uint32_t verdict, uint32_t mark,
- 		uint32_t data_len, const unsigned char *buf)
- {
- 	return __set_verdict(qh, id, verdict, mark, 1, data_len, buf,
- 						NFQNL_MSG_VERDICT);
- }
--EXPORT_SYMBOL(nfq_set_verdict_mark);
- 
- /**
-  * @}
-@@ -965,12 +946,11 @@ EXPORT_SYMBOL(nfq_set_verdict_mark);
- 	} __attribute__ ((packed));
- \endverbatim
-  */
--struct nfqnl_msg_packet_hdr *nfq_get_msg_packet_hdr(struct nfq_data *nfad)
-+struct nfqnl_msg_packet_hdr __EXPORTED *nfq_get_msg_packet_hdr(struct nfq_data *nfad)
- {
- 	return nfnl_get_pointer_to_data(nfad->data, NFQA_PACKET_HDR,
- 					struct nfqnl_msg_packet_hdr);
- }
--EXPORT_SYMBOL(nfq_get_msg_packet_hdr);
- 
- /**
-  * nfq_get_nfmark - get the packet mark
-@@ -978,11 +958,10 @@ EXPORT_SYMBOL(nfq_get_msg_packet_hdr);
-  *
-  * \return the netfilter mark currently assigned to the given queued packet.
-  */
--uint32_t nfq_get_nfmark(struct nfq_data *nfad)
-+uint32_t __EXPORTED nfq_get_nfmark(struct nfq_data *nfad)
- {
- 	return ntohl(nfnl_get_data(nfad->data, NFQA_MARK, uint32_t));
- }
--EXPORT_SYMBOL(nfq_get_nfmark);
- 
- /**
-  * nfq_get_timestamp - get the packet timestamp
-@@ -993,7 +972,7 @@ EXPORT_SYMBOL(nfq_get_nfmark);
-  *
-  * \return 0 on success, non-zero on failure.
-  */
--int nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv)
-+int __EXPORTED nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv)
- {
- 	struct nfqnl_msg_packet_timestamp *qpt;
- 	qpt = nfnl_get_pointer_to_data(nfad->data, NFQA_TIMESTAMP,
-@@ -1006,7 +985,6 @@ int nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv)
- 
- 	return 0;
- }
--EXPORT_SYMBOL(nfq_get_timestamp);
- 
- /**
-  * nfq_get_indev - get the interface that the packet was received through
-@@ -1019,11 +997,10 @@ EXPORT_SYMBOL(nfq_get_timestamp);
-  * \warning all nfq_get_dev() functions return 0 if not set, since linux
-  * only allows ifindex >= 1, see net/core/dev.c:2600  (in 2.6.13.1)
-  */
--uint32_t nfq_get_indev(struct nfq_data *nfad)
-+uint32_t __EXPORTED nfq_get_indev(struct nfq_data *nfad)
- {
- 	return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_INDEV, uint32_t));
- }
--EXPORT_SYMBOL(nfq_get_indev);
- 
- /**
-  * nfq_get_physindev - get the physical interface that the packet was received
-@@ -1033,11 +1010,10 @@ EXPORT_SYMBOL(nfq_get_indev);
-  * If the returned index is 0, the packet was locally generated or the
-  * physical input interface is no longer known (ie. POSTROUTING?).
-  */
--uint32_t nfq_get_physindev(struct nfq_data *nfad)
-+uint32_t __EXPORTED nfq_get_physindev(struct nfq_data *nfad)
- {
- 	return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_PHYSINDEV, uint32_t));
- }
--EXPORT_SYMBOL(nfq_get_physindev);
- 
- /**
-  * nfq_get_outdev - gets the interface that the packet will be routed out
-@@ -1047,11 +1023,10 @@ EXPORT_SYMBOL(nfq_get_physindev);
-  * returned index is 0, the packet is destined for localhost or the output
-  * interface is not yet known (ie. PREROUTING?).
-  */
--uint32_t nfq_get_outdev(struct nfq_data *nfad)
-+uint32_t __EXPORTED nfq_get_outdev(struct nfq_data *nfad)
- {
- 	return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_OUTDEV, uint32_t));
- }
--EXPORT_SYMBOL(nfq_get_outdev);
- 
- /**
-  * nfq_get_physoutdev - get the physical interface that the packet output
-@@ -1063,11 +1038,10 @@ EXPORT_SYMBOL(nfq_get_outdev);
-  * 
-  * \return The index of physical interface that the packet output will be routed out.
-  */
--uint32_t nfq_get_physoutdev(struct nfq_data *nfad)
-+uint32_t __EXPORTED nfq_get_physoutdev(struct nfq_data *nfad)
- {
- 	return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_PHYSOUTDEV, uint32_t));
- }
--EXPORT_SYMBOL(nfq_get_physoutdev);
- 
- /**
-  * nfq_get_indev_name - get the name of the interface the packet
-@@ -1107,13 +1081,12 @@ EXPORT_SYMBOL(nfq_get_physoutdev);
- \endverbatim
-  *
-  */
--int nfq_get_indev_name(struct nlif_handle *nlif_handle,
-+int __EXPORTED nfq_get_indev_name(struct nlif_handle *nlif_handle,
- 			struct nfq_data *nfad, char *name)
- {
- 	uint32_t ifindex = nfq_get_indev(nfad);
- 	return nlif_index2name(nlif_handle, ifindex, name);
- }
--EXPORT_SYMBOL(nfq_get_indev_name);
- 
- /**
-  * nfq_get_physindev_name - get the name of the physical interface the
-@@ -1127,13 +1100,12 @@ EXPORT_SYMBOL(nfq_get_indev_name);
-  *
-  * \return  -1 in case of error, > 0 if it succeed. 
-  */
--int nfq_get_physindev_name(struct nlif_handle *nlif_handle,
-+int __EXPORTED nfq_get_physindev_name(struct nlif_handle *nlif_handle,
- 			   struct nfq_data *nfad, char *name)
- {
- 	uint32_t ifindex = nfq_get_physindev(nfad);
- 	return nlif_index2name(nlif_handle, ifindex, name);
- }
--EXPORT_SYMBOL(nfq_get_physindev_name);
- 
- /**
-  * nfq_get_outdev_name - get the name of the physical interface the
-@@ -1147,13 +1119,12 @@ EXPORT_SYMBOL(nfq_get_physindev_name);
-  *
-  * \return  -1 in case of error, > 0 if it succeed. 
-  */
--int nfq_get_outdev_name(struct nlif_handle *nlif_handle,
-+int __EXPORTED nfq_get_outdev_name(struct nlif_handle *nlif_handle,
- 			struct nfq_data *nfad, char *name)
- {
- 	uint32_t ifindex = nfq_get_outdev(nfad);
- 	return nlif_index2name(nlif_handle, ifindex, name);
- }
--EXPORT_SYMBOL(nfq_get_outdev_name);
- 
- /**
-  * nfq_get_physoutdev_name - get the name of the interface the
-@@ -1168,13 +1139,12 @@ EXPORT_SYMBOL(nfq_get_outdev_name);
-  * \return  -1 in case of error, > 0 if it succeed. 
-  */
- 
--int nfq_get_physoutdev_name(struct nlif_handle *nlif_handle,
-+int __EXPORTED nfq_get_physoutdev_name(struct nlif_handle *nlif_handle,
- 			    struct nfq_data *nfad, char *name)
- {
- 	uint32_t ifindex = nfq_get_physoutdev(nfad);
- 	return nlif_index2name(nlif_handle, ifindex, name);
- }
--EXPORT_SYMBOL(nfq_get_physoutdev_name);
- 
- /**
-  * nfq_get_packet_hw
-@@ -1198,12 +1168,11 @@ EXPORT_SYMBOL(nfq_get_physoutdev_name);
- 	} __attribute__ ((packed));
- \endverbatim
-  */
--struct nfqnl_msg_packet_hw *nfq_get_packet_hw(struct nfq_data *nfad)
-+struct nfqnl_msg_packet_hw __EXPORTED *nfq_get_packet_hw(struct nfq_data *nfad)
- {
- 	return nfnl_get_pointer_to_data(nfad->data, NFQA_HWADDR,
- 					struct nfqnl_msg_packet_hw);
- }
--EXPORT_SYMBOL(nfq_get_packet_hw);
- 
- /**
-  * nfq_get_uid - get the UID of the user the packet belongs to
-@@ -1215,7 +1184,7 @@ EXPORT_SYMBOL(nfq_get_packet_hw);
-  *
-  * \return 1 if there is a UID available, 0 otherwise.
-  */
--int nfq_get_uid(struct nfq_data *nfad, uint32_t *uid)
-+int __EXPORTED nfq_get_uid(struct nfq_data *nfad, uint32_t *uid)
- {
- 	if (!nfnl_attr_present(nfad->data, NFQA_UID))
- 		return 0;
-@@ -1223,7 +1192,6 @@ int nfq_get_uid(struct nfq_data *nfad, uint32_t *uid)
- 	*uid = ntohl(nfnl_get_data(nfad->data, NFQA_UID, uint32_t));
- 	return 1;
- }
--EXPORT_SYMBOL(nfq_get_uid);
- 
- /**
-  * nfq_get_gid - get the GID of the user the packet belongs to
-@@ -1235,7 +1203,7 @@ EXPORT_SYMBOL(nfq_get_uid);
-  *
-  * \return 1 if there is a GID available, 0 otherwise.
-  */
--int nfq_get_gid(struct nfq_data *nfad, uint32_t *gid)
-+int __EXPORTED nfq_get_gid(struct nfq_data *nfad, uint32_t *gid)
- {
- 	if (!nfnl_attr_present(nfad->data, NFQA_GID))
- 		return 0;
-@@ -1243,7 +1211,6 @@ int nfq_get_gid(struct nfq_data *nfad, uint32_t *gid)
- 	*gid = ntohl(nfnl_get_data(nfad->data, NFQA_GID, uint32_t));
- 	return 1;
- }
--EXPORT_SYMBOL(nfq_get_gid);
- 
- /**
-  * nfq_get_secctx - get the security context for this packet
-@@ -1256,7 +1223,7 @@ EXPORT_SYMBOL(nfq_get_gid);
-  *
-  * \return -1 on error, otherwise > 0
-  */
--int nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata)
-+int __EXPORTED nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata)
- {
- 	if (!nfnl_attr_present(nfad->data, NFQA_SECCTX))
- 		return -1;
-@@ -1269,7 +1236,6 @@ int nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata)
- 
- 	return 0;
- }
--EXPORT_SYMBOL(nfq_get_secctx);
- 
- /**
-  * nfq_get_payload - get payload 
-@@ -1282,7 +1248,7 @@ EXPORT_SYMBOL(nfq_get_secctx);
-  *
-  * \return -1 on error, otherwise > 0.
-  */
--int nfq_get_payload(struct nfq_data *nfad, unsigned char **data)
-+int __EXPORTED nfq_get_payload(struct nfq_data *nfad, unsigned char **data)
- {
- 	*data = (unsigned char *)
- 		nfnl_get_pointer_to_data(nfad->data, NFQA_PAYLOAD, char);
-@@ -1291,7 +1257,6 @@ int nfq_get_payload(struct nfq_data *nfad, unsigned char **data)
- 
- 	return -1;
- }
--EXPORT_SYMBOL(nfq_get_payload);
- 
- /**
-  * @}
-@@ -1336,7 +1301,7 @@ do {								\
-  * would have been printed into the buffer (in case that there is enough
-  * room in it). See snprintf() return value for more information.
-  */
--int nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags)
-+int __EXPORTED nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags)
- {
- 	struct nfqnl_msg_packet_hdr *ph;
- 	struct nfqnl_msg_packet_hw *hwph;
-@@ -1489,7 +1454,6 @@ int nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags)
- 
- 	return len;
- }
--EXPORT_SYMBOL(nfq_snprintf_xml);
- 
- /**
-  * @}
-diff --git a/src/nlmsg.c b/src/nlmsg.c
-index ba28c77..5582407 100644
---- a/src/nlmsg.c
-+++ b/src/nlmsg.c
-@@ -30,7 +30,7 @@
-  * @{
-  */
- 
--void nfq_nlmsg_verdict_put(struct nlmsghdr *nlh, int id, int verdict)
-+void __EXPORTED nfq_nlmsg_verdict_put(struct nlmsghdr *nlh, int id, int verdict)
- {
- 	struct nfqnl_msg_verdict_hdr vh = {
- 		.verdict	= htonl(verdict),
-@@ -38,20 +38,17 @@ void nfq_nlmsg_verdict_put(struct nlmsghdr *nlh, int id, int verdict)
- 	};
- 	mnl_attr_put(nlh, NFQA_VERDICT_HDR, sizeof(vh), &vh);
- }
--EXPORT_SYMBOL(nfq_nlmsg_verdict_put);
- 
--void nfq_nlmsg_verdict_put_mark(struct nlmsghdr *nlh, uint32_t mark)
-+void __EXPORTED nfq_nlmsg_verdict_put_mark(struct nlmsghdr *nlh, uint32_t mark)
- {
- 	mnl_attr_put_u32(nlh, NFQA_MARK, htonl(mark));
- }
--EXPORT_SYMBOL(nfq_nlmsg_verdict_put_mark);
- 
--void
-+void __EXPORTED
- nfq_nlmsg_verdict_put_pkt(struct nlmsghdr *nlh, const void *pkt, uint32_t plen)
- {
- 	mnl_attr_put(nlh, NFQA_PAYLOAD, plen, pkt);
- }
--EXPORT_SYMBOL(nfq_nlmsg_verdict_put_pkt);
- 
- /**
-  * @}
-@@ -85,7 +82,7 @@ EXPORT_SYMBOL(nfq_nlmsg_verdict_put_pkt);
-  *   given protocol family.  Both commands are ignored by Linux kernel 3.8 and
-  *   later versions.
-  */
--void nfq_nlmsg_cfg_put_cmd(struct nlmsghdr *nlh, uint16_t pf, uint8_t cmd)
-+void __EXPORTED nfq_nlmsg_cfg_put_cmd(struct nlmsghdr *nlh, uint16_t pf, uint8_t cmd)
- {
- 	struct nfqnl_msg_config_cmd command = {
- 		.command = cmd,
-@@ -93,9 +90,8 @@ void nfq_nlmsg_cfg_put_cmd(struct nlmsghdr *nlh, uint16_t pf, uint8_t cmd)
- 	};
- 	mnl_attr_put(nlh, NFQA_CFG_CMD, sizeof(command), &command);
- }
--EXPORT_SYMBOL(nfq_nlmsg_cfg_put_cmd);
- 
--void nfq_nlmsg_cfg_put_params(struct nlmsghdr *nlh, uint8_t mode, int range)
-+void __EXPORTED nfq_nlmsg_cfg_put_params(struct nlmsghdr *nlh, uint8_t mode, int range)
- {
- 	struct nfqnl_msg_config_params params = {
- 		.copy_range = htonl(range),
-@@ -103,13 +99,11 @@ void nfq_nlmsg_cfg_put_params(struct nlmsghdr *nlh, uint8_t mode, int range)
- 	};
- 	mnl_attr_put(nlh, NFQA_CFG_PARAMS, sizeof(params), &params);
- }
--EXPORT_SYMBOL(nfq_nlmsg_cfg_put_params);
- 
--void nfq_nlmsg_cfg_put_qmaxlen(struct nlmsghdr *nlh, uint32_t queue_maxlen)
-+void __EXPORTED nfq_nlmsg_cfg_put_qmaxlen(struct nlmsghdr *nlh, uint32_t queue_maxlen)
- {
- 	mnl_attr_put_u32(nlh, NFQA_CFG_QUEUE_MAXLEN, htonl(queue_maxlen));
- }
--EXPORT_SYMBOL(nfq_nlmsg_cfg_put_qmaxlen);
- 
- /**
-  * @}
-@@ -179,12 +173,11 @@ static int nfq_pkt_parse_attr_cb(const struct nlattr *attr, void *data)
-  * This function returns MNL_CB_ERROR if any error occurs, or MNL_CB_OK on
-  * success.
-  */
--int nfq_nlmsg_parse(const struct nlmsghdr *nlh, struct nlattr **attr)
-+int __EXPORTED nfq_nlmsg_parse(const struct nlmsghdr *nlh, struct nlattr **attr)
- {
- 	return mnl_attr_parse(nlh, sizeof(struct nfgenmsg),
- 			      nfq_pkt_parse_attr_cb, attr);
- }
--EXPORT_SYMBOL(nfq_nlmsg_parse);
- 
- /**
-  * @}
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb b/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb
deleted file mode 100644
index 2f627d4..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Netfilter logging library"
-DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter log message (NFLOG)"
-HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_log/index.html"
-SECTION = "libs"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-DEPENDS = "libnfnetlink libmnl"
-SRCREV = "ba196a97e810746e5660fe3f57c87c0ed0f2b324"
-PV .= "+git${SRCPV}"
-
-SRC_URI = "git://git.netfilter.org/libnetfilter_log"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.2.bb b/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.2.bb
new file mode 100644
index 0000000..03c0af5
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Netfilter logging library"
+DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter log message (NFLOG)"
+HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_log/index.html"
+SECTION = "libs"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+DEPENDS = "libnfnetlink libmnl"
+SRCREV = "b0e4be94c0b8f68d4e912402b93a130063c34e17"
+
+SRC_URI = "git://git.netfilter.org/libnetfilter_log;branch=master"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.3.bb b/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.3.bb
deleted file mode 100644
index 896cfdf..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.3.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Netfilter packet queue access library"
-DESCRIPTION = "Userspace library providing a programming interface (API) to access the Linux kernel netfilter packet queue"
-HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_queue/index.html"
-SECTION = "libs"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-DEPENDS = "libnfnetlink libmnl"
-
-SRCREV = "601abd1c71ccdf90753cf294c120ad43fb25dc54"
-
-SRC_URI = "git://git.netfilter.org/libnetfilter_queue \
-           file://0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch \
-           "
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb b/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb
new file mode 100644
index 0000000..f806b07
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Netfilter packet queue access library"
+DESCRIPTION = "Userspace library providing a programming interface (API) to access the Linux kernel netfilter packet queue"
+HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_queue/index.html"
+SECTION = "libs"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+DEPENDS = "libnfnetlink libmnl"
+
+SRCREV = "2ff321690b8dafeca99ee8e9cafac71e36f292b9"
+
+SRC_URI = "git://git.netfilter.org/libnetfilter_queue;branch=master \
+           "
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch
index 6232820..68eb04a 100644
--- a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch
+++ b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch
@@ -1,6 +1,6 @@
-From c29959e045dd09d0b5727682d4e9dbc10923ac4f Mon Sep 17 00:00:00 2001
-From: Trevor Gamblin <trevor.gamblin@windriver.com>
-Date: Wed, 2 Jun 2021 11:08:51 -0400
+From e03b003610a176d608da9a02e433e7ded7e4b75f Mon Sep 17 00:00:00 2001
+From: Todd Cunningham <tcunningham07@gmail.com>
+Date: Wed, 11 Dec 2019 10:18:56 +1000
 Subject: [PATCH] avoid naming local function as one of printf family
 
 Fixes build issues with clang
@@ -14,6 +14,9 @@
 
 Use wiggle to get the patch to apply for version 1.2.0.
 
+Add the same change in src/expr/last.c to make the patch apply for
+1.2.1. Also correct the patch to show the original author and metadata.
+
 Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
 ---
  include/expr_ops.h      | 2 +-
@@ -33,6 +36,7 @@
  src/expr/fwd.c          | 2 +-
  src/expr/hash.c         | 2 +-
  src/expr/immediate.c    | 2 +-
+ src/expr/last.c         | 2 +-
  src/expr/limit.c        | 2 +-
  src/expr/log.c          | 2 +-
  src/expr/lookup.c       | 2 +-
@@ -66,7 +70,7 @@
  src/obj/synproxy.c      | 2 +-
  src/obj/tunnel.c        | 2 +-
  src/object.c            | 2 +-
- 50 files changed, 51 insertions(+), 51 deletions(-)
+ 51 files changed, 52 insertions(+), 52 deletions(-)
 
 diff --git a/include/expr_ops.h b/include/expr_ops.h
 index 7a6aa23..d3a2855 100644
@@ -265,6 +269,17 @@
 -	.snprintf	= nftnl_expr_immediate_snprintf,
 +	.snprintf_	= nftnl_expr_immediate_snprintf,
  };
+diff --git a/src/expr/last.c b/src/expr/last.c
+index e2a60c4..2f75464 100644
+--- a/src/expr/last.c
++++ b/src/expr/last.c
+@@ -134,5 +134,5 @@ struct expr_ops expr_ops_last = {
+ 	.get		= nftnl_expr_last_get,
+ 	.parse		= nftnl_expr_last_parse,
+ 	.build		= nftnl_expr_last_build,
+-	.snprintf	= nftnl_expr_last_snprintf,
++	.snprintf_	= nftnl_expr_last_snprintf,
+ };
 diff --git a/src/expr/limit.c b/src/expr/limit.c
 index 3dfd54a..f652df0 100644
 --- a/src/expr/limit.c
@@ -376,10 +391,10 @@
 +	.snprintf_	= nftnl_expr_osf_snprintf,
  };
 diff --git a/src/expr/payload.c b/src/expr/payload.c
-index 9ccb78e..aa17025 100644
+index 82747ec..e9130ec 100644
 --- a/src/expr/payload.c
 +++ b/src/expr/payload.c
-@@ -258,5 +258,5 @@ struct expr_ops expr_ops_payload = {
+@@ -259,5 +259,5 @@ struct expr_ops expr_ops_payload = {
  	.get		= nftnl_expr_payload_get,
  	.parse		= nftnl_expr_payload_parse,
  	.build		= nftnl_expr_payload_build,
@@ -631,5 +646,5 @@
  	}
  	ret = snprintf(buf + offset, remain, "]");
 -- 
-2.31.1
+2.33.1
 
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-configure.ac-Add-serial-tests.patch b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-configure.ac-Add-serial-tests.patch
new file mode 100644
index 0000000..049ad2d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-configure.ac-Add-serial-tests.patch
@@ -0,0 +1,33 @@
+From 1cb59c1fed33607e4fb2bee9144ce45276e9cc96 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <trevor.gamblin@windriver.com>
+Date: Tue, 14 Dec 2021 12:31:12 -0500
+Subject: [PATCH] configure.ac: Add serial-tests
+
+ptest needs buildtest-TESTS and runtest-TESTS targets.
+serial-tests is required to generate those targets.
+
+Upstream-Status: Inappropriate (default automake behavior incompatible with ptest)
+
+Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
+---
+ configure.ac | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 8e68035..2704214 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -8,7 +8,9 @@ AC_CONFIG_HEADERS([config.h])
+ m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
+ 
+ AM_INIT_AUTOMAKE([-Wall foreign tar-pax no-dist-gzip dist-bzip2
+-	1.6 subdir-objects])
++	1.6 subdir-objects serial-tests])
++
++AM_EXTRA_RECURSIVE_TARGETS([buildtest-TESTS])
+ 
+ dnl kernel style compile messages
+ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+-- 
+2.33.1
+
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/run-ptest b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/run-ptest
new file mode 100644
index 0000000..133cf92
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/run-ptest
@@ -0,0 +1,2 @@
+#!/bin/sh
+make -C tests -k runtest-TESTS
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.0.bb b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.0.bb
deleted file mode 100644
index 2b90fdd..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Library for low-level interaction with nftables Netlink's API over libmnl"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26"
-SECTION = "libs"
-DEPENDS = "libmnl"
-
-SRCREV = "d45be40eef72f0d42a1ba82efddbb0970d4c760a"
-SRC_URI = "git://git.netfilter.org/libnftnl \
-           file://0001-avoid-naming-local-function-as-one-of-printf-family.patch \
-           "
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.1.bb b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.1.bb
new file mode 100644
index 0000000..ec4619e
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.1.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Library for low-level interaction with nftables Netlink's API over libmnl"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26"
+SECTION = "libs"
+DEPENDS = "libmnl"
+
+SRCREV = "09456c720e9c00eecc08e41ac6b7c291b3821ee5"
+SRC_URI = "git://git.netfilter.org/libnftnl;branch=master \
+           file://0001-avoid-naming-local-function-as-one-of-printf-family.patch \
+           file://0001-configure.ac-Add-serial-tests.patch \
+           file://run-ptest \
+           "
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig ptest
+
+RDEPENDS:${PN}-ptest += " bash python3-core make"
+ 
+TESTDIR = "tests"
+
+do_compile_ptest() {
+    cp -rf ${S}/build-aux .
+    oe_runmake buildtest-TESTS
+}
+ 
+do_install_ptest() {
+    cp -rf ${B}/build-aux ${D}${PTEST_PATH}
+    install -d ${D}${PTEST_PATH}/${TESTDIR}
+    cp -rf ${B}/${TESTDIR}/Makefile ${D}${PTEST_PATH}/${TESTDIR}
+
+    # the binaries compiled in ${TESTDIR} will look for a compiler to
+    # use, which will cause failures. Substitute the binaries in
+    # ${TESTDIR}/.libs instead
+    cp -rf ${B}/${TESTDIR}/.libs/* ${D}${PTEST_PATH}/${TESTDIR}
+
+    # Alter the Makefile so that it does not try and rebuild anything in
+    # other nonexistent paths before running the actual tests
+    sed -i 's/^Makefile/_Makefile/'  ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+}
+
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_1.0.0.bb b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_1.0.0.bb
deleted file mode 100644
index 68409c9..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_1.0.0.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Netfilter Tables userspace utillites"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79"
-
-DEPENDS = "libmnl libnftnl bison-native \
-           ${@bb.utils.contains('PACKAGECONFIG', 'mini-gmp', '', 'gmp', d)}"
-
-# Ensure we reject the 0.099 version by matching at least two dots
-UPSTREAM_CHECK_REGEX = "nftables-(?P<pver>\d+(\.\d+){2,}).tar.bz2"
-
-SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "58bf547daf967a2b88ecb4f425f126006ebde22711db806b25c1d6cf84fe45f4"
-
-inherit autotools manpages pkgconfig
-
-PACKAGECONFIG ??= "python readline json"
-PACKAGECONFIG[json] = "--with-json, --without-json, jansson"
-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}, --with-python-bin="", python3"
-PACKAGECONFIG[readline] = "--with-cli=readline, --without-cli, readline"
-PACKAGECONFIG[xtables] = "--with-xtables, --without-xtables, iptables"
-
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
-
-RRECOMMENDS:${PN} += "kernel-module-nf-tables"
-
-PACKAGES =+ "${PN}-python"
-FILES:${PN}-python = "${nonarch_libdir}/${PYTHON_DIR}"
-RDEPENDS:${PN}-python = "python3-core python3-json ${PN}"
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_1.0.1.bb b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_1.0.1.bb
new file mode 100644
index 0000000..91df154
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_1.0.1.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Netfilter Tables userspace utillites"
+SECTION = "net"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79"
+
+DEPENDS = "libmnl libnftnl bison-native \
+           ${@bb.utils.contains('PACKAGECONFIG', 'mini-gmp', '', 'gmp', d)}"
+
+# Ensure we reject the 0.099 version by matching at least two dots
+UPSTREAM_CHECK_REGEX = "nftables-(?P<pver>\d+(\.\d+){2,}).tar.bz2"
+
+SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "3ceeba625818e81a0be293e9dd486c3ef799ebd92165270f1e57e9a201efa423"
+
+inherit autotools manpages pkgconfig
+
+PACKAGECONFIG ??= "python readline json"
+PACKAGECONFIG[json] = "--with-json, --without-json, jansson"
+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}, --with-python-bin="", python3"
+PACKAGECONFIG[readline] = "--with-cli=readline, --without-cli, readline"
+PACKAGECONFIG[xtables] = "--with-xtables, --without-xtables, iptables"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
+
+RRECOMMENDS:${PN} += "kernel-module-nf-tables"
+
+PACKAGES =+ "${PN}-python"
+FILES:${PN}-python = "${nonarch_libdir}/${PYTHON_DIR}"
+RDEPENDS:${PN}-python = "python3-core python3-json ${PN}"
diff --git a/meta-openembedded/meta-networking/recipes-irc/weechat/weechat/0001-use-pkg-config-for-gcrypt-instead.patch b/meta-openembedded/meta-networking/recipes-irc/weechat/weechat/0001-use-pkg-config-for-gcrypt-instead.patch
index 0717e96..4a33dd7 100644
--- a/meta-openembedded/meta-networking/recipes-irc/weechat/weechat/0001-use-pkg-config-for-gcrypt-instead.patch
+++ b/meta-openembedded/meta-networking/recipes-irc/weechat/weechat/0001-use-pkg-config-for-gcrypt-instead.patch
@@ -28,10 +28,10 @@
  
  if(LIBGCRYPT_CONFIG_EXECUTABLE)
  
--   exec_program(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_LDFLAGS)
--   exec_program(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS --cflags RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_CFLAGS)
-+   exec_program(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS libgcrypt --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_LDFLAGS)
-+   exec_program(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS libgcrypt --cflags RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_CFLAGS)
- 
-    if(${GCRYPT_CFLAGS} MATCHES "\n")
-       set(GCRYPT_CFLAGS " ")
+-  execute_process(COMMAND ${LIBGCRYPT_CONFIG_EXECUTABLE} --libs RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE GCRYPT_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
+-  execute_process(COMMAND ${LIBGCRYPT_CONFIG_EXECUTABLE} --cflags RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE GCRYPT_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
++  execute_process(COMMAND ${LIBGCRYPT_CONFIG_EXECUTABLE} libgcrypt --libs RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE GCRYPT_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
++  execute_process(COMMAND ${LIBGCRYPT_CONFIG_EXECUTABLE} libgcrypt --cflags RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE GCRYPT_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
+
+   if(NOT DEFINED ${GCRYPT_CFLAGS})
+     set(GCRYPT_CFLAGS " ")
diff --git a/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_3.0.bb b/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_3.0.bb
deleted file mode 100644
index 9f7e392..0000000
--- a/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_3.0.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Full-featured IRC plugin: multi-servers, proxy support, IPv6, SASL authentication, nicklist, DCC, and many other features"
-HOMEPAE = "https://weechat.org/"
-SECTION = "net"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e"
-
-DEPENDS = "openssl zlib icu libgcrypt gnutls curl aspell"
-
-SRC_URI = "https://weechat.org/files/src/weechat-${PV}.tar.xz \
-           file://0001-use-pkg-config-for-gcrypt-instead.patch \
-           "
-
-SRC_URI[sha256sum] = "6cb7d25a363b66b835f1b9f29f3580d6f09ac7d38505b46a62c178b618d9f1fb"
-
-inherit cmake pkgconfig
-
-PACKAGECONFIG ??= " ncurses python"
-PACKAGECONFIG[ncurses] = "-DENABLE_NCURSES=ON,-DENABLE_NCURSES=OFF,ncurses"
-PACKAGECONFIG[python] = "-DENABLE_PYTHON=ON,-DENABLE_PYTHON=OFF,python3,python3"
-
-EXTRA_OECMAKE:append = " -DENABLE_PHP=OFF -DENABLE_TCL=OFF -DENABLE_LUA=OFF -DENABLE_JAVASCRIPT=OFF -DENABLE_RUBY=OFF -DENABLE_GUILE=OFF -DENABLE_PERL=OFF -DENABLE_ASPELL=ON"
-
-do_configure:prepend(){
-    #  Make sure we get dependencies from recipe-sysroot
-    sed -i -e 's# /usr/bin# ${RECIPE_SYSROOT}/${bindir}/#g' ${S}/cmake/FindPerl.cmake
-    sed -i -e 's# /usr/local/bin##g' ${S}/cmake/FindPerl.cmake
-    sed -i -e 's# /usr/pkg/bin##g' ${S}/cmake/FindPerl.cmake
-}
-
-do_install:append(){
-    rm -rf ${D}/${datadir}
-}
-
diff --git a/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_3.4.bb b/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_3.4.bb
new file mode 100644
index 0000000..ca404eb
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_3.4.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Full-featured IRC plugin: multi-servers, proxy support, IPv6, SASL authentication, nicklist, DCC, and many other features"
+HOMEPAE = "https://weechat.org/"
+SECTION = "net"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+DEPENDS = "openssl zlib icu libgcrypt gnutls curl aspell"
+
+SRC_URI = "https://weechat.org/files/src/weechat-${PV}.tar.xz \
+           file://0001-use-pkg-config-for-gcrypt-instead.patch \
+           "
+
+SRC_URI[sha256sum] = "7cd3dcc7029e888de49e13ebbcc3749586ff59c9d97f89f5eeb611067c7bb94c"
+
+inherit cmake pkgconfig
+
+PACKAGECONFIG ??= " ncurses python"
+PACKAGECONFIG[ncurses] = "-DENABLE_NCURSES=ON,-DENABLE_NCURSES=OFF,ncurses"
+PACKAGECONFIG[python] = "-DENABLE_PYTHON=ON,-DENABLE_PYTHON=OFF,python3,python3"
+
+EXTRA_OECMAKE:append = " -DENABLE_PHP=OFF -DENABLE_TCL=OFF -DENABLE_LUA=OFF -DENABLE_JAVASCRIPT=OFF -DENABLE_RUBY=OFF -DENABLE_GUILE=OFF -DENABLE_PERL=OFF -DENABLE_ASPELL=ON"
+
+do_configure:prepend(){
+    #  Make sure we get dependencies from recipe-sysroot
+    sed -i -e 's# /usr/bin# ${RECIPE_SYSROOT}/${bindir}/#g' ${S}/cmake/FindPerl.cmake
+    sed -i -e 's# /usr/local/bin##g' ${S}/cmake/FindPerl.cmake
+    sed -i -e 's# /usr/pkg/bin##g' ${S}/cmake/FindPerl.cmake
+}
+
+do_install:append(){
+    rm -rf ${D}/${datadir}
+}
+
diff --git a/meta-openembedded/meta-networking/recipes-irc/znc/znc_1.8.2.bb b/meta-openembedded/meta-networking/recipes-irc/znc/znc_1.8.2.bb
index fff198d..724ef0c 100644
--- a/meta-openembedded/meta-networking/recipes-irc/znc/znc_1.8.2.bb
+++ b/meta-openembedded/meta-networking/recipes-irc/znc/znc_1.8.2.bb
@@ -5,8 +5,8 @@
 
 DEPENDS = "openssl zlib icu"
 
-SRC_URI = "git://github.com/znc/znc.git;name=znc \
-           git://github.com/jimloco/Csocket.git;destsuffix=git/third_party/Csocket;name=Csocket \
+SRC_URI = "git://github.com/znc/znc.git;name=znc;branch=master;protocol=https \
+           git://github.com/jimloco/Csocket.git;destsuffix=git/third_party/Csocket;name=Csocket;branch=master;protocol=https \
           "
 SRCREV_znc = "bf253640d33d03331310778e001fb6f5aba2989e"
 SRCREV_Csocket = "e8d9e0bb248c521c2c7fa01e1c6a116d929c41b4"
diff --git a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20210219.bb b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20210219.bb
index 92614b2..ce2ba65 100644
--- a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20210219.bb
+++ b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20210219.bb
@@ -2,7 +2,7 @@
 
 SRCREV = "122f06bfd8fc7b06a0899fa9adc4ce8e06900d98"
 
-SRC_URI = "git://git.zx2c4.com/wireguard-linux-compat"
+SRC_URI = "git://git.zx2c4.com/wireguard-linux-compat;branch=master"
 
 inherit module kernel-module-split
 
diff --git a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20210315.bb b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20210315.bb
deleted file mode 100644
index b16e0c8..0000000
--- a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20210315.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-require wireguard.inc
-
-SRCREV = "622408872fd6f3a58e98e88d39d30e98968314fa"
-SRC_URI = "git://git.zx2c4.com/wireguard-tools"
-
-inherit bash-completion systemd pkgconfig
-
-DEPENDS += "libmnl"
-
-do_install () {
-    oe_runmake DESTDIR="${D}" PREFIX="${prefix}" SYSCONFDIR="${sysconfdir}" \
-        SYSTEMDUNITDIR="${systemd_system_unitdir}" \
-        WITH_SYSTEMDUNITS=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'yes', '', d)} \
-        WITH_BASHCOMPLETION=yes \
-        WITH_WGQUICK=yes \
-        install
-}
-
-FILES:${PN} = " \
-    ${sysconfdir} \
-    ${systemd_system_unitdir} \
-    ${bindir} \
-"
-
-RDEPENDS:${PN} = "bash"
-RRECOMMENDS:${PN} = "kernel-module-wireguard"
diff --git a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20210914.bb b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20210914.bb
new file mode 100644
index 0000000..0c686aa
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20210914.bb
@@ -0,0 +1,26 @@
+require wireguard.inc
+
+SRCREV = "3ba6527130c502144e7388b900138bca6260f4e8"
+SRC_URI = "git://git.zx2c4.com/wireguard-tools;branch=master"
+
+inherit bash-completion systemd pkgconfig
+
+DEPENDS += "libmnl"
+
+do_install () {
+    oe_runmake DESTDIR="${D}" PREFIX="${prefix}" SYSCONFDIR="${sysconfdir}" \
+        SYSTEMDUNITDIR="${systemd_system_unitdir}" \
+        WITH_SYSTEMDUNITS=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'yes', '', d)} \
+        WITH_BASHCOMPLETION=yes \
+        WITH_WGQUICK=yes \
+        install
+}
+
+FILES:${PN} = " \
+    ${sysconfdir} \
+    ${systemd_system_unitdir} \
+    ${bindir} \
+"
+
+RDEPENDS:${PN} = "bash"
+RRECOMMENDS:${PN} = "kernel-module-wireguard"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.10.bb b/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.10.bb
index 5af4c31..529cccf 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.10.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.10.bb
@@ -12,7 +12,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENCE;md5=411a48ac3c2e9e0911b8dd9aed26f754"
 
-SRC_URI = "git://github.com/jech/babeld.git;protocol=git"
+SRC_URI = "git://github.com/jech/babeld.git;protocol=https;branch=master"
 SRCREV = "dbb8799d1b5b3bfaf4387386c92369c847704480"
 
 UPSTREAM_CHECK_GITTAGREGEX = "babeld-(?P<pver>\d+(\.\d+)+)"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-dns-sd-Include-missing-headers.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-dns-sd-Include-missing-headers.patch
new file mode 100644
index 0000000..c743b3e
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-dns-sd-Include-missing-headers.patch
@@ -0,0 +1,41 @@
+From ea442b57f7a9bcd41d5b5bd1cafde4dbe5685d41 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 4 Nov 2021 07:31:32 -0700
+Subject: [PATCH] dns-sd: Include missing headers
+
+Fixes build on Musl
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Clients/dns-sd.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/Clients/dns-sd.c
++++ b/Clients/dns-sd.c
+@@ -58,11 +58,13 @@
+ //#define TEST_NEW_CLIENTSTUB 1
+ 
+ #include <ctype.h>
++#include <stdarg.h>          // For va_args
+ #include <stdio.h>          // For stdout, stderr
+ #include <stdlib.h>         // For exit()
+ #include <string.h>         // For strlen(), strcpy()
+ #include <errno.h>          // For errno, EINTR
+ #include <time.h>
++#include <sys/param.h>      // For MIN
+ #include <sys/types.h>      // For u_char
+ #ifdef APPLE_OSX_mDNSResponder
+ #include <inttypes.h>       // For PRId64
+--- a/mDNSPosix/nss_mdns.c
++++ b/mDNSPosix/nss_mdns.c
+@@ -89,6 +89,9 @@
+ 
+ #include <dns_sd.h>
+ 
++#if !defined(NETDB_INTERNAL)
++#  define NETDB_INTERNAL (-1)
++#endif
+ 
+ //----------
+ // Public functions
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1310.140.1.bb b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1310.140.1.bb
new file mode 100644
index 0000000..5c6d220
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1310.140.1.bb
@@ -0,0 +1,115 @@
+SUMMARY = "Publishes & browses available services on a link according to the Zeroconf / Bonjour protocol"
+DESCRIPTION = "Bonjour, also known as zero-configuration networking, enables automatic discovery of computers, devices, and services on IP networks."
+HOMEPAGE = "http://developer.apple.com/networking/bonjour/"
+LICENSE = "Apache-2.0 & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=31c50371921e0fb731003bbc665f29bf"
+
+DEPENDS:append:libc-musl = " musl-nscd"
+
+RPROVIDES:${PN} += "libdns_sd.so"
+
+SRC_URI = "https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-${PV}.tar.gz \
+           file://mdns.service \
+           file://0001-mdns-include-stddef.h-for-NULL.patch;patchdir=.. \
+           file://0002-mdns-cross-compilation-fixes-for-bitbake.patch;patchdir=.. \
+           file://0001-Create-subroutine-for-cleaning-recent-interfaces.patch;patchdir=.. \
+           file://0002-Create-subroutine-for-tearing-down-an-interface.patch;patchdir=.. \
+           file://0003-Track-interface-socket-family.patch;patchdir=.. \
+           file://0004-Use-list-for-changed-interfaces.patch;patchdir=.. \
+           file://0006-Remove-unneeded-function.patch;patchdir=.. \
+           file://0008-Mark-deleted-interfaces-as-being-changed.patch;patchdir=.. \
+           file://0009-Fix-possible-NULL-dereference.patch;patchdir=.. \
+           file://0010-Handle-errors-from-socket-calls.patch;patchdir=.. \
+           file://0011-Change-a-dynamic-allocation-to-file-scope-variable.patch;patchdir=.. \
+           file://0001-dns-sd-Include-missing-headers.patch;patchdir=.. \
+           "
+SRC_URI[sha256sum] = "040f6495c18b9f0557bcf9e00cbcfc82b03405f5ba6963dc147730ca0ca90d6f"
+
+CVE_PRODUCT = "apple:mdnsresponder"
+
+# CVE-2007-0613 is not applicable as it only affects Apple products
+# i.e. ichat,mdnsresponder, instant message framework and MacOS.
+# Also, https://www.exploit-db.com/exploits/3230 shows the part of code
+# affected by CVE-2007-0613 which is not preset in upstream source code.
+# Hence, CVE-2007-0613 does not affect other Yocto implementations and
+# is not reported for other distros can be marked whitelisted.
+# Links:
+# https://vulmon.com/vulnerabilitydetails?qid=CVE-2007-0613
+# https://www.incibe-cert.es/en/early-warning/vulnerabilities/cve-2007-0613
+# https://security-tracker.debian.org/tracker/CVE-2007-0613
+# https://vulmon.com/vulnerabilitydetails?qid=CVE-2007-0613
+CVE_CHECK_WHITELIST += "CVE-2007-0613"
+
+PARALLEL_MAKE = ""
+
+S = "${WORKDIR}/mDNSResponder-${PV}/mDNSPosix"
+
+EXTRA_OEMAKE += "os=linux DEBUG=0 'CC=${CC}' 'LD=${CCLD} ${LDFLAGS}'"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install () {
+    install -d ${D}${sbindir}
+    install -m 0755 build/prod/mdnsd ${D}${sbindir}
+
+    install -d ${D}${libdir}
+    cp build/prod/libdns_sd.so ${D}${libdir}/libdns_sd.so.1
+    chmod 0644 ${D}${libdir}/libdns_sd.so.1
+    ln -s libdns_sd.so.1 ${D}${libdir}/libdns_sd.so
+
+    install -d ${D}${includedir}
+    install -m 0644 ../mDNSShared/dns_sd.h ${D}${includedir}
+
+    install -d ${D}${mandir}/man8
+    install -m 0644 ../mDNSShared/mDNSResponder.8 ${D}${mandir}/man8/mdnsd.8
+
+    install -d ${D}${bindir}
+    install -m 0755 ../Clients/build/dns-sd ${D}${bindir}
+
+    install -d ${D}${libdir}
+    oe_libinstall -C build/prod -so libnss_mdns-0.2 ${D}${libdir}
+    ln -s libnss_mdns-0.2.so ${D}${libdir}/libnss_mdns.so.2
+
+    install -d ${D}${sysconfdir}
+    install -m 0644 nss_mdns.conf ${D}${sysconfdir}
+
+    install -d ${D}${mandir}/man5
+    install -m 0644 nss_mdns.conf.5 ${D}${mandir}/man5
+
+    install -d ${D}${mandir}/man8
+    install -m 0644 libnss_mdns.8 ${D}${mandir}/man8
+
+    install -d ${D}${systemd_unitdir}/system/
+    install -m 0644 ${WORKDIR}/mdns.service ${D}${systemd_unitdir}/system/
+}
+
+pkg_postinst:${PN} () {
+    sed -e '/^hosts:/s/\s*\<mdns\>//' \
+        -e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2 mdns\3\4\5/' \
+        -i $D/etc/nsswitch.conf
+}
+
+pkg_prerm:${PN} () {
+    sed -e '/^hosts:/s/\s*\<mdns\>//' \
+        -e '/^hosts:/s/\s*mdns//' \
+        -i $D/etc/nsswitch.conf
+}
+
+inherit systemd
+
+SYSTEMD_SERVICE:${PN} = "mdns.service"
+
+FILES:${PN} += "${systemd_unitdir}/system/mdns.service"
+FILES:${PN} += "${libdir}/libdns_sd.so.1 \
+                ${bindir}/dns-sd \
+                ${libdir}/libnss_mdns-0.2.so \
+                ${sysconfdir}/nss_mdns.conf"
+
+FILES:${PN}-dev += "${libdir}/libdns_sd.so \
+                    ${includedir}/dns_sd.h "
+
+FILES:${PN}-man += "${mandir}/man8/mdnsd.8 \
+                    ${mandir}/man5/nss_mdns.conf.5 \
+                    ${mandir}/man8/libnss_mdns.8"
+
+PACKAGES = "${PN} ${PN}-dev ${PN}-man ${PN}-dbg"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1310.40.42.bb b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1310.40.42.bb
deleted file mode 100644
index c9bfef2..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1310.40.42.bb
+++ /dev/null
@@ -1,115 +0,0 @@
-SUMMARY = "Publishes & browses available services on a link according to the Zeroconf / Bonjour protocol"
-DESCRIPTION = "Bonjour, also known as zero-configuration networking, enables automatic discovery of computers, devices, and services on IP networks."
-HOMEPAGE = "http://developer.apple.com/networking/bonjour/"
-LICENSE = "Apache-2.0 & BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=31c50371921e0fb731003bbc665f29bf"
-
-COMPATIBLE_HOST:libc-musl = 'null'
-
-RPROVIDES:${PN} += "libdns_sd.so"
-
-SRC_URI = "https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-${PV}.tar.gz \
-           file://mdns.service \
-           file://0001-mdns-include-stddef.h-for-NULL.patch;patchdir=.. \
-           file://0002-mdns-cross-compilation-fixes-for-bitbake.patch;patchdir=.. \
-           file://0001-Create-subroutine-for-cleaning-recent-interfaces.patch;patchdir=.. \
-           file://0002-Create-subroutine-for-tearing-down-an-interface.patch;patchdir=.. \
-           file://0003-Track-interface-socket-family.patch;patchdir=.. \
-           file://0004-Use-list-for-changed-interfaces.patch;patchdir=.. \
-           file://0006-Remove-unneeded-function.patch;patchdir=.. \
-           file://0008-Mark-deleted-interfaces-as-being-changed.patch;patchdir=.. \
-           file://0009-Fix-possible-NULL-dereference.patch;patchdir=.. \
-           file://0010-Handle-errors-from-socket-calls.patch;patchdir=.. \
-           file://0011-Change-a-dynamic-allocation-to-file-scope-variable.patch;patchdir=.. \
-           "
-SRC_URI[md5sum] = "dfcfd4d7f29a56ec99e7df1d21db5e7b"
-SRC_URI[sha256sum] = "bea29e1616cd56ccb8f88c0fad2bcdc4031f4deb2d899c793e2f27a8384f0b34"
-
-CVE_PRODUCT = "apple:mdnsresponder"
-
-# CVE-2007-0613 is not applicable as it only affects Apple products
-# i.e. ichat,mdnsresponder, instant message framework and MacOS.
-# Also, https://www.exploit-db.com/exploits/3230 shows the part of code
-# affected by CVE-2007-0613 which is not preset in upstream source code.
-# Hence, CVE-2007-0613 does not affect other Yocto implementations and
-# is not reported for other distros can be marked whitelisted.
-# Links:
-# https://vulmon.com/vulnerabilitydetails?qid=CVE-2007-0613
-# https://www.incibe-cert.es/en/early-warning/vulnerabilities/cve-2007-0613
-# https://security-tracker.debian.org/tracker/CVE-2007-0613
-# https://vulmon.com/vulnerabilitydetails?qid=CVE-2007-0613
-CVE_CHECK_WHITELIST += "CVE-2007-0613"
-
-PARALLEL_MAKE = ""
-
-S = "${WORKDIR}/mDNSResponder-${PV}/mDNSPosix"
-
-EXTRA_OEMAKE += "os=linux DEBUG=0 'CC=${CC}' 'LD=${CCLD} ${LDFLAGS}'"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install () {
-    install -d ${D}${sbindir}
-    install -m 0755 build/prod/mdnsd ${D}${sbindir}
-
-    install -d ${D}${libdir}
-    cp build/prod/libdns_sd.so ${D}${libdir}/libdns_sd.so.1
-    chmod 0644 ${D}${libdir}/libdns_sd.so.1
-    ln -s libdns_sd.so.1 ${D}${libdir}/libdns_sd.so
-
-    install -d ${D}${includedir}
-    install -m 0644 ../mDNSShared/dns_sd.h ${D}${includedir}
-
-    install -d ${D}${mandir}/man8
-    install -m 0644 ../mDNSShared/mDNSResponder.8 ${D}${mandir}/man8/mdnsd.8
-
-    install -d ${D}${bindir}
-    install -m 0755 ../Clients/build/dns-sd ${D}${bindir}
-
-    install -d ${D}${libdir}
-    oe_libinstall -C build/prod -so libnss_mdns-0.2 ${D}${libdir}
-    ln -s libnss_mdns-0.2.so ${D}${libdir}/libnss_mdns.so.2
-
-    install -d ${D}${sysconfdir}
-    install -m 0644 nss_mdns.conf ${D}${sysconfdir}
-
-    install -d ${D}${mandir}/man5
-    install -m 0644 nss_mdns.conf.5 ${D}${mandir}/man5
-
-    install -d ${D}${mandir}/man8
-    install -m 0644 libnss_mdns.8 ${D}${mandir}/man8
-
-    install -d ${D}${systemd_unitdir}/system/
-    install -m 0644 ${WORKDIR}/mdns.service ${D}${systemd_unitdir}/system/
-}
-
-pkg_postinst:${PN} () {
-    sed -e '/^hosts:/s/\s*\<mdns\>//' \
-        -e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2 mdns\3\4\5/' \
-        -i $D/etc/nsswitch.conf
-}
-
-pkg_prerm:${PN} () {
-    sed -e '/^hosts:/s/\s*\<mdns\>//' \
-        -e '/^hosts:/s/\s*mdns//' \
-        -i $D/etc/nsswitch.conf
-}
-
-inherit systemd
-
-SYSTEMD_SERVICE:${PN} = "mdns.service"
-
-FILES:${PN} += "${systemd_unitdir}/system/mdns.service"
-FILES:${PN} += "${libdir}/libdns_sd.so.1 \
-                ${bindir}/dns-sd \
-                ${libdir}/libnss_mdns-0.2.so \
-                ${sysconfdir}/nss_mdns.conf"
-
-FILES:${PN}-dev += "${libdir}/libdns_sd.so \
-                    ${includedir}/dns_sd.h "
-
-FILES:${PN}-man += "${mandir}/man8/mdnsd.8 \
-                    ${mandir}/man5/nss_mdns.conf.5 \
-                    ${mandir}/man8/libnss_mdns.8"
-
-PACKAGES = "${PN} ${PN}-dev ${PN}-man ${PN}-dbg"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.1.bb b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.1.bb
index e5a28de..b0c5bbd 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.1.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.1.bb
@@ -1,7 +1,7 @@
 SUMMARY = "Various tools relating to the Simple Network Management Protocol"
 HOMEPAGE = "http://www.net-snmp.org/"
 SECTION = "net"
-LICENSE = "BSD & MIT"
+LICENSE = "BSD-3-Clause & MIT"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=9d100a395a38584f2ec18a8275261687"
 
diff --git a/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc
index 94d9553..7968a44 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc
+++ b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc
@@ -11,7 +11,7 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=e870c934e2c3d6ccf085fd7cf0a1e2e2"
 
-SRC_URI = "git://gitosis.stanford.edu/openflow.git;protocol=git"
+SRC_URI = "git://gitosis.stanford.edu/openflow.git;protocol=git;branch=master"
 
 DEPENDS = "virtual/libc"
 
@@ -34,4 +34,22 @@
 do_install:append() {
     # Remove /var/run as it is created on startup
     rm -rf ${D}${localstatedir}/run
+
+    # /var/log/openflow needs to be created in runtime. Use rmdir to catch if
+    # upstream stops creating /var/log/openflow, or adds something else in
+    # /var/log.
+    rmdir ${D}${localstatedir}/log/${BPN} ${D}${localstatedir}/log
+    rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
+
+    # Create /var/log/openflow in runtime.
+    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
+        install -d ${D}${nonarch_libdir}/tmpfiles.d
+        echo "d ${localstatedir}/log/${BPN} - - - -" > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
+    fi
+    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then
+        install -d ${D}${sysconfdir}/default/volatiles
+        echo "d root root 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
+    fi
 }
+
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.14.bb b/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.14.bb
deleted file mode 100644
index 52f5ef2..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.14.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Xelerance version of the Layer 2 Tunneling Protocol (L2TP) daemon"
-HOMEPAGE = "http://www.xelerance.com/software/xl2tpd/"
-SECTION = "net"
-DEPENDS = "ppp virtual/kernel"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "git://github.com/xelerance/xl2tpd.git"
-SRCREV = "ba619c79c4790c78c033df0abde4a9a5de744a08"
-
-S = "${WORKDIR}/git"
-
-inherit update-rc.d
-
-do_compile () {
-    oe_runmake CFLAGS="${CFLAGS} -DLINUX" LDFLAGS="${LDFLAGS}" PREFIX="${prefix}" KERNELSRC=${STAGING_KERNEL_DIR} all
-}
-
-do_install () {
-    oe_runmake PREFIX="${D}${prefix}" install
-
-    install -d ${D}${sysconfdir}/init.d
-    touch ${D}${sysconfdir}/xl2tpd.conf
-    install -m 0755 debian/xl2tpd.init ${D}${sysconfdir}/init.d/xl2tpd
-    sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/xl2tpd
-    sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/xl2tpd
-    sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/xl2tpd
-    sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/xl2tpd
-
-    install -d ${D}${sysconfdir}/default
-    install -m 0644 debian/xl2tpd.default ${D}${sysconfdir}/default/xl2tpd
-}
-
-CONFFILES:${PN} += "${sysconfdir}/xl2tpd.conf ${sysconfdir}/default/xl2tpd"
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME:${PN} = "xl2tpd"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.16.bb b/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.16.bb
new file mode 100644
index 0000000..d96a28e
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.16.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Xelerance version of the Layer 2 Tunneling Protocol (L2TP) daemon"
+HOMEPAGE = "http://www.xelerance.com/software/xl2tpd/"
+SECTION = "net"
+DEPENDS = "ppp virtual/kernel"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://github.com/xelerance/xl2tpd.git;branch=master;protocol=https"
+SRCREV = "1ef2a025981223c1e16fc833bef226c86ff8c295"
+
+UPSTREAM_CHECK_URI = "https://github.com/xelerance/xl2tpd/releases"
+
+S = "${WORKDIR}/git"
+
+inherit update-rc.d
+
+do_compile () {
+    oe_runmake CFLAGS="${CFLAGS} -DLINUX" LDFLAGS="${LDFLAGS}" PREFIX="${prefix}" KERNELSRC=${STAGING_KERNEL_DIR} all
+}
+
+do_install () {
+    oe_runmake PREFIX="${D}${prefix}" install
+
+    install -d ${D}${sysconfdir}/init.d
+    touch ${D}${sysconfdir}/xl2tpd.conf
+    install -m 0755 debian/xl2tpd.init ${D}${sysconfdir}/init.d/xl2tpd
+    sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/xl2tpd
+    sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/xl2tpd
+    sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/xl2tpd
+    sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/xl2tpd
+
+    install -d ${D}${sysconfdir}/default
+    install -m 0644 debian/xl2tpd.default ${D}${sysconfdir}/default/xl2tpd
+}
+
+CONFFILES:${PN} += "${sysconfdir}/xl2tpd.conf ${sysconfdir}/default/xl2tpd"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${PN} = "xl2tpd"
diff --git a/meta-openembedded/meta-networking/recipes-support/arptables/arptables_git.bb b/meta-openembedded/meta-networking/recipes-support/arptables/arptables_git.bb
index 33e4e13..a4eaa9f 100644
--- a/meta-openembedded/meta-networking/recipes-support/arptables/arptables_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/arptables/arptables_git.bb
@@ -6,7 +6,7 @@
 PV = "0.0.5+git${SRCPV}"
 
 SRC_URI = " \
-    git://git.netfilter.org/arptables \
+    git://git.netfilter.org/arptables;branch=master \
     file://0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch \
     file://arptables-arpt-get-target-fix.patch \
     file://arptables.service \
diff --git a/meta-openembedded/meta-networking/recipes-support/bmon/bmon_2.1.0.bb b/meta-openembedded/meta-networking/recipes-support/bmon/bmon_2.1.0.bb
deleted file mode 100644
index 8c7b384..0000000
--- a/meta-openembedded/meta-networking/recipes-support/bmon/bmon_2.1.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "Portable Bandwidth Monitor and rate estimator"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-# only works with libnl-0.5.0
-DEPENDS = "libnl libconfuse ncurses"
-
-SRCREV = "1b3f11bde315e221474f7d066ce4efb4ff4d39e3"
-SRC_URI = "git://github.com/tgraf/bmon.git;branch=master"
-
-inherit autotools pkgconfig
-
-S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-support/bmon/bmon_4.0.bb b/meta-openembedded/meta-networking/recipes-support/bmon/bmon_4.0.bb
new file mode 100644
index 0000000..c974d54
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/bmon/bmon_4.0.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Portable Bandwidth Monitor and rate estimator"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+# only works with libnl-0.5.0
+DEPENDS = "libnl libconfuse ncurses"
+
+SRCREV = "1b3f11bde315e221474f7d066ce4efb4ff4d39e3"
+SRC_URI = "git://github.com/tgraf/bmon.git;branch=master;protocol=https"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0001-include-missing-kernel-header.patch b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0001-include-missing-kernel-header.patch
new file mode 100644
index 0000000..dbd6b18
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0001-include-missing-kernel-header.patch
@@ -0,0 +1,33 @@
+From 203801ae47399569868aa468988e711ba3ddfa92 Mon Sep 17 00:00:00 2001
+From: Joe MacDonald <joe_macdonald@mentor.com>
+Date: Mon, 30 Oct 2017 13:18:20 -0400
+Subject: [PATCH] include missing kernel header
+
+Fixes errors like
+
+| /b/kraj/jlinux-next/poky/build/tmp-eglibc/sysroots/re-64b/usr/include/linux/if_bridge.h:172:20: error: field 'ip6' has incomplete type
+| In file included from ../libbridge/libbridge.h:24:0,
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
+---
+ libbridge/libbridge.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libbridge/libbridge.h b/libbridge/libbridge.h
+index 962f316..422ec33 100644
+--- a/libbridge/libbridge.h
++++ b/libbridge/libbridge.h
+@@ -24,6 +24,7 @@
+ #include <sys/time.h>
+ #include <netinet/in.h>
+ 
++#include <linux/in6.h>
+ #include <linux/if.h>
+ #include <linux/if_bridge.h>
+ 
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0002-build-don-t-ignore-CFLAGS-from-environment.patch b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0002-build-don-t-ignore-CFLAGS-from-environment.patch
new file mode 100644
index 0000000..5ec563b
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0002-build-don-t-ignore-CFLAGS-from-environment.patch
@@ -0,0 +1,40 @@
+From 0c1a66fc62cc321d307c94f962031283142eea69 Mon Sep 17 00:00:00 2001
+From: Joe MacDonald <joe_macdonald@mentor.com>
+Date: Mon, 30 Oct 2017 13:37:48 -0400
+Subject: [PATCH] build: don't ignore CFLAGS from environment
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+We need to take them into account so as to behave nicely towards
+build environments which expect to be able to set them, e.g. for
+optimisation flags, or debug options.
+
+Therefore they need to be added to the compiler command line of
+every source file, and in addition, the same CFLAGS that were
+used during compilation must also always be used during linking!
+
+Upstream-Status: Pending
+
+Signed-off-by: André Draszik <git@andred.net>
+Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
+---
+ brctl/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/brctl/Makefile.in b/brctl/Makefile.in
+index e1956d6..eff260c 100644
+--- a/brctl/Makefile.in
++++ b/brctl/Makefile.in
+@@ -34,7 +34,7 @@ install: $(PROGRAMS)
+ 	$(INSTALL) -m 755 $(PROGRAMS) $(DESTDIR)$(sbindir)
+ 
+ brctl:	$(brctl_OBJECTS) ../libbridge/libbridge.a
+-	$(CC) $(LDFLAGS) $(brctl_OBJECTS) $(LIBS) -o brctl
++	$(CC) $(CFLAGS) $(LDFLAGS) $(brctl_OBJECTS) $(LIBS) -o brctl
+ 
+ %.o: %.c brctl.h
+ 	$(CC) $(CFLAGS) $(INCLUDE) -c $< 
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0003-libbridge-Modifying-the-AR-to-cross-toolchain.patch b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0003-libbridge-Modifying-the-AR-to-cross-toolchain.patch
new file mode 100644
index 0000000..586ebfe
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0003-libbridge-Modifying-the-AR-to-cross-toolchain.patch
@@ -0,0 +1,51 @@
+From 99264c688ff98d8f0f237cba6c7098eb4d5a12a7 Mon Sep 17 00:00:00 2001
+From: Joe MacDonald <joe_macdonald@mentor.com>
+Date: Mon, 30 Oct 2017 13:48:33 -0400
+Subject: [PATCH] libbridge: Modifying the AR to cross toolchain
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The Makefile uses the host “ar” tool when it should be using the ar from
+the target toolchain.
+
+Upstream-Status: Pending
+
+Signed-off-by: Li Zhou <li.zhou@windriver.com>
+Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
+---
+ configure.ac          | 4 ++++
+ libbridge/Makefile.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 66817bb..bcc6946 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -12,6 +12,10 @@ dnl Checks for programs.
+ AC_PROG_CC
+ AC_PROG_INSTALL
+ AC_PROG_RANLIB
++AN_MAKEVAR([AR], [AC_PROG_AR])
++AN_PROGRAM([ar], [AC_PROG_AR])
++AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])
++AC_PROG_AR
+ 
+ dnl Checks for header files.
+ AC_HEADER_STDC
+diff --git a/libbridge/Makefile.in b/libbridge/Makefile.in
+index 7932bfe..bd55e9b 100644
+--- a/libbridge/Makefile.in
++++ b/libbridge/Makefile.in
+@@ -1,7 +1,7 @@
+ 
+ KERNEL_HEADERS=-I@KERNEL_HEADERS@
+ 
+-AR=ar
++AR=@AR@
+ RANLIB=@RANLIB@
+ 
+ CC=@CC@
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0004-cleanup-includes.patch b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0004-cleanup-includes.patch
new file mode 100644
index 0000000..eb5c53d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0004-cleanup-includes.patch
@@ -0,0 +1,149 @@
+From 1763c5b7f8f72d651d62337029c3bdfb269491e4 Mon Sep 17 00:00:00 2001
+From: Stephen Hemminger <sthemmin@microsoft.com>
+Date: Fri, 7 Jan 2022 08:44:19 -0800
+Subject: [PATCH] cleanup includes
+
+Use IWYU to only include necessary headers.
+Should resolve build issues for distros that need limits.h
+to find PATH_MAX.
+
+Upstream-Status: Backport
+[https://git.kernel.org/pub/scm/network/bridge/bridge-utils.git/commit/?h=main&id=1763c5b7f8f72d651d62337029c3bdfb269491e4]
+
+Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ brctl/brctl.c               | 1 -
+ brctl/brctl_cmd.c           | 3 ++-
+ brctl/brctl_disp.c          | 1 -
+ libbridge/libbridge_devif.c | 5 ++++-
+ libbridge/libbridge_if.c    | 5 +----
+ libbridge/libbridge_init.c  | 4 +++-
+ libbridge/libbridge_misc.c  | 5 +----
+ 7 files changed, 11 insertions(+), 13 deletions(-)
+
+diff --git a/brctl/brctl.c b/brctl/brctl.c
+index 8855234..d2fa005 100644
+--- a/brctl/brctl.c
++++ b/brctl/brctl.c
+@@ -17,7 +17,6 @@
+  */
+ 
+ #include <stdio.h>
+-#include <stdlib.h>
+ #include <string.h>
+ #include <errno.h>
+ #include <getopt.h>
+diff --git a/brctl/brctl_cmd.c b/brctl/brctl_cmd.c
+index 81f7dfa..4167503 100644
+--- a/brctl/brctl_cmd.c
++++ b/brctl/brctl_cmd.c
+@@ -18,10 +18,11 @@
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <stdint.h>
+ #include <string.h>
+ #include <sys/time.h>
+ #include <errno.h>
+-#include <asm/param.h>
++
+ #include "libbridge.h"
+ #include "brctl.h"
+ 
+diff --git a/brctl/brctl_disp.c b/brctl/brctl_disp.c
+index 3e81241..f6bf2af 100644
+--- a/brctl/brctl_disp.c
++++ b/brctl/brctl_disp.c
+@@ -17,7 +17,6 @@
+  */
+ 
+ #include <stdio.h>
+-#include <stdlib.h>
+ #include <string.h>
+ #include <sys/time.h>
+ 
+diff --git a/libbridge/libbridge_devif.c b/libbridge/libbridge_devif.c
+index 8b7d954..3aac0f9 100644
+--- a/libbridge/libbridge_devif.c
++++ b/libbridge/libbridge_devif.c
+@@ -18,12 +18,15 @@
+ 
+ 
+ #include <stdio.h>
+-#include <stdlib.h>
+ #include <unistd.h>
+ #include <errno.h>
+ #include <string.h>
+ #include <dirent.h>
+ #include <fcntl.h>
++#include <limits.h>
++
++#include <sys/ioctl.h>
++#include <linux/sockios.h>
+ 
+ #include "libbridge.h"
+ #include "libbridge_private.h"
+diff --git a/libbridge/libbridge_if.c b/libbridge/libbridge_if.c
+index 5f3aed1..96dda30 100644
+--- a/libbridge/libbridge_if.c
++++ b/libbridge/libbridge_if.c
+@@ -16,12 +16,9 @@
+  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+  */
+ 
+-#include <stdio.h>
+-#include <stdlib.h>
+ #include <errno.h>
+-#include <string.h>
+-#include <fcntl.h>
+ #include <sys/ioctl.h>
++#include <linux/sockios.h>
+ 
+ #include "libbridge.h"
+ #include "libbridge_private.h"
+diff --git a/libbridge/libbridge_init.c b/libbridge/libbridge_init.c
+index c914971..d572895 100644
+--- a/libbridge/libbridge_init.c
++++ b/libbridge/libbridge_init.c
+@@ -16,14 +16,16 @@
+  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+  */
+ 
++#include <limits.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <errno.h>
+ #include <string.h>
+ #include <dirent.h>
+-#include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/ioctl.h>
++#include <linux/sockios.h>
+ 
+ #include "libbridge.h"
+ #include "libbridge_private.h"
+diff --git a/libbridge/libbridge_misc.c b/libbridge/libbridge_misc.c
+index 9379e93..5b146fd 100644
+--- a/libbridge/libbridge_misc.c
++++ b/libbridge/libbridge_misc.c
+@@ -16,14 +16,11 @@
+  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+  */
+ 
+-#include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <sys/time.h>
+ #include <asm/param.h>
+-#include "libbridge.h"
+-#include "libbridge_private.h"
+ 
++#include "libbridge.h"
+ 
+ static const char *state_names[5] = {
+ 	[BR_STATE_DISABLED] = "disabled", 
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0005-build-don-t-ignore-CFLAGS-from-environment.patch b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0005-build-don-t-ignore-CFLAGS-from-environment.patch
deleted file mode 100644
index 0a72c6b..0000000
--- a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0005-build-don-t-ignore-CFLAGS-from-environment.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 9d63838d12c772dfe33371e2bb8b8191625539f2 Mon Sep 17 00:00:00 2001
-From: Joe MacDonald <joe_macdonald@mentor.com>
-Date: Mon, 30 Oct 2017 13:37:48 -0400
-Subject: [PATCH] build: don't ignore CFLAGS from environment
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-We need to take them into account so as to behave nicely towards
-build environments which expect to be able to set them, e.g. for
-optimisation flags, or debug options.
-
-Therefore they need to be added to the compiler command line of
-every source file, and in addition, the same CFLAGS that were
-used during compilation must also always be used during linking!
-
-Upstream-Status: Pending
-
-Signed-off-by: André Draszik <git@andred.net>
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
----
- brctl/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/brctl/Makefile.in b/brctl/Makefile.in
-index e1956d6..eff260c 100644
---- a/brctl/Makefile.in
-+++ b/brctl/Makefile.in
-@@ -34,7 +34,7 @@ install: $(PROGRAMS)
- 	$(INSTALL) -m 755 $(PROGRAMS) $(DESTDIR)$(sbindir)
- 
- brctl:	$(brctl_OBJECTS) ../libbridge/libbridge.a
--	$(CC) $(LDFLAGS) $(brctl_OBJECTS) $(LIBS) -o brctl
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(brctl_OBJECTS) $(LIBS) -o brctl
- 
- %.o: %.c brctl.h
- 	$(CC) $(CFLAGS) $(INCLUDE) -c $< 
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0006-libbridge-Modifying-the-AR-to-cross-toolchain.patch b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0006-libbridge-Modifying-the-AR-to-cross-toolchain.patch
deleted file mode 100644
index 3f65761..0000000
--- a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/0006-libbridge-Modifying-the-AR-to-cross-toolchain.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From c924f66743c054d7ebafef90ca1bbebc96732357 Mon Sep 17 00:00:00 2001
-From: Joe MacDonald <joe_macdonald@mentor.com>
-Date: Mon, 30 Oct 2017 13:48:33 -0400
-Subject: [PATCH] libbridge: Modifying the AR to cross toolchain
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The Makefile uses the host “ar” tool when it should be using the ar from
-the target toolchain.
-
-Upstream-Status: Pending
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
----
- configure.ac          | 1 +
- libbridge/Makefile.in | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 8b2e2ea..8426b7c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -12,6 +12,10 @@ dnl Checks for programs.
- AC_PROG_CC
- AC_PROG_INSTALL
- AC_PROG_RANLIB
-+AN_MAKEVAR([AR], [AC_PROG_AR])
-+AN_PROGRAM([ar], [AC_PROG_AR])
-+AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])
-+AC_PROG_AR
- 
- dnl Checks for header files.
- AC_HEADER_STDC
-diff --git a/libbridge/Makefile.in b/libbridge/Makefile.in
-index 7932bfe..bd55e9b 100644
---- a/libbridge/Makefile.in
-+++ b/libbridge/Makefile.in
-@@ -1,7 +1,7 @@
- 
- KERNEL_HEADERS=-I@KERNEL_HEADERS@
- 
--AR=ar
-+AR=@AR@
- RANLIB=@RANLIB@
- 
- CC=@CC@
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/kernel-headers.patch b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/kernel-headers.patch
deleted file mode 100644
index 8a23a30..0000000
--- a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/kernel-headers.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 824f838cc9c7b8a44174358446993d61be7bbb3f Mon Sep 17 00:00:00 2001
-From: Joe MacDonald <joe_macdonald@mentor.com>
-Date: Mon, 30 Oct 2017 13:18:20 -0400
-Subject: [PATCH] include missing kernel header
-
-Fixes errors like
-
-| /b/kraj/jlinux-next/poky/build/tmp-eglibc/sysroots/re-64b/usr/include/linux/if_bridge.h:172:20: error: field 'ip6' has incomplete type
-| In file included from ../libbridge/libbridge.h:24:0,
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
----
- libbridge/libbridge.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libbridge/libbridge.h b/libbridge/libbridge.h
-index c038b92..fd09306 100644
---- a/libbridge/libbridge.h
-+++ b/libbridge/libbridge.h
-@@ -24,6 +24,7 @@
- #include <sys/time.h>
- #include <netinet/in.h>
- 
-+#include <linux/in6.h>
- #include <linux/if.h>
- #include <linux/if_bridge.h>
- 
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils_1.7.1.bb b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils_1.7.1.bb
new file mode 100644
index 0000000..85a7e59
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils_1.7.1.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Tools for ethernet bridging"
+HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge"
+SECTION = "net"
+LICENSE = "GPLv2"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=f9d20a453221a1b7e32ae84694da2c37"
+
+SRCREV = "75d949b9fae9718201422f0bd3d1103e67dd597c"
+
+SRC_URI = "\
+    git://git.kernel.org/pub/scm/network/bridge/bridge-utils.git;branch=main \
+    file://0001-include-missing-kernel-header.patch \
+    file://0002-build-don-t-ignore-CFLAGS-from-environment.patch \
+    file://0003-libbridge-Modifying-the-AR-to-cross-toolchain.patch \
+    file://0004-cleanup-includes.patch \
+"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "sysfsutils"
+
+inherit autotools-brokensep update-alternatives
+
+ALTERNATIVE:${PN} = "brctl"
+ALTERNATIVE_PRIORITY[brctl] = "100"
+ALTERNATIVE_LINK_NAME[brctl] = "${sbindir}/brctl"
+
+EXTRA_OECONF = "--with-linux-headers=${STAGING_INCDIR}"
+
+do_install:append () {
+    install -d ${D}/${datadir}/bridge-utils
+    install -d ${D}/${sysconfdir}/network/if-pre-up.d
+    install -d ${D}/${sysconfdir}/network/if-post-down.d
+}
+
+RRECOMMENDS:${PN} = "kernel-module-bridge"
diff --git a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils_1.7.bb b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils_1.7.bb
deleted file mode 100644
index b8975de..0000000
--- a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils_1.7.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Tools for ethernet bridging"
-HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge"
-SECTION = "net"
-LICENSE = "GPLv2"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=f9d20a453221a1b7e32ae84694da2c37"
-
-SRCREV = "ab8a2cc330253321be7bc69dea88bfaa3d48415e"
-
-SRC_URI = "\
-    git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/bridge-utils.git;branch=main \
-    file://kernel-headers.patch \
-    file://0005-build-don-t-ignore-CFLAGS-from-environment.patch \
-    file://0006-libbridge-Modifying-the-AR-to-cross-toolchain.patch \
-"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "sysfsutils"
-
-inherit autotools-brokensep update-alternatives
-
-ALTERNATIVE:${PN} = "brctl"
-ALTERNATIVE_PRIORITY[brctl] = "100"
-ALTERNATIVE_LINK_NAME[brctl] = "${sbindir}/brctl"
-
-EXTRA_OECONF = "--with-linux-headers=${STAGING_INCDIR}"
-
-do_install:append () {
-    install -d ${D}/${datadir}/bridge-utils
-    install -d ${D}/${sysconfdir}/network/if-pre-up.d
-    install -d ${D}/${sysconfdir}/network/if-post-down.d
-}
-
-RRECOMMENDS:${PN} = "kernel-module-bridge"
diff --git a/meta-openembedded/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch b/meta-openembedded/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch
index 837cb6d..4a2769b 100644
--- a/meta-openembedded/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch
+++ b/meta-openembedded/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch
@@ -23,19 +23,22 @@
 
     Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
- sys_linux.c | 20 ++++++++++++++------
- 1 file changed, 14 insertions(+), 6 deletions(-)
+ sys_linux.c | 15 +++++++++------
+ 1 file changed, 9 insertions(+), 6 deletions(-)
 
+diff --git a/sys_linux.c b/sys_linux.c
+index 9cab2ef..8104b8f 100644
 --- a/sys_linux.c
 +++ b/sys_linux.c
-@@ -499,14 +499,12 @@ SYS_Linux_EnableSystemCallFilter(int lev
+@@ -484,7 +484,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
  #endif
      SCMP_SYS(gettimeofday),
      SCMP_SYS(settimeofday),
 -    SCMP_SYS(time),
-
+ 
      /* Process */
      SCMP_SYS(clone),
+@@ -494,7 +493,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
      SCMP_SYS(exit),
      SCMP_SYS(exit_group),
      SCMP_SYS(getpid),
@@ -43,7 +46,7 @@
      SCMP_SYS(getuid),
      SCMP_SYS(getuid32),
      SCMP_SYS(rt_sigaction),
-@@ -520,7 +518,6 @@ SYS_Linux_EnableSystemCallFilter(int lev
+@@ -508,7 +506,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
      /* Memory */
      SCMP_SYS(brk),
      SCMP_SYS(madvise),
@@ -51,28 +54,28 @@
      SCMP_SYS(mmap2),
      SCMP_SYS(mprotect),
      SCMP_SYS(mremap),
-@@ -580,8 +577,6 @@ SYS_Linux_EnableSystemCallFilter(int lev
+@@ -568,8 +565,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
      SCMP_SYS(sendmsg),
      SCMP_SYS(sendto),
      SCMP_SYS(shutdown),
 -    /* TODO: check socketcall arguments */
 -    SCMP_SYS(socketcall),
-
+ 
      /* General I/O */
      SCMP_SYS(_newselect),
-@@ -604,7 +599,6 @@ SYS_Linux_EnableSystemCallFilter(int lev
+@@ -593,7 +588,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
  #ifdef __NR_futex_time64
      SCMP_SYS(futex_time64),
  #endif
 -    SCMP_SYS(select),
      SCMP_SYS(set_robust_list),
      SCMP_SYS(write),
-
-@@ -612,6 +606,15 @@ SYS_Linux_EnableSystemCallFilter(int lev
+ 
+@@ -601,6 +595,15 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
      SCMP_SYS(getrandom),
      SCMP_SYS(sysinfo),
      SCMP_SYS(uname),
-+    /* not always available */
++   /* not always available */
 +#if ! defined(__ARM_EABI__)
 +    SCMP_SYS(time),
 +    SCMP_SYS(getrlimit),
@@ -82,5 +85,8 @@
 +    SCMP_SYS(socketcall),
 +#endif
    };
-
+ 
    const int denied_any[] = {
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/chrony/chrony_4.1.bb b/meta-openembedded/meta-networking/recipes-support/chrony/chrony_4.1.bb
deleted file mode 100644
index 117451d..0000000
--- a/meta-openembedded/meta-networking/recipes-support/chrony/chrony_4.1.bb
+++ /dev/null
@@ -1,147 +0,0 @@
-SUMMARY = "Versatile implementation of the Network Time Protocol"
-DESCRIPTION = "Chrony can synchronize the system clock with NTP \
-servers, reference clocks (e.g. GPS receiver), and manual input using \
-wristwatch and keyboard. It can also operate as an NTPv4 (RFC 5905) \
-server and peer to provide a time service to other computers in the \
-network. \
-\
-It is designed to perform well in a wide range of conditions, \
-including intermittent network connections, heavily congested \
-networks, changing temperatures (ordinary computer clocks are \
-sensitive to temperature), and systems that do not run continuously, or \
-run on a virtual machine. \
-\
-Typical accuracy between two machines on a LAN is in tens, or a few \
-hundreds, of microseconds; over the Internet, accuracy is typically \
-within a few milliseconds. With a good hardware reference clock \
-sub-microsecond accuracy is possible. \
-\
-Two programs are included in chrony: chronyd is a daemon that can be \
-started at boot time and chronyc is a command-line interface program \
-which can be used to monitor chronyd's performance and to change \
-various operating parameters whilst it is running. \
-\
-This recipe produces two binary packages: 'chrony' which contains chronyd, \
-the configuration file and the init script, and 'chronyc' which contains \
-the client program only."
-
-HOMEPAGE = "https://chrony.tuxfamily.org/"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI = "https://download.tuxfamily.org/chrony/chrony-${PV}.tar.gz \
-    file://chrony.conf \
-    file://chronyd \
-    file://arm_eabi.patch \
-"
-
-SRC_URI:append:libc-musl = " \
-    file://0001-Fix-compilation-with-musl.patch \
-"
-SRC_URI[sha256sum] = "ed76f2d3f9347ac6221a91ad4bd553dd0565ac188cd7490d0801d08f7171164c"
-
-DEPENDS = "pps-tools"
-
-# Note: Despite being built via './configure; make; make install',
-#       chrony does not use GNU Autotools.
-inherit update-rc.d systemd
-
-# Add chronyd user if privdrop packageconfig is selected
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'privdrop', 'useradd', '', d)}
-USERADD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'privdrop', '${PN}', '', d)}"
-USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'privdrop', '--system -d / -M --shell /bin/nologin chronyd;', '', d)}"
-
-# Configuration options:
-# - For command line editing support in chronyc, you may specify either
-#   'editline' or 'readline' but not both.  editline is smaller, but
-#   many systems already have readline for other purposes so you might want
-#   to choose that instead.  However, beware license incompatibility
-#   since chrony is GPLv2 and readline versions after 6.0 are GPLv3+.
-#   You can of course choose neither, but if you're that tight on space
-#   consider dropping chronyc entirely (you can use it remotely with
-#   appropriate chrony.conf options).
-# - Security-related:
-#   - 'sechash' is omitted by default because it pulls in nss which is huge.
-#   - 'privdrop' allows chronyd to run as non-root; would need changes to
-#     chrony.conf and init script.
-#   - 'scfilter' enables support for system call filtering, but requires the
-#     kernel to have CONFIG_SECCOMP enabled.
-PACKAGECONFIG ??= "editline \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
-"
-PACKAGECONFIG[readline] = "--without-editline,--without-readline,readline"
-PACKAGECONFIG[editline] = ",--without-editline,libedit"
-PACKAGECONFIG[sechash] = "--without-tomcrypt,--disable-sechash,nss"
-PACKAGECONFIG[privdrop] = "--with-libcap,--disable-privdrop --without-libcap,libcap"
-PACKAGECONFIG[scfilter] = "--enable-scfilter,--without-seccomp,libseccomp"
-PACKAGECONFIG[ipv6] = ",--disable-ipv6,"
-PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-
-# --disable-static isn't supported by chrony's configure script.
-DISABLE_STATIC = ""
-
-do_configure() {
-    ./configure --sysconfdir=${sysconfdir} --bindir=${bindir} --sbindir=${sbindir} \
-                --localstatedir=${localstatedir} --datarootdir=${datadir} \
-                --with-ntp-era=$(shell date -d '1970-01-01 00:00:00+00:00' +'%s') \
-                --with-pidfile=/run/chrony/chronyd.pid \
-                --chronyrundir=/run/chrony \
-                --host-system=Linux \
-                ${PACKAGECONFIG_CONFARGS}
-}
-
-do_install() {
-    # Binaries
-    install -d ${D}${bindir}
-    install -m 0755 ${S}/chronyc ${D}${bindir}
-    install -d ${D}${sbindir}
-    install -m 0755 ${S}/chronyd ${D}${sbindir}
-
-    # Config file
-    install -d ${D}${sysconfdir}
-    install -m 644 ${WORKDIR}/chrony.conf ${D}${sysconfdir}
-    if ${@bb.utils.contains('PACKAGECONFIG', 'privdrop', 'true', 'false', d)}; then
-        echo "# Define user to drop to after dropping root privileges" >> ${D}${sysconfdir}/chrony.conf
-        echo "user chronyd" >> ${D}${sysconfdir}/chrony.conf
-    fi
-
-    # System V init script
-    install -d ${D}${sysconfdir}/init.d
-    install -m 755 ${WORKDIR}/chronyd ${D}${sysconfdir}/init.d
-
-    # systemd unit configuration file
-    install -d ${D}${systemd_unitdir}/system
-    install -m 0644 ${S}/examples/chronyd.service ${D}${systemd_unitdir}/system/
-
-    # Variable data (for drift and/or rtc file)
-    install -d ${D}${localstatedir}/lib/chrony
-
-    # Fix hard-coded paths in config files and init scripts
-    sed -i -e 's!/var/!${localstatedir}/!g' -e 's!/etc/!${sysconfdir}/!g' \
-           -e 's!/usr/sbin/!${sbindir}/!g' -e 's!/usr/bin/!${bindir}/!g' \
-           ${D}${sysconfdir}/chrony.conf \
-           ${D}${sysconfdir}/init.d/chronyd \
-           ${D}${systemd_unitdir}/system/chronyd.service
-    sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/chronyd
-    sed -i 's!^EnvironmentFile=.*!EnvironmentFile=-${sysconfdir}/default/chronyd!' ${D}${systemd_unitdir}/system/chronyd.service
-}
-
-FILES:${PN} = "${sbindir}/chronyd ${sysconfdir} ${localstatedir}/lib/chrony ${localstatedir}"
-CONFFILES:${PN} = "${sysconfdir}/chrony.conf"
-INITSCRIPT_NAME = "chronyd"
-INITSCRIPT_PARAMS = "defaults"
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE:${PN} = "chronyd.service"
-
-# It's probably a bad idea to run chrony and another time daemon on
-# the same system.  systemd includes the SNTP client 'timesyncd', which
-# will be disabled by chronyd.service, however it will remain on the rootfs
-# wasting 150 kB unless you put 'PACKAGECONFIG:remove:pn-systemd = "timesyncd"'
-# in a conf file or bbappend somewhere.
-RCONFLICTS:${PN} = "ntp ntimed"
-
-# Separate the client program into its own package
-PACKAGES =+ "chronyc"
-FILES:chronyc = "${bindir}/chronyc"
diff --git a/meta-openembedded/meta-networking/recipes-support/chrony/chrony_4.2.bb b/meta-openembedded/meta-networking/recipes-support/chrony/chrony_4.2.bb
new file mode 100644
index 0000000..609aaab
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/chrony/chrony_4.2.bb
@@ -0,0 +1,147 @@
+SUMMARY = "Versatile implementation of the Network Time Protocol"
+DESCRIPTION = "Chrony can synchronize the system clock with NTP \
+servers, reference clocks (e.g. GPS receiver), and manual input using \
+wristwatch and keyboard. It can also operate as an NTPv4 (RFC 5905) \
+server and peer to provide a time service to other computers in the \
+network. \
+\
+It is designed to perform well in a wide range of conditions, \
+including intermittent network connections, heavily congested \
+networks, changing temperatures (ordinary computer clocks are \
+sensitive to temperature), and systems that do not run continuously, or \
+run on a virtual machine. \
+\
+Typical accuracy between two machines on a LAN is in tens, or a few \
+hundreds, of microseconds; over the Internet, accuracy is typically \
+within a few milliseconds. With a good hardware reference clock \
+sub-microsecond accuracy is possible. \
+\
+Two programs are included in chrony: chronyd is a daemon that can be \
+started at boot time and chronyc is a command-line interface program \
+which can be used to monitor chronyd's performance and to change \
+various operating parameters whilst it is running. \
+\
+This recipe produces two binary packages: 'chrony' which contains chronyd, \
+the configuration file and the init script, and 'chronyc' which contains \
+the client program only."
+
+HOMEPAGE = "https://chrony.tuxfamily.org/"
+SECTION = "net"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "https://download.tuxfamily.org/chrony/chrony-${PV}.tar.gz \
+    file://chrony.conf \
+    file://chronyd \
+    file://arm_eabi.patch \
+"
+
+SRC_URI:append:libc-musl = " \
+    file://0001-Fix-compilation-with-musl.patch \
+"
+SRC_URI[sha256sum] = "273f9fd15c328ed6f3a5f6ba6baec35a421a34a73bb725605329b1712048db9a"
+
+DEPENDS = "pps-tools"
+
+# Note: Despite being built via './configure; make; make install',
+#       chrony does not use GNU Autotools.
+inherit update-rc.d systemd
+
+# Add chronyd user if privdrop packageconfig is selected
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'privdrop', 'useradd', '', d)}
+USERADD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'privdrop', '${PN}', '', d)}"
+USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'privdrop', '--system -d / -M --shell /bin/nologin chronyd;', '', d)}"
+
+# Configuration options:
+# - For command line editing support in chronyc, you may specify either
+#   'editline' or 'readline' but not both.  editline is smaller, but
+#   many systems already have readline for other purposes so you might want
+#   to choose that instead.  However, beware license incompatibility
+#   since chrony is GPLv2 and readline versions after 6.0 are GPLv3+.
+#   You can of course choose neither, but if you're that tight on space
+#   consider dropping chronyc entirely (you can use it remotely with
+#   appropriate chrony.conf options).
+# - Security-related:
+#   - 'sechash' is omitted by default because it pulls in nss which is huge.
+#   - 'privdrop' allows chronyd to run as non-root; would need changes to
+#     chrony.conf and init script.
+#   - 'scfilter' enables support for system call filtering, but requires the
+#     kernel to have CONFIG_SECCOMP enabled.
+PACKAGECONFIG ??= "editline \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+"
+PACKAGECONFIG[readline] = "--without-editline,--without-readline,readline"
+PACKAGECONFIG[editline] = ",--without-editline,libedit"
+PACKAGECONFIG[sechash] = "--without-tomcrypt,--disable-sechash,nss"
+PACKAGECONFIG[privdrop] = "--with-libcap,--disable-privdrop --without-libcap,libcap"
+PACKAGECONFIG[scfilter] = "--enable-scfilter,--without-seccomp,libseccomp"
+PACKAGECONFIG[ipv6] = ",--disable-ipv6,"
+PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+
+# --disable-static isn't supported by chrony's configure script.
+DISABLE_STATIC = ""
+
+do_configure() {
+    ./configure --sysconfdir=${sysconfdir} --bindir=${bindir} --sbindir=${sbindir} \
+                --localstatedir=${localstatedir} --datarootdir=${datadir} \
+                --with-ntp-era=$(shell date -d '1970-01-01 00:00:00+00:00' +'%s') \
+                --with-pidfile=/run/chrony/chronyd.pid \
+                --chronyrundir=/run/chrony \
+                --host-system=Linux \
+                ${PACKAGECONFIG_CONFARGS}
+}
+
+do_install() {
+    # Binaries
+    install -d ${D}${bindir}
+    install -m 0755 ${S}/chronyc ${D}${bindir}
+    install -d ${D}${sbindir}
+    install -m 0755 ${S}/chronyd ${D}${sbindir}
+
+    # Config file
+    install -d ${D}${sysconfdir}
+    install -m 644 ${WORKDIR}/chrony.conf ${D}${sysconfdir}
+    if ${@bb.utils.contains('PACKAGECONFIG', 'privdrop', 'true', 'false', d)}; then
+        echo "# Define user to drop to after dropping root privileges" >> ${D}${sysconfdir}/chrony.conf
+        echo "user chronyd" >> ${D}${sysconfdir}/chrony.conf
+    fi
+
+    # System V init script
+    install -d ${D}${sysconfdir}/init.d
+    install -m 755 ${WORKDIR}/chronyd ${D}${sysconfdir}/init.d
+
+    # systemd unit configuration file
+    install -d ${D}${systemd_unitdir}/system
+    install -m 0644 ${S}/examples/chronyd.service ${D}${systemd_unitdir}/system/
+
+    # Variable data (for drift and/or rtc file)
+    install -d ${D}${localstatedir}/lib/chrony
+
+    # Fix hard-coded paths in config files and init scripts
+    sed -i -e 's!/var/!${localstatedir}/!g' -e 's!/etc/!${sysconfdir}/!g' \
+           -e 's!/usr/sbin/!${sbindir}/!g' -e 's!/usr/bin/!${bindir}/!g' \
+           ${D}${sysconfdir}/chrony.conf \
+           ${D}${sysconfdir}/init.d/chronyd \
+           ${D}${systemd_unitdir}/system/chronyd.service
+    sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/chronyd
+    sed -i 's!^EnvironmentFile=.*!EnvironmentFile=-${sysconfdir}/default/chronyd!' ${D}${systemd_unitdir}/system/chronyd.service
+}
+
+FILES:${PN} = "${sbindir}/chronyd ${sysconfdir} ${localstatedir}/lib/chrony ${localstatedir}"
+CONFFILES:${PN} = "${sysconfdir}/chrony.conf"
+INITSCRIPT_NAME = "chronyd"
+INITSCRIPT_PARAMS = "defaults"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "chronyd.service"
+
+# It's probably a bad idea to run chrony and another time daemon on
+# the same system.  systemd includes the SNTP client 'timesyncd', which
+# will be disabled by chronyd.service, however it will remain on the rootfs
+# wasting 150 kB unless you put 'PACKAGECONFIG:remove:pn-systemd = "timesyncd"'
+# in a conf file or bbappend somewhere.
+RCONFLICTS:${PN} = "ntp ntimed"
+
+# Separate the client program into its own package
+PACKAGES =+ "chronyc"
+FILES:chronyc = "${bindir}/chronyc"
diff --git a/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.14.bb b/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.14.bb
index 5fafb4e..7821a12 100644
--- a/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.14.bb
+++ b/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.14.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
 SRCREV = "8c06dce7d596e478c20bc54bdcec87ad97f80a1b"
-SRC_URI = "git://git.samba.org/cifs-utils.git"
+SRC_URI = "git://git.samba.org/cifs-utils.git;branch=master"
 
 S = "${WORKDIR}/git"
 DEPENDS += "libtalloc"
diff --git a/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb b/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb
index 263de81..e36a86f 100644
--- a/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb
@@ -7,7 +7,7 @@
 DEPENDS = "curl"
 DEPENDS:class-native = "curl-native"
 
-SRC_URI = "git://github.com/jpbarrette/curlpp.git"
+SRC_URI = "git://github.com/jpbarrette/curlpp.git;branch=master;protocol=https"
 
 SRCREV = "592552a165cc569dac7674cb7fc9de3dc829906f"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.13.1.bb b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.13.1.bb
index ceb4018..4cfb0c8 100644
--- a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.13.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.13.1.bb
@@ -8,8 +8,8 @@
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
 
-SRC_URI = "git://github.com/LINBIT/drbd-utils;name=drbd-utils;branch=${PV} \
-           git://github.com/LINBIT/drbd-headers;name=drbd-headers;destsuffix=git/drbd-headers \
+SRC_URI = "git://github.com/LINBIT/drbd-utils;name=drbd-utils;branch=${PV};protocol=https \
+           git://github.com/LINBIT/drbd-headers;name=drbd-headers;destsuffix=git/drbd-headers;branch=master;protocol=https \
            file://0001-v84-Make-setup_options-definitions-as-extern.patch \
            ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-drbd-utils-support-usrmerge.patch','',d)} \
           "
diff --git a/meta-openembedded/meta-networking/recipes-support/ettercap/ettercap_0.8.3.1.bb b/meta-openembedded/meta-networking/recipes-support/ettercap/ettercap_0.8.3.1.bb
index 9ebed2a..6035ddf 100644
--- a/meta-openembedded/meta-networking/recipes-support/ettercap/ettercap_0.8.3.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ettercap/ettercap_0.8.3.1.bb
@@ -19,7 +19,7 @@
 
 RDEPENDS:${PN} += "bash ethtool libgcc"
 
-SRC_URI = "gitsm://github.com/Ettercap/ettercap"
+SRC_URI = "gitsm://github.com/Ettercap/ettercap;branch=master;protocol=https"
 
 SRCREV = "7281fbddb7da7478beb1d21e3cb105fff3778b31"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.4.21.bb b/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.4.21.bb
deleted file mode 100644
index 892e028..0000000
--- a/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.4.21.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Fetchmail retrieves mail from remote mail servers and forwards it via SMTP"
-HOMEPAGE = "http://www.fetchmail.info/"
-DESCRIPTION = "Fetchmail is a full-featured, robust, well-documented remote-mail retrieval \
-and forwarding utility intended to be used over on-demand TCP/IP links (such as SLIP or PPP \
-connections). It supports every remote-mail protocol now in use on the Internet: POP2, POP3, \
-RPOP, APOP, KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6 and IPSEC."
-SECTION = "mail"
-LICENSE = "GPLv2 & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ad73c6bd421c137fbf18cf8b92474186"
-
-DEPENDS = "openssl"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz \
-           "
-SRC_URI[sha256sum] = "6a459c1cafd7a1daa5cd137140da60c18c84b5699cd8e7249a79c33342c99d1d"
-
-inherit autotools gettext pkgconfig python3-dir python3native
-
-EXTRA_OECONF = "--with-ssl=${STAGING_DIR_HOST}${prefix}"
-
-PACKAGES =+ "fetchmail-python"
-FILES:fetchmail-python = "${libdir}/${PYTHON_DIR}/*"
diff --git a/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.4.23.bb b/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.4.23.bb
new file mode 100644
index 0000000..9599837
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.4.23.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Fetchmail retrieves mail from remote mail servers and forwards it via SMTP"
+HOMEPAGE = "http://www.fetchmail.info/"
+DESCRIPTION = "Fetchmail is a full-featured, robust, well-documented remote-mail retrieval \
+and forwarding utility intended to be used over on-demand TCP/IP links (such as SLIP or PPP \
+connections). It supports every remote-mail protocol now in use on the Internet: POP2, POP3, \
+RPOP, APOP, KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6 and IPSEC."
+SECTION = "mail"
+LICENSE = "GPLv2 & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c3a05d9b9d3784c824c9b92a648e1353"
+
+DEPENDS = "openssl"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz \
+           "
+SRC_URI[sha256sum] = "5f7a5e13731431134a2ca535bbced7adc666d3aeb93169a0830945d91f492300"
+
+inherit autotools gettext pkgconfig python3-dir python3native
+
+EXTRA_OECONF = "--with-ssl=${STAGING_DIR_HOST}${prefix}"
+
+PACKAGES =+ "fetchmail-python"
+FILES:fetchmail-python = "${libdir}/${PYTHON_DIR}/*"
diff --git a/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb b/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb
index 1ee04bd..92051a8 100644
--- a/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb
+++ b/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb
@@ -11,7 +11,7 @@
 
 S = "${WORKDIR}/git"
 SRCREV = "4cdfdc38eca237c19c22a8b90490446ce6d970fa"
-SRC_URI = "git://github.com/maxmind/geoip-api-perl.git;branch=main \
+SRC_URI = "git://github.com/maxmind/geoip-api-perl.git;branch=main;protocol=https \
     file://run-ptest \
 "
 
diff --git a/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.12.bb b/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.12.bb
index 7753984..8fe4fcb 100644
--- a/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.12.bb
+++ b/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.12.bb
@@ -10,7 +10,7 @@
 
 GEOIP_DATABASE_VERSION = "20181205"
 
-SRC_URI = "git://github.com/maxmind/geoip-api-c.git;branch=main \
+SRC_URI = "git://github.com/maxmind/geoip-api-c.git;branch=main;protocol=https \
            http://sources.openembedded.org/GeoIP.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoIP-dat; \
            http://sources.openembedded.org/GeoIPv6.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoIPv6-dat; \
            http://sources.openembedded.org/GeoLiteCity.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoLiteCity-dat; \
diff --git a/meta-openembedded/meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb b/meta-openembedded/meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb
index 2d04ded..122dfc0 100644
--- a/meta-openembedded/meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb
+++ b/meta-openembedded/meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb
@@ -12,7 +12,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=9bfa835d048c194ab30487af8d7b3778"
 
-SRC_URI = "git://github.com/nodejs/http-parser.git"
+SRC_URI = "git://github.com/nodejs/http-parser.git;branch=master;protocol=https"
 SRCREV = "2343fd6b5214b2ded2cdcf76de2bf60903bb90cd"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-support/ipcalc/ipcalc_0.2.3.bb b/meta-openembedded/meta-networking/recipes-support/ipcalc/ipcalc_0.2.3.bb
index ad0ec27..1e6db5b 100644
--- a/meta-openembedded/meta-networking/recipes-support/ipcalc/ipcalc_0.2.3.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ipcalc/ipcalc_0.2.3.bb
@@ -9,7 +9,7 @@
 S = "${WORKDIR}/git"
 SRCREV = "c3ee70c878b9c5833a77a1f339f1ca4dc6f225c5"
 SRC_URI = "\
-    git://github.com/nmav/ipcalc.git;protocol=https; \
+    git://github.com/nmav/ipcalc.git;protocol=https;;branch=master \
     file://0001-Makefile-pass-extra-linker-flags.patch \
 "
 
diff --git a/meta-openembedded/meta-networking/recipes-support/libconfuse/libconfuse_3.3.bb b/meta-openembedded/meta-networking/recipes-support/libconfuse/libconfuse_3.3.bb
index c081e69..b8d0536 100644
--- a/meta-openembedded/meta-networking/recipes-support/libconfuse/libconfuse_3.3.bb
+++ b/meta-openembedded/meta-networking/recipes-support/libconfuse/libconfuse_3.3.bb
@@ -3,7 +3,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=42fa47330d4051cd219f7d99d023de3a"
 
 SRCREV = "a42aebf13db33afd575da6e63f55163d371f776d"
-SRC_URI = "git://github.com/libconfuse/libconfuse.git;branch=master"
+SRC_URI = "git://github.com/libconfuse/libconfuse.git;branch=master;protocol=https"
 
 inherit autotools-brokensep pkgconfig gettext
 
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
new file mode 100644
index 0000000..382a19c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,59 @@
+From c67c7cee024150fcbdca18764a026aed8724d7ae Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 24 Nov 2021 13:33:35 +0800
+Subject: [PATCH] Fix pyext_PATTERN for cross compilation
+
+The pyext_PATTERN will add native arch as suffix when cross compiling.
+For example, on qemuarm64, it is expanded to:
+pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
+which will result in the incorrect library name.
+
+root@qemuarm64:~# find /usr/lib/ -name \*ldb\*
+/usr/lib/pkgconfig/pyldb-util.cpython-310-x86_64-linux-gnu.pc
+/usr/lib/pkgconfig/ldb.pc
+/usr/lib/libpyldb-util.cpython-310-x86-64-linux-gnu.so.2.3.2
+/usr/lib/libldb.so.2.3.2
+/usr/lib/libpyldb-util.cpython-310-x86-64-linux-gnu.so.2
+/usr/lib/libldb.so
+/usr/lib/libldb.so.2
+/usr/lib/python3.10/site-packages/_ldb_text.py
+/usr/lib/python3.10/site-packages/ldb.cpython-310-x86_64-linux-gnu.so
+/usr/lib/libpyldb-util.cpython-310-x86-64-linux-gnu.so
+
+Set pyext_PATTERN to '%s.so' to remove the suffix.
+After the patch:
+root@qemuarm64:~# find /usr/lib/ -name \*ldb\*
+/usr/lib/pkgconfig/pyldb-util.pc
+/usr/lib/pkgconfig/ldb.pc
+/usr/lib/libpyldb-util.so.2.3.2
+/usr/lib/libldb.so.2.3.2
+/usr/lib/libpyldb-util.so.2
+/usr/lib/libldb.so
+/usr/lib/libldb.so.2
+/usr/lib/python3.10/site-packages/_ldb_text.py
+/usr/lib/python3.10/site-packages/ldb.so
+/usr/lib/libpyldb-util.so
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ third_party/waf/waflib/Tools/python.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
+index b1c8dd0..24faa31 100644
+--- a/third_party/waf/waflib/Tools/python.py
++++ b/third_party/waf/waflib/Tools/python.py
+@@ -328,7 +328,7 @@ def check_python_headers(conf, features='pyembed pyext'):
+ 	x = 'MACOSX_DEPLOYMENT_TARGET'
+ 	if dct[x]:
+ 		env[x] = conf.environ[x] = dct[x]
+-	env.pyext_PATTERN = '%s' + dct['SO'] # not a mistake
++	env.pyext_PATTERN = '%s.so'
+ 
+ 
+ 	# Try to get pythonX.Y-config
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_2.3.0.bb b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_2.3.0.bb
deleted file mode 100644
index f1b8cd6..0000000
--- a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_2.3.0.bb
+++ /dev/null
@@ -1,69 +0,0 @@
-SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
-HOMEPAGE = "http://ldb.samba.org"
-SECTION = "libs"
-LICENSE = "LGPL-3.0+ & LGPL-2.1+ & GPL-3.0+"
-
-DEPENDS += "libtdb libtalloc libtevent popt"
-RDEPENDS:pyldb += "python3"
-
-SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \
-           file://0001-do-not-import-target-module-while-cross-compile.patch \
-           file://0002-ldb-Add-configure-options-for-packages.patch \
-           file://libldb-fix-musl-libc-conflict-type-error.patch \
-          "
-
-PACKAGECONFIG ??= "\
-    ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
-"
-PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
-PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
-PACKAGECONFIG[ldap] = ",,openldap"
-PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
-PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
-PACKAGECONFIG[lmdb] = ",--without-ldb-lmdb,lmdb,"
-
-SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'ldap', '', 'file://0003-avoid-openldap-unless-wanted.patch', d)}"
-
-LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9adade \
-                    file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \
-                    file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42"
-
-SRC_URI[md5sum] = "fe4b1f17f77e2ea52b4e1320d927844c"
-SRC_URI[sha256sum] = "a4d308b3d0922ef01f3661a69ebc373e772374defa76cf0979ad21b21f91922d"
-
-inherit pkgconfig waf-samba
-
-S = "${WORKDIR}/ldb-${PV}"
-
-#cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
-#to cross Popen
-export WAF_NO_PREFORK="yes"
-
-EXTRA_OECONF += "--disable-rpath \
-                 --disable-rpath-install \
-                 --bundled-libraries=cmocka \
-                 --builtin-libraries=replace \
-                 --with-modulesdir=${libdir}/ldb/modules \
-                 --with-privatelibdir=${libdir}/ldb \
-                 --with-libiconv=${STAGING_DIR_HOST}${prefix}\
-                "
-
-PACKAGES =+ "pyldb pyldb-dbg pyldb-dev"
-
-NOAUTOPACKAGEDEBUG = "1"
-
-FILES:${PN} += "${libdir}/ldb/*"
-FILES:${PN}-dbg += "${bindir}/.debug/* \
-                    ${libdir}/.debug/* \
-                    ${libdir}/ldb/.debug/* \
-                    ${libdir}/ldb/modules/ldb/.debug/*"
-
-FILES:pyldb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \
-               ${libdir}/libpyldb-util.*.so.* \
-              "
-FILES:pyldb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \
-                   ${libdir}/.debug/libpyldb-util.*.so.*"
-FILES:pyldb-dev = "${libdir}/libpyldb-util.*.so"
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_2.3.2.bb b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_2.3.2.bb
new file mode 100644
index 0000000..d26acea
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_2.3.2.bb
@@ -0,0 +1,70 @@
+SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
+HOMEPAGE = "http://ldb.samba.org"
+SECTION = "libs"
+LICENSE = "LGPL-3.0+ & LGPL-2.1+ & GPL-3.0+"
+
+DEPENDS += "libtdb libtalloc libtevent popt"
+RDEPENDS:pyldb += "python3"
+
+SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \
+           file://0001-do-not-import-target-module-while-cross-compile.patch \
+           file://0002-ldb-Add-configure-options-for-packages.patch \
+           file://0001-Fix-pyext_PATTERN-for-cross-compilation.patch \
+           file://libldb-fix-musl-libc-conflict-type-error.patch \
+          "
+
+PACKAGECONFIG ??= "\
+    ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
+"
+PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
+PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
+PACKAGECONFIG[ldap] = ",,openldap"
+PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
+PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
+PACKAGECONFIG[lmdb] = ",--without-ldb-lmdb,lmdb,"
+
+SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'ldap', '', 'file://0003-avoid-openldap-unless-wanted.patch', d)}"
+
+LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9adade \
+                    file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \
+                    file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42"
+
+SRC_URI[md5sum] = "650a05f8a2b2e6455f590dc815a71879"
+SRC_URI[sha256sum] = "1416c949dc4326e41c0d8a5ecf8ef784f8c0b6e9d3dad8fa971e84ad56227603"
+
+inherit pkgconfig waf-samba
+
+S = "${WORKDIR}/ldb-${PV}"
+
+#cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
+#to cross Popen
+export WAF_NO_PREFORK="yes"
+
+EXTRA_OECONF += "--disable-rpath \
+                 --disable-rpath-install \
+                 --bundled-libraries=cmocka \
+                 --builtin-libraries=replace \
+                 --with-modulesdir=${libdir}/ldb/modules \
+                 --with-privatelibdir=${libdir}/ldb \
+                 --with-libiconv=${STAGING_DIR_HOST}${prefix}\
+                "
+
+PACKAGES =+ "pyldb pyldb-dbg pyldb-dev"
+
+NOAUTOPACKAGEDEBUG = "1"
+
+FILES:${PN} += "${libdir}/ldb/*"
+FILES:${PN}-dbg += "${bindir}/.debug/* \
+                    ${libdir}/.debug/* \
+                    ${libdir}/ldb/.debug/* \
+                    ${libdir}/ldb/modules/ldb/.debug/*"
+
+FILES:pyldb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \
+               ${libdir}/libpyldb-util.*.so.* \
+              "
+FILES:pyldb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \
+                   ${libdir}/.debug/libpyldb-util.*.so.*"
+FILES:pyldb-dev = "${libdir}/libpyldb-util.*.so"
diff --git a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/0001-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
new file mode 100644
index 0000000..47ee4bb
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,57 @@
+From b5eaeb7ed4e75012d2715f995e15a13850064f61 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 24 Nov 2021 13:33:35 +0800
+Subject: [PATCH] Fix pyext_PATTERN for cross compilation
+
+The pyext_PATTERN will add native arch as suffix when cross compiling.
+For example, on qemuarm64, it is expanded to:
+pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
+which will result in the incorrect library name.
+
+root@qemuarm64:~# find /usr/lib -name \*talloc\*
+/usr/lib/pkgconfig/talloc.pc
+/usr/lib/pkgconfig/pytalloc-util.cpython-310-x86_64-linux-gnu.pc
+/usr/lib/libpytalloc-util.cpython-310-x86-64-linux-gnu.so.2.3.3
+/usr/lib/libtalloc.so.2
+/usr/lib/libpytalloc-util.cpython-310-x86-64-linux-gnu.so.2
+/usr/lib/libpytalloc-util.cpython-310-x86-64-linux-gnu.so
+/usr/lib/libtalloc.so
+/usr/lib/libtalloc.so.2.3.3
+/usr/lib/python3.10/site-packages/talloc.cpython-310-x86_64-linux-gnu.so
+
+Set pyext_PATTERN to '%s.so' to remove the suffix.
+After the patch:
+root@qemuarm64:~# find /usr/lib -name \*talloc\*
+/usr/lib/pkgconfig/talloc.pc
+/usr/lib/pkgconfig/pytalloc-util.pc
+/usr/lib/libpytalloc-util.so.2.3.3
+/usr/lib/libtalloc.so.2
+/usr/lib/libpytalloc-util.so.2
+/usr/lib/libpytalloc-util.so
+/usr/lib/libtalloc.so
+/usr/lib/libtalloc.so.2.3.3
+/usr/lib/python3.10/site-packages/talloc.so
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ third_party/waf/waflib/Tools/python.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
+index b1c8dd0..24faa31 100644
+--- a/third_party/waf/waflib/Tools/python.py
++++ b/third_party/waf/waflib/Tools/python.py
+@@ -328,7 +328,7 @@ def check_python_headers(conf, features='pyembed pyext'):
+ 	x = 'MACOSX_DEPLOYMENT_TARGET'
+ 	if dct[x]:
+ 		env[x] = conf.environ[x] = dct[x]
+-	env.pyext_PATTERN = '%s' + dct['SO'] # not a mistake
++	env.pyext_PATTERN = '%s.so'
+ 
+ 
+ 	# Try to get pythonX.Y-config
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.3.3.bb b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.3.3.bb
index e6e2066..9b20760 100644
--- a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.3.3.bb
+++ b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.3.3.bb
@@ -9,6 +9,7 @@
 
 SRC_URI = "https://www.samba.org/ftp/talloc/talloc-${PV}.tar.gz \
            file://options-2.2.0.patch \
+           file://0001-Fix-pyext_PATTERN-for-cross-compilation.patch \
 "
 SRC_URI[sha256sum] = "6be95b2368bd0af1c4cd7a88146eb6ceea18e46c3ffc9330bf6262b40d1d8aaa"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
new file mode 100644
index 0000000..6f22198
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,42 @@
+From 00bd6680ad38c20c95a35c963d7077269f3a3aa2 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 24 Nov 2021 13:33:35 +0800
+Subject: [PATCH] Fix pyext_PATTERN for cross compilation
+
+The pyext_PATTERN will add native arch as suffix when cross compiling.
+For example, on qemuarm64, it is expanded to:
+pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
+which will result in the incorrect library name.
+
+root@qemuarm64:~# find /usr/lib/python3.10/ -name tdb\*
+/usr/lib/python3.10/site-packages/tdb.so
+/usr/lib/python3.10/site-packages/tdb.cpython-310-x86_64-linux-gnu.so
+
+Set pyext_PATTERN to '%s.so' to remove the suffix.
+After the patch:
+root@qemuarm64:~# find /usr/lib/python3.10/ -name tdb\*
+/usr/lib/python3.10/site-packages/tdb.so
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ third_party/waf/waflib/Tools/python.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
+index 7c45a76..c9a90f7 100644
+--- a/third_party/waf/waflib/Tools/python.py
++++ b/third_party/waf/waflib/Tools/python.py
+@@ -328,7 +328,7 @@ def check_python_headers(conf, features='pyembed pyext'):
+ 	x = 'MACOSX_DEPLOYMENT_TARGET'
+ 	if dct[x]:
+ 		env[x] = conf.environ[x] = dct[x]
+-	env.pyext_PATTERN = '%s' + dct['SO'] # not a mistake
++	env.pyext_PATTERN = '%s.so'
+ 
+ 
+ 	# Try to get pythonX.Y-config
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.4.3.bb b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.4.3.bb
index ad84593..e7f7384 100644
--- a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.4.3.bb
+++ b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.4.3.bb
@@ -8,6 +8,7 @@
 
 SRC_URI = "https://samba.org/ftp/tdb/tdb-${PV}.tar.gz \
            file://tdb-Add-configure-options-for-packages.patch \
+           file://0001-Fix-pyext_PATTERN-for-cross-compilation.patch \
 "
 
 SRC_URI[md5sum] = "e638e8890f743624a754304b3f994f4d"
@@ -39,12 +40,6 @@
                  --with-libiconv=${STAGING_DIR_HOST}${prefix}\
                 "
 
-do_install:append() {
-     # add this link for cross check python module existence. eg: on x86-64 host, check python module
-     # under recipe-sysroot which is mips64.
-     cd ${D}${PYTHON_SITEPACKAGES_DIR}; ln -s tdb.*.so tdb.so
-}
-
 PACKAGES += "tdb-tools python3-tdb"
 
 RPROVIDES:${PN}-dbg += "python3-tdb-dbg"
diff --git a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/0001-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
new file mode 100644
index 0000000..81abac8
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,42 @@
+From 96ddbe6653f87670e4a0bbff229276bbe0aa822a Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 24 Nov 2021 13:33:35 +0800
+Subject: [PATCH] Fix pyext_PATTERN for cross compilation
+
+The pyext_PATTERN will add native arch as suffix when cross compiling.
+For example, on qemuarm64, it is expanded to:
+pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
+which will result in the incorrect library name.
+
+root@qemuarm64:~# find /usr/lib/python3.10/ -name \*tevent\*.so
+/usr/lib/python3.10/site-packages/_tevent.cpython-310-x86_64-linux-gnu.so
+/usr/lib/python3.10/site-packages/_tevent.so
+
+Set pyext_PATTERN to '%s.so' to remove the suffix.
+After the patch:
+root@qemuarm64:~# find /usr/lib/python3.10/ -name \*tevent\*.so
+/usr/lib/python3.10/site-packages/_tevent.so
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ third_party/waf/waflib/Tools/python.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
+index 7c45a76..c9a90f7 100644
+--- a/third_party/waf/waflib/Tools/python.py
++++ b/third_party/waf/waflib/Tools/python.py
+@@ -328,7 +328,7 @@ def check_python_headers(conf, features='pyembed pyext'):
+ 	x = 'MACOSX_DEPLOYMENT_TARGET'
+ 	if dct[x]:
+ 		env[x] = conf.environ[x] = dct[x]
+-	env.pyext_PATTERN = '%s' + dct['SO'] # not a mistake
++	env.pyext_PATTERN = '%s.so'
+ 
+ 
+ 	# Try to get pythonX.Y-config
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.10.2.bb b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.10.2.bb
index 5d7e1a0..78c0920 100644
--- a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.10.2.bb
+++ b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.10.2.bb
@@ -9,6 +9,7 @@
 SRC_URI = "https://samba.org/ftp/tevent/tevent-${PV}.tar.gz \
            file://options-0.10.0.patch \
            file://0001-libtevent-fix-musl-libc-compile-error.patch \
+           file://0001-Fix-pyext_PATTERN-for-cross-compilation.patch \
 "
 LIC_FILES_CHKSUM = "file://tevent.h;endline=26;md5=4e458d658cb25e21efc16f720e78b85a"
 
@@ -42,11 +43,6 @@
                  --with-libiconv=${STAGING_DIR_HOST}${prefix}\
                  --without-gettext \
                 "
-do_install:append() {
-     # add this link for cross check python module existence. eg: on x86-64 host, check python module
-     # under recipe-sysroot which is mips64. 
-     cd ${D}${PYTHON_SITEPACKAGES_DIR}; ln -s _tevent.*.so _tevent.so
-}
 
 PACKAGES += "python3-tevent"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.19.bb b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.19.bb
index 4549a06..5455560 100644
--- a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.19.bb
+++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.19.bb
@@ -14,7 +14,7 @@
 LK_REL = "1.0.19"
 
 SRC_URI = " \
-    git://github.com/sctp/lksctp-tools.git \
+    git://github.com/sctp/lksctp-tools.git;branch=master;protocol=https \
     file://run-ptest \
     file://v4test.sh \
     file://v6test.sh \
diff --git a/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb b/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
index 197703e..28def7b 100644
--- a/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
@@ -8,7 +8,7 @@
 DEPENDS = "flex-native bison-native libnl python"
 
 PV = "0.3.1+git${SRCPV}"
-SRC_URI = "git://github.com/linux-wpan/lowpan-tools \
+SRC_URI = "git://github.com/linux-wpan/lowpan-tools;branch=master;protocol=https \
            file://no-help2man.patch \
            file://0001-Fix-build-errors-with-clang.patch \
            file://0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch \
diff --git a/meta-openembedded/meta-networking/recipes-support/mctp/mctp_git.bb b/meta-openembedded/meta-networking/recipes-support/mctp/mctp_git.bb
index cab5d6c..350c272 100644
--- a/meta-openembedded/meta-networking/recipes-support/mctp/mctp_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/mctp/mctp_git.bb
@@ -5,9 +5,11 @@
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=4cc91856b08b094b4f406a29dc61db21"
 
-SRCREV = "a8658290b7914f67146a982671b09f2270ba1654"
+PV = "1.0+git${SRCPV}"
 
-SRC_URI = "git://github.com/CodeConstruct/mctp;branch=main"
+SRCREV = "669740432af525c19a6a41cec777406fbbc24836"
+
+SRC_URI = "git://github.com/CodeConstruct/mctp;branch=main;protocol=https"
 
 S = "${WORKDIR}/git"
 
@@ -27,5 +29,13 @@
         install -d ${D}${systemd_system_unitdir}
         install -m 0644 ${S}/conf/mctpd.service \
                 ${D}${systemd_system_unitdir}/mctpd.service
+        install -d ${D}${datadir}/dbus-1/system.d
+        install -m 0644 ${S}/conf/mctpd-dbus.conf \
+                ${D}${datadir}/dbus-1/system.d/mctpd.conf
     fi
 }
+
+FILES:${PN} += " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', \
+            '${datadir}/dbus-1/system.d/mctpd.conf', '', d)} \
+"
diff --git a/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.94.bb b/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.94.bb
deleted file mode 100644
index c046499..0000000
--- a/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.94.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Combined traceroute and ping utility"
-DESCRIPTION = "mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool."
-HOMEPAGE = "http://www.bitwizard.nl/mtr/"
-SECTION = "net"
-DEPENDS = "ncurses"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://ui/mtr.c;beginline=5;endline=16;md5=00a894a39d53726a27386534d1c4e468"
-
-SRCREV = "2c73cbf4094e4eed343ed11ae5bab2580f3122d1"
-SRC_URI = "git://github.com/traviscross/mtr"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--without-gtk"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
-PACKAGES += "${PN}-bash-completions"
-
-FILES:${PN}-bash-completions = "${datadir}/bash-completion/"
diff --git a/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.95.bb b/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.95.bb
new file mode 100644
index 0000000..b5e2fae
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.95.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Combined traceroute and ping utility"
+DESCRIPTION = "mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool."
+HOMEPAGE = "http://www.bitwizard.nl/mtr/"
+SECTION = "net"
+DEPENDS = "ncurses"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://ui/mtr.c;beginline=5;endline=16;md5=00a894a39d53726a27386534d1c4e468"
+
+SRCREV = "852e5617fbf331cf292723702161f0ac9afe257c"
+SRC_URI = "git://github.com/traviscross/mtr;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--without-gtk"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
+PACKAGES += "${PN}-bash-completions"
+
+FILES:${PN}-bash-completions = "${datadir}/bash-completion/"
diff --git a/meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.25.7.bb b/meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.25.7.bb
index 9dceb0f..7eb99c1 100644
--- a/meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.25.7.bb
+++ b/meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.25.7.bb
@@ -9,7 +9,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=f9dcc2d8acdde215fa4bd6ac12bb14f0"
 
-SRC_URI = "git://github.com/libguestfs/nbdkit.git;protocol=https \
+SRC_URI = "git://github.com/libguestfs/nbdkit.git;protocol=https;branch=master \
 "
 
 SRCREV = "babc2e2717c9025392dce613006a6ecae5886a57"
diff --git a/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb b/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb
index 037d929..69b774a 100644
--- a/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb
@@ -7,7 +7,7 @@
 
 PV = "1.0.5"
 SRCREV = "b706f5f01aa82aa0db678fffd15a1527f330c507"
-SRC_URI = "git://git.remlab.net/git/ndisc6.git;protocol=http \
+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/netcf/netcf_0.2.8.bb b/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb
index 88a19e2..3b6880a 100644
--- a/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb
+++ b/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb
@@ -9,7 +9,7 @@
 SRCREV = "2c5d4255857531bc09d91dcd02e86545f29004d4"
 PV .= "+git${SRCPV}"
 
-SRC_URI = "git://pagure.io/netcf.git;protocol=https \
+SRC_URI = "git://pagure.io/netcf.git;protocol=https;branch=master \
 "
 
 UPSTREAM_CHECK_GITTAGREGEX = "release-(?P<pver>(\d+(\.\d+)+))"
diff --git a/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb b/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb
index 724869b..62ba966 100644
--- a/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb
@@ -7,7 +7,7 @@
 
 PV = "2.7.0+git${SRCPV}"
 
-SRC_URI = "git://github.com/HewlettPackard/netperf.git \
+SRC_URI = "git://github.com/HewlettPackard/netperf.git;branch=master;protocol=https \
            file://cpu_set.patch \
            file://vfork.patch \
            file://init \
diff --git a/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb b/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb
index ce22943..d253548 100644
--- a/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb
+++ b/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb
@@ -14,7 +14,7 @@
 # v4.2.3
 SRCREV = "1bfda29c342a81b97cb1995ffd9e8da5de63e7ab"
 
-SRC_URI = "git://github.com/thkukuk/yp-tools \
+SRC_URI = "git://github.com/thkukuk/yp-tools;branch=master;protocol=https \
            file://domainname.service \
            "
 
diff --git a/meta-openembedded/meta-networking/recipes-support/ntimed/ntimed_git.bb b/meta-openembedded/meta-networking/recipes-support/ntimed/ntimed_git.bb
index ccfe112..9badfd7 100644
--- a/meta-openembedded/meta-networking/recipes-support/ntimed/ntimed_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ntimed/ntimed_git.bb
@@ -8,7 +8,7 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://main.c;beginline=2;endline=24;md5=89db8e76f2951f3fad167e7aa9718a44"
 
-SRC_URI = "git://github.com/bsdphk/Ntimed \
+SRC_URI = "git://github.com/bsdphk/Ntimed;branch=master;protocol=https \
            file://use-ldflags.patch"
 
 PV = "0.0+git${SRCPV}"
diff --git a/meta-openembedded/meta-networking/recipes-support/ntopng/ndpi_4.0.bb b/meta-openembedded/meta-networking/recipes-support/ntopng/ndpi_4.0.bb
index aee2d8c..960c4c2 100644
--- a/meta-openembedded/meta-networking/recipes-support/ntopng/ndpi_4.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ntopng/ndpi_4.0.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=b52f2d57d10c4f7ee67a7eb9615d5d24"
 
 SRCREV = "dabab0e9515c2e6a71a91bdc807453e416f831ca"
-SRC_URI = "git://github.com/ntop/nDPI.git;branch=4.0-stable \
+SRC_URI = "git://github.com/ntop/nDPI.git;branch=4.0-stable;protocol=https \
            file://0001-autogen.sh-not-generate-configure.patch \
 "
 
diff --git a/meta-openembedded/meta-networking/recipes-support/ntopng/ntopng_5.0.bb b/meta-openembedded/meta-networking/recipes-support/ntopng/ntopng_5.0.bb
index 0ddc596..c4b8db3 100644
--- a/meta-openembedded/meta-networking/recipes-support/ntopng/ntopng_5.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ntopng/ntopng_5.0.bb
@@ -12,7 +12,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
 SRCREV = "85867090d92df4365c0af8d47f54ab3106117e59"
-SRC_URI = "git://github.com/ntop/ntopng.git;protocol=git;branch=5.0-stable \
+SRC_URI = "git://github.com/ntop/ntopng.git;protocol=https;branch=5.0-stable \
            file://0001-configure.seed-fix-configure-error.patch \
            file://0001-configure.seed-fix-host-contamination.patch \
            file://0001-Makefile.in-don-t-use-the-internal-lua.patch \
diff --git a/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/0001-Update-to-OpenSSL-3.0.0-alpha15.patch b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/0001-Update-to-OpenSSL-3.0.0-alpha15.patch
new file mode 100644
index 0000000..825f6c9
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/0001-Update-to-OpenSSL-3.0.0-alpha15.patch
@@ -0,0 +1,111 @@
+From ba368822d0a197cb84c46c911d40d0c52cf9c391 Mon Sep 17 00:00:00 2001
+From: Hal Murray <hmurray@megapathdsl.net>
+Date: Sun, 2 May 2021 22:24:26 -0700
+Subject: [PATCH] Update to OpenSSL 3.0.0-alpha15
+
+Upstream-Status: Backport [https://gitlab.com/NTPsec/ntpsec/-/commit/ba368822d0a197cb84c46c911d40d0c52cf9c391]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+Signed-off-by: Alex Kiernan <alexk@zuma.ai>
+---
+ attic/cmac-timing.c | 37 ++++++++++++++-----------------------
+ 1 file changed, 14 insertions(+), 23 deletions(-)
+
+diff --git a/attic/cmac-timing.c b/attic/cmac-timing.c
+index c2088db63a4c..464daa76b9e6 100644
+--- a/attic/cmac-timing.c
++++ b/attic/cmac-timing.c
+@@ -225,28 +225,14 @@ static void DoPKEY(
+ #if OPENSSL_VERSION_NUMBER > 0x20000000L
+ static size_t One_EVP_MAC(
+   EVP_MAC_CTX *ctx,         /* context  */
+-  char *cipher,
+   uint8_t *key,             /* key pointer */
+   int     keylength,        /* key length */
+   uint8_t *pkt,             /* packet pointer */
+   int     pktlength         /* packet length */
+ ) {
+-	OSSL_PARAM params[3];
+ 	size_t len = EVP_MAX_MD_SIZE;
+ 
+-	params[0] =
+-          OSSL_PARAM_construct_utf8_string("cipher", cipher, 0);
+-	params[1] =
+-          OSSL_PARAM_construct_octet_string("key", key, keylength);
+-	params[2] = OSSL_PARAM_construct_end();
+-	if (0 == EVP_MAC_CTX_set_params(ctx, params)) {
+-		unsigned long err = ERR_get_error();
+-		char * str = ERR_error_string(err, NULL);
+-		printf("## Oops, EVP_MAC_CTX_set_params() failed: %s.\n", str);
+-		return 0;
+-	}
+-
+-	if (0 == EVP_MAC_init(ctx)) {
++	if (0 == EVP_MAC_init(ctx, key, keylength, NULL)) {
+ 		unsigned long err = ERR_get_error();
+ 		char * str = ERR_error_string(err, NULL);
+ 		printf("## Oops, EVP_MAC_init() failed: %s.\n", str);
+@@ -255,13 +241,13 @@ static size_t One_EVP_MAC(
+ 	if (0 == EVP_MAC_update(ctx, pkt, pktlength)) {
+ 		unsigned long err = ERR_get_error();
+ 		char * str = ERR_error_string(err, NULL);
+-		printf("## Oops, EVP_MAC_init() failed: %s.\n", str);
++		printf("## Oops, EVP_MAC_update() failed: %s.\n", str);
+ 		return 0;
+ 	}
+ 	if (0 == EVP_MAC_final(ctx, answer, &len, sizeof(answer))) {
+ 		unsigned long err = ERR_get_error();
+ 		char * str = ERR_error_string(err, NULL);
+-		printf("## Oops, EVP_MAC_init() failed: %s.\n", str);
++		printf("## Oops, EVP_MAC_final() failed: %s.\n", str);
+ 		return 0;
+ 	}
+ 	return len;
+@@ -290,7 +276,7 @@ static void Do_EVP_MAC(
+ 
+ 	clock_gettime(CLOCK_MONOTONIC, &start);
+ 	for (int i = 0; i < SAMPLESIZE; i++) {
+-		digestlength = One_EVP_MAC(evp, cbc, key, keylength, pkt, pktlength);
++		digestlength = One_EVP_MAC(evp, key, keylength, pkt, pktlength);
+ if (0 == digestlength) break;
+ 	}
+ 	clock_gettime(CLOCK_MONOTONIC, &stop);
+@@ -305,26 +291,31 @@ static size_t One_EVP_MAC2(
+   uint8_t *pkt,             /* packet pointer */
+   int     pktlength         /* packet length */
+ ) {
++	EVP_MAC_CTX *dup;
+ 	size_t len = EVP_MAX_MD_SIZE;
+ 
+-	if (0 == EVP_MAC_init(ctx)) {
++	// dup = ctx;
++	dup = EVP_MAC_CTX_dup(ctx);
++
++	if (0 == EVP_MAC_init(dup, NULL, 0, NULL)) {
+ 		unsigned long err = ERR_get_error();
+ 		char * str = ERR_error_string(err, NULL);
+ 		printf("## Oops, EVP_MAC_init() failed: %s.\n", str);
+ 		return 0;
+ 	}
+-	if (0 == EVP_MAC_update(ctx, pkt, pktlength)) {
++	if (0 == EVP_MAC_update(dup, pkt, pktlength)) {
+ 		unsigned long err = ERR_get_error();
+ 		char * str = ERR_error_string(err, NULL);
+-		printf("## Oops, EVP_MAC_init() failed: %s.\n", str);
++		printf("## Oops, EVP_MAC_update() failed: %s.\n", str);
+ 		return 0;
+ 	}
+-	if (0 == EVP_MAC_final(ctx, answer, &len, sizeof(answer))) {
++	if (0 == EVP_MAC_final(dup, answer, &len, sizeof(answer))) {
+ 		unsigned long err = ERR_get_error();
+ 		char * str = ERR_error_string(err, NULL);
+-		printf("## Oops, EVP_MAC_init() failed: %s.\n", str);
++		printf("## Oops, EVP_MAC_final() failed: %s.\n", str);
+ 		return 0;
+ 	}
++	EVP_MAC_CTX_free(dup);
+ 	return len;
+ }
+ 
+-- 
+2.33.0
+
diff --git a/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-clone3-for-glibc-2.34-in-se.patch b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-clone3-for-glibc-2.34-in-se.patch
new file mode 100644
index 0000000..112aaa2
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-clone3-for-glibc-2.34-in-se.patch
@@ -0,0 +1,31 @@
+From d474682bb30b93d04b7b01c2dd09832e483265ed Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sun, 14 Nov 2021 08:54:58 +0000
+Subject: [PATCH] ntpd/ntp_sandbox.c: allow clone3 for glibc-2.34 in seccomp
+ filter
+
+Bug: https://bugs.gentoo.org/823692
+Fixes: https://gitlab.com/NTPsec/ntpsec/-/issues/713
+Signed-off-by: Sam James <sam@gentoo.org>
+Upstream-Status: Backport [https://gitlab.com/NTPsec/ntpsec/-/commit/d474682bb30b93d04b7b01c2dd09832e483265ed]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+Signed-off-by: Alex Kiernan <alexk@zuma.ai>
+---
+ ntpd/ntp_sandbox.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ntpd/ntp_sandbox.c b/ntpd/ntp_sandbox.c
+index e66faaa8cbb0..3d6bccdfcf77 100644
+--- a/ntpd/ntp_sandbox.c
++++ b/ntpd/ntp_sandbox.c
+@@ -401,6 +401,7 @@ int scmp_sc[] = {
+  * rather than generate a trap.
+  */
+ 	SCMP_SYS(clone),	/* threads */
++	SCMP_SYS(clone3),
+ 	SCMP_SYS(kill),		/* generate signal */
+ 	SCMP_SYS(madvise),
+ 	SCMP_SYS(mprotect),
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-newfstatat-on-all-archs-for.patch b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-newfstatat-on-all-archs-for.patch
new file mode 100644
index 0000000..3bec2ce
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-newfstatat-on-all-archs-for.patch
@@ -0,0 +1,42 @@
+From a6c0847582305aaab122d54b635954829812922f Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alexk@zuma.ai>
+Date: Thu, 30 Dec 2021 09:32:26 +0000
+Subject: [PATCH 1/2] ntpd/ntp_sandbox.c: allow newfstatat on all archs for
+ glibc-2.34 in seccomp filter
+
+On Yocto Poky, newfstatat is used on (at least) arm64, x86_64 and
+riscv64:
+
+  2021-12-30T09:32:04 ntpd[341]: ERR: SIGSYS: got a trap.
+  2021-12-30T09:32:04 ntpd[341]: ERR: SIGSYS/seccomp bad syscall 262/0xc000003e
+
+Upstream-Status: Backport [https://gitlab.com/NTPsec/ntpsec/-/commit/a6c0847582305aaab122d54b635954829812922f]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+Signed-off-by: Alex Kiernan <alexk@zuma.ai>
+---
+ ntpd/ntp_sandbox.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ntpd/ntp_sandbox.c b/ntpd/ntp_sandbox.c
+index 3d6bccdfcf77..1ae82a671344 100644
+--- a/ntpd/ntp_sandbox.c
++++ b/ntpd/ntp_sandbox.c
+@@ -349,6 +349,7 @@ int scmp_sc[] = {
+ 	SCMP_SYS(lseek),
+ 	SCMP_SYS(membarrier),	/* Needed on Alpine 3.11.3 */
+ 	SCMP_SYS(munmap),
++	SCMP_SYS(newfstatat),
+ 	SCMP_SYS(open),
+ #ifdef __NR_openat
+ 	SCMP_SYS(openat),	/* SUSE */
+@@ -452,7 +453,6 @@ int scmp_sc[] = {
+ #endif
+ #if defined(__aarch64__)
+ 	SCMP_SYS(faccessat),
+-	SCMP_SYS(newfstatat),
+ 	SCMP_SYS(renameat),
+ 	SCMP_SYS(linkat),
+ 	SCMP_SYS(unlinkat),
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/0002-ntpd-ntp_sandbox.c-match-riscv-to-aarch-in-seccomp-f.patch b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/0002-ntpd-ntp_sandbox.c-match-riscv-to-aarch-in-seccomp-f.patch
new file mode 100644
index 0000000..705a87b
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/0002-ntpd-ntp_sandbox.c-match-riscv-to-aarch-in-seccomp-f.patch
@@ -0,0 +1,34 @@
+From 0f94870b84e68448f16b1304058bde4628dafde5 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alexk@zuma.ai>
+Date: Thu, 30 Dec 2021 10:41:20 +0000
+Subject: [PATCH 2/2] ntpd/ntp_sandbox.c: match riscv to aarch in seccomp
+ filter
+
+On Yocto Poky, faccessat (et al) are also used on riscv64:
+
+  2018-03-09T12:35:32 ntpd[341]: ERR: SIGSYS: got a trap.
+  2018-03-09T12:35:32 ntpd[341]: ERR: SIGSYS/seccomp bad syscall 48/0xc00000f3
+
+Upstream-Status: Backport [https://gitlab.com/NTPsec/ntpsec/-/commit/0f94870b84e68448f16b1304058bde4628dafde5]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+Signed-off-by: Alex Kiernan <alexk@zuma.ai>
+---
+ ntpd/ntp_sandbox.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ntpd/ntp_sandbox.c b/ntpd/ntp_sandbox.c
+index 1ae82a671344..4a14ae224dc6 100644
+--- a/ntpd/ntp_sandbox.c
++++ b/ntpd/ntp_sandbox.c
+@@ -451,7 +451,7 @@ int scmp_sc[] = {
+ 	/* gentoo 64-bit and 32-bit, Intel and Arm use mmap */
+ 	SCMP_SYS(mmap),
+ #endif
+-#if defined(__aarch64__)
++#if defined(__aarch64__) || defined(__riscv)
+ 	SCMP_SYS(faccessat),
+ 	SCMP_SYS(renameat),
+ 	SCMP_SYS(linkat),
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/volatiles.ntpsec b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/volatiles.ntpsec
new file mode 100644
index 0000000..b5f9356
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec/volatiles.ntpsec
@@ -0,0 +1,3 @@
+d ntp ntp 0755 @NTP_USER_HOME@ none
+d ntp ntp 0755 /var/log/ntpstats none
+f ntp ntp 0644 /var/log/ntpd.log none
diff --git a/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec_1.2.1.bb b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec_1.2.1.bb
new file mode 100644
index 0000000..3efac7d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec_1.2.1.bb
@@ -0,0 +1,123 @@
+SUMMARY = "The Network Time Protocol suite, refactored"
+HOMEPAGE = "https://www.ntpsec.org/"
+
+LICENSE = "CC-BY-4.0 & BSD-2-Clause & NTP & BSD-3-Clause & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=0520591566b6ed3a9ced8b15b4d4abf9 \
+                    file://libjsmn/LICENSE;md5=38118982429881235de8adf478a8e75d \
+                    file://docs/copyright.adoc;md5=9a1e3fce4b630078cb67ba2b619d2b13 \
+                    file://libaes_siv/COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+DEPENDS += "bison-native \
+            openssl \
+            python3"
+
+SRC_URI = "https://ftp.ntpsec.org/pub/releases/ntpsec-${PV}.tar.gz \
+           file://0001-Update-to-OpenSSL-3.0.0-alpha15.patch \
+           file://0001-ntpd-ntp_sandbox.c-allow-clone3-for-glibc-2.34-in-se.patch \
+           file://0001-ntpd-ntp_sandbox.c-allow-newfstatat-on-all-archs-for.patch \
+           file://0002-ntpd-ntp_sandbox.c-match-riscv-to-aarch-in-seccomp-f.patch \
+           file://volatiles.ntpsec"
+
+SRC_URI[sha256sum] = "f2684835116c80b8f21782a5959a805ba3c44e3a681dd6c17c7cb00cc242c27a"
+
+inherit pkgconfig python3-dir python3targetconfig systemd update-alternatives update-rc.d useradd waf features_check
+
+# RDEPENDS on gnuplot with this restriction
+REQUIRED_DISTRO_FEATURES = "x11"
+
+PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'seccomp systemd', d)} \
+                 cap \
+                 leap-smear \
+                 mdns \
+                 mssntp \
+                 nts \
+                 refclocks"
+
+PACKAGECONFIG:remove:riscv32 = "seccomp"
+
+PACKAGECONFIG[cap] = ",,libcap"
+PACKAGECONFIG[docs] = "--enable-doc --enable-manpage,--disable-doc --disable-manpage,"
+PACKAGECONFIG[leap-smear] = "--enable-leap-smear"
+PACKAGECONFIG[mdns] = ",,mdns"
+PACKAGECONFIG[mssntp] = "--enable-mssntp"
+PACKAGECONFIG[nts] = ",--disable-nts"
+PACKAGECONFIG[refclocks] = "--refclock=all,,pps-tools"
+PACKAGECONFIG[seccomp] = "--enable-seccomp,,libseccomp"
+PACKAGECONFIG[systemd] = ",,systemd"
+
+CC[unexport] = "1"
+CFLAGS[unexport] = "1"
+LDFLAGS[unexport] = "1"
+
+export PYTHON_VERSION = "${PYTHON_BASEVERSION}"
+export PYTAG = "cpython${@ d.getVar('PYTHON_BASEVERSION').replace('.', '')}"
+export pyext_PATTERN = "%s.so"
+export PYTHON_LDFLAGS = "-lpthread -ldl"
+
+CFLAGS:append = " -I${PYTHON_INCLUDE_DIR}"
+
+EXTRA_OECONF = "--cross-compiler='${CC}' \
+                --cross-cflags='${CFLAGS}' \
+                --cross-ldflags='${LDFLAGS}' \
+                --pyshebang=${bindir}/python3 \
+                --pythondir=${PYTHON_SITEPACKAGES_DIR} \
+                --pythonarchdir=${PYTHON_SITEPACKAGES_DIR} \
+                --enable-debug \
+                --enable-debug-gdb \
+                --enable-early-droproot"
+
+EXTRA_OEWAF_BUILD ?= "-v"
+
+NTP_USER_HOME ?= "/var/lib/ntp"
+
+do_install:append() {
+	install -d ${D}${sysconfdir}/init.d
+	install -m 755 ${S}/etc/rc/ntpd ${D}${sysconfdir}/init.d
+	cp -r ${S}/etc/ntp.d ${D}${sysconfdir}
+
+	sed -e 's:@NTP_USER_HOME@:${NTP_USER_HOME}:g' ${WORKDIR}/volatiles.ntpsec >${T}/volatiles.ntpsec
+	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+		cp ${B}/main/etc/* ${D}${systemd_system_unitdir}
+		awk '{print $1, $5, $4, $2, $3, "-"}' ${T}/volatiles.ntpsec >${T}/tmpfiles.ntpsec
+		install -D -m 0644 ${T}/tmpfiles.ntpsec ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
+	else
+		install -D -m 0644 ${T}/volatiles.ntpsec ${D}${sysconfdir}/default/volatiles/99_${BPN}
+	fi
+}
+
+PACKAGE_BEFORE_PN = "${PN}-python ${PN}-utils ${PN}-viz"
+
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d/ntpsec.conf"
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR} \
+                      ${libdir}/libntpc.so.*"
+FILES:${PN}-utils = "${bindir}/ntpdig \
+                     ${bindir}/ntpkeygen \
+                     ${bindir}/ntpleapfetch \
+                     ${bindir}/ntpmon \
+                     ${bindir}/ntpq \
+                     ${bindir}/ntpsnmpd \
+                     ${bindir}/ntpsweep \
+                     ${bindir}/ntptrace \
+                     ${bindir}/ntpwait"
+FILES:${PN}-viz = "${bindir}/ntplogtemp \
+                   ${bindir}/ntpviz"
+
+RDEPENDS:${PN} += "libgcc"
+RDEPENDS:${PN}-utils += "${PN}-python python3-core"
+RDEPENDS:${PN}-viz += "gnuplot ${PN}-python python3-core python3-compression python3-ctypes python3-logging python3-shell"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --home-dir ${NTP_USER_HOME} \
+                       --no-create-home \
+                       --shell /bin/false --user-group ntp"
+
+INITSCRIPT_NAME = "ntpd"
+
+SYSTEMD_PACKAGES = "${PN} ${PN}-viz"
+SYSTEMD_SERVICE:${PN} = "ntpd.service ntp-wait.service"
+SYSTEMD_SERVICE:${PN}-viz = "ntplogtemp.service ntpviz-weekly.timer ntpviz-weekly.service ntpviz-daily.timer ntpviz-daily.service ntplogtemp.timer"
+
+ALTERNATIVE_PRIORITY = "80"
+
+ALTERNATIVE:${PN} = "ntpd"
+ALTERNATIVE_LINK_NAME[ntpd] = "${sbindir}/ntpd"
diff --git a/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.101.bb b/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.101.bb
index 6766478..b3d1bdc 100644
--- a/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.101.bb
+++ b/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.101.bb
@@ -13,7 +13,7 @@
 
 DEPENDS = "openssl"
 
-SRC_URI = "git://github.com/open-iscsi/open-isns \
+SRC_URI = "git://github.com/open-iscsi/open-isns;branch=master;protocol=https \
            file://0001-isnsd.socket-use-run-instead-of-var-run.patch \
            "
 
diff --git a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Add-resolv_compat.h-for-musl-builds.patch b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Add-resolv_compat.h-for-musl-builds.patch
index aa7a560..c09bc12 100644
--- a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Add-resolv_compat.h-for-musl-builds.patch
+++ b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Add-resolv_compat.h-for-musl-builds.patch
@@ -1,4 +1,4 @@
-From c0c36ba5dd7047710e4c3135f147ce4119021200 Mon Sep 17 00:00:00 2001
+From f93b680ec1a816ffe90d5f1bce609f8bf68a456e Mon Sep 17 00:00:00 2001
 From: Trevor Gamblin <trevor.gamblin@windriver.com>
 Date: Wed, 14 Apr 2021 10:24:52 -0400
 Subject: [PATCH] Add resolv_compat.h for musl builds
@@ -10,6 +10,7 @@
 Upstream-Status: Pending
 
 Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
+
 ---
  open-vm-tools/lib/nicInfo/nicInfoPosix.c  |  4 +++
  open-vm-tools/lib/nicInfo/resolv_compat.h | 30 +++++++++++++++++++++++
@@ -17,7 +18,7 @@
  create mode 100644 open-vm-tools/lib/nicInfo/resolv_compat.h
 
 diff --git a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
-index 8710c542..25f3146e 100644
+index c56b73cf..8ae3b2f7 100644
 --- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
 +++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
 @@ -70,6 +70,10 @@
@@ -67,6 +68,3 @@
 +}
 +#endif
 +
--- 
-2.30.2
-
diff --git a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-hgfsmounter-Makefile.am-support-usrmerge.patch b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-hgfsmounter-Makefile.am-support-usrmerge.patch
deleted file mode 100644
index 82443ee..0000000
--- a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-hgfsmounter-Makefile.am-support-usrmerge.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 33798f3e484ebd3470e9da791b73b4b90ba12bc3 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Tue, 14 Jan 2020 15:04:03 +0800
-Subject: [PATCH] hgfsmounter/Makefile.am: support usrmerge
-
-There is a do_package error when enable usrmerge feature due to the
-hardcoded sbin directory. Remove this piece of code because we already
-create the symbolic link in do_install.
-
-Upstream-Status: Inappropriate [oe-specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- open-vm-tools/hgfsmounter/Makefile.am | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/open-vm-tools/hgfsmounter/Makefile.am b/open-vm-tools/hgfsmounter/Makefile.am
-index 7c1ba1a..58bd3f8 100644
---- a/open-vm-tools/hgfsmounter/Makefile.am
-+++ b/open-vm-tools/hgfsmounter/Makefile.am
-@@ -39,9 +39,6 @@ uninstall-hook:
- 	rm -f $(DESTDIR)$(sbindir)/mount_vmhgfs
- else
- install-exec-hook:
--	-$(MKDIR_P) $(DESTDIR)/sbin
--	-$(LN_S) $(DESTDIR)$(sbindir)/mount.vmhgfs \
--		$(DESTDIR)/sbin/mount.vmhgfs &> /dev/null
- uninstall-hook:
- 	rm -f $(DESTDIR)/sbin/mount.vmhgfs
- endif !FREEBSD
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-pollGtk-Fix-volatile-qualifier-exposed-incorrectly.patch b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-pollGtk-Fix-volatile-qualifier-exposed-incorrectly.patch
deleted file mode 100644
index fdcd7d6..0000000
--- a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-pollGtk-Fix-volatile-qualifier-exposed-incorrectly.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 524fd4db646b4ac2155074b4cedf8436a8ff726d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 15 Apr 2021 06:58:31 -0700
-Subject: [PATCH] pollGtk: Fix volatile qualifier exposed incorrectly
-
-GCC11 flags it
-
-Fixes
-glib-2.0/glib/gatomic.h:117:5: error: argument 2 of '__atomic_load' discards 'volatile' qualifier [-Werror=incompatible-pointer-types]
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/pollGtk/pollGtk.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/open-vm-tools/lib/pollGtk/pollGtk.c b/open-vm-tools/lib/pollGtk/pollGtk.c
-index 4ccaeda6..336a8bf1 100644
---- a/open-vm-tools/lib/pollGtk/pollGtk.c
-+++ b/open-vm-tools/lib/pollGtk/pollGtk.c
-@@ -127,7 +127,7 @@ typedef struct Poll {
- } Poll;
- 
- static Poll *pollState;
--static volatile gsize inited = 0;
-+static gsize inited = 0;
- 
- static VMwareStatus
- PollGtkCallback(PollClassSet classSet,   // IN
diff --git a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch
index efada7a..97a4136 100644
--- a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch
+++ b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch
@@ -1,7 +1,7 @@
-From deba3b87a9bfad007f94b840c9ccd6f1c78c2e98 Mon Sep 17 00:00:00 2001
+From c6836386549fb8f017761ce17a237fa42901434c Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 24 Mar 2021 17:36:26 -0400
-Subject: [PATCH 1/2] hgfsServerLinux: Consider 64bit time_t possibility
+Subject: [PATCH] hgfsServerLinux: Consider 64bit time_t possibility
 
 Upstream-Status: Pending
 
@@ -10,20 +10,21 @@
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
 Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
+
 ---
- .../lib/hgfsServer/hgfsServerLinux.c          | 19 +++++--------------
- 1 file changed, 5 insertions(+), 14 deletions(-)
+ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 14 --------------
+ 1 file changed, 14 deletions(-)
 
 diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
-index 62aeee6d..ba2e5624 100644
+index f5cc80b7..5a79d645 100644
 --- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
 +++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
-@@ -2566,20 +2566,11 @@ HgfsStatToFileAttr(struct stat *stats,       // IN: stat information
+@@ -2566,20 +2566,6 @@ HgfsStatToFileAttr(struct stat *stats,       // IN: stat information
     LOG(4, "%s: done, permissions %o%o%o%o, size %"FMT64"u\n", __FUNCTION__,
         attr->specialPerms, attr->ownerPerms, attr->groupPerms,
         attr->otherPerms, attr->size);
 -#ifdef __FreeBSD__
--#   if !defined(VM_X86_64) && __FreeBSD_version >= 500043
+-#   if !defined(VM_X86_64) && !defined(VM_ARM_64) && __FreeBSD_version >= 500043
 -#      define FMTTIMET ""
 -#   else
 -#      define FMTTIMET "l"
@@ -36,14 +37,6 @@
 -       stats->st_atime, attr->accessTime, stats->st_mtime, attr->writeTime,
 -       stats->st_ctime, attr->attrChangeTime);
 -#undef FMTTIMET
-+   //LOG(4, ("access: %jd/%"FMT64"u \nwrite: %jd/%"FMT64"u \n"
-+   //        "attr: %jd/%"FMT64"u\n",
-+   //        (intmax_t)stats->st_atime, attr->accessTime,
-+   //        (intmax_t)stats->st_mtime, attr->writeTime,
-+   //        (intmax_t)stats->st_ctime, attr->attrChangeTime));
  
     attr->userId = stats->st_uid;
     attr->groupId = stats->st_gid;
--- 
-2.30.2
-
diff --git a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0007-Fix-subdir-objects-configure-error.patch b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0007-Fix-subdir-objects-configure-error.patch
index 11be2d4..fd7ebce 100644
--- a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0007-Fix-subdir-objects-configure-error.patch
+++ b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0007-Fix-subdir-objects-configure-error.patch
@@ -1,4 +1,4 @@
-From cf1284fda8fb22a2b27cb2ce7962f166166e74c3 Mon Sep 17 00:00:00 2001
+From 294a3f14b74f2020a5cf3ccc2b6adabbcfce4151 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 13 Jun 2018 23:48:04 -0700
 Subject: [PATCH] Fix subdir objects configure error
@@ -6,19 +6,29 @@
 Fix build on musl while here
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
- open-vm-tools/configure.ac | 1 +
- 1 file changed, 1 insertion(+)
+ open-vm-tools/configure.ac | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
-index 71e684bb..b76a7966 100644
+index 005814ef..edf1f21a 100644
 --- a/open-vm-tools/configure.ac
 +++ b/open-vm-tools/configure.ac
-@@ -303,6 +303,7 @@ AC_ARG_ENABLE(
+@@ -326,7 +326,6 @@ AC_ARG_ENABLE(
     [],
     [enable_resolutionkms="auto"])
  
+-
+ AC_ARG_ENABLE(
+    vmwgfxctrl,
+    AS_HELP_STRING(
+@@ -335,7 +334,7 @@ AC_ARG_ENABLE(
+    [],
+    [enable_vmwgfxctrl="auto"])
+ 
+-AM_INIT_AUTOMAKE
 +AM_INIT_AUTOMAKE([subdir-objects])
- AM_INIT_AUTOMAKE
  
  ###
+ ### Constants
diff --git a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0012-Use-off64_t-instead-of-__off64_t.patch b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0012-Use-off64_t-instead-of-__off64_t.patch
index d69b74e..5e37d76 100644
--- a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0012-Use-off64_t-instead-of-__off64_t.patch
+++ b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0012-Use-off64_t-instead-of-__off64_t.patch
@@ -1,4 +1,4 @@
-From 123c690f12f560022305b0cf19499e7f81a690ae Mon Sep 17 00:00:00 2001
+From 80b1c4236549b0194d1f0d6e9be887e3a5850843 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 27 Aug 2018 23:22:21 -0700
 Subject: [PATCH] Use off64_t instead of __off64_t
@@ -8,12 +8,13 @@
 
 Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  open-vm-tools/lib/file/fileIOPosix.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/open-vm-tools/lib/file/fileIOPosix.c b/open-vm-tools/lib/file/fileIOPosix.c
-index 23108279..bcd2ddc5 100644
+index 82c0aa18..e9154541 100644
 --- a/open-vm-tools/lib/file/fileIOPosix.c
 +++ b/open-vm-tools/lib/file/fileIOPosix.c
 @@ -206,10 +206,10 @@ static AlignedPool alignedPool;
@@ -27,5 +28,5 @@
 -                          __off64_t offset) __attribute__ ((weak));
 +                          off64_t offset) __attribute__ ((weak));
     #else
-       #error "Large file support unavailable. Aborting."
+       #error "Large file support is unavailable."
     #endif
diff --git a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_11.2.5.bb b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_11.2.5.bb
deleted file mode 100644
index 116ff81..0000000
--- a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_11.2.5.bb
+++ /dev/null
@@ -1,120 +0,0 @@
-# This recipe is modified from the recipe originally found in the Open-Switch
-# repository:
-#
-# https://github.com/open-switch/ops-build
-# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb
-# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9
-#
-# The recipe packaging has been relicensed under the MIT license for inclusion
-# in meta-openembedded by agreement of the author (Diego Dompe).
-#
-
-SUMMARY = "Tools to enhance VMWare guest integration and performance"
-HOMEPAGE = "https://github.com/vmware/open-vm-tools"
-DESCRIPTION = "\
-open-vm-tools is a set of services and modules that enable several features in VMware products \
-for better management of and seamless user interactions with guests.\
-"
-SECTION = "vmware-tools"
-
-LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=559317809c5444fb39ceaf6ac45c43ac"
-LICENSE:modules/freebsd/vmblock = "BSD"
-LICENSE:modules/freebsd/vmmemctl = "GPL-2.0"
-LICENSE:modules/freebsd/vmxnet = "GPL-2.0"
-LICENSE:modules/linux = "GPL-2.0"
-LICENSE:modules/solaris = "CDDL-1.0"
-
-SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \
-    file://tools.conf \
-    file://vmtoolsd.service \
-    file://vmtoolsd.init \
-    file://0001-configure.ac-don-t-use-dnet-config.patch;patchdir=.. \
-    file://0003-Use-configure-test-for-struct-timespec.patch;patchdir=.. \
-    file://0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch;patchdir=.. \
-    file://0005-Use-configure-to-test-for-feature-instead-of-platfor.patch;patchdir=.. \
-    file://0006-Use-configure-test-for-sys-stat.h-include.patch;patchdir=.. \
-    file://0007-Fix-subdir-objects-configure-error.patch;patchdir=.. \
-    file://0008-include-poll.h-instead-of-sys-poll.h.patch;patchdir=.. \
-    file://0009-Rename-poll.h-to-vm_poll.h.patch;patchdir=.. \
-    file://0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch;patchdir=.. \
-    file://0011-Use-uintmax_t-for-handling-rlim_t.patch;patchdir=.. \
-    file://0012-Use-off64_t-instead-of-__off64_t.patch;patchdir=.. \
-    file://0013-misc-Do-not-print-NULL-string-into-logs.patch;patchdir=.. \
-    file://0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch;patchdir=.. \
-    file://0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch;patchdir=.. \
-    file://0001-hgfsmounter-Makefile.am-support-usrmerge.patch;patchdir=.. \
-    file://0001-pollGtk-Fix-volatile-qualifier-exposed-incorrectly.patch;patchdir=.. \
-"
-
-SRC_URI:append:libc-musl = " file://0001-Add-resolv_compat.h-for-musl-builds.patch;patchdir=.. \
-"
-
-SRCREV = "7ae57c3c7c1f68c74637ad009673dae94ee52570"
-
-S = "${WORKDIR}/git/open-vm-tools"
-
-DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps libtirpc"
-
-# open-vm-tools is supported only on x86.
-COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
-
-inherit autotools pkgconfig systemd update-rc.d
-
-SYSTEMD_SERVICE:${PN} = "vmtoolsd.service"
-
-EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
-         --disable-tests --without-gtkmm --without-xerces --without-pam \
-         --disable-vgauth --disable-deploypkg \
-         --without-root-privileges --without-kernel-modules --with-tirpc \
-         --with-udev-rules-dir=${nonarch_base_libdir}/udev/rules.d"
-
-NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
-X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
-PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}"
-
-# fuse gets implicitly detected; there is no --without-fuse option.
-PACKAGECONFIG[fuse] = ",,fuse"
-
-CFLAGS:append:toolchain-clang = " -Wno-address-of-packed-member"
-FILES:${PN} += "\
-    ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \
-    ${libdir}/open-vm-tools/plugins/common/lib*.so \
-    ${sysconfdir}/vmware-tools/tools.conf \
-"
-FILES:${PN}-locale += "${datadir}/open-vm-tools/messages"
-FILES:${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la"
-
-CONFFILES:${PN} += "${sysconfdir}/vmware-tools/tools.conf"
-
-RDEPENDS:${PN} = "util-linux libdnet fuse"
-
-do_install:append() {
-    if ! ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then
-        install -d ${D}/sbin
-        ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
-    fi
-    install -d ${D}${sysconfdir}/vmware-tools
-    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
-        install -d ${D}${systemd_unitdir}/system
-        install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
-    else
-        install -d ${D}${sysconfdir}/init.d
-        install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd
-    fi
-    install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
-}
-
-do_configure:prepend() {
-    export CUSTOM_DNET_NAME=dnet
-    export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
-}
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME:${PN} = "vmtoolsd"
-INITSCRIPT_PARAMS:${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ."
-
-python() {
-    if 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
-        raise bb.parse.SkipRecipe('Requires meta-filesystems to be present to provide fuse.')
-}
diff --git a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_11.3.5.bb b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_11.3.5.bb
new file mode 100644
index 0000000..38034c3
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_11.3.5.bb
@@ -0,0 +1,120 @@
+# This recipe is modified from the recipe originally found in the Open-Switch
+# repository:
+#
+# https://github.com/open-switch/ops-build
+# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb
+# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9
+#
+# The recipe packaging has been relicensed under the MIT license for inclusion
+# in meta-openembedded by agreement of the author (Diego Dompe).
+#
+
+SUMMARY = "Tools to enhance VMWare guest integration and performance"
+HOMEPAGE = "https://github.com/vmware/open-vm-tools"
+DESCRIPTION = "\
+open-vm-tools is a set of services and modules that enable several features in VMware products \
+for better management of and seamless user interactions with guests.\
+"
+SECTION = "vmware-tools"
+
+LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=559317809c5444fb39ceaf6ac45c43ac"
+LICENSE:modules/freebsd/vmblock = "BSD"
+LICENSE:modules/freebsd/vmmemctl = "GPL-2.0"
+LICENSE:modules/freebsd/vmxnet = "GPL-2.0"
+LICENSE:modules/linux = "GPL-2.0"
+LICENSE:modules/solaris = "CDDL-1.0"
+
+SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https;branch=master \
+           file://tools.conf \
+           file://vmtoolsd.service \
+           file://vmtoolsd.init \
+           file://0001-configure.ac-don-t-use-dnet-config.patch;patchdir=.. \
+           file://0003-Use-configure-test-for-struct-timespec.patch;patchdir=.. \
+           file://0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch;patchdir=.. \
+           file://0005-Use-configure-to-test-for-feature-instead-of-platfor.patch;patchdir=.. \
+           file://0006-Use-configure-test-for-sys-stat.h-include.patch;patchdir=.. \
+           file://0007-Fix-subdir-objects-configure-error.patch;patchdir=.. \
+           file://0008-include-poll.h-instead-of-sys-poll.h.patch;patchdir=.. \
+           file://0009-Rename-poll.h-to-vm_poll.h.patch;patchdir=.. \
+           file://0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch;patchdir=.. \
+           file://0011-Use-uintmax_t-for-handling-rlim_t.patch;patchdir=.. \
+           file://0012-Use-off64_t-instead-of-__off64_t.patch;patchdir=.. \
+           file://0013-misc-Do-not-print-NULL-string-into-logs.patch;patchdir=.. \
+           file://0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch;patchdir=.. \
+           file://0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch;patchdir=.. \
+           "
+
+UPSTREAM_CHECK_GITTAGREGEX = "stable-(?P<pver>\d+(\.\d+)+)"
+
+SRC_URI:append:libc-musl = " file://0001-Add-resolv_compat.h-for-musl-builds.patch;patchdir=.. \
+"
+
+SRCREV = "87abba1ce2356fc860eb9d0777d8e9de47427358"
+
+S = "${WORKDIR}/git/open-vm-tools"
+
+DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps libtirpc"
+
+# open-vm-tools is supported only on x86.
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
+
+inherit autotools pkgconfig systemd update-rc.d
+
+SYSTEMD_SERVICE:${PN} = "vmtoolsd.service"
+
+EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
+         --disable-tests --without-gtkmm --without-xerces --without-pam \
+         --disable-vgauth --disable-deploypkg \
+         --without-root-privileges --without-kernel-modules --with-tirpc \
+         --with-udev-rules-dir=${nonarch_base_libdir}/udev/rules.d"
+
+NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
+X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
+PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}"
+
+# fuse gets implicitly detected; there is no --without-fuse option.
+PACKAGECONFIG[fuse] = ",,fuse"
+
+CFLAGS:append:toolchain-clang = " -Wno-address-of-packed-member"
+FILES:${PN} += "\
+    ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \
+    ${libdir}/open-vm-tools/plugins/common/lib*.so \
+    ${sysconfdir}/vmware-tools/tools.conf \
+"
+FILES:${PN}-locale += "${datadir}/open-vm-tools/messages"
+FILES:${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la"
+
+CONFFILES:${PN} += "${sysconfdir}/vmware-tools/tools.conf"
+
+RDEPENDS:${PN} = "util-linux libdnet fuse"
+
+do_install:append() {
+    if ! ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then
+        install -d ${D}/sbin
+        ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
+    fi
+    install -d ${D}${sysconfdir}/vmware-tools
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+        install -d ${D}${systemd_unitdir}/system
+        install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
+    else
+        install -d ${D}${sysconfdir}/init.d
+        install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd
+    fi
+    install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
+}
+
+do_configure:prepend() {
+    export CUSTOM_DNET_NAME=dnet
+    export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
+}
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${PN} = "vmtoolsd"
+INITSCRIPT_PARAMS:${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ."
+
+python() {
+    if 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
+        raise bb.parse.SkipRecipe('Requires meta-filesystems to be present to provide fuse.')
+}
diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.31.bb b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.31.bb
deleted file mode 100644
index 4b85d94..0000000
--- a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.31.bb
+++ /dev/null
@@ -1,113 +0,0 @@
-SUMMARY = "IPMI (Intelligent Platform Management Interface) library and tools"
-DESCRIPTION = "OpenIPMI is an effort to create a full-function IPMI system, \
-to allow full access to all IPMI information on a server \
-and to abstract it to a level that will make it easy to use"
-
-HOMEPAGE = "http://openipmi.sourceforge.net"
-
-DEPENDS = " \
-    glib-2.0 \
-    ncurses \
-    net-snmp \
-    openssl \
-    popt \
-    python3 \
-    swig-native \
-    readline \
-    "
-
-LICENSE = "GPLv2 & LGPLv2.1 & BSD"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
-                    file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
-                    file://COPYING.BSD;md5=4b318d4160eb69c8ee53452feb1b4cdf \
-                    "
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \
-           file://fix-symlink-install-error-in-cmdlang.patch \
-           file://openipmi-no-openipmigui-man.patch \
-           file://openipmi-remove-host-path-from-la_LDFLAGS.patch \
-           file://ipmi-init-fix-the-arguments.patch \
-           file://include_sys_types.patch \
-           file://openipmi-helper \
-           file://ipmi.service \
-           file://0001-m4-ax_python_devel.m4-do-not-check-for-distutils.patch \
-           "
-
-S = "${WORKDIR}/OpenIPMI-${PV}"
-
-SRC_URI[md5sum] = "ce8eb27da016dcad7543d0128fcb3b0a"
-SRC_URI[sha256sum] = "7052f37726ff454b0dcac49f35dd030bc12c9570ca0ba5cd2d17774b8e9d9717"
-
-inherit autotools-brokensep pkgconfig python3native perlnative update-rc.d systemd cpan-base python3targetconfig
-
-EXTRA_OECONF = "--disable-static \
-                --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \
-                --with-python='${STAGING_BINDIR_NATIVE}/python3-native/python3' \
-                --with-pythoninstall='${PYTHON_SITEPACKAGES_DIR}' \
-                --with-glibver=2.0"
-
-PACKAGECONFIG ??= "gdbm"
-PACKAGECONFIG[gdbm] = "ac_cv_header_gdbm_h=yes,ac_cv_header_gdbm_h=no,gdbm,"
-
-PACKAGES += "${PN}-perl ${PN}-python"
-PRIVATE_LIBS:${PN}-perl = "libOpenIPMI.so.0"
-
-FILES:${PN}-perl = " \
-    ${libdir}/perl/vendor_perl/*/OpenIPMI.pm \
-    ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/OpenIPMI.so \
-    "
-
-FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
-
-FILES:${PN}-dbg += " \
-    ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/.debug \
-    ${PYTHON_SITEPACKAGES_DIR}/.debug \
-    "
-
-do_configure () {
-
-    # Let's perform regular configuration first then handle perl issues.
-    autotools_do_configure
-
-    perl_ver=`perl -V:version | cut -d\' -f 2`
-    
-    # Force openipmi perl bindings to be compiled using perl-native instead of
-    # the host's perl. Set the proper install directory for the resulting
-    # openipmi.pm and openipmi.so
-    for i in ${S}/swig/Makefile ${S}/swig/perl/Makefile; do
-        echo "SAL: i = $i"
-        echo "SAL: STAGING_INCDIR_NATIVE = $STAGING_INCDIR_NATIVE"
-        echo "SAL: libdir = $libdir"
-        sed -i -e "/^PERL_CFLAGS/s:-I/usr/local/include:-I${STAGING_INCDIR_NATIVE}:g" $i
-        sed -i -e "/^PERL_CFLAGS/s:-I .* :-I ${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}/CORE :g" $i
-        sed -i -e "/^PERL_INSTALL_DIR/s:^PERL_INSTALL_DIR = .*:PERL_INSTALL_DIR = ${libdir}/perl/vendor_perl/$perl_ver:g" $i
-    done
-}
-
-do_install:append () {
-    echo "SAL: D = $D"
-    echo "SAL: libdir = $libdir"
-    install -m 0755 -d ${D}${sysconfdir}/sysconfig ${D}${sysconfdir}/init.d
-    install -m 0755 ${S}/ipmi.init ${D}${sysconfdir}/init.d/ipmi
-    install -m 0644 ${S}/ipmi.sysconf ${D}${sysconfdir}/sysconfig/ipmi
-    # SAL: mv: cannot stat `/localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/openipmi-2.0.19-r4/image/usr/lib64/perl5': No such file or directory
-    # SAL: real path to perl is /localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/perl-5.14.2-r8.3/package/usr/lib64/perl5 and it is a symlink to perl so no need to mv.
-    if [ -d ${D}${libdir}/perl5 ]
-    then
-        mv ${D}${libdir}/perl5 ${D}${libdir}/perl
-    fi
- 
-    # for systemd
-    install -d ${D}${systemd_unitdir}/system
-    install -m 0664 ${WORKDIR}/ipmi.service ${D}${systemd_unitdir}/system
-    sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" ${D}${systemd_unitdir}/system/ipmi.service
-    install -d ${D}${libexecdir}
-    install -m 0755 ${WORKDIR}/openipmi-helper ${D}${libexecdir}
-}
-
-INITSCRIPT_NAME = "ipmi"
-INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
-
-SYSTEMD_SERVICE:${PN} = "ipmi.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.32.bb b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.32.bb
new file mode 100644
index 0000000..664b716
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.32.bb
@@ -0,0 +1,113 @@
+SUMMARY = "IPMI (Intelligent Platform Management Interface) library and tools"
+DESCRIPTION = "OpenIPMI is an effort to create a full-function IPMI system, \
+to allow full access to all IPMI information on a server \
+and to abstract it to a level that will make it easy to use"
+
+HOMEPAGE = "http://openipmi.sourceforge.net"
+
+DEPENDS = " \
+    glib-2.0 \
+    ncurses \
+    net-snmp \
+    openssl \
+    popt \
+    python3 \
+    swig-native \
+    readline \
+    "
+
+LICENSE = "GPLv2 & LGPLv2.1 & BSD"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
+                    file://COPYING.BSD;md5=4b318d4160eb69c8ee53452feb1b4cdf \
+                    "
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \
+           file://fix-symlink-install-error-in-cmdlang.patch \
+           file://openipmi-no-openipmigui-man.patch \
+           file://openipmi-remove-host-path-from-la_LDFLAGS.patch \
+           file://ipmi-init-fix-the-arguments.patch \
+           file://include_sys_types.patch \
+           file://openipmi-helper \
+           file://ipmi.service \
+           file://0001-m4-ax_python_devel.m4-do-not-check-for-distutils.patch \
+           "
+
+S = "${WORKDIR}/OpenIPMI-${PV}"
+
+SRC_URI[md5sum] = "532404c9df7d0e8bde975b95b9e6775b"
+SRC_URI[sha256sum] = "f6d0fd4c0a74b05f80907229d0b270f54ca23294bcc11979f8b8d12766786945"
+
+inherit autotools-brokensep pkgconfig python3native perlnative update-rc.d systemd cpan-base python3targetconfig
+
+EXTRA_OECONF = "--disable-static \
+                --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \
+                --with-python='${STAGING_BINDIR_NATIVE}/python3-native/python3' \
+                --with-pythoninstall='${PYTHON_SITEPACKAGES_DIR}' \
+                --with-glibver=2.0"
+
+PACKAGECONFIG ??= "gdbm"
+PACKAGECONFIG[gdbm] = "ac_cv_header_gdbm_h=yes,ac_cv_header_gdbm_h=no,gdbm,"
+
+PACKAGES += "${PN}-perl ${PN}-python"
+PRIVATE_LIBS:${PN}-perl = "libOpenIPMI.so.0"
+
+FILES:${PN}-perl = " \
+    ${libdir}/perl/vendor_perl/*/OpenIPMI.pm \
+    ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/OpenIPMI.so \
+    "
+
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+
+FILES:${PN}-dbg += " \
+    ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/.debug \
+    ${PYTHON_SITEPACKAGES_DIR}/.debug \
+    "
+
+do_configure () {
+
+    # Let's perform regular configuration first then handle perl issues.
+    autotools_do_configure
+
+    perl_ver=`perl -V:version | cut -d\' -f 2`
+    
+    # Force openipmi perl bindings to be compiled using perl-native instead of
+    # the host's perl. Set the proper install directory for the resulting
+    # openipmi.pm and openipmi.so
+    for i in ${S}/swig/Makefile ${S}/swig/perl/Makefile; do
+        echo "SAL: i = $i"
+        echo "SAL: STAGING_INCDIR_NATIVE = $STAGING_INCDIR_NATIVE"
+        echo "SAL: libdir = $libdir"
+        sed -i -e "/^PERL_CFLAGS/s:-I/usr/local/include:-I${STAGING_INCDIR_NATIVE}:g" $i
+        sed -i -e "/^PERL_CFLAGS/s:-I .* :-I ${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}/CORE :g" $i
+        sed -i -e "/^PERL_INSTALL_DIR/s:^PERL_INSTALL_DIR = .*:PERL_INSTALL_DIR = ${libdir}/perl/vendor_perl/$perl_ver:g" $i
+    done
+}
+
+do_install:append () {
+    echo "SAL: D = $D"
+    echo "SAL: libdir = $libdir"
+    install -m 0755 -d ${D}${sysconfdir}/sysconfig ${D}${sysconfdir}/init.d
+    install -m 0755 ${S}/ipmi.init ${D}${sysconfdir}/init.d/ipmi
+    install -m 0644 ${S}/ipmi.sysconf ${D}${sysconfdir}/sysconfig/ipmi
+    # SAL: mv: cannot stat `/localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/openipmi-2.0.19-r4/image/usr/lib64/perl5': No such file or directory
+    # SAL: real path to perl is /localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/perl-5.14.2-r8.3/package/usr/lib64/perl5 and it is a symlink to perl so no need to mv.
+    if [ -d ${D}${libdir}/perl5 ]
+    then
+        mv ${D}${libdir}/perl5 ${D}${libdir}/perl
+    fi
+ 
+    # for systemd
+    install -d ${D}${systemd_unitdir}/system
+    install -m 0664 ${WORKDIR}/ipmi.service ${D}${systemd_unitdir}/system
+    sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" ${D}${systemd_unitdir}/system/ipmi.service
+    install -d ${D}${libexecdir}
+    install -m 0755 ${WORKDIR}/openipmi-helper ${D}${libexecdir}
+}
+
+INITSCRIPT_NAME = "ipmi"
+INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
+
+SYSTEMD_SERVICE:${PN} = "ipmi.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn/openvpn@.service b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn/openvpn@.service
index 358dcb7..01dd2e8 100644
--- a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn/openvpn@.service
+++ b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn/openvpn@.service
@@ -6,7 +6,7 @@
 PrivateTmp=true
 Type=forking
 PIDFile=/var/run/openvpn/%i.pid
-ExecStart=/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf
+ExecStart=/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --cipher AES-256-GCM --data-ciphers AES-256-GCM:AES-128-GCM:AES-256-CBC:AES-128-CBC:BF-CBC --config %i.conf
 
 [Install]
 WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.5.4.bb b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.5.4.bb
deleted file mode 100644
index 6b588a5..0000000
--- a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.5.4.bb
+++ /dev/null
@@ -1,75 +0,0 @@
-SUMMARY = "A full-featured SSL VPN solution via tun device."
-HOMEPAGE = "https://openvpn.net/"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=377a495e6f12b2a3adcee797e59540b8"
-DEPENDS = "lzo openssl iproute2 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-
-inherit autotools systemd update-rc.d
-
-SRC_URI = "http://swupdate.openvpn.org/community/releases/${BP}.tar.gz \
-           file://openvpn \
-           file://openvpn@.service \
-           file://openvpn-volatile.conf"
-
-UPSTREAM_CHECK_URI = "https://openvpn.net/community-downloads"
-
-SRC_URI[sha256sum] = "f80f3c3df1b94a8892ae547df84f152583250684a24bd022ccc98ef56fa93d97"
-
-# CVE-2020-7224 and CVE-2020-27569 are for Aviatrix OpenVPN client, not for openvpn.
-CVE_CHECK_WHITELIST += "CVE-2020-7224 CVE-2020-27569"
-
-SYSTEMD_SERVICE:${PN} += "openvpn@loopback-server.service openvpn@loopback-client.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME:${PN} = "openvpn"
-INITSCRIPT_PARAMS:${PN} = "start 10 2 3 4 5 . stop 70 0 1 6 ."
-
-CFLAGS += "-fno-inline"
-
-# I want openvpn to be able to read password from file (hrw)
-EXTRA_OECONF += "--enable-iproute2"
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '--disable-plugin-auth-pam', d)}"
-
-# Explicitly specify IPROUTE to bypass the configure-time check for /sbin/ip on the host.
-EXTRA_OECONF += "IPROUTE=${base_sbindir}/ip"
-
-do_install:append() {
-    install -d ${D}/${sysconfdir}/init.d
-    install -m 755 ${WORKDIR}/openvpn ${D}/${sysconfdir}/init.d
-
-    install -d ${D}/${sysconfdir}/openvpn
-    install -d ${D}/${sysconfdir}/openvpn/sample
-    install -m 755 ${S}/sample/sample-config-files/loopback-server  ${D}${sysconfdir}/openvpn/sample/loopback-server.conf
-    install -m 755 ${S}/sample/sample-config-files/loopback-client  ${D}${sysconfdir}/openvpn/sample/loopback-client.conf
-    install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-keys
-    install -m 644 ${S}/sample/sample-keys/* ${D}${sysconfdir}/openvpn/sample/sample-keys
-
-    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-        install -d ${D}/${systemd_unitdir}/system
-        install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system
-        install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-server.service
-        install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-client.service
-
-        install -d ${D}/${localstatedir}
-        install -d ${D}/${localstatedir}/lib
-        install -d -m 710 ${D}/${localstatedir}/lib/openvpn
-
-        install -d ${D}${sysconfdir}/tmpfiles.d
-        install -m 0644 ${WORKDIR}/openvpn-volatile.conf ${D}${sysconfdir}/tmpfiles.d/openvpn.conf
-        sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/tmpfiles.d/openvpn.conf
-    fi
-}
-
-PACKAGES =+ " ${PN}-sample "
-
-RRECOMMENDS:${PN} = "kernel-module-tun"
-
-FILES:${PN}-dbg += "${libdir}/openvpn/plugins/.debug"
-FILES:${PN} += "${systemd_unitdir}/system/openvpn@.service \
-                ${sysconfdir}/tmpfiles.d \
-               "
-FILES:${PN}-sample += "${systemd_unitdir}/system/openvpn@loopback-server.service \
-                       ${systemd_unitdir}/system/openvpn@loopback-client.service \
-                       ${sysconfdir}/openvpn/sample/"
diff --git a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.5.5.bb b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.5.5.bb
new file mode 100644
index 0000000..2dc3af6
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.5.5.bb
@@ -0,0 +1,75 @@
+SUMMARY = "A full-featured SSL VPN solution via tun device."
+HOMEPAGE = "https://openvpn.net/"
+SECTION = "net"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=377a495e6f12b2a3adcee797e59540b8"
+DEPENDS = "lzo openssl iproute2 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+
+inherit autotools systemd update-rc.d
+
+SRC_URI = "http://swupdate.openvpn.org/community/releases/${BP}.tar.gz \
+           file://openvpn \
+           file://openvpn@.service \
+           file://openvpn-volatile.conf"
+
+UPSTREAM_CHECK_URI = "https://openvpn.net/community-downloads"
+
+SRC_URI[sha256sum] = "7500df4734173bce2e95b5039079119dacaff121650b2b6ca76d2dc68bdac1c5"
+
+# CVE-2020-7224 and CVE-2020-27569 are for Aviatrix OpenVPN client, not for openvpn.
+CVE_CHECK_WHITELIST += "CVE-2020-7224 CVE-2020-27569"
+
+SYSTEMD_SERVICE:${PN} += "openvpn@loopback-server.service openvpn@loopback-client.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${PN} = "openvpn"
+INITSCRIPT_PARAMS:${PN} = "start 10 2 3 4 5 . stop 70 0 1 6 ."
+
+CFLAGS += "-fno-inline"
+
+# I want openvpn to be able to read password from file (hrw)
+EXTRA_OECONF += "--enable-iproute2"
+EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '--disable-plugin-auth-pam', d)}"
+
+# Explicitly specify IPROUTE to bypass the configure-time check for /sbin/ip on the host.
+EXTRA_OECONF += "IPROUTE=${base_sbindir}/ip"
+
+do_install:append() {
+    install -d ${D}/${sysconfdir}/init.d
+    install -m 755 ${WORKDIR}/openvpn ${D}/${sysconfdir}/init.d
+
+    install -d ${D}/${sysconfdir}/openvpn
+    install -d ${D}/${sysconfdir}/openvpn/sample
+    install -m 755 ${S}/sample/sample-config-files/loopback-server  ${D}${sysconfdir}/openvpn/sample/loopback-server.conf
+    install -m 755 ${S}/sample/sample-config-files/loopback-client  ${D}${sysconfdir}/openvpn/sample/loopback-client.conf
+    install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-keys
+    install -m 644 ${S}/sample/sample-keys/* ${D}${sysconfdir}/openvpn/sample/sample-keys
+
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -d ${D}/${systemd_unitdir}/system
+        install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system
+        install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-server.service
+        install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-client.service
+
+        install -d ${D}/${localstatedir}
+        install -d ${D}/${localstatedir}/lib
+        install -d -m 710 ${D}/${localstatedir}/lib/openvpn
+
+        install -d ${D}${sysconfdir}/tmpfiles.d
+        install -m 0644 ${WORKDIR}/openvpn-volatile.conf ${D}${sysconfdir}/tmpfiles.d/openvpn.conf
+        sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/tmpfiles.d/openvpn.conf
+    fi
+}
+
+PACKAGES =+ " ${PN}-sample "
+
+RRECOMMENDS:${PN} = "kernel-module-tun"
+
+FILES:${PN}-dbg += "${libdir}/openvpn/plugins/.debug"
+FILES:${PN} += "${systemd_unitdir}/system/openvpn@.service \
+                ${sysconfdir}/tmpfiles.d \
+               "
+FILES:${PN}-sample += "${systemd_unitdir}/system/openvpn@loopback-server.service \
+                       ${systemd_unitdir}/system/openvpn@loopback-client.service \
+                       ${sysconfdir}/openvpn/sample/"
diff --git a/meta-openembedded/meta-networking/recipes-support/phytool/phytool.bb b/meta-openembedded/meta-networking/recipes-support/phytool/phytool.bb
index 29499d6..7fde88c 100644
--- a/meta-openembedded/meta-networking/recipes-support/phytool/phytool.bb
+++ b/meta-openembedded/meta-networking/recipes-support/phytool/phytool.bb
@@ -4,7 +4,7 @@
 
 PV = "2+git${SRCPV}"
 SRCREV = "8882328c08ba2efb13c049812098f1d0cb8adf0c"
-SRC_URI = "git://github.com/wkz/phytool.git"
+SRC_URI = "git://github.com/wkz/phytool.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_36.0.bb b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_36.0.bb
deleted file mode 100644
index bcb6c0e..0000000
--- a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_36.0.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Userspace support for InfiniBand/RDMA verbs"
-DESCRIPTION = "This is the userspace components for the Linux Kernel's drivers Infiniband/RDMA subsystem."
-SECTION = "libs"
-
-DEPENDS = "libnl"
-RDEPENDS:${PN} = "bash perl"
-
-SRC_URI = "git://github.com/linux-rdma/rdma-core.git"
-SRCREV = "d7a9dde2b164a1563c7a51e4ade8ea3b6cdea9ef"
-S = "${WORKDIR}/git"
-
-#Default Dual License https://github.com/linux-rdma/rdma-core/blob/master/COPYING.md
-LICENSE = "BSD-2-Clause | GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING.BSD_FB;md5=0ec18bae1a9df92c8d6ae01f94a289ae \
-		   file://COPYING.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-EXTRA_OECMAKE = " \
-    -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=${systemd_system_unitdir} \
-    -DCMAKE_INSTALL_PERLDIR=${libdir}/perl5/${@get_perl_version(d)} \
-    -DNO_MAN_PAGES=1 \
-"
-
-LTO = ""
-
-FILES_SOLIBSDEV = ""
-FILES:${PN} += "${libdir}/*"
-INSANE_SKIP:${PN} += "dev-so"
-
-inherit cmake cpan-base pkgconfig python3native systemd
-
-SYSTEMD_SERVICE:${PN} = " \
-    srp_daemon.service \
-    iwpmd.service \
-    ibacm.socket \
-    rdma-load-modules@.service \
-    srp_daemon_port@.service \
-    rdma-hw.target \
-    ibacm.service \
-"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_38.0.bb b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_38.0.bb
new file mode 100644
index 0000000..da1e013
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_38.0.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Userspace support for InfiniBand/RDMA verbs"
+DESCRIPTION = "This is the userspace components for the Linux Kernel's drivers Infiniband/RDMA subsystem."
+SECTION = "libs"
+
+DEPENDS = "libnl"
+RDEPENDS:${PN} = "bash perl"
+
+SRC_URI = "git://github.com/linux-rdma/rdma-core.git;branch=master;protocol=https"
+SRCREV = "02361e3b865995ce251923390df0d5a5c821195a"
+S = "${WORKDIR}/git"
+
+#Default Dual License https://github.com/linux-rdma/rdma-core/blob/master/COPYING.md
+LICENSE = "BSD-2-Clause | GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING.BSD_FB;md5=0ec18bae1a9df92c8d6ae01f94a289ae \
+		   file://COPYING.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+EXTRA_OECMAKE = " \
+    -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=${systemd_system_unitdir} \
+    -DCMAKE_INSTALL_PERLDIR=${libdir}/perl5/${@get_perl_version(d)} \
+    -DNO_MAN_PAGES=1 \
+"
+
+LTO = ""
+
+FILES_SOLIBSDEV = ""
+FILES:${PN} += "${libdir}/*"
+INSANE_SKIP:${PN} += "dev-so"
+
+inherit cmake cpan-base pkgconfig python3native systemd
+
+SYSTEMD_SERVICE:${PN} = " \
+    srp_daemon.service \
+    iwpmd.service \
+    ibacm.socket \
+    rdma-load-modules@.service \
+    srp_daemon_port@.service \
+    rdma-hw.target \
+    ibacm.service \
+"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
diff --git a/meta-openembedded/meta-networking/recipes-support/smcroute/smcroute_2.5.3.bb b/meta-openembedded/meta-networking/recipes-support/smcroute/smcroute_2.5.3.bb
deleted file mode 100644
index 8e62f58..0000000
--- a/meta-openembedded/meta-networking/recipes-support/smcroute/smcroute_2.5.3.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Static Multicast Routing Daemon"
-DESCRIPTION = "SMCRoute is a daemon and command line tool to manipulate the multicast routing table in the UNIX kernel."
-HOMEPAGE = "http://troglobit.github.io/smcroute.html"
-SECTION = "net"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRCREV = "d998043dc39cb763c9adec3eda3cc8b1d79f444c"
-SRC_URI = "git://github.com/troglobit/smcroute.git;branch=master;protocol=git"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-networking/recipes-support/smcroute/smcroute_2.5.4.bb b/meta-openembedded/meta-networking/recipes-support/smcroute/smcroute_2.5.4.bb
new file mode 100644
index 0000000..21a3c44
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/smcroute/smcroute_2.5.4.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Static Multicast Routing Daemon"
+DESCRIPTION = "SMCRoute is a daemon and command line tool to manipulate the multicast routing table in the UNIX kernel."
+HOMEPAGE = "http://troglobit.github.io/smcroute.html"
+SECTION = "net"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRCREV = "9b6e397595a154c84a329c55bed21e0c43e89ee6"
+SRC_URI = "git://github.com/troglobit/smcroute.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb b/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb
index 1d56bea..ca683bf 100644
--- a/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb
@@ -18,7 +18,7 @@
 SRCREV = "e0ec178a72aa33e307ee5ac02b63bf336da921a5"
 
 SRC_URI = " \
-    git://anongit.freedesktop.org/spice/spice-protocol \
+    git://anongit.freedesktop.org/spice/spice-protocol;branch=master \
 "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb b/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb
index b0f1d51..9c6bacc 100644
--- a/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb
@@ -21,8 +21,8 @@
 SRCREV_FORMAT = "spice_spice-common"
 
 SRC_URI = " \
-    git://anongit.freedesktop.org/spice/spice;name=spice \
-    git://anongit.freedesktop.org/spice/spice-common;destsuffix=git/subprojects/spice-common;name=spice-common \
+    git://anongit.freedesktop.org/spice/spice;name=spice;branch=master \
+    git://anongit.freedesktop.org/spice/spice-common;destsuffix=git/subprojects/spice-common;name=spice-common;branch=master \
     file://0001-Convert-pthread_t-to-be-numeric.patch \
     file://0001-Fix-compile-errors-on-Linux-32bit-system.patch \
     file://0001-configure.ac-explicitly-link-to-jpeg-lib.patch \
diff --git a/meta-openembedded/meta-networking/recipes-support/spice/usbredir_0.9.0.bb b/meta-openembedded/meta-networking/recipes-support/spice/usbredir_0.9.0.bb
index 079f52f..5245f95 100644
--- a/meta-openembedded/meta-networking/recipes-support/spice/usbredir_0.9.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/spice/usbredir_0.9.0.bb
@@ -10,7 +10,7 @@
 SRCREV = "bca484fc6f206ab9da2f73e8a0118fad45374d4e"
 
 SRC_URI = " \
-    git://anongit.freedesktop.org/spice/usbredir \
+    git://anongit.freedesktop.org/spice/usbredir;branch=master \
 "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.9.4.bb b/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.9.4.bb
index cbc263d..2b7a7a2 100644
--- a/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.9.4.bb
+++ b/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.9.4.bb
@@ -5,7 +5,8 @@
 SECTION = "net"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "gmp openssl flex-native flex bison-native"
+DEPENDS = "flex-native flex bison-native"
+DEPENDS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'tpm2', '  tpm2-tss', '', d)}"
 
 SRC_URI = "http://download.strongswan.org/strongswan-${PV}.tar.bz2 \
            file://fix-funtion-parameter.patch \
@@ -23,9 +24,13 @@
 
 EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}"
 
-PACKAGECONFIG ?= "curl gmp openssl sqlite3 swanctl \
+PACKAGECONFIG ?= "curl gmp openssl sqlite3 swanctl curve25519\
         ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-charon', 'charon', d)} \
+        ${@bb.utils.contains('DISTRO_FEATURES', 'tpm2', 'tpm2', '', d)} \
+        ${@bb.utils.contains('DISTRO_FEATURES', 'ima', 'tnc-imc imc-hcd imc-os imc-scanner imc-attestation', '', d)} \
+        ${@bb.utils.contains('DISTRO_FEATURES', 'ima', 'tnc-imv imv-hcd imv-os imv-scanner imv-attestation', '', d)} \
 "
+
 PACKAGECONFIG[aesni] = "--enable-aesni,--disable-aesni,,${PN}-plugin-aesni"
 PACKAGECONFIG[bfd] = "--enable-bfd-backtraces,--disable-bfd-backtraces,binutils"
 PACKAGECONFIG[charon] = "--enable-charon,--disable-charon,"
@@ -41,13 +46,47 @@
 PACKAGECONFIG[sqlite3] = "--enable-sqlite,--disable-sqlite,sqlite3,${PN}-plugin-sqlite"
 PACKAGECONFIG[stroke] = "--enable-stroke,--disable-stroke,,${PN}-plugin-stroke"
 PACKAGECONFIG[swanctl] = "--enable-swanctl,--disable-swanctl,,libgcc"
+PACKAGECONFIG[curve25519] = "--enable-curve25519,--disable-curve25519,, ${PN}-plugin-curve25519"
 
 # requires swanctl
 PACKAGECONFIG[systemd-charon] = "--enable-systemd,--disable-systemd,systemd,"
 
+# tpm needs meta-tpm layer
+PACKAGECONFIG[tpm2] = "--enable-tpm,--disable-tpm,,${PN}-plugin-tpm"
+
+
+# integraty configuration needs meta-integraty
+#imc 
+PACKAGECONFIG[tnc-imc] = "--enable-tnc-imc,--disable-tnc-imc,,  ${PN}-plugin-tnc-imc ${PN}-plugin-tnc-tnccs"
+PACKAGECONFIG[imc-test] = "--enable-imc-test,--disable-imc-test,,"
+PACKAGECONFIG[imc-scanner] = "--enable-imc-scanner,--disable-imc-scanner,,"
+PACKAGECONFIG[imc-os] = "--enable-imc-os,--disable-imc-os,,"
+PACKAGECONFIG[imc-attestation] = "--enable-imc-attestation,--disable-imc-attestation,,"
+PACKAGECONFIG[imc-swima] = "--enable-imc-swima, --disable-imc-swima, json-c,"
+PACKAGECONFIG[imc-hcd] = "--enable-imc-hcd, --disable-imc-hcd,,"
+
+#imv set
+PACKAGECONFIG[tnc-imv] = "--enable-tnc-imv,--disable-tnc-imv,, ${PN}-plugin-tnc-imv ${PN}-plugin-tnc-tnccs"
+PACKAGECONFIG[imv-test] = "--enable-imv-test,--disable-imv-test,,"
+PACKAGECONFIG[imv-scanner] = "--enable-imv-scanner,--disable-imv-scanner,,"
+PACKAGECONFIG[imv-os] = "--enable-imv-os,--disable-imv-os,,"
+PACKAGECONFIG[imv-attestation] = "--enable-imv-attestation,--disable-imv-attestation,,"
+PACKAGECONFIG[imv-swima] = "--enable-imv-swima, --disable-imv-swima, json-c,"
+PACKAGECONFIG[imv-hcd] = "--enable-imv-hcd, --disable-imv-hcd,,"
+
+PACKAGECONFIG[tnc-ifmap] = "--enable-tnc-ifmap,--disable-tnc-ifmap, libxml2, ${PN}-plugin-tnc-ifmap"
+PACKAGECONFIG[tnc-pdp] = "--enable-tnc-pdp,--disable-tnc-pdp,, ${PN}-plugin-tnc-pdp"
+
+PACKAGECONFIG[tnccs-11] = "--enable-tnccs-11,--disable-tnccs-11,libxml2, ${PN}-plugin-tnccs-11"
+PACKAGECONFIG[tnccs-20] = "--enable-tnccs-20,--disable-tnccs-20,, ${PN}-plugin-tnccs-20"
+PACKAGECONFIG[tnccs-dynamic] = "--enable-tnccs-dynamic,--disable-tnccs-dynamic,,${PN}-plugin-tnccs-dynamic"
+
 inherit autotools systemd pkgconfig
 
-RRECOMMENDS:${PN} = "kernel-module-ipsec"
+RRECOMMENDS:${PN} = "kernel-module-ah4 \
+                     kernel-module-esp4 \
+                     kernel-module-xfrm-user \
+                    "
 
 FILES:${PN} += "${libdir}/ipsec/lib*${SOLIBS}"
 FILES:${PN}-dbg += "${bindir}/.debug ${sbindir}/.debug ${libdir}/ipsec/.debug ${libexecdir}/ipsec/.debug"
@@ -59,6 +98,12 @@
 PACKAGES += "${PN}-plugins"
 ALLOW_EMPTY:${PN}-plugins = "1"
 
+PACKAGE_BEFORE_PN = "${PN}-imcvs ${PN}-imcvs-dbg"
+ALLOW_EMPTY:${PN}-imcvs = "1"
+
+FILES:${PN}-imcvs = "${libdir}/ipsec/imcvs/*.so"
+FILES:${PN}-imcvs-dbg += "${libdir}/ipsec/imcvs/.debug"
+
 PACKAGES_DYNAMIC += "^${PN}-plugin-.*$"
 NOAUTOPACKAGEDEBUG = "1"
 
@@ -127,7 +172,6 @@
     ${PN}-plugin-x509 \
     ${PN}-plugin-xauth-generic \
     ${PN}-plugin-xcbc \
-    ${PN}-plugin-curve25519 \
     "
 
 RPROVIDES:${PN} += "${PN}-systemd"
diff --git a/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp/0001-libedit-Include-missing-header-stdc-predef.h.patch b/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp/0001-libedit-Include-missing-header-stdc-predef.h.patch
new file mode 100644
index 0000000..07a3c73
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp/0001-libedit-Include-missing-header-stdc-predef.h.patch
@@ -0,0 +1,31 @@
+From 9f2797d1ab8557b44a1f8d6d4d0b6de368d55e80 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 14 Jan 2022 09:22:59 -0800
+Subject: [PATCH] libedit: Include missing header stdc-predef.h
+
+__STDC_ISO_10646__ is defined in stdc-predef.h instead of expecting
+every other file including this header, add it here
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libedit/chartype.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/libedit/chartype.h b/libedit/chartype.h
+index 319be30..2d3e20c 100644
+--- a/libedit/chartype.h
++++ b/libedit/chartype.h
+@@ -30,6 +30,9 @@
+ #ifndef _h_chartype_f
+ #define _h_chartype_f
+ 
++/*  for __STDC_ISO_10646__ */
++#include <stdc-predef.h>
++
+ /* Ideally we should also test the value of the define to see if it
+  * supports non-BMP code points without requiring UTF-16, but nothing
+  * seems to actually advertise this properly, despite Unicode 3.1 having
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp/tnftp-autotools.patch b/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp/tnftp-autotools.patch
deleted file mode 100644
index 1bda576..0000000
--- a/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp/tnftp-autotools.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-[PATCH] Update configure.ac and Makefile.am to resolve warnings/errors
-
-Upstream-Status: Pending
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- configure.ac          |    2 ++
- libnetbsd/Makefile.am |    2 +-
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index a96d2ab..b3b3069 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -71,9 +71,11 @@ AH_TEMPLATE([WITH_SSL],
- #
- # Checks for programs.
- #
-+AM_PROG_AR()
- AC_PROG_CC()
- AC_PROG_AWK()
- AC_PROG_LIBTOOL()
-+AM_PROG_CC_C_O()
- 
- #
- # Checks for tool features.
-diff --git a/libnetbsd/Makefile.am b/libnetbsd/Makefile.am
-index 3e5c3ce..39bb12d 100644
---- a/libnetbsd/Makefile.am
-+++ b/libnetbsd/Makefile.am
-@@ -5,7 +5,7 @@ noinst_LTLIBRARIES = libnetbsd.la
- libnetbsd_la_SOURCES =
- 
- 
--CPPFLAGS = \
-+AM_CPPFLAGS = \
- 	-I$(srcdir) \
- 	-I$(top_srcdir) \
- 	-I$(top_builddir)
--- 
-1.7.10.4
-
diff --git a/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp_20151004.bb b/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp_20151004.bb
deleted file mode 100644
index 8e03f1b..0000000
--- a/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp_20151004.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Enhanced NetBSD ftp client"
-DESCRIPTION = "tnftp (formerly known as lukemftp) is a port of the NetBSD FTP client \
-to other systems. It offers many enhancements over the traditional \
-BSD FTP client, including command-line editing, command-line fetches \
-of FTP and HTTP URLs (including via proxies), command-line uploads of \
-FTP URLs, context-sensitive word completion, dynamic progress bar, \
-IPv6 support, modification time preservation, paging of local and \
-remote files, passive mode support (with fallback to active mode), \
-SOCKS support, TIS FWTK gate-ftp server support, and transfer rate \
-throttling."
-
-SECTION = "net"
-LICENSE = "BSD-4-Clause"
-
-DEPENDS = "ncurses"
-
-SRC_URI = "ftp://ftp.netbsd.org/pub/NetBSD/misc/tnftp/${BPN}-${PV}.tar.gz \
-    file://tnftp-autotools.patch \
-"
-
-inherit autotools update-alternatives pkgconfig
-
-ALTERNATIVE_PRIORITY = "100"
-
-ALTERNATIVE:${PN} = "ftp"
-ALTERNATIVE_LINK_NAME_${PN} = "${bindir}/ftp"
-ALTERNATIVE_TARGET_${PN}  = "${bindir}/tnftp"
-
-FILES:${PN} = "${bindir}/tnftp"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=6d6796cb166a9bb050958241dad9479e"
-SRC_URI[md5sum] = "a49fbe752318d5a7893f900046ea00d5"
-SRC_URI[sha256sum] = "c94a8a49d3f4aec1965feea831d4d5bf6f90c65fd8381ee0863d11a5029a43a0"
-
-PACKAGECONFIG ?= "openssl \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
-"
-PACKAGECONFIG[openssl] = "--enable-ssl, --disable-ssl --with-ssl=no, openssl"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp_20210827.bb b/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp_20210827.bb
new file mode 100644
index 0000000..8c58926
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp_20210827.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Enhanced NetBSD ftp client"
+DESCRIPTION = "tnftp (formerly known as lukemftp) is a port of the NetBSD FTP client \
+to other systems. It offers many enhancements over the traditional \
+BSD FTP client, including command-line editing, command-line fetches \
+of FTP and HTTP URLs (including via proxies), command-line uploads of \
+FTP URLs, context-sensitive word completion, dynamic progress bar, \
+IPv6 support, modification time preservation, paging of local and \
+remote files, passive mode support (with fallback to active mode), \
+SOCKS support, TIS FWTK gate-ftp server support, and transfer rate \
+throttling."
+
+SECTION = "net"
+LICENSE = "BSD-4-Clause"
+
+DEPENDS = "ncurses"
+
+SRC_URI = "ftp://ftp.netbsd.org/pub/NetBSD/misc/tnftp/${BPN}-${PV}.tar.gz \
+           file://0001-libedit-Include-missing-header-stdc-predef.h.patch \
+"
+
+inherit autotools update-alternatives pkgconfig
+
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE:${PN} = "ftp"
+ALTERNATIVE_LINK_NAME_${PN} = "${bindir}/ftp"
+ALTERNATIVE_TARGET_${PN}  = "${bindir}/tnftp"
+
+FILES:${PN} = "${bindir}/tnftp"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b4248c6fb8ecff27f256ba97b25f1a21"
+SRC_URI[md5sum] = "fdb6dd1b53dca79148c395b77c6dba5a"
+SRC_URI[sha256sum] = "101901e90b656c223ec8106370dd0d783fb63d26aa6f0b2a75f40e86a9f06ea2"
+
+PACKAGECONFIG ?= "openssl \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+"
+PACKAGECONFIG[openssl] = "--enable-ssl, --disable-ssl --with-ssl=no, openssl"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.13.2.bb b/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.13.2.bb
index 17f750c..61a75d7 100644
--- a/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.13.2.bb
+++ b/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.13.2.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 \
+SRC_URI = "git://github.com/NLnetLabs/unbound.git;protocol=http;branch=master;protocol=https \
 	file://0001-contrib-add-yocto-compatible-init-script.patch \
 "
 SRCREV = "8e538dcaa8df2d0fab8ff3dcf94ac1f972450b66"
@@ -22,9 +22,7 @@
 S = "${WORKDIR}/git"
 
 EXTRA_OECONF = "--with-libexpat=${STAGING_EXECPREFIXDIR} \
-		--with-ssl=${STAGING_EXECPREFIXDIR} \
-		libtool=${HOST_SYS}-libtool \
-"
+		--with-ssl=${STAGING_EXECPREFIXDIR}"
 		
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'largefile systemd', d)}"
diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/files/0004-lemon-Remove-line-directives.patch b/meta-openembedded/meta-networking/recipes-support/wireshark/files/0004-lemon-Remove-line-directives.patch
index c1a528f..134633f 100644
--- a/meta-openembedded/meta-networking/recipes-support/wireshark/files/0004-lemon-Remove-line-directives.patch
+++ b/meta-openembedded/meta-networking/recipes-support/wireshark/files/0004-lemon-Remove-line-directives.patch
@@ -12,11 +12,11 @@
  cmake/modules/UseLemon.cmake | 49 +++++++++++++++++++++++++-----------
  1 file changed, 34 insertions(+), 15 deletions(-)
 
-diff --git a/cmake/modules/UseLemon.cmake b/cmake/modules/UseLemon.cmake
-index 849ffc1..ca38ab7 100644
---- a/cmake/modules/UseLemon.cmake
-+++ b/cmake/modules/UseLemon.cmake
-@@ -7,21 +7,40 @@ MACRO(ADD_LEMON_FILES _source _generated)
+Index: wireshark-3.4.11/cmake/modules/UseLemon.cmake
+===================================================================
+--- wireshark-3.4.11.orig/cmake/modules/UseLemon.cmake
++++ wireshark-3.4.11/cmake/modules/UseLemon.cmake
+@@ -7,21 +7,40 @@ MACRO(ADD_LEMON_FILES _source _generated
  
        SET(_out ${CMAKE_CURRENT_BINARY_DIR}/${_basename})
  
@@ -26,7 +26,7 @@
 -          # These files are generated as side-effect
 -          ${_out}.h
 -          ${_out}.out
--         COMMAND lemon
+-         COMMAND $<TARGET_FILE:lemon>
 -           -T${_lemonpardir}/lempar.c
 -           -d.
 -           ${_in}
@@ -72,6 +72,3 @@
  
        LIST(APPEND ${_source} ${_in})
        LIST(APPEND ${_generated} ${_out}.c)
--- 
-2.26.2.Cisco
-
diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.4.11.bb b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.4.11.bb
new file mode 100644
index 0000000..6fee972
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.4.11.bb
@@ -0,0 +1,88 @@
+DESCRIPTION = "wireshark - a popular network protocol analyzer"
+HOMEPAGE = "http://www.wireshark.org"
+SECTION = "net"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6e271234ba1a13c6e512e76b94ac2f77"
+
+DEPENDS = "pcre expat glib-2.0 glib-2.0-native libgcrypt libgpg-error libxml2 bison-native c-ares"
+
+DEPENDS:append:class-target = " wireshark-native chrpath-replacement-native "
+
+SRC_URI = "https://1.eu.dl.wireshark.org/src/all-versions/wireshark-${PV}.tar.xz"
+
+SRC_URI += " \
+    file://0001-wireshark-src-improve-reproducibility.patch \
+    file://0002-flex-Remove-line-directives.patch \
+    file://0003-bison-Remove-line-directives.patch \
+    file://0004-lemon-Remove-line-directives.patch \
+"
+
+UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
+
+SRC_URI[sha256sum] = "a0e227bce2cc3a51ef3301891a0243231990b52a39b68a84a6e32f69c4e75279"
+
+PE = "1"
+
+inherit cmake pkgconfig python3native perlnative upstream-version-is-even mime mime-xdg
+
+PACKAGECONFIG ?= "libpcap gnutls libnl libcap sbc"
+
+PACKAGECONFIG:class-native = "libpcap gnutls ssl libssh"
+
+PACKAGECONFIG[libcap] = "-DENABLE_CAP=ON,-DENABLE_CAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON, libcap"
+PACKAGECONFIG[libpcap] = "-DENABLE_PCAP=ON,-DENABLE_PCAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON , libpcap"
+PACKAGECONFIG[libsmi] = "-DENABLE_SMI=ON,-DENABLE_SMI=OFF,libsmi"
+PACKAGECONFIG[libnl] = ",,libnl"
+PACKAGECONFIG[portaudio] = "-DENABLE_PORTAUDIO=ON,-DENABLE_PORTAUDIO=OFF, portaudio-v19"
+PACKAGECONFIG[gnutls] = "-DENABLE_GNUTLS=ON,-DENABLE_GNUTLS=OFF, gnutls"
+PACKAGECONFIG[ssl] = ",,openssl"
+PACKAGECONFIG[krb5] = "-DENABLE_KRB5=ON,-DENABLE_KRB5=OFF, krb5"
+PACKAGECONFIG[lua] = "-DENABLE_LUA=ON,-DENABLE_LUA=OFF, lua"
+PACKAGECONFIG[zlib] = "-DENABLE_ZLIB=ON,-DENABLE_ZLIB=OFF, zlib"
+PACKAGECONFIG[geoip] = ",, geoip"
+PACKAGECONFIG[plugins] = "-DENABLE_PLUGINS=ON,-DENABLE_PLUGINS=OFF"
+PACKAGECONFIG[sbc] = "-DENABLE_SBC=ON,-DENABLE_SBC=OFF, sbc"
+PACKAGECONFIG[libssh] = ",,libssh2"
+PACKAGECONFIG[lz4] = "-DENABLE_LZ4=ON,-DENABLE_LZ4=OFF, lz4"
+PACKAGECONFIG[zstd] = "-DENABLE_STTD=ON,-DENABLE_ZSTD=OFF, zstd"
+
+# these next two options require addional layers
+PACKAGECONFIG[c-ares] = "-DENABLE_CARES=ON,-DENABLE_CARES=OFF, c-ares"
+PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON -DBUILD_wireshark=ON, -DENABLE_QT5=OFF -DBUILD_wireshark=OFF, qttools-native qtmultimedia qtsvg"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
+
+EXTRA_OECMAKE += "-DENABLE_NETLINK=ON \
+                  -DBUILD_mmdbresolve=OFF \
+                  -DBUILD_randpktdump=OFF \
+                  -DBUILD_androiddump=OFF \
+                  -DBUILD_dcerpcidl2wrs=OFF \
+                  -DM_INCLUDE_DIR=${includedir} \
+                  -DM_LIBRARY=${libdir} \
+                 "
+CFLAGS:append = " -lm"
+
+do_install:append:class-native() {
+	install -d ${D}${bindir}
+	for f in lemon
+	do
+		install -m 0755 ${B}/run/$f ${D}${bindir}
+	done
+}
+
+do_install:append:class-target() {
+	for f in `find ${D}${libdir} ${D}${bindir} -type f -executable`
+	do
+		chrpath --delete $f
+	done
+}
+
+PACKAGE_BEFORE_PN += "tshark"
+
+FILES:tshark = "${bindir}/tshark ${mandir}/man1/tshark.*"
+
+FILES:${PN} += "${datadir}*"
+
+RDEPENDS:tshark = "wireshark"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.4.8.bb b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.4.8.bb
deleted file mode 100644
index faf2a3a..0000000
--- a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.4.8.bb
+++ /dev/null
@@ -1,88 +0,0 @@
-DESCRIPTION = "wireshark - a popular network protocol analyzer"
-HOMEPAGE = "http://www.wireshark.org"
-SECTION = "net"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6e271234ba1a13c6e512e76b94ac2f77"
-
-DEPENDS = "pcre expat glib-2.0 glib-2.0-native libgcrypt libgpg-error libxml2 bison-native c-ares"
-
-DEPENDS:append:class-target = " wireshark-native chrpath-replacement-native "
-
-SRC_URI = "https://1.eu.dl.wireshark.org/src/all-versions/wireshark-${PV}.tar.xz"
-
-SRC_URI += " \
-    file://0001-wireshark-src-improve-reproducibility.patch \
-    file://0002-flex-Remove-line-directives.patch \
-    file://0003-bison-Remove-line-directives.patch \
-    file://0004-lemon-Remove-line-directives.patch \
-"
-
-UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
-
-SRC_URI[sha256sum] = "58a7fa8dfe2010a8c8b7dcf66438c653e6493d47eb936ba48ef49d4aa4dbd725"
-
-PE = "1"
-
-inherit cmake pkgconfig python3native perlnative upstream-version-is-even mime mime-xdg
-
-PACKAGECONFIG ?= "libpcap gnutls libnl libcap sbc"
-
-PACKAGECONFIG:class-native = "libpcap gnutls ssl libssh"
-
-PACKAGECONFIG[libcap] = "-DENABLE_CAP=ON,-DENABLE_CAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON, libcap"
-PACKAGECONFIG[libpcap] = "-DENABLE_PCAP=ON,-DENABLE_PCAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON , libpcap"
-PACKAGECONFIG[libsmi] = "-DENABLE_SMI=ON,-DENABLE_SMI=OFF,libsmi"
-PACKAGECONFIG[libnl] = ",,libnl"
-PACKAGECONFIG[portaudio] = "-DENABLE_PORTAUDIO=ON,-DENABLE_PORTAUDIO=OFF, portaudio-v19"
-PACKAGECONFIG[gnutls] = "-DENABLE_GNUTLS=ON,-DENABLE_GNUTLS=OFF, gnutls"
-PACKAGECONFIG[ssl] = ",,openssl"
-PACKAGECONFIG[krb5] = "-DENABLE_KRB5=ON,-DENABLE_KRB5=OFF, krb5"
-PACKAGECONFIG[lua] = "-DENABLE_LUA=ON,-DENABLE_LUA=OFF, lua"
-PACKAGECONFIG[zlib] = "-DENABLE_ZLIB=ON,-DENABLE_ZLIB=OFF, zlib"
-PACKAGECONFIG[geoip] = ",, geoip"
-PACKAGECONFIG[plugins] = "-DENABLE_PLUGINS=ON,-DENABLE_PLUGINS=OFF"
-PACKAGECONFIG[sbc] = "-DENABLE_SBC=ON,-DENABLE_SBC=OFF, sbc"
-PACKAGECONFIG[libssh] = ",,libssh2"
-PACKAGECONFIG[lz4] = "-DENABLE_LZ4=ON,-DENABLE_LZ4=OFF, lz4"
-PACKAGECONFIG[zstd] = "-DENABLE_STTD=ON,-DENABLE_ZSTD=OFF, zstd"
-
-# these next two options require addional layers
-PACKAGECONFIG[c-ares] = "-DENABLE_CARES=ON,-DENABLE_CARES=OFF, c-ares"
-PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON -DBUILD_wireshark=ON, -DENABLE_QT5=OFF -DBUILD_wireshark=OFF, qttools-native qtmultimedia qtsvg"
-
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
-
-EXTRA_OECMAKE += "-DENABLE_NETLINK=ON \
-                  -DBUILD_mmdbresolve=OFF \
-                  -DBUILD_randpktdump=OFF \
-                  -DBUILD_androiddump=OFF \
-                  -DBUILD_dcerpcidl2wrs=OFF \
-                  -DM_INCLUDE_DIR=${includedir} \
-                  -DM_LIBRARY=${libdir} \
-                 "
-CFLAGS:append = " -lm"
-
-do_install:append:class-native() {
-	install -d ${D}${bindir}
-	for f in lemon
-	do
-		install -m 0755 ${B}/run/$f ${D}${bindir}
-	done
-}
-
-do_install:append:class-target() {
-	for f in `find ${D}${libdir} ${D}${bindir} -type f -executable`
-	do
-		chrpath --delete $f
-	done
-}
-
-PACKAGE_BEFORE_PN += "tshark"
-
-FILES:tshark = "${bindir}/tshark ${mandir}/man1/tshark.*"
-
-FILES:${PN} += "${datadir}*"
-
-RDEPENDS:tshark = "wireshark"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-networking/recipes-support/wpan-tools/wpan-tools_0.9.bb b/meta-openembedded/meta-networking/recipes-support/wpan-tools/wpan-tools_0.9.bb
index bab75fe..6b83cbd 100644
--- a/meta-openembedded/meta-networking/recipes-support/wpan-tools/wpan-tools_0.9.bb
+++ b/meta-openembedded/meta-networking/recipes-support/wpan-tools/wpan-tools_0.9.bb
@@ -8,7 +8,7 @@
 
 DEPENDS = "libnl"
 
-SRC_URI = "git://github.com/linux-wpan/wpan-tools"
+SRC_URI = "git://github.com/linux-wpan/wpan-tools;branch=master;protocol=https"
 SRCREV = "a316ca2caa746d60817400e5bf646c2820f09273"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb b/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb
index c85293a..52dab10 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb
@@ -5,7 +5,7 @@
 LICENSE = "GPLv3+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
 DEPENDS = " \
-    gnome-menus3 \
+    gnome-menus \
     glib-2.0 \
 "
 PV = "0.3"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-benchmark/speedtest-cli/speedtest-cli_2.1.3.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-benchmark/speedtest-cli/speedtest-cli_2.1.3.bb
index 004c04e..df577b1 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-benchmark/speedtest-cli/speedtest-cli_2.1.3.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-benchmark/speedtest-cli/speedtest-cli_2.1.3.bb
@@ -6,7 +6,7 @@
 
 inherit setuptools3
 
-SRC_URI = "git://github.com/sivel/speedtest-cli.git"
+SRC_URI = "git://github.com/sivel/speedtest-cli.git;branch=master;protocol=https"
 SRCREV = "42e96b13dda2afabbcec2622612d13495a415caa"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem_1.2.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem_1.2.bb
index 065243c..f55247d 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem_1.2.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem_1.2.bb
@@ -21,7 +21,7 @@
 SRCREV_FORMAT = "rwmem_inih"
 
 SRC_URI = " \
-    git://github.com/tomba/rwmem.git;protocol=https;name=rwmem \
+    git://github.com/tomba/rwmem.git;protocol=https;name=rwmem;branch=master \
     git://github.com/benhoyt/inih.git;protocol=https;name=inih;nobranch=1;destsuffix=git/ext/inih \
 "
 
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.1.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.1.bb
index 1ca7b60..f3070c5 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.1.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.1.bb
@@ -29,7 +29,7 @@
 SYSTEMD_AUTO_ENABLE:lirc = "enable"
 SYSTEMD_AUTO_ENABLE:lirc-exec = "enable"
 
-inherit autotools pkgconfig systemd python3native distutils-common-base
+inherit autotools pkgconfig systemd python3native setuptools3-base
 
 PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd"
 PACKAGECONFIG[x11] = "--with-x,--with-x=no,libx11,"
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 eff014a..1215344 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
@@ -14,7 +14,7 @@
 PV = "4.4.7"
 #v4.4.7
 SRCREV = "abb6b9c2bf675e9e2aeaecba05f0f8359d99e203"
-SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.4 \
+SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.4;protocol=https \
            file://0001-Tell-scons-to-use-build-settings-from-environment-va.patch \
            file://0001-Use-long-long-instead-of-int64_t.patch \
            file://0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch \
@@ -43,7 +43,6 @@
            file://0001-asio-Dont-use-experimental-with-clang.patch \
            "
 
-
 S = "${WORKDIR}/git"
 
 COMPATIBLE_HOST ?= '(x86_64|i.86|powerpc64|arm|aarch64).*-linux'
@@ -83,46 +82,50 @@
                  --separate-debug \
                  ${PACKAGECONFIG_CONFARGS}"
 
-
 USERADD_PACKAGES = "${PN}"
 USERADD_PARAM:${PN} = "--system --no-create-home --home-dir /var/run/${BPN} --shell /bin/false --user-group ${BPN}"
 
-
 scons_do_compile() {
-        ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} ${EXTRA_OESCONS} install-core || \
+    ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} ${EXTRA_OESCONS} install-core ||
         die "scons build execution failed."
 }
 
 scons_do_install() {
-        # install binaries
-        install -d ${D}${bindir}
-        for i in mongod mongos mongo
-        do
-            if [ -f ${B}/build/opt/mongo/${i} ]
-            then
-                install -m 0755 ${B}/build/opt/mongo/${i} ${D}${bindir}/${i}
-            else
-                bbnote "${i} does not exist"
-            fi
-        done
+    # install binaries
+    install -d ${D}${bindir}
+    for i in mongod mongos mongo; do
+        if [ -f ${B}/build/opt/mongo/$i ]; then
+            install -m 0755 ${B}/build/opt/mongo/$i ${D}${bindir}
+        else
+            bbnote "$i does not exist"
+        fi
+    done
 
-        # install config
-        install -d ${D}${sysconfdir}
-        install -m 0644 ${S}/debian/mongod.conf ${D}${sysconfdir}/
+    # install config
+    install -d ${D}${sysconfdir}
+    install -m 0644 ${S}/debian/mongod.conf ${D}${sysconfdir}
 
-        # install systemd service
-        install -d ${D}${systemd_system_unitdir}
-        install -m 0644 ${S}/debian/mongod.service ${D}${systemd_system_unitdir}
+    # install systemd service
+    install -d ${D}${systemd_system_unitdir}
+    install -m 0644 ${S}/debian/mongod.service ${D}${systemd_system_unitdir}
 
-        # install mongo data folder
-        install -m 755 -d ${D}${localstatedir}/lib/${BPN}
-        chown ${PN}:${PN} ${D}${localstatedir}/lib/${BPN}
+    # install mongo data folder
+    install -m 755 -d ${D}${localstatedir}/lib/${BPN}
+    chown ${PN}:${PN} ${D}${localstatedir}/lib/${BPN}
 
-        # Log files
-        install -m 755 -d ${D}${localstatedir}/log/${BPN}
-        chown ${PN}:${PN} ${D}${localstatedir}/log/${BPN}
+    # Create /var/log/mongodb in runtime.
+    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
+        install -d ${D}${nonarch_libdir}/tmpfiles.d
+        echo "d ${localstatedir}/log/${BPN} 0755 ${BPN} ${BPN} -" > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
+    fi
+    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then
+        install -d ${D}${sysconfdir}/default/volatiles
+        echo "d ${BPN} ${BPN} 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
+    fi
 }
 
 CONFFILES:${PN} = "${sysconfdir}/mongod.conf"
 
 SYSTEMD_SERVICE:${PN} = "mongod.service"
+
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.5.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.5.bb
index 6ccefd2..4b1853c 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.5.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.5.bb
@@ -4,7 +4,7 @@
 
 DEPENDS = "protobuf-native"
 
-SRC_URI = "git://github.com/nanopb/nanopb.git"
+SRC_URI = "git://github.com/nanopb/nanopb.git;branch=master;protocol=https"
 SRCREV = "c9124132a604047d0ef97a09c0e99cd9bed2c818"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb
index 4442793..5257ee3 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb
@@ -11,7 +11,7 @@
 
 PV = "0.5.9+git${SRCPV}"
 SRCREV = "3a3d622d9bb74c44fa67bc20573751a207514134"
-SRC_URI = "git://github.com/lcdproc/lcdproc \
+SRC_URI = "git://github.com/lcdproc/lcdproc;branch=master;protocol=https \
            file://0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch \
            file://0002-Include-limits.h-for-PATH_MAX-definition.patch \
            file://0003-Fix-non-x86-platforms-on-musl.patch \
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0001-rust.configure-Skip-all-target-manipulations.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0001-rust.configure-Skip-all-target-manipulations.patch
new file mode 100644
index 0000000..453174e
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0001-rust.configure-Skip-all-target-manipulations.patch
@@ -0,0 +1,66 @@
+From b75661fbddd00ba9a43680c35b8c08aad8807d6b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 31 Oct 2021 16:49:55 +0100
+Subject: [PATCH] rust.configure: Skip all target manipulations
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Mozjs/rust targets are different from OE-rust targets. Use targets reported
+as is.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ build/moz.configure/rust.configure | 16 +---------------
+ 1 file changed, 1 insertion(+), 15 deletions(-)
+
+diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure
+index e5122d6..9f3cc91 100644
+--- a/build/moz.configure/rust.configure
++++ b/build/moz.configure/rust.configure
+@@ -81,9 +81,6 @@ def unwrap_rustup(prog, name):
+ 
+     return unwrap
+ 
+-rustc = unwrap_rustup(rustc, 'rustc')
+-cargo = unwrap_rustup(cargo, 'cargo')
+-
+ 
+ set_config('CARGO', cargo)
+ set_config('RUSTC', rustc)
+@@ -239,6 +236,7 @@ def rust_triple_alias(host_or_target, host_or_target_c_compiler):
+     @imports(_from='textwrap', _import='dedent')
+     def rust_target(rustc, host_or_target, compiler_info,
+                     rust_supported_targets, arm_target):
++        return host_or_target.alias
+         # Rust's --target options are similar to, but not exactly the same
+         # as, the autoconf-derived targets we use.  An example would be that
+         # Rust uses distinct target triples for targetting the GNU C++ ABI
+@@ -401,22 +399,10 @@ def rust_triple_alias(host_or_target, host_or_target_c_compiler):
+ 
+     return rust_target
+ 
+-
+ rust_target_triple = rust_triple_alias(target, c_compiler)
+ rust_host_triple = rust_triple_alias(host, host_c_compiler)
+ 
+ 
+-@depends(host, rust_host_triple, rustc_info.host)
+-def validate_rust_host_triple(host, rust_host, rustc_host):
+-    if rust_host != rustc_host:
+-        if host.alias == rust_host:
+-            configure_host = host.alias
+-        else:
+-            configure_host = '{}/{}'.format(host.alias, rust_host)
+-        die("The rust compiler host ({}) is not suitable for the configure host ({})."
+-            .format(rustc_host, configure_host))
+-
+-
+ set_config('RUST_TARGET', rust_target_triple)
+ set_config('RUST_HOST_TARGET', rust_host_triple)
+ 
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0002-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0002-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch
new file mode 100644
index 0000000..21ad82e
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0002-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch
@@ -0,0 +1,33 @@
+From e5b95b3918588e2930c9af7ba304c57e871b2d55 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Thu, 7 Oct 2021 12:44:18 +0200
+Subject: [PATCH] build: do not use autoconf's config.sub to 'canonicalize'
+ names
+
+The outcome is that processed names no longer match our custom rust
+target definitions, and the build fails.
+
+Upstream-Status: Inappropriate [oespecific]
+
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ build/moz.configure/init.configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index b887153..0a6a33c 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -808,7 +808,7 @@ def help_host_target(help, host, target):
+ def config_sub(shell, triplet):
+     config_sub = os.path.join(os.path.dirname(__file__), '..',
+                               'autoconf', 'config.sub')
+-    return check_cmd_output(shell, config_sub, triplet).strip()
++    return triplet
+ 
+ 
+ @depends('--host', shell)
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0003-Do-not-check-binaries-after-build.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0003-Do-not-check-binaries-after-build.patch
new file mode 100644
index 0000000..a0f37f5
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0003-Do-not-check-binaries-after-build.patch
@@ -0,0 +1,55 @@
+From 1a47eac590f57c765033c7797b0759dc314f2128 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Mon, 1 Nov 2021 22:52:57 +0100
+Subject: [PATCH] Do not check binaries after build
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* It buys us a dependency hard to fulfill in different layer setups
+* Mozjs-91 does not perform these checks when setting --enable-project=js. Here
+  for old configuration style --enable-project changes nothing and build wants
+  to check binaries created.
+
+So omit checks by not searching for llvm_objdump and making check_binary.py a
+stub to prevent errors by using unset LLVM_OBJDUMP.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ moz.configure                                   | 7 -------
+ python/mozbuild/mozbuild/action/check_binary.py | 2 +-
+ 2 files changed, 1 insertion(+), 8 deletions(-)
+
+diff --git a/moz.configure b/moz.configure
+index 9b0e784..41e3e4d 100755
+--- a/moz.configure
++++ b/moz.configure
+@@ -648,13 +648,6 @@ def llvm_objdump(host_c_compiler, c_compiler, bindgen_config_paths):
+     return (llvm_objdump,)
+ 
+ 
+-llvm_objdump = check_prog('LLVM_OBJDUMP', llvm_objdump, what='llvm-objdump',
+-                          when='--enable-compile-environment',
+-                          paths=toolchain_search_path)
+-
+-add_old_configure_assignment('LLVM_OBJDUMP', llvm_objdump)
+-
+-
+ js_option('--enable-dtrace', help='Build with dtrace support')
+ 
+ dtrace = check_header('sys/sdt.h', when='--enable-dtrace',
+diff --git a/python/mozbuild/mozbuild/action/check_binary.py b/python/mozbuild/mozbuild/action/check_binary.py
+index 57ccfa6..bd2c167 100644
+--- a/python/mozbuild/mozbuild/action/check_binary.py
++++ b/python/mozbuild/mozbuild/action/check_binary.py
+@@ -366,4 +366,4 @@ def main(args):
+ 
+ 
+ if __name__ == '__main__':
+-    sys.exit(main(sys.argv[1:]))
++    sys.exit(0)
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0004-Cargo.toml-do-not-abort-on-panic.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0004-Cargo.toml-do-not-abort-on-panic.patch
new file mode 100644
index 0000000..665eace
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0004-Cargo.toml-do-not-abort-on-panic.patch
@@ -0,0 +1,33 @@
+From 9e37248870b2b955293754933c789ca00bca06ef Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 1 Oct 2021 13:00:24 +0200
+Subject: [PATCH] Cargo.toml: do not abort on panic
+
+OE's rust is configured to unwind, and this setting clashes with it/
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ Cargo.toml | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Cargo.toml b/Cargo.toml
+index 897daad41b..505454263e 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -56,13 +56,11 @@ opt-level = 1
+ rpath = false
+ lto = false
+ debug-assertions = true
+-panic = "abort"
+ 
+ [profile.release]
+ opt-level = 2
+ rpath = false
+ debug-assertions = false
+-panic = "abort"
+ 
+ [patch.crates-io]
+ libudev-sys = { path = "dom/webauthn/libudev-sys" }
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0005-Fixup-compatibility-of-mozbuild-with-Python-3.10.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0005-Fixup-compatibility-of-mozbuild-with-Python-3.10.patch
new file mode 100644
index 0000000..d069d00
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0005-Fixup-compatibility-of-mozbuild-with-Python-3.10.patch
@@ -0,0 +1,304 @@
+From a88d0c8e27b48344942187c2611bb121bde9332d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
+Date: Tue, 13 Jul 2021 11:46:20 +0200
+Subject: [PATCH] Fixup compatibility of mozbuild with Python 3.10
+
+Stolen from [1]
+
+[1] https://src.fedoraproject.org/rpms/mozjs78/raw/rawhide/f/Fixup-compatibility-of-mozbuild-with-Python-3.10.patch
+
+Upstream-Status: Pending
+
+---
+ python/mach/mach/config.py                                    | 4 ++--
+ python/mach/mach/decorators.py                                | 2 +-
+ python/mozbuild/mozbuild/backend/configenvironment.py         | 3 ++-
+ python/mozbuild/mozbuild/makeutil.py                          | 2 +-
+ python/mozbuild/mozbuild/util.py                              | 2 +-
+ testing/marionette/client/marionette_driver/wait.py           | 2 +-
+ testing/mozbase/manifestparser/manifestparser/filters.py      | 3 ++-
+ testing/mozbase/versioninfo.py                                | 2 +-
+ testing/web-platform/tests/tools/manifest/vcs.py              | 2 +-
+ .../web-platform/tests/tools/third_party/h2/h2/settings.py    | 2 +-
+ .../tests/tools/third_party/html5lib/html5lib/_trie/_base.py  | 2 +-
+ .../tools/third_party/html5lib/html5lib/treebuilders/dom.py   | 2 +-
+ .../tests/tools/third_party/hyper/hyper/common/headers.py     | 2 +-
+ .../tests/tools/third_party/hyper/hyper/h2/settings.py        | 2 +-
+ .../tests/tools/third_party/hyper/hyper/http11/connection.py  | 4 ++--
+ .../third_party/hyper/hyper/packages/hyperframe/flags.py      | 2 +-
+ .../tests/tools/third_party/hyperframe/hyperframe/flags.py    | 2 +-
+ testing/web-platform/tests/tools/wptserve/wptserve/config.py  | 3 ++-
+ testing/web-platform/tests/webdriver/tests/support/sync.py    | 2 +-
+ 19 files changed, 24 insertions(+), 21 deletions(-)
+
+diff --git a/python/mach/mach/config.py b/python/mach/mach/config.py
+index 7210eca82..edb4d2e93 100644
+--- a/python/mach/mach/config.py
++++ b/python/mach/mach/config.py
+@@ -144,7 +144,7 @@ def reraise_attribute_error(func):
+     return _
+ 
+ 
+-class ConfigSettings(collections.Mapping):
++class ConfigSettings(collections.abc.Mapping):
+     """Interface for configuration settings.
+ 
+     This is the main interface to the configuration.
+@@ -190,7 +190,7 @@ class ConfigSettings(collections.Mapping):
+     will result in exceptions being raised.
+     """
+ 
+-    class ConfigSection(collections.MutableMapping, object):
++    class ConfigSection(collections.abc.MutableMapping, object):
+         """Represents an individual config section."""
+         def __init__(self, config, name, settings):
+             object.__setattr__(self, '_config', config)
+diff --git a/python/mach/mach/decorators.py b/python/mach/mach/decorators.py
+index 27f7f34a6..5f63271a3 100644
+--- a/python/mach/mach/decorators.py
++++ b/python/mach/mach/decorators.py
+@@ -140,7 +140,7 @@ def CommandProvider(cls):
+               'Conditions argument must take a list ' + \
+               'of functions. Found %s instead.'
+ 
+-        if not isinstance(command.conditions, collections.Iterable):
++        if not isinstance(command.conditions, collections.abc.Iterable):
+             msg = msg % (command.name, type(command.conditions))
+             raise MachError(msg)
+ 
+diff --git a/python/mozbuild/mozbuild/backend/configenvironment.py b/python/mozbuild/mozbuild/backend/configenvironment.py
+index 20d1a9fa6..8747958bd 100644
+--- a/python/mozbuild/mozbuild/backend/configenvironment.py
++++ b/python/mozbuild/mozbuild/backend/configenvironment.py
+@@ -9,7 +9,8 @@ import six
+ import sys
+ import json
+ 
+-from collections import Iterable, OrderedDict
++from collections import OrderedDict
++from collections.abc import Iterable
+ from types import ModuleType
+ 
+ import mozpack.path as mozpath
+diff --git a/python/mozbuild/mozbuild/makeutil.py b/python/mozbuild/mozbuild/makeutil.py
+index 4da1a3b26..4ce56848c 100644
+--- a/python/mozbuild/mozbuild/makeutil.py
++++ b/python/mozbuild/mozbuild/makeutil.py
+@@ -7,7 +7,7 @@ from __future__ import absolute_import, print_function, unicode_literals
+ import os
+ import re
+ import six
+-from collections import Iterable
++from collections.abc import Iterable
+ 
+ 
+ class Makefile(object):
+diff --git a/python/mozbuild/mozbuild/util.py b/python/mozbuild/mozbuild/util.py
+index 044cf645c..98ed3ef52 100644
+--- a/python/mozbuild/mozbuild/util.py
++++ b/python/mozbuild/mozbuild/util.py
+@@ -782,7 +782,7 @@ class HierarchicalStringList(object):
+         self._strings = StrictOrderingOnAppendList()
+         self._children = {}
+ 
+-    class StringListAdaptor(collections.Sequence):
++    class StringListAdaptor(collections.abc.Sequence):
+         def __init__(self, hsl):
+             self._hsl = hsl
+ 
+diff --git a/testing/marionette/client/marionette_driver/wait.py b/testing/marionette/client/marionette_driver/wait.py
+index eeaa1e23d..c147f463f 100644
+--- a/testing/marionette/client/marionette_driver/wait.py
++++ b/testing/marionette/client/marionette_driver/wait.py
+@@ -82,7 +82,7 @@ class Wait(object):
+ 
+         exceptions = []
+         if ignored_exceptions is not None:
+-            if isinstance(ignored_exceptions, collections.Iterable):
++            if isinstance(ignored_exceptions, collections.abc.Iterable):
+                 exceptions.extend(iter(ignored_exceptions))
+             else:
+                 exceptions.append(ignored_exceptions)
+diff --git a/testing/mozbase/manifestparser/manifestparser/filters.py b/testing/mozbase/manifestparser/manifestparser/filters.py
+index 287ee033b..b1d608003 100644
+--- a/testing/mozbase/manifestparser/manifestparser/filters.py
++++ b/testing/mozbase/manifestparser/manifestparser/filters.py
+@@ -12,7 +12,8 @@ from __future__ import absolute_import
+ 
+ import itertools
+ import os
+-from collections import defaultdict, MutableSequence
++from collections import defaultdict
++from collections.abc import MutableSequence
+ 
+ import six
+ from six import string_types
+diff --git a/testing/mozbase/versioninfo.py b/testing/mozbase/versioninfo.py
+index 91d1a0473..8c1680069 100755
+--- a/testing/mozbase/versioninfo.py
++++ b/testing/mozbase/versioninfo.py
+@@ -11,7 +11,7 @@ from commit messages.
+ 
+ from __future__ import absolute_import, print_function
+ 
+-from collections import Iterable
++from collections.abc import Iterable
+ from distutils.version import StrictVersion
+ import argparse
+ import os
+diff --git a/testing/web-platform/tests/tools/manifest/vcs.py b/testing/web-platform/tests/tools/manifest/vcs.py
+index 7c0feeb81..05ee19c7c 100644
+--- a/testing/web-platform/tests/tools/manifest/vcs.py
++++ b/testing/web-platform/tests/tools/manifest/vcs.py
+@@ -3,7 +3,7 @@ import json
+ import os
+ import stat
+ from collections import deque
+-from collections import MutableMapping
++from collections.abc import MutableMapping
+ 
+ from six import with_metaclass, PY2
+ 
+diff --git a/testing/web-platform/tests/tools/third_party/h2/h2/settings.py b/testing/web-platform/tests/tools/third_party/h2/h2/settings.py
+index 3da720329..e097630e9 100644
+--- a/testing/web-platform/tests/tools/third_party/h2/h2/settings.py
++++ b/testing/web-platform/tests/tools/third_party/h2/h2/settings.py
+@@ -88,7 +88,7 @@ class ChangedSetting:
+         )
+ 
+ 
+-class Settings(collections.MutableMapping):
++class Settings(collections.abc.MutableMapping):
+     """
+     An object that encapsulates HTTP/2 settings state.
+ 
+diff --git a/testing/web-platform/tests/tools/third_party/html5lib/html5lib/_trie/_base.py b/testing/web-platform/tests/tools/third_party/html5lib/html5lib/_trie/_base.py
+index a1158bbbf..a9295a2ba 100644
+--- a/testing/web-platform/tests/tools/third_party/html5lib/html5lib/_trie/_base.py
++++ b/testing/web-platform/tests/tools/third_party/html5lib/html5lib/_trie/_base.py
+@@ -1,6 +1,6 @@
+ from __future__ import absolute_import, division, unicode_literals
+ 
+-from collections import Mapping
++from collections.abc import Mapping
+ 
+ 
+ class Trie(Mapping):
+diff --git a/testing/web-platform/tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py b/testing/web-platform/tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py
+index dcfac220b..818a33433 100644
+--- a/testing/web-platform/tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py
++++ b/testing/web-platform/tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py
+@@ -1,7 +1,7 @@
+ from __future__ import absolute_import, division, unicode_literals
+ 
+ 
+-from collections import MutableMapping
++from collections.abc import MutableMapping
+ from xml.dom import minidom, Node
+ import weakref
+ 
+diff --git a/testing/web-platform/tests/tools/third_party/hyper/hyper/common/headers.py b/testing/web-platform/tests/tools/third_party/hyper/hyper/common/headers.py
+index 655a591ac..6454f550a 100644
+--- a/testing/web-platform/tests/tools/third_party/hyper/hyper/common/headers.py
++++ b/testing/web-platform/tests/tools/third_party/hyper/hyper/common/headers.py
+@@ -10,7 +10,7 @@ import collections
+ from hyper.common.util import to_bytestring, to_bytestring_tuple
+ 
+ 
+-class HTTPHeaderMap(collections.MutableMapping):
++class HTTPHeaderMap(collections.abc.MutableMapping):
+     """
+     A structure that contains HTTP headers.
+ 
+diff --git a/testing/web-platform/tests/tools/third_party/hyper/hyper/h2/settings.py b/testing/web-platform/tests/tools/third_party/hyper/hyper/h2/settings.py
+index fedc5e3c4..040afea92 100755
+--- a/testing/web-platform/tests/tools/third_party/hyper/hyper/h2/settings.py
++++ b/testing/web-platform/tests/tools/third_party/hyper/hyper/h2/settings.py
+@@ -151,7 +151,7 @@ class ChangedSetting:
+         )
+ 
+ 
+-class Settings(collections.MutableMapping):
++class Settings(collections.abc.MutableMapping):
+     """
+     An object that encapsulates HTTP/2 settings state.
+ 
+diff --git a/testing/web-platform/tests/tools/third_party/hyper/hyper/http11/connection.py b/testing/web-platform/tests/tools/third_party/hyper/hyper/http11/connection.py
+index 61361c358..a214311d2 100644
+--- a/testing/web-platform/tests/tools/third_party/hyper/hyper/http11/connection.py
++++ b/testing/web-platform/tests/tools/third_party/hyper/hyper/http11/connection.py
+@@ -10,7 +10,7 @@ import os
+ import socket
+ import base64
+ 
+-from collections import Iterable, Mapping
++from collections.abc import Iterable, Mapping
+ 
+ import collections
+ from hyperframe.frame import SettingsFrame
+@@ -295,7 +295,7 @@ class HTTP11Connection(object):
+                 return
+ 
+             # Iterables that set a specific content length.
+-            elif isinstance(body, collections.Iterable):
++            elif isinstance(body, collections.abc.Iterable):
+                 for item in body:
+                     try:
+                         self._sock.send(item)
+diff --git a/testing/web-platform/tests/tools/third_party/hyper/hyper/packages/hyperframe/flags.py b/testing/web-platform/tests/tools/third_party/hyper/hyper/packages/hyperframe/flags.py
+index e8f630056..8f2ea689b 100644
+--- a/testing/web-platform/tests/tools/third_party/hyper/hyper/packages/hyperframe/flags.py
++++ b/testing/web-platform/tests/tools/third_party/hyper/hyper/packages/hyperframe/flags.py
+@@ -11,7 +11,7 @@ import collections
+ Flag = collections.namedtuple("Flag", ["name", "bit"])
+ 
+ 
+-class Flags(collections.MutableSet):
++class Flags(collections.abc.MutableSet):
+     """
+     A simple MutableSet implementation that will only accept known flags as elements.
+ 
+diff --git a/testing/web-platform/tests/tools/third_party/hyperframe/hyperframe/flags.py b/testing/web-platform/tests/tools/third_party/hyperframe/hyperframe/flags.py
+index 05b35017e..14c352e10 100644
+--- a/testing/web-platform/tests/tools/third_party/hyperframe/hyperframe/flags.py
++++ b/testing/web-platform/tests/tools/third_party/hyperframe/hyperframe/flags.py
+@@ -11,7 +11,7 @@ import collections
+ Flag = collections.namedtuple("Flag", ["name", "bit"])
+ 
+ 
+-class Flags(collections.MutableSet):
++class Flags(collections.abc.MutableSet):
+     """
+     A simple MutableSet implementation that will only accept known flags as
+     elements.
+diff --git a/testing/web-platform/tests/tools/wptserve/wptserve/config.py b/testing/web-platform/tests/tools/wptserve/wptserve/config.py
+index 7766565fe..3c1c36d6f 100644
+--- a/testing/web-platform/tests/tools/wptserve/wptserve/config.py
++++ b/testing/web-platform/tests/tools/wptserve/wptserve/config.py
+@@ -2,7 +2,8 @@ import copy
+ import logging
+ import os
+ 
+-from collections import defaultdict, Mapping
++from collections import defaultdict
++from collections.abc import Mapping
+ from six import integer_types, iteritems, itervalues, string_types
+ 
+ from . import sslutils
+diff --git a/testing/web-platform/tests/webdriver/tests/support/sync.py b/testing/web-platform/tests/webdriver/tests/support/sync.py
+index 3fc77131c..8e8f6b819 100644
+--- a/testing/web-platform/tests/webdriver/tests/support/sync.py
++++ b/testing/web-platform/tests/webdriver/tests/support/sync.py
+@@ -81,7 +81,7 @@ class Poll(object):
+ 
+         exceptions = []
+         if ignored_exceptions is not None:
+-            if isinstance(ignored_exceptions, collections.Iterable):
++            if isinstance(ignored_exceptions, collections.abc.Iterable):
+                 exceptions.extend(iter(ignored_exceptions))
+             else:
+                 exceptions.append(ignored_exceptions)
+-- 
+2.31.1
+
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0004-use-asm-sgidefs.h.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0006-use-asm-sgidefs.h.patch
similarity index 100%
rename from meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0004-use-asm-sgidefs.h.patch
rename to meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0006-use-asm-sgidefs.h.patch
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/fix-musl-build.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0007-fix-musl-build.patch
similarity index 100%
rename from meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/fix-musl-build.patch
rename to meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0007-fix-musl-build.patch
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0008-riscv.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0008-riscv.patch
new file mode 100644
index 0000000..70177d0
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0008-riscv.patch
@@ -0,0 +1,52 @@
+Add RISCV32/64 support
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ build/moz.configure/init.configure                        | 6 ++++++
+ python/mozbuild/mozbuild/configure/constants.py           | 2 ++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index 0a6a33c..eeee87e 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -755,6 +755,12 @@ def split_triplet(triplet, allow_msvc=False):
+     elif cpu.startswith('aarch64'):
+         canonical_cpu = 'aarch64'
+         endianness = 'little'
++    elif cpu in ("riscv32", "riscv32gc"):
++        canonical_cpu = "riscv32"
++        endianness = "little"
++    elif cpu in ("riscv64", "riscv64gc"):
++        canonical_cpu = "riscv64"
++        endianness = "little"
+     elif cpu == 'sh4':
+         canonical_cpu = 'sh4'
+         endianness = 'little'
+diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py
+index 7542dcd..de25be2 100644
+--- a/python/mozbuild/mozbuild/configure/constants.py
++++ b/python/mozbuild/mozbuild/configure/constants.py
+@@ -50,6 +50,8 @@ CPU_bitness = {
+     'mips64': 64,
+     'ppc': 32,
+     'ppc64': 64,
++    'riscv32': 32,
++    'riscv64': 64,
+     's390': 32,
+     's390x': 64,
+     'sh4': 32,
+@@ -82,6 +84,8 @@ CPU_preprocessor_checks = OrderedDict((
+     ('s390', '__s390__'),
+     ('ppc64', '__powerpc64__'),
+     ('ppc', '__powerpc__'),
++    ('riscv32', '__riscv && __SIZEOF_POINTER__ == 4'),
++    ('riscv64', '__riscv && __SIZEOF_POINTER__ == 8'),
+     ('Alpha', '__alpha__'),
+     ('hppa', '__hppa__'),
+     ('sparc64', '__sparc__ && __arch64__'),
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0009-riscv-Disable-atomic-operations.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0009-riscv-Disable-atomic-operations.patch
new file mode 100644
index 0000000..ba50e10
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0009-riscv-Disable-atomic-operations.patch
@@ -0,0 +1,52 @@
+From 64ad80e6d95871f17be4cd01da15581f41ac0b2b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 27 May 2019 21:10:34 -0700
+Subject: [PATCH] riscv: Disable atomic operations
+
+This was ported from what was used with mozjs-60 which was
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Inappropriate[old-version]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ js/src/jit/AtomicOperations.h                          | 3 ++-
+ js/src/jit/shared/AtomicOperations-feeling-lucky-gcc.h | 8 ++++++++
+ 2 files changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/js/src/jit/AtomicOperations.h b/js/src/jit/AtomicOperations.h
+index 0486cba..cf6b91c 100644
+--- a/js/src/jit/AtomicOperations.h
++++ b/js/src/jit/AtomicOperations.h
+@@ -391,7 +391,8 @@ inline bool AtomicOperations::isLockfreeJS(int32_t size) {
+ #elif defined(__ppc__) || defined(__PPC__) || defined(__sparc__) ||     \
+     defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || \
+     defined(__PPC64LE__) || defined(__alpha__) || defined(__hppa__) ||  \
+-    defined(__sh__) || defined(__s390__) || defined(__s390x__)
++    defined(__sh__) || defined(__s390__) || defined(__s390x__) || \
++    defined(__riscv)
+ #  include "jit/shared/AtomicOperations-feeling-lucky.h"
+ #else
+ #  error "No AtomicOperations support provided for this platform"
+diff --git a/js/src/jit/shared/AtomicOperations-feeling-lucky-gcc.h b/js/src/jit/shared/AtomicOperations-feeling-lucky-gcc.h
+index f002cd4..14bb5f9 100644
+--- a/js/src/jit/shared/AtomicOperations-feeling-lucky-gcc.h
++++ b/js/src/jit/shared/AtomicOperations-feeling-lucky-gcc.h
+@@ -77,6 +77,14 @@
+ #  endif
+ #endif
+ 
++#ifdef __riscv
++#  ifdef __riscv_xlen == 64
++#    define HAS_64BIT_ATOMICS
++#    define HAS_64BIT_LOCKFREE
++#  endif
++#endif
++
++
+ // The default implementation tactic for gcc/clang is to use the newer __atomic
+ // intrinsics added for use in C++11 <atomic>.  Where that isn't available, we
+ // use GCC's older __sync functions instead.
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0010-riscv-Set-march-correctly.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0010-riscv-Set-march-correctly.patch
new file mode 100644
index 0000000..befede1
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0010-riscv-Set-march-correctly.patch
@@ -0,0 +1,60 @@
+From c3c2d1c69859c5e567005f0c3fa07a0dbe31e4a3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Fri, 29 Oct 2021 21:18:26 +0200
+Subject: [PATCH] riscv: Set march correctly
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Stolen from leftover patch in oe-core [1]
+
+[1] https://github.com/openembedded/openembedded-core/blob/c884878f6c833b18a3a95b193f5de68df5bcea48/meta/recipes-devtools/rust/files/rv64gc.patch
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ third_party/rust/cc/src/lib.rs           | 14 ++++++++++----
+ third_party/rust/cc/.cargo-checksum.json | 2 +-
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/third_party/rust/cc/src/lib.rs b/third_party/rust/cc/src/lib.rs
+index 621d31d..6f72e13 100644
+--- a/third_party/rust/cc/src/lib.rs
++++ b/third_party/rust/cc/src/lib.rs
+@@ -1587,14 +1587,20 @@ impl Build {
+                     let mut parts = target.split('-');
+                     if let Some(arch) = parts.next() {
+                         let arch = &arch[5..];
+-                        cmd.args.push(("-march=rv".to_owned() + arch).into());
+-                        // ABI is always soft-float right now, update this when this is no longer the
+-                        // case:
+-                        if arch.starts_with("64") {
++                        if target.contains("linux") && arch.starts_with("64") {
++                            cmd.args.push(("-march=rv64gc").into());
++                            cmd.args.push("-mabi=lp64d".into());
++                        } else if target.contains("linux") && arch.starts_with("32") {
++                            cmd.args.push(("-march=rv32gc").into());
++                            cmd.args.push("-mabi=ilp32d".into());
++                        } else if arch.starts_with("64") {
++                            cmd.args.push(("-march=rv".to_owned() + arch).into());
+                             cmd.args.push("-mabi=lp64".into());
+                         } else {
++                            cmd.args.push(("-march=rv".to_owned() + arch).into());
+                             cmd.args.push("-mabi=ilp32".into());
+                         }
++                        cmd.args.push("-mcmodel=medany".into());
+                     }
+                 }
+             }
+diff --git a/third_party/rust/cc/.cargo-checksum.json b/third_party/rust/cc/.cargo-checksum.json
+index 417fde7..70e5d02 100644
+--- a/third_party/rust/cc/.cargo-checksum.json
++++ b/third_party/rust/cc/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"Cargo.lock":"3aff5f8b0a7f4d72852b11b0526f0002e6bf55f19f1ebd6470d7f97fbd540e60","Cargo.toml":"6ab10d9b6a9c6f0909074e6698c90c6b6a7223661ec2e83174d2593117cbe7f2","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"7184fbdf375a057e673257348f6d7584c0dd11b66318d98f3647f69eb610b097","src/bin/gcc-shim.rs":"b77907875029494b6288841c3aed2e4939ed40708c7f597fca5c9e2570490ca6","src/com.rs":"bcdaf1c28b71e6ef889c6b08d1ce9d7c0761344a677f523bc4c3cd297957f804","src/lib.rs":"4753929dbb7b676c19d7cfa06d0a47e37003554b80c536cbf2b892d591ef61c2","src/registry.rs":"3cc1b5a50879fa751572878ae1d0afbfc960c11665258492754b2c8bccb0ff5d","src/setup_config.rs":"7014103587d3382eac599cb76f016e2609b8140970861b2237982d1db24af265","src/winapi.rs":"ea8b7edbb9ff87957254f465c2334e714c5d6b3b19a8d757c48ea7ca0881c50c","src/windows_registry.rs":"388e79dcf3e84078ae0b086c6cdee9cf9eb7e3ffafdcbf3e2df26163661f5856","tests/cc_env.rs":"e02b3b0824ad039b47e4462c5ef6dbe6c824c28e7953af94a0f28f7b5158042e","tests/cflags.rs":"57f06eb5ce1557e5b4a032d0c4673e18fbe6f8d26c1deb153126e368b96b41b3","tests/cxxflags.rs":"c2c6c6d8a0d7146616fa1caed26876ee7bc9fcfffd525eb4743593cade5f3371","tests/support/mod.rs":"71620b178583b6e6e5e0d4cac14e2cef6afc62fb6841e0c72ed1784543abf8ac","tests/test.rs":"1605640c9b94a77f48fc92e1dc0485bdf1960da5626e2e00279e4703691656bc"},"package":"aa87058dce70a3ff5621797f1506cb837edd02ac4c0ae642b4542dce802908b8"}
+\ No newline at end of file
++{"files":{"Cargo.lock":"3aff5f8b0a7f4d72852b11b0526f0002e6bf55f19f1ebd6470d7f97fbd540e60","Cargo.toml":"6ab10d9b6a9c6f0909074e6698c90c6b6a7223661ec2e83174d2593117cbe7f2","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"7184fbdf375a057e673257348f6d7584c0dd11b66318d98f3647f69eb610b097","src/bin/gcc-shim.rs":"b77907875029494b6288841c3aed2e4939ed40708c7f597fca5c9e2570490ca6","src/com.rs":"bcdaf1c28b71e6ef889c6b08d1ce9d7c0761344a677f523bc4c3cd297957f804","src/lib.rs":"feab2b4cc51fcfb041f83a1a689960c3c9abfbaa9580ba186244a880586ba29a","src/registry.rs":"3cc1b5a50879fa751572878ae1d0afbfc960c11665258492754b2c8bccb0ff5d","src/setup_config.rs":"7014103587d3382eac599cb76f016e2609b8140970861b2237982d1db24af265","src/winapi.rs":"ea8b7edbb9ff87957254f465c2334e714c5d6b3b19a8d757c48ea7ca0881c50c","src/windows_registry.rs":"388e79dcf3e84078ae0b086c6cdee9cf9eb7e3ffafdcbf3e2df26163661f5856","tests/cc_env.rs":"e02b3b0824ad039b47e4462c5ef6dbe6c824c28e7953af94a0f28f7b5158042e","tests/cflags.rs":"57f06eb5ce1557e5b4a032d0c4673e18fbe6f8d26c1deb153126e368b96b41b3","tests/cxxflags.rs":"c2c6c6d8a0d7146616fa1caed26876ee7bc9fcfffd525eb4743593cade5f3371","tests/support/mod.rs":"71620b178583b6e6e5e0d4cac14e2cef6afc62fb6841e0c72ed1784543abf8ac","tests/test.rs":"1605640c9b94a77f48fc92e1dc0485bdf1960da5626e2e00279e4703691656bc"},"package":"aa87058dce70a3ff5621797f1506cb837edd02ac4c0ae642b4542dce802908b8"}
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0011-replace-include-by-code-to-fix-arm-build.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0011-replace-include-by-code-to-fix-arm-build.patch
new file mode 100644
index 0000000..adca9c7
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0011-replace-include-by-code-to-fix-arm-build.patch
@@ -0,0 +1,43 @@
+From fd6847c9416f9eebde636e21d794d25d1be8791d Mon Sep 17 00:00:00 2001
+From: Mike Hommey <mh@glandium.org>
+Date: Sat, 1 Jun 2019 09:06:01 +0900
+Subject: [PATCH] Bug 1526653 - Include struct definitions for user_vfp and
+ user_vfp_exc.
+ 
+* We need this to fix arm builds
+* Stolen from [1]
+
+[1] https://salsa.debian.org/mozilla-team/firefox/commit/fd6847c9416f9eebde636e21d794d25d1be8791d
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
+Upstream-Status: Pending
+---
+ js/src/wasm/WasmSignalHandlers.cpp | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp
+index 636537f8478..383c380f04c 100644
+--- a/js/src/wasm/WasmSignalHandlers.cpp
++++ b/js/src/wasm/WasmSignalHandlers.cpp
+@@ -248,7 +248,16 @@ using mozilla::DebugOnly;
+ #endif
+ 
+ #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+-#  include <sys/user.h>
++struct user_vfp {
++  unsigned long long fpregs[32];
++  unsigned long fpscr;
++};
++
++struct user_vfp_exc {
++  unsigned long fpexc;
++  unsigned long fpinst;
++  unsigned long fpinst2;
++};
+ #endif
+ 
+ #if defined(ANDROID)
+-- 
+GitLab
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0012-Add-SharedArrayRawBufferRefs-to-public-API.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0012-Add-SharedArrayRawBufferRefs-to-public-API.patch
new file mode 100644
index 0000000..ca37ca7
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0012-Add-SharedArrayRawBufferRefs-to-public-API.patch
@@ -0,0 +1,35 @@
+From ccdd47cee610cb33fa5f67f856a68f5e411c79d5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 31 Oct 2021 18:32:39 +0100
+Subject: [PATCH] Add SharedArrayRawBufferRefs to public API
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Stolen from [1]
+
+[1] https://src.fedoraproject.org/rpms/mozjs78/blob/rawhide/f/FixSharedArray.diff
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ js/public/StructuredClone.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/js/public/StructuredClone.h b/js/public/StructuredClone.h
+index cb3cd5b..06da4dd 100644
+--- a/js/public/StructuredClone.h
++++ b/js/public/StructuredClone.h
+@@ -381,7 +381,7 @@ enum OwnTransferablePolicy {
+ namespace js {
+ class SharedArrayRawBuffer;
+ 
+-class SharedArrayRawBufferRefs {
++class JS_PUBLIC_API SharedArrayRawBufferRefs {
+  public:
+   SharedArrayRawBufferRefs() = default;
+   SharedArrayRawBufferRefs(SharedArrayRawBufferRefs&& other) = default;
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0013-util.configure-fix-one-occasionally-reproduced-confi.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0013-util.configure-fix-one-occasionally-reproduced-confi.patch
new file mode 100644
index 0000000..e943cf1
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0013-util.configure-fix-one-occasionally-reproduced-confi.patch
@@ -0,0 +1,50 @@
+From 430fd956b91c6208f166753578234c2f5db6352f Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 11 Nov 2021 21:17:38 +0800
+Subject: [PATCH] util.configure: fix one occasionally reproduced configure 
+ failure
+
+error:
+| checking whether the C++ compiler supports -Wno-range-loop-analysis...
+| DEBUG: Creating /tmp/conftest.jr1qrcw3.cpp with content:
+| DEBUG: | int
+| DEBUG: | main(void)
+| DEBUG: | {
+| DEBUG: |
+| DEBUG: | ;
+| DEBUG: | return 0;
+| DEBUG: | }
+| DEBUG: Executing: aarch64-wrs-linux-g++ -mcpu=cortex-a53 -march=armv8-a+crc -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/mozjs/91.1.0-r0/recipe-sysroot /tmp/conftest.jr1qrcw3.cpp -Werror -Wrange-loop-analysis -c
+| DEBUG: The command returned non-zero exit status 1.
+| DEBUG: Its error output was:
+...
+| File "/mozjs/91.1.0-r0/firefox-91.1.0/build/moz.configure/util.configure", line 239, in try_invoke_compiler
+| os.remove(path)
+| FileNotFoundError: [Errno 2] No such file or directory: '/tmp/conftest.jr1qrcw3.cpp'
+
+It should be another process that deleted this file by using
+"rm -rf conftest*" inappropriately
+
+Upstream-Status: Submitted [https://bugzilla.mozilla.org/show_bug.cgi?id=1740667]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ build/moz.configure/util.configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/moz.configure/util.configure b/build/moz.configure/util.configure
+index 7ee1a498ad..511e257ad9 100644
+--- a/build/moz.configure/util.configure
++++ b/build/moz.configure/util.configure
+@@ -217,7 +217,7 @@ def try_invoke_compiler(compiler, language, source, flags=None, onerror=None):
+         'C++': '.cpp',
+     }[language]
+ 
+-    fd, path = mkstemp(prefix='conftest.', suffix=suffix, text=True)
++    fd, path = mkstemp(prefix='try_invoke_compiler_conftest.', suffix=suffix, text=True)
+     try:
+         source = source.encode('ascii', 'replace')
+ 
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0014-rewrite-cargo-host-linker-in-python3.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0014-rewrite-cargo-host-linker-in-python3.patch
new file mode 100644
index 0000000..7b93817
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78/0014-rewrite-cargo-host-linker-in-python3.patch
@@ -0,0 +1,56 @@
+From 9eceb43dd676afe2f675bd65ab369ba4d14f6537 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 18 Nov 2021 07:16:39 +0000
+Subject: [PATCH] Rewrite cargo-host-linker in python3
+
+Mozjs compile failed with this failure:
+/bin/sh: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /build/tmp-glibc/work/corei7-64-wrs-linux/mozjs/91.1.0-r0/recipe-sysroot-native/usr/lib/libtinfo.so.5)
+
+Root Cause:
+cargo-host-linker has /bin/sh as it's interpreter, but cargo run the cmd
+with LD_LIBRARY_PATH set to recipe-sysroot-native. The host /bin/sh links
+libtinfo.so.5 under recipe-sysroot-native, which needs higher libc. But
+host libc is older libc. So the incompatible problem occurred.
+
+Solution:
+rewrite cargo-host-linker in python3
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ build/cargo-host-linker | 24 +++++++---
+ 1 file changed, 21 insertions(+), 3 deletions(-)
+
+diff --git a/build/cargo-host-linker b/build/cargo-host-linker
+index cbd0472bf7..ccd8bffec1 100755
+--- a/build/cargo-host-linker
++++ b/build/cargo-host-linker
+@@ -1,3 +1,21 @@
+-#!/bin/sh
+-# See comment in cargo-linker.
+-eval ${MOZ_CARGO_WRAP_HOST_LD} ${MOZ_CARGO_WRAP_HOST_LDFLAGS} '"$@"'
++#!/usr/bin/env python3
++
++import os,sys
++
++if os.environ['MOZ_CARGO_WRAP_HOST_LD'].strip():
++    binary=os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]
++else:
++    sys.exit(0)
++
++if os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS'].strip():
++    if os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:]:
++        args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:] + [os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS']] + sys.argv[1:]
++    else:
++        args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + [os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS']] + sys.argv[1:]
++else:
++    if os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:]:
++        args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:] + sys.argv[1:]
++    else:
++        args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + sys.argv[1:]
++
++os.execvp(binary, args)
+-- 
+2.33.1
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78_78.15.0.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78_78.15.0.bb
new file mode 100644
index 0000000..3700d88
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs-78_78.15.0.bb
@@ -0,0 +1,144 @@
+SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
+HOMEPAGE = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dc9b6ecd19a14a54a628edaaf23733bf"
+
+SRC_URI = " \
+    https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/firefox-${PV}esr.source.tar.xz \
+    file://0001-rust.configure-Skip-all-target-manipulations.patch \
+    file://0002-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch \
+    file://0003-Do-not-check-binaries-after-build.patch \
+    file://0004-Cargo.toml-do-not-abort-on-panic.patch \
+    file://0005-Fixup-compatibility-of-mozbuild-with-Python-3.10.patch \
+    file://0006-use-asm-sgidefs.h.patch \
+    file://0007-fix-musl-build.patch \
+    file://0008-riscv.patch \
+    file://0009-riscv-Disable-atomic-operations.patch \
+    file://0010-riscv-Set-march-correctly.patch \
+    file://0011-replace-include-by-code-to-fix-arm-build.patch \
+    file://0012-Add-SharedArrayRawBufferRefs-to-public-API.patch \
+    file://0013-util.configure-fix-one-occasionally-reproduced-confi.patch \
+    file://0014-rewrite-cargo-host-linker-in-python3.patch \
+"
+
+SRC_URI[sha256sum] = "a4438d84d95171a6d4fea9c9f02c2edbf0475a9c614d968ebe2eedc25a672151"
+S = "${WORKDIR}/firefox-${@d.getVar("PV").replace("esr", "")}"
+
+DEPENDS = " \
+    autoconf-2.13-native \
+    icu-native \
+    cargo-native \
+    zlib \
+    python3-six \
+    python3-six-native \
+"
+
+inherit autotools pkgconfig rust python3native siteinfo
+
+JIT ?= ""
+JIT:mipsarch = "--disable-jit"
+
+EXTRA_OECONF = " \
+    --target=${TARGET_SYS} \
+    --host=${BUILD_SYS} \
+    --prefix=${prefix} \
+    --libdir=${libdir} \
+    --x-includes=${STAGING_INCDIR} \
+    --x-libraries=${STAGING_LIBDIR} \
+    --without-system-icu \
+    --disable-tests --disable-strip --disable-optimize \
+    --disable-jemalloc \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', "--enable-gold", '--disable-gold', d)} \
+    ${JIT} \
+"
+# Note: Python with mozilla build is a mess: E.g: python-six: to get an error
+# free configure we need:
+# * python3-six-native in DEPENDS
+# * python3-six in DEPENDS
+# * path to python-six shipped by mozilla in PYTHONPATH
+prepare_python_and_rust() {
+    if [ ! -f ${B}/PYTHONPATH ]; then
+        oldpath=`pwd`
+        cd ${S}
+        # Add mozjs python-modules necessary
+        PYTHONPATH="${S}/build:${S}/config"
+        PYTHONPATH="$PYTHONPATH:${S}/third_party/python/distro:${S}/third_party/python/jsmin"
+        PYTHONPATH="$PYTHONPATH:${S}/third_party/python/pytoml:${S}/third_party/python/six"
+        PYTHONPATH="$PYTHONPATH:${S}/third_party/python/pyyaml/lib3:${S}/third_party/python/which"
+        for sub_dir in python testing/mozbase; do
+            for module_dir in `ls $sub_dir -1`;do
+                [ $module_dir = "virtualenv" ] && continue
+                if [ -d "${S}/$sub_dir/$module_dir" ];then
+                    PYTHONPATH="$PYTHONPATH:${S}/$sub_dir/$module_dir"
+                fi
+            done
+        done
+        # looks odd but it's huge and we want to see what's in there
+        echo "$PYTHONPATH" > ${B}/PYTHONPATH
+        cd "$oldpath"
+    fi
+
+    export PYTHONPATH=`cat ${B}/PYTHONPATH`
+
+    export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
+    export RUST_TARGET="${TARGET_SYS}"
+    export RUSTFLAGS="${RUSTFLAGS}"
+}
+
+export HOST_CC = "${BUILD_CC}"
+export HOST_CXX = "${BUILD_CXX}"
+export HOST_CFLAGS = "${BUILD_CFLAGS}"
+export HOST_CPPFLAGS = "${BUILD_CPPFLAGS}"
+export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
+# otherwise we are asked for yasm...
+export AS = "${CC}"
+
+CPPFLAGS:append:mips:toolchain-clang = " -fpie"
+CPPFLAGS:append:mipsel:toolchain-clang = " -fpie"
+
+do_configure() {
+    prepare_python_and_rust
+
+    cd ${S}/js/src
+    autoconf213 --macrodir=${STAGING_DATADIR_NATIVE}/autoconf213 old-configure.in > old-configure
+
+    cd ${B}
+    # * use of /tmp can causes problems on heavily loaded hosts
+    # * with mozjs-78 we get without:
+    # | Path specified in LOCAL_INCLUDES (..) resolves to the topsrcdir or topobjdir (<tmpdir>/oe-core-glibc/work/cortexa72-mortsgna-linux/mozjs-78/78.15.0-r0/firefox-78.15.0/js/src), which is not allowed
+    mkdir -p "${B}/lcl_tmp"
+    TMPDIR="${B}/lcl_tmp"  CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" ${S}/js/src/configure ${EXTRA_OECONF}
+
+    # inspired by what fedora [1] does: for big endian rebuild icu dat
+    # this avoids gjs qemu crash on mips at gir creation
+    # [1] https://src.fedoraproject.org/rpms/mozjs78/blob/rawhide/f/mozjs78.spec
+    if [ ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} = "big" -a ! -e ${S}/config/external/icu/data/icudt67b.dat ]; then
+        echo "Do big endian icu dat-convert..."
+        icupkg -tb ${S}/config/external/icu/data/icudt67l.dat ${S}/config/external/icu/data/icudt67b.dat
+        rm -f ${S}/config/external/icu/data/icudt*l.dat
+    fi
+}
+
+do_compile:prepend() {
+    prepare_python_and_rust
+}
+
+do_install:prepend() {
+    prepare_python_and_rust
+}
+
+do_install:append() {
+    # tidy up installation
+    chmod -x ${D}${libdir}/pkgconfig/*.pc
+    sed -i 's:\x24{includedir}/mozjs-78/js/RequiredDefines.h:js/RequiredDefines.h:g' ${D}${libdir}/pkgconfig/*.pc
+
+    rm -f ${D}${libdir}/libjs_static.ajs
+}
+
+ARM_INSTRUCTION_SET:armv5 = "arm"
+ARM_INSTRUCTION_SET:armv4 = "arm"
+
+DISABLE_STATIC = ""
+
+PACKAGES =+ "lib${BPN}"
+FILES:lib${BPN} += "${libdir}/lib*"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs_91.2.0.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs_91.2.0.bb
deleted file mode 100644
index a1a5ddc..0000000
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs_91.2.0.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
-HOMEPAGE = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dc9b6ecd19a14a54a628edaaf23733bf"
-
-SRC_URI = "https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/firefox-${PV}esr.source.tar.xz \
-           file://0001-Cargo.toml-do-not-abort-on-panic.patch \
-           file://0002-moz.configure-do-not-look-for-llvm-objdump.patch \
-           file://0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch \
-           file://0004-use-asm-sgidefs.h.patch \
-           file://fix-musl-build.patch \
-           file://0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch \
-           file://riscv32.patch \
-           file://nojit-32bit-arch-fix.patch \
-           "
-SRC_URI[sha256sum] = "3ef3cfd321d0c2c80ee1b41b8baf7a1ea4daf93c29e1377274933440ff5e42c3"
-
-S = "${WORKDIR}/firefox-${@d.getVar("PV").replace("esr", "")}"
-
-inherit pkgconfig perlnative python3native rust
-
-DEPENDS += "zlib cargo-native python3"
-
-B = "${WORKDIR}/build"
-
-export PYTHONPATH = "${S}/build:${S}/third_party/python/PyYAML/lib3:${S}/testing/mozbase/mozfile:${S}/python/mozboot:${S}/third_party/python/distro:${S}/testing/mozbase/mozinfo:${S}/config:${S}/testing/mozbase/manifestparser:${S}/third_party/python/pytoml:${S}/testing/mozbase/mozprocess:${S}/third_party/python/six:${S}/python/mozbuild:${S}/python/mozbuild/mozbuild:${S}/python/mach:${S}/third_party/python/jsmin:${S}/python/mozversioncontrol"
-
-export HOST_CC = "${BUILD_CC}"
-export HOST_CXX = "${BUILD_CXX}"
-export HOST_CFLAGS = "${BUILD_CFLAGS}"
-export HOST_CPPFLAGS = "${BUILD_CPPFLAGS}"
-export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
-
-export AS = "${CC}"
-
-export RUSTFLAGS
-
-JIT ?= ""
-
-JIT:mipsarch = "--disable-jit"
-
-do_configure() {
-    cd ${B}
-    python3 ${S}/configure.py \
-        --enable-project=js \
-        --target=${HOST_SYS} \
-        --host=${BUILD_SYS} \
-        --prefix=${prefix} \
-        --libdir=${libdir} \
-        --disable-jemalloc \
-        ${JIT}
-
-}
-
-do_install() {
-    oe_runmake 'DESTDIR=${D}' install
-}
-
-inherit multilib_script multilib_header
-
-MULTILIB_SCRIPTS += " ${PN}-dev:${bindir}/js91-config"
-
-do_install:append() {
-       oe_multilib_header mozjs-91/js-config.h
-       sed -e 's@${STAGING_DIR_HOST}@@g' \
-           -i ${D}${bindir}/js91-config
-}
-
-PACKAGES =+ "lib${BPN}-staticdev lib${BPN}"
-FILES:lib${BPN}-staticdev += "${libdir}/libjs_static.ajs"
-FILES:lib${BPN} += "${libdir}/lib*"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-devtools/valijson/valijson_0.6.bb b/meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-devtools/valijson/valijson_0.6.bb
index a57aaf0..1d3daa1 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-devtools/valijson/valijson_0.6.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-devtools/valijson/valijson_0.6.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=015106c62262b2383f6c72063f0998f2"
 
-SRC_URI = "git://github.com/tristanpenman/valijson.git"
+SRC_URI = "git://github.com/tristanpenman/valijson.git;branch=master;protocol=https"
 SRCREV = "2dfc7499a31b84edef71189f4247919268ebc74e"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/rasdaemon_0.6.7.bb b/meta-openembedded/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/rasdaemon_0.6.7.bb
index a68dfa1..464d82f 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/rasdaemon_0.6.7.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/rasdaemon_0.6.7.bb
@@ -3,7 +3,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d3070efe0afa3dc41608bd82c00bb0dc"
 
-SRC_URI = "git://github.com/mchehab/rasdaemon.git;branch=master \
+SRC_URI = "git://github.com/mchehab/rasdaemon.git;branch=master;protocol=https \
            file://0001-Fix-system-header-includes.patch \
            file://rasdaemon.service \
            file://init"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb
index f8f817e..7969af6 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb
@@ -9,7 +9,7 @@
 
 PV = "1.0+git${SRCPV}"
 
-SRC_URI = "git://github.com/ssvb/cpuburn-arm.git \
+SRC_URI = "git://github.com/ssvb/cpuburn-arm.git;branch=master;protocol=https \
            file://0001-cpuburn-a8.S-Remove-.func-.endfunc.patch \
            file://0002-burn.S-Add.patch \
            file://0003-burn.S-Remove-.func-.endfunc.patch \
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.28.bb b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.28.bb
deleted file mode 100644
index 6e4b648..0000000
--- a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.28.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "Filesystem and hardware benchmark and stress tool"
-DESCRIPTION = "fio is an I/O tool meant to be used both for benchmark and \
-stress/hardware verification. It has support for a number of I/O engines, \
-I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, \
-and much more. It can work on block devices as well as files. fio accepts \
-job descriptions in a simple-to-understand text format. Several example job \
-files are included. fio displays all sorts of I/O performance information."
-HOMEPAGE = "http://freecode.com/projects/fio"
-SECTION = "console/tests"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "libaio zlib coreutils-native"
-DEPENDS += "${@bb.utils.contains('MACHINE_FEATURES', 'pmem', 'pmdk', '', d)}"
-RDEPENDS:${PN} = "python3-core bash"
-
-PACKAGECONFIG_NUMA = "numa"
-# ARM does not currently support NUMA
-PACKAGECONFIG_NUMA:arm = ""
-PACKAGECONFIG_NUMA:armeb = ""
-
-PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}"
-PACKAGECONFIG[numa] = ",--disable-numa,numactl"
-
-SRCREV = "d83ac9d3d30d5f5dc6d0e425e4ba945a772839f6"
-SRC_URI = "git://git.kernel.dk/fio.git \
-"
-
-S = "${WORKDIR}/git"
-
-# avoids build breaks when using no-static-libs.inc
-DISABLE_STATIC = ""
-
-EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'"
-EXTRA_OECONF = "${@bb.utils.contains('MACHINE_FEATURES', 'x86', '--disable-optimizations', '', d)}"
-
-do_configure() {
-    ./configure ${EXTRA_OECONF}
-}
-
-do_install() {
-    oe_runmake install DESTDIR=${D} prefix=${prefix} mandir=${mandir}
-    install -d ${D}/${docdir}/${PN}
-    cp -R --no-dereference --preserve=mode,links -v ${S}/examples ${D}/${docdir}/${PN}/
-}
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.29.bb b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.29.bb
new file mode 100644
index 0000000..54e2f33
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.29.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Filesystem and hardware benchmark and stress tool"
+DESCRIPTION = "fio is an I/O tool meant to be used both for benchmark and \
+stress/hardware verification. It has support for a number of I/O engines, \
+I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, \
+and much more. It can work on block devices as well as files. fio accepts \
+job descriptions in a simple-to-understand text format. Several example job \
+files are included. fio displays all sorts of I/O performance information."
+HOMEPAGE = "http://freecode.com/projects/fio"
+SECTION = "console/tests"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "libaio zlib coreutils-native"
+DEPENDS += "${@bb.utils.contains('MACHINE_FEATURES', 'pmem', 'pmdk', '', d)}"
+RDEPENDS:${PN} = "python3-core bash"
+
+PACKAGECONFIG_NUMA = "numa"
+# ARM does not currently support NUMA
+PACKAGECONFIG_NUMA:arm = ""
+PACKAGECONFIG_NUMA:armeb = ""
+
+PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}"
+PACKAGECONFIG[numa] = ",--disable-numa,numactl"
+
+SRCREV = "9b46661c289d01dbfe5182189a7abea9ce2f9e04"
+SRC_URI = "git://git.kernel.dk/fio.git;branch=master \
+"
+
+S = "${WORKDIR}/git"
+
+# avoids build breaks when using no-static-libs.inc
+DISABLE_STATIC = ""
+
+EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'"
+EXTRA_OECONF = "${@bb.utils.contains('MACHINE_FEATURES', 'x86', '--disable-optimizations', '', d)}"
+
+do_configure() {
+    ./configure ${EXTRA_OECONF}
+}
+
+do_install() {
+    oe_runmake install DESTDIR=${D} prefix=${prefix} mandir=${mandir}
+    install -d ${D}/${docdir}/${PN}
+    cp -R --no-dereference --preserve=mode,links -v ${S}/examples ${D}/${docdir}/${PN}/
+}
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
index 5e99e9e..2a8ce54 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
@@ -11,14 +11,14 @@
 DEPENDS = "libpng jpeg udev"
 DEPENDS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland-native wayland-protocols', '', d)}"
 
-PV = "2021.02+${SRCPV}"
+PV = "2021.12"
 
 SRC_URI = " \
-    git://github.com/glmark2/glmark2.git;protocol=https \
+    git://github.com/glmark2/glmark2.git;protocol=https;branch=master \
     file://0001-fix-dispmanx-build.patch \
     file://0002-run-dispmanx-fullscreen.patch \
     "
-SRCREV = "4b2bbe803576d48f08367aa5441740f9319c21e7"
+SRCREV = "0858b450cd88c84a15b99dda9698d44e7f7e8c70"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.9.bb b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.9.bb
index be75837..47bf4d5 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.9.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.9.bb
@@ -11,7 +11,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b7fb682e9941a49f1214dcd7441410d7"
 
-SRC_URI = "git://github.com/esnet/iperf.git \
+SRC_URI = "git://github.com/esnet/iperf.git;branch=master;protocol=https \
            file://0002-Remove-pg-from-profile_CFLAGS.patch \
            file://0001-configure.ac-check-for-CPP-prog.patch \
            "
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb
index f16bd99..17bbb9b 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb
@@ -9,7 +9,7 @@
 SRCREV = "b6b2ce5f9f87a09b14499cb00c600c601f022634"
 PV = "20110206+git${SRCPV}"
 
-SRC_URI = "git://git.musl-libc.org/libc-bench \
+SRC_URI = "git://git.musl-libc.org/libc-bench;branch=master \
            file://0001-build-Do-not-override-ldflags-from-environment.patch \
            "
 
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
index cfdf420..be131cd 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
@@ -12,7 +12,7 @@
 
 SRCREV = "6b126a4d7da9490fa40fe7e1b962edcb939feddc"
 SRC_URI = " \
-    git://github.com/libhugetlbfs/libhugetlbfs.git;protocol=https \
+    git://github.com/libhugetlbfs/libhugetlbfs.git;protocol=https;branch=master \
     file://skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch \
     file://libhugetlbfs-avoid-search-host-library-path-for-cros.patch \
     file://tests-Makefile-install-static-4G-edge-testcases.patch \
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/linpack/linpack/0001-linpack-Define-DP-only-when-SP-is-not-defined.patch b/meta-openembedded/meta-oe/recipes-benchmark/linpack/linpack/0001-linpack-Define-DP-only-when-SP-is-not-defined.patch
new file mode 100644
index 0000000..4eb18e3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/linpack/linpack/0001-linpack-Define-DP-only-when-SP-is-not-defined.patch
@@ -0,0 +1,32 @@
+From f092d4be22acd09e791187b8e9bff6d312721ce4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 10 Nov 2021 11:36:31 -0800
+Subject: [PATCH] linpack: Define DP only when SP is not defined
+
+This helps compiling two versions ( SP/FP ) of the benchmark just by
+passing -DSP on compile cmdline
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ linpacknew.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/linpacknew.c b/linpacknew.c
+index 17b2824..c656082 100644
+--- a/linpacknew.c
++++ b/linpacknew.c
+@@ -28,7 +28,9 @@
+ #include <time.h>
+ #include <float.h>
+ 
++#ifndef SP
+ #define DP
++#endif
+ 
+ #ifdef SP
+ #define ZERO        0.0
+-- 
+2.33.1
+
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb b/meta-openembedded/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb
index aed95cd..603004d 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb
@@ -4,17 +4,21 @@
 LICENSE = "PD"
 LIC_FILES_CHKSUM ="file://${WORKDIR}/linpacknew.c;beginline=1;endline=23;md5=aa025e3bc44190c71e4c5e3b084fed87"
 
-SRC_URI = "http://www.netlib.org/benchmark/linpackc.new;downloadfilename=linpacknew.c"
+SRC_URI = "http://www.netlib.org/benchmark/linpackc.new;downloadfilename=linpacknew.c \
+           file://0001-linpack-Define-DP-only-when-SP-is-not-defined.patch \
+          "
 SRC_URI[md5sum] = "1c5d0b6a31264685d2e651c920e3cdf4"
 SRC_URI[sha256sum] = "a63f2ec86512959f1fd926bfafb85905b2d7b7402942ffae3af374d48745e97e"
 
 S = "${WORKDIR}"
 
 do_compile () {
-	${CC} ${CFLAGS} ${LDFLAGS} -o linpack linpacknew.c -lm
+	${CC} ${CFLAGS} ${LDFLAGS} -DDP -o linpack_dp linpacknew.c -lm
+	${CC} ${CFLAGS} ${LDFLAGS} -DSP -o linpack_sp linpacknew.c -lm
 }
 
 do_install () {
-	install -Dm 0755 linpack ${D}${bindir}/linpack
+	install -Dm 0755 linpack_dp ${D}${bindir}/linpack_dp
+	install -Dm 0755 linpack_sp ${D}${bindir}/linpack_sp
 }
 
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/mbw/mbw_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/mbw/mbw_git.bb
index 5ed726d..3738036 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/mbw/mbw_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/mbw/mbw_git.bb
@@ -4,7 +4,7 @@
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://mbw.spec;beginline=1;endline=10;md5=bbb77813272134a5c461f71abe945bef"
 
-SRC_URI = "git://github.com/raas/${BPN}.git"
+SRC_URI = "git://github.com/raas/${BPN}.git;branch=master;protocol=https"
 
 SRCREV = "2a15026ff65160127204881263464b1740a57198"
 
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.9.bb b/meta-openembedded/meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.9.bb
index a2966e9..d30ea5a 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.9.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.9.bb
@@ -11,7 +11,7 @@
 
 SRCREV = "fb72e5e5f0879231f38e0e826a98a6ca2d1ca38e"
 
-SRC_URI = "git://github.com/stressapptest/stressapptest \
+SRC_URI = "git://github.com/stressapptest/stressapptest;branch=master;protocol=https \
            file://libcplusplus-compat.patch \
            file://read_sysfs_for_cachesize.patch \
           "
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb
index 0607da8..025aacf 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb
@@ -9,7 +9,7 @@
 PV = "0.4.9+git${SRCPV}"
 
 SRCREV = "a2cf6d7e382e3aea1eb39173174d9fa28cad15f3"
-SRC_URI = "git://github.com/ssvb/tinymembench.git \
+SRC_URI = "git://github.com/ssvb/tinymembench.git;branch=master;protocol=https \
            file://0001-asm-Delete-.func-.endfunc-directives.patch \
            "
 
diff --git a/meta-openembedded/meta-oe/recipes-bsp/con2fbmap/con2fbmap_git.bb b/meta-openembedded/meta-oe/recipes-bsp/con2fbmap/con2fbmap_git.bb
index 45203f0..2edb7c3 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/con2fbmap/con2fbmap_git.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/con2fbmap/con2fbmap_git.bb
@@ -9,7 +9,7 @@
 DEPENDS = ""
 
 SRCREV = "61ed2f28b294b1ebeb767df8cb5fcd391709c8e2"
-SRC_URI = "git://gitlab.com/pibox/con2fbmap.git;protocol=https"
+SRC_URI = "git://gitlab.com/pibox/con2fbmap.git;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb b/meta-openembedded/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb
index d61a871..ff41459 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb
@@ -10,7 +10,7 @@
 SRCREV = "a2f0c39d5f21596bb9f5223e895c0ff210b265d0"
 # SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/cpufreq/cpufrequtils.git
 
-SRC_URI = "git://github.com/emagii/cpufrequtils.git \
+SRC_URI = "git://github.com/emagii/cpufrequtils.git;branch=master;protocol=https \
            file://0001-dont-unset-cflags.patch \
 "
 
@@ -22,7 +22,7 @@
 
 TARGET_CC_ARCH += "${LDFLAGS}"
 
-EXTRA_OEMAKE = "V=1 CROSS=${TARGET_PREFIX} LIBTOOL='${HOST_SYS}-libtool --tag cc' STRIPCMD=echo 'CP=cp'"
+EXTRA_OEMAKE = "V=1 CROSS=${TARGET_PREFIX} STRIPCMD=echo 'CP=cp'"
 
 do_compile() {
     oe_runmake
diff --git a/meta-openembedded/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb b/meta-openembedded/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb
index 914718c..5d61649 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb
@@ -11,7 +11,7 @@
 
 S = "${WORKDIR}/git"
 
-SRC_URI = "git://github.com/grondo/edac-utils \
+SRC_URI = "git://github.com/grondo/edac-utils;branch=master;protocol=https \
     file://make-init-script-be-able-to-automatically-load-EDAC-.patch \
     file://add-restart-to-initscript.patch \
     file://edac.service \
diff --git a/meta-openembedded/meta-oe/recipes-bsp/firmwared/firmwared_git.bb b/meta-openembedded/meta-oe/recipes-bsp/firmwared/firmwared_git.bb
index 186bc19..e8b491a 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/firmwared/firmwared_git.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/firmwared/firmwared_git.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE-APACHE;md5=7b486c2338d225a1405d979ed2c15ce8 \
                     file://COPYING;md5=daa868b8e1ae17d03228a1145b4060da"
 
-SRC_URI = "git://github.com/teg/firmwared.git \
+SRC_URI = "git://github.com/teg/firmwared.git;branch=master;protocol=https \
            file://firmwared.service"
 
 PV = "0+git${SRCPV}"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd-efi/cc.patch b/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd-efi/cc.patch
new file mode 100644
index 0000000..ac345f2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd-efi/cc.patch
@@ -0,0 +1,53 @@
+Change the efi-cc argument to take an array, so that we can pass compiler flags
+such as --sysroot.
+
+In the long term changing the fwupd-efi build to use the standard Meson
+CC/LD/etc would be the preferred fix.
+
+Upstream-Status: Inappropriate [better fix in progress]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/efi/generate_sbat.py b/efi/generate_sbat.py
+index e42b365..4831a48 100755
+--- a/efi/generate_sbat.py
++++ b/efi/generate_sbat.py
+@@ -7,6 +7,7 @@
+ #
+ # pylint: disable=missing-docstring, invalid-name
+ 
++import shlex
+ import subprocess
+ import sys
+ import argparse
+@@ -19,7 +20,7 @@ def _generate_sbat(args):
+     FWUPD_URL = "https://github.com/fwupd/fwupd"
+ 
+     subprocess.run(
+-        [args.cc, "-x", "c", "-c", "-o", args.outfile, "/dev/null"], check=True
++        shlex.split(args.cc) + ["-x", "c", "-c", "-o", args.outfile, "/dev/null"], check=True
+     )
+ 
+     # not specified
+diff --git a/efi/meson.build b/efi/meson.build
+index 68ea4aa..dcf0d43 100644
+--- a/efi/meson.build
++++ b/efi/meson.build
+@@ -184,7 +184,7 @@ o_file5 = custom_target('fwup-sbat.o',
+                         command : [
+                           join_paths(meson.current_source_dir(), 'generate_sbat.py'),
+                           '@OUTPUT@',
+-                          '--cc', efi_cc,
++                          '--cc', ' '.join(efi_cc),
+                           '--objcopy', efi_objcopy,
+                           '--project-name', meson.project_name(),
+                           '--project-version', meson.project_version(),
+diff --git a/meson_options.txt b/meson_options.txt
+index d869cd2..17ef7fb 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,4 +1,4 @@
+-option('efi-cc', type : 'string', value : 'gcc', description : 'the compiler to use for EFI modules')
++option('efi-cc', type : 'array', value : ['gcc'], description : 'the compiler to use for EFI modules')
+ option('efi-ld', type : 'string', value : 'ld', description : 'the linker to use for EFI modules')
+ option('efi-objcopy', type : 'string', value : 'objcopy', description : 'the objcopy utility to use for EFI modules')
+ option('efi-libdir', type : 'string', description : 'path to the EFI lib directory')
diff --git a/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd-efi_1.1.bb b/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd-efi_1.1.bb
new file mode 100644
index 0000000..2165b42
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd-efi_1.1.bb
@@ -0,0 +1,34 @@
+SUMMARY = "EFI executable for fwupd"
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "git://github.com/fwupd/fwupd-efi;protocol=https;branch=main \
+           file://cc.patch"
+SRCREV = "fee1b8f6473cb403b8ae7a56961ba0557e3f3efa"
+S = "${WORKDIR}/git"
+
+DEPENDS = "gnu-efi"
+
+COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
+
+inherit meson
+
+# These should be configured as needed
+SBAT_DISTRO_ID ?= "${DISTRO}"
+SBAT_DISTRO_SUMMARY ?= "${DISTRO_NAME}"
+SBAT_DISTRO_URL ?= ""
+
+EXTRA_OEMESON += "-Defi-cc="${@meson_array('CC', d)}" \
+                  -Defi-ld='${HOST_PREFIX}ld' \
+                  -Defi-objcopy='${OBJCOPY}' \
+                  -Defi-includedir=${STAGING_INCDIR}/efi \
+                  -Defi-libdir=${STAGING_LIBDIR} \
+                  -Defi_sbat_distro_id='${SBAT_DISTRO_ID}' \
+                  -Defi_sbat_distro_summary='${SBAT_DISTRO_SUMMARY}' \
+                  -Defi_sbat_distro_url='${SBAT_DISTRO_URL}' \
+                  -Defi_sbat_distro_pkgname='${PN}' \
+                  -Defi_sbat_distro_version='${PV}'\
+                  "
+
+# The compile assumes GCC at present
+TOOLCHAIN = "gcc"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd/run-ptest b/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd/run-ptest
new file mode 100755
index 0000000..dbc0fc3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd/run-ptest
@@ -0,0 +1,6 @@
+#! /bin/sh
+
+# Don't run all of the fwupd tests, as fwupd/fwupdmgr.test needs a custom
+# /etc/fwupd/daemon.conf with DisabledPlugins unset.
+
+gnome-desktop-testing-runner fwupd/fwupd.test
diff --git a/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd_1.7.3.bb b/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd_1.7.3.bb
new file mode 100644
index 0000000..b02e8ca
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd_1.7.3.bb
@@ -0,0 +1,121 @@
+SUMMARY = "A simple daemon to allow session software to update firmware"
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "glib-2.0 libxmlb json-glib sqlite3 libjcat gcab vala-native"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz \
+           file://run-ptest"
+SRC_URI[sha256sum] = "109dacc16ed0db71eb08b852e96b070b8c2c53516a3071b9d0683acd8ecd42d9"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+
+# Machine-specific as we examine MACHINE_FEATURES to decide whether to build the UEFI plugins
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit meson vala gobject-introspection systemd bash-completion pkgconfig gi-docgen ptest manpages
+
+GIDOCGEN_MESON_OPTION = 'docs'
+GIDOCGEN_MESON_ENABLE_FLAG = 'docgen'
+GIDOCGEN_MESON_DISABLE_FLAG = 'none'
+
+PACKAGECONFIG ??= "curl gnutls gudev gusb \
+                   ${@bb.utils.filter('DISTRO_FEATURES', 'bluetooth polkit', d)} \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd offline', '', d)} \
+                   ${@bb.utils.contains('MACHINE_FEATURES', 'efi', 'plugin_uefi_capsule plugin_uefi_pk', '', d)} \
+                   ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests plugin_dummy', '', d)} \
+                   hsi \
+                   plugin_acpi_phat \
+                   plugin_amt \
+                   plugin_bcm57xx \
+                   plugin_emmc \
+                   plugin_ep963x \
+                   plugin_fastboot \
+                   plugin_flashrom \
+                   plugin_intel_spi \
+                   plugin_logitech_bulkcontroller \
+                   plugin_modem_manager \
+                   plugin_msr \
+                   plugin_nitrokey \
+                   plugin_nvme \
+                   plugin_parade_lspcon \
+                   plugin_pixart_rf \
+                   plugin_platform_integrity \
+                   plugin_realtek_mst \
+                   plugin_redfish \
+                   plugin_synaptics_mst \
+                   plugin_synaptics_rmi \
+                   plugin_thunderbolt \
+                   plugin_upower \
+                   sqlite"
+
+PACKAGECONFIG[bluetooth] = "-Dbluez=true,-Dbluez=false"
+PACKAGECONFIG[compat-cli] = "-Dcompat_cli=true,-Dcompat_cli=false"
+PACKAGECONFIG[consolekit] = "-Dconsolekit=true,-Dconsolekit=false,consolekit"
+PACKAGECONFIG[curl] = "-Dcurl=true,-Dcurl=false,curl"
+PACKAGECONFIG[firmware-packager] = "-Dfirmware-packager=true,-Dfirmware-packager=false"
+PACKAGECONFIG[fish-completion] = "-Dfish_completion=true,-Dfish_completion=false"
+PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls"
+PACKAGECONFIG[gudev] = "-Dgudev=true,-Dgudev=false,libgudev"
+PACKAGECONFIG[gusb] = "-Dgusb=true,-Dgusb=false,libgusb"
+PACKAGECONFIG[hsi] = "-Dhsi=true,-Dhsi=false"
+PACKAGECONFIG[libarchive] = "-Dlibarchive=true,-Dlibarchive=false,libarchive"
+PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false"
+PACKAGECONFIG[metainfo] = "-Dmetainfo=true,-Dmetainfo=false"
+PACKAGECONFIG[offline] = "-Doffline=true,-Doffline=false"
+PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false,polkit"
+PACKAGECONFIG[sqlite] = "-Dsqlite=true,-Dsqlite=false,sqlite3"
+PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,gcab-native"
+
+
+# TODO plugins-all meta-option that expands to all plugin_*?
+PACKAGECONFIG[plugin_acpi_phat] = "-Dplugin_acpi_phat=true,-Dplugin_acpi_phat=false"
+PACKAGECONFIG[plugin_amt] = "-Dplugin_amt=true,-Dplugin_amt=false"
+PACKAGECONFIG[plugin_bcm57xx] = "-Dplugin_bcm57xx=true,-Dplugin_bcm57xx=false"
+PACKAGECONFIG[plugin_cfu] = "-Dplugin_cfu=true,-Dplugin_cfu=false"
+PACKAGECONFIG[plugin_dell] = "-Dplugin_dell=true,-Dplugin_dell=false,libsmbios"
+PACKAGECONFIG[plugin_dummy] = "-Dplugin_dummy=true,-Dplugin_dummy=false"
+PACKAGECONFIG[plugin_emmc] = "-Dplugin_emmc=true,-Dplugin_emmc=false"
+PACKAGECONFIG[plugin_ep963x] = "-Dplugin_ep963x=true,-Dplugin_ep963x=false"
+PACKAGECONFIG[plugin_fastboot] = "-Dplugin_fastboot=true,-Dplugin_fastboot=false"
+PACKAGECONFIG[plugin_flashrom] = "-Dplugin_flashrom=true,-Dplugin_flashrom=false,flashrom"
+PACKAGECONFIG[plugin_intel_spi] = "-Dplugin_intel_spi=true -Dlzma=true,-Dplugin_intel_spi=false -Dlzma=false,xz"
+PACKAGECONFIG[plugin_logitech_bulkcontroller] = "-Dplugin_logitech_bulkcontroller=true,-Dplugin_logitech_bulkcontroller=false,protobuf-c-native protobuf-c"
+PACKAGECONFIG[plugin_modem_manager] = "-Dplugin_modem_manager=true,-Dplugin_modem_manager=false,libqmi modemmanager"
+PACKAGECONFIG[plugin_msr] = "-Dplugin_msr=true,-Dplugin_msr=false,cpuid"
+PACKAGECONFIG[plugin_nitrokey] = "-Dplugin_nitrokey=true,-Dplugin_nitrokey=false"
+PACKAGECONFIG[plugin_nvme] = "-Dplugin_nvme=true,-Dplugin_nvme=false"
+PACKAGECONFIG[plugin_parade_lspcon] = "-Dplugin_parade_lspcon=true,-Dplugin_parade_lspcon=false"
+PACKAGECONFIG[plugin_pixart_rf] = "-Dplugin_pixart_rf=true,-Dplugin_pixart_rf=false"
+PACKAGECONFIG[plugin_platform_integrity] = "-Dplugin_platform_integrity=true,-Dplugin_platform_integrity=false"
+PACKAGECONFIG[plugin_powerd] = "-Dplugin_powerd=true,-Dplugin_powerd=false"
+PACKAGECONFIG[plugin_realtek_mst] = "-Dplugin_realtek_mst=true,-Dplugin_realtek_mst=false"
+PACKAGECONFIG[plugin_redfish] = "-Dplugin_redfish=true,-Dplugin_redfish=false"
+PACKAGECONFIG[plugin_synaptics_mst] = "-Dplugin_synaptics_mst=true,-Dplugin_synaptics_mst=false"
+PACKAGECONFIG[plugin_synaptics_rmi] = "-Dplugin_synaptics_rmi=true,-Dplugin_synaptics_rmi=false"
+PACKAGECONFIG[plugin_thunderbolt] = "-Dplugin_thunderbolt=true,-Dplugin_thunderbolt=false"
+PACKAGECONFIG[plugin_tpm] = "-Dplugin_tpm=true,-Dplugin_tpm=false,tpm2-tss"
+# Turn off the capsule splash as it needs G-I at buildtime, which isn't currently supported
+PACKAGECONFIG[plugin_uefi_capsule] = "-Dplugin_uefi_capsule=true -Dplugin_uefi_capsule_splash=false,-Dplugin_uefi_capsule=false,efivar fwupd-efi"
+PACKAGECONFIG[plugin_uefi_pk] = "-Dplugin_uefi_pk=true,-Dplugin_uefi_pk=false"
+PACKAGECONFIG[plugin_upower] = "-Dplugin_upower=true,-Dplugin_upower=false"
+
+# Always disable these plugins on non-x86 platforms as they don't compile or are useless
+DISABLE_NON_X86 = "plugin_amt plugin_intel_spi plugin_msr plugin_thunderbolt"
+DISABLE_NON_X86:x86 = ""
+DISABLE_NON_X86:x86-64 = ""
+PACKAGECONFIG:remove = "${DISABLE_NON_X86}"
+
+FILES:${PN} += "${libdir}/fwupd-plugins-* \
+                ${systemd_unitdir} \
+                ${datadir}/fish \
+                ${datadir}/metainfo \
+                ${datadir}/icons \
+                ${datadir}/dbus-1 \
+                ${datadir}/polkit-1 \
+                ${nonarch_libdir}/modules-load.d"
+
+FILES:${PN}-ptest += "${libexecdir}/installed-tests/ \
+                      ${datadir}/installed-tests/"
+RDEPENDS:${PN}-ptest += "gnome-desktop-testing"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/ledmon/ledmon_git.bb b/meta-openembedded/meta-oe/recipes-bsp/ledmon/ledmon_git.bb
index 66da182..f1c859d 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/ledmon/ledmon_git.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/ledmon/ledmon_git.bb
@@ -16,7 +16,7 @@
 SYSTEMD_SERVICE:${PN} = "ledmon.service"
 
 # 0.93
-SRC_URI = "git://github.com/intel/ledmon;branch=master \
+SRC_URI = "git://github.com/intel/ledmon;branch=master;protocol=https \
            file://0002-include-sys-select.h-and-sys-types.h.patch \
            file://0001-Don-t-build-with-Werror-to-fix-compile-error.patch \
           "
diff --git a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb
index b6ae3cd..55e303f 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb
@@ -10,7 +10,7 @@
     virtual/libiconv \
 "
 
-SRC_URI = "git://github.com/lm-sensors/lm-sensors.git;protocol=https \
+SRC_URI = "git://github.com/lm-sensors/lm-sensors.git;protocol=https;branch=master \
            file://fancontrol.init \
            file://sensord.init \
            file://0001-Change-PIDFile-path-from-var-run-to-run.patch \
diff --git a/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.13.bb b/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.13.bb
index e1a98db..7f087da 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.13.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.13.bb
@@ -7,7 +7,7 @@
 DEPENDS = "util-linux"
 PV .= "+git${SRCPV}"
 
-SRC_URI = "git://github.com/linux-nvme/nvme-cli.git"
+SRC_URI = "git://github.com/linux-nvme/nvme-cli.git;branch=master;protocol=https"
 SRCREV = "f0e9569df9289d6ee55ba2c23615cc7c73a9b088"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb
deleted file mode 100644
index c355dad..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb
+++ /dev/null
@@ -1,68 +0,0 @@
-SUMMARY = "GNU All Mobile Managment Utilities"
-SECTION = "console/network"
-DEPENDS = "cmake-native virtual/libiconv libdbi mysql5 glib-2.0 udev libgudev unixodbc"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a17cb0a873d252440acfdf9b3d0e7fbf"
-HOMEPAGE = "http://www.gammu.org/"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}/${PV}/${BP}.tar.bz2 \
-    file://gammurc \
-    file://gammu-smsdrc \
-"
-
-SRC_URI[md5sum] = "8ea16c6b3cc48097a8e62311fe0e25b9"
-SRC_URI[sha256sum] = "de67caa102aa4c8fbed5300e5a0262e40411c4cc79f4379a8d34eed797968fc3"
-
-inherit distutils3 cmake gettext
-
-do_install:append() {
-    # these files seem to only be used by symbian and trigger QA warnings
-    rm -rf ${D}/usr/share/gammu
-    #install default configuration files
-    install -d ${D}${sysconfdir}
-    install -m 0644 ${WORKDIR}/gammurc ${D}${sysconfdir}/gammurc
-    install -m 0644 ${WORKDIR}/gammu-smsdrc ${D}${sysconfdir}/gammu-smsdrc
-}
-
-EXTRA_OECONF = " \
-    --enable-shared \
-    --enable-backup \
-    --enable-protection \
-"
-
-EXTRA_OECMAKE = " \
-    -DWITH_CURL=OFF \
-    -DWITH_BLUETOOTH=OFF \
-    -DWITH_NOKIA_SUPPORT=OFF \
-    -DWITH_IRDA=OFF \
-    -DWITH_PYTHON=OFF \
-    -DWITH_MySQL=ON \
-    -DWITH_Postgres=OFF \
-"
-
-PACKAGES =+ "${PN}-smsd libgammu libgsmsd python-${PN}"
-
-FILES:${PN} = "${bindir}/gammu ${bindir}/jadmaker ${sysconfdir}/bash_completion.d/gammu \
-    ${bindir}/gammu-detect ${sysconfdir}/gammurc"
-CONFFILES:${PN} = "${sysconfdir}/gammurc"
-FILES:${PN}-smsd = "${bindir}/gammu-smsd* ${sysconfdir}/gammu-smsdrc"
-CONFFILES:${PN}-smsd = "${sysconfdir}/gammu-smsdrc"
-FILES:${PN}-dev += "${bindir}/gammu-config ${libdir}/*.so"
-FILES:${PN}-dbg += "${bindir}/.debug ${libdir}/.debug ${PYTHON_SITEPACKAGES_DIR}/gammu/.debug"
-FILES:libgammu = "${libdir}/libGammu.so.*"
-FILES:libgsmsd = "${libdir}/libgsmsd.so.*"
-FILES:python-${PN} = "${PYTHON_SITEPACKAGES_DIR}/gammu/*.??"
-
-RDEPENDS:${PN} += "bash"
-RDEPENDS:${PN}-dev += "bash"
-
-# Fails to build with thumb-1 (qemuarm)
-# gammu-1.32.0/libgammu/service/sms/gsmems.c:542:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275
-# |  }
-# |  ^
-# | Please submit a full bug report,
-# | with preprocessed source if appropriate.
-# | See <http://gcc.gnu.org/bugs.html> for instructions.
-# | make[2]: *** [libgammu/CMakeFiles/libGammu.dir/service/sms/gsmems.o] Error 1
-# | make[2]: *** Waiting for unfinished jobs....
-ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.42.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.42.0.bb
new file mode 100644
index 0000000..ce78fde
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.42.0.bb
@@ -0,0 +1,68 @@
+SUMMARY = "GNU All Mobile Managment Utilities"
+SECTION = "console/network"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+HOMEPAGE = "https://wammu.eu/"
+
+SRC_URI = "https://dl.cihar.com/${BPN}/releases/${BP}.tar.xz \
+    file://gammurc \
+    file://gammu-smsdrc \
+"
+
+SRC_URI[sha256sum] = "d8f152314d7e4d3d643610d742845e0a016ce97c234ad4b1151574e1b09651ee"
+
+UPSTREAM_CHECK_URI = "https://dl.cihar.com/${BPN}/releases"
+
+DEPENDS = "cmake-native virtual/libiconv libdbi mysql5 glib-2.0 udev libgudev unixodbc"
+
+inherit cmake gettext
+
+do_install:append() {
+    # these files seem to only be used by symbian and trigger QA warnings
+    rm -rf ${D}/usr/share/gammu
+    #install default configuration files
+    install -d ${D}${sysconfdir}
+    install -m 0644 ${WORKDIR}/gammurc ${D}${sysconfdir}/gammurc
+    install -m 0644 ${WORKDIR}/gammu-smsdrc ${D}${sysconfdir}/gammu-smsdrc
+}
+
+EXTRA_OECONF = " \
+    --enable-shared \
+    --enable-backup \
+    --enable-protection \
+"
+
+EXTRA_OECMAKE = " \
+    -DWITH_CURL=OFF \
+    -DWITH_BLUETOOTH=OFF \
+    -DWITH_NOKIA_SUPPORT=OFF \
+    -DWITH_IRDA=OFF \
+    -DWITH_MySQL=ON \
+    -DWITH_Postgres=OFF \
+"
+
+PACKAGES =+ "${PN}-smsd libgammu libgsmsd"
+
+FILES:${PN} = "${bindir}/gammu ${bindir}/jadmaker ${sysconfdir}/bash_completion.d/gammu \
+    ${bindir}/gammu-detect ${sysconfdir}/gammurc"
+CONFFILES:${PN} = "${sysconfdir}/gammurc"
+FILES:${PN}-smsd = "${bindir}/gammu-smsd* ${sysconfdir}/gammu-smsdrc"
+CONFFILES:${PN}-smsd = "${sysconfdir}/gammu-smsdrc"
+FILES:${PN}-dev += "${bindir}/gammu-config ${libdir}/*.so"
+FILES:${PN}-dbg += "${bindir}/.debug ${libdir}/.debug"
+FILES:libgammu = "${libdir}/libGammu.so.*"
+FILES:libgsmsd = "${libdir}/libgsmsd.so.*"
+
+RDEPENDS:${PN} += "bash"
+RDEPENDS:${PN}-dev += "bash"
+
+# Fails to build with thumb-1 (qemuarm)
+# gammu-1.32.0/libgammu/service/sms/gsmems.c:542:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275
+# |  }
+# |  ^
+# | Please submit a full bug report,
+# | with preprocessed source if appropriate.
+# | See <http://gcc.gnu.org/bugs.html> for instructions.
+# | make[2]: *** [libgammu/CMakeFiles/libGammu.dir/service/sms/gsmems.o] Error 1
+# | make[2]: *** Waiting for unfinished jobs....
+ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gammu/python3-gammu/0001-setup.py-StrictVersion-packaging.version.patch b/meta-openembedded/meta-oe/recipes-connectivity/gammu/python3-gammu/0001-setup.py-StrictVersion-packaging.version.patch
new file mode 100644
index 0000000..23fe444
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gammu/python3-gammu/0001-setup.py-StrictVersion-packaging.version.patch
@@ -0,0 +1,49 @@
+From 96e8f0b2d13e890d9ffff8673f18dcc94290efb2 Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Thu, 13 Jan 2022 20:06:33 -0600
+Subject: [PATCH] setup.py: StrictVersion -> packaging.version.*
+
+distutils is deprecated in Python 3.10 and will be removed in Python
+3.12 [1]
+
+The recommended replacement for distutils.version is to use
+packaging.version
+
+StrictVersion can be replaced by packaging.version.Version and helpers
+like packaging.version.parse()
+
+[1] https://www.python.org/dev/peps/pep-0632/
+[2] https://packaging.pypa.io/en/latest/version.html
+
+Upstream-Status: Submitted [https://github.com/gammu/python-gammu/pull/67]
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ setup.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index a458181..bffb09d 100755
+--- a/setup.py
++++ b/setup.py
+@@ -30,7 +30,7 @@ import os
+ import platform
+ import subprocess
+ import sys
+-from distutils.version import StrictVersion
++from packaging.version import parse, Version
+ 
+ from setuptools import Extension, setup
+ 
+@@ -112,9 +112,9 @@ class GammuConfig:
+         with open(self.config_path(self.path)) as handle:
+             for line in handle:
+                 if line.startswith("#define GAMMU_VERSION "):
+-                    version = line.split('"')[1]
++                    version = parse(line.split('"')[1])
+ 
+-        if version is None or StrictVersion(version) < StrictVersion(GAMMU_REQUIRED):
++        if version is None or version < parse(GAMMU_REQUIRED):
+             print("Too old Gammu version, please upgrade!")
+             sys.exit(100)
+ 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gammu/python3-gammu_3.2.4.bb b/meta-openembedded/meta-oe/recipes-connectivity/gammu/python3-gammu_3.2.4.bb
new file mode 100644
index 0000000..1fdb76e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gammu/python3-gammu_3.2.4.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Gammu bindings for Python"
+DESCRIPTION ="Python bindings for the Gammu library."
+HOMEPAGE = "https://wammu.eu/python-gammu/"
+BUGRACKER = "https://github.com/gammu/python-gammu/issues"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+PYPI_PACKAGE = "python-gammu"
+
+inherit pypi setuptools3 pkgconfig
+
+SRC_URI += "file://0001-setup.py-StrictVersion-packaging.version.patch"
+SRC_URI[sha256sum] = "49fc70f01bc192c43ff3ec815e082df5261ea4c8d36a695e977734c4eb4df868"
+
+S = "${WORKDIR}/python-gammu-${PV}"
+
+DEPENDS += "gammu python3-packaging-native"
+
+RDEPENDS:${PN} += "python3-asyncio python3-core python3-threading"
+
+RRECOMMENDS:${PN} += "gammu"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb
index ea4f4d5..3fe4c94 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb
@@ -9,7 +9,7 @@
 
 PV = "0.2+git${SRCPV}"
 
-SRC_URI = "git://github.com/labapart/gattlib.git \
+SRC_URI = "git://github.com/labapart/gattlib.git;branch=master;protocol=https \
            file://dbus-avoid-strange-chars-from-the-build-dir.patch \
            "
 
@@ -23,6 +23,7 @@
 # Set this to force use of DBus API if Bluez version is older than 5.42
 PACKAGECONFIG[force-dbus] = "-DGATTLIB_FORCE_DBUS=TRUE,-DGATTLIB_FORCE_DBUS=FALSE"
 
+EXTRA_OECMAKE += "-DGATTLIB_PYTHON_INTERFACE=OFF"
 EXTRA_OECMAKE += "-DGATTLIB_BUILD_DOCS=OFF"
 
 inherit pkgconfig cmake
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.3.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.3.1.bb
index 6d10bfc..876cf13 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.3.1.bb
@@ -7,7 +7,7 @@
 
 SRCREV = "c500d8705c517f96e591c060105a789f053d2b7a"
 
-SRC_URI = "git://github.com/cminyard/gensio;protocol=https"
+SRC_URI = "git://github.com/cminyard/gensio;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd/0001-netconfig-Use-s6_addr-instead-of-__in6_u.__u6_addr8.patch b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd/0001-netconfig-Use-s6_addr-instead-of-__in6_u.__u6_addr8.patch
deleted file mode 100644
index a9f2393..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd/0001-netconfig-Use-s6_addr-instead-of-__in6_u.__u6_addr8.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 36c74f974eba6f276ed4dd04c2077e6f23ebec37 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 17 Oct 2021 16:09:03 -0700
-Subject: [PATCH] netconfig: Use s6_addr instead of __in6_u.__u6_addr8
-
-Building fails with:
-
-../iwd-1.18/src/netconfig.c: In function 'netconfig_ipv6_to_string':
-../iwd-1.18/src/netconfig.c:188:25: error: 'struct in6_addr' has no member named '__in6_u'; did you mean '__in6_union'?
-  188 |         memcpy(in6_addr.__in6_u.__u6_addr8, addr, 16);
-      |                         ^~~~~~~
-      |                         __in6_union
-
-Can be fixed by changing &this_ip.__in6_u.__u6_addr8[0] with &this_ip.s6_addr[0].
-For references: in6_addr is declared in /usr/include/linux/in6.h
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/netconfig.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/netconfig.c b/src/netconfig.c
-index c748630..ab51c3d 100644
---- a/src/netconfig.c
-+++ b/src/netconfig.c
-@@ -185,7 +185,7 @@ static inline char *netconfig_ipv6_to_string(const uint8_t *addr)
- 	struct in6_addr in6_addr;
- 	char *addr_str = l_malloc(INET6_ADDRSTRLEN);
- 
--	memcpy(in6_addr.__in6_u.__u6_addr8, addr, 16);
-+	memcpy(in6_addr.s6_addr, addr, 16);
- 
- 	if (L_WARN_ON(unlikely(!inet_ntop(AF_INET6, &in6_addr, addr_str,
- 						INET6_ADDRSTRLEN)))) {
--- 
-2.33.1
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.18.bb b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.18.bb
deleted file mode 100644
index 4136de8..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.18.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-SUMMARY = "Wireless daemon for Linux"
-HOMEPAGE = "https://iwd.wiki.kernel.org/"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09"
-
-DEPENDS = "ell"
-
-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 \
-           file://0001-netconfig-Use-s6_addr-instead-of-__in6_u.__u6_addr8.patch \
-          "
-SRC_URI[sha256sum] = "0225ab81579f027e0fcbf255517f432fcf355d14f3645c36813c71a441dfab55"
-
-inherit autotools manpages pkgconfig python3native systemd
-
-PACKAGECONFIG ??= " \
-    client \
-    monitor \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
-"
-PACKAGECONFIG[client] = "--enable-client,--disable-client,readline"
-PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor"
-PACKAGECONFIG[manpages] = "--enable-manual-pages,--disable-manual-pages,python3-docutils-native"
-PACKAGECONFIG[wired] = "--enable-wired,--disable-wired"
-PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono"
-PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_system_unitdir},--disable-systemd-service,systemd"
-
-EXTRA_OECONF = "--enable-external-ell"
-
-SYSTEMD_SERVICE:${PN} = " \
-    iwd.service \
-    ${@bb.utils.contains('PACKAGECONFIG', 'wired', 'ead.service', '', d)} \
-"
-
-do_configure:prepend() {
-    install -d ${S}/build-aux
-}
-
-do_install:append() {
-    # If client and monitor are disabled, bindir is empty, causing a QA error
-    rmdir --ignore-fail-on-non-empty ${D}/${bindir}
-}
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1 \
-    ${nonarch_libdir}/modules-load.d \
-    ${systemd_unitdir}/network \
-"
-
-RDEPENDS:${PN} = "dbus"
-
-RRECOMMENDS:${PN} = "\
-    kernel-module-pkcs7-message \
-    kernel-module-pkcs8-key-parser \
-    kernel-module-x509-key-parser \
-"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.21.bb b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.21.bb
new file mode 100644
index 0000000..834c1d8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.21.bb
@@ -0,0 +1,55 @@
+SUMMARY = "Wireless daemon for Linux"
+HOMEPAGE = "https://iwd.wiki.kernel.org/"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09"
+
+DEPENDS = "ell"
+
+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] = "bac891df91c605271e91b73cf0015e1ba86ff784347e53fc67601366859b3851"
+
+inherit autotools manpages pkgconfig python3native systemd
+
+PACKAGECONFIG ??= " \
+    client \
+    monitor \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+"
+PACKAGECONFIG[client] = "--enable-client,--disable-client,readline"
+PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor"
+PACKAGECONFIG[manpages] = "--enable-manual-pages,--disable-manual-pages,python3-docutils-native"
+PACKAGECONFIG[wired] = "--enable-wired,--disable-wired"
+PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono"
+PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_system_unitdir},--disable-systemd-service,systemd"
+
+EXTRA_OECONF = "--enable-external-ell"
+
+SYSTEMD_SERVICE:${PN} = " \
+    iwd.service \
+    ${@bb.utils.contains('PACKAGECONFIG', 'wired', 'ead.service', '', d)} \
+"
+
+do_configure:prepend() {
+    install -d ${S}/build-aux
+}
+
+do_install:append() {
+    # If client and monitor are disabled, bindir is empty, causing a QA error
+    rmdir --ignore-fail-on-non-empty ${D}/${bindir}
+}
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1 \
+    ${nonarch_libdir}/modules-load.d \
+    ${systemd_unitdir}/network \
+"
+
+RDEPENDS:${PN} = "dbus"
+
+RRECOMMENDS:${PN} = "\
+    kernel-module-pkcs7-message \
+    kernel-module-pkcs8-key-parser \
+    kernel-module-x509-key-parser \
+"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.3.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.3.0.bb
index bcedd62..4d873d4 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.3.0.bb
@@ -9,7 +9,7 @@
 DEPENDS = "libplist usbmuxd libusbmuxd libtasn1 gnutls libgcrypt"
 
 SRCREV = "15f8652126664e3a4b980e5d1c039b9053ce8566"
-SRC_URI = "git://github.com/libimobiledevice/libimobiledevice;protocol=https"
+SRC_URI = "git://github.com/libimobiledevice/libimobiledevice;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
 inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.26.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.26.0.bb
deleted file mode 100644
index d6b812c..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.26.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "libmbim is library for talking to WWAN devices by MBIM protocol"
-DESCRIPTION = "libmbim is a glib-based library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol"
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libmbim/"
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = " \
-    file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-    file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-"
-
-DEPENDS = "glib-2.0 glib-2.0-native libgudev"
-
-inherit autotools pkgconfig bash-completion gobject-introspection
-
-SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "1e1f0926b22c77210442129eca689722ecf324ab9c9abf421a5c989f46e813cf"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.26.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.26.2.bb
new file mode 100644
index 0000000..5cd2a7e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.26.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "libmbim is library for talking to WWAN devices by MBIM protocol"
+DESCRIPTION = "libmbim is a glib-based library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libmbim/"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+    file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+"
+
+DEPENDS = "glib-2.0 glib-2.0-native libgudev"
+
+inherit autotools pkgconfig bash-completion gobject-introspection
+
+SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "10c77bf5b5eb8c92ba80e9b519923ad9b898362bc8e1928e2bc9a17eeba649af"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.8.bb b/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.8.bb
index 0d35465..06fd0f7 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.8.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.8.bb
@@ -3,7 +3,7 @@
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
-SRC_URI = "git://github.com/jpirko/libndp \
+SRC_URI = "git://github.com/jpirko/libndp;branch=master;protocol=https \
            "
 # tag for v1.8
 SRCREV = "009ce9cd9b950ffa1f4f94c9436027b936850d0c"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
index 83326cb..1c3419c 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
@@ -6,7 +6,7 @@
 
 DEPENDS = "zlib libsigc++-2.0 openssl cppunit"
 
-SRC_URI = "git://github.com/rakshasa/libtorrent \
+SRC_URI = "git://github.com/rakshasa/libtorrent;branch=master;protocol=https \
            file://don-t-run-code-while-configuring-package.patch \
            "
 SRCREV = "756f70010779927dc0691e1e722ed433d5d295e1"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.16.8.bb b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.16.8.bb
index a97c94e5..5aaa55c 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.16.8.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.16.8.bb
@@ -9,7 +9,7 @@
 
 inherit gnomebase gettext systemd vala gobject-introspection bash-completion
 
-DEPENDS = "glib-2.0 libgudev intltool-native libxslt-native"
+DEPENDS = "glib-2.0 libgudev libxslt-native"
 
 SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz"
 SRC_URI[sha256sum] = "21fdfaf94171261ad9d99771894f5ade4bc39ef3d1ff1d421054d14713e97880"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.8.bb b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.8.bb
deleted file mode 100644
index 01c961f..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.8.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Paho MQTT - C libraries for the MQTT and MQTT-SN protocols"
-DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)."
-HOMEPAGE = "http://www.eclipse.org/paho/"
-SECTION = "console/network"
-LICENSE = "EPL-2.0 | EDL-1.0"
-
-LIC_FILES_CHKSUM = " \
-    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"
-
-SRCREV = "317fb008e1541838d1c29076d2bc5c3e4b6c4f53"
-
-DEPENDS = "openssl"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-do_configure:prepend() {
-    sed -i s:\ lib/cmake:\ ${baselib}/cmake:g ${S}/src/CMakeLists.txt
-}
-
-do_install:append() {
-    # paho-mqtt installes some thing that we don't want.
-    rm -rf ${D}${prefix}/samples
-    find ${D}${prefix} -maxdepth 1 -type f -delete
-}
-
-EXTRA_OECMAKE = "-DPAHO_WITH_SSL=ON"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.9.bb b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.9.bb
new file mode 100644
index 0000000..a8541f0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.9.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Paho MQTT - C libraries for the MQTT and MQTT-SN protocols"
+DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)."
+HOMEPAGE = "http://www.eclipse.org/paho/"
+SECTION = "console/network"
+LICENSE = "EPL-2.0 | EDL-1.0"
+
+LIC_FILES_CHKSUM = " \
+    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"
+
+SRCREV = "3b7ae6348bc917d42c04efa962e4868c09bbde9f"
+
+DEPENDS = "openssl"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+do_configure:prepend() {
+    sed -i s:\ lib/cmake:\ ${baselib}/cmake:g ${S}/src/CMakeLists.txt
+}
+
+do_install:append() {
+    # paho-mqtt installes some thing that we don't want.
+    rm -rf ${D}${prefix}/samples
+    find ${D}${prefix} -maxdepth 1 -type f -delete
+}
+
+EXTRA_OECMAKE = "-DPAHO_WITH_SSL=ON"
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
new file mode 100644
index 0000000..b5a6ac2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.2.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Paho MQTT - C++ libraries for the MQTT and MQTT-SN protocols"
+DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)."
+HOMEPAGE = "http://www.eclipse.org/paho/"
+SECTION = "console/network"
+LICENSE = "EPL-1.0 | EDL-1.0"
+
+LIC_FILES_CHKSUM = " \
+    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"
+
+SRCREV = "33921c8b68b351828650c36816e7ecf936764379"
+
+DEPENDS = "openssl paho-mqtt-c"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DPAHO_WITH_SSL=ON"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.11.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.11.0.bb
index 29474f1..304171c 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.11.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.11.0.bb
@@ -3,7 +3,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=6b7424f9db80cfb11fdd5c980b583f53"
 LICENSE = "MIT"
 
-SRC_URI = "git://github.com/alanxz/rabbitmq-c.git"
+SRC_URI = "git://github.com/alanxz/rabbitmq-c.git;branch=master;protocol=https"
 # v0.11.0-master
 SRCREV = "a64c08c68aff34d49a2ac152f04988cd921084f9"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
index 86d3be1..0f3b5e2 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
@@ -5,7 +5,7 @@
 
 DEPENDS = "libsigc++-2.0 curl cppunit libtorrent ncurses"
 
-SRC_URI = "git://github.com/rakshasa/rtorrent \
+SRC_URI = "git://github.com/rakshasa/rtorrent;branch=master;protocol=https \
     file://don-t-run-code-while-configuring-package.patch \
 "
 # v0.9.8
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/transmission/transmission_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/transmission/transmission_git.bb
index 43b000e..e81ec74 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/transmission/transmission_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/transmission/transmission_git.bb
@@ -8,7 +8,7 @@
 RDEPENDS:${PN}-web = "${PN}"
 
 SRC_URI = " \
-	gitsm://github.com/transmission/transmission \
+	gitsm://github.com/transmission/transmission;branch=master;protocol=https \
 	file://transmission-daemon \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_1.1.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_1.1.1.bb
index a3d66f4..a74b157 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_1.1.1.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_1.1.1.bb
@@ -11,7 +11,7 @@
 PKGV = "${GITPKGVTAG}"
 
 SRCREV = "79c8b38d1488a6b07e1e68f39d8caec3f1a45622"
-SRC_URI = "git://github.com/libimobiledevice/usbmuxd;protocol=https"
+SRC_URI = "git://github.com/libimobiledevice/usbmuxd;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_git.bb
index 5827e7a..490f832 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_git.bb
@@ -9,7 +9,7 @@
 
 S = "${WORKDIR}/git"
 SRCREV = "2da947374c8324f88a0e2155aeba4cf75464b0d8"
-SRC_URI = "git://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT.git \
+SRC_URI = "git://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT.git;branch=master;protocol=https \
 	file://0001-Use-toolchain-from-environment-variables.patch \
 	file://0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch \
 	file://0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch \
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
index d234d01..dfb0b14 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
@@ -7,7 +7,7 @@
 SRCREV = "dd663fafd830466d34cba278c2cfd0f92eb67614"
 PV = "4.8.1"
 
-SRC_URI = "git://github.com/zeromq/cppzmq.git;branch=master"
+SRC_URI = "git://github.com/zeromq/cppzmq.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus-cxx/dbus-cxx_0.12.bb b/meta-openembedded/meta-oe/recipes-core/dbus-cxx/dbus-cxx_0.12.bb
deleted file mode 100644
index ed3bdbf..0000000
--- a/meta-openembedded/meta-oe/recipes-core/dbus-cxx/dbus-cxx_0.12.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "D-Bus wrapper in C++ for dbus"
-HOMEPAGE = "https://dbus-cxx.github.io/"
-SECTION = "base"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4cf0188f02184e1e84b9586ac53c3f83"
-
-FILEEXTRAPATHS:prepend = "${THISDIR}/files"
-SRC_URI = "git://github.com/dbus-cxx/dbus-cxx.git;branch=master"
-SRC_URI += "file://fix_build_musl.patch"
-SRCREV = "ea7f8e361d11dc7d41d9ae2c4128aed2cdadd84e"
-
-DEPENDS = "\
-	dbus \
-	libsigc++-2.0 \
-"
-
-RDEPENDS:${PN} = "\
-	dbus \
-	libsigc++-2.0 \
-"
-
-S = "${WORKDIR}/git"
-
-inherit pkgconfig cmake
-
-OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus-cxx/dbus-cxx_2.1.0.bb b/meta-openembedded/meta-oe/recipes-core/dbus-cxx/dbus-cxx_2.1.0.bb
new file mode 100644
index 0000000..1524f09
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/dbus-cxx/dbus-cxx_2.1.0.bb
@@ -0,0 +1,28 @@
+SUMMARY = "D-Bus wrapper in C++ for dbus"
+HOMEPAGE = "https://dbus-cxx.github.io/"
+BUGTRACKER = "https://github.com/libsigcplusplus/libsigcplusplus/issues"
+SECTION = "base"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4cf0188f02184e1e84b9586ac53c3f83"
+
+SRC_URI = "git://github.com/dbus-cxx/dbus-cxx.git;branch=master;protocol=https \
+           file://0001-Include-typeinfo-for-typeid.patch \
+"
+SRC_URI:append:libc-musl = "file://fix_build_musl.patch"
+SRCREV = "73532d6a5faae9c721c2cc9535b8ef32d4d18264"
+
+DEPENDS = "\
+	dbus \
+	libsigc++-3 \
+"
+
+RDEPENDS:${PN} = "\
+	dbus \
+	libsigc++-3 \
+"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig cmake
+
+OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus-cxx/files/0001-Include-typeinfo-for-typeid.patch b/meta-openembedded/meta-oe/recipes-core/dbus-cxx/files/0001-Include-typeinfo-for-typeid.patch
new file mode 100644
index 0000000..9117877
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/dbus-cxx/files/0001-Include-typeinfo-for-typeid.patch
@@ -0,0 +1,29 @@
+From e262b6e7cc6271d71405f10c4817b9b3b2b95f05 Mon Sep 17 00:00:00 2001
+From: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
+Date: Mon, 13 Dec 2021 02:00:48 +0100
+Subject: [PATCH] Include typeinfo for typeid()
+
+Otherwise fails with:
+    error: must '#include <typeinfo>' before using 'typeid'
+
+Upstream-Status: Submitted
+[https://github.com/dbus-cxx/dbus-cxx/pull/83]
+---
+ dbus-cxx/demangle.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/dbus-cxx/demangle.h b/dbus-cxx/demangle.h
+index b71bcb9..9a4e99b 100644
+--- a/dbus-cxx/demangle.h
++++ b/dbus-cxx/demangle.h
+@@ -21,6 +21,7 @@
+ #define DBUSCXX_DEMANGLE_H
+ 
+ #include <string>
++#include <typeinfo>
+ #include <dbus-cxx/dbus-cxx-config.h>
+ 
+ #if DBUS_CXX_HAS_CXXABI_H
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus-cxx/files/fix_build_musl.patch b/meta-openembedded/meta-oe/recipes-core/dbus-cxx/files/fix_build_musl.patch
index 3d912e0..e55d987 100644
--- a/meta-openembedded/meta-oe/recipes-core/dbus-cxx/files/fix_build_musl.patch
+++ b/meta-openembedded/meta-oe/recipes-core/dbus-cxx/files/fix_build_musl.patch
@@ -1,26 +1,12 @@
-diff --git a/dbus-cxx/timeout.cpp b/dbus-cxx/timeout.cpp
-index 16e9f7e..aa0b99f 100644
---- a/dbus-cxx/timeout.cpp
-+++ b/dbus-cxx/timeout.cpp
-@@ -132,7 +132,7 @@ namespace DBus
-     return m_cobj;
-   }
- 
--  void Timeout::timer_callback_proxy( sigval_t sv ) {
-+  void Timeout::timer_callback_proxy( union sigval sv ) {
-     SIMPLELOGGER_DEBUG( "dbus.Timeout","Timeout::timer_callback_proxy" );
-     Timeout* t;
-     t = ( Timeout* ) sv.sival_ptr;
-diff --git a/dbus-cxx/timeout.h b/dbus-cxx/timeout.h
-index 1e469b5..5b69fbb 100644
---- a/dbus-cxx/timeout.h
-+++ b/dbus-cxx/timeout.h
-@@ -83,7 +83,7 @@ namespace DBus
- 
-       std::mutex m_arming_mutex;
- 
--      static void timer_callback_proxy( sigval_t sv );
-+      static void timer_callback_proxy( union sigval sv );
- 
-   };
- 
+diff --git a/dbus-cxx/sasl.cpp b/dbus-cxx/sasl.cpp
+index e8a6060..7a76af6 100644
+--- a/dbus-cxx/sasl.cpp
++++ b/dbus-cxx/sasl.cpp
+@@ -70,7 +70,7 @@ std::tuple<bool, bool, std::vector<uint8_t>> SASL::authenticate() {
+     bool success = false;
+     bool negotiatedFD = false;
+     std::vector<uint8_t> serverGUID;
+-    __uid_t uid = getuid();
++    uid_t uid = getuid();
+     std::string line;
+     std::smatch regex_match;
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch
index 2c4ca05..1c2fc38 100644
--- a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch
+++ b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch
@@ -21,7 +21,7 @@
  
    if (!dbus_conn)
 -    return;
-+    DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
++    return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
  
    if (verbose)
      g_print ("New message from server: type='%d' path='%s' iface='%s'"
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
index 42cd032..f40b488 100644
--- a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
+++ b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
@@ -6,7 +6,7 @@
 PV = "0.0.0+gitr${SRCPV}"
 PR = "r1.59"
 
-SRC_URI = "git://github.com/alban/dbus-daemon-proxy \
+SRC_URI = "git://github.com/alban/dbus-daemon-proxy;branch=master;protocol=https \
            file://0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch \
            "
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-core/emlog/emlog.inc b/meta-openembedded/meta-oe/recipes-core/emlog/emlog.inc
index 9a0f9ba..948e18d 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 = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
-SRC_URI = "git://github.com/nicupavel/emlog.git;protocol=http"
+SRC_URI = "git://github.com/nicupavel/emlog.git;protocol=http;branch=master;protocol=https"
 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 f6e0595..b31bba6 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
@@ -12,7 +12,7 @@
 
 PV .= "+git${SRCPV}"
 SRCREV = "781fbbadb0bccc749058177b1385c82da9ace880"
-SRC_URI = "git://github.com/glfw/glfw.git"
+SRC_URI = "git://github.com/glfw/glfw.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-core/libnfc/libnfc_git.bb b/meta-openembedded/meta-oe/recipes-core/libnfc/libnfc_git.bb
index 70b48f7..b8818c1 100644
--- a/meta-openembedded/meta-oe/recipes-core/libnfc/libnfc_git.bb
+++ b/meta-openembedded/meta-oe/recipes-core/libnfc/libnfc_git.bb
@@ -11,7 +11,7 @@
 
 S = "${WORKDIR}/git"
 SRCREV = "f02ff51449240102c27a97173dc495e8e7789046"
-SRC_URI = "git://github.com/nfc-tools/libnfc.git"
+SRC_URI = "git://github.com/nfc-tools/libnfc.git;branch=master;protocol=https"
 
 CFLAGS:append:libc-musl = " -D_GNU_SOURCE"
 DEPENDS = "libusb"
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 7d01829..b39784e 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 \
+SRC_URI = "git://github.com/freesmartphone/mdbus.git;protocol=http;branch=master;protocol=https \
            file://0001-Fix-arguments-in-GLib.DBusSignalCallback-for-Vala-0..patch \
            "
 SRCREV = "28202692d0b441000f4ddb8f347f72d1355021aa"
diff --git a/meta-openembedded/meta-oe/recipes-core/musl-rpmatch/musl-rpmatch_git.bb b/meta-openembedded/meta-oe/recipes-core/musl-rpmatch/musl-rpmatch_git.bb
index 553003f..163a74e 100644
--- a/meta-openembedded/meta-oe/recipes-core/musl-rpmatch/musl-rpmatch_git.bb
+++ b/meta-openembedded/meta-oe/recipes-core/musl-rpmatch/musl-rpmatch_git.bb
@@ -2,7 +2,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=81a81bf31abecc50c20862fc8a716329"
 
-SRC_URI = "gitsm://github.com/pullmoll/musl-rpmatch.git;protocol=https"
+SRC_URI = "gitsm://github.com/pullmoll/musl-rpmatch.git;protocol=https;branch=master"
 
 PV = "1.0+git${SRCPV}"
 SRCREV = "46267b154987d3e1f25d3a75423faa62bb5ee342"
diff --git a/meta-openembedded/meta-oe/recipes-core/ndctl/ndctl_v69.bb b/meta-openembedded/meta-oe/recipes-core/ndctl/ndctl_v69.bb
index c71b8b9..b848ca6 100644
--- a/meta-openembedded/meta-oe/recipes-core/ndctl/ndctl_v69.bb
+++ b/meta-openembedded/meta-oe/recipes-core/ndctl/ndctl_v69.bb
@@ -11,7 +11,9 @@
 inherit autotools-brokensep pkgconfig bash-completion systemd
 
 SRCREV = "ea62d6d53bf6f806c4841e97a370201e18446860"
-SRC_URI = "git://github.com/pmem/ndctl.git"
+SRC_URI = "git://github.com/pmem/ndctl.git;branch=master;protocol=https"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>v\d+(\.\d+)*)"
 
 DEPENDS = "kmod udev json-c keyutils"
 
diff --git a/meta-openembedded/meta-oe/recipes-core/opencl/ocl-icd_2.3.0.bb b/meta-openembedded/meta-oe/recipes-core/opencl/ocl-icd_2.3.0.bb
index d94e4c2..1746e21 100644
--- a/meta-openembedded/meta-oe/recipes-core/opencl/ocl-icd_2.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-core/opencl/ocl-icd_2.3.0.bb
@@ -5,7 +5,7 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=1238d5bccbb6bda30654e48dcc0a554b"
 
-SRC_URI = "git://github.com/OCL-dev/ocl-icd.git;protocol=https"
+SRC_URI = "git://github.com/OCL-dev/ocl-icd.git;protocol=https;branch=master"
 
 SRCREV = "59c098b6b1f97a339e3e5308499aee6538ecea40"
 
diff --git a/meta-openembedded/meta-oe/recipes-core/opencl/opencl-clhpp_git.bb b/meta-openembedded/meta-oe/recipes-core/opencl/opencl-clhpp_git.bb
index 4645dd1..5a0776c 100644
--- a/meta-openembedded/meta-oe/recipes-core/opencl/opencl-clhpp_git.bb
+++ b/meta-openembedded/meta-oe/recipes-core/opencl/opencl-clhpp_git.bb
@@ -1,7 +1,7 @@
 SUMMARY  = "OpenCL API C++ bindings"
 DESCRIPTION = "OpenCL API C++ bindings from Khronos"
 
-SRC_URI = "git://github.com/KhronosGroup/OpenCL-CLHPP.git;protocol=https"
+SRC_URI = "git://github.com/KhronosGroup/OpenCL-CLHPP.git;protocol=https;branch=master"
 
 LICENSE  = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
diff --git a/meta-openembedded/meta-oe/recipes-core/opencl/opencl-headers_git.bb b/meta-openembedded/meta-oe/recipes-core/opencl/opencl-headers_git.bb
index 4a16500..f77bf46 100644
--- a/meta-openembedded/meta-oe/recipes-core/opencl/opencl-headers_git.bb
+++ b/meta-openembedded/meta-oe/recipes-core/opencl/opencl-headers_git.bb
@@ -7,7 +7,7 @@
 S = "${WORKDIR}/git"
 # v2020.12.18
 SRCREV = "c57ba81c460ee97b6b9d0b8d18faf5ba6883114b"
-SRC_URI = "git://github.com/KhronosGroup/OpenCL-Headers.git"
+SRC_URI = "git://github.com/KhronosGroup/OpenCL-Headers.git;branch=master;protocol=https"
 
 do_configure[noexec] = "1"
 do_compile[noexec] = "1"
diff --git a/meta-openembedded/meta-oe/recipes-core/opencl/opencl-icd-loader_git.bb b/meta-openembedded/meta-oe/recipes-core/opencl/opencl-icd-loader_git.bb
index 43680fe..45b1ad5 100644
--- a/meta-openembedded/meta-oe/recipes-core/opencl/opencl-icd-loader_git.bb
+++ b/meta-openembedded/meta-oe/recipes-core/opencl/opencl-icd-loader_git.bb
@@ -11,7 +11,7 @@
 S = "${WORKDIR}/git"
 PV = "2020.12.18+git${SRCPV}"
 SRCREV = "1d5315c3ed30d026acb79a1aa53a276fc833ffa7"
-SRC_URI = "git://github.com/KhronosGroup/OpenCL-ICD-Loader.git"
+SRC_URI = "git://github.com/KhronosGroup/OpenCL-ICD-Loader.git;branch=master;protocol=https"
 
 do_install () {
 	install -d ${D}${bindir}
diff --git a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
index 4e1ee86..62ada76 100644
--- a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
+++ b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -98,6 +98,8 @@
     edac-utils \
     firmwared \
     flashrom \
+    fwupd \
+    fwupd-efi \
     irda-utils \
     lmsensors-config-cgi \
     lmsensors-config-fancontrol \
@@ -112,12 +114,12 @@
 RDEPENDS:packagegroup-meta-oe-bsp:append:x86-64 = " ledmon"
 
 RDEPENDS:packagegroup-meta-oe-bsp:remove:libc-musl = "ledmon"
-RDEPENDS:packagegroup-meta-oe-bsp:remove:mipsarch = "efivar efibootmgr"
-RDEPENDS:packagegroup-meta-oe-bsp:remove:powerpc = "efivar efibootmgr"
-RDEPENDS:packagegroup-meta-oe-bsp:remove:powerpc64 = "efivar efibootmgr"
-RDEPENDS:packagegroup-meta-oe-bsp:remove:powerpc64le = "efivar efibootmgr"
-RDEPENDS:packagegroup-meta-oe-bsp:remove:riscv64 = "efivar efibootmgr"
-RDEPENDS:packagegroup-meta-oe-bsp:remove:riscv32 = "efivar efibootmgr"
+RDEPENDS:packagegroup-meta-oe-bsp:remove:mipsarch = "efivar efibootmgr fwupd fwupd-efi"
+RDEPENDS:packagegroup-meta-oe-bsp:remove:powerpc = "efivar efibootmgr fwupd fwupd-efi"
+RDEPENDS:packagegroup-meta-oe-bsp:remove:powerpc64 = "efivar efibootmgr fwupd fwupd-efi"
+RDEPENDS:packagegroup-meta-oe-bsp:remove:powerpc64le = "efivar efibootmgr fwupd fwupd-efi"
+RDEPENDS:packagegroup-meta-oe-bsp:remove:riscv64 = "efivar efibootmgr fwupd fwupd-efi"
+RDEPENDS:packagegroup-meta-oe-bsp:remove:riscv32 = "efivar efibootmgr fwupd fwupd-efi"
 
 RDEPENDS:packagegroup-meta-oe-connectivity ="\
     gammu \
@@ -147,6 +149,7 @@
     obexftp \
     packagegroup-tools-bluetooth \
     paho-mqtt-c \
+    paho-mqtt-cpp \
     rabbitmq-c \
     rfkill \
     rtorrent \
@@ -184,6 +187,7 @@
     mm-common \
     ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "ndctl", "", d)} \
     opencl-icd-loader \
+    pim435 \
     proxy-libintl \
     safec \
     sdbus-c++-tools \
@@ -293,10 +297,12 @@
     protobuf \
     pugixml \
     python3-distutils-extra \
+    python3-pycups \
     rapidjson \
     sip3 \
     squashfs-tools-ng \
     uftrace \
+    unifex \
     libxerces-c \
     xerces-c-samples \
     xmlrpc-c \
@@ -328,10 +334,12 @@
     bitwise \
     brotli \
     byacc \
+    cmatrix \
     cmpi-bindings \
     collectd \
     ddrescue \
     dialog \
+    duktape \
     enscript \
     ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gnuplot", "", d)} \
     dlt-daemon \
@@ -477,6 +485,7 @@
     gphoto2 \
     imlib2 \
     libgphoto2 \
+    graphene \
     graphviz \
     gtkwave \
     jasper \
@@ -627,6 +636,7 @@
     oprofile \
     spidev-test \
     trace-cmd \
+    usbip-tools \
 "
 RDEPENDS:packagegroup-meta-oe-kernel:append:x86 = " intel-speed-select ipmiutil pm-graph turbostat"
 RDEPENDS:packagegroup-meta-oe-kernel:append:x86-64 = " intel-speed-select ipmiutil kpatch pm-graph turbostat bpftool"
@@ -691,6 +701,7 @@
 
 RDEPENDS:packagegroup-meta-oe-printing ="\
     cups-filters \
+    gutenprint \
     qpdf \
 "
 
@@ -731,7 +742,7 @@
     dfu-util \
     dhex \
     digitemp \
-    dstat \
+    dool \
     espeak \
     evemu-tools \
     exiv2 \
@@ -881,6 +892,7 @@
     system-config-keyboard \
     tbb \
     satyr \
+    pcp \
     pcsc-lite \
     pcsc-tools \
     sharutils \
@@ -933,6 +945,7 @@
 RDEPENDS:packagegroup-meta-oe-support:remove:riscv32 = "gperftools uim"
 RDEPENDS:packagegroup-meta-oe-support:remove:powerpc = "ssiapi tbb"
 RDEPENDS:packagegroup-meta-oe-support:remove:powerpc64le = "ssiapi"
+RDEPENDS:packagegroup-meta-oe-support:remove:libc-musl = "pcp"
 
 RDEPENDS:packagegroup-meta-oe-test ="\
     bats \
diff --git a/meta-openembedded/meta-oe/recipes-core/pim435/pim435_git.bb b/meta-openembedded/meta-oe/recipes-core/pim435/pim435_git.bb
new file mode 100644
index 0000000..f73a0fd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/pim435/pim435_git.bb
@@ -0,0 +1,22 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+HOMEPAGE = "https://booting.oniroproject.org/distro/components/pim435"
+SUMMARY = "A userspace driver application for PIM435 written in C"
+DESCRIPTION = "A userspace driver application for PIM435 (Pimoroni LED matrix) \
+written in C"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSES/MIT.txt;md5=7dda4e90ded66ab88b86f76169f28663"
+
+SRC_URI = "git://booting.oniroproject.org/distro/components/pim435;protocol=https;branch=main"
+SRCREV = "ee07a83de4d0ecdf4b5de20a7e374d36a9a6f5d5"
+S = "${WORKDIR}/git"
+
+DEPENDS = "i2c-tools"
+
+EXTRA_OEMAKE += "DESTDIR=${D}"
+
+do_install() {
+    oe_runmake install
+}
diff --git a/meta-openembedded/meta-oe/recipes-core/safec/safec_3.5.1.bb b/meta-openembedded/meta-oe/recipes-core/safec/safec_3.5.1.bb
index fa30f7c..4b12159 100644
--- a/meta-openembedded/meta-oe/recipes-core/safec/safec_3.5.1.bb
+++ b/meta-openembedded/meta-oe/recipes-core/safec/safec_3.5.1.bb
@@ -9,7 +9,7 @@
 S = "${WORKDIR}/git"
 # v08112019
 SRCREV = "ad76c7b1dbd0403b0c9decf54164fcce271c590f"
-SRC_URI = "git://github.com/rurban/safeclib.git \
+SRC_URI = "git://github.com/rurban/safeclib.git;branch=master;protocol=https \
 "
 
 COMPATIBLE_HOST = '(x86_64|i.86|powerpc|powerpc64|arm|aarch64|mips).*-linux'
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.3/0001-Do-not-download-gtest-automatically.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.3/0001-Do-not-download-gtest-automatically.patch
deleted file mode 100644
index 5bd3801..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.3/0001-Do-not-download-gtest-automatically.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From af91a20ee201f13e56f225df536a56e5d8d259e8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 27 May 2021 09:56:49 -0700
-Subject: [PATCH] Do not download gtest automatically
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/CMakeLists.txt                        | 9 +--------
- tests/googletest-download/CMakeLists.txt.in | 3 ---
- 2 files changed, 1 insertion(+), 11 deletions(-)
-
---- a/tests/googletest-download/CMakeLists.txt.in
-+++ b/tests/googletest-download/CMakeLists.txt.in
-@@ -7,10 +7,7 @@ project(googletest-download NONE)
- include(ExternalProject)
- 
- ExternalProject_Add(googletest
--    GIT_REPOSITORY    https://github.com/google/googletest.git
--    GIT_TAG           master
--    GIT_SHALLOW       1
--    SOURCE_DIR        "${CMAKE_CURRENT_BINARY_DIR}/googletest-src"
-+    SOURCE_DIR        "${CMAKE_CURRENT_SOURCE_DIR}/googletest-src"
-     BINARY_DIR        "${CMAKE_CURRENT_BINARY_DIR}/googletest-build"
-     UPDATE_COMMAND    ""
-     CONFIGURE_COMMAND ""
---- a/tests/CMakeLists.txt
-+++ b/tests/CMakeLists.txt
-@@ -6,9 +6,7 @@ include(FetchContent)
- 
- message("Fetching googletest...")
- FetchContent_Declare(googletest
--                     GIT_REPOSITORY https://github.com/google/googletest.git
--                     GIT_TAG        master
--                     GIT_SHALLOW    1
-+                     SOURCE_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/googletest-src
-                      UPDATE_COMMAND "")
- 
- #FetchContent_MakeAvailable(googletest) # Not available in CMake 3.13 :-( Let's do it manually:
-@@ -144,4 +142,4 @@ endif()
- if(NOT CMAKE_CROSSCOMPILING)
-     add_test(NAME sdbus-c++-unit-tests COMMAND sdbus-c++-unit-tests)
-     add_test(NAME sdbus-c++-integration-tests COMMAND sdbus-c++-integration-tests)
--endif() 
-+endif()
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.3/0001-test-Check-for-googletest-on-system-first.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.3/0001-test-Check-for-googletest-on-system-first.patch
deleted file mode 100644
index 8a6acea..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.3/0001-test-Check-for-googletest-on-system-first.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From dc5fa7a4b342ef80cda533cdb821841d8183287c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 23 May 2021 09:01:09 -0700
-Subject: [PATCH] test: Check for googletest on system first
-
-This ensures if googletest is instslled already then use that version
-before downloading and building own copy
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/CMakeLists.txt | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
-index 97f7c1a..3dfdd1c 100644
---- a/tests/CMakeLists.txt
-+++ b/tests/CMakeLists.txt
-@@ -2,6 +2,10 @@
- # DOWNLOAD AND BUILD OF GOOGLETEST
- #-------------------------------
- 
-+find_package(GTest)
-+
-+if(NOT GTest_FOUND)
-+
- include(FetchContent)
- 
- message("Fetching googletest...")
-@@ -23,7 +27,7 @@ if(NOT googletest_POPULATED)
-     add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR})
-     set(BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS_BAK})
- endif()
--
-+endif()
- #-------------------------------
- # SOURCE FILES CONFIGURATION
- #-------------------------------
--- 
-2.31.1
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.3/run-ptest b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-1.0.0/run-ptest
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.3/run-ptest
rename to meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-1.0.0/run-ptest
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0001-do-not-disable-buffer-in-writing-files.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0001-do-not-disable-buffer-in-writing-files.patch
deleted file mode 100644
index 2f4daf8..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0001-do-not-disable-buffer-in-writing-files.patch
+++ /dev/null
@@ -1,413 +0,0 @@
-From 85e3c3046562ec24fc2f09ebfd08bf9f168091d5 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Fri, 1 Mar 2019 15:22:15 +0800
-Subject: [PATCH] do not disable buffer in writing files
-
-Do not disable buffer in writing files, otherwise we get
-failure at boot for musl like below.
-
-  [!!!!!!] Failed to allocate manager object.
-
-And there will be other failures, critical or not critical.
-This is specific to musl.
-
-Upstream-Status: Inappropriate [musl]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[Rebased for v242]
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- src/basic/cgroup-util.c                 | 14 +++++++-------
- src/basic/procfs-util.c                 |  4 ++--
- src/basic/smack-util.c                  |  2 +-
- src/basic/util.c                        |  2 +-
- src/binfmt/binfmt.c                     |  6 +++---
- src/core/main.c                         |  4 ++--
- src/core/smack-setup.c                  |  8 ++++----
- src/hibernate-resume/hibernate-resume.c |  2 +-
- src/libsystemd/sd-device/sd-device.c    |  2 +-
- src/login/logind-dbus.c                 |  2 +-
- src/nspawn/nspawn-cgroup.c              |  2 +-
- src/nspawn/nspawn.c                     |  6 +++---
- src/shared/sysctl-util.c                |  2 +-
- src/sleep/sleep.c                       | 10 +++++-----
- src/udev/udevadm-trigger.c              |  2 +-
- src/udev/udevd.c                        |  2 +-
- src/vconsole/vconsole-setup.c           |  2 +-
- 17 files changed, 36 insertions(+), 36 deletions(-)
-
-diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
-index 7b5839ccd6..18f6e8ffc8 100644
---- a/src/basic/cgroup-util.c
-+++ b/src/basic/cgroup-util.c
-@@ -860,7 +860,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) {
- 
-         xsprintf(c, PID_FMT "\n", pid);
- 
--        r = write_string_file(fs, c, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file(fs, c, 0);
-         if (r < 0)
-                 return r;
- 
-@@ -1142,7 +1142,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
- 
-         sc = strstrip(contents);
-         if (isempty(sc)) {
--                r = write_string_file(fs, agent, WRITE_STRING_FILE_DISABLE_BUFFER);
-+                r = write_string_file(fs, agent, 0);
-                 if (r < 0)
-                         return r;
-         } else if (!path_equal(sc, agent))
-@@ -1160,7 +1160,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
- 
-         sc = strstrip(contents);
-         if (streq(sc, "0")) {
--                r = write_string_file(fs, "1", WRITE_STRING_FILE_DISABLE_BUFFER);
-+                r = write_string_file(fs, "1", 0);
-                 if (r < 0)
-                         return r;
- 
-@@ -1187,7 +1187,7 @@ int cg_uninstall_release_agent(const char *controller) {
-         if (r < 0)
-                 return r;
- 
--        r = write_string_file(fs, "0", WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file(fs, "0", 0);
-         if (r < 0)
-                 return r;
- 
-@@ -1197,7 +1197,7 @@ int cg_uninstall_release_agent(const char *controller) {
-         if (r < 0)
-                 return r;
- 
--        r = write_string_file(fs, "", WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file(fs, "", 0);
-         if (r < 0)
-                 return r;
- 
-@@ -2053,7 +2053,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri
-         if (r < 0)
-                 return r;
- 
--        return write_string_file(p, value, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        return write_string_file(p, value, 0);
- }
- 
- int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
-@@ -2697,7 +2697,7 @@ int cg_enable_everywhere(
-                                         return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p);
-                         }
- 
--                        r = write_string_stream(f, s, WRITE_STRING_FILE_DISABLE_BUFFER);
-+                        r = write_string_stream(f, s, 0);
-                         if (r < 0) {
-                                 log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m",
-                                                 FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs);
-diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
-index 42ce53d5aa..57512532a6 100644
---- a/src/basic/procfs-util.c
-+++ b/src/basic/procfs-util.c
-@@ -86,13 +86,13 @@ int procfs_tasks_set_limit(uint64_t limit) {
-          * decrease it, as threads-max is the much more relevant sysctl. */
-         if (limit > pid_max-1) {
-                 sprintf(buffer, "%" PRIu64, limit+1); /* Add one, since PID 0 is not a valid PID */
--                r = write_string_file("/proc/sys/kernel/pid_max", buffer, WRITE_STRING_FILE_DISABLE_BUFFER);
-+                r = write_string_file("/proc/sys/kernel/pid_max", buffer, 0);
-                 if (r < 0)
-                         return r;
-         }
- 
-         sprintf(buffer, "%" PRIu64, limit);
--        r = write_string_file("/proc/sys/kernel/threads-max", buffer, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/proc/sys/kernel/threads-max", buffer, 0);
-         if (r < 0) {
-                 uint64_t threads_max;
- 
-diff --git a/src/basic/smack-util.c b/src/basic/smack-util.c
-index 123d00e13e..e7ea78f349 100644
---- a/src/basic/smack-util.c
-+++ b/src/basic/smack-util.c
-@@ -115,7 +115,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) {
-                 return 0;
- 
-         p = procfs_file_alloca(pid, "attr/current");
--        r = write_string_file(p, label, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file(p, label, 0);
-         if (r < 0)
-                 return r;
- 
-diff --git a/src/basic/util.c b/src/basic/util.c
-index 93d610bc98..97dca64f73 100644
---- a/src/basic/util.c
-+++ b/src/basic/util.c
-@@ -294,7 +294,7 @@ void disable_coredumps(void) {
-         if (detect_container() > 0)
-                 return;
- 
--        r = write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", 0);
-         if (r < 0)
-                 log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m");
- }
-diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c
-index aa9d811f2e..8c7f2dae7a 100644
---- a/src/binfmt/binfmt.c
-+++ b/src/binfmt/binfmt.c
-@@ -48,7 +48,7 @@ static int delete_rule(const char *rule) {
-         if (!fn)
-                 return log_oom();
- 
--        return write_string_file(fn, "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
-+        return write_string_file(fn, "-1", 0);
- }
- 
- static int apply_rule(const char *rule) {
-@@ -56,7 +56,7 @@ static int apply_rule(const char *rule) {
- 
-         (void) delete_rule(rule);
- 
--        r = write_string_file("/proc/sys/fs/binfmt_misc/register", rule, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/proc/sys/fs/binfmt_misc/register", rule, 0);
-         if (r < 0)
-                 return log_error_errno(r, "Failed to add binary format: %m");
- 
-@@ -213,7 +213,7 @@ static int run(int argc, char *argv[]) {
-                 }
- 
-                 /* Flush out all rules */
--                (void) write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
-+                (void) write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", 0);
- 
-                 STRV_FOREACH(f, files) {
-                         k = apply_file(*f, true);
-diff --git a/src/core/main.c b/src/core/main.c
-index bcce7178a8..4199cedab9 100644
---- a/src/core/main.c
-+++ b/src/core/main.c
-@@ -1285,7 +1285,7 @@ static int bump_unix_max_dgram_qlen(void) {
-         if (v >= DEFAULT_UNIX_MAX_DGRAM_QLEN)
-                 return 0;
- 
--        r = write_string_filef("/proc/sys/net/unix/max_dgram_qlen", WRITE_STRING_FILE_DISABLE_BUFFER, "%lu", DEFAULT_UNIX_MAX_DGRAM_QLEN);
-+        r = write_string_filef("/proc/sys/net/unix/max_dgram_qlen", 0, "%lu", DEFAULT_UNIX_MAX_DGRAM_QLEN);
-         if (r < 0)
-                 return log_full_errno(IN_SET(r, -EROFS, -EPERM, -EACCES) ? LOG_DEBUG : LOG_WARNING, r,
-                                       "Failed to bump AF_UNIX datagram queue length, ignoring: %m");
-@@ -1509,7 +1509,7 @@ static void initialize_core_pattern(bool skip_setup) {
-         if (getpid_cached() != 1)
-                 return;
- 
--        r = write_string_file("/proc/sys/kernel/core_pattern", arg_early_core_pattern, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/proc/sys/kernel/core_pattern", arg_early_core_pattern, 0);
-         if (r < 0)
-                 log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m", arg_early_core_pattern);
- }
-diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c
-index b95e6239d4..fdbdaaaccb 100644
---- a/src/core/smack-setup.c
-+++ b/src/core/smack-setup.c
-@@ -325,17 +325,17 @@ int mac_smack_setup(bool *loaded_policy) {
-         }
- 
- #ifdef SMACK_RUN_LABEL
--        r = write_string_file("/proc/self/attr/current", SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/proc/self/attr/current", SMACK_RUN_LABEL, 0);
-         if (r < 0)
-                 log_warning_errno(r, "Failed to set SMACK label \"" SMACK_RUN_LABEL "\" on self: %m");
--        r = write_string_file("/sys/fs/smackfs/ambient", SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/sys/fs/smackfs/ambient", SMACK_RUN_LABEL, 0);
-         if (r < 0)
-                 log_warning_errno(r, "Failed to set SMACK ambient label \"" SMACK_RUN_LABEL "\": %m");
-         r = write_string_file("/sys/fs/smackfs/netlabel",
--                              "0.0.0.0/0 " SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
-+                              "0.0.0.0/0 " SMACK_RUN_LABEL, 0);
-         if (r < 0)
-                 log_warning_errno(r, "Failed to set SMACK netlabel rule \"0.0.0.0/0 " SMACK_RUN_LABEL "\": %m");
--        r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", 0);
-         if (r < 0)
-                 log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m");
- #endif
-diff --git a/src/hibernate-resume/hibernate-resume.c b/src/hibernate-resume/hibernate-resume.c
-index 17e7cd1a00..87a7667716 100644
---- a/src/hibernate-resume/hibernate-resume.c
-+++ b/src/hibernate-resume/hibernate-resume.c
-@@ -45,7 +45,7 @@ int main(int argc, char *argv[]) {
-                 return EXIT_FAILURE;
-         }
- 
--        r = write_string_file("/sys/power/resume", major_minor, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/sys/power/resume", major_minor, 0);
-         if (r < 0) {
-                 log_error_errno(r, "Failed to write '%s' to /sys/power/resume: %m", major_minor);
-                 return EXIT_FAILURE;
-diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c
-index c4a7f2f3d3..bcac758284 100644
---- a/src/libsystemd/sd-device/sd-device.c
-+++ b/src/libsystemd/sd-device/sd-device.c
-@@ -1849,7 +1849,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr,
-         if (!value)
-                 return -ENOMEM;
- 
--        r = write_string_file(path, value, WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_NOFOLLOW);
-+        r = write_string_file(path, value, 0 | WRITE_STRING_FILE_NOFOLLOW);
-         if (r < 0) {
-                 if (r == -ELOOP)
-                         return -EINVAL;
-diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
-index 30b9a66334..cc1d577933 100644
---- a/src/login/logind-dbus.c
-+++ b/src/login/logind-dbus.c
-@@ -1325,7 +1325,7 @@ static int trigger_device(Manager *m, sd_device *d) {
-                 if (!t)
-                         return -ENOMEM;
- 
--                (void) write_string_file(t, "change", WRITE_STRING_FILE_DISABLE_BUFFER);
-+                (void) write_string_file(t, "change", 0);
-         }
- 
-         return 0;
-diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c
-index 0462b46413..7c53d41483 100644
---- a/src/nspawn/nspawn-cgroup.c
-+++ b/src/nspawn/nspawn-cgroup.c
-@@ -123,7 +123,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) {
-         fn = strjoina(tree, cgroup, "/cgroup.procs");
- 
-         sprintf(pid_string, PID_FMT, pid);
--        r = write_string_file(fn, pid_string, WRITE_STRING_FILE_DISABLE_BUFFER|WRITE_STRING_FILE_MKDIR_0755);
-+        r = write_string_file(fn, pid_string, WRITE_STRING_FILE_MKDIR_0755);
-         if (r < 0) {
-                 log_error_errno(r, "Failed to move process: %m");
-                 goto finish;
-diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 2aec8041f0..841542f2f3 100644
---- a/src/nspawn/nspawn.c
-+++ b/src/nspawn/nspawn.c
-@@ -2357,7 +2357,7 @@ static int reset_audit_loginuid(void) {
-         if (streq(p, "4294967295"))
-                 return 0;
- 
--        r = write_string_file("/proc/self/loginuid", "4294967295", WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/proc/self/loginuid", "4294967295", 0);
-         if (r < 0) {
-                 log_error_errno(r,
-                                 "Failed to reset audit login UID. This probably means that your kernel is too\n"
-@@ -3566,13 +3566,13 @@ static int setup_uid_map(pid_t pid) {
- 
-         xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid);
-         xsprintf(line, UID_FMT " " UID_FMT " " UID_FMT "\n", 0, arg_uid_shift, arg_uid_range);
--        r = write_string_file(uid_map, line, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file(uid_map, line, 0);
-         if (r < 0)
-                 return log_error_errno(r, "Failed to write UID map: %m");
- 
-         /* We always assign the same UID and GID ranges */
-         xsprintf(uid_map, "/proc/" PID_FMT "/gid_map", pid);
--        r = write_string_file(uid_map, line, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file(uid_map, line, 0);
-         if (r < 0)
-                 return log_error_errno(r, "Failed to write GID map: %m");
- 
-diff --git a/src/shared/sysctl-util.c b/src/shared/sysctl-util.c
-index 93bdcf11bf..68cddb7a9f 100644
---- a/src/shared/sysctl-util.c
-+++ b/src/shared/sysctl-util.c
-@@ -88,7 +88,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c
- 
-         log_debug("Setting '%s' to '%s'", p, value);
- 
--        return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER);
-+        return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | 0);
- }
- 
- int sysctl_read(const char *property, char **content) {
-diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
-index b9fe96635d..f168d7f890 100644
---- a/src/sleep/sleep.c
-+++ b/src/sleep/sleep.c
-@@ -54,7 +54,7 @@ static int write_hibernate_location_info(void) {
- 
-         /* if it's a swap partition, we just write the disk to /sys/power/resume */
-         if (streq(type, "partition")) {
--                r = write_string_file("/sys/power/resume", device, WRITE_STRING_FILE_DISABLE_BUFFER);
-+                r = write_string_file("/sys/power/resume", device, 0);
-                 if (r < 0)
-                         return log_debug_errno(r, "Failed to write partition device to /sys/power/resume: %m");
- 
-@@ -98,14 +98,14 @@ static int write_hibernate_location_info(void) {
- 
-         offset = fiemap->fm_extents[0].fe_physical / page_size();
-         xsprintf(offset_str, "%" PRIu64, offset);
--        r = write_string_file("/sys/power/resume_offset", offset_str, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/sys/power/resume_offset", offset_str, 0);
-         if (r < 0)
-                 return log_debug_errno(r, "Failed to write offset '%s': %m", offset_str);
- 
-         log_debug("Wrote calculated resume_offset value to /sys/power/resume_offset: %s", offset_str);
- 
-         xsprintf(device_str, "%lx", (unsigned long)stb.st_dev);
--        r = write_string_file("/sys/power/resume", device_str, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/sys/power/resume", device_str, 0);
-         if (r < 0)
-                 return log_debug_errno(r, "Failed to write device '%s': %m", device_str);
- 
-@@ -121,7 +121,7 @@ static int write_mode(char **modes) {
-         STRV_FOREACH(mode, modes) {
-                 int k;
- 
--                k = write_string_file("/sys/power/disk", *mode, WRITE_STRING_FILE_DISABLE_BUFFER);
-+                k = write_string_file("/sys/power/disk", *mode, 0);
-                 if (k >= 0)
-                         return 0;
- 
-@@ -140,7 +140,7 @@ static int write_state(FILE **f, char **states) {
-         STRV_FOREACH(state, states) {
-                 int k;
- 
--                k = write_string_stream(*f, *state, WRITE_STRING_FILE_DISABLE_BUFFER);
-+                k = write_string_stream(*f, *state, 0);
-                 if (k >= 0)
-                         return 0;
-                 log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", *state);
-diff --git a/src/udev/udevadm-trigger.c b/src/udev/udevadm-trigger.c
-index 77d95e513f..25ce4abfb1 100644
---- a/src/udev/udevadm-trigger.c
-+++ b/src/udev/udevadm-trigger.c
-@@ -43,7 +43,7 @@ static int exec_list(sd_device_enumerator *e, const char *action, Set *settle_se
-                 if (!filename)
-                         return log_oom();
- 
--                r = write_string_file(filename, action, WRITE_STRING_FILE_DISABLE_BUFFER);
-+                r = write_string_file(filename, action, 0);
-                 if (r < 0) {
-                         log_full_errno(r == -ENOENT ? LOG_DEBUG : LOG_ERR, r,
-                                        "Failed to write '%s' to '%s': %m", action, filename);
-diff --git a/src/udev/udevd.c b/src/udev/udevd.c
-index cb5123042a..ea309a9e7f 100644
---- a/src/udev/udevd.c
-+++ b/src/udev/udevd.c
-@@ -1113,7 +1113,7 @@ static int synthesize_change_one(sd_device *dev, const char *syspath) {
- 
-         filename = strjoina(syspath, "/uevent");
-         log_device_debug(dev, "device is closed, synthesising 'change' on %s", syspath);
--        r = write_string_file(filename, "change", WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file(filename, "change", 0);
-         if (r < 0)
-                 return log_device_debug_errno(dev, r, "Failed to write 'change' to %s: %m", filename);
-         return 0;
-diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
-index 75d052ae70..5a15c939d8 100644
---- a/src/vconsole/vconsole-setup.c
-+++ b/src/vconsole/vconsole-setup.c
-@@ -117,7 +117,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) {
- static int toggle_utf8_sysfs(bool utf8) {
-         int r;
- 
--        r = write_string_file("/sys/module/vt/parameters/default_utf8", one_zero(utf8), WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/sys/module/vt/parameters/default_utf8", one_zero(utf8), 0);
-         if (r < 0)
-                 return log_warning_errno(r, "Failed to %s sysfs UTF-8 flag: %m", enable_disable(utf8));
- 
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0001-meson-Fix-reallocarray-check.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0001-meson-Fix-reallocarray-check.patch
deleted file mode 100644
index d3d339d..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0001-meson-Fix-reallocarray-check.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 1ebf1a1df17afd8b89f84b1928a89069035bf20b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 12 Dec 2020 16:15:57 -0800
-Subject: [PATCH] meson: Fix reallocarray check
-
-reallocarray() is defined in stdlib.h, so that would be right header to
-check for its presense.
-
-Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/17951]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/meson.build
-+++ b/meson.build
-@@ -501,7 +501,7 @@ foreach ident : [
-                                  #include <sys/stat.h>
-                                  #include <unistd.h>'''],
-         ['explicit_bzero' ,   '''#include <string.h>'''],
--        ['reallocarray',      '''#include <malloc.h>'''],
-+        ['reallocarray',      '''#include <stdlib.h>'''],
-         ['set_mempolicy',     '''#include <stdlib.h>
-                                  #include <unistd.h>'''],
-         ['get_mempolicy',     '''#include <stdlib.h>
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0002-don-t-use-glibc-specific-qsort_r.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0002-don-t-use-glibc-specific-qsort_r.patch
deleted file mode 100644
index c6213ab..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0002-don-t-use-glibc-specific-qsort_r.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From 1eb84534dea05d41afed1d898cba212ad7d310dd Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 13:41:41 +0800
-Subject: [PATCH 02/24] don't use glibc-specific qsort_r
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-[Rebased for v241]
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[Rebased for v242]
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
----
- src/basic/sort-util.h              | 14 --------------
- src/libsystemd/sd-hwdb/hwdb-util.c | 19 ++++++++++++++-----
- src/shared/format-table.c          | 36 ++++++++++++++++++++++++------------
- 3 files changed, 38 insertions(+), 31 deletions(-)
-
-diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
-index e029f8646e..27d68b341c 100644
---- a/src/basic/sort-util.h
-+++ b/src/basic/sort-util.h
-@@ -54,17 +54,3 @@ static inline void qsort_safe(void *base, size_t nmemb, size_t size, __compar_fn
-                 int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = func; \
-                 qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \
-         })
--
--static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, __compar_d_fn_t compar, void *userdata) {
--        if (nmemb <= 1)
--                return;
--
--        assert(base);
--        qsort_r(base, nmemb, size, compar, userdata);
--}
--
--#define typesafe_qsort_r(p, n, func, userdata)                          \
--        ({                                                              \
--                int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \
--                qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \
--        })
-diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c b/src/libsystemd/sd-hwdb/hwdb-util.c
-index c83575c7c8..72f8f3a050 100644
---- a/src/libsystemd/sd-hwdb/hwdb-util.c
-+++ b/src/libsystemd/sd-hwdb/hwdb-util.c
-@@ -128,9 +128,13 @@ static void trie_free(struct trie *trie) {
- 
- DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
- 
--static int trie_values_cmp(const struct trie_value_entry *a, const struct trie_value_entry *b, struct trie *trie) {
--        return strcmp(trie->strings->buf + a->key_off,
--                      trie->strings->buf + b->key_off);
-+static struct trie *trie_node_add_value_trie;
-+static int trie_values_cmp(const void *v1, const void *v2) {
-+        const struct trie_value_entry *a = v1;
-+        const struct trie_value_entry *b = v2;
-+
-+        return strcmp(trie_node_add_value_trie->strings->buf + a->key_off,
-+                      trie_node_add_value_trie->strings->buf + b->key_off);
- }
- 
- static int trie_node_add_value(struct trie *trie, struct trie_node *node,
-@@ -158,7 +162,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
-                         .value_off = v,
-                 };
- 
--                val = typesafe_bsearch_r(&search, node->values, node->values_count, trie_values_cmp, trie);
-+                trie_node_add_value_trie = trie;
-+                val = bsearch(&search, node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp);
-+                trie_node_add_value_trie = NULL;
-+
-                 if (val) {
-                         /* At this point we have 2 identical properties on the same match-string.
-                          * Since we process files in order, we just replace the previous value. */
-@@ -184,7 +191,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
-                 .line_number = line_number,
-         };
-         node->values_count++;
--        typesafe_qsort_r(node->values, node->values_count, trie_values_cmp, trie);
-+        trie_node_add_value_trie = trie;
-+        qsort(node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp);
-+        trie_node_add_value_trie = NULL;
-         return 0;
- }
- 
-diff --git a/src/shared/format-table.c b/src/shared/format-table.c
-index a5c0a99b08..d595cbe372 100644
---- a/src/shared/format-table.c
-+++ b/src/shared/format-table.c
-@@ -850,31 +850,33 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t
-         return CMP(index_a, index_b);
- }
- 
--static int table_data_compare(const size_t *a, const size_t *b, Table *t) {
-+static Table *user_table;
-+static int table_data_compare(const void *x, const void *y) {
-+        const size_t *a = x, *b=y;
-         size_t i;
-         int r;
- 
--        assert(t);
--        assert(t->sort_map);
-+        assert(user_table);
-+        assert(user_table->sort_map);
- 
-         /* Make sure the header stays at the beginning */
--        if (*a < t->n_columns && *b < t->n_columns)
-+        if (*a < user_table->n_columns && *b < user_table->n_columns)
-                 return 0;
--        if (*a < t->n_columns)
-+        if (*a < user_table->n_columns)
-                 return -1;
--        if (*b < t->n_columns)
-+        if (*b < user_table->n_columns)
-                 return 1;
- 
-         /* Order other lines by the sorting map */
--        for (i = 0; i < t->n_sort_map; i++) {
-+        for (i = 0; i < user_table->n_sort_map; i++) {
-                 TableData *d, *dd;
- 
--                d = t->data[*a + t->sort_map[i]];
--                dd = t->data[*b + t->sort_map[i]];
-+                d = user_table->data[*a + user_table->sort_map[i]];
-+                dd = user_table->data[*b + user_table->sort_map[i]];
- 
-                 r = cell_data_compare(d, *a, dd, *b);
-                 if (r != 0)
--                        return t->reverse_map && t->reverse_map[t->sort_map[i]] ? -r : r;
-+                        return user_table->reverse_map && user_table->reverse_map[user_table->sort_map[i]] ? -r : r;
-         }
- 
-         /* Order identical lines by the order there were originally added in */
-@@ -1107,7 +1109,12 @@ int table_print(Table *t, FILE *f) {
-                 for (i = 0; i < n_rows; i++)
-                         sorted[i] = i * t->n_columns;
- 
--                typesafe_qsort_r(sorted, n_rows, table_data_compare, t);
-+                if (n_rows <= 1)
-+                        return 0;
-+                assert(sorted);
-+                user_table = t;
-+                qsort(sorted, n_rows, sizeof(size_t), table_data_compare);
-+                user_table = NULL;
-         }
- 
-         if (t->display_map)
-@@ -1534,7 +1541,12 @@ int table_to_json(Table *t, JsonVariant **ret) {
-                 for (i = 0; i < n_rows; i++)
-                         sorted[i] = i * t->n_columns;
- 
--                typesafe_qsort_r(sorted, n_rows, table_data_compare, t);
-+                if (n_rows <= 1)
-+                        return 0;
-+                assert(sorted);
-+                user_table = t;
-+                qsort(sorted, n_rows, sizeof(size_t), table_data_compare);
-+                user_table = NULL;
-         }
- 
-         if (t->display_map)
--- 
-2.11.0
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0002-src-login-brightness.c-include-sys-wait.h.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0002-src-login-brightness.c-include-sys-wait.h.patch
deleted file mode 100644
index dcae668..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0002-src-login-brightness.c-include-sys-wait.h.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Include sys/wait.h
-
-Fixes:
-src/login/logind-brightness.c:158:85: error: 'WEXITED' undeclared (first use in this function); did you mean 'WIFEXITED'?
-  158 |         r = sd_event_add_child(w->manager->event, &w->child_event_source, w->child, WEXITED, on_brightness_writer_exit, w);
-      |                                                                                     ^~~~~~~
-
-Upstream-Status: Pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- src/login/logind-brightness.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/login/logind-brightness.c b/src/login/logind-brightness.c
-index 8dfa97d7ae..bddd4a2727 100644
---- a/src/login/logind-brightness.c
-+++ b/src/login/logind-brightness.c
-@@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- 
-+#include <sys/wait.h>
- #include "bus-util.h"
- #include "device-util.h"
- #include "hash-funcs.h"
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
deleted file mode 100644
index 2e39f7a..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From a9421d55102fc84f77f7c21a2479fcd00652b896 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 13:55:12 +0800
-Subject: [PATCH 03/24] missing_type.h: add __compare_fn_t and comparison_fn_t
-
-Make it work with musl where comparison_fn_t and __compare_fn_t
-is not provided.
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[Rebased for v242]
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
----
- src/basic/missing_type.h | 9 +++++++++
- src/basic/sort-util.h    | 1 +
- src/journal/catalog.c    | 1 +
- 3 files changed, 11 insertions(+)
-
-diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
-index bf8a6caa1b..2134fe5095 100644
---- a/src/basic/missing_type.h
-+++ b/src/basic/missing_type.h
-@@ -10,3 +10,12 @@
- #if !HAVE_CHAR16_T
- #define char16_t uint16_t
- #endif
-+
-+#ifndef __GLIBC__
-+typedef int (*comparison_fn_t)(const void *, const void *);
-+#endif
-+
-+#ifndef __COMPAR_FN_T
-+#define __COMPAR_FN_T
-+typedef int (*__compar_fn_t)(const void *, const void *);
-+#endif
-diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
-index e029f86..7247d40 100644
---- a/src/basic/sort-util.h
-+++ b/src/basic/sort-util.h
-@@ -4,6 +4,7 @@
- #include <stdlib.h>
- 
- #include "macro.h"
-+#include "missing.h"
- 
- void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size,
-                  __compar_d_fn_t compar, void *arg);
-diff --git a/src/journal/catalog.c b/src/journal/catalog.c
-index 7beffc1e1a..4818a2e5cc 100644
---- a/src/journal/catalog.c
-+++ b/src/journal/catalog.c
-@@ -29,6 +29,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "tmpfile-util.h"
-+#include "missing.h"
- 
- const char * const catalog_file_dirs[] = {
-         "/usr/local/lib/systemd/catalog/",
--- 
-2.11.0
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0003-src-basic-copy.c-include-signal.h.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0003-src-basic-copy.c-include-signal.h.patch
deleted file mode 100644
index 7ee0d48..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0003-src-basic-copy.c-include-signal.h.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Include signal.h
-
-Fixes several signal set related errors:
-src/basic/copy.c:92:19: error: implicit declaration of function 'sigemptyset' [-Werror=implicit-function-declaration]
-src/basic/copy.c:93:19: error: implicit declaration of function 'sigaddset' [-Werror=implicit-function-declaration]
-src/basic/copy.c:93:34: error: 'SIGINT' undeclared (first use in this function)
-src/basic/copy.c:95:13: error: implicit declaration of function 'sigtimedwait' [-Werror=implicit-function-declaration]
-
-Upstream-Status: Pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- src/basic/copy.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/basic/copy.c b/src/basic/copy.c
-index ca311e021e..3cf7fc1697 100644
---- a/src/basic/copy.c
-+++ b/src/basic/copy.c
-@@ -12,6 +12,7 @@
- #include <sys/xattr.h>
- #include <time.h>
- #include <unistd.h>
-+#include <signal.h>
- 
- #include "alloc-util.h"
- #include "btrfs-util.h"
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0004-add-fallback-parse_printf_format-implementation.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0004-add-fallback-parse_printf_format-implementation.patch
deleted file mode 100644
index a2aad40..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0004-add-fallback-parse_printf_format-implementation.patch
+++ /dev/null
@@ -1,432 +0,0 @@
-From 7bcf3b166694090497a0acd2c5299e4e04fcc9b6 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 14:04:21 +0800
-Subject: [PATCH 04/24] add fallback parse_printf_format implementation
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Emil Renner Berthing <systemd@esmil.dk>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- meson.build                     |   1 +
- src/basic/meson.build           |   5 +
- src/basic/parse-printf-format.c | 273 ++++++++++++++++++++++++++++++++++++++++
- src/basic/parse-printf-format.h |  57 +++++++++
- src/basic/stdio-util.h          |   2 +-
- src/journal/journal-send.c      |   2 +-
- 6 files changed, 338 insertions(+), 2 deletions(-)
- 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 79b762faeb..7f8c679411 100644
---- a/meson.build
-+++ b/meson.build
-@@ -613,6 +613,7 @@ endif
- foreach header : ['crypt.h',
-                   'linux/memfd.h',
-                   'linux/vm_sockets.h',
-+                  'printf.h',
-                   'sys/auxv.h',
-                   'valgrind/memcheck.h',
-                   'valgrind/valgrind.h',
-diff --git a/src/basic/meson.build b/src/basic/meson.build
-index d6caf28f14..32c1acf349 100644
---- a/src/basic/meson.build
-+++ b/src/basic/meson.build
-@@ -312,6 +312,11 @@ foreach item : [['af',     af_list_txt,     'af',         ''],
- endforeach
- 
- basic_sources += generated_gperf_headers
-+
-+if conf.get('HAVE_PRINTF_H') != 1
-+        basic_sources += [files('parse-printf-format.c')]
-+endif
-+
- basic_gcrypt_sources = files(
-         'gcrypt-util.c',
-         'gcrypt-util.h')
-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 @@
-+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-+
-+/***
-+  This file is part of systemd.
-+
-+  Copyright 2014 Emil Renner Berthing <systemd@esmil.dk>
-+
-+  With parts from the musl C library
-+  Copyright 2005-2014 Rich Felker, et al.
-+
-+  systemd is free software; you can redistribute it and/or modify it
-+  under the terms of the GNU Lesser General Public License as published by
-+  the Free Software Foundation; either version 2.1 of the License, or
-+  (at your option) any later version.
-+
-+  systemd is distributed in the hope that it will be useful, but
-+  WITHOUT ANY WARRANTY; without even the implied warranty of
-+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+  Lesser General Public License for more details.
-+
-+  You should have received a copy of the GNU Lesser General Public License
-+  along with systemd; If not, see <http://www.gnu.org/licenses/>.
-+***/
-+
-+#include <stddef.h>
-+#include <string.h>
-+
-+#include "parse-printf-format.h"
-+
-+static const char *consume_nonarg(const char *fmt)
-+{
-+        do {
-+                if (*fmt == '\0')
-+                        return fmt;
-+        } while (*fmt++ != '%');
-+        return fmt;
-+}
-+
-+static const char *consume_num(const char *fmt)
-+{
-+        for (;*fmt >= '0' && *fmt <= '9'; fmt++)
-+                /* do nothing */;
-+        return fmt;
-+}
-+
-+static const char *consume_argn(const char *fmt, size_t *arg)
-+{
-+        const char *p = fmt;
-+        size_t val = 0;
-+
-+        if (*p < '1' || *p > '9')
-+                return fmt;
-+        do {
-+                val = 10*val + (*p++ - '0');
-+        } while (*p >= '0' && *p <= '9');
-+
-+        if (*p != '$')
-+                return fmt;
-+        *arg = val;
-+        return p+1;
-+}
-+
-+static const char *consume_flags(const char *fmt)
-+{
-+        while (1) {
-+                switch (*fmt) {
-+                case '#':
-+                case '0':
-+                case '-':
-+                case ' ':
-+                case '+':
-+                case '\'':
-+                case 'I':
-+                        fmt++;
-+                        continue;
-+                }
-+                return fmt;
-+        }
-+}
-+
-+enum state {
-+        BARE,
-+        LPRE,
-+        LLPRE,
-+        HPRE,
-+        HHPRE,
-+        BIGLPRE,
-+        ZTPRE,
-+        JPRE,
-+        STOP
-+};
-+
-+enum type {
-+        NONE,
-+        PTR,
-+        INT,
-+        UINT,
-+        ULLONG,
-+        LONG,
-+        ULONG,
-+        SHORT,
-+        USHORT,
-+        CHAR,
-+        UCHAR,
-+        LLONG,
-+        SIZET,
-+        IMAX,
-+        UMAX,
-+        PDIFF,
-+        UIPTR,
-+        DBL,
-+        LDBL,
-+        MAXTYPE
-+};
-+
-+static const short pa_types[MAXTYPE] = {
-+        [NONE]   = PA_INT,
-+        [PTR]    = PA_POINTER,
-+        [INT]    = PA_INT,
-+        [UINT]   = PA_INT,
-+        [ULLONG] = PA_INT | PA_FLAG_LONG_LONG,
-+        [LONG]   = PA_INT | PA_FLAG_LONG,
-+        [ULONG]  = PA_INT | PA_FLAG_LONG,
-+        [SHORT]  = PA_INT | PA_FLAG_SHORT,
-+        [USHORT] = PA_INT | PA_FLAG_SHORT,
-+        [CHAR]   = PA_CHAR,
-+        [UCHAR]  = PA_CHAR,
-+        [LLONG]  = PA_INT | PA_FLAG_LONG_LONG,
-+        [SIZET]  = PA_INT | PA_FLAG_LONG,
-+        [IMAX]   = PA_INT | PA_FLAG_LONG_LONG,
-+        [UMAX]   = PA_INT | PA_FLAG_LONG_LONG,
-+        [PDIFF]  = PA_INT | PA_FLAG_LONG_LONG,
-+        [UIPTR]  = PA_INT | PA_FLAG_LONG,
-+        [DBL]    = PA_DOUBLE,
-+        [LDBL]   = PA_DOUBLE | PA_FLAG_LONG_DOUBLE
-+};
-+
-+#define S(x) [(x)-'A']
-+#define E(x) (STOP + (x))
-+
-+static const unsigned char states[]['z'-'A'+1] = {
-+        { /* 0: bare types */
-+                S('d') = E(INT), S('i') = E(INT),
-+                S('o') = E(UINT),S('u') = E(UINT),S('x') = E(UINT), S('X') = E(UINT),
-+                S('e') = E(DBL), S('f') = E(DBL), S('g') = E(DBL),  S('a') = E(DBL),
-+                S('E') = E(DBL), S('F') = E(DBL), S('G') = E(DBL),  S('A') = E(DBL),
-+                S('c') = E(CHAR),S('C') = E(INT),
-+                S('s') = E(PTR), S('S') = E(PTR), S('p') = E(UIPTR),S('n') = E(PTR),
-+                S('m') = E(NONE),
-+                S('l') = LPRE,   S('h') = HPRE, S('L') = BIGLPRE,
-+                S('z') = ZTPRE,  S('j') = JPRE, S('t') = ZTPRE
-+        }, { /* 1: l-prefixed */
-+                S('d') = E(LONG), S('i') = E(LONG),
-+                S('o') = E(ULONG),S('u') = E(ULONG),S('x') = E(ULONG),S('X') = E(ULONG),
-+                S('e') = E(DBL),  S('f') = E(DBL),  S('g') = E(DBL),  S('a') = E(DBL),
-+                S('E') = E(DBL),  S('F') = E(DBL),  S('G') = E(DBL),  S('A') = E(DBL),
-+                S('c') = E(INT),  S('s') = E(PTR),  S('n') = E(PTR),
-+                S('l') = LLPRE
-+        }, { /* 2: ll-prefixed */
-+                S('d') = E(LLONG), S('i') = E(LLONG),
-+                S('o') = E(ULLONG),S('u') = E(ULLONG),
-+                S('x') = E(ULLONG),S('X') = E(ULLONG),
-+                S('n') = E(PTR)
-+        }, { /* 3: h-prefixed */
-+                S('d') = E(SHORT), S('i') = E(SHORT),
-+                S('o') = E(USHORT),S('u') = E(USHORT),
-+                S('x') = E(USHORT),S('X') = E(USHORT),
-+                S('n') = E(PTR),
-+                S('h') = HHPRE
-+        }, { /* 4: hh-prefixed */
-+                S('d') = E(CHAR), S('i') = E(CHAR),
-+                S('o') = E(UCHAR),S('u') = E(UCHAR),
-+                S('x') = E(UCHAR),S('X') = E(UCHAR),
-+                S('n') = E(PTR)
-+        }, { /* 5: L-prefixed */
-+                S('e') = E(LDBL),S('f') = E(LDBL),S('g') = E(LDBL), S('a') = E(LDBL),
-+                S('E') = E(LDBL),S('F') = E(LDBL),S('G') = E(LDBL), S('A') = E(LDBL),
-+                S('n') = E(PTR)
-+        }, { /* 6: z- or t-prefixed (assumed to be same size) */
-+                S('d') = E(PDIFF),S('i') = E(PDIFF),
-+                S('o') = E(SIZET),S('u') = E(SIZET),
-+                S('x') = E(SIZET),S('X') = E(SIZET),
-+                S('n') = E(PTR)
-+        }, { /* 7: j-prefixed */
-+                S('d') = E(IMAX), S('i') = E(IMAX),
-+                S('o') = E(UMAX), S('u') = E(UMAX),
-+                S('x') = E(UMAX), S('X') = E(UMAX),
-+                S('n') = E(PTR)
-+        }
-+};
-+
-+size_t parse_printf_format(const char *fmt, size_t n, int *types)
-+{
-+        size_t i = 0;
-+        size_t last = 0;
-+
-+        memset(types, 0, n);
-+
-+        while (1) {
-+                size_t arg;
-+                unsigned int state;
-+
-+                fmt = consume_nonarg(fmt);
-+                if (*fmt == '\0')
-+                        break;
-+                if (*fmt == '%') {
-+                        fmt++;
-+                        continue;
-+                }
-+                arg = 0;
-+                fmt = consume_argn(fmt, &arg);
-+                /* flags */
-+                fmt = consume_flags(fmt);
-+                /* width */
-+                if (*fmt == '*') {
-+                        size_t warg = 0;
-+                        fmt = consume_argn(fmt+1, &warg);
-+                        if (warg == 0)
-+                                warg = ++i;
-+                        if (warg > last)
-+                                last = warg;
-+                        if (warg <= n && types[warg-1] == NONE)
-+                                types[warg-1] = INT;
-+                } else
-+                        fmt = consume_num(fmt);
-+                /* precision */
-+                if (*fmt == '.') {
-+                        fmt++;
-+                        if (*fmt == '*') {
-+                                size_t parg = 0;
-+                                fmt = consume_argn(fmt+1, &parg);
-+                                if (parg == 0)
-+                                        parg = ++i;
-+                                if (parg > last)
-+                                        last = parg;
-+                                if (parg <= n && types[parg-1] == NONE)
-+                                        types[parg-1] = INT;
-+                        } else {
-+                                if (*fmt == '-')
-+                                        fmt++;
-+                                fmt = consume_num(fmt);
-+                        }
-+                }
-+                /* length modifier and conversion specifier */
-+                state = BARE;
-+                do {
-+                        unsigned char c = *fmt++;
-+
-+                        if (c < 'A' || c > 'z')
-+                                continue;
-+                        state = states[state]S(c);
-+                        if (state == 0)
-+                                continue;
-+                } while (state < STOP);
-+
-+                if (state == E(NONE))
-+                        continue;
-+
-+                if (arg == 0)
-+                        arg = ++i;
-+                if (arg > last)
-+                        last = arg;
-+                if (arg <= n)
-+                        types[arg-1] = state - STOP;
-+        }
-+
-+        if (last > n)
-+                last = n;
-+        for (i = 0; i < last; i++)
-+                types[i] = pa_types[types[i]];
-+
-+        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 @@
-+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-+
-+/***
-+  This file is part of systemd.
-+
-+  Copyright 2014 Emil Renner Berthing <systemd@esmil.dk>
-+
-+  With parts from the GNU C Library
-+  Copyright 1991-2014 Free Software Foundation, Inc.
-+
-+  systemd is free software; you can redistribute it and/or modify it
-+  under the terms of the GNU Lesser General Public License as published by
-+  the Free Software Foundation; either version 2.1 of the License, or
-+  (at your option) any later version.
-+
-+  systemd is distributed in the hope that it will be useful, but
-+  WITHOUT ANY WARRANTY; without even the implied warranty of
-+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+  Lesser General Public License for more details.
-+
-+  You should have received a copy of the GNU Lesser General Public License
-+  along with systemd; If not, see <http://www.gnu.org/licenses/>.
-+***/
-+
-+#pragma once
-+
-+#include "config.h"
-+
-+#if HAVE_PRINTF_H
-+#include <printf.h>
-+#else
-+
-+#include <stddef.h>
-+
-+enum {				/* C type: */
-+  PA_INT,			/* int */
-+  PA_CHAR,			/* int, cast to char */
-+  PA_WCHAR,			/* wide char */
-+  PA_STRING,			/* const char *, a '\0'-terminated string */
-+  PA_WSTRING,			/* const wchar_t *, wide character string */
-+  PA_POINTER,			/* void * */
-+  PA_FLOAT,			/* float */
-+  PA_DOUBLE,			/* double */
-+  PA_LAST
-+};
-+
-+/* Flag bits that can be set in a type returned by `parse_printf_format'.  */
-+#define	PA_FLAG_MASK		0xff00
-+#define	PA_FLAG_LONG_LONG	(1 << 8)
-+#define	PA_FLAG_LONG_DOUBLE	PA_FLAG_LONG_LONG
-+#define	PA_FLAG_LONG		(1 << 9)
-+#define	PA_FLAG_SHORT		(1 << 10)
-+#define	PA_FLAG_PTR		(1 << 11)
-+
-+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 c3b9448d4f..2937aa13b1 100644
---- a/src/basic/stdio-util.h
-+++ b/src/basic/stdio-util.h
-@@ -1,13 +1,13 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- #pragma once
- 
--#include <printf.h>
- #include <stdarg.h>
- #include <stdio.h>
- #include <sys/types.h>
- 
- #include "macro.h"
- #include "memory-util.h"
-+#include "parse-printf-format.h"
- 
- #define snprintf_ok(buf, len, fmt, ...) \
-         ((size_t) snprintf(buf, len, fmt, __VA_ARGS__) < (len))
-diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
-index 5ef11fa1a4..6384ab620c 100644
---- a/src/journal/journal-send.c
-+++ b/src/journal/journal-send.c
-@@ -2,7 +2,6 @@
- 
- #include <errno.h>
- #include <fcntl.h>
--#include <printf.h>
- #include <stddef.h>
- #include <sys/socket.h>
- #include <sys/un.h>
-@@ -21,6 +20,7 @@
- #include "stdio-util.h"
- #include "string-util.h"
- #include "tmpfile-util.h"
-+#include "parse-printf-format.h"
- 
- #define SNDBUF_SIZE (8*1024*1024)
- 
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch
deleted file mode 100644
index 0f75e8c..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Handle __cpu_mask usage
-
-Fixes errors:
-
-src/test/test-cpu-set-util.c:18:54: error: '__cpu_mask' undeclared (first use in this function)
-src/test/test-sizeof.c:73:14: error: '__cpu_mask' undeclared (first use in this function)
-
-__cpu_mask is an internal type of glibc's cpu_set implementation, not
-part of the POSIX definition, which is problematic when building with
-musl, which does not define a matching type.  From inspection of musl's
-sched.h, however, it is clear that the corresponding type would be
-unsigned long, which does match glibc's actual __CPU_MASK_TYPE.  So,
-add a typedef to cpu-set-util.h defining __cpu_mask appropriately.
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- src/shared/cpu-set-util.h | 2 ++
- src/test/test-sizeof.c    | 2 +-
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h
-index 27812dfd59..f698f9df83 100644
---- a/src/shared/cpu-set-util.h
-+++ b/src/shared/cpu-set-util.h
-@@ -6,6 +6,8 @@
- #include "macro.h"
- #include "missing_syscall.h"
- 
-+typedef unsigned long __cpu_mask;
-+
- /* This wraps the libc interface with a variable to keep the allocated size. */
- typedef struct CPUSet {
-         cpu_set_t *set;
-diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
-index a710db5370..d1601ad929 100644
---- a/src/test/test-sizeof.c
-+++ b/src/test/test-sizeof.c
-@@ -1,6 +1,5 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- 
--#include <sched.h>
- #include <stdio.h>
- #include <string.h>
- 
-@@ -8,6 +7,7 @@
- #include <float.h>
- 
- #include "time-util.h"
-+#include "cpu-set-util.h"
- 
- /* Print information about various types. Useful when diagnosing
-  * gcc diagnostics on an unfamiliar architecture. */
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0005-src-basic-missing.h-check-for-missing-strndupa.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0005-src-basic-missing.h-check-for-missing-strndupa.patch
deleted file mode 100644
index adfc3b7..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0005-src-basic-missing.h-check-for-missing-strndupa.patch
+++ /dev/null
@@ -1,442 +0,0 @@
-From 399fd3eda3045636a70da438a0fd1406cc332ed1 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 14:18:21 +0800
-Subject: [PATCH 05/24] src/basic/missing.h: check for missing strndupa
-
-include missing.h  for definition of strndupa
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[Rebased for v242]
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- meson.build                                |  1 +
- src/backlight/backlight.c                  |  1 +
- src/basic/env-util.c                       |  1 +
- src/basic/missing_stdlib.h                 | 12 ++++++++++++
- src/basic/mkdir.c                          |  1 +
- src/basic/parse-util.c                     |  1 +
- src/basic/proc-cmdline.c                   |  1 +
- src/basic/procfs-util.c                    |  1 +
- src/basic/time-util.c                      |  1 +
- src/core/dbus-cgroup.c                     |  1 +
- src/core/dbus-util.c                       |  1 +
- src/core/kmod-setup.c                      |  1 +
- src/core/service.c                         |  1 +
- src/journal/journalctl.c                   |  1 +
- src/libsystemd/sd-bus/bus-message.c        |  1 +
- src/libsystemd/sd-bus/bus-objects.c        |  1 +
- src/libsystemd/sd-bus/test-bus-benchmark.c |  1 +
- src/locale/keymap-util.c                   |  1 +
- src/login/pam_systemd.c                    |  1 +
- src/network/generator/network-generator.c  |  1 +
- src/nspawn/nspawn-settings.c               |  1 +
- src/shared/dns-domain.c                    |  1 +
- src/shared/journal-importer.c              |  1 +
- src/shared/logs-show.c                     |  1 +
- src/shared/pager.c                         |  1 +
- src/shared/path-lookup.c                   |  1 +
- src/shared/uid-range.c                     |  1 +
- src/socket-proxy/socket-proxyd.c           |  1 +
- src/test/test-hexdecoct.c                  |  1 +
- src/udev/udev-builtin-path_id.c            |  1 +
- src/udev/udev-event.c                      |  1 +
- src/udev/udev-rules.c                      |  1 +
- 32 files changed, 43 insertions(+)
-
-diff --git a/meson.build b/meson.build
-index 7f8c679411..81c061b768 100644
---- a/meson.build
-+++ b/meson.build
-@@ -506,6 +506,7 @@ foreach ident : [
-                                  #include <unistd.h>'''],
-         ['get_mempolicy',     '''#include <stdlib.h>
-                                  #include <unistd.h>'''],
-+        ['strndupa' ,         '''#include <string.h>'''],
- ]
- 
-         have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
-diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
-index dfd6805398..c2b2ace6ec 100644
---- a/src/backlight/backlight.c
-+++ b/src/backlight/backlight.c
-@@ -17,6 +17,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "util.h"
-+#include "missing.h"
- 
- static int find_pci_or_platform_parent(sd_device *device, sd_device **ret) {
-         const char *subsystem, *sysname, *value;
-diff --git a/src/basic/env-util.c b/src/basic/env-util.c
-index a6503cf2b6..ceef9a62c8 100644
---- a/src/basic/env-util.c
-+++ b/src/basic/env-util.c
-@@ -16,6 +16,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "utf8.h"
-+#include "missing.h"
- 
- #define VALID_CHARS_ENV_NAME                    \
-         DIGITS LETTERS                          \
-diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
-index 188a8d4406..1e16ec287a 100644
---- a/src/basic/missing_stdlib.h
-+++ b/src/basic/missing_stdlib.h
-@@ -11,3 +11,15 @@
- #    error "neither secure_getenv nor __secure_getenv are available"
- #  endif
- #endif
-+
-+/* string.h */
-+#if ! HAVE_STRNDUPA
-+#define strndupa(s, n) \
-+  ({ \
-+    const char *__old = (s); \
-+    size_t __len = strnlen(__old, (n)); \
-+    char *__new = (char *)alloca(__len + 1); \
-+    __new[__len] = '\0'; \
-+    (char *)memcpy(__new, __old, __len); \
-+  })
-+#endif
-diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
-index 6b82eab640..51c6b78615 100644
---- a/src/basic/mkdir.c
-+++ b/src/basic/mkdir.c
-@@ -14,6 +14,7 @@
- #include "stat-util.h"
- #include "stdio-util.h"
- #include "user-util.h"
-+#include "missing.h"
- 
- int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir) {
-         struct stat st;
-diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
-index 115a1494a2..07a34bfd53 100644
---- a/src/basic/parse-util.c
-+++ b/src/basic/parse-util.c
-@@ -20,6 +20,7 @@
- #include "process-util.h"
- #include "stat-util.h"
- #include "string-util.h"
-+#include "missing.h"
- 
- int parse_boolean(const char *v) {
-         if (!v)
-diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c
-index 09169cf963..f411ba897f 100644
---- a/src/basic/proc-cmdline.c
-+++ b/src/basic/proc-cmdline.c
-@@ -15,6 +15,7 @@
- #include "string-util.h"
- #include "util.h"
- #include "virt.h"
-+#include "missing.h"
- 
- int proc_cmdline(char **ret) {
-         const char *e;
-diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
-index 7aaf95bfce..42ce53d5aa 100644
---- a/src/basic/procfs-util.c
-+++ b/src/basic/procfs-util.c
-@@ -11,6 +11,7 @@
- #include "procfs-util.h"
- #include "stdio-util.h"
- #include "string-util.h"
-+#include "missing.h"
- 
- int procfs_tasks_get_limit(uint64_t *ret) {
-         _cleanup_free_ char *value = NULL;
-diff --git a/src/basic/time-util.c b/src/basic/time-util.c
-index 3018e81acb..4e2b3b66c1 100644
---- a/src/basic/time-util.c
-+++ b/src/basic/time-util.c
-@@ -28,6 +28,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "time-util.h"
-+#include "missing.h"
- 
- static clockid_t map_clock_id(clockid_t c) {
- 
-diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
-index 2f2313c599..c9937f9d62 100644
---- a/src/core/dbus-cgroup.c
-+++ b/src/core/dbus-cgroup.c
-@@ -15,6 +15,7 @@
- #include "fileio.h"
- #include "limits-util.h"
- #include "path-util.h"
-+#include "missing.h"
- 
- static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_cgroup_device_policy, cgroup_device_policy, CGroupDevicePolicy);
- 
-diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c
-index 7862beaacb..19f6968cfe 100644
---- a/src/core/dbus-util.c
-+++ b/src/core/dbus-util.c
-@@ -7,6 +7,7 @@
- #include "unit-printf.h"
- #include "user-util.h"
- #include "unit.h"
-+#include "missing.h"
- 
- int bus_property_get_triggered_unit(
-                 sd_bus *bus,
-diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
-index a91cfebc67..a45961013f 100644
---- a/src/core/kmod-setup.c
-+++ b/src/core/kmod-setup.c
-@@ -11,6 +11,7 @@
- #include "kmod-setup.h"
- #include "macro.h"
- #include "string-util.h"
-+#include "missing.h"
- 
- #if HAVE_KMOD
- #include <libkmod.h>
-diff --git a/src/core/service.c b/src/core/service.c
-index 73b3c9c316..ef74f00a08 100644
---- a/src/core/service.c
-+++ b/src/core/service.c
-@@ -43,6 +43,7 @@
- #include "unit.h"
- #include "utf8.h"
- #include "util.h"
-+#include "missing.h"
- 
- static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
-         [SERVICE_DEAD] = UNIT_INACTIVE,
-diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
-index 6d6bb1cf63..6666349a35 100644
---- a/src/journal/journalctl.c
-+++ b/src/journal/journalctl.c
-@@ -70,6 +70,7 @@
- #include "unit-name.h"
- #include "user-util.h"
- #include "varlink.h"
-+#include "missing.h"
- 
- #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
- 
-diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
-index eb029e4453..f31fe9d5a8 100644
---- a/src/libsystemd/sd-bus/bus-message.c
-+++ b/src/libsystemd/sd-bus/bus-message.c
-@@ -21,6 +21,7 @@
- #include "strv.h"
- #include "time-util.h"
- #include "utf8.h"
-+#include "missing.h"
- 
- static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
- 
-diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c
-index ae643cacc7..1b752271a5 100644
---- a/src/libsystemd/sd-bus/bus-objects.c
-+++ b/src/libsystemd/sd-bus/bus-objects.c
-@@ -13,6 +13,7 @@
- #include "set.h"
- #include "string-util.h"
- #include "strv.h"
-+#include "missing.h"
- 
- static int node_vtable_get_userdata(
-                 sd_bus *bus,
-diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c b/src/libsystemd/sd-bus/test-bus-benchmark.c
-index 8de0a859ee..4fd0a2e692 100644
---- a/src/libsystemd/sd-bus/test-bus-benchmark.c
-+++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
-@@ -14,6 +14,7 @@
- #include "missing_resource.h"
- #include "time-util.h"
- #include "util.h"
-+#include "missing.h"
- 
- #define MAX_SIZE (2*1024*1024)
- 
-diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c
-index f8c36c94f5..41f5606aea 100644
---- a/src/locale/keymap-util.c
-+++ b/src/locale/keymap-util.c
-@@ -22,6 +22,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "tmpfile-util.h"
-+#include "missing.h"
- 
- static bool startswith_comma(const char *s, const char *prefix) {
-         s = startswith(s, prefix);
-diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c
-index 3f762cbbc3..005cfea658 100644
---- a/src/login/pam_systemd.c
-+++ b/src/login/pam_systemd.c
-@@ -28,6 +28,7 @@
- #include "hostname-util.h"
- #include "login-util.h"
- #include "macro.h"
-+#include "missing.h"
- #include "parse-util.h"
- #include "path-util.h"
- #include "process-util.h"
-diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c
-index 0b5af33566..9c808cd014 100644
---- a/src/network/generator/network-generator.c
-+++ b/src/network/generator/network-generator.c
-@@ -13,6 +13,7 @@
- #include "string-table.h"
- #include "string-util.h"
- #include "strv.h"
-+#include "missing.h"
- 
- /*
-   # .network
-diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c
-index 3a99736813..279fea4d88 100644
---- a/src/nspawn/nspawn-settings.c
-+++ b/src/nspawn/nspawn-settings.c
-@@ -16,6 +16,7 @@
- #include "strv.h"
- #include "user-util.h"
- #include "util.h"
-+#include "missing.h"
- 
- Settings *settings_new(void) {
-         Settings *s;
-diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c
-index f62ad0a0f5..f1a27e158d 100644
---- a/src/shared/dns-domain.c
-+++ b/src/shared/dns-domain.c
-@@ -24,6 +24,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "utf8.h"
-+#include "missing.h"
- 
- int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
-         const char *n;
-diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c
-index 7c4fc7021d..a6ff2214df 100644
---- a/src/shared/journal-importer.c
-+++ b/src/shared/journal-importer.c
-@@ -14,6 +14,7 @@
- #include "parse-util.h"
- #include "string-util.h"
- #include "unaligned.h"
-+#include "missing.h"
- 
- enum {
-         IMPORTER_STATE_LINE = 0,    /* waiting to read, or reading line */
-diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
-index b615c70dff..75b26e9c21 100644
---- a/src/shared/logs-show.c
-+++ b/src/shared/logs-show.c
-@@ -39,6 +39,7 @@
- #include "time-util.h"
- #include "utf8.h"
- #include "util.h"
-+#include "missing.h"
- 
- /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
- #define PRINT_LINE_THRESHOLD 3
-diff --git a/src/shared/pager.c b/src/shared/pager.c
-index 7c20b100b4..e4209d3a95 100644
---- a/src/shared/pager.c
-+++ b/src/shared/pager.c
-@@ -25,6 +25,7 @@
- #include "strv.h"
- #include "terminal-util.h"
- #include "util.h"
-+#include "missing.h"
- 
- static pid_t pager_pid = 0;
- 
-diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c
-index 6bf0ff0316..f6c8009cd2 100644
---- a/src/shared/path-lookup.c
-+++ b/src/shared/path-lookup.c
-@@ -20,6 +20,7 @@
- #include "tmpfile-util.h"
- #include "user-util.h"
- #include "util.h"
-+#include "missing.h"
- 
- int xdg_user_runtime_dir(char **ret, const char *suffix) {
-         const char *e;
-diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c
-index 7cb7d8a477..8b12b91084 100644
---- a/src/shared/uid-range.c
-+++ b/src/shared/uid-range.c
-@@ -9,6 +9,7 @@
- #include "sort-util.h"
- #include "uid-range.h"
- #include "user-util.h"
-+#include "missing.h"
- 
- static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
-         assert(range);
-diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c
-index abbbc9f2d6..6179b5851e 100644
---- a/src/socket-proxy/socket-proxyd.c
-+++ b/src/socket-proxy/socket-proxyd.c
-@@ -28,6 +28,7 @@
- #include "socket-util.h"
- #include "string-util.h"
- #include "util.h"
-+#include "missing.h"
- 
- #define BUFFER_SIZE (256 * 1024)
- 
-diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
-index 52217429b1..a05e7782f6 100644
---- a/src/test/test-hexdecoct.c
-+++ b/src/test/test-hexdecoct.c
-@@ -6,6 +6,7 @@
- #include "hexdecoct.h"
- #include "macro.h"
- #include "string-util.h"
-+#include "missing.h"
- 
- static void test_hexchar(void) {
-         assert_se(hexchar(0xa) == 'a');
-diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c
-index e8f1ce1354..8693cb02a4 100644
---- a/src/udev/udev-builtin-path_id.c
-+++ b/src/udev/udev-builtin-path_id.c
-@@ -23,6 +23,7 @@
- #include "strv.h"
- #include "sysexits.h"
- #include "udev-builtin.h"
-+#include "missing.h"
- 
- _printf_(2,3)
- static void path_prepend(char **path, const char *fmt, ...) {
-diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
-index 8cfa2cdf23..b0670c77ec 100644
---- a/src/udev/udev-event.c
-+++ b/src/udev/udev-event.c
-@@ -35,6 +35,7 @@
- #include "udev-util.h"
- #include "udev-watch.h"
- #include "user-util.h"
-+#include "missing.h"
- 
- typedef struct Spawn {
-         sd_device *device;
-diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
-index 1642f10535..fe2aa75478 100644
---- a/src/udev/udev-rules.c
-+++ b/src/udev/udev-rules.c
-@@ -28,6 +28,7 @@
- #include "udev-event.h"
- #include "udev-rules.h"
- #include "user-util.h"
-+#include "missing.h"
- 
- #define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
- 
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0006-Include-netinet-if_ether.h.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0006-Include-netinet-if_ether.h.patch
deleted file mode 100644
index 6d73d71..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0006-Include-netinet-if_ether.h.patch
+++ /dev/null
@@ -1,227 +0,0 @@
-Include netinet/if_ether.h
-
-Fixes
-/path/to/systemd/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr'
- struct ethhdr {
-        ^~~~~~
-
-and related arphdr, arpreq, and arpreq_old errors
-/path/to/systemd/recipe-sysroot/usr/include/net/if_arp.h:22:8: error: redefinition of 'struct arphdr'
- struct arphdr {
-        ^~~~~~
-
-The latter requires removing some includes of net/if_arp.h to avoid
-conflicting with netinet/if_ether.h.
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- src/libsystemd-network/sd-dhcp6-client.c  | 1 -
- src/libsystemd/sd-netlink/netlink-types.c | 1 +
- src/machine/machine-dbus.c                | 1 +
- src/network/netdev/macsec.c               | 1 +
- src/network/netdev/netdev.c               | 1 +
- src/network/networkd-brvlan.c             | 1 +
- src/network/networkd-dhcp-common.c        | 1 +
- src/network/networkd-dhcp4.c              | 2 +-
- src/network/networkd-dhcp6.c              | 2 +-
- src/network/networkd-link.c               | 2 +-
- src/network/networkd-network.c            | 1 +
- src/shared/ethtool-util.c                 | 1 +
- src/shared/ethtool-util.h                 | 1 +
- src/udev/net/link-config.c                | 1 +
- src/udev/udev-builtin-net_setup_link.c    | 1 +
- 15 files changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
-index d7a5349c70..68b41dfb6c 100644
---- a/src/libsystemd-network/sd-dhcp6-client.c
-+++ b/src/libsystemd-network/sd-dhcp6-client.c
-@@ -6,7 +6,6 @@
- #include <errno.h>
- #include <string.h>
- #include <sys/ioctl.h>
--#include <linux/if_arp.h>
- #include <linux/if_infiniband.h>
- 
- #include "sd-dhcp6-client.h"
-diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c
-index de9b8b21ab..f64f6500f7 100644
---- a/src/libsystemd/sd-netlink/netlink-types.c
-+++ b/src/libsystemd/sd-netlink/netlink-types.c
-@@ -3,6 +3,7 @@
- #include <netinet/in.h>
- #include <stdint.h>
- #include <sys/socket.h>
-+#include <netinet/if_ether.h>
- #include <linux/can/vxcan.h>
- #include <linux/netlink.h>
- #include <linux/rtnetlink.h>
-diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
-index 0d58b5eb8b..01093c1f62 100644
---- a/src/machine/machine-dbus.c
-+++ b/src/machine/machine-dbus.c
-@@ -4,6 +4,7 @@
- #include <string.h>
- #include <sys/mount.h>
- #include <sys/wait.h>
-+#include <netinet/if_ether.h>
- 
- /* When we include libgen.h because we need dirname() we immediately
-  * undefine basename() since libgen.h defines it as a macro to the POSIX
-diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c
-index cf281e75a6..269dc618ff 100644
---- a/src/network/netdev/macsec.c
-+++ b/src/network/netdev/macsec.c
-@@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- 
-+#include <netinet/if_ether.h>
- #include <netinet/in.h>
- #include <linux/if_ether.h>
- #include <linux/if_macsec.h>
-diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c
-index 7735b455b7..ed4eda4a44 100644
---- a/src/network/netdev/netdev.c
-+++ b/src/network/netdev/netdev.c
-@@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- 
-+#include <netinet/if_ether.h>
- #include <net/if.h>
- #include <netinet/in.h>
- 
-diff --git a/src/network/networkd-brvlan.c b/src/network/networkd-brvlan.c
-index c3c5d535ac..ebea408c89 100644
---- a/src/network/networkd-brvlan.c
-+++ b/src/network/networkd-brvlan.c
-@@ -4,6 +4,7 @@
- ***/
- 
- #include <netinet/in.h>
-+#include <netinet/if_ether.h>
- #include <linux/if_bridge.h>
- #include <stdbool.h>
- 
-diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c
-index 626b975839..42fe92f320 100644
---- a/src/network/networkd-dhcp-common.c
-+++ b/src/network/networkd-dhcp-common.c
-@@ -1,6 +1,7 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- 
- #include "networkd-dhcp-common.h"
-+#include <netinet/if_ether.h>
- #include "networkd-network.h"
- #include "parse-util.h"
- #include "string-table.h"
-diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c
-index 662770b50e..c6ab62a94d 100644
---- a/src/network/networkd-dhcp4.c
-+++ b/src/network/networkd-dhcp4.c
-@@ -1,8 +1,8 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- 
-+#include <netinet/if_ether.h>
- #include <netinet/in.h>
- #include <linux/if.h>
--#include <linux/if_arp.h>
- 
- #include "alloc-util.h"
- #include "hostname-util.h"
-diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c
-index 8ad736a82b..f41b4d834e 100644
---- a/src/network/networkd-dhcp6.c
-+++ b/src/network/networkd-dhcp6.c
-@@ -3,9 +3,9 @@
-   Copyright © 2014 Intel Corporation. All rights reserved.
- ***/
- 
-+#include <netinet/if_ether.h>
- #include <netinet/in.h>
- #include <linux/if.h>
--#include <linux/if_arp.h>
- #include "sd-radv.h"
- 
- #include "sd-dhcp6-client.h"
-diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
-index f5bb78890a..f13a36b791 100644
---- a/src/network/networkd-link.c
-+++ b/src/network/networkd-link.c
-@@ -1,8 +1,8 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- 
-+#include <netinet/if_ether.h>
- #include <netinet/in.h>
- #include <linux/if.h>
--#include <linux/if_arp.h>
- #include <unistd.h>
- 
- #include "alloc-util.h"
-diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
-index 2b8d0eb2fb..2f79ef25cd 100644
---- a/src/network/networkd-network.c
-+++ b/src/network/networkd-network.c
-@@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- 
-+#include <netinet/if_ether.h>
- #include <net/if.h>
- #include <netinet/in.h>
- #include <linux/netdevice.h>
-diff --git a/src/shared/ethtool-util.c b/src/shared/ethtool-util.c
-index b0961df72e..53fcbbd84b 100644
---- a/src/shared/ethtool-util.c
-+++ b/src/shared/ethtool-util.c
-@@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- 
-+#include <netinet/if_ether.h>
- #include <net/if.h>
- #include <sys/ioctl.h>
- #include <linux/ethtool.h>
-diff --git a/src/shared/ethtool-util.h b/src/shared/ethtool-util.h
-index 8b32b243f3..262b819976 100644
---- a/src/shared/ethtool-util.h
-+++ b/src/shared/ethtool-util.h
-@@ -2,6 +2,7 @@
- #pragma once
- 
- #include <macro.h>
-+#include <netinet/if_ether.h>
- #include <linux/ethtool.h>
- 
- #include "conf-parser.h"
-diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
-index d44af64d5e..fd052f1591 100644
---- a/src/udev/net/link-config.c
-+++ b/src/udev/net/link-config.c
-@@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- 
-+#include <netinet/if_ether.h>
- #include <linux/netdevice.h>
- #include <netinet/ether.h>
- 
-diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c
-index ee3ca9fa38..9aa4e82874 100644
---- a/src/udev/udev-builtin-net_setup_link.c
-+++ b/src/udev/udev-builtin-net_setup_link.c
-@@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- 
-+#include <netinet/if_ether.h>
- #include "device-util.h"
- #include "alloc-util.h"
- #include "link-config.h"
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch
deleted file mode 100644
index 34f7f5f..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From f8a239b182158ca0a537ba053cb0e6bad9c3a2fb Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 14:56:21 +0800
-Subject: [PATCH 07/24] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not 
- defined
-
-If the standard library doesn't provide brace
-expansion users just won't get it.
-
-Dont use GNU GLOB extentions on non-glibc systems
-
-Conditionalize use of GLOB_ALTDIRFUNC
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- src/basic/glob-util.c     | 12 ++++++++++++
- src/test/test-glob-util.c | 16 ++++++++++++++++
- src/tmpfiles/tmpfiles.c   | 10 ++++++++++
- 3 files changed, 38 insertions(+)
-
-diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c
-index b335af8d97..2cdfc11f16 100644
---- a/src/basic/glob-util.c
-+++ b/src/basic/glob-util.c
-@@ -14,6 +14,12 @@
- #include "path-util.h"
- #include "strv.h"
- 
-+/* Don't fail if the standard library
-+ * doesn't provide brace expansion */
-+#ifndef GLOB_BRACE
-+#define GLOB_BRACE 0
-+#endif
-+
- static void closedir_wrapper(void* v) {
-         (void) closedir(v);
- }
-@@ -21,6 +27,7 @@ static void closedir_wrapper(void* v) {
- int safe_glob(const char *path, int flags, glob_t *pglob) {
-         int k;
- 
-+#ifdef GLOB_ALTDIRFUNC
-         /* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */
-         assert(!(flags & GLOB_ALTDIRFUNC));
- 
-@@ -34,9 +41,14 @@ int safe_glob(const char *path, int flags, glob_t *pglob) {
-                 pglob->gl_lstat = lstat;
-         if (!pglob->gl_stat)
-                 pglob->gl_stat = stat;
-+#endif
- 
-         errno = 0;
-+#ifdef GLOB_ALTDIRFUNC
-         k = glob(path, flags | GLOB_ALTDIRFUNC, NULL, pglob);
-+#else
-+        k = glob(path, flags, NULL, pglob);
-+#endif
-         if (k == GLOB_NOMATCH)
-                 return -ENOENT;
-         if (k == GLOB_NOSPACE)
-diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c
-index b4f41445fe..f0d474ed14 100644
---- a/src/test/test-glob-util.c
-+++ b/src/test/test-glob-util.c
-@@ -13,6 +13,12 @@
- #include "rm-rf.h"
- #include "tmpfile-util.h"
- 
-+/* Don't fail if the standard library
-+ * doesn't provide brace expansion */
-+#ifndef GLOB_BRACE
-+#define GLOB_BRACE 0
-+#endif
-+
- static void test_glob_exists(void) {
-         char name[] = "/tmp/test-glob_exists.XXXXXX";
-         int fd = -1;
-@@ -40,11 +46,13 @@ static void test_glob_no_dot(void) {
-         const char *fn;
- 
-         _cleanup_globfree_ glob_t g = {
-+#ifdef GLOB_ALTDIRFUNC
-                 .gl_closedir = closedir_wrapper,
-                 .gl_readdir = (struct dirent *(*)(void *)) readdir_no_dot,
-                 .gl_opendir = (void *(*)(const char *)) opendir,
-                 .gl_lstat = lstat,
-                 .gl_stat = stat,
-+#endif
-         };
- 
-         int r;
-@@ -52,11 +60,19 @@ static void test_glob_no_dot(void) {
-         assert_se(mkdtemp(template));
- 
-         fn = strjoina(template, "/*");
-+#ifdef GLOB_ALTDIRFUNC
-         r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g);
-+#else
-+        r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g);
-+#endif
-         assert_se(r == GLOB_NOMATCH);
- 
-         fn = strjoina(template, "/.*");
-+#ifdef GLOB_ALTDIRFUNC
-         r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g);
-+#else
-+        r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g);
-+#endif
-         assert_se(r == GLOB_NOMATCH);
- 
-         (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL);
-diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
-index 3c30612af1..14bc428085 100644
---- a/src/tmpfiles/tmpfiles.c
-+++ b/src/tmpfiles/tmpfiles.c
-@@ -63,6 +63,12 @@
- #include "umask-util.h"
- #include "user-util.h"
- 
-+/* Don't fail if the standard library
-+ * doesn't provide brace expansion */
-+#ifndef GLOB_BRACE
-+#define GLOB_BRACE 0
-+#endif
-+
- /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
-  * them in the file system. This is intended to be used to create
-  * properly owned directories beneath /tmp, /var/tmp, /run, which are
-@@ -1853,7 +1859,9 @@ finish:
- 
- static int glob_item(Item *i, action_t action) {
-         _cleanup_globfree_ glob_t g = {
-+#ifdef GLOB_ALTDIRFUNC
-                 .gl_opendir = (void *(*)(const char *)) opendir_nomod,
-+#endif
-         };
-         int r = 0, k;
-         char **fn;
-@@ -1873,7 +1881,9 @@ static int glob_item(Item *i, action_t action) {
- 
- static int glob_item_recursively(Item *i, fdaction_t action) {
-         _cleanup_globfree_ glob_t g = {
-+#ifdef GLOB_ALTDIRFUNC
-                 .gl_opendir = (void *(*)(const char *)) opendir_nomod,
-+#endif
-         };
-         int r = 0, k;
-         char **fn;
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0008-add-missing-FTW_-macros-for-musl.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0008-add-missing-FTW_-macros-for-musl.patch
deleted file mode 100644
index d5f2349..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0008-add-missing-FTW_-macros-for-musl.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 6cd17c753d2c0a90fc791f69bbc694cbc8556a4f Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 15:00:06 +0800
-Subject: [PATCH 08/24] add missing FTW_ macros for musl
-
-This is to avoid build failures like below for musl.
-
-  locale-util.c:296:24: error: 'FTW_STOP' undeclared
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/basic/missing_type.h | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
-
-diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
-index c487e65..23602eb 100644
---- a/src/basic/missing_type.h
-+++ b/src/basic/missing_type.h
-@@ -19,3 +19,23 @@ typedef int (*comparison_fn_t)(const void *, const void *);
- #define __COMPAR_FN_T
- typedef int (*__compar_fn_t)(const void *, const void *);
- #endif
-+
-+#ifndef FTW_ACTIONRETVAL
-+#define FTW_ACTIONRETVAL 16
-+#endif
-+
-+#ifndef FTW_CONTINUE
-+#define FTW_CONTINUE 0
-+#endif
-+
-+#ifndef FTW_STOP
-+#define FTW_STOP 1
-+#endif
-+
-+#ifndef FTW_SKIP_SUBTREE
-+#define FTW_SKIP_SUBTREE 2
-+#endif
-+
-+#ifndef FTW_SKIP_SIBLINGS
-+#define FTW_SKIP_SIBLINGS 3
-+#endif
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch
deleted file mode 100644
index 8bacd02..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From f1f4b4f9684fed185bfa8b9ed409cdf241657e99 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 15:03:47 +0800
-Subject: [PATCH 10/24] fix missing of __register_atfork for non-glibc builds
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/basic/process-util.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/src/basic/process-util.c b/src/basic/process-util.c
-index 78ce43b..aec2daf 100644
---- a/src/basic/process-util.c
-+++ b/src/basic/process-util.c
-@@ -22,6 +22,9 @@
- #if HAVE_VALGRIND_VALGRIND_H
- #include <valgrind/valgrind.h>
- #endif
-+#ifndef __GLIBC__
-+#include <pthread.h>
-+#endif
- 
- #include "alloc-util.h"
- #include "architecture.h"
-@@ -1160,11 +1163,15 @@ void reset_cached_pid(void) {
-         cached_pid = CACHED_PID_UNSET;
- }
- 
-+#ifdef __GLIBC__
- /* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc
-  * headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against
-  * libpthread, as it is part of glibc anyway. */
- extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void *dso_handle);
- extern void* __dso_handle _weak_;
-+#else
-+#define __register_atfork(prepare,parent,child,dso) pthread_atfork(prepare,parent,child)
-+#endif
- 
- pid_t getpid_cached(void) {
-         static bool installed = false;
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0011-Use-uintmax_t-for-handling-rlim_t.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0011-Use-uintmax_t-for-handling-rlim_t.patch
deleted file mode 100644
index d6eda9c..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0011-Use-uintmax_t-for-handling-rlim_t.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From e3f847bd0338d27aff3335b42661d8a4b66b965e Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 15:12:41 +0800
-Subject: [PATCH 11/24] Use uintmax_t for handling rlim_t
-
-PRIu{32,64} is not right format to represent rlim_t type
-therefore use %ju and typecast the rlim_t variables to
-uintmax_t.
-
-Fixes portablility errors like
-
-execute.c:3446:36: error: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'rlim_t {aka long long unsigned int}' [-Werror=format=]
-|                          fprintf(f, "%s%s: " RLIM_FMT "\n",
-|                                     ^~~~~~~~
-|                                  prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
-|                                                               ~~~~~~~~~~~~~~~~~~~~~~
-
-Upstream-Status: Denied [https://github.com/systemd/systemd/pull/7199]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-[Rebased for v241]
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/basic/format-util.h |  8 +-------
- src/basic/rlimit-util.c | 10 +++++-----
- src/core/execute.c      |  4 ++--
- 3 files changed, 8 insertions(+), 14 deletions(-)
-
-diff --git a/src/basic/format-util.h b/src/basic/format-util.h
-index dece5d3..dbb87bc 100644
---- a/src/basic/format-util.h
-+++ b/src/basic/format-util.h
-@@ -42,13 +42,7 @@
- #  define PRI_TIMEX "li"
- #endif
- 
--#if SIZEOF_RLIM_T == 8
--#  define RLIM_FMT "%" PRIu64
--#elif SIZEOF_RLIM_T == 4
--#  define RLIM_FMT "%" PRIu32
--#else
--#  error Unknown rlim_t size
--#endif
-+#define RLIM_FMT "%ju"
- 
- #if SIZEOF_DEV_T == 8
- #  define DEV_FMT "%" PRIu64
-diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c
-index 74b3a02..b02c03c 100644
---- a/src/basic/rlimit-util.c
-+++ b/src/basic/rlimit-util.c
-@@ -307,13 +307,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
-         if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
-                 s = strdup("infinity");
-         else if (rl->rlim_cur >= RLIM_INFINITY)
--                (void) asprintf(&s, "infinity:" RLIM_FMT, rl->rlim_max);
-+                (void) asprintf(&s, "infinity:" RLIM_FMT, (uintmax_t)rl->rlim_max);
-         else if (rl->rlim_max >= RLIM_INFINITY)
--                (void) asprintf(&s, RLIM_FMT ":infinity", rl->rlim_cur);
-+                (void) asprintf(&s, RLIM_FMT ":infinity", (uintmax_t)rl->rlim_cur);
-         else if (rl->rlim_cur == rl->rlim_max)
--                (void) asprintf(&s, RLIM_FMT, rl->rlim_cur);
-+                (void) asprintf(&s, RLIM_FMT, (uintmax_t)rl->rlim_cur);
-         else
--                (void) asprintf(&s, RLIM_FMT ":" RLIM_FMT, rl->rlim_cur, rl->rlim_max);
-+                (void) asprintf(&s, RLIM_FMT ":" RLIM_FMT, (uintmax_t)rl->rlim_cur, (uintmax_t)rl->rlim_max);
- 
-         if (!s)
-                 return -ENOMEM;
-@@ -404,7 +404,7 @@ int rlimit_nofile_safe(void) {
- 
-         rl.rlim_cur = FD_SETSIZE;
-         if (setrlimit(RLIMIT_NOFILE, &rl) < 0)
--                return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", rl.rlim_cur);
-+                return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", (uintmax_t)rl.rlim_cur);
- 
-         return 1;
- }
-diff --git a/src/core/execute.c b/src/core/execute.c
-index a708231..e2b8748 100644
---- a/src/core/execute.c
-+++ b/src/core/execute.c
-@@ -4220,9 +4220,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
-         for (i = 0; i < RLIM_NLIMITS; i++)
-                 if (c->rlimit[i]) {
-                         fprintf(f, "%sLimit%s: " RLIM_FMT "\n",
--                                prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
-+                                prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_max);
-                         fprintf(f, "%sLimit%sSoft: " RLIM_FMT "\n",
--                                prefix, rlimit_to_string(i), c->rlimit[i]->rlim_cur);
-+                                prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_cur);
-                 }
- 
-         if (c->ioprio_set) {
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
deleted file mode 100644
index 914589d..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From d3d65d4036670cbd5129fe55c09ca391286ef4b3 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Wed, 28 Feb 2018 21:25:22 -0800
-Subject: [PATCH 14/24] test-sizeof.c: Disable tests for missing typedefs in
- musl
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/test/test-sizeof.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
-index 35b0876..e78e7ca 100644
---- a/src/test/test-sizeof.c
-+++ b/src/test/test-sizeof.c
-@@ -41,8 +41,10 @@ int main(void) {
-         info(unsigned);
-         info(long unsigned);
-         info(long long unsigned);
-+#ifdef __GLIBC__
-         info(__syscall_ulong_t);
-         info(__syscall_slong_t);
-+#endif
- 
-         info(float);
-         info(double);
-@@ -60,7 +62,9 @@ int main(void) {
-         info(ssize_t);
-         info(time_t);
-         info(usec_t);
-+#ifdef __GLIBC__
-         info(__time_t);
-+#endif
-         info(pid_t);
-         info(uid_t);
-         info(gid_t);
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
deleted file mode 100644
index fd407f6..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 48c628f532f6025c2d1646b6819cd81eb789d7fb Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Tue, 10 Oct 2017 14:33:30 -0700
-Subject: [PATCH 15/24] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
-
-Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right
-thing to do and it's not portable (not supported by musl). See:
-
-  http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html
-  http://www.openwall.com/lists/musl/2015/02/05/2
-
-Note that laccess() is never passing AT_EACCESS so a lot of the
-discussion in the links above doesn't apply. Note also that
-(currently) all systemd callers of laccess() pass mode as F_OK, so
-only check for existence of a file, not access permissions.
-Therefore, in this case, the only distiction between faccessat()
-with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the behaviour
-for broken symlinks; laccess() on a broken symlink will succeed with
-(flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0).
-
-The laccess() macros was added to systemd some time ago and it's not
-clear if or why it needs to return success for broken symlinks. Maybe
-just historical and not actually necessary or desired behaviour?
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
----
- src/basic/fs-util.h          | 22 +++++++++++++++++++++-
- src/shared/base-filesystem.c |  6 +++---
- 2 files changed, 24 insertions(+), 4 deletions(-)
-
-diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h
-index 7ad030b..d4cb1e9 100644
---- a/src/basic/fs-util.h
-+++ b/src/basic/fs-util.h
-@@ -32,7 +32,27 @@ int fchmod_opath(int fd, mode_t m);
- 
- int fd_warn_permissions(const char *path, int fd);
- 
--#define laccess(path, mode) faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW)
-+/*
-+   Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right thing to
-+   do and it's not portable (not supported by musl). See:
-+
-+     http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html
-+     http://www.openwall.com/lists/musl/2015/02/05/2
-+
-+   Note that laccess() is never passing AT_EACCESS so a lot of the discussion in
-+   the links above doesn't apply. Note also that (currently) all systemd callers
-+   of laccess() pass mode as F_OK, so only check for existence of a file, not
-+   access permissions. Therefore, in this case, the only distiction between
-+   faccessat() with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the
-+   behaviour for broken symlinks; laccess() on a broken symlink will succeed
-+   with (flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0).
-+
-+   The laccess() macros was added to systemd some time ago and it's not clear if
-+   or why it needs to return success for broken symlinks. Maybe just historical
-+   and not actually necessary or desired behaviour?
-+*/
-+
-+#define laccess(path, mode) faccessat(AT_FDCWD, (path), (mode), 0)
- 
- int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode);
- int touch(const char *path);
-diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c
-index 89d7a7d..34b4ad5 100644
---- a/src/shared/base-filesystem.c
-+++ b/src/shared/base-filesystem.c
-@@ -53,7 +53,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
-                 return log_error_errno(errno, "Failed to open root file system: %m");
- 
-         for (i = 0; i < ELEMENTSOF(table); i ++) {
--                if (faccessat(fd, table[i].dir, F_OK, AT_SYMLINK_NOFOLLOW) >= 0)
-+                if (faccessat(fd, table[i].dir, F_OK, 0) >= 0)
-                         continue;
- 
-                 if (table[i].target) {
-@@ -61,7 +61,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
- 
-                         /* check if one of the targets exists */
-                         NULSTR_FOREACH(s, table[i].target) {
--                                if (faccessat(fd, s, F_OK, AT_SYMLINK_NOFOLLOW) < 0)
-+                                if (faccessat(fd, s, F_OK, 0) < 0)
-                                         continue;
- 
-                                 /* check if a specific file exists at the target path */
-@@ -72,7 +72,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
-                                         if (!p)
-                                                 return log_oom();
- 
--                                        if (faccessat(fd, p, F_OK, AT_SYMLINK_NOFOLLOW) < 0)
-+                                        if (faccessat(fd, p, F_OK, 0) < 0)
-                                                 continue;
-                                 }
- 
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch
deleted file mode 100644
index d556569..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From af76c973e41929360a6e021f2ff9a7fc1d7994e9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 27 May 2018 08:36:44 -0700
-Subject: [PATCH 16/24] Define glibc compatible basename() for non-glibc
- systems
-
-Fixes builds with musl, even though systemd is adamant about
-using non-posix basename implementation, we have a way out
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/machine/machine-dbus.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
-index 7a558df..eca7d4b 100644
---- a/src/machine/machine-dbus.c
-+++ b/src/machine/machine-dbus.c
-@@ -11,6 +11,10 @@
- #include <libgen.h>
- #undef basename
- 
-+#if !defined(__GLIBC__)
-+#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src)
-+#endif
-+
- #include "alloc-util.h"
- #include "bus-common-errors.h"
- #include "bus-internal.h"
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
deleted file mode 100644
index 24e24e8..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From c7a4efb8bccb52e1714c151929c23e12bde59b82 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Wed, 4 Jul 2018 15:00:44 +0800
-Subject: [PATCH 17/24] Do not disable buffering when writing to oom_score_adj
-
-On musl, disabling buffering when writing to oom_score_adj will
-cause the following error.
-
-  Failed to adjust OOM setting: Invalid argument
-
-This error appears for systemd-udevd.service and dbus.service.
-This is because kernel receives '-' instead of the whole '-900'
-if buffering is disabled.
-
-This is libc implementation specific, as glibc does not have this issue.
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- src/basic/process-util.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/basic/process-util.c b/src/basic/process-util.c
-index b1c08fcade..0a7a1f7d89 100644
---- a/src/basic/process-util.c
-+++ b/src/basic/process-util.c
-@@ -1474,7 +1474,7 @@ int set_oom_score_adjust(int value) {
-         sprintf(t, "%i", value);
- 
-         return write_string_file("/proc/self/oom_score_adj", t,
--                                 WRITE_STRING_FILE_VERIFY_ON_FAILURE|WRITE_STRING_FILE_DISABLE_BUFFER);
-+                                 WRITE_STRING_FILE_VERIFY_ON_FAILURE);
- }
- 
- static const char *const ioprio_class_table[] = {
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
deleted file mode 100644
index 5901772..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From fffb2810611b4a26f5c6c0958093b5b3b7d4cd99 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Tue, 10 Jul 2018 15:40:17 +0800
-Subject: [PATCH 18/24] distinguish XSI-compliant strerror_r from GNU-specifi
- strerror_r
-
-XSI-compliant strerror_r and GNU-specifi strerror_r are different.
-
-       int strerror_r(int errnum, char *buf, size_t buflen);
-                   /* XSI-compliant */
-
-       char *strerror_r(int errnum, char *buf, size_t buflen);
-                   /* GNU-specific */
-
-We need to distinguish between them. Otherwise, we'll get an int value
-assigned to (char *) variable, resulting in segment fault.
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/journal/journal-send.c        | 5 +++++
- src/libsystemd/sd-bus/bus-error.c | 5 +++++
- 2 files changed, 10 insertions(+)
-
-diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
-index 3fea912..4f1e592 100644
---- a/src/journal/journal-send.c
-+++ b/src/journal/journal-send.c
-@@ -337,7 +337,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
-                 char* j;
- 
-                 errno = 0;
-+#ifndef __GLIBC__
-+                strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
-+                j = buffer + 8 + k;
-+#else
-                 j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
-+#endif
-                 if (errno == 0) {
-                         char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];
- 
-diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
-index dc95237..bdda30f 100644
---- a/src/libsystemd/sd-bus/bus-error.c
-+++ b/src/libsystemd/sd-bus/bus-error.c
-@@ -379,7 +379,12 @@ static void bus_error_strerror(sd_bus_error *e, int error) {
-                         return;
- 
-                 errno = 0;
-+#ifndef __GLIBC__
-+                strerror_r(error, m, k);
-+                x = m;
-+#else
-                 x = strerror_r(error, m, k);
-+#endif
-                 if (errno == ERANGE || strlen(x) >= k - 1) {
-                         free(m);
-                         k *= 2;
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
deleted file mode 100644
index 35cc66f..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 969ab9e68249fd383f4b513b1c9306bdac4ae9b2 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 15:18:00 +0800
-Subject: [PATCH 19/24] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP
-
-for currently unknown reasons they get exported to the shared libries
-even without being listed in the sym file
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-[Rebased for v241]
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/libsystemd/sd-bus/bus-error.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
-index bdda30f..e21853c 100644
---- a/src/libsystemd/sd-bus/bus-error.c
-+++ b/src/libsystemd/sd-bus/bus-error.c
-@@ -54,8 +54,8 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map bus_standard_errors[] = {
- };
- 
- /* GCC maps this magically to the beginning and end of the BUS_ERROR_MAP section */
--extern const sd_bus_error_map __start_SYSTEMD_BUS_ERROR_MAP[];
--extern const sd_bus_error_map __stop_SYSTEMD_BUS_ERROR_MAP[];
-+extern const sd_bus_error_map __start_SYSTEMD_BUS_ERROR_MAP[] _hidden_;
-+extern const sd_bus_error_map __stop_SYSTEMD_BUS_ERROR_MAP[] _hidden_;
- 
- /* Additional maps registered with sd_bus_error_add_map() are in this
-  * NULL terminated array */
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0020-missing_type.h-add-__compar_d_fn_t-definition.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0020-missing_type.h-add-__compar_d_fn_t-definition.patch
deleted file mode 100644
index 753d511..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0020-missing_type.h-add-__compar_d_fn_t-definition.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 75c06e3e2a4760b36fffd95cdf5535b8ad73c481 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 15:27:54 +0800
-Subject: [PATCH 20/24] missing_type.h: add __compar_d_fn_t definition
-
-Fix the following compile failure:
-src/basic/util.h:71:18: error: unknown type name '__compar_d_fn_t'; did you mean '__compar_fn_t'?
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/basic/missing_type.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
-index 7d7c1e4..85902ab 100644
---- a/src/basic/missing_type.h
-+++ b/src/basic/missing_type.h
-@@ -13,6 +13,7 @@
- 
- #ifndef __GLIBC__
- typedef int (*comparison_fn_t)(const void *, const void *);
-+typedef int (*__compar_d_fn_t) (const void *, const void *, void *);
- #endif
- 
- #ifndef __COMPAR_FN_T
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0021-avoid-redefinition-of-prctl_mm_map-structure.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0021-avoid-redefinition-of-prctl_mm_map-structure.patch
deleted file mode 100644
index cdddf83..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0021-avoid-redefinition-of-prctl_mm_map-structure.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 3fbf61d54b82fc9bf21d8039bfd89dc9efc5bbcd Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 15:44:54 +0800
-Subject: [PATCH 21/24] avoid redefinition of prctl_mm_map structure
-
-Fix the following compile failure:
-error: redefinition of 'struct prctl_mm_map'
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/basic/missing_prctl.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/basic/missing_prctl.h b/src/basic/missing_prctl.h
-index f80cd17..47e4893 100644
---- a/src/basic/missing_prctl.h
-+++ b/src/basic/missing_prctl.h
-@@ -1,7 +1,9 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- #pragma once
- 
-+#ifdef __GLIBC__
- #include <linux/prctl.h>
-+#endif
- 
- /* 58319057b7847667f0c9585b9de0e8932b0fdb08 (4.3) */
- #ifndef PR_CAP_AMBIENT
--- 
-2.11.0
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0024-test-json.c-define-M_PIl.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0024-test-json.c-define-M_PIl.patch
deleted file mode 100644
index 0e5629d..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0024-test-json.c-define-M_PIl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 902412c271e0c5d9cb93b10ec0fb5b119b393474 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 16:53:06 +0800
-Subject: [PATCH 24/24] test-json.c: define M_PIl
-
-Fix the following compile failure:
-src/test/test-json.c:305:50: error: 'M_PIl' undeclared (first use in this function); did you mean 'M_PI'?
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/test/test-json.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/test/test-json.c b/src/test/test-json.c
-index 9b8a2a9..efc746c 100644
---- a/src/test/test-json.c
-+++ b/src/test/test-json.c
-@@ -11,6 +11,10 @@
- #include "tests.h"
- #include "util.h"
- 
-+#ifndef M_PIl
-+#define M_PIl 3.141592653589793238462643383279502884L
-+#endif
-+
- static void test_tokenizer(const char *data, ...) {
-         unsigned line = 0, column = 0;
-         void *state = NULL;
--- 
-2.11.0
-
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/7c5fd25119a495009ea62f79e5daec34cc464628.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/7c5fd25119a495009ea62f79e5daec34cc464628.patch
deleted file mode 100644
index ae44979..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/7c5fd25119a495009ea62f79e5daec34cc464628.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 7c5fd25119a495009ea62f79e5daec34cc464628 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
-Date: Mon, 12 Apr 2021 14:03:32 +0200
-Subject: [PATCH] meson: do not fail if rsync is not installed with meson
- 0.57.2
-
-https://github.com/mesonbuild/meson/issues/8641
-
-Our CI started to fail. Even if the change is reverted in meson,
-we need a quick workaround here.
-
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- man/meson.build | 25 ++++++++++++++-----------
- 1 file changed, 14 insertions(+), 11 deletions(-)
-
-diff --git a/man/meson.build b/man/meson.build
-index 3cae8446cda..f9c4b83dc81 100644
---- a/man/meson.build
-+++ b/man/meson.build
-@@ -184,17 +184,20 @@ html = custom_target(
-         depends : html_pages,
-         command : ['echo'])
- 
--run_target(
--        'doc-sync',
--        depends : man_pages + html_pages,
--        command : ['rsync', '-rlv',
--                   '--delete-excluded',
--                   '--include=man',
--                   '--include=*.html',
--                   '--exclude=*',
--                   '--omit-dir-times',
--                   meson.current_build_dir(),
--                   get_option('www-target')])
-+rsync = find_program('rsync', required : false)
-+if rsync.found()
-+        run_target(
-+                'doc-sync',
-+                depends : man_pages + html_pages,
-+                command : [rsync, '-rlv',
-+                           '--delete-excluded',
-+                           '--include=man',
-+                           '--include=*.html',
-+                           '--exclude=*',
-+                           '--omit-dir-times',
-+                           meson.current_build_dir(),
-+                           get_option('www-target')])
-+endif
- 
- ############################################################
- 
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/static-libsystemd-pkgconfig.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/static-libsystemd-pkgconfig.patch
deleted file mode 100644
index eb018bb..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/static-libsystemd-pkgconfig.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-Index: git/src/libsystemd/libsystemd.pc.in
-===================================================================
---- git.orig/src/libsystemd/libsystemd.pc.in
-+++ git/src/libsystemd/libsystemd.pc.in
-@@ -16,5 +16,5 @@ Name: systemd
- Description: systemd Library
- URL: @PROJECT_URL@
- Version: @PROJECT_VERSION@
--Libs: -L${libdir} -lsystemd
-+Libs: -L${libdir} -lsystemd -lrt -lmount -lcap
- Cflags: -I${includedir}
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-Adjust-for-musl-headers.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-Adjust-for-musl-headers.patch
new file mode 100644
index 0000000..2363679
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-Adjust-for-musl-headers.patch
@@ -0,0 +1,453 @@
+From 4c2e932664ec67662f4a0306cca4a7cd82853bda Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 21 Jan 2022 22:19:37 -0800
+Subject: [PATCH] Adjust for musl headers
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libsystemd-network/sd-dhcp6-client.c      | 2 +-
+ src/network/netdev/bareudp.c                  | 2 +-
+ src/network/netdev/batadv.c                   | 2 +-
+ src/network/netdev/bond.c                     | 2 +-
+ src/network/netdev/bridge.c                   | 2 +-
+ src/network/netdev/dummy.c                    | 2 +-
+ src/network/netdev/geneve.c                   | 2 +-
+ src/network/netdev/ifb.c                      | 2 +-
+ src/network/netdev/ipoib.c                    | 2 +-
+ src/network/netdev/ipvlan.c                   | 2 +-
+ src/network/netdev/macsec.c                   | 2 +-
+ src/network/netdev/macvlan.c                  | 2 +-
+ src/network/netdev/netdev.c                   | 2 +-
+ src/network/netdev/netdevsim.c                | 2 +-
+ src/network/netdev/nlmon.c                    | 2 +-
+ src/network/netdev/tunnel.c                   | 2 +-
+ src/network/netdev/vcan.c                     | 2 +-
+ src/network/netdev/veth.c                     | 2 +-
+ src/network/netdev/vlan.c                     | 2 +-
+ src/network/netdev/vrf.c                      | 2 +-
+ src/network/netdev/vxcan.c                    | 2 +-
+ src/network/netdev/vxlan.c                    | 2 +-
+ src/network/netdev/xfrm.c                     | 2 +-
+ src/network/networkd-bridge-mdb.c             | 4 ++--
+ src/network/networkd-dhcp-common.c            | 3 ++-
+ src/network/networkd-dhcp-prefix-delegation.c | 4 ++--
+ src/network/networkd-dhcp-server.c            | 2 +-
+ src/network/networkd-dhcp4.c                  | 2 +-
+ src/network/networkd-link.c                   | 2 +-
+ src/network/networkd-route.c                  | 8 ++++----
+ src/network/networkd-setlink.c                | 2 +-
+ src/shared/linux/ethtool.h                    | 3 ++-
+ src/shared/netif-util.c                       | 2 +-
+ src/udev/udev-builtin-net_id.c                | 2 +-
+ 34 files changed, 41 insertions(+), 39 deletions(-)
+
+--- a/src/libsystemd-network/sd-dhcp6-client.c
++++ b/src/libsystemd-network/sd-dhcp6-client.c
+@@ -5,7 +5,7 @@
+ 
+ #include <errno.h>
+ #include <sys/ioctl.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_infiniband.h>
+ 
+ #include "sd-dhcp6-client.h"
+--- a/src/network/netdev/bareudp.c
++++ b/src/network/netdev/bareudp.c
+@@ -2,7 +2,7 @@
+  * Copyright © 2020 VMware, Inc. */
+ 
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "bareudp.h"
+ #include "netlink-util.h"
+--- a/src/network/netdev/batadv.c
++++ b/src/network/netdev/batadv.c
+@@ -3,7 +3,7 @@
+ #include <inttypes.h>
+ #include <netinet/in.h>
+ #include <linux/genetlink.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "batadv.h"
+ #include "fileio.h"
+--- a/src/network/netdev/bond.c
++++ b/src/network/netdev/bond.c
+@@ -1,7 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "alloc-util.h"
+ #include "bond.h"
+--- a/src/network/netdev/bridge.c
++++ b/src/network/netdev/bridge.c
+@@ -2,7 +2,7 @@
+ 
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_bridge.h>
+ 
+ #include "bridge.h"
+--- a/src/network/netdev/dummy.c
++++ b/src/network/netdev/dummy.c
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "dummy.h"
+ 
+--- a/src/network/netdev/geneve.c
++++ b/src/network/netdev/geneve.c
+@@ -2,7 +2,7 @@
+ 
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "alloc-util.h"
+ #include "conf-parser.h"
+--- a/src/network/netdev/ifb.c
++++ b/src/network/netdev/ifb.c
+@@ -1,7 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later
+  * Copyright © 2019 VMware, Inc. */
+ 
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "ifb.h"
+ 
+--- a/src/network/netdev/ipoib.c
++++ b/src/network/netdev/ipoib.c
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_link.h>
+ 
+ #include "ipoib.h"
+--- a/src/network/netdev/ipvlan.c
++++ b/src/network/netdev/ipvlan.c
+@@ -2,7 +2,7 @@
+ 
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "conf-parser.h"
+ #include "ipvlan.h"
+--- a/src/network/netdev/macsec.c
++++ b/src/network/netdev/macsec.c
+@@ -1,7 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_ether.h>
+ #include <linux/if_macsec.h>
+ #include <linux/genetlink.h>
+--- a/src/network/netdev/macvlan.c
++++ b/src/network/netdev/macvlan.c
+@@ -2,7 +2,7 @@
+ 
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "conf-parser.h"
+ #include "macvlan.h"
+--- a/src/network/netdev/netdev.c
++++ b/src/network/netdev/netdev.c
+@@ -2,7 +2,7 @@
+ 
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <unistd.h>
+ 
+ #include "alloc-util.h"
+--- a/src/network/netdev/netdevsim.c
++++ b/src/network/netdev/netdevsim.c
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "netdevsim.h"
+ 
+--- a/src/network/netdev/nlmon.c
++++ b/src/network/netdev/nlmon.c
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "nlmon.h"
+ 
+--- a/src/network/netdev/tunnel.c
++++ b/src/network/netdev/tunnel.c
+@@ -2,7 +2,7 @@
+ 
+ #include <netinet/in.h>
+ #include <linux/fou.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_tunnel.h>
+ #include <linux/ip.h>
+ #include <linux/ip6_tunnel.h>
+--- a/src/network/netdev/vcan.c
++++ b/src/network/netdev/vcan.c
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "vcan.h"
+ 
+--- a/src/network/netdev/veth.c
++++ b/src/network/netdev/veth.c
+@@ -3,7 +3,7 @@
+ #include <errno.h>
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/veth.h>
+ 
+ #include "netlink-util.h"
+--- a/src/network/netdev/vlan.c
++++ b/src/network/netdev/vlan.c
+@@ -2,7 +2,7 @@
+ 
+ #include <errno.h>
+ #include <net/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_vlan.h>
+ 
+ #include "parse-util.h"
+--- a/src/network/netdev/vrf.c
++++ b/src/network/netdev/vrf.c
+@@ -2,7 +2,7 @@
+ 
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "vrf.h"
+ 
+--- a/src/network/netdev/vxcan.c
++++ b/src/network/netdev/vxcan.c
+@@ -1,7 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+ #include <linux/can/vxcan.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "vxcan.h"
+ 
+--- a/src/network/netdev/vxlan.c
++++ b/src/network/netdev/vxlan.c
+@@ -2,7 +2,7 @@
+ 
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "conf-parser.h"
+ #include "alloc-util.h"
+--- a/src/network/netdev/xfrm.c
++++ b/src/network/netdev/xfrm.c
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "missing_network.h"
+ #include "xfrm.h"
+--- a/src/network/networkd-bridge-mdb.c
++++ b/src/network/networkd-bridge-mdb.c
+@@ -1,7 +1,5 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+-#include <net/if.h>
+-#include <linux/if_bridge.h>
+ 
+ #include "netlink-util.h"
+ #include "networkd-bridge-mdb.h"
+@@ -11,6 +9,8 @@
+ #include "networkd-queue.h"
+ #include "string-util.h"
+ #include "vlan-util.h"
++#include <net/if.h>
++#include <linux/if_bridge.h>
+ 
+ #define STATIC_BRIDGE_MDB_ENTRIES_PER_NETWORK_MAX 1024U
+ 
+--- a/src/network/networkd-dhcp-common.c
++++ b/src/network/networkd-dhcp-common.c
+@@ -1,7 +1,8 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
++#include <net/if.h>
+ 
+ #include "bus-error.h"
+ #include "dhcp-identifier.h"
+--- a/src/network/networkd-dhcp-prefix-delegation.c
++++ b/src/network/networkd-dhcp-prefix-delegation.c
+@@ -1,7 +1,5 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+-#include <linux/ipv6_route.h>
+-
+ #include "sd-dhcp6-client.h"
+ 
+ #include "hashmap.h"
+@@ -21,6 +19,8 @@
+ #include "strv.h"
+ #include "tunnel.h"
+ 
++#include <linux/ipv6_route.h>
++
+ bool link_dhcp_pd_is_enabled(Link *link) {
+         assert(link);
+ 
+--- a/src/network/networkd-dhcp-server.c
++++ b/src/network/networkd-dhcp-server.c
+@@ -1,7 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if.h>
+ 
+ #include "sd-dhcp-server.h"
+--- a/src/network/networkd-dhcp4.c
++++ b/src/network/networkd-dhcp4.c
+@@ -3,7 +3,7 @@
+ #include <netinet/in.h>
+ #include <netinet/ip.h>
+ #include <linux/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "alloc-util.h"
+ #include "dhcp-client-internal.h"
+--- a/src/network/networkd-link.c
++++ b/src/network/networkd-link.c
+@@ -3,7 +3,7 @@
+ #include <net/if.h>
+ #include <netinet/in.h>
+ #include <linux/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_link.h>
+ #include <linux/netdevice.h>
+ #include <sys/socket.h>
+--- a/src/network/networkd-route.c
++++ b/src/network/networkd-route.c
+@@ -1,9 +1,5 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+-#include <linux/icmpv6.h>
+-#include <linux/ipv6_route.h>
+-#include <linux/nexthop.h>
+-
+ #include "alloc-util.h"
+ #include "event-util.h"
+ #include "netlink-util.h"
+@@ -21,6 +17,10 @@
+ #include "vrf.h"
+ #include "wireguard.h"
+ 
++#include <linux/icmpv6.h>
++#include <linux/ipv6_route.h>
++#include <linux/nexthop.h>
++
+ int route_new(Route **ret) {
+         _cleanup_(route_freep) Route *route = NULL;
+ 
+--- a/src/network/networkd-setlink.c
++++ b/src/network/networkd-setlink.c
+@@ -2,7 +2,7 @@
+ 
+ #include <netinet/in.h>
+ #include <linux/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_bridge.h>
+ 
+ #include "missing_network.h"
+--- a/src/shared/linux/ethtool.h
++++ b/src/shared/linux/ethtool.h
+@@ -16,7 +16,8 @@
+ 
+ #include <linux/kernel.h>
+ #include <linux/types.h>
+-#include <linux/if_ether.h>
++#include <netinet/if_ether.h>
++//#include <linux/if_ether.h>
+ 
+ #ifndef __KERNEL__
+ #include <limits.h> /* for INT_MAX */
+--- a/src/shared/netif-util.c
++++ b/src/shared/netif-util.c
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ 
+ #include "arphrd-util.h"
+ #include "device-util.h"
+--- a/src/udev/udev-builtin-net_id.c
++++ b/src/udev/udev-builtin-net_id.c
+@@ -18,7 +18,7 @@
+ #include <stdarg.h>
+ #include <unistd.h>
+ #include <linux/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/netdevice.h>
+ #include <linux/pci_regs.h>
+ 
+--- a/src/network/netdev/wireguard.c
++++ b/src/network/netdev/wireguard.c
+@@ -6,7 +6,7 @@
+ #include <sys/ioctl.h>
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/ipv6_route.h>
+ 
+ #include "sd-resolve.h"
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-pass-correct-parameters-to-getdents64.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-pass-correct-parameters-to-getdents64.patch
new file mode 100644
index 0000000..03a29b5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-pass-correct-parameters-to-getdents64.patch
@@ -0,0 +1,50 @@
+From fbc10748c7c59d82024a4d35146b8dfef8d52927 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 21 Jan 2022 15:15:11 -0800
+Subject: [PATCH 1/2] pass correct parameters to getdents64
+
+Fixes
+../git/src/basic/recurse-dir.c:57:40: error: incompatible pointer types passing 'uint8_t *' (aka 'unsigned char *') to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types]
+                n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size);
+                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+../git/src/basic/stat-util.c:102:28: error: incompatible pointer types passing 'union (unnamed union at ../git/src/basic/stat-util.c:78:9) *' to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types]
+        n = getdents64(fd, &buffer, sizeof(buffer));
+                           ^~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/basic/recurse-dir.c | 2 +-
+ src/basic/stat-util.c   | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/basic/recurse-dir.c b/src/basic/recurse-dir.c
+index efa1797b7b..797285e3be 100644
+--- a/src/basic/recurse-dir.c
++++ b/src/basic/recurse-dir.c
+@@ -54,7 +54,7 @@ int readdir_all(int dir_fd,
+                 bs = MIN(MALLOC_SIZEOF_SAFE(de) - offsetof(DirectoryEntries, buffer), (size_t) SSIZE_MAX);
+                 assert(bs > de->buffer_size);
+ 
+-                n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size);
++                n = getdents64(dir_fd, de->buffer + de->buffer_size, bs - de->buffer_size);
+                 if (n < 0)
+                         return -errno;
+                 if (n == 0)
+diff --git a/src/basic/stat-util.c b/src/basic/stat-util.c
+index efac7b002e..9e1fe7f5a0 100644
+--- a/src/basic/stat-util.c
++++ b/src/basic/stat-util.c
+@@ -99,7 +99,7 @@ int dir_is_empty_at(int dir_fd, const char *path) {
+                         return fd;
+         }
+ 
+-        n = getdents64(fd, &buffer, sizeof(buffer));
++        n = getdents64(fd, (struct dirent *)&buffer, sizeof(buffer));
+         if (n < 0)
+                 return -errno;
+ 
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-Add-sys-stat.h-for-S_IFDIR.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-Add-sys-stat.h-for-S_IFDIR.patch
new file mode 100644
index 0000000..7dfa1a0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-Add-sys-stat.h-for-S_IFDIR.patch
@@ -0,0 +1,29 @@
+From d16f7b37c917b91e951b9313e2c8264c72ed93e5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 21 Jan 2022 15:17:37 -0800
+Subject: [PATCH 2/2] Add sys/stat.h for S_IFDIR
+
+../git/src/shared/mkdir-label.c:13:61: error: use of undeclared identifier 'S_IFDIR'
+        r = mac_selinux_create_file_prepare_at(dirfd, path, S_IFDIR);
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/shared/mkdir-label.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/shared/mkdir-label.c b/src/shared/mkdir-label.c
+index d36a6466d7..63b764cd83 100644
+--- a/src/shared/mkdir-label.c
++++ b/src/shared/mkdir-label.c
+@@ -4,6 +4,7 @@
+ #include "selinux-util.h"
+ #include "smack-util.h"
+ #include "user-util.h"
++#include <sys/stat.h>
+ 
+ int mkdirat_label(int dirfd, const char *path, mode_t mode) {
+         int r;
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-don-t-use-glibc-specific-qsort_r.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-don-t-use-glibc-specific-qsort_r.patch
new file mode 100644
index 0000000..5027682
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-don-t-use-glibc-specific-qsort_r.patch
@@ -0,0 +1,157 @@
+From 5d730902f47498a2866b46875352f6810a01d67c Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 13:41:41 +0800
+Subject: [PATCH] don't use glibc-specific qsort_r
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+[Rebased for v241]
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[Rebased for v242]
+Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+[Rebased for v247]
+Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+
+---
+ src/basic/sort-util.h     | 14 --------------
+ src/shared/format-table.c | 36 ++++++++++++++++++++++++------------
+ src/shared/hwdb-util.c    | 19 ++++++++++++++-----
+ 3 files changed, 38 insertions(+), 31 deletions(-)
+
+--- a/src/basic/sort-util.h
++++ b/src/basic/sort-util.h
+@@ -61,18 +61,4 @@ static inline void _qsort_safe(void *bas
+                 _qsort_safe((p), (n), sizeof((p)[0]), (comparison_fn_t) _func_); \
+         })
+ 
+-static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, comparison_userdata_fn_t compar, void *userdata) {
+-        if (nmemb <= 1)
+-                return;
+-
+-        assert(base);
+-        qsort_r(base, nmemb, size, compar, userdata);
+-}
+-
+-#define typesafe_qsort_r(p, n, func, userdata)                          \
+-        ({                                                              \
+-                int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \
+-                qsort_r_safe((p), (n), sizeof((p)[0]), (comparison_userdata_fn_t) _func_, userdata); \
+-        })
+-
+ int cmp_int(const int *a, const int *b);
+--- a/src/shared/format-table.c
++++ b/src/shared/format-table.c
+@@ -1324,30 +1324,32 @@ static int cell_data_compare(TableData *
+         return CMP(index_a, index_b);
+ }
+ 
+-static int table_data_compare(const size_t *a, const size_t *b, Table *t) {
++static Table *user_table;
++static int table_data_compare(const void *x, const void *y) {
++        const size_t *a = x, *b=y;
+         int r;
+ 
+-        assert(t);
+-        assert(t->sort_map);
++        assert(user_table);
++        assert(user_table->sort_map);
+ 
+         /* Make sure the header stays at the beginning */
+-        if (*a < t->n_columns && *b < t->n_columns)
++        if (*a < user_table->n_columns && *b < user_table->n_columns)
+                 return 0;
+-        if (*a < t->n_columns)
++        if (*a < user_table->n_columns)
+                 return -1;
+-        if (*b < t->n_columns)
++        if (*b < user_table->n_columns)
+                 return 1;
+ 
+         /* Order other lines by the sorting map */
+-        for (size_t i = 0; i < t->n_sort_map; i++) {
++        for (size_t i = 0; i < user_table->n_sort_map; i++) {
+                 TableData *d, *dd;
+ 
+-                d = t->data[*a + t->sort_map[i]];
+-                dd = t->data[*b + t->sort_map[i]];
++                d = user_table->data[*a + user_table->sort_map[i]];
++                dd = user_table->data[*b + user_table->sort_map[i]];
+ 
+                 r = cell_data_compare(d, *a, dd, *b);
+                 if (r != 0)
+-                        return t->reverse_map && t->reverse_map[t->sort_map[i]] ? -r : r;
++                        return user_table->reverse_map && user_table->reverse_map[user_table->sort_map[i]] ? -r : r;
+         }
+ 
+         /* Order identical lines by the order there were originally added in */
+@@ -2009,7 +2011,12 @@ int table_print(Table *t, FILE *f) {
+                 for (size_t i = 0; i < n_rows; i++)
+                         sorted[i] = i * t->n_columns;
+ 
+-                typesafe_qsort_r(sorted, n_rows, table_data_compare, t);
++                if (n_rows <= 1)
++                        return 0;
++                assert(sorted);
++                user_table = t;
++                qsort(sorted, n_rows, sizeof(size_t), table_data_compare);
++                user_table = NULL;
+         }
+ 
+         if (t->display_map)
+@@ -2647,7 +2654,12 @@ int table_to_json(Table *t, JsonVariant
+                 for (size_t i = 0; i < n_rows; i++)
+                         sorted[i] = i * t->n_columns;
+ 
+-                typesafe_qsort_r(sorted, n_rows, table_data_compare, t);
++                if (n_rows <= 1)
++                        return 0;
++                assert(sorted);
++                user_table = t;
++                qsort(sorted, n_rows, sizeof(size_t), table_data_compare);
++                user_table = NULL;
+         }
+ 
+         if (t->display_map)
+--- a/src/shared/hwdb-util.c
++++ b/src/shared/hwdb-util.c
+@@ -127,9 +127,13 @@ static struct trie* trie_free(struct tri
+ 
+ DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
+ 
+-static int trie_values_cmp(const struct trie_value_entry *a, const struct trie_value_entry *b, struct trie *trie) {
+-        return strcmp(trie->strings->buf + a->key_off,
+-                      trie->strings->buf + b->key_off);
++static struct trie *trie_node_add_value_trie;
++static int trie_values_cmp(const void *v1, const void *v2) {
++        const struct trie_value_entry *a = v1;
++        const struct trie_value_entry *b = v2;
++
++        return strcmp(trie_node_add_value_trie->strings->buf + a->key_off,
++                      trie_node_add_value_trie->strings->buf + b->key_off);
+ }
+ 
+ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
+@@ -157,7 +161,10 @@ static int trie_node_add_value(struct tr
+                         .value_off = v,
+                 };
+ 
+-                val = typesafe_bsearch_r(&search, node->values, node->values_count, trie_values_cmp, trie);
++                trie_node_add_value_trie = trie;
++                val = bsearch(&search, node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp);
++                trie_node_add_value_trie = NULL;
++
+                 if (val) {
+                         /* At this point we have 2 identical properties on the same match-string.
+                          * Since we process files in order, we just replace the previous value. */
+@@ -183,7 +190,9 @@ static int trie_node_add_value(struct tr
+                 .line_number = line_number,
+         };
+         node->values_count++;
+-        typesafe_qsort_r(node->values, node->values_count, trie_values_cmp, trie);
++        trie_node_add_value_trie = trie;
++        qsort(node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp);
++        trie_node_add_value_trie = NULL;
+         return 0;
+ }
+ 
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
new file mode 100644
index 0000000..f3edc7d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
@@ -0,0 +1,68 @@
+From 3b42a888685aee1776a12cff84a5fe0063378483 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 13:55:12 +0800
+Subject: [PATCH] missing_type.h: add __compare_fn_t and comparison_fn_t
+
+Make it work with musl where comparison_fn_t and __compare_fn_t
+is not provided.
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+[Rebased for v244]
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[Rebased for v242]
+Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+
+---
+ src/basic/missing_type.h            | 9 +++++++++
+ src/basic/sort-util.h               | 1 +
+ src/core/kmod-setup.c               | 1 +
+ src/libsystemd/sd-journal/catalog.c | 1 +
+ 4 files changed, 12 insertions(+)
+
+--- a/src/basic/missing_type.h
++++ b/src/basic/missing_type.h
+@@ -10,3 +10,12 @@
+ #if !HAVE_CHAR16_T
+ #define char16_t uint16_t
+ #endif
++
++#ifndef __GLIBC__
++typedef int (*comparison_fn_t)(const void *, const void *);
++#endif
++
++#ifndef __COMPAR_FN_T
++#define __COMPAR_FN_T
++typedef int (*__compar_fn_t)(const void *, const void *);
++#endif
+--- a/src/basic/sort-util.h
++++ b/src/basic/sort-util.h
+@@ -4,6 +4,7 @@
+ #include <stdlib.h>
+ 
+ #include "macro.h"
++#include "missing_type.h"
+ 
+ /* This is the same as glibc's internal __compar_d_fn_t type. glibc exports a public comparison_fn_t, for the
+  * external type __compar_fn_t, but doesn't do anything similar for __compar_d_fn_t. Let's hence do that
+--- a/src/core/kmod-setup.c
++++ b/src/core/kmod-setup.c
+@@ -10,6 +10,7 @@
+ #include "macro.h"
+ #include "recurse-dir.h"
+ #include "string-util.h"
++#include "missing_type.h"
+ 
+ #if HAVE_KMOD
+ #include "module-util.h"
+--- a/src/libsystemd/sd-journal/catalog.c
++++ b/src/libsystemd/sd-journal/catalog.c
+@@ -28,6 +28,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "tmpfile-util.h"
++#include "missing_type.h"
+ 
+ const char * const catalog_file_dirs[] = {
+         "/usr/local/lib/systemd/catalog/",
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-add-fallback-parse_printf_format-implementation.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-add-fallback-parse_printf_format-implementation.patch
new file mode 100644
index 0000000..d93f630
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-add-fallback-parse_printf_format-implementation.patch
@@ -0,0 +1,419 @@
+From 3e0df2c22bfd37bc62bf09a01ec498e40d3599de Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sat, 22 May 2021 20:26:24 +0200
+Subject: [PATCH] add fallback parse_printf_format implementation
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Emil Renner Berthing <systemd@esmil.dk>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[rebased for systemd 243]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+---
+ meson.build                              |   1 +
+ src/basic/meson.build                    |   5 +
+ src/basic/parse-printf-format.c          | 273 +++++++++++++++++++++++
+ src/basic/parse-printf-format.h          |  57 +++++
+ src/basic/stdio-util.h                   |   2 +-
+ src/libsystemd/sd-journal/journal-send.c |   2 +-
+ 6 files changed, 338 insertions(+), 2 deletions(-)
+ create mode 100644 src/basic/parse-printf-format.c
+ create mode 100644 src/basic/parse-printf-format.h
+
+--- a/meson.build
++++ b/meson.build
+@@ -686,6 +686,7 @@ endif
+ foreach header : ['crypt.h',
+                   'linux/memfd.h',
+                   'linux/vm_sockets.h',
++                  'printf.h',
+                   'sys/auxv.h',
+                   'valgrind/memcheck.h',
+                   'valgrind/valgrind.h',
+--- a/src/basic/meson.build
++++ b/src/basic/meson.build
+@@ -335,6 +335,11 @@ endforeach
+ 
+ basic_sources += generated_gperf_headers
+ 
++if conf.get('HAVE_PRINTF_H') != 1
++        basic_sources += [files('parse-printf-format.c')]
++endif
++
++
+ ############################################################
+ 
+ arch_list = [
+--- /dev/null
++++ b/src/basic/parse-printf-format.c
+@@ -0,0 +1,273 @@
++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
++
++/***
++  This file is part of systemd.
++
++  Copyright 2014 Emil Renner Berthing <systemd@esmil.dk>
++
++  With parts from the musl C library
++  Copyright 2005-2014 Rich Felker, et al.
++
++  systemd is free software; you can redistribute it and/or modify it
++  under the terms of the GNU Lesser General Public License as published by
++  the Free Software Foundation; either version 2.1 of the License, or
++  (at your option) any later version.
++
++  systemd is distributed in the hope that it will be useful, but
++  WITHOUT ANY WARRANTY; without even the implied warranty of
++  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++  Lesser General Public License for more details.
++
++  You should have received a copy of the GNU Lesser General Public License
++  along with systemd; If not, see <http://www.gnu.org/licenses/>.
++***/
++
++#include <stddef.h>
++#include <string.h>
++
++#include "parse-printf-format.h"
++
++static const char *consume_nonarg(const char *fmt)
++{
++        do {
++                if (*fmt == '\0')
++                        return fmt;
++        } while (*fmt++ != '%');
++        return fmt;
++}
++
++static const char *consume_num(const char *fmt)
++{
++        for (;*fmt >= '0' && *fmt <= '9'; fmt++)
++                /* do nothing */;
++        return fmt;
++}
++
++static const char *consume_argn(const char *fmt, size_t *arg)
++{
++        const char *p = fmt;
++        size_t val = 0;
++
++        if (*p < '1' || *p > '9')
++                return fmt;
++        do {
++                val = 10*val + (*p++ - '0');
++        } while (*p >= '0' && *p <= '9');
++
++        if (*p != '$')
++                return fmt;
++        *arg = val;
++        return p+1;
++}
++
++static const char *consume_flags(const char *fmt)
++{
++        while (1) {
++                switch (*fmt) {
++                case '#':
++                case '0':
++                case '-':
++                case ' ':
++                case '+':
++                case '\'':
++                case 'I':
++                        fmt++;
++                        continue;
++                }
++                return fmt;
++        }
++}
++
++enum state {
++        BARE,
++        LPRE,
++        LLPRE,
++        HPRE,
++        HHPRE,
++        BIGLPRE,
++        ZTPRE,
++        JPRE,
++        STOP
++};
++
++enum type {
++        NONE,
++        PTR,
++        INT,
++        UINT,
++        ULLONG,
++        LONG,
++        ULONG,
++        SHORT,
++        USHORT,
++        CHAR,
++        UCHAR,
++        LLONG,
++        SIZET,
++        IMAX,
++        UMAX,
++        PDIFF,
++        UIPTR,
++        DBL,
++        LDBL,
++        MAXTYPE
++};
++
++static const short pa_types[MAXTYPE] = {
++        [NONE]   = PA_INT,
++        [PTR]    = PA_POINTER,
++        [INT]    = PA_INT,
++        [UINT]   = PA_INT,
++        [ULLONG] = PA_INT | PA_FLAG_LONG_LONG,
++        [LONG]   = PA_INT | PA_FLAG_LONG,
++        [ULONG]  = PA_INT | PA_FLAG_LONG,
++        [SHORT]  = PA_INT | PA_FLAG_SHORT,
++        [USHORT] = PA_INT | PA_FLAG_SHORT,
++        [CHAR]   = PA_CHAR,
++        [UCHAR]  = PA_CHAR,
++        [LLONG]  = PA_INT | PA_FLAG_LONG_LONG,
++        [SIZET]  = PA_INT | PA_FLAG_LONG,
++        [IMAX]   = PA_INT | PA_FLAG_LONG_LONG,
++        [UMAX]   = PA_INT | PA_FLAG_LONG_LONG,
++        [PDIFF]  = PA_INT | PA_FLAG_LONG_LONG,
++        [UIPTR]  = PA_INT | PA_FLAG_LONG,
++        [DBL]    = PA_DOUBLE,
++        [LDBL]   = PA_DOUBLE | PA_FLAG_LONG_DOUBLE
++};
++
++#define S(x) [(x)-'A']
++#define E(x) (STOP + (x))
++
++static const unsigned char states[]['z'-'A'+1] = {
++        { /* 0: bare types */
++                S('d') = E(INT), S('i') = E(INT),
++                S('o') = E(UINT),S('u') = E(UINT),S('x') = E(UINT), S('X') = E(UINT),
++                S('e') = E(DBL), S('f') = E(DBL), S('g') = E(DBL),  S('a') = E(DBL),
++                S('E') = E(DBL), S('F') = E(DBL), S('G') = E(DBL),  S('A') = E(DBL),
++                S('c') = E(CHAR),S('C') = E(INT),
++                S('s') = E(PTR), S('S') = E(PTR), S('p') = E(UIPTR),S('n') = E(PTR),
++                S('m') = E(NONE),
++                S('l') = LPRE,   S('h') = HPRE, S('L') = BIGLPRE,
++                S('z') = ZTPRE,  S('j') = JPRE, S('t') = ZTPRE
++        }, { /* 1: l-prefixed */
++                S('d') = E(LONG), S('i') = E(LONG),
++                S('o') = E(ULONG),S('u') = E(ULONG),S('x') = E(ULONG),S('X') = E(ULONG),
++                S('e') = E(DBL),  S('f') = E(DBL),  S('g') = E(DBL),  S('a') = E(DBL),
++                S('E') = E(DBL),  S('F') = E(DBL),  S('G') = E(DBL),  S('A') = E(DBL),
++                S('c') = E(INT),  S('s') = E(PTR),  S('n') = E(PTR),
++                S('l') = LLPRE
++        }, { /* 2: ll-prefixed */
++                S('d') = E(LLONG), S('i') = E(LLONG),
++                S('o') = E(ULLONG),S('u') = E(ULLONG),
++                S('x') = E(ULLONG),S('X') = E(ULLONG),
++                S('n') = E(PTR)
++        }, { /* 3: h-prefixed */
++                S('d') = E(SHORT), S('i') = E(SHORT),
++                S('o') = E(USHORT),S('u') = E(USHORT),
++                S('x') = E(USHORT),S('X') = E(USHORT),
++                S('n') = E(PTR),
++                S('h') = HHPRE
++        }, { /* 4: hh-prefixed */
++                S('d') = E(CHAR), S('i') = E(CHAR),
++                S('o') = E(UCHAR),S('u') = E(UCHAR),
++                S('x') = E(UCHAR),S('X') = E(UCHAR),
++                S('n') = E(PTR)
++        }, { /* 5: L-prefixed */
++                S('e') = E(LDBL),S('f') = E(LDBL),S('g') = E(LDBL), S('a') = E(LDBL),
++                S('E') = E(LDBL),S('F') = E(LDBL),S('G') = E(LDBL), S('A') = E(LDBL),
++                S('n') = E(PTR)
++        }, { /* 6: z- or t-prefixed (assumed to be same size) */
++                S('d') = E(PDIFF),S('i') = E(PDIFF),
++                S('o') = E(SIZET),S('u') = E(SIZET),
++                S('x') = E(SIZET),S('X') = E(SIZET),
++                S('n') = E(PTR)
++        }, { /* 7: j-prefixed */
++                S('d') = E(IMAX), S('i') = E(IMAX),
++                S('o') = E(UMAX), S('u') = E(UMAX),
++                S('x') = E(UMAX), S('X') = E(UMAX),
++                S('n') = E(PTR)
++        }
++};
++
++size_t parse_printf_format(const char *fmt, size_t n, int *types)
++{
++        size_t i = 0;
++        size_t last = 0;
++
++        memset(types, 0, n);
++
++        while (1) {
++                size_t arg;
++                unsigned int state;
++
++                fmt = consume_nonarg(fmt);
++                if (*fmt == '\0')
++                        break;
++                if (*fmt == '%') {
++                        fmt++;
++                        continue;
++                }
++                arg = 0;
++                fmt = consume_argn(fmt, &arg);
++                /* flags */
++                fmt = consume_flags(fmt);
++                /* width */
++                if (*fmt == '*') {
++                        size_t warg = 0;
++                        fmt = consume_argn(fmt+1, &warg);
++                        if (warg == 0)
++                                warg = ++i;
++                        if (warg > last)
++                                last = warg;
++                        if (warg <= n && types[warg-1] == NONE)
++                                types[warg-1] = INT;
++                } else
++                        fmt = consume_num(fmt);
++                /* precision */
++                if (*fmt == '.') {
++                        fmt++;
++                        if (*fmt == '*') {
++                                size_t parg = 0;
++                                fmt = consume_argn(fmt+1, &parg);
++                                if (parg == 0)
++                                        parg = ++i;
++                                if (parg > last)
++                                        last = parg;
++                                if (parg <= n && types[parg-1] == NONE)
++                                        types[parg-1] = INT;
++                        } else {
++                                if (*fmt == '-')
++                                        fmt++;
++                                fmt = consume_num(fmt);
++                        }
++                }
++                /* length modifier and conversion specifier */
++                state = BARE;
++                do {
++                        unsigned char c = *fmt++;
++
++                        if (c < 'A' || c > 'z')
++                                continue;
++                        state = states[state]S(c);
++                        if (state == 0)
++                                continue;
++                } while (state < STOP);
++
++                if (state == E(NONE))
++                        continue;
++
++                if (arg == 0)
++                        arg = ++i;
++                if (arg > last)
++                        last = arg;
++                if (arg <= n)
++                        types[arg-1] = state - STOP;
++        }
++
++        if (last > n)
++                last = n;
++        for (i = 0; i < last; i++)
++                types[i] = pa_types[types[i]];
++
++        return last;
++}
+--- /dev/null
++++ b/src/basic/parse-printf-format.h
+@@ -0,0 +1,57 @@
++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
++
++/***
++  This file is part of systemd.
++
++  Copyright 2014 Emil Renner Berthing <systemd@esmil.dk>
++
++  With parts from the GNU C Library
++  Copyright 1991-2014 Free Software Foundation, Inc.
++
++  systemd is free software; you can redistribute it and/or modify it
++  under the terms of the GNU Lesser General Public License as published by
++  the Free Software Foundation; either version 2.1 of the License, or
++  (at your option) any later version.
++
++  systemd is distributed in the hope that it will be useful, but
++  WITHOUT ANY WARRANTY; without even the implied warranty of
++  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++  Lesser General Public License for more details.
++
++  You should have received a copy of the GNU Lesser General Public License
++  along with systemd; If not, see <http://www.gnu.org/licenses/>.
++***/
++
++#pragma once
++
++#include "config.h"
++
++#if HAVE_PRINTF_H
++#include <printf.h>
++#else
++
++#include <stddef.h>
++
++enum {				/* C type: */
++  PA_INT,			/* int */
++  PA_CHAR,			/* int, cast to char */
++  PA_WCHAR,			/* wide char */
++  PA_STRING,			/* const char *, a '\0'-terminated string */
++  PA_WSTRING,			/* const wchar_t *, wide character string */
++  PA_POINTER,			/* void * */
++  PA_FLOAT,			/* float */
++  PA_DOUBLE,			/* double */
++  PA_LAST
++};
++
++/* Flag bits that can be set in a type returned by `parse_printf_format'.  */
++#define	PA_FLAG_MASK		0xff00
++#define	PA_FLAG_LONG_LONG	(1 << 8)
++#define	PA_FLAG_LONG_DOUBLE	PA_FLAG_LONG_LONG
++#define	PA_FLAG_LONG		(1 << 9)
++#define	PA_FLAG_SHORT		(1 << 10)
++#define	PA_FLAG_PTR		(1 << 11)
++
++size_t parse_printf_format(const char *fmt, size_t n, int *types);
++
++#endif /* HAVE_PRINTF_H */
+--- a/src/basic/stdio-util.h
++++ b/src/basic/stdio-util.h
+@@ -1,13 +1,13 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ #pragma once
+ 
+-#include <printf.h>
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <sys/types.h>
+ 
+ #include "macro.h"
+ #include "memory-util.h"
++#include "parse-printf-format.h"
+ 
+ #define snprintf_ok(buf, len, fmt, ...)                                \
+         ({                                                             \
+--- a/src/libsystemd/sd-journal/journal-send.c
++++ b/src/libsystemd/sd-journal/journal-send.c
+@@ -2,7 +2,6 @@
+ 
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <printf.h>
+ #include <stddef.h>
+ #include <sys/un.h>
+ #include <unistd.h>
+@@ -21,6 +20,7 @@
+ #include "stdio-util.h"
+ #include "string-util.h"
+ #include "tmpfile-util.h"
++#include "parse-printf-format.h"
+ 
+ #define SNDBUF_SIZE (8*1024*1024)
+ 
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
new file mode 100644
index 0000000..36545c2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
@@ -0,0 +1,602 @@
+From cef23a651ea200e30e1e6ed2a2564505e3a42d46 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 14:18:21 +0800
+Subject: [PATCH] src/basic/missing.h: check for missing strndupa
+
+include missing.h  for definition of strndupa
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[Rebased for v242]
+Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+[rebased for systemd 243]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+[rebased for systemd 244]
+[Rebased for v247]
+Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+
+---
+ meson.build                                |  1 +
+ src/backlight/backlight.c                  |  1 +
+ src/basic/cgroup-util.c                    |  1 +
+ src/basic/env-util.c                       |  1 +
+ src/basic/log.c                            |  1 +
+ src/basic/missing_stdlib.h                 | 12 ++++++++++++
+ src/basic/mkdir.c                          |  1 +
+ src/basic/mountpoint-util.c                |  1 +
+ src/basic/parse-util.c                     |  1 +
+ src/basic/path-lookup.c                    |  1 +
+ src/basic/percent-util.c                   |  1 +
+ src/basic/proc-cmdline.c                   |  1 +
+ src/basic/procfs-util.c                    |  1 +
+ src/basic/time-util.c                      |  1 +
+ src/boot/bless-boot.c                      |  1 +
+ src/core/dbus-cgroup.c                     |  1 +
+ src/core/dbus-execute.c                    |  1 +
+ src/core/dbus-util.c                       |  1 +
+ src/core/execute.c                         |  1 +
+ src/core/kmod-setup.c                      |  1 +
+ src/core/service.c                         |  1 +
+ src/coredump/coredump-vacuum.c             |  1 +
+ src/journal-remote/journal-remote-main.c   |  1 +
+ src/journal/journalctl.c                   |  1 +
+ src/libsystemd/sd-bus/bus-message.c        |  1 +
+ src/libsystemd/sd-bus/bus-objects.c        |  1 +
+ src/libsystemd/sd-bus/bus-socket.c         |  1 +
+ src/libsystemd/sd-bus/sd-bus.c             |  1 +
+ src/libsystemd/sd-bus/test-bus-benchmark.c |  1 +
+ src/libsystemd/sd-journal/sd-journal.c     |  1 +
+ src/locale/keymap-util.c                   |  1 +
+ src/login/pam_systemd.c                    |  1 +
+ src/network/generator/network-generator.c  |  1 +
+ src/nspawn/nspawn-settings.c               |  1 +
+ src/nss-mymachines/nss-mymachines.c        |  1 +
+ src/portable/portable.c                    |  1 +
+ src/resolve/resolvectl.c                   |  1 +
+ src/shared/bus-get-properties.c            |  1 +
+ src/shared/bus-unit-procs.c                |  1 +
+ src/shared/bus-unit-util.c                 |  1 +
+ src/shared/bus-util.c                      |  1 +
+ src/shared/dns-domain.c                    |  1 +
+ src/shared/journal-importer.c              |  1 +
+ src/shared/logs-show.c                     |  1 +
+ src/shared/pager.c                         |  1 +
+ src/shared/uid-range.c                     |  1 +
+ src/socket-proxy/socket-proxyd.c           |  1 +
+ src/test/test-hexdecoct.c                  |  1 +
+ src/udev/udev-builtin-path_id.c            |  1 +
+ src/udev/udev-event.c                      |  1 +
+ src/udev/udev-rules.c                      |  1 +
+ 51 files changed, 62 insertions(+)
+
+--- a/meson.build
++++ b/meson.build
+@@ -507,6 +507,7 @@ foreach ident : ['secure_getenv', '__sec
+ endforeach
+ 
+ foreach ident : [
++        ['strndupa' ,         '''#include <string.h>'''],
+         ['memfd_create',      '''#include <sys/mman.h>'''],
+         ['gettid',            '''#include <sys/types.h>
+                                  #include <unistd.h>'''],
+--- a/src/backlight/backlight.c
++++ b/src/backlight/backlight.c
+@@ -19,6 +19,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "util.h"
++#include "missing_stdlib.h"
+ 
+ static int help(void) {
+         _cleanup_free_ char *link = NULL;
+--- a/src/basic/cgroup-util.c
++++ b/src/basic/cgroup-util.c
+@@ -37,6 +37,7 @@
+ #include "unit-name.h"
+ #include "user-util.h"
+ #include "xattr-util.h"
++#include "missing_stdlib.h"
+ 
+ static int cg_enumerate_items(const char *controller, const char *path, FILE **_f, const char *item) {
+         _cleanup_free_ char *fs = NULL;
+--- a/src/basic/env-util.c
++++ b/src/basic/env-util.c
+@@ -19,6 +19,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+ 
+ /* We follow bash for the character set. Different shells have different rules. */
+ #define VALID_BASH_ENV_NAME_CHARS               \
+--- a/src/basic/log.c
++++ b/src/basic/log.c
+@@ -36,6 +36,7 @@
+ #include "terminal-util.h"
+ #include "time-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+ 
+ #define SNDBUF_SIZE (8*1024*1024)
+ 
+--- a/src/basic/missing_stdlib.h
++++ b/src/basic/missing_stdlib.h
+@@ -11,3 +11,15 @@
+ #    error "neither secure_getenv nor __secure_getenv are available"
+ #  endif
+ #endif
++
++/* string.h */
++#if ! HAVE_STRNDUPA
++#define strndupa(s, n) \
++  ({ \
++    const char *__old = (s); \
++    size_t __len = strnlen(__old, (n)); \
++    char *__new = (char *)alloca(__len + 1); \
++    __new[__len] = '\0'; \
++    (char *)memcpy(__new, __old, __len); \
++  })
++#endif
+--- a/src/basic/mkdir.c
++++ b/src/basic/mkdir.c
+@@ -15,6 +15,7 @@
+ #include "stat-util.h"
+ #include "stdio-util.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+ 
+ int mkdir_safe_internal(
+                 const char *path,
+--- a/src/basic/mountpoint-util.c
++++ b/src/basic/mountpoint-util.c
+@@ -13,6 +13,7 @@
+ #include "missing_stat.h"
+ #include "missing_syscall.h"
+ #include "mkdir.h"
++#include "missing_stdlib.h"
+ #include "mountpoint-util.h"
+ #include "nulstr-util.h"
+ #include "parse-util.h"
+--- a/src/basic/parse-util.c
++++ b/src/basic/parse-util.c
+@@ -18,6 +18,7 @@
+ #include "stat-util.h"
+ #include "string-util.h"
+ #include "strv.h"
++#include "missing_stdlib.h"
+ 
+ int parse_boolean(const char *v) {
+         if (!v)
+--- a/src/basic/path-lookup.c
++++ b/src/basic/path-lookup.c
+@@ -16,6 +16,7 @@
+ #include "strv.h"
+ #include "tmpfile-util.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+ 
+ int xdg_user_runtime_dir(char **ret, const char *suffix) {
+         const char *e;
+--- a/src/basic/percent-util.c
++++ b/src/basic/percent-util.c
+@@ -3,6 +3,7 @@
+ #include "percent-util.h"
+ #include "string-util.h"
+ #include "parse-util.h"
++#include "missing_stdlib.h"
+ 
+ static int parse_parts_value_whole(const char *p, const char *symbol) {
+         const char *pc, *n;
+--- a/src/basic/proc-cmdline.c
++++ b/src/basic/proc-cmdline.c
+@@ -15,6 +15,7 @@
+ #include "string-util.h"
+ #include "util.h"
+ #include "virt.h"
++#include "missing_stdlib.h"
+ 
+ int proc_cmdline(char **ret) {
+         const char *e;
+--- a/src/basic/procfs-util.c
++++ b/src/basic/procfs-util.c
+@@ -12,6 +12,7 @@
+ #include "procfs-util.h"
+ #include "stdio-util.h"
+ #include "string-util.h"
++#include "missing_stdlib.h"
+ 
+ int procfs_get_pid_max(uint64_t *ret) {
+         _cleanup_free_ char *value = NULL;
+--- a/src/basic/time-util.c
++++ b/src/basic/time-util.c
+@@ -26,6 +26,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "time-util.h"
++#include "missing_stdlib.h"
+ 
+ static clockid_t map_clock_id(clockid_t c) {
+ 
+--- a/src/boot/bless-boot.c
++++ b/src/boot/bless-boot.c
+@@ -19,6 +19,7 @@
+ #include "util.h"
+ #include "verbs.h"
+ #include "virt.h"
++#include "missing_stdlib.h"
+ 
+ static char **arg_path = NULL;
+ 
+--- a/src/core/dbus-execute.c
++++ b/src/core/dbus-execute.c
+@@ -44,6 +44,7 @@
+ #include "unit-printf.h"
+ #include "user-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+ 
+ BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput);
+ static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
+--- a/src/core/dbus-util.c
++++ b/src/core/dbus-util.c
+@@ -9,6 +9,7 @@
+ #include "unit-printf.h"
+ #include "user-util.h"
+ #include "unit.h"
++#include "missing_stdlib.h"
+ 
+ int bus_property_get_triggered_unit(
+                 sd_bus *bus,
+--- a/src/core/execute.c
++++ b/src/core/execute.c
+@@ -102,6 +102,7 @@
+ #include "unit-serialize.h"
+ #include "user-util.h"
+ #include "utmp-wtmp.h"
++#include "missing_stdlib.h"
+ 
+ #define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC)
+ #define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC)
+--- a/src/core/kmod-setup.c
++++ b/src/core/kmod-setup.c
+@@ -11,6 +11,7 @@
+ #include "recurse-dir.h"
+ #include "string-util.h"
+ #include "missing_type.h"
++#include "missing_stdlib.h"
+ 
+ #if HAVE_KMOD
+ #include "module-util.h"
+--- a/src/core/service.c
++++ b/src/core/service.c
+@@ -42,6 +42,7 @@
+ #include "unit.h"
+ #include "utf8.h"
+ #include "util.h"
++#include "missing_stdlib.h"
+ 
+ static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
+         [SERVICE_DEAD] = UNIT_INACTIVE,
+--- a/src/coredump/coredump-vacuum.c
++++ b/src/coredump/coredump-vacuum.c
+@@ -16,6 +16,7 @@
+ #include "string-util.h"
+ #include "time-util.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+ 
+ #define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL)           /* 1 MiB */
+ #define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL)   /* 4 GiB */
+--- a/src/journal-remote/journal-remote-main.c
++++ b/src/journal-remote/journal-remote-main.c
+@@ -24,6 +24,7 @@
+ #include "stat-util.h"
+ #include "string-table.h"
+ #include "strv.h"
++#include "missing_stdlib.h"
+ 
+ #define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem"
+ #define CERT_FILE     CERTIFICATE_ROOT "/certs/journal-remote.pem"
+--- a/src/journal/journalctl.c
++++ b/src/journal/journalctl.c
+@@ -73,6 +73,7 @@
+ #include "unit-name.h"
+ #include "user-util.h"
+ #include "varlink.h"
++#include "missing_stdlib.h"
+ 
+ #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
+ #define PROCESS_INOTIFY_INTERVAL 1024   /* Every 1,024 messages processed */
+--- a/src/libsystemd/sd-bus/bus-message.c
++++ b/src/libsystemd/sd-bus/bus-message.c
+@@ -20,6 +20,7 @@
+ #include "strv.h"
+ #include "time-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+ 
+ static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
+ 
+--- a/src/libsystemd/sd-bus/bus-objects.c
++++ b/src/libsystemd/sd-bus/bus-objects.c
+@@ -12,6 +12,7 @@
+ #include "set.h"
+ #include "string-util.h"
+ #include "strv.h"
++#include "missing_stdlib.h"
+ 
+ static int node_vtable_get_userdata(
+                 sd_bus *bus,
+--- a/src/libsystemd/sd-bus/bus-socket.c
++++ b/src/libsystemd/sd-bus/bus-socket.c
+@@ -28,6 +28,7 @@
+ #include "string-util.h"
+ #include "user-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+ 
+ #define SNDBUF_SIZE (8*1024*1024)
+ 
+--- a/src/libsystemd/sd-bus/sd-bus.c
++++ b/src/libsystemd/sd-bus/sd-bus.c
+@@ -43,6 +43,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+ 
+ #define log_debug_bus_message(m)                                         \
+         do {                                                             \
+--- a/src/libsystemd/sd-bus/test-bus-benchmark.c
++++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
+@@ -14,6 +14,7 @@
+ #include "string-util.h"
+ #include "time-util.h"
+ #include "util.h"
++#include "missing_stdlib.h"
+ 
+ #define MAX_SIZE (2*1024*1024)
+ 
+--- a/src/libsystemd/sd-journal/sd-journal.c
++++ b/src/libsystemd/sd-journal/sd-journal.c
+@@ -41,6 +41,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "syslog-util.h"
++#include "missing_stdlib.h"
+ 
+ #define JOURNAL_FILES_MAX 7168
+ 
+--- a/src/locale/keymap-util.c
++++ b/src/locale/keymap-util.c
+@@ -24,6 +24,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "tmpfile-util.h"
++#include "missing_stdlib.h"
+ 
+ static bool startswith_comma(const char *s, const char *prefix) {
+         s = startswith(s, prefix);
+--- a/src/login/pam_systemd.c
++++ b/src/login/pam_systemd.c
+@@ -31,6 +31,7 @@
+ #include "locale-util.h"
+ #include "login-util.h"
+ #include "macro.h"
++#include "missing_stdlib.h"
+ #include "pam-util.h"
+ #include "parse-util.h"
+ #include "path-util.h"
+--- a/src/network/generator/network-generator.c
++++ b/src/network/generator/network-generator.c
+@@ -13,6 +13,7 @@
+ #include "string-table.h"
+ #include "string-util.h"
+ #include "strv.h"
++#include "missing_stdlib.h"
+ 
+ /*
+   # .network
+--- a/src/nspawn/nspawn-settings.c
++++ b/src/nspawn/nspawn-settings.c
+@@ -17,6 +17,7 @@
+ #include "strv.h"
+ #include "user-util.h"
+ #include "util.h"
++#include "missing_stdlib.h"
+ 
+ Settings *settings_new(void) {
+         Settings *s;
+--- a/src/nss-mymachines/nss-mymachines.c
++++ b/src/nss-mymachines/nss-mymachines.c
+@@ -21,6 +21,7 @@
+ #include "nss-util.h"
+ #include "signal-util.h"
+ #include "string-util.h"
++#include "missing_stdlib.h"
+ 
+ static void setup_logging_once(void) {
+         static pthread_once_t once = PTHREAD_ONCE_INIT;
+--- a/src/portable/portable.c
++++ b/src/portable/portable.c
+@@ -39,6 +39,7 @@
+ #include "strv.h"
+ #include "tmpfile-util.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+ 
+ /* Markers used in the first line of our 20-portable.conf unit file drop-in to determine, that a) the unit file was
+  * dropped there by the portable service logic and b) for which image it was dropped there. */
+--- a/src/resolve/resolvectl.c
++++ b/src/resolve/resolvectl.c
+@@ -43,6 +43,7 @@
+ #include "utf8.h"
+ #include "verb-log-control.h"
+ #include "verbs.h"
++#include "missing_stdlib.h"
+ 
+ static int arg_family = AF_UNSPEC;
+ static int arg_ifindex = 0;
+--- a/src/shared/bus-get-properties.c
++++ b/src/shared/bus-get-properties.c
+@@ -4,6 +4,7 @@
+ #include "rlimit-util.h"
+ #include "stdio-util.h"
+ #include "string-util.h"
++#include "missing_stdlib.h"
+ 
+ int bus_property_get_bool(
+                 sd_bus *bus,
+--- a/src/shared/bus-unit-procs.c
++++ b/src/shared/bus-unit-procs.c
+@@ -10,6 +10,7 @@
+ #include "sort-util.h"
+ #include "string-util.h"
+ #include "terminal-util.h"
++#include "missing_stdlib.h"
+ 
+ struct CGroupInfo {
+         char *cgroup_path;
+--- a/src/shared/bus-unit-util.c
++++ b/src/shared/bus-unit-util.c
+@@ -49,6 +49,7 @@
+ #include "unit-def.h"
+ #include "user-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+ 
+ int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
+         assert(message);
+--- a/src/shared/bus-util.c
++++ b/src/shared/bus-util.c
+@@ -21,6 +21,7 @@
+ #include "path-util.h"
+ #include "socket-util.h"
+ #include "stdio-util.h"
++#include "missing_stdlib.h"
+ 
+ static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
+         sd_event *e = userdata;
+--- a/src/shared/dns-domain.c
++++ b/src/shared/dns-domain.c
+@@ -17,6 +17,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+ 
+ int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
+         const char *n;
+--- a/src/shared/journal-importer.c
++++ b/src/shared/journal-importer.c
+@@ -15,6 +15,7 @@
+ #include "parse-util.h"
+ #include "string-util.h"
+ #include "unaligned.h"
++#include "missing_stdlib.h"
+ 
+ enum {
+         IMPORTER_STATE_LINE = 0,    /* waiting to read, or reading line */
+--- a/src/shared/logs-show.c
++++ b/src/shared/logs-show.c
+@@ -42,6 +42,7 @@
+ #include "utf8.h"
+ #include "util.h"
+ #include "web-util.h"
++#include "missing_stdlib.h"
+ 
+ /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
+ #define PRINT_LINE_THRESHOLD 3
+--- a/src/shared/pager.c
++++ b/src/shared/pager.c
+@@ -26,6 +26,7 @@
+ #include "strv.h"
+ #include "terminal-util.h"
+ #include "util.h"
++#include "missing_stdlib.h"
+ 
+ static pid_t pager_pid = 0;
+ 
+--- a/src/shared/uid-range.c
++++ b/src/shared/uid-range.c
+@@ -9,6 +9,7 @@
+ #include "sort-util.h"
+ #include "uid-range.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+ 
+ static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
+         assert(range);
+--- a/src/socket-proxy/socket-proxyd.c
++++ b/src/socket-proxy/socket-proxyd.c
+@@ -26,6 +26,7 @@
+ #include "socket-util.h"
+ #include "string-util.h"
+ #include "util.h"
++#include "missing_stdlib.h"
+ 
+ #define BUFFER_SIZE (256 * 1024)
+ 
+--- a/src/test/test-hexdecoct.c
++++ b/src/test/test-hexdecoct.c
+@@ -7,6 +7,7 @@
+ #include "macro.h"
+ #include "random-util.h"
+ #include "string-util.h"
++#include "missing_stdlib.h"
+ #include "tests.h"
+ 
+ TEST(hexchar) {
+--- a/src/udev/udev-builtin-path_id.c
++++ b/src/udev/udev-builtin-path_id.c
+@@ -22,6 +22,7 @@
+ #include "sysexits.h"
+ #include "udev-builtin.h"
+ #include "udev-util.h"
++#include "missing_stdlib.h"
+ 
+ _printf_(2,3)
+ static void path_prepend(char **path, const char *fmt, ...) {
+--- a/src/udev/udev-event.c
++++ b/src/udev/udev-event.c
+@@ -35,6 +35,7 @@
+ #include "udev-util.h"
+ #include "udev-watch.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+ 
+ typedef struct Spawn {
+         sd_device *device;
+--- a/src/udev/udev-rules.c
++++ b/src/udev/udev-rules.c
+@@ -34,6 +34,7 @@
+ #include "udev-util.h"
+ #include "user-util.h"
+ #include "virt.h"
++#include "missing_stdlib.h"
+ 
+ #define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
+ 
+--- a/src/core/dbus-cgroup.c
++++ b/src/core/dbus-cgroup.c
+@@ -21,6 +21,7 @@
+ #include "parse-util.h"
+ #include "path-util.h"
+ #include "percent-util.h"
++#include "missing_stdlib.h"
+ #include "socket-util.h"
+ 
+ BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve);
+--- a/src/fstab-generator/fstab-generator.c
++++ b/src/fstab-generator/fstab-generator.c
+@@ -29,6 +29,7 @@
+ #include "util.h"
+ #include "virt.h"
+ #include "volatile-util.h"
++#include "missing_stdlib.h"
+ 
+ typedef enum MountPointFlags {
+         MOUNT_NOAUTO    = 1 << 0,
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
new file mode 100644
index 0000000..846c01b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
@@ -0,0 +1,147 @@
+From fb068403b25002156435350165ea418a6338a313 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 14:56:21 +0800
+Subject: [PATCH] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not defined
+
+If the standard library doesn't provide brace
+expansion users just won't get it.
+
+Dont use GNU GLOB extentions on non-glibc systems
+
+Conditionalize use of GLOB_ALTDIRFUNC
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[rebased for systemd 243]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+---
+ src/basic/glob-util.c     | 12 ++++++++++++
+ src/test/test-glob-util.c | 16 ++++++++++++++++
+ src/tmpfiles/tmpfiles.c   | 10 ++++++++++
+ 3 files changed, 38 insertions(+)
+
+--- a/src/basic/glob-util.c
++++ b/src/basic/glob-util.c
+@@ -12,6 +12,12 @@
+ #include "path-util.h"
+ #include "strv.h"
+ 
++/* Don't fail if the standard library
++ * doesn't provide brace expansion */
++#ifndef GLOB_BRACE
++#define GLOB_BRACE 0
++#endif
++
+ static void closedir_wrapper(void* v) {
+         (void) closedir(v);
+ }
+@@ -19,6 +25,7 @@ static void closedir_wrapper(void* v) {
+ int safe_glob(const char *path, int flags, glob_t *pglob) {
+         int k;
+ 
++#ifdef GLOB_ALTDIRFUNC
+         /* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */
+         assert(!(flags & GLOB_ALTDIRFUNC));
+ 
+@@ -32,9 +39,14 @@ int safe_glob(const char *path, int flag
+                 pglob->gl_lstat = lstat;
+         if (!pglob->gl_stat)
+                 pglob->gl_stat = stat;
++#endif
+ 
+         errno = 0;
++#ifdef GLOB_ALTDIRFUNC
+         k = glob(path, flags | GLOB_ALTDIRFUNC, NULL, pglob);
++#else
++        k = glob(path, flags, NULL, pglob);
++#endif
+         if (k == GLOB_NOMATCH)
+                 return -ENOENT;
+         if (k == GLOB_NOSPACE)
+--- a/src/test/test-glob-util.c
++++ b/src/test/test-glob-util.c
+@@ -13,6 +13,12 @@
+ #include "tests.h"
+ #include "tmpfile-util.h"
+ 
++/* Don't fail if the standard library
++ * doesn't provide brace expansion */
++#ifndef GLOB_BRACE
++#define GLOB_BRACE 0
++#endif
++
+ TEST(glob_exists) {
+         char name[] = "/tmp/test-glob_exists.XXXXXX";
+         int fd = -1;
+@@ -40,11 +46,13 @@ TEST(glob_no_dot) {
+         const char *fn;
+ 
+         _cleanup_globfree_ glob_t g = {
++#ifdef GLOB_ALTDIRFUNC
+                 .gl_closedir = closedir_wrapper,
+                 .gl_readdir = (struct dirent *(*)(void *)) readdir_no_dot,
+                 .gl_opendir = (void *(*)(const char *)) opendir,
+                 .gl_lstat = lstat,
+                 .gl_stat = stat,
++#endif
+         };
+ 
+         int r;
+@@ -52,11 +60,19 @@ TEST(glob_no_dot) {
+         assert_se(mkdtemp(template));
+ 
+         fn = strjoina(template, "/*");
++#ifdef GLOB_ALTDIRFUNC
+         r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g);
++#else
++        r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g);
++#endif
+         assert_se(r == GLOB_NOMATCH);
+ 
+         fn = strjoina(template, "/.*");
++#ifdef GLOB_ALTDIRFUNC
+         r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g);
++#else
++        r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g);
++#endif
+         assert_se(r == GLOB_NOMATCH);
+ 
+         (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL);
+--- a/src/tmpfiles/tmpfiles.c
++++ b/src/tmpfiles/tmpfiles.c
+@@ -67,6 +67,12 @@
+ #include "umask-util.h"
+ #include "user-util.h"
+ 
++/* Don't fail if the standard library
++ * doesn't provide brace expansion */
++#ifndef GLOB_BRACE
++#define GLOB_BRACE 0
++#endif
++
+ /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
+  * them in the file system. This is intended to be used to create
+  * properly owned directories beneath /tmp, /var/tmp, /run, which are
+@@ -1961,7 +1967,9 @@ finish:
+ 
+ static int glob_item(Item *i, action_t action) {
+         _cleanup_globfree_ glob_t g = {
++#ifdef GLOB_ALTDIRFUNC
+                 .gl_opendir = (void *(*)(const char *)) opendir_nomod,
++#endif
+         };
+         int r = 0, k;
+         char **fn;
+@@ -1981,7 +1989,9 @@ static int glob_item(Item *i, action_t a
+ 
+ static int glob_item_recursively(Item *i, fdaction_t action) {
+         _cleanup_globfree_ glob_t g = {
++#ifdef GLOB_ALTDIRFUNC
+                 .gl_opendir = (void *(*)(const char *)) opendir_nomod,
++#endif
+         };
+         int r = 0, k;
+         char **fn;
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-add-missing-FTW_-macros-for-musl.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-add-missing-FTW_-macros-for-musl.patch
new file mode 100644
index 0000000..57e18a5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-add-missing-FTW_-macros-for-musl.patch
@@ -0,0 +1,64 @@
+From 7ca9887f84adba065dc2e59b3de55ace2fc72ec0 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 15:00:06 +0800
+Subject: [PATCH] add missing FTW_ macros for musl
+
+This is to avoid build failures like below for musl.
+
+  locale-util.c:296:24: error: 'FTW_STOP' undeclared
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
+---
+ src/basic/missing_type.h | 20 ++++++++++++++++++++
+ src/shared/mount-setup.c |  1 +
+ 2 files changed, 21 insertions(+)
+
+--- a/src/basic/missing_type.h
++++ b/src/basic/missing_type.h
+@@ -19,3 +19,23 @@ typedef int (*comparison_fn_t)(const voi
+ #define __COMPAR_FN_T
+ typedef int (*__compar_fn_t)(const void *, const void *);
+ #endif
++
++#ifndef FTW_ACTIONRETVAL
++#define FTW_ACTIONRETVAL 16
++#endif
++
++#ifndef FTW_CONTINUE
++#define FTW_CONTINUE 0
++#endif
++
++#ifndef FTW_STOP
++#define FTW_STOP 1
++#endif
++
++#ifndef FTW_SKIP_SUBTREE
++#define FTW_SKIP_SUBTREE 2
++#endif
++
++#ifndef FTW_SKIP_SIBLINGS
++#define FTW_SKIP_SIBLINGS 3
++#endif
+--- a/src/shared/mount-setup.c
++++ b/src/shared/mount-setup.c
+@@ -32,6 +32,7 @@
+ #include "strv.h"
+ #include "user-util.h"
+ #include "virt.h"
++#include "missing_type.h"
+ 
+ typedef enum MountMode {
+         MNT_NONE           = 0,
+--- a/src/test/test-recurse-dir.c
++++ b/src/test/test-recurse-dir.c
+@@ -6,6 +6,7 @@
+ #include "recurse-dir.h"
+ #include "strv.h"
+ #include "tests.h"
++#include "missing_type.h"
+ 
+ static char **list_nftw = NULL;
+ 
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
new file mode 100644
index 0000000..0fc3204
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
@@ -0,0 +1,43 @@
+From c7453b716ae308b89cf4b2b231a36ddd38a49752 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 15:03:47 +0800
+Subject: [PATCH] fix missing of __register_atfork for non-glibc builds
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
+---
+ src/basic/process-util.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/src/basic/process-util.c b/src/basic/process-util.c
+index 461bbfe9a5..2d06f9f60a 100644
+--- a/src/basic/process-util.c
++++ b/src/basic/process-util.c
+@@ -18,6 +18,9 @@
+ #if HAVE_VALGRIND_VALGRIND_H
+ #include <valgrind/valgrind.h>
+ #endif
++#ifndef __GLIBC__
++#include <pthread.h>
++#endif
+ 
+ #include "alloc-util.h"
+ #include "architecture.h"
+@@ -1202,11 +1205,15 @@ void reset_cached_pid(void) {
+         cached_pid = CACHED_PID_UNSET;
+ }
+ 
++#ifdef __GLIBC__
+ /* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc
+  * headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against
+  * libpthread, as it is part of glibc anyway. */
+ extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void *dso_handle);
+ extern void* __dso_handle _weak_;
++#else
++#define __register_atfork(prepare,parent,child,dso) pthread_atfork(prepare,parent,child)
++#endif
+ 
+ pid_t getpid_cached(void) {
+         static bool installed = false;
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-Use-uintmax_t-for-handling-rlim_t.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
new file mode 100644
index 0000000..029f413
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
@@ -0,0 +1,98 @@
+From 856010e268a6aca8e5f02502457afe289bd877f1 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 15:12:41 +0800
+Subject: [PATCH] Use uintmax_t for handling rlim_t
+
+PRIu{32,64} is not right format to represent rlim_t type
+therefore use %ju and typecast the rlim_t variables to
+uintmax_t.
+
+Fixes portablility errors like
+
+execute.c:3446:36: error: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'rlim_t {aka long long unsigned int}' [-Werror=format=]
+|                          fprintf(f, "%s%s: " RLIM_FMT "\n",
+|                                     ^~~~~~~~
+|                                  prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
+|                                                               ~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Denied [https://github.com/systemd/systemd/pull/7199]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+[Rebased for v241]
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
+---
+ src/basic/format-util.h |  8 +-------
+ src/basic/rlimit-util.c | 12 ++++++------
+ src/core/execute.c      |  4 ++--
+ 3 files changed, 9 insertions(+), 15 deletions(-)
+
+--- a/src/basic/format-util.h
++++ b/src/basic/format-util.h
+@@ -34,13 +34,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32
+ #  error Unknown timex member size
+ #endif
+ 
+-#if SIZEOF_RLIM_T == 8
+-#  define RLIM_FMT "%" PRIu64
+-#elif SIZEOF_RLIM_T == 4
+-#  define RLIM_FMT "%" PRIu32
+-#else
+-#  error Unknown rlim_t size
+-#endif
++#define RLIM_FMT "%ju"
+ 
+ #if SIZEOF_DEV_T == 8
+ #  define DEV_FMT "%" PRIu64
+--- a/src/basic/rlimit-util.c
++++ b/src/basic/rlimit-util.c
+@@ -44,7 +44,7 @@ int setrlimit_closest(int resource, cons
+             fixed.rlim_max == highest.rlim_max)
+                 return 0;
+ 
+-        log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", rlim->rlim_max, rlimit_to_string(resource), fixed.rlim_max);
++        log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", (uintmax_t)rlim->rlim_max, rlimit_to_string(resource), (uintmax_t)fixed.rlim_max);
+ 
+         return RET_NERRNO(setrlimit(resource, &fixed));
+ }
+@@ -307,13 +307,13 @@ int rlimit_format(const struct rlimit *r
+         if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
+                 r = free_and_strdup(&s, "infinity");
+         else if (rl->rlim_cur >= RLIM_INFINITY)
+-                r = asprintf(&s, "infinity:" RLIM_FMT, rl->rlim_max);
++                r = asprintf(&s, "infinity:" RLIM_FMT, (uintmax_t)rl->rlim_max);
+         else if (rl->rlim_max >= RLIM_INFINITY)
+-                r = asprintf(&s, RLIM_FMT ":infinity", rl->rlim_cur);
++                r = asprintf(&s, RLIM_FMT ":infinity", (uintmax_t)rl->rlim_cur);
+         else if (rl->rlim_cur == rl->rlim_max)
+-                r = asprintf(&s, RLIM_FMT, rl->rlim_cur);
++                r = asprintf(&s, RLIM_FMT, (uintmax_t)rl->rlim_cur);
+         else
+-                r = asprintf(&s, RLIM_FMT ":" RLIM_FMT, rl->rlim_cur, rl->rlim_max);
++                r = asprintf(&s, RLIM_FMT ":" RLIM_FMT, (uintmax_t)rl->rlim_cur, (uintmax_t)rl->rlim_max);
+         if (r < 0)
+                 return -ENOMEM;
+ 
+@@ -403,7 +403,7 @@ int rlimit_nofile_safe(void) {
+ 
+         rl.rlim_cur = FD_SETSIZE;
+         if (setrlimit(RLIMIT_NOFILE, &rl) < 0)
+-                return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", rl.rlim_cur);
++                return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", (uintmax_t)rl.rlim_cur);
+ 
+         return 1;
+ }
+--- a/src/core/execute.c
++++ b/src/core/execute.c
+@@ -5639,9 +5639,9 @@ void exec_context_dump(const ExecContext
+         for (unsigned i = 0; i < RLIM_NLIMITS; i++)
+                 if (c->rlimit[i]) {
+                         fprintf(f, "%sLimit%s: " RLIM_FMT "\n",
+-                                prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
++                                prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_max);
+                         fprintf(f, "%sLimit%sSoft: " RLIM_FMT "\n",
+-                                prefix, rlimit_to_string(i), c->rlimit[i]->rlim_cur);
++                                prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_cur);
+                 }
+ 
+         if (c->ioprio_set) {
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
new file mode 100644
index 0000000..327084b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
@@ -0,0 +1,37 @@
+From ad395dda5db9b1ae156be121cfc8a38960de6c55 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Wed, 28 Feb 2018 21:25:22 -0800
+Subject: [PATCH] test-sizeof.c: Disable tests for missing typedefs in musl
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
+---
+ src/test/test-sizeof.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/src/test/test-sizeof.c
++++ b/src/test/test-sizeof.c
+@@ -55,8 +55,10 @@ int main(void) {
+         info(unsigned);
+         info(long unsigned);
+         info(long long unsigned);
++#ifdef __GLIBC__
+         info(__syscall_ulong_t);
+         info(__syscall_slong_t);
++#endif
+         info(intmax_t);
+         info(uintmax_t);
+ 
+@@ -76,7 +78,9 @@ int main(void) {
+         info(ssize_t);
+         info(time_t);
+         info(usec_t);
++#ifdef __GLIBC__
+         info(__time_t);
++#endif
+         info(pid_t);
+         info(uid_t);
+         info(gid_t);
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
new file mode 100644
index 0000000..0026a7b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
@@ -0,0 +1,93 @@
+From 5d4c6b2f4b88b69b31f967371d2a6136c65dc3fd Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <armccurdy@gmail.com>
+Date: Tue, 10 Oct 2017 14:33:30 -0700
+Subject: [PATCH] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
+
+Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right
+thing to do and it's not portable (not supported by musl). See:
+
+  http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html
+  http://www.openwall.com/lists/musl/2015/02/05/2
+
+Note that laccess() is never passing AT_EACCESS so a lot of the
+discussion in the links above doesn't apply. Note also that
+(currently) all systemd callers of laccess() pass mode as F_OK, so
+only check for existence of a file, not access permissions.
+Therefore, in this case, the only distiction between faccessat()
+with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the behaviour
+for broken symlinks; laccess() on a broken symlink will succeed with
+(flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0).
+
+The laccess() macros was added to systemd some time ago and it's not
+clear if or why it needs to return success for broken symlinks. Maybe
+just historical and not actually necessary or desired behaviour?
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+
+---
+ src/basic/fs-util.h          | 23 +++++++++++++++++++++--
+ src/shared/base-filesystem.c |  6 +++---
+ 2 files changed, 24 insertions(+), 5 deletions(-)
+
+--- a/src/basic/fs-util.h
++++ b/src/basic/fs-util.h
+@@ -46,8 +46,27 @@ int futimens_opath(int fd, const struct
+ int fd_warn_permissions(const char *path, int fd);
+ int stat_warn_permissions(const char *path, const struct stat *st);
+ 
++/*
++   Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right thing to
++   do and it's not portable (not supported by musl). See:
++
++     http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html
++     http://www.openwall.com/lists/musl/2015/02/05/2
++
++   Note that laccess() is never passing AT_EACCESS so a lot of the discussion in
++   the links above doesn't apply. Note also that (currently) all systemd callers
++   of laccess() pass mode as F_OK, so only check for existence of a file, not
++   access permissions. Therefore, in this case, the only distiction between
++   faccessat() with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the
++   behaviour for broken symlinks; laccess() on a broken symlink will succeed
++   with (flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0).
++
++   The laccess() macros was added to systemd some time ago and it's not clear if
++   or why it needs to return success for broken symlinks. Maybe just historical
++   and not actually necessary or desired behaviour?
++*/
+ #define laccess(path, mode)                                             \
+-        RET_NERRNO(faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW))
++        RET_NERRNO(faccessat(AT_FDCWD, (path), (mode), 0))
+ 
+ int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode);
+ int touch(const char *path);
+--- a/src/shared/base-filesystem.c
++++ b/src/shared/base-filesystem.c
+@@ -117,7 +117,7 @@ int base_filesystem_create(const char *r
+                 return log_error_errno(errno, "Failed to open root file system: %m");
+ 
+         for (size_t i = 0; i < ELEMENTSOF(table); i++) {
+-                if (faccessat(fd, table[i].dir, F_OK, AT_SYMLINK_NOFOLLOW) >= 0)
++                if (faccessat(fd, table[i].dir, F_OK, 0) >= 0)
+                         continue;
+ 
+                 if (table[i].target) {
+@@ -125,7 +125,7 @@ int base_filesystem_create(const char *r
+ 
+                         /* check if one of the targets exists */
+                         NULSTR_FOREACH(s, table[i].target) {
+-                                if (faccessat(fd, s, F_OK, AT_SYMLINK_NOFOLLOW) < 0)
++                                if (faccessat(fd, s, F_OK, 0) < 0)
+                                         continue;
+ 
+                                 /* check if a specific file exists at the target path */
+@@ -136,7 +136,7 @@ int base_filesystem_create(const char *r
+                                         if (!p)
+                                                 return log_oom();
+ 
+-                                        if (faccessat(fd, p, F_OK, AT_SYMLINK_NOFOLLOW) < 0)
++                                        if (faccessat(fd, p, F_OK, 0) < 0)
+                                                 continue;
+                                 }
+ 
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
new file mode 100644
index 0000000..612a535
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
@@ -0,0 +1,30 @@
+From 1803ea271b93370fdcf7ec497277344f1e775429 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 27 May 2018 08:36:44 -0700
+Subject: [PATCH] Define glibc compatible basename() for non-glibc systems
+
+Fixes builds with musl, even though systemd is adamant about
+using non-posix basename implementation, we have a way out
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ src/machine/machine-dbus.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/src/machine/machine-dbus.c
++++ b/src/machine/machine-dbus.c
+@@ -10,6 +10,11 @@
+ #include <libgen.h>
+ #undef basename
+ 
++#if !defined(__GLIBC__)
++#include <string.h>
++#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src)
++#endif
++
+ #include "alloc-util.h"
+ #include "bus-common-errors.h"
+ #include "bus-get-properties.h"
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
new file mode 100644
index 0000000..baf4903
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
@@ -0,0 +1,37 @@
+From 30b08f76ea7f5c324afedf97f0867b76dac9f128 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Wed, 4 Jul 2018 15:00:44 +0800
+Subject: [PATCH] Do not disable buffering when writing to oom_score_adj
+
+On musl, disabling buffering when writing to oom_score_adj will
+cause the following error.
+
+  Failed to adjust OOM setting: Invalid argument
+
+This error appears for systemd-udevd.service and dbus.service.
+This is because kernel receives '-' instead of the whole '-900'
+if buffering is disabled.
+
+This is libc implementation specific, as glibc does not have this issue.
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[rebased for systemd 243]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+---
+ src/basic/process-util.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/src/basic/process-util.c
++++ b/src/basic/process-util.c
+@@ -1489,7 +1489,7 @@ int set_oom_score_adjust(int value) {
+         xsprintf(t, "%i", value);
+ 
+         return write_string_file("/proc/self/oom_score_adj", t,
+-                                 WRITE_STRING_FILE_VERIFY_ON_FAILURE|WRITE_STRING_FILE_DISABLE_BUFFER);
++                                 WRITE_STRING_FILE_VERIFY_ON_FAILURE);
+ }
+ 
+ int get_oom_score_adjust(int *ret) {
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
new file mode 100644
index 0000000..878914b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
@@ -0,0 +1,56 @@
+From 873202f63f9f117c6e5a98e444cc709057042979 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Tue, 10 Jul 2018 15:40:17 +0800
+Subject: [PATCH] distinguish XSI-compliant strerror_r from GNU-specifi
+ strerror_r
+
+XSI-compliant strerror_r and GNU-specifi strerror_r are different.
+
+       int strerror_r(int errnum, char *buf, size_t buflen);
+                   /* XSI-compliant */
+
+       char *strerror_r(int errnum, char *buf, size_t buflen);
+                   /* GNU-specific */
+
+We need to distinguish between them. Otherwise, we'll get an int value
+assigned to (char *) variable, resulting in segment fault.
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
+---
+ src/libsystemd/sd-bus/bus-error.c        | 5 +++++
+ src/libsystemd/sd-journal/journal-send.c | 5 +++++
+ 2 files changed, 10 insertions(+)
+
+--- a/src/libsystemd/sd-bus/bus-error.c
++++ b/src/libsystemd/sd-bus/bus-error.c
+@@ -409,7 +409,12 @@ static void bus_error_strerror(sd_bus_er
+                         return;
+ 
+                 errno = 0;
++#ifndef __GLIBC__
++                strerror_r(error, m, k);
++                x = m;
++#else
+                 x = strerror_r(error, m, k);
++#endif
+                 if (errno == ERANGE || strlen(x) >= k - 1) {
+                         free(m);
+                         k *= 2;
+--- a/src/libsystemd/sd-journal/journal-send.c
++++ b/src/libsystemd/sd-journal/journal-send.c
+@@ -348,7 +348,12 @@ static int fill_iovec_perror_and_send(co
+                 char* j;
+ 
+                 errno = 0;
++#ifndef __GLIBC__
++                strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
++                j = buffer + 8 + k;
++#else
+                 j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
++#endif
+                 if (errno == 0) {
+                         char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];
+ 
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
new file mode 100644
index 0000000..e6507c5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
@@ -0,0 +1,33 @@
+From e7441559266074e7a33e3c11ff5cdaf5ba9c0e24 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 15:18:00 +0800
+Subject: [PATCH] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP
+
+for currently unknown reasons they get exported to the shared libries
+even without being listed in the sym file
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+[Rebased for v241]
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
+---
+ src/libsystemd/sd-bus/bus-error.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
+index c49be29e46..90731bd7e7 100644
+--- a/src/libsystemd/sd-bus/bus-error.c
++++ b/src/libsystemd/sd-bus/bus-error.c
+@@ -55,8 +55,8 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map bus_standard_errors[] = {
+ };
+ 
+ /* GCC maps this magically to the beginning and end of the BUS_ERROR_MAP section */
+-extern const sd_bus_error_map __start_SYSTEMD_BUS_ERROR_MAP[];
+-extern const sd_bus_error_map __stop_SYSTEMD_BUS_ERROR_MAP[];
++extern const sd_bus_error_map __start_SYSTEMD_BUS_ERROR_MAP[] _hidden_;
++extern const sd_bus_error_map __stop_SYSTEMD_BUS_ERROR_MAP[] _hidden_;
+ 
+ /* Additional maps registered with sd_bus_error_add_map() are in this
+  * NULL terminated array */
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
new file mode 100644
index 0000000..eeff693
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
@@ -0,0 +1,28 @@
+From 64f4d2eb976b9f23ce85b3655a876f7299eafd58 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 15:27:54 +0800
+Subject: [PATCH] missing_type.h: add __compar_d_fn_t definition
+
+Fix the following compile failure:
+src/basic/util.h:71:18: error: unknown type name '__compar_d_fn_t'; did you mean '__compar_fn_t'?
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
+---
+ src/basic/missing_type.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
+index 3df1084ef2..697aa7f58a 100644
+--- a/src/basic/missing_type.h
++++ b/src/basic/missing_type.h
+@@ -13,6 +13,7 @@
+ 
+ #ifndef __GLIBC__
+ typedef int (*comparison_fn_t)(const void *, const void *);
++typedef int (*__compar_d_fn_t) (const void *, const void *, void *);
+ #endif
+ 
+ #ifndef __COMPAR_FN_T
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
new file mode 100644
index 0000000..5ca5386
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
@@ -0,0 +1,30 @@
+From d95330f328c23c1cd6c51aeca43f081746cf2899 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 15:44:54 +0800
+Subject: [PATCH] avoid redefinition of prctl_mm_map structure
+
+Fix the following compile failure:
+error: redefinition of 'struct prctl_mm_map'
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
+---
+ src/basic/missing_prctl.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/basic/missing_prctl.h b/src/basic/missing_prctl.h
+index ab851306ba..5547cad875 100644
+--- a/src/basic/missing_prctl.h
++++ b/src/basic/missing_prctl.h
+@@ -1,7 +1,9 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ #pragma once
+ 
++#ifdef __GLIBC__
+ #include <linux/prctl.h>
++#endif
+ 
+ /* 58319057b7847667f0c9585b9de0e8932b0fdb08 (4.3) */
+ #ifndef PR_CAP_AMBIENT
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-Handle-missing-LOCK_EX.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-Handle-missing-LOCK_EX.patch
new file mode 100644
index 0000000..d51ac42
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-Handle-missing-LOCK_EX.patch
@@ -0,0 +1,24 @@
+From 2284f2f44b1b30f10b9196e0f5c6d0a2e0c1871f Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Fri, 7 Aug 2020 15:19:27 +0000
+Subject: [PATCH] Handle missing LOCK_EX
+
+Upstream-Status: Inappropriate [musl specific]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+
+---
+ src/partition/makefs.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/partition/makefs.c b/src/partition/makefs.c
+index 7c94fbfedb..42f966722d 100644
+--- a/src/partition/makefs.c
++++ b/src/partition/makefs.c
+@@ -6,6 +6,7 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
++#include <sys/file.h>
+ 
+ #include "alloc-util.h"
+ #include "blockdev-util.h"
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
new file mode 100644
index 0000000..1ba5c12
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
@@ -0,0 +1,36 @@
+From a6a25e1ecae91f48a4f87bf0cc17eaaf0a919ffe Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Fri, 7 Aug 2020 15:20:17 +0000
+Subject: [PATCH] Fix incompatible pointer type struct sockaddr_un *
+
+| ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c: In function 'cant_be_in_netns':
+| ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:4893:25: error: passing argument 2 of 'connect' from incompatible pointer type [-Werror=incompatible-pointer-types]
+|  4893 |         if (connect(fd, &sa.un, SOCKADDR_UN_LEN(sa.un)) < 0) {
+|       |                         ^~~~~~
+|       |                         |
+|       |                         struct sockaddr_un *
+| In file included from ../../../../../../workspace/sources/systemd/src/systemd/sd-daemon.h:22,
+|                  from ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:21:
+| /home/ubuntu/poky/build/tmp/work/core2-64-poky-linux-musl/systemd/1_246-r0/recipe-sysroot/usr/include/sys/socket.h:384:19: note: expected 'const struct sockaddr *' but argument is of type 'struct sockaddr_un *'
+|   384 | int connect (int, const struct sockaddr *, socklen_t);
+|       |                   ^~~~~~~~~~~~~~~~~~~~~~~
+| cc1: some warnings being treated as errors
+
+Upstream-Status: Inappropriate [musl specific]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+
+---
+ src/nspawn/nspawn.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/src/nspawn/nspawn.c
++++ b/src/nspawn/nspawn.c
+@@ -5389,7 +5389,7 @@ static int cant_be_in_netns(void) {
+         if (fd < 0)
+                 return log_error_errno(errno, "Failed to allocate udev control socket: %m");
+ 
+-        if (connect(fd, &sa.sa, SOCKADDR_UN_LEN(sa.un)) < 0) {
++        if (connect(fd, (struct sockaddr *)&sa.sa, SOCKADDR_UN_LEN(sa.un)) < 0) {
+ 
+                 if (errno == ENOENT || ERRNO_IS_DISCONNECT(errno))
+                         return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-test-json.c-define-M_PIl.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-test-json.c-define-M_PIl.patch
new file mode 100644
index 0000000..dfab8fb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-test-json.c-define-M_PIl.patch
@@ -0,0 +1,29 @@
+From 47472da6e8900773c26da8fd26699367447d97a6 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 16:53:06 +0800
+Subject: [PATCH] test-json.c: define M_PIl
+
+Fix the following compile failure:
+src/test/test-json.c:305:50: error: 'M_PIl' undeclared (first use in this function); did you mean 'M_PI'?
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
+---
+ src/test/test-json.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/src/test/test-json.c
++++ b/src/test/test-json.c
+@@ -14,6 +14,10 @@
+ #include "tests.h"
+ #include "util.h"
+ 
++#ifndef M_PIl
++#define M_PIl 3.141592653589793238462643383279502884L
++#endif
++
+ static void test_tokenizer_one(const char *data, ...) {
+         unsigned line = 0, column = 0;
+         void *state = NULL;
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-do-not-disable-buffer-in-writing-files.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-do-not-disable-buffer-in-writing-files.patch
new file mode 100644
index 0000000..d389e1d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-do-not-disable-buffer-in-writing-files.patch
@@ -0,0 +1,420 @@
+From 0f9422780a569c79a4b28e44c79c70b4a354bd92 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Fri, 1 Mar 2019 15:22:15 +0800
+Subject: [PATCH] do not disable buffer in writing files
+
+Do not disable buffer in writing files, otherwise we get
+failure at boot for musl like below.
+
+  [!!!!!!] Failed to allocate manager object.
+
+And there will be other failures, critical or not critical.
+This is specific to musl.
+
+Upstream-Status: Inappropriate [musl]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[Rebased for v242]
+Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+[rebased for systemd 243]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+---
+ src/basic/cgroup-util.c                 | 10 +++++-----
+ src/basic/procfs-util.c                 |  4 ++--
+ src/basic/sysctl-util.c                 |  2 +-
+ src/basic/util.c                        |  2 +-
+ src/binfmt/binfmt.c                     |  6 +++---
+ src/core/main.c                         |  4 ++--
+ src/core/smack-setup.c                  |  8 ++++----
+ src/hibernate-resume/hibernate-resume.c |  2 +-
+ src/libsystemd/sd-device/sd-device.c    |  2 +-
+ src/nspawn/nspawn-cgroup.c              |  2 +-
+ src/nspawn/nspawn.c                     |  6 +++---
+ src/shared/cgroup-setup.c               |  4 ++--
+ src/shared/mount-util.c                 |  4 ++--
+ src/shared/smack-util.c                 |  2 +-
+ src/sleep/sleep.c                       |  8 ++++----
+ src/vconsole/vconsole-setup.c           |  2 +-
+ 16 files changed, 34 insertions(+), 34 deletions(-)
+
+--- a/src/basic/cgroup-util.c
++++ b/src/basic/cgroup-util.c
+@@ -390,7 +390,7 @@ int cg_kill_kernel_sigkill(const char *c
+         if (r < 0)
+                 return r;
+ 
+-        r = write_string_file(killfile, "1", WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file(killfile, "1", 0);
+         if (r < 0)
+                 return r;
+ 
+@@ -803,7 +803,7 @@ int cg_install_release_agent(const char
+ 
+         sc = strstrip(contents);
+         if (isempty(sc)) {
+-                r = write_string_file(fs, agent, WRITE_STRING_FILE_DISABLE_BUFFER);
++                r = write_string_file(fs, agent, 0);
+                 if (r < 0)
+                         return r;
+         } else if (!path_equal(sc, agent))
+@@ -821,7 +821,7 @@ int cg_install_release_agent(const char
+ 
+         sc = strstrip(contents);
+         if (streq(sc, "0")) {
+-                r = write_string_file(fs, "1", WRITE_STRING_FILE_DISABLE_BUFFER);
++                r = write_string_file(fs, "1", 0);
+                 if (r < 0)
+                         return r;
+ 
+@@ -848,7 +848,7 @@ int cg_uninstall_release_agent(const cha
+         if (r < 0)
+                 return r;
+ 
+-        r = write_string_file(fs, "0", WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file(fs, "0", 0);
+         if (r < 0)
+                 return r;
+ 
+@@ -858,7 +858,7 @@ int cg_uninstall_release_agent(const cha
+         if (r < 0)
+                 return r;
+ 
+-        r = write_string_file(fs, "", WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file(fs, "", 0);
+         if (r < 0)
+                 return r;
+ 
+@@ -1704,7 +1704,7 @@ int cg_set_attribute(const char *control
+         if (r < 0)
+                 return r;
+ 
+-        return write_string_file(p, value, WRITE_STRING_FILE_DISABLE_BUFFER);
++        return write_string_file(p, value, 0);
+ }
+ 
+ int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
+--- a/src/basic/procfs-util.c
++++ b/src/basic/procfs-util.c
+@@ -64,13 +64,13 @@ int procfs_tasks_set_limit(uint64_t limi
+          * decrease it, as threads-max is the much more relevant sysctl. */
+         if (limit > pid_max-1) {
+                 sprintf(buffer, "%" PRIu64, limit+1); /* Add one, since PID 0 is not a valid PID */
+-                r = write_string_file("/proc/sys/kernel/pid_max", buffer, WRITE_STRING_FILE_DISABLE_BUFFER);
++                r = write_string_file("/proc/sys/kernel/pid_max", buffer, 0);
+                 if (r < 0)
+                         return r;
+         }
+ 
+         sprintf(buffer, "%" PRIu64, limit);
+-        r = write_string_file("/proc/sys/kernel/threads-max", buffer, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/proc/sys/kernel/threads-max", buffer, 0);
+         if (r < 0) {
+                 uint64_t threads_max;
+ 
+--- a/src/basic/sysctl-util.c
++++ b/src/basic/sysctl-util.c
+@@ -58,7 +58,7 @@ int sysctl_write(const char *property, c
+ 
+         log_debug("Setting '%s' to '%s'", p, value);
+ 
+-        return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_SUPPRESS_REDUNDANT_VIRTUAL);
++        return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_SUPPRESS_REDUNDANT_VIRTUAL);
+ }
+ 
+ int sysctl_writef(const char *property, const char *format, ...) {
+--- a/src/basic/util.c
++++ b/src/basic/util.c
+@@ -168,7 +168,7 @@ void disable_coredumps(void) {
+         if (detect_container() > 0)
+                 return;
+ 
+-        r = write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", 0);
+         if (r < 0)
+                 log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m");
+ }
+--- a/src/binfmt/binfmt.c
++++ b/src/binfmt/binfmt.c
+@@ -29,7 +29,7 @@ static bool arg_unregister = false;
+ 
+ static int delete_rule(const char *rulename) {
+         const char *fn = strjoina("/proc/sys/fs/binfmt_misc/", rulename);
+-        return write_string_file(fn, "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
++        return write_string_file(fn, "-1", 0);
+ }
+ 
+ static int apply_rule(const char *filename, unsigned line, const char *rule) {
+@@ -59,7 +59,7 @@ static int apply_rule(const char *filena
+         if (r >= 0)
+                 log_debug("%s:%u: Rule '%s' deleted.", filename, line, rulename);
+ 
+-        r = write_string_file("/proc/sys/fs/binfmt_misc/register", rule, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/proc/sys/fs/binfmt_misc/register", rule, 0);
+         if (r < 0)
+                 return log_error_errno(r, "%s:%u: Failed to add binary format '%s': %m",
+                                        filename, line, rulename);
+@@ -226,7 +226,7 @@ static int run(int argc, char *argv[]) {
+                 }
+ 
+                 /* Flush out all rules */
+-                r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
++                r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", 0);
+                 if (r < 0)
+                         log_warning_errno(r, "Failed to flush binfmt_misc rules, ignoring: %m");
+                 else
+--- a/src/core/main.c
++++ b/src/core/main.c
+@@ -1466,7 +1466,7 @@ static int bump_unix_max_dgram_qlen(void
+         if (v >= DEFAULT_UNIX_MAX_DGRAM_QLEN)
+                 return 0;
+ 
+-        r = write_string_filef("/proc/sys/net/unix/max_dgram_qlen", WRITE_STRING_FILE_DISABLE_BUFFER,
++        r = write_string_filef("/proc/sys/net/unix/max_dgram_qlen", 0,
+                                "%lu", DEFAULT_UNIX_MAX_DGRAM_QLEN);
+         if (r < 0)
+                 return log_full_errno(IN_SET(r, -EROFS, -EPERM, -EACCES) ? LOG_DEBUG : LOG_WARNING, r,
+@@ -1737,7 +1737,7 @@ static void initialize_core_pattern(bool
+         if (getpid_cached() != 1)
+                 return;
+ 
+-        r = write_string_file("/proc/sys/kernel/core_pattern", arg_early_core_pattern, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/proc/sys/kernel/core_pattern", arg_early_core_pattern, 0);
+         if (r < 0)
+                 log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m",
+                                   arg_early_core_pattern);
+--- a/src/core/smack-setup.c
++++ b/src/core/smack-setup.c
+@@ -320,17 +320,17 @@ int mac_smack_setup(bool *loaded_policy)
+         }
+ 
+ #if HAVE_SMACK_RUN_LABEL
+-        r = write_string_file("/proc/self/attr/current", SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/proc/self/attr/current", SMACK_RUN_LABEL, 0);
+         if (r < 0)
+                 log_warning_errno(r, "Failed to set SMACK label \"" SMACK_RUN_LABEL "\" on self: %m");
+-        r = write_string_file("/sys/fs/smackfs/ambient", SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/sys/fs/smackfs/ambient", SMACK_RUN_LABEL, 0);
+         if (r < 0)
+                 log_warning_errno(r, "Failed to set SMACK ambient label \"" SMACK_RUN_LABEL "\": %m");
+         r = write_string_file("/sys/fs/smackfs/netlabel",
+-                              "0.0.0.0/0 " SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
++                              "0.0.0.0/0 " SMACK_RUN_LABEL, 0);
+         if (r < 0)
+                 log_warning_errno(r, "Failed to set SMACK netlabel rule \"0.0.0.0/0 " SMACK_RUN_LABEL "\": %m");
+-        r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", 0);
+         if (r < 0)
+                 log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m");
+ #endif
+--- a/src/hibernate-resume/hibernate-resume.c
++++ b/src/hibernate-resume/hibernate-resume.c
+@@ -45,7 +45,7 @@ int main(int argc, char *argv[]) {
+                 return EXIT_FAILURE;
+         }
+ 
+-        r = write_string_file("/sys/power/resume", major_minor, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/sys/power/resume", major_minor, 0);
+         if (r < 0) {
+                 log_error_errno(r, "Failed to write '%s' to /sys/power/resume: %m", major_minor);
+                 return EXIT_FAILURE;
+--- a/src/libsystemd/sd-device/sd-device.c
++++ b/src/libsystemd/sd-device/sd-device.c
+@@ -2108,7 +2108,7 @@ _public_ int sd_device_set_sysattr_value
+         if (!value)
+                 return -ENOMEM;
+ 
+-        r = write_string_file(path, value, WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_NOFOLLOW);
++        r = write_string_file(path, value, 0 | WRITE_STRING_FILE_NOFOLLOW);
+         if (r < 0) {
+                 /* On failure, clear cache entry, as we do not know how it fails. */
+                 device_remove_cached_sysattr_value(device, sysattr);
+--- a/src/nspawn/nspawn-cgroup.c
++++ b/src/nspawn/nspawn-cgroup.c
+@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified
+         fn = strjoina(tree, cgroup, "/cgroup.procs");
+ 
+         sprintf(pid_string, PID_FMT, pid);
+-        r = write_string_file(fn, pid_string, WRITE_STRING_FILE_DISABLE_BUFFER|WRITE_STRING_FILE_MKDIR_0755);
++        r = write_string_file(fn, pid_string, WRITE_STRING_FILE_MKDIR_0755);
+         if (r < 0) {
+                 log_error_errno(r, "Failed to move process: %m");
+                 goto finish;
+--- a/src/nspawn/nspawn.c
++++ b/src/nspawn/nspawn.c
+@@ -2757,7 +2757,7 @@ static int reset_audit_loginuid(void) {
+         if (streq(p, "4294967295"))
+                 return 0;
+ 
+-        r = write_string_file("/proc/self/loginuid", "4294967295", WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/proc/self/loginuid", "4294967295", 0);
+         if (r < 0) {
+                 log_error_errno(r,
+                                 "Failed to reset audit login UID. This probably means that your kernel is too\n"
+@@ -4163,7 +4163,7 @@ static int setup_uid_map(
+                 return log_oom();
+ 
+         xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid);
+-        r = write_string_file(uid_map, s, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file(uid_map, s, 0);
+         if (r < 0)
+                 return log_error_errno(r, "Failed to write UID map: %m");
+ 
+@@ -4173,7 +4173,7 @@ static int setup_uid_map(
+                 return log_oom();
+ 
+         xsprintf(uid_map, "/proc/" PID_FMT "/gid_map", pid);
+-        r = write_string_file(uid_map, s, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file(uid_map, s, 0);
+         if (r < 0)
+                 return log_error_errno(r, "Failed to write GID map: %m");
+ 
+--- a/src/shared/cgroup-setup.c
++++ b/src/shared/cgroup-setup.c
+@@ -345,7 +345,7 @@ int cg_attach(const char *controller, co
+ 
+         xsprintf(c, PID_FMT "\n", pid);
+ 
+-        r = write_string_file(fs, c, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file(fs, c, 0);
+         if (r < 0)
+                 return r;
+ 
+@@ -877,7 +877,7 @@ int cg_enable_everywhere(
+                                         return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p);
+                         }
+ 
+-                        r = write_string_stream(f, s, WRITE_STRING_FILE_DISABLE_BUFFER);
++                        r = write_string_stream(f, s, 0);
+                         if (r < 0) {
+                                 log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m",
+                                                 FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs);
+--- a/src/shared/smack-util.c
++++ b/src/shared/smack-util.c
+@@ -114,7 +114,7 @@ int mac_smack_apply_pid(pid_t pid, const
+                 return 0;
+ 
+         p = procfs_file_alloca(pid, "attr/current");
+-        r = write_string_file(p, label, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file(p, label, 0);
+         if (r < 0)
+                 return r;
+ 
+--- a/src/sleep/sleep.c
++++ b/src/sleep/sleep.c
+@@ -46,7 +46,7 @@ static int write_hibernate_location_info
+         assert(hibernate_location->swap);
+ 
+         xsprintf(resume_str, "%u:%u", major(hibernate_location->devno), minor(hibernate_location->devno));
+-        r = write_string_file("/sys/power/resume", resume_str, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/sys/power/resume", resume_str, 0);
+         if (r < 0)
+                 return log_debug_errno(r, "Failed to write partition device to /sys/power/resume for '%s': '%s': %m",
+                                        hibernate_location->swap->device, resume_str);
+@@ -73,7 +73,7 @@ static int write_hibernate_location_info
+         }
+ 
+         xsprintf(offset_str, "%" PRIu64, hibernate_location->offset);
+-        r = write_string_file("/sys/power/resume_offset", offset_str, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/sys/power/resume_offset", offset_str, 0);
+         if (r < 0)
+                 return log_debug_errno(r, "Failed to write swap file offset to /sys/power/resume_offset for '%s': '%s': %m",
+                                        hibernate_location->swap->device, offset_str);
+@@ -90,7 +90,7 @@ static int write_mode(char **modes) {
+         STRV_FOREACH(mode, modes) {
+                 int k;
+ 
+-                k = write_string_file("/sys/power/disk", *mode, WRITE_STRING_FILE_DISABLE_BUFFER);
++                k = write_string_file("/sys/power/disk", *mode, 0);
+                 if (k >= 0)
+                         return 0;
+ 
+@@ -112,7 +112,7 @@ static int write_state(FILE **f, char **
+         STRV_FOREACH(state, states) {
+                 int k;
+ 
+-                k = write_string_stream(*f, *state, WRITE_STRING_FILE_DISABLE_BUFFER);
++                k = write_string_stream(*f, *state, 0);
+                 if (k >= 0)
+                         return 0;
+                 log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", *state);
+--- a/src/vconsole/vconsole-setup.c
++++ b/src/vconsole/vconsole-setup.c
+@@ -108,7 +108,7 @@ static int toggle_utf8_vc(const char *na
+ static int toggle_utf8_sysfs(bool utf8) {
+         int r;
+ 
+-        r = write_string_file("/sys/module/vt/parameters/default_utf8", one_zero(utf8), WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/sys/module/vt/parameters/default_utf8", one_zero(utf8), 0);
+         if (r < 0)
+                 return log_warning_errno(r, "Failed to %s sysfs UTF-8 flag: %m", enable_disable(utf8));
+ 
+--- a/src/basic/namespace-util.c
++++ b/src/basic/namespace-util.c
+@@ -202,12 +202,12 @@ int userns_acquire(const char *uid_map,
+                 freeze();
+ 
+         xsprintf(path, "/proc/" PID_FMT "/uid_map", pid);
+-        r = write_string_file(path, uid_map, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file(path, uid_map, 0);
+         if (r < 0)
+                 return log_error_errno(r, "Failed to write UID map: %m");
+ 
+         xsprintf(path, "/proc/" PID_FMT "/gid_map", pid);
+-        r = write_string_file(path, gid_map, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file(path, gid_map, 0);
+         if (r < 0)
+                 return log_error_errno(r, "Failed to write GID map: %m");
+ 
+--- a/src/core/cgroup.c
++++ b/src/core/cgroup.c
+@@ -4140,7 +4140,7 @@ int unit_cgroup_freezer_action(Unit *u,
+         else
+                 u->freezer_state = FREEZER_THAWING;
+ 
+-        r = write_string_file(path, one_zero(action == FREEZER_FREEZE), WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file(path, one_zero(action == FREEZER_FREEZE), 0);
+         if (r < 0)
+                 return r;
+ 
+--- a/src/home/homework.c
++++ b/src/home/homework.c
+@@ -284,7 +284,7 @@ static void drop_caches_now(void) {
+          * details. We write "2" into /proc/sys/vm/drop_caches to ensure dentries/inodes are flushed, but not
+          * more. */
+ 
+-        r = write_string_file("/proc/sys/vm/drop_caches", "2\n", WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/proc/sys/vm/drop_caches", "2\n", 0);
+         if (r < 0)
+                 log_warning_errno(r, "Failed to drop caches, ignoring: %m");
+         else
+--- a/src/shared/binfmt-util.c
++++ b/src/shared/binfmt-util.c
+@@ -26,7 +26,7 @@ int disable_binfmt(void) {
+         if (r < 0)
+                 return log_warning_errno(r, "Failed to determine whether binfmt_misc is mounted: %m");
+ 
+-        r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", 0);
+         if (r < 0)
+                 return log_warning_errno(r, "Failed to unregister binfmt_misc entries: %m");
+ 
+--- a/src/shared/coredump-util.c
++++ b/src/shared/coredump-util.c
+@@ -70,5 +70,5 @@ int set_coredump_filter(uint64_t value)
+         sprintf(t, "0x%"PRIx64, value);
+ 
+         return write_string_file("/proc/self/coredump_filter", t,
+-                                 WRITE_STRING_FILE_VERIFY_ON_FAILURE|WRITE_STRING_FILE_DISABLE_BUFFER);
++                                 WRITE_STRING_FILE_VERIFY_ON_FAILURE);
+ }
+--- a/src/udev/udev-rules.c
++++ b/src/udev/udev-rules.c
+@@ -2181,7 +2181,6 @@ static int udev_rule_apply_token_to_even
+                 log_rule_debug(dev, rules, "ATTR '%s' writing '%s'", buf, value);
+                 r = write_string_file(buf, value,
+                                       WRITE_STRING_FILE_VERIFY_ON_FAILURE |
+-                                      WRITE_STRING_FILE_DISABLE_BUFFER |
+                                       WRITE_STRING_FILE_AVOID_NEWLINE |
+                                       WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE);
+                 if (r < 0)
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0025-Handle-__cpu_mask-usage.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0025-Handle-__cpu_mask-usage.patch
new file mode 100644
index 0000000..e001ed5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0025-Handle-__cpu_mask-usage.patch
@@ -0,0 +1,58 @@
+From e4f9ef547fa342102db15188544daa18e71e9c66 Mon Sep 17 00:00:00 2001
+From: Scott Murray <scott.murray@konsulko.com>
+Date: Fri, 13 Sep 2019 19:26:27 -0400
+Subject: [PATCH] Handle __cpu_mask usage
+
+Fixes errors:
+
+src/test/test-cpu-set-util.c:18:54: error: '__cpu_mask' undeclared (first use in this function)
+src/test/test-sizeof.c:73:14: error: '__cpu_mask' undeclared (first use in this function)
+
+__cpu_mask is an internal type of glibc's cpu_set implementation, not
+part of the POSIX definition, which is problematic when building with
+musl, which does not define a matching type.  From inspection of musl's
+sched.h, however, it is clear that the corresponding type would be
+unsigned long, which does match glibc's actual __CPU_MASK_TYPE.  So,
+add a typedef to cpu-set-util.h defining __cpu_mask appropriately.
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+---
+ src/shared/cpu-set-util.h | 2 ++
+ src/test/test-sizeof.c    | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h
+index 3c63a58826..4c2d4347fc 100644
+--- a/src/shared/cpu-set-util.h
++++ b/src/shared/cpu-set-util.h
+@@ -6,6 +6,8 @@
+ #include "macro.h"
+ #include "missing_syscall.h"
+ 
++typedef unsigned long __cpu_mask;
++
+ /* This wraps the libc interface with a variable to keep the allocated size. */
+ typedef struct CPUSet {
+         cpu_set_t *set;
+diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
+index 4403c0aa52..e7e4ae112d 100644
+--- a/src/test/test-sizeof.c
++++ b/src/test/test-sizeof.c
+@@ -1,6 +1,5 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+-#include <sched.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <sys/types.h>
+@@ -10,6 +9,7 @@
+ #include <float.h>
+ 
+ #include "time-util.h"
++#include "cpu-set-util.h"
+ 
+ /* Print information about various types. Useful when diagnosing
+  * gcc diagnostics on an unfamiliar architecture. */
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0026-Handle-missing-gshadow.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0026-Handle-missing-gshadow.patch
new file mode 100644
index 0000000..2d06ab8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0026-Handle-missing-gshadow.patch
@@ -0,0 +1,165 @@
+From 66a926cf906260c2fb5ea851e55efe03edd444dc Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Tue, 10 Mar 2020 11:05:20 +0000
+Subject: [PATCH] Handle missing gshadow
+
+gshadow usage is now present in the userdb code. Mask all uses of it to
+allow compilation on musl
+
+Upstream-Status: Inappropriate [musl specific]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+[Rebased for v247]
+Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+
+---
+ src/shared/user-record-nss.c | 20 ++++++++++++++++++++
+ src/shared/user-record-nss.h |  4 ++++
+ src/shared/userdb.c          |  7 ++++++-
+ 3 files changed, 30 insertions(+), 1 deletion(-)
+
+--- a/src/shared/user-record-nss.c
++++ b/src/shared/user-record-nss.c
+@@ -331,8 +331,10 @@ int nss_group_to_group_record(
+         if (isempty(grp->gr_name))
+                 return -EINVAL;
+ 
++#if ENABLE_GSHADOW
+         if (sgrp && !streq_ptr(sgrp->sg_namp, grp->gr_name))
+                 return -EINVAL;
++#endif
+ 
+         g = group_record_new();
+         if (!g)
+@@ -348,6 +350,7 @@ int nss_group_to_group_record(
+ 
+         g->gid = grp->gr_gid;
+ 
++#if ENABLE_GSHADOW
+         if (sgrp) {
+                 if (looks_like_hashed_password(utf8_only(sgrp->sg_passwd))) {
+                         g->hashed_password = strv_new(sgrp->sg_passwd);
+@@ -363,6 +366,7 @@ int nss_group_to_group_record(
+                 if (r < 0)
+                         return r;
+         }
++#endif
+ 
+         r = json_build(&g->json, JSON_BUILD_OBJECT(
+                                        JSON_BUILD_PAIR("groupName", JSON_BUILD_STRING(g->group_name)),
+@@ -388,6 +392,7 @@ int nss_sgrp_for_group(const struct grou
+         assert(ret_sgrp);
+         assert(ret_buffer);
+ 
++#if ENABLE_GSHADOW
+         for (;;) {
+                 _cleanup_free_ char *buf = NULL;
+                 struct sgrp sgrp, *result;
+@@ -416,6 +421,9 @@ int nss_sgrp_for_group(const struct grou
+                 buflen *= 2;
+                 buf = mfree(buf);
+         }
++#else
++        return -ESRCH;
++#endif
+ }
+ 
+ int nss_group_record_by_name(
+@@ -427,7 +435,9 @@ int nss_group_record_by_name(
+         struct group grp, *result;
+         bool incomplete = false;
+         size_t buflen = 4096;
++#if ENABLE_GSHADOW
+         struct sgrp sgrp, *sresult = NULL;
++#endif
+         int r;
+ 
+         assert(name);
+@@ -457,6 +467,7 @@ int nss_group_record_by_name(
+                 buf = mfree(buf);
+         }
+ 
++#if ENABLE_GSHADOW
+         if (with_shadow) {
+                 r = nss_sgrp_for_group(result, &sgrp, &sbuf);
+                 if (r < 0) {
+@@ -468,6 +479,9 @@ int nss_group_record_by_name(
+                 incomplete = true;
+ 
+         r = nss_group_to_group_record(result, sresult, ret);
++#else
++        r = nss_group_to_group_record(result, NULL, ret);
++#endif
+         if (r < 0)
+                 return r;
+ 
+@@ -484,7 +498,9 @@ int nss_group_record_by_gid(
+         struct group grp, *result;
+         bool incomplete = false;
+         size_t buflen = 4096;
++#if ENABLE_GSHADOW
+         struct sgrp sgrp, *sresult = NULL;
++#endif
+         int r;
+ 
+         assert(ret);
+@@ -512,6 +528,7 @@ int nss_group_record_by_gid(
+                 buf = mfree(buf);
+         }
+ 
++#if ENABLE_GSHADOW
+         if (with_shadow) {
+                 r = nss_sgrp_for_group(result, &sgrp, &sbuf);
+                 if (r < 0) {
+@@ -523,6 +540,9 @@ int nss_group_record_by_gid(
+                 incomplete = true;
+ 
+         r = nss_group_to_group_record(result, sresult, ret);
++#else
++        r = nss_group_to_group_record(result, NULL, ret);
++#endif
+         if (r < 0)
+                 return r;
+ 
+--- a/src/shared/user-record-nss.h
++++ b/src/shared/user-record-nss.h
+@@ -2,7 +2,11 @@
+ #pragma once
+ 
+ #include <grp.h>
++#if ENABLE_GSHADOW
+ #include <gshadow.h>
++#else
++struct sgrp;
++#endif
+ #include <pwd.h>
+ #include <shadow.h>
+ 
+--- a/src/shared/userdb.c
++++ b/src/shared/userdb.c
+@@ -1046,13 +1046,15 @@ int groupdb_iterator_get(UserDBIterator
+                 if (gr) {
+                         _cleanup_free_ char *buffer = NULL;
+                         bool incomplete = false;
++#if ENABLE_GSHADOW
+                         struct sgrp sgrp;
+-
++#endif
+                         if (streq_ptr(gr->gr_name, "root"))
+                                 iterator->synthesize_root = false;
+                         if (gr->gr_gid == GID_NOBODY)
+                                 iterator->synthesize_nobody = false;
+ 
++#if ENABLE_GSHADOW
+                         if (!FLAGS_SET(iterator->flags, USERDB_SUPPRESS_SHADOW)) {
+                                 r = nss_sgrp_for_group(gr, &sgrp, &buffer);
+                                 if (r < 0) {
+@@ -1065,6 +1067,9 @@ int groupdb_iterator_get(UserDBIterator
+                         }
+ 
+                         r = nss_group_to_group_record(gr, r >= 0 ? &sgrp : NULL, ret);
++#else
++                        r = nss_group_to_group_record(gr, NULL, ret);
++#endif
+                         if (r < 0)
+                                 return r;
+ 
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
new file mode 100644
index 0000000..700a04a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
@@ -0,0 +1,32 @@
+From 6f0dd2ba75b68036d7b4ebfe47ac5eaf44d26f06 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 12 Apr 2021 23:44:53 -0700
+Subject: [PATCH] missing_syscall.h: Define MIPS ABI defines for musl
+
+musl does not define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32, _MIPS_SIM_ABI64
+unlike glibc where these are provided by libc headers, therefore define
+them here in case they are undefined
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ src/basic/missing_syscall.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/src/basic/missing_syscall.h
++++ b/src/basic/missing_syscall.h
+@@ -20,6 +20,12 @@
+ #include <asm/sgidefs.h>
+ #endif
+ 
++#ifndef _MIPS_SIM_ABI32
++#define _MIPS_SIM_ABI32	1
++#define _MIPS_SIM_NABI32 2
++#define _MIPS_SIM_ABI64	3
++#endif
++
+ #include "macro.h"
+ #include "missing_keyctl.h"
+ #include "missing_stat.h"
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/static-libsystemd-pkgconfig.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/static-libsystemd-pkgconfig.patch
new file mode 100644
index 0000000..1f0e911
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/static-libsystemd-pkgconfig.patch
@@ -0,0 +1,9 @@
+--- a/src/libsystemd/libsystemd.pc.in
++++ b/src/libsystemd/libsystemd.pc.in
+@@ -16,5 +16,5 @@ Name: systemd
+ Description: systemd Library
+ URL: {{PROJECT_URL}}
+ Version: {{PROJECT_VERSION}}
+-Libs: -L${libdir} -lsystemd
++Libs: -L${libdir} -lsystemd -lrt -lmount -lcap
+ Cflags: -I${includedir}
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_243.bb b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_243.bb
deleted file mode 100644
index 6411677..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_243.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "libsystemd static library"
-DESCRIPTION = "libsystemd static library built specifically as an integral component of sdbus-c++"
-
-SECTION = "libs"
-
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
-
-inherit meson pkgconfig
-
-DEPENDS += "gperf-native gettext-native util-linux libcap"
-
-SRCREV = "efb536d0cbe2e58f80e501d19999928c75e08f6a"
-SRCBRANCH = "v243-stable"
-SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH} \
-           file://static-libsystemd-pkgconfig.patch \
-           file://7c5fd25119a495009ea62f79e5daec34cc464628.patch \
-           "
-
-# patches needed by musl
-SRC_URI:append:libc-musl = " ${SRC_URI_MUSL}"
-SRC_URI_MUSL = "\
-               file://0002-don-t-use-glibc-specific-qsort_r.patch \
-               file://0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch \
-               file://0004-add-fallback-parse_printf_format-implementation.patch \
-               file://0005-src-basic-missing.h-check-for-missing-strndupa.patch \
-               file://0006-Include-netinet-if_ether.h.patch \
-               file://0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch \
-               file://0008-add-missing-FTW_-macros-for-musl.patch \
-               file://0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch \
-               file://0011-Use-uintmax_t-for-handling-rlim_t.patch \
-               file://0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
-               file://0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
-               file://0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
-               file://0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
-               file://0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
-               file://0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \
-               file://0020-missing_type.h-add-__compar_d_fn_t-definition.patch \
-               file://0021-avoid-redefinition-of-prctl_mm_map-structure.patch \
-               file://0024-test-json.c-define-M_PIl.patch \
-               file://0001-do-not-disable-buffer-in-writing-files.patch \
-               file://0002-src-login-brightness.c-include-sys-wait.h.patch \
-               file://0003-src-basic-copy.c-include-signal.h.patch \
-               file://0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch \
-               file://0001-meson-Fix-reallocarray-check.patch \
-               "
-
-PACKAGECONFIG ??= "gshadow idn"
-PACKAGECONFIG:remove:libc-musl = " gshadow idn"
-PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false"
-PACKAGECONFIG[idn] = "-Didn=true,-Didn=false"
-
-EXTRA_OEMESON += "-Dstatic-libsystemd=pic"
-
-S = "${WORKDIR}/git"
-
-do_compile() {
-    ninja -v ${PARALLEL_MAKE} version.h
-    ninja -v ${PARALLEL_MAKE} libsystemd.a
-}
-
-do_install () {
-    install -d ${D}${libdir}
-    install ${B}/libsystemd.a ${D}${libdir}
-
-    install -d ${D}${includedir}/systemd
-    install ${S}/src/systemd/*.h ${D}${includedir}/systemd
-
-    install -d ${D}${libdir}/pkgconfig
-    install ${B}/src/libsystemd/libsystemd.pc ${D}${libdir}/pkgconfig
-}
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.3.bb b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.3.bb
new file mode 100644
index 0000000..8b89a98
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.3.bb
@@ -0,0 +1,77 @@
+SUMMARY = "libsystemd static library"
+DESCRIPTION = "libsystemd static library built specifically as an integral component of sdbus-c++"
+
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
+
+inherit meson pkgconfig
+
+DEPENDS += "gperf-native gettext-native util-linux libcap util-linux python3-jinja2-native"
+
+SRCREV = "1b003bbc806198dbdd57b405d968f30565495e70"
+SRCBRANCH = "v250-stable"
+SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \
+           file://static-libsystemd-pkgconfig.patch \
+           "
+
+# patches needed by musl
+SRC_URI:append:libc-musl = " ${SRC_URI_MUSL}"
+
+SRC_URI_MUSL = "\
+               file://0002-don-t-use-glibc-specific-qsort_r.patch \
+               file://0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch \
+               file://0004-add-fallback-parse_printf_format-implementation.patch \
+               file://0005-src-basic-missing.h-check-for-missing-strndupa.patch \
+               file://0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
+               file://0008-add-missing-FTW_-macros-for-musl.patch \
+               file://0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch \
+               file://0010-Use-uintmax_t-for-handling-rlim_t.patch \
+               file://0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
+               file://0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
+               file://0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
+               file://0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
+               file://0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
+               file://0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \
+               file://0017-missing_type.h-add-__compar_d_fn_t-definition.patch \
+               file://0018-avoid-redefinition-of-prctl_mm_map-structure.patch \
+               file://0019-Handle-missing-LOCK_EX.patch \
+               file://0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch \
+               file://0021-test-json.c-define-M_PIl.patch \
+               file://0022-do-not-disable-buffer-in-writing-files.patch \
+               file://0025-Handle-__cpu_mask-usage.patch \
+               file://0026-Handle-missing-gshadow.patch \
+               file://0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch \
+               file://0001-pass-correct-parameters-to-getdents64.patch \
+               file://0002-Add-sys-stat.h-for-S_IFDIR.patch \
+               file://0001-Adjust-for-musl-headers.patch \
+               "
+
+PACKAGECONFIG ??= "gshadow idn"
+PACKAGECONFIG:remove:libc-musl = " gshadow idn"
+PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false"
+PACKAGECONFIG[idn] = "-Didn=true,-Didn=false"
+
+CFLAGS:append:libc-musl = " -D__UAPI_DEF_ETHHDR=0 "
+
+EXTRA_OEMESON += "-Dstatic-libsystemd=pic"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+    ninja -v ${PARALLEL_MAKE} version.h
+    ninja -v ${PARALLEL_MAKE} libsystemd.a
+    ninja -v ${PARALLEL_MAKE} src/libsystemd/libsystemd.pc
+}
+
+do_install () {
+    install -d ${D}${libdir}
+    install ${B}/libsystemd.a ${D}${libdir}
+
+    install -d ${D}${includedir}/systemd
+    install ${S}/src/systemd/*.h ${D}${includedir}/systemd
+
+    install -d ${D}${libdir}/pkgconfig
+    install ${B}/src/libsystemd/libsystemd.pc ${D}${libdir}/pkgconfig
+}
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_0.8.3.bb b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_0.8.3.bb
deleted file mode 100644
index 3b87c22..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_0.8.3.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "sdbus-c++ native tools"
-DESCRIPTION = "Native interface code generator for development with sdbus-c++"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=1803fa9c2c3ce8cb06b4861d75310742"
-
-inherit cmake
-
-DEPENDS += "expat"
-
-SRCREV = "6e8e5aadb674cccea5bdd55141db5dad887fbacd"
-SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master;subpath=tools"
-
-S = "${WORKDIR}/tools"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_1.1.0.bb b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_1.1.0.bb
new file mode 100644
index 0000000..1064b85
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_1.1.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "sdbus-c++ native tools"
+DESCRIPTION = "Native interface code generator for development with sdbus-c++"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=1803fa9c2c3ce8cb06b4861d75310742"
+
+inherit cmake
+
+DEPENDS += "expat"
+
+SRCREV = "bca8e81037766a0454740c40307eea32831c101f"
+SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master;subpath=tools"
+
+S = "${WORKDIR}/tools"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.8.3.bb b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.8.3.bb
deleted file mode 100644
index 12eae5c..0000000
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.8.3.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "sdbus-c++"
-DESCRIPTION = "High-level C++ D-Bus library designed to provide easy-to-use yet powerful API in modern C++"
-
-SECTION = "libs"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1803fa9c2c3ce8cb06b4861d75310742"
-
-inherit cmake pkgconfig systemd ptest
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'with-external-libsystemd', 'with-builtin-libsystemd', d)} \
-                   ${@bb.utils.contains('PTEST_ENABLED', '1', 'with-tests', '', d)}"
-PACKAGECONFIG[with-builtin-libsystemd] = ",,sdbus-c++-libsystemd,libcap"
-PACKAGECONFIG[with-external-libsystemd] = ",,systemd,libsystemd"
-PACKAGECONFIG[with-tests] = "-DBUILD_TESTS=ON -DTESTS_INSTALL_PATH=${libdir}/${BPN}/tests,-DBUILD_TESTS=OFF"
-
-DEPENDS += "expat"
-
-SRCREV = "6e8e5aadb674cccea5bdd55141db5dad887fbacd"
-SRCREV_gtest = "a3460d1aeeaa43fdf137a6adefef10ba0b59fe4b"
-SRCREV_FORMAT = "default_gtest"
-
-SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master \
-           git://github.com/google/googletest.git;protocol=https;branch=master;name=gtest;destsuffix=git/tests/googletest-src \
-           file://0001-Do-not-download-gtest-automatically.patch \
-"
-SRC_URI += "file://run-ptest"
-
-EXTRA_OECMAKE = "-DBUILD_CODE_GEN=ON \
-                 -DBUILD_DOC=ON \
-                 -DBUILD_DOXYGEN_DOC=OFF"
-
-S = "${WORKDIR}/git"
-
-do_install:append() {
-    if ! ${@bb.utils.contains('PTEST_ENABLED', '1', 'true', 'false', d)}; then
-        rm -rf ${D}${sysconfdir}/dbus-1
-    fi
-}
-
-PTEST_PATH = "${libdir}/${BPN}/tests"
-FILES:${PN}-ptest =+ "${sysconfdir}/dbus-1/system.d/"
-FILES:${PN}-dev += "${bindir}/sdbus-c++-xml2cpp"
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_1.0.0.bb b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_1.0.0.bb
new file mode 100644
index 0000000..79373f8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_1.0.0.bb
@@ -0,0 +1,38 @@
+SUMMARY = "sdbus-c++"
+DESCRIPTION = "High-level C++ D-Bus library designed to provide easy-to-use yet powerful API in modern C++"
+
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1803fa9c2c3ce8cb06b4861d75310742"
+
+inherit cmake pkgconfig systemd ptest
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'with-external-libsystemd', 'with-builtin-libsystemd', d)} \
+                   ${@bb.utils.contains('PTEST_ENABLED', '1', 'with-tests', '', d)}"
+PACKAGECONFIG[with-builtin-libsystemd] = ",,sdbus-c++-libsystemd,libcap"
+PACKAGECONFIG[with-external-libsystemd] = ",,systemd,libsystemd"
+PACKAGECONFIG[with-tests] = "-DBUILD_TESTS=ON -DTESTS_INSTALL_PATH=${libdir}/${BPN}/tests,-DBUILD_TESTS=OFF,googletest gmock"
+
+DEPENDS += "expat"
+
+SRCREV = "65782bbf435d91e5eb6af9ddab110df406a824a9"
+
+SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master"
+SRC_URI += "file://run-ptest"
+
+EXTRA_OECMAKE = "-DBUILD_CODE_GEN=ON \
+                 -DBUILD_DOC=ON \
+                 -DBUILD_DOXYGEN_DOC=OFF"
+
+S = "${WORKDIR}/git"
+
+do_install:append() {
+    if ! ${@bb.utils.contains('PTEST_ENABLED', '1', 'true', 'false', d)}; then
+        rm -rf ${D}${sysconfdir}/dbus-1
+    fi
+}
+
+PTEST_PATH = "${libdir}/${BPN}/tests"
+FILES:${PN}-ptest =+ "${sysconfdir}/dbus-1/system.d/"
+FILES:${PN}-dev += "${bindir}/sdbus-c++-xml2cpp"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.18.1.bb b/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.18.1.bb
deleted file mode 100644
index 62872ff..0000000
--- a/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.18.1.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "Crypto and TLS for C++11"
-HOMEPAGE = "https://botan.randombit.net"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://license.txt;md5=a02e03c8fa2c5e7b9b3fcc1b9811fd3b"
-SECTION = "libs"
-
-SRC_URI = "https://botan.randombit.net/releases/Botan-${PV}.tar.xz"
-SRC_URI[sha256sum] = "f8c7b46222a857168a754a5cc329bb780504122b270018dda5304c98db28ae29"
-
-S = "${WORKDIR}/Botan-${PV}"
-
-inherit python3native siteinfo lib_package
-
-CPU ?= "${TARGET_ARCH}"
-CPU:x86 = "x86_32"
-CPU:armv7a = "armv7"
-CPU:armv7ve = "armv7"
-
-do_configure() {
-	python3 ${S}/configure.py \
-	--prefix="${D}${exec_prefix}" \
-	--libdir="${D}${libdir}" \
-	--cpu="${CPU}" \
-	--cc-bin="${CXX}" \
-	--cxxflags="${CXXFLAGS}" \
-	--ldflags="${LDFLAGS}" \
-	--with-endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
-	${@bb.utils.contains("TUNE_FEATURES","neon","","--disable-neon",d)} \
-	--with-sysroot-dir=${STAGING_DIR_HOST} \
-	--with-build-dir="${B}" \
-	--optimize-for-size \
-	--with-stack-protector \
-	--enable-shared-library \
-	--with-python-versions=3 \
-	${EXTRA_OECONF}
-}
-
-do_compile() {
-	oe_runmake
-}
-do_install() {
-	oe_runmake install
-	sed -i -e "s|${D}||g" ${D}${libdir}/pkgconfig/botan-2.pc
-}
-
-PACKAGES += "${PN}-python3"
-
-FILES:${PN}-python3 = "${libdir}/python3"
-
-RDEPENDS:${PN}-python3 += "python3"
-
-COMPATIBLE_HOST:riscv32 = "null"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.18.2.bb b/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.18.2.bb
new file mode 100644
index 0000000..c41667b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.18.2.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Crypto and TLS for C++11"
+HOMEPAGE = "https://botan.randombit.net"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://license.txt;md5=a02e03c8fa2c5e7b9b3fcc1b9811fd3b"
+SECTION = "libs"
+
+SRC_URI = "https://botan.randombit.net/releases/Botan-${PV}.tar.xz"
+SRC_URI[sha256sum] = "541a3b13f1b9d30f977c6c1ae4c7bfdfda763cda6e44de807369dce79f42307e"
+
+S = "${WORKDIR}/Botan-${PV}"
+
+inherit python3native siteinfo lib_package
+
+CPU ?= "${TARGET_ARCH}"
+CPU:x86 = "x86_32"
+CPU:armv7a = "armv7"
+CPU:armv7ve = "armv7"
+
+do_configure() {
+	python3 ${S}/configure.py \
+	--prefix="${D}${exec_prefix}" \
+	--libdir="${D}${libdir}" \
+	--cpu="${CPU}" \
+	--cc-bin="${CXX}" \
+	--cxxflags="${CXXFLAGS}" \
+	--ldflags="${LDFLAGS}" \
+	--with-endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
+	${@bb.utils.contains("TUNE_FEATURES","neon","","--disable-neon",d)} \
+	--with-sysroot-dir=${STAGING_DIR_HOST} \
+	--with-build-dir="${B}" \
+	--optimize-for-size \
+	--with-stack-protector \
+	--enable-shared-library \
+	--with-python-versions=3 \
+	${EXTRA_OECONF}
+}
+
+do_compile() {
+	oe_runmake
+}
+do_install() {
+	oe_runmake install
+	sed -i -e "s|${D}||g" ${D}${libdir}/pkgconfig/botan-2.pc
+}
+
+PACKAGES += "${PN}-python3"
+
+FILES:${PN}-python3 = "${libdir}/python3"
+
+RDEPENDS:${PN}-python3 += "python3"
+
+COMPATIBLE_HOST:riscv32 = "null"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.4.1.bb b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.4.1.bb
deleted file mode 100644
index 7f7c350..0000000
--- a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.4.1.bb
+++ /dev/null
@@ -1,96 +0,0 @@
-SUMMARY = "Manage plain dm-crypt and LUKS encrypted volumes"
-DESCRIPTION = "Cryptsetup is used to conveniently setup dm-crypt managed \
-device-mapper mappings. These include plain dm-crypt volumes and \
-LUKS volumes. The difference is that LUKS uses a metadata header \
-and can hence offer more features than plain dm-crypt. On the other \
-hand, the header is visible and vulnerable to damage."
-HOMEPAGE = "https://gitlab.com/cryptsetup/cryptsetup"
-SECTION = "console"
-LICENSE = "GPL-2.0-with-OpenSSL-exception"
-LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326"
-
-DEPENDS = " \
-    json-c \
-    libdevmapper \
-    popt \
-    util-linux-libuuid \
-    libssh \
-"
-
-DEPENDS:append:libc-musl = " argp-standalone"
-LDFLAGS:append:libc-musl = " -largp"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "a356a727a83a464ade566e95239622a22dbe4e0f482b198fdb04ab0d3a5a9c5f"
-
-inherit autotools gettext pkgconfig
-
-# Use openssl because libgcrypt drops root privileges
-# if libgcrypt is linked with libcap support
-PACKAGECONFIG ??= " \
-    keyring \
-    cryptsetup \
-    veritysetup \
-    cryptsetup-reencrypt \
-    integritysetup \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
-    kernel_crypto \
-    internal-argon2 \
-    blkid \
-    luks-adjust-xts-keysize \
-    openssl \
-"
-PACKAGECONFIG:append:class-target = " \
-    udev \
-"
-
-PACKAGECONFIG[keyring] = "--enable-keyring,--disable-keyring"
-PACKAGECONFIG[fips] = "--enable-fips,--disable-fips"
-PACKAGECONFIG[pwquality] = "--enable-pwquality,--disable-pwquality,libpwquality"
-PACKAGECONFIG[passwdqc] = "--enable-passwdqc,--disable-passwdqc,passwdqc"
-PACKAGECONFIG[cryptsetup] = "--enable-cryptsetup,--disable-cryptsetup"
-PACKAGECONFIG[veritysetup] = "--enable-veritysetup,--disable-veritysetup"
-PACKAGECONFIG[cryptsetup-reencrypt] = "--enable-cryptsetup-reencrypt,--disable-cryptsetup-reencrypt"
-PACKAGECONFIG[integritysetup] = "--enable-integritysetup,--disable-integritysetup"
-PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux"
-PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,,udev lvm2-udevrules"
-PACKAGECONFIG[kernel_crypto] = "--enable-kernel_crypto,--disable-kernel_crypto"
-# gcrypt-pkbdf2 requries --with-crypto_backend=gcrypt or the flag isn't
-# recognized.
-PACKAGECONFIG[gcrypt-pbkdf2] = "--enable-gcrypt-pbkdf2"
-PACKAGECONFIG[internal-argon2] = "--enable-internal-argon2,--disable-internal-argon2"
-PACKAGECONFIG[internal-sse-argon2] = "--enable-internal-sse-argon2,--disable-internal-sse-argon2"
-PACKAGECONFIG[blkid] = "--enable-blkid,--disable-blkid,util-linux"
-PACKAGECONFIG[dev-random] = "--enable-dev-random,--disable-dev-random"
-PACKAGECONFIG[luks-adjust-xts-keysize] = "--enable-luks-adjust-xts-keysize,--disable-luks-adjust-xts-keysize"
-PACKAGECONFIG[openssl] = "--with-crypto_backend=openssl,,openssl"
-PACKAGECONFIG[gcrypt] = "--with-crypto_backend=gcrypt,,libgcrypt"
-PACKAGECONFIG[nss] = "--with-crypto_backend=nss,,nss"
-PACKAGECONFIG[kernel] = "--with-crypto_backend=kernel"
-PACKAGECONFIG[nettle] = "--with-crypto_backend=nettle,,nettle"
-PACKAGECONFIG[luks2] = "--with-default-luks-format=LUKS2,--with-default-luks-format=LUKS1"
-
-EXTRA_OECONF = "--enable-static"
-# Building without largefile is not supported by upstream
-EXTRA_OECONF += "--enable-largefile"
-# Requires a static popt library
-EXTRA_OECONF += "--disable-static-cryptsetup"
-# There's no recipe for libargon2 yet
-EXTRA_OECONF += "--disable-libargon2"
-
-FILES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}/lib/tmpfiles.d/cryptsetup.conf', '', d)}"
-
-RDEPENDS:${PN} = " \
-    libdevmapper \
-"
-
-RRECOMMENDS:${PN}:class-target = " \
-    kernel-module-aes-generic \
-    kernel-module-dm-crypt \
-    kernel-module-md5 \
-    kernel-module-cbc \
-    kernel-module-sha256-generic \
-    kernel-module-xts \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.4.3.bb b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.4.3.bb
new file mode 100644
index 0000000..8f9f663
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.4.3.bb
@@ -0,0 +1,96 @@
+SUMMARY = "Manage plain dm-crypt and LUKS encrypted volumes"
+DESCRIPTION = "Cryptsetup is used to conveniently setup dm-crypt managed \
+device-mapper mappings. These include plain dm-crypt volumes and \
+LUKS volumes. The difference is that LUKS uses a metadata header \
+and can hence offer more features than plain dm-crypt. On the other \
+hand, the header is visible and vulnerable to damage."
+HOMEPAGE = "https://gitlab.com/cryptsetup/cryptsetup"
+SECTION = "console"
+LICENSE = "GPL-2.0-with-OpenSSL-exception"
+LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326"
+
+DEPENDS = " \
+    json-c \
+    libdevmapper \
+    popt \
+    util-linux-libuuid \
+    libssh \
+"
+
+DEPENDS:append:libc-musl = " argp-standalone"
+LDFLAGS:append:libc-musl = " -largp"
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}/${BP}.tar.xz"
+SRC_URI[sha256sum] = "fc0df945188172264ec5bf1d0bda08264fadc8a3f856d47eba91f31fe354b507"
+
+inherit autotools gettext pkgconfig
+
+# Use openssl because libgcrypt drops root privileges
+# if libgcrypt is linked with libcap support
+PACKAGECONFIG ??= " \
+    keyring \
+    cryptsetup \
+    veritysetup \
+    cryptsetup-reencrypt \
+    integritysetup \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
+    kernel_crypto \
+    internal-argon2 \
+    blkid \
+    luks-adjust-xts-keysize \
+    openssl \
+"
+PACKAGECONFIG:append:class-target = " \
+    udev \
+"
+
+PACKAGECONFIG[keyring] = "--enable-keyring,--disable-keyring"
+PACKAGECONFIG[fips] = "--enable-fips,--disable-fips"
+PACKAGECONFIG[pwquality] = "--enable-pwquality,--disable-pwquality,libpwquality"
+PACKAGECONFIG[passwdqc] = "--enable-passwdqc,--disable-passwdqc,passwdqc"
+PACKAGECONFIG[cryptsetup] = "--enable-cryptsetup,--disable-cryptsetup"
+PACKAGECONFIG[veritysetup] = "--enable-veritysetup,--disable-veritysetup"
+PACKAGECONFIG[cryptsetup-reencrypt] = "--enable-cryptsetup-reencrypt,--disable-cryptsetup-reencrypt"
+PACKAGECONFIG[integritysetup] = "--enable-integritysetup,--disable-integritysetup"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux"
+PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,,udev lvm2-udevrules"
+PACKAGECONFIG[kernel_crypto] = "--enable-kernel_crypto,--disable-kernel_crypto"
+# gcrypt-pkbdf2 requries --with-crypto_backend=gcrypt or the flag isn't
+# recognized.
+PACKAGECONFIG[gcrypt-pbkdf2] = "--enable-gcrypt-pbkdf2"
+PACKAGECONFIG[internal-argon2] = "--enable-internal-argon2,--disable-internal-argon2"
+PACKAGECONFIG[internal-sse-argon2] = "--enable-internal-sse-argon2,--disable-internal-sse-argon2"
+PACKAGECONFIG[blkid] = "--enable-blkid,--disable-blkid,util-linux"
+PACKAGECONFIG[dev-random] = "--enable-dev-random,--disable-dev-random"
+PACKAGECONFIG[luks-adjust-xts-keysize] = "--enable-luks-adjust-xts-keysize,--disable-luks-adjust-xts-keysize"
+PACKAGECONFIG[openssl] = "--with-crypto_backend=openssl,,openssl"
+PACKAGECONFIG[gcrypt] = "--with-crypto_backend=gcrypt,,libgcrypt"
+PACKAGECONFIG[nss] = "--with-crypto_backend=nss,,nss"
+PACKAGECONFIG[kernel] = "--with-crypto_backend=kernel"
+PACKAGECONFIG[nettle] = "--with-crypto_backend=nettle,,nettle"
+PACKAGECONFIG[luks2] = "--with-default-luks-format=LUKS2,--with-default-luks-format=LUKS1"
+
+EXTRA_OECONF = "--enable-static"
+# Building without largefile is not supported by upstream
+EXTRA_OECONF += "--enable-largefile"
+# Requires a static popt library
+EXTRA_OECONF += "--disable-static-cryptsetup"
+# There's no recipe for libargon2 yet
+EXTRA_OECONF += "--disable-libargon2"
+
+FILES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}/lib/tmpfiles.d/cryptsetup.conf', '', d)}"
+
+RDEPENDS:${PN} = " \
+    libdevmapper \
+"
+
+RRECOMMENDS:${PN}:class-target = " \
+    kernel-module-aes-generic \
+    kernel-module-dm-crypt \
+    kernel-module-md5 \
+    kernel-module-cbc \
+    kernel-module-sha256-generic \
+    kernel-module-xts \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/fsverity-utils/fsverity-utils_1.4.bb b/meta-openembedded/meta-oe/recipes-crypto/fsverity-utils/fsverity-utils_1.4.bb
index e26820f..b76ed24 100644
--- a/meta-openembedded/meta-oe/recipes-crypto/fsverity-utils/fsverity-utils_1.4.bb
+++ b/meta-openembedded/meta-oe/recipes-crypto/fsverity-utils/fsverity-utils_1.4.bb
@@ -10,7 +10,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=bc974d217b525ea216a336adb73e1220"
 
 SRCREV = "9e082897d61a2449657651aa5a0931aca31428fd"
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/fsverity-utils.git"
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/fsverity-utils.git;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-Disable-use-of-__NR_io_getevents-when-not-defined.patch b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-Disable-use-of-__NR_io_getevents-when-not-defined.patch
deleted file mode 100644
index 9d9f63e..0000000
--- a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-Disable-use-of-__NR_io_getevents-when-not-defined.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 771dd6aa45dd0bbbb7d7c7a7b116e1b5666fbd7a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 15 Nov 2020 18:05:48 -0800
-Subject: [PATCH] Disable use of __NR_io_getevents when not defined
-
-Architectures like riscv32 do not define this syscall, therefore return
-ENOSYS on such architectures
-
-Upstream-Status: Submitted [https://github.com/smuellerDD/libkcapi/pull/100]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/internal.h | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
---- a/lib/internal.h
-+++ b/lib/internal.h
-@@ -325,10 +325,17 @@ static inline int io_submit(aio_context_
-     return syscall(__NR_io_submit, ctx, n, iocb);
- }
- 
--static inline int io_getevents(aio_context_t ctx, long min, long max,
--            struct io_event *events, struct timespec *timeout)
-+static inline int io_getevents(__attribute__((unused)) aio_context_t ctx,
-+            __attribute__((unused)) long min,
-+            __attribute__((unused)) long max,
-+            __attribute__((unused)) struct io_event *events,
-+            __attribute__((unused)) struct timespec *timeout)
- {
-+#ifdef __NR_io_getevents
-     return syscall(__NR_io_getevents, ctx, min, max, events, timeout);
-+#else
-+    return -ENOSYS;
-+#endif
- }
- 
- /************************************************************
diff --git a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-kcapi-kernel-if-Adjust-for-musl-msghdr-struct-compat.patch b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-kcapi-kernel-if-Adjust-for-musl-msghdr-struct-compat.patch
new file mode 100644
index 0000000..687eb35
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-kcapi-kernel-if-Adjust-for-musl-msghdr-struct-compat.patch
@@ -0,0 +1,81 @@
+From d54e532821d40f8094a49742831d32ec7e76caed Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 16 Dec 2021 15:18:21 -0800
+Subject: [PATCH] kcapi-kernel-if: Adjust for musl  msghdr struct compatibility
+
+musl sticks to POSIX and defines msg_iovlen and msg_controllen as int
+and socklen_t types respectively whereas glibc and kernel mark them as
+size_t which is them assumed as such in the code here as well, Make the
+needed conversions to get it going on musl/linux also see [1] for more
+info
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=7168790763cdeb794df52be6e3b39fbb021c5a64
+
+Upstream-Status: Submitted [https://github.com/smuellerDD/libkcapi/pull/131]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/kcapi-kernel-if.c | 22 ++++++++++++++++++----
+ 1 file changed, 18 insertions(+), 4 deletions(-)
+
+diff --git a/lib/kcapi-kernel-if.c b/lib/kcapi-kernel-if.c
+index 739841e..e5d15d4 100644
+--- a/lib/kcapi-kernel-if.c
++++ b/lib/kcapi-kernel-if.c
+@@ -168,10 +168,14 @@ ssize_t _kcapi_common_send_meta(struct kcapi_handle *handle,
+ 	}
+ 
+ 	msg.msg_control = buffer_p;
+-	msg.msg_controllen = bufferlen;
+ 	msg.msg_iov = iov;
++#ifdef __GLIBC__
+ 	msg.msg_iovlen = iovlen;
+-
++	msg.msg_controllen = bufferlen;
++#else
++	msg.msg_iovlen = (int)iovlen;
++	msg.msg_controllen = (socklen_t)bufferlen;
++#endif
+ 	/* encrypt/decrypt operation */
+ 	header = CMSG_FIRSTHDR(&msg);
+ 	if (!header) {
+@@ -193,7 +197,11 @@ ssize_t _kcapi_common_send_meta(struct kcapi_handle *handle,
+ 		}
+ 		header->cmsg_level = SOL_ALG;
+ 		header->cmsg_type = ALG_SET_IV;
++#ifdef __GLIBC__
+ 		header->cmsg_len = iv_msg_size;
++#else
++		header->cmsg_len = (socklen_t)iv_msg_size;
++#endif
+ 		alg_iv = (void*)CMSG_DATA(header);
+ 		alg_iv->ivlen = tfm->info.ivsize;
+ 		memcpy(alg_iv->iv, handle->cipher.iv, tfm->info.ivsize);
+@@ -244,8 +252,11 @@ ssize_t _kcapi_common_send_data(struct kcapi_handle *handle,
+ 	msg.msg_controllen = 0;
+ 	msg.msg_flags = 0;
+ 	msg.msg_iov = iov;
++#ifdef __GLIBC__
+ 	msg.msg_iovlen = iovlen;
+-
++#else
++	msg.msg_iovlen = (int)iovlen;
++#endif
+ 	ret = sendmsg(*_kcapi_get_opfd(handle), &msg, (int)flags);
+ 	if (ret < 0)
+ 		ret = -errno;
+@@ -542,8 +553,11 @@ ssize_t _kcapi_common_recv_data(struct kcapi_handle *handle,
+ 	msg.msg_controllen = 0;
+ 	msg.msg_flags = 0;
+ 	msg.msg_iov = iov;
++#ifdef __GLIBC__
+ 	msg.msg_iovlen = iovlen;
+-
++#else
++	msg.msg_iovlen = (int)iovlen;
++#endif
+ 	ret = recvmsg(*_kcapi_get_opfd(handle), &msg, 0);
+ 	if (ret < 0)
+ 		ret = -errno;
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_1.2.1.bb b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_1.2.1.bb
deleted file mode 100644
index 49c0fd1..0000000
--- a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_1.2.1.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Linux Kernel Crypto API User Space Interface Library"
-HOMEPAGE = "http://www.chronox.de/libkcapi.html"
-LICENSE = "BSD | GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c78be93ed8d1637f2a3f4a83ff9d5f54"
-
-DEPENDS = "libtool"
-
-S = "${WORKDIR}/git"
-SRCREV = "d41284525ec8960e9a828979cfe269012b7df8db"
-SRC_URI = "git://github.com/smuellerDD/libkcapi.git \
-           file://0001-Disable-use-of-__NR_io_getevents-when-not-defined.patch \
-           "
-
-inherit autotools
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[testapp] = "--enable-kcapi-test,,,bash"
-PACKAGECONFIG[apps] = "--enable-kcapi-speed --enable-kcapi-hasher --enable-kcapi-rngapp --enable-kcapi-encapp --enable-kcapi-dgstapp,,,"
-PACKAGECONFIG[hasher_only] = "--enable-kcapi-hasher --disable-lib-kdf --disable-lib-sym --disable-lib-aead --disable-lib-rng,,,"
-
-do_install:append() {
-    # bindir contains testapp and apps.  However it is always created, even
-    # when no binaries are installed (empty bin_PROGRAMS in Makefile.am),
-    rmdir --ignore-fail-on-non-empty ${D}${bindir}
-
-    # Remove the generated binary checksum files
-    rm -f ${D}${bindir}/.*.hmac
-    rm -f ${D}${libdir}/.*.hmac
-}
-
-CPPFLAGS:append:libc-musl:toolchain-clang = " -Wno-error=sign-compare"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_1.3.1.bb b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_1.3.1.bb
new file mode 100644
index 0000000..1bd587f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_1.3.1.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Linux Kernel Crypto API User Space Interface Library"
+HOMEPAGE = "http://www.chronox.de/libkcapi.html"
+LICENSE = "BSD-3-Clause | GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=80c467906eb826339c7f09e61808ed23"
+
+S = "${WORKDIR}/git"
+SRCREV = "2936ecd060c299157ac880650ba2c9fd94d27bb1"
+SRC_URI = "git://github.com/smuellerDD/libkcapi.git;branch=master;protocol=https \
+           file://0001-kcapi-kernel-if-Adjust-for-musl-msghdr-struct-compat.patch \
+          "
+
+inherit autotools
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[testapp] = "--enable-kcapi-test,,,bash"
+PACKAGECONFIG[apps] = "--enable-kcapi-speed --enable-kcapi-hasher --enable-kcapi-rngapp --enable-kcapi-encapp --enable-kcapi-dgstapp,,,"
+PACKAGECONFIG[hasher_only] = "--enable-kcapi-hasher --disable-lib-kdf --disable-lib-sym --disable-lib-aead --disable-lib-rng,,,"
+
+do_install:append() {
+    # bindir contains testapp and apps.  However it is always created, even
+    # when no binaries are installed (empty bin_PROGRAMS in Makefile.am),
+    rmdir --ignore-fail-on-non-empty ${D}${bindir}
+
+    # Remove the generated binary checksum files
+    rm -f ${D}${bindir}/.*.hmac
+    rm -f ${D}${libdir}/.*.hmac
+}
+
+CPPFLAGS:append:libc-musl:toolchain-clang = " -Wno-error=sign-compare"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper/0001-build-openssl-remove-RSA_SSLV23_PADDING-constant-usa.patch b/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper/0001-build-openssl-remove-RSA_SSLV23_PADDING-constant-usa.patch
deleted file mode 100644
index f2baae9..0000000
--- a/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper/0001-build-openssl-remove-RSA_SSLV23_PADDING-constant-usa.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 5b9a8da964ee0b998955cd986000cfa27cfa698d Mon Sep 17 00:00:00 2001
-From: Alon Bar-Lev <alon.barlev@gmail.com>
-Date: Wed, 4 Aug 2021 19:02:34 +0300
-Subject: [PATCH] build: openssl: remove RSA_SSLV23_PADDING constant usage
-
-Due to openssl-3 compatibility, thanks to t0b3
-
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- lib/pkcs11h-openssl.c | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/lib/pkcs11h-openssl.c b/lib/pkcs11h-openssl.c
-index 9c9b2cd..85c8193 100644
---- a/lib/pkcs11h-openssl.c
-+++ b/lib/pkcs11h-openssl.c
-@@ -474,9 +474,6 @@ __pkcs11h_openssl_rsa_dec (
- 		case RSA_PKCS1_OAEP_PADDING:
- 			mech = CKM_RSA_PKCS_OAEP;
- 		break;
--		case RSA_SSLV23_PADDING:
--			rv = CKR_MECHANISM_INVALID;
--		break;
- 		case RSA_NO_PADDING:
- 			mech = CKM_RSA_X_509;
- 		break;
diff --git a/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.27.bb b/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.27.bb
deleted file mode 100644
index 944f49f..0000000
--- a/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.27.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "A library for using PKCS"
-DESCRIPTION = "pkcs11-helper is a library that simplifies the interaction with PKCS \
-providers for end-user applications using a simple API and optional OpenSSL \
-engine. The library allows using multiple PKCS enumerating available token \
-certificates, or selecting a certificate directly by serialized id, handling \
-card removal and card insert events, handling card ie-insert to a different \
-slot, supporting session expiration and much more all using a simple API."
-
-HOMEPAGE = "http://www.opensc-project.org/pkcs11-helper/"
-SECTION = "Development/Libraries"
-
-LICENSE = "GPLv2 & BSD"
-LIC_FILES_CHKSUM = " \
-    file://COPYING;md5=30f10d22cfb1ba98ccd714a41ad3311a \
-    file://COPYING.GPL;md5=8a71d0475d08eee76d8b6d0c6dbec543 \
-    file://COPYING.BSD;md5=66b7a37c3c10483c1fd86007726104d7 \
-"
-SRC_URI = "git://github.com/OpenSC/${BPN}.git \
-           file://0001-build-openssl-remove-RSA_SSLV23_PADDING-constant-usa.patch \
-           "
-
-S = "${WORKDIR}/git"
-# v1.27
-SRCREV = "564a582d600c7eec7b8e303a22b575fd52622174"
-
-UPSTREAM_CHECK_GITTAGREGEX = "pkcs11-helper-(?P<pver>\d+(\.\d+)+)"
-
-DEPENDS = "zlib nettle gnutls gmp openssl nss nspr"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--disable-static"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.28.bb b/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.28.bb
new file mode 100644
index 0000000..afad03c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.28.bb
@@ -0,0 +1,30 @@
+SUMMARY = "A library for using PKCS"
+DESCRIPTION = "pkcs11-helper is a library that simplifies the interaction with PKCS \
+providers for end-user applications using a simple API and optional OpenSSL \
+engine. The library allows using multiple PKCS enumerating available token \
+certificates, or selecting a certificate directly by serialized id, handling \
+card removal and card insert events, handling card ie-insert to a different \
+slot, supporting session expiration and much more all using a simple API."
+
+HOMEPAGE = "http://www.opensc-project.org/pkcs11-helper/"
+SECTION = "Development/Libraries"
+
+LICENSE = "GPLv2 & BSD"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=30f10d22cfb1ba98ccd714a41ad3311a \
+    file://COPYING.GPL;md5=8a71d0475d08eee76d8b6d0c6dbec543 \
+    file://COPYING.BSD;md5=66b7a37c3c10483c1fd86007726104d7 \
+"
+SRC_URI = "git://github.com/OpenSC/${BPN}.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+# v1.27
+SRCREV = "a4b46d545c33459610d4b4ae85a43a76e03a8c5e"
+
+UPSTREAM_CHECK_GITTAGREGEX = "pkcs11-helper-(?P<pver>\d+(\.\d+)+)"
+
+DEPENDS = "zlib nettle gnutls gmp openssl nss nspr"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-static"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb/0001-Use-v2.1.2-xxhash-to-fix-build-with-go-1.17.patch b/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb/0001-Use-v2.1.2-xxhash-to-fix-build-with-go-1.17.patch
new file mode 100644
index 0000000..e31c7be
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb/0001-Use-v2.1.2-xxhash-to-fix-build-with-go-1.17.patch
@@ -0,0 +1,39 @@
+From 4ca405e9763fd0ba747ef00edd30648b66992fbb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 30 Nov 2021 15:14:39 -0800
+Subject: [PATCH] Use v2.1.2 xxhash to fix build with go 1.17
+
+Fixes
+| # github.com/cespare/xxhash
+| asm: xxhash_amd64.s:120: when dynamic linking, R15 is clobbered by a global variable access and is used here: 000
+92 (/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/influxdb/1.8.10-r0/build/pkg/mod/github.com/cespare/xxhash@
+v1.1.0/xxhash_amd64.s:120)        ADDQ    R15, AX
+| asm: assembly failed
+
+Upstream-Status: Backport [https://github.com/cespare/xxhash/commit/e7a6b52374f7e2abfb8abb27249d53a1997b09a7]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ go.mod | 3 ++-
+ go.sum | 2 ++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+--- a/go.mod
++++ b/go.mod
+@@ -55,3 +55,5 @@ require (
+ 	gonum.org/v1/gonum v0.6.0 // indirect
+ 	google.golang.org/grpc v1.26.0
+ )
++
++replace github.com/cespare/xxhash => github.com/kraj/xxhash v1.1.1-0.20211201014032-8254a11eab56
+--- a/go.sum
++++ b/go.sum
+@@ -188,6 +188,8 @@ github.com/kr/pretty v0.1.0/go.mod h1:dA
+ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
+ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
++github.com/kraj/xxhash v1.1.1-0.20211201014032-8254a11eab56 h1:hCQ0jTkNInQ7PpNeGlSV9s+QMi6nUyyMuz37Bg3TduE=
++github.com/kraj/xxhash v1.1.1-0.20211201014032-8254a11eab56/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+ github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=
+ github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
+ github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4=
diff --git a/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb/0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch b/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb/0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch
index 6e87b9d..b8d3557 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb/0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb/0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch
@@ -12,20 +12,20 @@
 
 --- a/go.mod
 +++ b/go.mod
-@@ -54,3 +54,5 @@ require (
- 	gonum.org/v1/gonum v0.6.0 // indirect
+@@ -56,4 +56,5 @@ require (
  	google.golang.org/grpc v1.26.0
  )
-+
+ 
 +replace github.com/pkg/term => github.com/kraj/term v0.0.0-20210111231523-7c42fcb0e627
+ replace github.com/cespare/xxhash => github.com/kraj/xxhash v1.1.1-0.20211201014032-8254a11eab56
 --- a/go.sum
 +++ b/go.sum
-@@ -215,6 +215,8 @@ github.com/kr/pretty v0.1.0/go.mod h1:dA
+@@ -188,6 +188,8 @@ github.com/kr/pretty v0.1.0/go.mod h1:dA
  github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
  github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
  github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 +github.com/kraj/term v0.0.0-20210111231523-7c42fcb0e627 h1:3/XXm86KqrOZEJvEmFlzl3NTFA99n5Pd/cSXl60LmuA=
 +github.com/kraj/term v0.0.0-20210111231523-7c42fcb0e627/go.mod h1:BYR4E+NOQrH+NhXE71KuBNmyR1lQ+yDvP+O3IIHO5bM=
+ github.com/kraj/xxhash v1.1.1-0.20211201014032-8254a11eab56 h1:hCQ0jTkNInQ7PpNeGlSV9s+QMi6nUyyMuz37Bg3TduE=
+ github.com/kraj/xxhash v1.1.1-0.20211201014032-8254a11eab56/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
  github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=
- github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
- github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4=
diff --git a/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb_1.7.10.bb b/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb_1.7.10.bb
deleted file mode 100644
index fa360b8..0000000
--- a/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb_1.7.10.bb
+++ /dev/null
@@ -1,65 +0,0 @@
-DESCRIPTION = "InfluxDB is a time series database designed to handle high write and query loads."
-HOMEPAGE = "https://www.influxdata.com/products/influxdb-overview/"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=ba8146ad9cc2a128209983265136e06a"
-
-FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
-
-RDEPENDS:${PN} = "bash"
-RDEPENDS:${PN}-dev = "bash"
-
-GO_IMPORT = "github.com/influxdata/influxdb"
-
-GO_INSTALL = "\
-    ${GO_IMPORT}/cmd/influx \
-    ${GO_IMPORT}/cmd/influxd \
-"
-
-SRC_URI = "\
-    git://${GO_IMPORT};protocol=https;branch=1.7;destsuffix=${BPN}-${PV}/src/${GO_IMPORT} \
-    file://influxdb \
-    file://influxdb.conf \
-"
-
-SRC_URI:append:mipsarch = " file://0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch;patchdir=src/${GO_IMPORT}"
-
-SRCREV = "c958f436b2e538a88a7815aad721c7774a0b8f63"
-
-inherit go-mod systemd update-rc.d useradd
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system -d /var/lib/influxdb -m -s /bin/nologin influxdb"
-
-do_install:prepend() {
-    rm ${B}/src/${GO_IMPORT}/build.py
-    rm ${B}/src/${GO_IMPORT}/build.sh
-    rm ${B}/src/${GO_IMPORT}/Dockerfile*
-}
-
-do_install:append() {
-    install -d ${D}${sysconfdir}/influxdb
-    install -m 0644 ${WORKDIR}/influxdb.conf ${D}${sysconfdir}/influxdb
-    chown -R root.influxdb ${D}${sysconfdir}/influxdb
-
-    install -d ${D}${sysconfdir}/init.d
-    install -m 0755 ${WORKDIR}/influxdb ${D}${sysconfdir}/init.d/influxdb
-
-    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ] ; then
-        install -d ${D}${sysconfdir}/logrotate.d
-        install -m 0644 ${S}/src/${GO_IMPORT}/scripts/logrotate ${D}${sysconfdir}/logrotate.d/influxdb
-    fi
-
-    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ] ; then
-        install -d ${D}${systemd_unitdir}/system
-        install -m 0644 ${S}/src/${GO_IMPORT}/scripts/influxdb.service ${D}${systemd_system_unitdir}/influxdb.service
-    fi
-
-    # TODO chown
-}
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME = "influxdb"
-INITSCRIPT_PARAMS = "defaults"
-
-SYSTEMD_SERVICE:${PN} = "influxdb.service"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb b/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb
new file mode 100644
index 0000000..50995c0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb
@@ -0,0 +1,70 @@
+DESCRIPTION = "InfluxDB is a time series database designed to handle high write and query loads."
+HOMEPAGE = "https://www.influxdata.com/products/influxdb-overview/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=f39a8d10930fb37bd59adabb3b9d0bd6"
+
+RDEPENDS:${PN} = "bash"
+RDEPENDS:${PN}-dev = "bash"
+
+GO_IMPORT = "github.com/influxdata/influxdb"
+
+GO_INSTALL = "\
+    ${GO_IMPORT}/cmd/influx \
+    ${GO_IMPORT}/cmd/influxd \
+"
+
+SRC_URI = "\
+    git://${GO_IMPORT};protocol=https;branch=1.8;destsuffix=${BPN}-${PV}/src/${GO_IMPORT} \
+    file://0001-Use-v2.1.2-xxhash-to-fix-build-with-go-1.17.patch;patchdir=src/${GO_IMPORT} \
+    file://influxdb \
+    file://influxdb.conf \
+"
+
+SRC_URI:append:mipsarch = " file://0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch;patchdir=src/${GO_IMPORT}"
+
+SRCREV = "688e697c51fd5353725da078555adbeff0363d01"
+
+inherit go-mod pkgconfig systemd update-rc.d useradd
+
+# Workaround for network access issue during compile step
+# this needs to be fixed in the recipes buildsystem to move
+# this such that it can be accomplished during do_fetch task
+do_compile[network] = "1"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system -d /var/lib/influxdb -m -s /bin/nologin influxdb"
+
+do_install:prepend() {
+    rm ${B}/src/${GO_IMPORT}/build.py
+    rm ${B}/src/${GO_IMPORT}/build.sh
+    rm ${B}/src/${GO_IMPORT}/Dockerfile*
+    sed -i -e "s#usr/bin/sh#bin/sh#g" ${B}/src/${GO_IMPORT}/scripts/ci/run_perftest.sh
+}
+
+do_install:append() {
+    install -d ${D}${sysconfdir}/influxdb
+    install -m 0644 ${WORKDIR}/influxdb.conf ${D}${sysconfdir}/influxdb
+    chown -R root.influxdb ${D}${sysconfdir}/influxdb
+
+    install -d ${D}${sysconfdir}/init.d
+    install -m 0755 ${WORKDIR}/influxdb ${D}${sysconfdir}/init.d/influxdb
+
+    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ] ; then
+        install -d ${D}${sysconfdir}/logrotate.d
+        install -m 0644 ${S}/src/${GO_IMPORT}/scripts/logrotate ${D}${sysconfdir}/logrotate.d/influxdb
+    fi
+
+    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ] ; then
+        install -d ${D}${systemd_unitdir}/system
+        install -m 0644 ${S}/src/${GO_IMPORT}/scripts/influxdb.service ${D}${systemd_system_unitdir}/influxdb.service
+    fi
+
+    # TODO chown
+}
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME = "influxdb"
+INITSCRIPT_PARAMS = "defaults"
+
+SYSTEMD_SERVICE:${PN} = "influxdb.service"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb_1.22.bb b/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb_1.22.bb
index b973c68..87750ec 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb_1.22.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb_1.22.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=92d1b128950b11ba8495b64938fc164d"
 
-SRC_URI = "git://github.com/google/${BPN}.git \
+SRC_URI = "git://github.com/google/${BPN}.git;branch=master;protocol=https \
            file://run-ptest"
 
 SRCREV = "78b39d68c15ba020c0d60a3906fb66dbf1697595"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/lmdb/lmdb_0.9.29.bb b/meta-openembedded/meta-oe/recipes-dbs/lmdb/lmdb_0.9.29.bb
index fb1b18c..b58a36c 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/lmdb/lmdb_0.9.29.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/lmdb/lmdb_0.9.29.bb
@@ -8,7 +8,7 @@
 LICENSE = "OLDAP-2.8"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972"
 
-SRC_URI = "git://github.com/LMDB/lmdb.git;nobranch=1 \
+SRC_URI = "git://github.com/LMDB/lmdb.git;nobranch=1;protocol=https \
            file://run-ptest \
            file://0001-Makefile-use-libprefix-instead-of-libdir.patch \
            "
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
index 81a7859..51e6ddb 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
@@ -20,6 +20,7 @@
            file://ssize_t.patch \
            file://mm_malloc.patch \
            file://sys_futex.patch \
+           file://0001-MDEV-25785-Add-support-for-OpenSSL-3.0.patch \
           "
 SRC_URI:append:libc-musl = " file://ppc-remove-glibc-dep.patch"
 
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-25785-Add-support-for-OpenSSL-3.0.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-25785-Add-support-for-OpenSSL-3.0.patch
new file mode 100644
index 0000000..ab6811c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-25785-Add-support-for-OpenSSL-3.0.patch
@@ -0,0 +1,381 @@
+From 1b238e343506b43825092941d4cd294d9b866bef Mon Sep 17 00:00:00 2001
+From: Vladislav Vaintroub <wlad@mariadb.com>
+Date: Mon, 8 Nov 2021 18:48:19 +0100
+Subject: [PATCH] MDEV-25785 Add support for OpenSSL 3.0
+
+Summary of changes
+
+- MD_CTX_SIZE is increased
+
+- EVP_CIPHER_CTX_buf_noconst(ctx) does not work anymore, points
+  to nobody knows where. The assumption made previously was that
+  (since the function does not seem to be documented)
+  was that it points to the last partial source block.
+  Add own partial block buffer for NOPAD encryption instead
+
+- SECLEVEL in CipherString in openssl.cnf
+  had been downgraded to 0, from 1, to make TLSv1.0 and TLSv1.1 possible
+   (according to https://github.com/openssl/openssl/blob/openssl-3.0.0/NEWS.md
+   even though the manual for SSL_CTX_get_security_level claims that it
+   should not be necessary)
+
+- Workaround Ssl_cipher_list issue, it now returns TLSv1.3 ciphers,
+  in addition to what was set in --ssl-cipher
+
+- ctx_buf buffer now must be aligned to 16 bytes with openssl(
+  previously with WolfSSL only), ot crashes will happen
+
+- updated aes-t , to be better debuggable
+  using function, rather than a huge multiline macro
+  added test that does "nopad" encryption piece-wise, to test
+  replacement of EVP_CIPHER_CTX_buf_noconst
+
+Upstream-Status: Backport [https://github.com/MariaDB/server/commit/1b238e343506b43825092941d4cd294d9b866bef]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ cmake/ssl.cmake                   |   8 ++
+ include/ssl_compat.h              |   3 +-
+ mysql-test/lib/openssl.cnf        |   2 +-
+ mysql-test/main/ssl_cipher.result |   6 +-
+ mysql-test/main/ssl_cipher.test   |   2 +-
+ mysys_ssl/my_crypt.cc             |  46 +++++++-----
+ unittest/mysys/aes-t.c            | 121 ++++++++++++++++++++++--------
+ 7 files changed, 133 insertions(+), 55 deletions(-)
+
+diff --git a/cmake/ssl.cmake b/cmake/ssl.cmake
+index 7c2488be8bd..1bd46bc0f39 100644
+--- a/cmake/ssl.cmake
++++ b/cmake/ssl.cmake
+@@ -139,6 +139,13 @@ MACRO (MYSQL_CHECK_SSL)
+       SET(SSL_INTERNAL_INCLUDE_DIRS "")
+       SET(SSL_DEFINES "-DHAVE_OPENSSL")
+ 
++      # Silence "deprecated in OpenSSL 3.0"
++      IF((NOT OPENSSL_VERSION) # 3.0 not determined by older cmake
++         OR NOT(OPENSSL_VERSION VERSION_LESS "3.0.0"))
++        SET(SSL_DEFINES "${SSL_DEFINES} -DOPENSSL_API_COMPAT=0x10100000L")
++        SET(CMAKE_REQUIRED_DEFINITIONS -DOPENSSL_API_COMPAT=0x10100000L)
++      ENDIF()
++
+       SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
+       SET(CMAKE_REQUIRED_LIBRARIES ${SSL_LIBRARIES})
+       SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
+@@ -152,6 +159,7 @@ MACRO (MYSQL_CHECK_SSL)
+                           HAVE_X509_check_host)
+       SET(CMAKE_REQUIRED_INCLUDES)
+       SET(CMAKE_REQUIRED_LIBRARIES)
++      SET(CMAKE_REQUIRED_DEFINITIONS)
+     ELSE()
+       IF(WITH_SSL STREQUAL "system")
+         MESSAGE(FATAL_ERROR "Cannot find appropriate system libraries for SSL. Use WITH_SSL=bundled to enable SSL support")
+diff --git a/include/ssl_compat.h b/include/ssl_compat.h
+index 9f4b6be8d95..affa9f2a448 100644
+--- a/include/ssl_compat.h
++++ b/include/ssl_compat.h
+@@ -24,7 +24,7 @@
+ #define SSL_LIBRARY OpenSSL_version(OPENSSL_VERSION)
+ #define ERR_remove_state(X) ERR_clear_error()
+ #define EVP_CIPHER_CTX_SIZE 176
+-#define EVP_MD_CTX_SIZE 48
++#define EVP_MD_CTX_SIZE 72
+ #undef EVP_MD_CTX_init
+ #define EVP_MD_CTX_init(X) do { memset((X), 0, EVP_MD_CTX_SIZE); EVP_MD_CTX_reset(X); } while(0)
+ #undef EVP_CIPHER_CTX_init
+@@ -74,7 +74,6 @@
+ #endif
+ 
+ #define DH_set0_pqg(D,P,Q,G)            ((D)->p= (P), (D)->g= (G))
+-#define EVP_CIPHER_CTX_buf_noconst(ctx) ((ctx)->buf)
+ #define EVP_CIPHER_CTX_encrypting(ctx)  ((ctx)->encrypt)
+ #define EVP_CIPHER_CTX_SIZE             sizeof(EVP_CIPHER_CTX)
+ 
+diff --git a/mysql-test/lib/openssl.cnf b/mysql-test/lib/openssl.cnf
+index b9ab37ac3a1..7cd6f748af2 100644
+--- a/mysql-test/lib/openssl.cnf
++++ b/mysql-test/lib/openssl.cnf
+@@ -9,4 +9,4 @@ ssl_conf = ssl_section
+ system_default = system_default_section
+ 
+ [system_default_section]
+-CipherString = ALL:@SECLEVEL=1
++CipherString = ALL:@SECLEVEL=0
+diff --git a/mysql-test/main/ssl_cipher.result b/mysql-test/main/ssl_cipher.result
+index 930d384eda9..66d817b7b41 100644
+--- a/mysql-test/main/ssl_cipher.result
++++ b/mysql-test/main/ssl_cipher.result
+@@ -61,8 +61,8 @@ connect  ssl_con,localhost,root,,,,,SSL;
+ SHOW STATUS LIKE 'Ssl_cipher';
+ Variable_name	Value
+ Ssl_cipher	AES128-SHA
+-SHOW STATUS LIKE 'Ssl_cipher_list';
+-Variable_name	Value
+-Ssl_cipher_list	AES128-SHA
++SELECT VARIABLE_VALUE like '%AES128-SHA%' FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher_list';
++VARIABLE_VALUE like '%AES128-SHA%'
++1
+ disconnect ssl_con;
+ connection default;
+diff --git a/mysql-test/main/ssl_cipher.test b/mysql-test/main/ssl_cipher.test
+index 36549d76d02..d4cdcffb276 100644
+--- a/mysql-test/main/ssl_cipher.test
++++ b/mysql-test/main/ssl_cipher.test
+@@ -98,6 +98,6 @@ let $restart_parameters=--ssl-cipher=AES128-SHA;
+ source include/restart_mysqld.inc;
+ connect (ssl_con,localhost,root,,,,,SSL);
+ SHOW STATUS LIKE 'Ssl_cipher';
+-SHOW STATUS LIKE 'Ssl_cipher_list';
++SELECT VARIABLE_VALUE like '%AES128-SHA%' FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher_list';
+ disconnect ssl_con;
+ connection default;
+diff --git a/mysys_ssl/my_crypt.cc b/mysys_ssl/my_crypt.cc
+index e512eee9066..4d7ebc7bd27 100644
+--- a/mysys_ssl/my_crypt.cc
++++ b/mysys_ssl/my_crypt.cc
+@@ -29,11 +29,7 @@
+ #include <ssl_compat.h>
+ #include <cstdint>
+ 
+-#ifdef HAVE_WOLFSSL
+ #define CTX_ALIGN 16
+-#else
+-#define CTX_ALIGN 0
+-#endif
+ 
+ class MyCTX
+ {
+@@ -100,8 +96,9 @@ class MyCTX_nopad : public MyCTX
+ {
+ public:
+   const uchar *key;
+-  uint klen, buf_len;
++  uint klen, source_tail_len;
+   uchar oiv[MY_AES_BLOCK_SIZE];
++  uchar source_tail[MY_AES_BLOCK_SIZE];
+ 
+   MyCTX_nopad() : MyCTX() { }
+   ~MyCTX_nopad() { }
+@@ -112,7 +109,7 @@ class MyCTX_nopad : public MyCTX
+     compile_time_assert(MY_AES_CTX_SIZE >= sizeof(MyCTX_nopad));
+     this->key= key;
+     this->klen= klen;
+-    this->buf_len= 0;
++    this->source_tail_len= 0;
+     if (ivlen)
+       memcpy(oiv, iv, ivlen);
+     DBUG_ASSERT(ivlen == 0 || ivlen == sizeof(oiv));
+@@ -123,26 +120,41 @@ class MyCTX_nopad : public MyCTX
+     return res;
+   }
+ 
++  /** Update last partial source block, stored in source_tail array. */
++  void update_source_tail(const uchar* src, uint slen)
++  {
++    if (!slen)
++      return;
++    uint new_tail_len= (source_tail_len + slen) % MY_AES_BLOCK_SIZE;
++    if (new_tail_len)
++    {
++      if (slen + source_tail_len < MY_AES_BLOCK_SIZE)
++      {
++        memcpy(source_tail + source_tail_len, src, slen);
++      }
++      else
++      {
++        DBUG_ASSERT(slen > new_tail_len);
++        memcpy(source_tail, src + slen - new_tail_len, new_tail_len);
++      }
++    }
++    source_tail_len= new_tail_len;
++  }
++
+   int update(const uchar *src, uint slen, uchar *dst, uint *dlen)
+   {
+-    buf_len+= slen;
++    update_source_tail(src, slen);
+     return MyCTX::update(src, slen, dst, dlen);
+   }
+ 
+   int finish(uchar *dst, uint *dlen)
+   {
+-    buf_len %= MY_AES_BLOCK_SIZE;
+-    if (buf_len)
++    if (source_tail_len)
+     {
+-      uchar *buf= EVP_CIPHER_CTX_buf_noconst(ctx);
+       /*
+         Not much we can do, block ciphers cannot encrypt data that aren't
+         a multiple of the block length. At least not without padding.
+         Let's do something CTR-like for the last partial block.
+-
+-        NOTE this assumes that there are only buf_len bytes in the buf.
+-        If OpenSSL will change that, we'll need to change the implementation
+-        of this class too.
+       */
+       uchar mask[MY_AES_BLOCK_SIZE];
+       uint mlen;
+@@ -154,10 +166,10 @@ class MyCTX_nopad : public MyCTX
+         return rc;
+       DBUG_ASSERT(mlen == sizeof(mask));
+ 
+-      for (uint i=0; i < buf_len; i++)
+-        dst[i]= buf[i] ^ mask[i];
++      for (uint i=0; i < source_tail_len; i++)
++        dst[i]= source_tail[i] ^ mask[i];
+     }
+-    *dlen= buf_len;
++    *dlen= source_tail_len;
+     return MY_AES_OK;
+   }
+ };
+diff --git a/unittest/mysys/aes-t.c b/unittest/mysys/aes-t.c
+index 34704e06749..cbec2760941 100644
+--- a/unittest/mysys/aes-t.c
++++ b/unittest/mysys/aes-t.c
+@@ -21,27 +21,96 @@
+ #include <string.h>
+ #include <ctype.h>
+ 
+-#define DO_TEST(mode, nopad, slen, fill, dlen, hash)                    \
+-  SKIP_BLOCK_IF(mode == 0xDEADBEAF, nopad ? 4 : 5, #mode " not supported")     \
+-  {                                                                     \
+-    memset(src, fill, src_len= slen);                                   \
+-    ok(my_aes_crypt(mode, nopad | ENCRYPTION_FLAG_ENCRYPT,              \
+-                    src, src_len, dst, &dst_len,                        \
+-                    key, sizeof(key), iv, sizeof(iv)) == MY_AES_OK,     \
+-      "encrypt " #mode " %u %s", src_len, nopad ? "nopad" : "pad");     \
+-    if (!nopad)                                                         \
+-      ok (dst_len == my_aes_get_size(mode, src_len), "my_aes_get_size");\
+-    my_md5(md5, (char*)dst, dst_len);                                   \
+-    ok(dst_len == dlen && memcmp(md5, hash, sizeof(md5)) == 0, "md5");  \
+-    ok(my_aes_crypt(mode, nopad | ENCRYPTION_FLAG_DECRYPT,              \
+-                    dst, dst_len, ddst, &ddst_len,                      \
+-                    key, sizeof(key), iv, sizeof(iv)) == MY_AES_OK,     \
+-       "decrypt " #mode " %u", dst_len);                                \
+-    ok(ddst_len == src_len && memcmp(src, ddst, src_len) == 0, "memcmp"); \
++
++/** Test streaming encryption, bytewise update.*/
++static int aes_crypt_bytewise(enum my_aes_mode mode, int flags, const unsigned char *src,
++                 unsigned int slen, unsigned char *dst, unsigned int *dlen,
++                 const unsigned char *key, unsigned int klen,
++                 const unsigned char *iv, unsigned int ivlen)
++{
++  /* Allocate context on odd address on stack, in order to
++   catch misalignment errors.*/
++  void *ctx= (char *)alloca(MY_AES_CTX_SIZE+1)+1;
++
++  int res1, res2;
++  uint d1= 0, d2;
++  uint i;
++
++  if ((res1= my_aes_crypt_init(ctx, mode, flags, key, klen, iv, ivlen)))
++    return res1;
++  for (i= 0; i < slen; i++)
++  {
++    uint tmp_d1=0;
++    res1= my_aes_crypt_update(ctx, src+i,1, dst, &tmp_d1);
++    if (res1)
++      return res1;
++    d1+= tmp_d1;
++    dst+= tmp_d1;
++  }
++  res2= my_aes_crypt_finish(ctx, dst, &d2);
++  *dlen= d1 + d2;
++  return res1 ? res1 : res2;
++}
++
++
++#ifndef HAVE_EncryptAes128Ctr
++const uint MY_AES_CTR=0xDEADBEAF;
++#endif
++#ifndef HAVE_EncryptAes128Gcm
++const uint MY_AES_GCM=0xDEADBEAF;
++#endif
++
++#define MY_AES_UNSUPPORTED(x)  (x == 0xDEADBEAF)
++
++static void do_test(uint mode, const char *mode_str, int nopad, uint slen,
++                    char fill, size_t dlen, const char *hash)
++{
++  uchar key[16]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6};
++  uchar iv[16]= {2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7};
++  uchar src[1000], dst[1100], dst2[1100], ddst[1000];
++  uchar md5[MY_MD5_HASH_SIZE];
++  uint src_len, dst_len, dst_len2, ddst_len;
++  int result;
++
++  if (MY_AES_UNSUPPORTED(mode))
++  {
++    skip(nopad?7:6, "%s not supported", mode_str);
++    return;
++  }
++  memset(src, fill, src_len= slen);
++  result= my_aes_crypt(mode, nopad | ENCRYPTION_FLAG_ENCRYPT, src, src_len,
++                       dst, &dst_len, key, sizeof(key), iv, sizeof(iv));
++  ok(result == MY_AES_OK, "encrypt %s %u %s", mode_str, src_len,
++     nopad ? "nopad" : "pad");
++
++  if (nopad)
++  {
++    result= aes_crypt_bytewise(mode, nopad | ENCRYPTION_FLAG_ENCRYPT, src,
++                                src_len, dst2, &dst_len2, key, sizeof(key),
++                                iv, sizeof(iv));
++    ok(result == MY_AES_OK, "encrypt bytewise %s %u", mode_str, src_len);
++    /* Compare with non-bytewise encryption result*/
++    ok(dst_len == dst_len2 && memcmp(dst, dst2, dst_len) == 0,
++       "memcmp bytewise  %s %u", mode_str, src_len);
++  }
++  else
++  {
++    int dst_len_real= my_aes_get_size(mode, src_len);
++    ok(dst_len_real= dst_len, "my_aes_get_size");
+   }
++  my_md5(md5, (char *) dst, dst_len);
++  ok(dst_len == dlen, "md5 len");
++  ok(memcmp(md5, hash, sizeof(md5)) == 0, "md5");
++  result= my_aes_crypt(mode, nopad | ENCRYPTION_FLAG_DECRYPT,
++                       dst, dst_len, ddst, &ddst_len, key, sizeof(key), iv,
++                       sizeof(iv));
++
++  ok(result == MY_AES_OK, "decrypt %s %u", mode_str, dst_len);
++  ok(ddst_len == src_len && memcmp(src, ddst, src_len) == 0, "memcmp");
++}
+ 
+-#define DO_TEST_P(M,S,F,D,H) DO_TEST(M,0,S,F,D,H)
+-#define DO_TEST_N(M,S,F,D,H) DO_TEST(M,ENCRYPTION_FLAG_NOPAD,S,F,D,H)
++#define DO_TEST_P(M, S, F, D, H) do_test(M, #M, 0, S, F, D, H)
++#define DO_TEST_N(M, S, F, D, H) do_test(M, #M, ENCRYPTION_FLAG_NOPAD, S, F, D, H)
+ 
+ /* useful macro for debugging */
+ #define PRINT_MD5()                                     \
+@@ -53,25 +122,15 @@
+     printf("\"\n");                                     \
+   } while(0);
+ 
+-#ifndef HAVE_EncryptAes128Ctr
+-const uint MY_AES_CTR=0xDEADBEAF;
+-#endif
+-#ifndef HAVE_EncryptAes128Gcm
+-const uint MY_AES_GCM=0xDEADBEAF;
+-#endif
+ 
+ int
+ main(int argc __attribute__((unused)),char *argv[])
+ {
+-  uchar key[16]= {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6};
+-  uchar iv[16]=  {2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7};
+-  uchar src[1000], dst[1100], ddst[1000];
+-  uchar md5[MY_MD5_HASH_SIZE];
+-  uint src_len, dst_len, ddst_len;
+ 
+   MY_INIT(argv[0]);
+ 
+-  plan(87);
++  plan(122);
++
+   DO_TEST_P(MY_AES_ECB, 200, '.', 208, "\xd8\x73\x8e\x3a\xbc\x66\x99\x13\x7f\x90\x23\x52\xee\x97\x6f\x9a");
+   DO_TEST_P(MY_AES_ECB, 128, '?', 144, "\x19\x58\x33\x85\x4c\xaa\x7f\x06\xd1\xb2\xec\xd7\xb7\x6a\xa9\x5b");
+   DO_TEST_P(MY_AES_CBC, 159, '%', 160, "\x4b\x03\x18\x3d\xf1\xa7\xcd\xa1\x46\xb3\xc6\x8a\x92\xc0\x0f\xc9");
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch
index 0dc6ece..90b7419 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch
@@ -1,4 +1,4 @@
-From b06a228a5fd1589fc9bed654b3288b321fc21aa1 Mon Sep 17 00:00:00 2001
+From 780fd27ea6f7f2c446c46a7a5e26d94106c67efd Mon Sep 17 00:00:00 2001
 From: "Richard W.M. Jones" <rjones@redhat.com>
 Date: Sun, 20 Nov 2016 15:04:52 +0000
 Subject: [PATCH] Add support for RISC-V.
@@ -9,9 +9,11 @@
  src/include/storage/s_lock.h | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)
 
+diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
+index dccbd29..ad60429 100644
 --- a/src/include/storage/s_lock.h
 +++ b/src/include/storage/s_lock.h
-@@ -316,11 +316,12 @@ tas(volatile slock_t *lock)
+@@ -317,11 +317,12 @@ tas(volatile slock_t *lock)
  
  /*
   * On ARM and ARM64, we use __sync_lock_test_and_set(int *, int) if available.
@@ -25,7 +27,7 @@
  #ifdef HAVE_GCC__SYNC_INT32_TAS
  #define HAS_TEST_AND_SET
  
-@@ -337,7 +338,7 @@ tas(volatile slock_t *lock)
+@@ -338,7 +339,7 @@ tas(volatile slock_t *lock)
  #define S_UNLOCK(lock) __sync_lock_release(lock)
  
  #endif	 /* HAVE_GCC__SYNC_INT32_TAS */
@@ -33,4 +35,7 @@
 +#endif	 /* __arm__ || __arm || __aarch64__ || __aarch64 || __riscv */
  
  
- /* S/390 and S/390x Linux (32- and 64-bit zSeries) */
+ /*
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Improve-reproducibility.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Improve-reproducibility.patch
index e9bc624..02f4c9e 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Improve-reproducibility.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Improve-reproducibility.patch
@@ -1,4 +1,4 @@
-From 71fbee3888ee889a269eded5585ed7591bcbe9dd Mon Sep 17 00:00:00 2001
+From bbba8a5261a99e79c9cd4693ef56021014a9856b Mon Sep 17 00:00:00 2001
 From: Changqing Li <changqing.li@windriver.com>
 Date: Mon, 28 Dec 2020 16:38:21 +0800
 Subject: [PATCH] Improve reproducibility,
@@ -22,9 +22,11 @@
  src/common/Makefile | 3 ---
  1 file changed, 3 deletions(-)
 
+diff --git a/src/common/Makefile b/src/common/Makefile
+index 880722f..7a9b9d4 100644
 --- a/src/common/Makefile
 +++ b/src/common/Makefile
-@@ -31,9 +31,6 @@ include $(top_builddir)/src/Makefile.glo
+@@ -31,9 +31,6 @@ include $(top_builddir)/src/Makefile.global
  # don't include subdirectory-path-dependent -I and -L switches
  STD_CPPFLAGS := $(filter-out -I$(top_srcdir)/src/include -I$(top_builddir)/src/include,$(CPPFLAGS))
  STD_LDFLAGS := $(filter-out -L$(top_builddir)/src/common -L$(top_builddir)/src/port,$(LDFLAGS))
@@ -34,3 +36,6 @@
  override CPPFLAGS += -DVAL_CFLAGS_SL="\"$(CFLAGS_SL)\""
  override CPPFLAGS += -DVAL_LDFLAGS="\"$(STD_LDFLAGS)\""
  override CPPFLAGS += -DVAL_LDFLAGS_EX="\"$(LDFLAGS_EX)\""
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-configure.ac-bypass-autoconf-2.69-version-check.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-configure.ac-bypass-autoconf-2.69-version-check.patch
new file mode 100644
index 0000000..3d969cc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-configure.ac-bypass-autoconf-2.69-version-check.patch
@@ -0,0 +1,32 @@
+From 053e8fc51bd9688100ce284a9c7afab88656386f Mon Sep 17 00:00:00 2001
+From: Yi Fan Yu <yifan.yu@windriver.com>
+Date: Fri, 5 Feb 2021 17:15:42 -0500
+Subject: [PATCH] configure.ac: bypass autoconf 2.69 version check
+
+for upgrade to autoconf 2.71
+
+Upstream-Status: Inappropriate [disable feature]
+
+Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
+---
+ configure.ac | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 7170f26..daf85b9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
+ 
+ AC_INIT([PostgreSQL], [14.1], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])
+ 
+-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
+-Untested combinations of 'autoconf' and PostgreSQL versions are not
+-recommended.  You can remove the check from 'configure.ac' but it is then
+-your responsibility whether the result works or not.])])
+ AC_COPYRIGHT([Copyright (c) 1996-2021, PostgreSQL Global Development Group])
+ AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
+ AC_CONFIG_AUX_DIR(config)
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-configure.in-bypass-autoconf-2.69-version-check.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-configure.in-bypass-autoconf-2.69-version-check.patch
deleted file mode 100644
index db9769f..0000000
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-configure.in-bypass-autoconf-2.69-version-check.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From eba2c940afcd83521f591ccf6b49eca06908ea8e Mon Sep 17 00:00:00 2001
-From: Yi Fan Yu <yifan.yu@windriver.com>
-Date: Fri, 5 Feb 2021 17:15:42 -0500
-Subject: [PATCH] configure.in: bypass autoconf 2.69 version check
-
-for upgrade to autoconf 2.71
-
-Upstream-Status: Inappropriate [disable feature]
-
-Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
----
- configure.in | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index fb14dcc..a2b4a4f 100644
---- a/configure.in
-+++ b/configure.in
-@@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
- 
- AC_INIT([PostgreSQL], [13.4], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])
- 
--m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
--Untested combinations of 'autoconf' and PostgreSQL versions are not
--recommended.  You can remove the check from 'configure.in' but it is then
--your responsibility whether the result works or not.])])
- AC_COPYRIGHT([Copyright (c) 1996-2020, PostgreSQL Global Development Group])
- AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
- AC_CONFIG_AUX_DIR(config)
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch
index ba2ee29..fa46912 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch
@@ -1,7 +1,7 @@
-From 7e2af4de19be58bc9d551c41ce2750396d357f34 Mon Sep 17 00:00:00 2001
+From 56b830edecff1cac5f8a8a956e7a7eeef2aa7c17 Mon Sep 17 00:00:00 2001
 From: Changqing Li <changqing.li@windriver.com>
 Date: Tue, 27 Nov 2018 13:25:15 +0800
-Subject: [PATCH] PATCH] not check libperl under cross compiling
+Subject: [PATCH] not check libperl under cross compiling
 
 Upstream-Status: Inappropriate [configuration]
 
@@ -16,12 +16,14 @@
 update patch to version 11.1
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
- configure.in | 2 +-
+ configure.ac | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
---- a/configure.in
-+++ b/configure.in
-@@ -2206,7 +2206,7 @@ Use --without-tcl to disable building PL
+diff --git a/configure.ac b/configure.ac
+index fba79ee..7170f26 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2261,7 +2261,7 @@ Use --without-tcl to disable building PL/Tcl.])
  fi
  
  # check for <perl.h>
@@ -30,3 +32,6 @@
    ac_save_CPPFLAGS=$CPPFLAGS
    CPPFLAGS="$CPPFLAGS $perl_includespec"
    AC_CHECK_HEADER(perl.h, [], [AC_MSG_ERROR([header file <perl.h> is required for Perl])],
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
index e609ac3..257d27b 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
@@ -19,11 +19,11 @@
 "
 HOMEPAGE = "http://www.postgresql.com"
 LICENSE = "BSD-0-Clause"
-DEPENDS = "libnsl2 zlib readline tzcode-native"
+DEPENDS = "libnsl2 readline tzcode-native"
 
 ARM_INSTRUCTION_SET = "arm"
 
-SRC_URI = "http://ftp.postgresql.org/pub/source/v${PV}/${BP}.tar.bz2 \
+SRC_URI = "https://ftp.postgresql.org/pub/source/v${PV}/${BP}.tar.bz2 \
     file://postgresql.init \
     file://postgresql-profile \
     file://postgresql.pam \
@@ -43,7 +43,6 @@
 SYSTEMD_SERVICE:${PN} = "postgresql.service"
 SYSTEMD_AUTO_ENABLE:${PN} = "disable"
 
-DEPENDS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-systemctl-native', '', d)}"
 pkg_postinst:${PN} () {
     if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd sysvinit', 'true', 'false', d)}; then
         if [ -n "$D" ]; then
@@ -53,23 +52,29 @@
     fi
 }
 
-enable_pam = "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
-PACKAGECONFIG ??= "${enable_pam} openssl python uuid libxml tcl nls libxml perl"
-PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
-PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl ac_cv_file__dev_urandom=yes,openssl,"
-PACKAGECONFIG[python] = "--with-python,--without-python,python3,python3"
-PACKAGECONFIG[uuid] = "--with-uuid=e2fs,--without-uuid,util-linux,"
+PACKAGECONFIG ??= " \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)} \
+    openssl python uuid libxml tcl perl zlib \
+"
 PACKAGECONFIG[tcl] = "--with-tcl --with-tclconfig=${STAGING_BINDIR_CROSS},--without-tcl,tcl tcl-native,"
-PACKAGECONFIG[nls] = "--enable-nls,--disable-nls,,"
-PACKAGECONFIG[libxml] = "--with-libxml,--without-libxml,libxml2,libxml2"
 PACKAGECONFIG[perl] = "--with-perl,--without-perl,perl,perl"
+PACKAGECONFIG[python] = "--with-python,--without-python,python3,python3"
+PACKAGECONFIG[gssapi] = "--with-gssapi,--without-gssapi,krb5"
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
+PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
+PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd systemd-systemctl-native"
+PACKAGECONFIG[uuid] = "--with-uuid=e2fs,--without-uuid,util-linux"
+PACKAGECONFIG[libxml] = "--with-libxml,--without-libxml,libxml2,libxml2"
+PACKAGECONFIG[libxslt] = "--with-libxslt,--without-libxslt,libxslt"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
+PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4"
+PACKAGECONFIG[openssl] = "--with-ssl=openssl,ac_cv_file__dev_urandom=yes,openssl"
 
 EXTRA_OECONF += "--enable-thread-safety --disable-rpath \
     --datadir=${datadir}/${BPN} \
     --sysconfdir=${sysconfdir}/${BPN} \
 "
 EXTRA_OECONF:sh4 += "--disable-spinlocks"
-EXTRA_OECONF:aarch64 += "--disable-spinlocks"
 
 DEBUG_OPTIMIZATION:remove:mips = " -Og"
 DEBUG_OPTIMIZATION:append:mips = " -O"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_13.4.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_13.4.bb
deleted file mode 100644
index f63d23d..0000000
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_13.4.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-require postgresql.inc
-
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=255f15687738db8068fbe9b938c90217"
-
-SRC_URI += "\
-   file://not-check-libperl.patch \
-   file://0001-Add-support-for-RISC-V.patch \
-   file://0001-Improve-reproducibility.patch \
-   file://0001-configure.in-bypass-autoconf-2.69-version-check.patch \
-"
-
-SRC_URI[sha256sum] = "ea93e10390245f1ce461a54eb5f99a48d8cabd3a08ce4d652ec2169a357bc0cd"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_14.1.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_14.1.bb
new file mode 100644
index 0000000..1112cc2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_14.1.bb
@@ -0,0 +1,12 @@
+require postgresql.inc
+
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=255f15687738db8068fbe9b938c90217"
+
+SRC_URI += "\
+   file://not-check-libperl.patch \
+   file://0001-Add-support-for-RISC-V.patch \
+   file://0001-Improve-reproducibility.patch \
+   file://0001-configure.ac-bypass-autoconf-2.69-version-check.patch \
+"
+
+SRC_URI[sha256sum] = "4d3c101ea7ae38982f06bdc73758b53727fb6402ecd9382006fa5ecc7c2ca41f"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_6.20.3.bb b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_6.20.3.bb
index 9b1fefc..a5f6d83 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_6.20.3.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_6.20.3.bb
@@ -9,7 +9,7 @@
 SRCREV = "8608d75d85f8e1b3b64b73a4fb6d19baec61ba5c"
 SRCBRANCH = "6.20.fb"
 
-SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH} \
+SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH};protocol=https \
            file://0001-cmake-Add-check-for-atomic-support.patch \
            file://0001-cmake-Use-exported-target-for-bz2.patch \
            file://0001-folly-Use-SYS_futex-for-syscall.patch \
diff --git a/meta-openembedded/meta-oe/recipes-dbs/soci/soci/0001-Fix-build-when-SIGSTKSZ-is-no-longer-a-constant.patch b/meta-openembedded/meta-oe/recipes-dbs/soci/soci/0001-Fix-build-when-SIGSTKSZ-is-no-longer-a-constant.patch
new file mode 100644
index 0000000..8e32ebb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/soci/soci/0001-Fix-build-when-SIGSTKSZ-is-no-longer-a-constant.patch
@@ -0,0 +1,42 @@
+From fae154eb209e068586e1adb589de5d273fcf4b4f Mon Sep 17 00:00:00 2001
+From: Denis Arnaud <denis.arnaud_fedora@m4x.org>
+Date: Tue, 18 May 2021 00:05:03 +0200
+Subject: [PATCH] Fix build when SIGSTKSZ is no longer a constant
+
+In the latest glibc versions SIGSTKSZ is not a constant any more, which
+broke building the tests with it.
+
+Work around this by hard-coding a typical value for it.
+
+closes #886.
+
+Upstream-Status: Backport.
+---
+ tests/catch.hpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/catch.hpp b/tests/catch.hpp
+index 014df2c5..85067813 100644
+--- a/tests/catch.hpp
++++ b/tests/catch.hpp
+@@ -6489,7 +6489,7 @@ namespace Catch {
+         static bool isSet;
+         static struct sigaction oldSigActions [sizeof(signalDefs)/sizeof(SignalDefs)];
+         static stack_t oldSigStack;
+-        static char altStackMem[SIGSTKSZ];
++        static char altStackMem[8192];
+ 
+         static void handleSignal( int sig ) {
+             std::string name = "<unknown signal>";
+@@ -6540,7 +6540,7 @@ namespace Catch {
+     bool FatalConditionHandler::isSet = false;
+     struct sigaction FatalConditionHandler::oldSigActions[sizeof(signalDefs)/sizeof(SignalDefs)] = {};
+     stack_t FatalConditionHandler::oldSigStack = {};
+-    char FatalConditionHandler::altStackMem[SIGSTKSZ] = {};
++    char FatalConditionHandler::altStackMem[8192] = {};
+ 
+ } // namespace Catch
+ 
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/soci/soci_3.2.3.bb b/meta-openembedded/meta-oe/recipes-dbs/soci/soci_3.2.3.bb
deleted file mode 100644
index c218b71..0000000
--- a/meta-openembedded/meta-oe/recipes-dbs/soci/soci_3.2.3.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright (C) 2015 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-DESCRIPTION = "The C++ Database Access Library"
-HOMEPAGE = "http://soci.sourceforge.net"
-LICENSE = "BSL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
-SECTION = "libs"
-DEPENDS = "boost"
-
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BP}/${BP}.tar.gz \
-           file://soci_libdir.patch \
-          "
-SRC_URI[md5sum] = "acfbccf176cd20e06833a8037a2d3699"
-SRC_URI[sha256sum] = "2c659db0f4f7b424bbcffe195c03c293a1dbf676189a27b077fb2aab4d53a610"
-
-TESTCONFIG = '-DSOCI_TEST_EMPTY_CONNSTR="dummy" -DSOCI_TEST_SQLITE3_CONNSTR="test.db" \
-              -DSOCI_TEST_POSTGRESQL_CONNSTR:STRING="dbname=soci_test" \
-              -DSOCI_TEST_MYSQL_CONNSTR:STRING="db=soci_test user=oe password=oe"'
-
-OBASEDIR ?= "/opt/oracle"
-OINCDIR = "rdbms/public"
-OLIBDIR = "lib"
-
-PACKAGECONFIG[sqlite3] = "-DSOCI_SQLITE3=ON,-DSOCI_SQLITE3=OFF,sqlite3,"
-PACKAGECONFIG[mysql] = "-DSOCI_MYSQL=ON,-DSOCI_MYSQL=OFF,mariadb,"
-PACKAGECONFIG[postgresql] = "-DSOCI_POSTGRESQL=ON,-DSOCI_POSTGRESQL=OFF,postgresql,"
-PACKAGECONFIG[odbc] = "-DSOCI_ODBC=ON,-DSOCI_ODBC=OFF,,"
-PACKAGECONFIG[empty] = "-DSOCI_EMPTY=ON,-DSOCI_EMPTY=OFF,,"
-PACKAGECONFIG[oracle] = "-DWITH_ORACLE=ON --with-oracle-include=${OINCDIR} --with-oracle-lib=${OLIBDIR},-DWITH_ORACLE=OFF,,"
-PACKAGECONFIG[ptest] = "${TESTCONFIG},,,"
-
-# enable your backend by default we enable 'empty'
-PACKAGECONFIG ??= "empty"
-
-# Take the flags added by PACKAGECONFIG and pass them to cmake.
-EXTRA_OECMAKE = "${EXTRA_OECONF} -DSOCI_LIBDIR=${libdir}"
-DISABLE_STATIC = ""
-
-inherit dos2unix cmake
-
-PACKAGES += "${PN}-sqlite3 ${PN}-mysql ${PN}-postgresql ${PN}-odbc ${PN}-oracle"
-
-FILES:${PN}-sqlite3 = "${libdir}/lib${BPN}_sqlite3.so.*"
-FILES:${PN}-mysql = "${libdir}/lib${BPN}_mysql.so.*"
-FILES:${PN}-postgresql = "${libdir}/lib${BPN}_postgresql.so.*"
-FILES:${PN}-odbc = "${libdir}/lib${BPN}_odbc.so.*"
-FILES:${PN}-oracle = "${libdir}/lib${BPN}_oracle.so.*"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/soci/soci_4.0.2.bb b/meta-openembedded/meta-oe/recipes-dbs/soci/soci_4.0.2.bb
new file mode 100644
index 0000000..fb67e0c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/soci/soci_4.0.2.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "The C++ Database Access Library"
+HOMEPAGE = "http://soci.sourceforge.net"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+SECTION = "libs"
+DEPENDS = "boost"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BP}/${BP}.tar.gz \
+           file://0001-Fix-build-when-SIGSTKSZ-is-no-longer-a-constant.patch"
+SRC_URI[sha256sum] = "34da2d2320539463da8a5131253246fa2671e0438ab5fd1e5119edb428f558a5"
+
+TESTCONFIG = '-DSOCI_TEST_EMPTY_CONNSTR="dummy" -DSOCI_TEST_SQLITE3_CONNSTR="test.db" \
+              -DSOCI_TEST_POSTGRESQL_CONNSTR:STRING="dbname=soci_test" \
+              -DSOCI_TEST_MYSQL_CONNSTR:STRING="db=soci_test user=oe password=oe"'
+
+OBASEDIR ?= "/opt/oracle"
+OINCDIR = "rdbms/public"
+OLIBDIR = "lib"
+
+PACKAGECONFIG[sqlite3] = "-DSOCI_SQLITE3=ON,-DSOCI_SQLITE3=OFF,sqlite3,"
+PACKAGECONFIG[mysql] = "-DSOCI_MYSQL=ON,-DSOCI_MYSQL=OFF,mariadb,"
+PACKAGECONFIG[postgresql] = "-DSOCI_POSTGRESQL=ON,-DSOCI_POSTGRESQL=OFF,postgresql,"
+PACKAGECONFIG[odbc] = "-DSOCI_ODBC=ON,-DSOCI_ODBC=OFF,,"
+PACKAGECONFIG[empty] = "-DSOCI_EMPTY=ON,-DSOCI_EMPTY=OFF,,"
+PACKAGECONFIG[oracle] = "-DWITH_ORACLE=ON --with-oracle-include=${OINCDIR} --with-oracle-lib=${OLIBDIR},-DWITH_ORACLE=OFF,,"
+PACKAGECONFIG[firebird] = "-DWITH_FIREBIRD=ON,-DWITH_FIREBIRD=OFF,,"
+PACKAGECONFIG[ptest] = "${TESTCONFIG},,,"
+
+# enable your backend by default we enable 'empty'
+PACKAGECONFIG ??= "empty"
+
+# Take the flags added by PACKAGECONFIG and pass them to cmake.
+EXTRA_OECMAKE = "${EXTRA_OECONF} -DSOCI_LIBDIR=${libdir}"
+DISABLE_STATIC = ""
+
+inherit dos2unix cmake
+
+PACKAGES += "${PN}-sqlite3 ${PN}-mysql ${PN}-postgresql ${PN}-odbc ${PN}-oracle"
+
+FILES:${PN}-sqlite3 = "${libdir}/lib${BPN}_sqlite3.so.*"
+FILES:${PN}-mysql = "${libdir}/lib${BPN}_mysql.so.*"
+FILES:${PN}-postgresql = "${libdir}/lib${BPN}_postgresql.so.*"
+FILES:${PN}-odbc = "${libdir}/lib${BPN}_odbc.so.*"
+FILES:${PN}-oracle = "${libdir}/lib${BPN}_oracle.so.*"
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 23db1d6..37d5d81 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
@@ -10,7 +10,7 @@
 PV = "20210324.2+git${SRCPV}"
 SRCREV = "278e0a071885a22dcd2fd1b5576cc44757299343"
 BRANCH = "lts_2021_03_24"
-SRC_URI = "git://github.com/abseil/abseil-cpp;branch=${BRANCH}         \
+SRC_URI = "git://github.com/abseil/abseil-cpp;branch=${BRANCH};protocol=https \
            file://0001-absl-always-use-asm-sgidefs.h.patch             \
            file://0002-Remove-maes-option-from-cross-compilation.patch \
            file://abseil-ppc-fixes.patch \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/apitrace/apitrace_10.0.bb b/meta-openembedded/meta-oe/recipes-devtools/apitrace/apitrace_10.0.bb
index eb8e031..d4d8d8e 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/apitrace/apitrace_10.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/apitrace/apitrace_10.0.bb
@@ -7,7 +7,7 @@
 
 SRCREV = "d28a980802ad48568c87da02d630c8babfe163bb"
 PV .= "+10.0.1+git${SRCPV}"
-SRC_URI = "gitsm://github.com/${BPN}/${BPN}.git \
+SRC_URI = "gitsm://github.com/${BPN}/${BPN}.git;branch=master;protocol=https \
           "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/boost-url/boost-url_git.bb b/meta-openembedded/meta-oe/recipes-devtools/boost-url/boost-url_git.bb
index 9f75910..14da3ca 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/boost-url/boost-url_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/boost-url/boost-url_git.bb
@@ -4,9 +4,9 @@
 LICENSE = "BSL-1.0"
 LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
 
-SRC_URI = "git://github.com/CPPAlliance/url.git;branch=develop"
+SRC_URI = "git://github.com/CPPAlliance/url.git;branch=develop;protocol=https"
 
-SRCREV = "4f712ed69a04a344957d22efa5dc111b415b3aff"
+SRCREV = "d740a92d38e3a8f4d5b2153f53b82f1c98e312ab"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
index 1757c70..fabf59d 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
@@ -28,11 +28,11 @@
 SRCREV_lss = "fd00dbbd0c06a309c657d89e9430143b179ff6db"
 SRCREV_gyp = "324dd166b7c0b39d513026fa52d6280ac6d56770"
 
-SRC_URI = "git://github.com/google/breakpad;name=breakpad;branch=main \
-           git://github.com/google/googletest.git;destsuffix=git/src/testing/gtest;name=gtest \
-           git://github.com/protocolbuffers/protobuf.git;destsuffix=git/src/third_party/protobuf/protobuf;name=protobuf \
+SRC_URI = "git://github.com/google/breakpad;name=breakpad;branch=main;protocol=https \
+           git://github.com/google/googletest.git;destsuffix=git/src/testing/gtest;name=gtest;branch=master;protocol=https \
+           git://github.com/protocolbuffers/protobuf.git;destsuffix=git/src/third_party/protobuf/protobuf;name=protobuf;branch=master;protocol=https \
            git://chromium.googlesource.com/linux-syscall-support;protocol=https;branch=main;destsuffix=git/src/third_party/lss;name=lss \
-           git://chromium.googlesource.com/external/gyp;protocol=https;destsuffix=git/src/tools/gyp;name=gyp \
+           git://chromium.googlesource.com/external/gyp;protocol=https;destsuffix=git/src/tools/gyp;name=gyp;branch=master \
            file://0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch \
            file://0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch \
            file://0001-Turn-off-sign-compare-for-musl-libc.patch \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.8.0.bb b/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.8.0.bb
index 2d78bee..7744231 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.8.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.8.0.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://../LICENSE;md5=a05663ae6cca874123bf667a60dca8c9"
 
-SRC_URI = "git://github.com/sandstorm-io/capnproto.git;branch=release-${PV} \
+SRC_URI = "git://github.com/sandstorm-io/capnproto.git;branch=release-${PV};protocol=https \
            file://0001-mutex-Fix-build-on-32-bit-architectures-using-64-bit.patch;patchdir=../ \
            "
 SRCREV = "57a4ca5af5a7f55b768a9d9d6655250bffb1257f"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb b/meta-openembedded/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb
index 1a4e53d..200f751 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=218947f77e8cb8e2fa02918dc41c50d0"
 
-SRC_URI = "git://github.com/DaveGamble/cJSON.git"
+SRC_URI = "git://github.com/DaveGamble/cJSON.git;branch=master;protocol=https"
 SRCREV = "d348621ca93571343a56862df7de4ff3bc9b5667"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.90.bb b/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.90.bb
deleted file mode 100644
index fa69aa1..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.90.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Count blank lines, comment lines, and physical lines of source code \
-in many programming languages."
-AUTHOR = "Al Danial"
-
-LICENSE="GPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2c1c00f9d3ed9e24fa69b932b7e7aff2"
-
-SRC_URI = "https://github.com/AlDanial/cloc/releases/download/v${PV}/${BP}.tar.gz"
-SRC_URI[md5sum] = "e2364c2c9c9eda1d20890c19911c51fb"
-SRC_URI[sha256sum] = "152502a61d4bae4a406a05a01bf52489b310ec03dbd8c645d0bb051fa4717ddb"
-
-UPSTREAM_CHECK_URI = "https://github.com/AlDanial/${BPN}/releases"
-
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-
-do_install() {
-    install -D -m 0755 ${S}/cloc ${D}${bindir}/cloc
-}
-
-RDEPENDS:${PN} = "perl perl-modules"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.92.bb b/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.92.bb
new file mode 100644
index 0000000..2b9f299
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.92.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Count blank lines, comment lines, and physical lines of source code \
+in many programming languages."
+AUTHOR = "Al Danial"
+
+LICENSE="GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2c1c00f9d3ed9e24fa69b932b7e7aff2"
+
+SRC_URI = "https://github.com/AlDanial/cloc/releases/download/v${PV}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "73570f9da159fab13846038de7c3d8772554117c04117281dcbe6e5c7b988264"
+
+UPSTREAM_CHECK_URI = "https://github.com/AlDanial/${BPN}/releases"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+    install -D -m 0755 ${S}/cloc ${D}${bindir}/cloc
+}
+
+RDEPENDS:${PN} = "perl perl-modules"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb b/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb
index 3070d29..c414fd3 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb
@@ -10,7 +10,7 @@
 PV = "0.5.1+git${SRCPV}"
 SRCREV = "f97d3da5c375ac2fc5a9173cdd36cb828915a2e1"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a0b24c1a8f9ad516a297d055b0294231"
-SRC_URI = "git://github.com/concurrencykit/ck.git \
+SRC_URI = "git://github.com/concurrencykit/ck.git;branch=master;protocol=https \
            file://cross.patch \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20201006.bb b/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20201006.bb
deleted file mode 100644
index 1b42590..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20201006.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Linux tool to dump x86 CPUID information about the CPU(s)"
-DESCRIPTION = "cpuid dumps detailed information about the CPU(s) gathered \
-from the CPUID instruction, and also determines the exact model of CPU(s). \
-It supports Intel, AMD, and VIA CPUs, as well as older Transmeta, Cyrix, \
-UMC, NexGen, Rise, and SiS CPUs"
-HOMEPAGE="http://www.etallen.com/cpuid.html"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://www.etallen.com/${BPN}/${BP}.src.tar.gz \
-           "
-SRC_URI[sha256sum] = "13c53f16408341d11ed489b352f218ec4dbb5bedb796a9d059e924770a9c56a6"
-
-COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
-
-inherit perlnative
-
-# The install rule from the Makefile has hardcoded paths, so we duplicate
-# the actions to accommodate different paths.
-do_install () {
-    install -D -m 0755 ${B}/cpuid ${D}/${bindir}/cpuid
-    install -D -m 0444 ${B}/cpuid.man.gz ${D}/${mandir}
-}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20211129.bb b/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20211129.bb
new file mode 100644
index 0000000..d1f1250
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20211129.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Linux tool to dump x86 CPUID information about the CPU(s)"
+DESCRIPTION = "cpuid dumps detailed information about the CPU(s) gathered \
+from the CPUID instruction, and also determines the exact model of CPU(s). \
+It supports Intel, AMD, and VIA CPUs, as well as older Transmeta, Cyrix, \
+UMC, NexGen, Rise, and SiS CPUs"
+HOMEPAGE="http://www.etallen.com/cpuid.html"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "http://www.etallen.com/${BPN}/${BP}.src.tar.gz \
+           "
+SRC_URI[sha256sum] = "230772bb88c44732e68a42d2eff43bcff46d893bf4ea6e04151d4cb6e8c88e2f"
+
+COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
+
+inherit perlnative
+
+# The install rule from the Makefile has hardcoded paths, so we duplicate
+# the actions to accommodate different paths.
+do_install () {
+    install -D -m 0755 ${B}/cpuid ${D}/${bindir}/cpuid
+    install -D -m 0444 ${B}/cpuid.man.gz ${D}/${mandir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_5.9.20210905.0.bb b/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_5.9.20210905.0.bb
deleted file mode 100644
index 3289436..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_5.9.20210905.0.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2015 Igor Santos <igor.santos@aker.com.br>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Universal Ctags"
-DESCRIPTION = "Universal Ctags is a multilanguage reimplementation of the \
-               Unix ctags utility. Ctags generates an index of source code \
-               definitions which is used by numerous editors and utilities \
-               to instantly locate the definitions."
-
-HOMEPAGE = "https://ctags.io/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-inherit autotools-brokensep pkgconfig manpages
-
-SRCREV = "ca81123303640582358ce7b8a4e466615950a1f7"
-SRC_URI = "git://github.com/universal-ctags/ctags"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= " \
-    readcmd \
-    xml \
-    json \
-    yaml \
-"
-PACKAGECONFIG[readcmd] = "--enable-readcmd,--disable-readcmd"
-PACKAGECONFIG[etags] = "--enable-etags,--disable-etags"
-PACKAGECONFIG[xml] = "--enable-xml,--disable-xml,libxml2"
-PACKAGECONFIG[json] = "--enable-json,--disable-json,jansson"
-PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
-PACKAGECONFIG[yaml] = "--enable-yaml,--disable-yaml,libyaml"
-PACKAGECONFIG[manpages] = ",,python3-docutils-native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_5.9.20211114.0.bb b/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_5.9.20211114.0.bb
new file mode 100644
index 0000000..cde7c7a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_5.9.20211114.0.bb
@@ -0,0 +1,34 @@
+# Copyright (C) 2015 Igor Santos <igor.santos@aker.com.br>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Universal Ctags"
+DESCRIPTION = "Universal Ctags is a multilanguage reimplementation of the \
+               Unix ctags utility. Ctags generates an index of source code \
+               definitions which is used by numerous editors and utilities \
+               to instantly locate the definitions."
+
+HOMEPAGE = "https://ctags.io/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+inherit autotools-brokensep pkgconfig manpages
+
+SRCREV = "a668cb155609d5a322963e1ed9a0c0147c8be597"
+SRC_URI = "git://github.com/universal-ctags/ctags;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= " \
+    readcmd \
+    xml \
+    json \
+    yaml \
+"
+PACKAGECONFIG[readcmd] = "--enable-readcmd,--disable-readcmd"
+PACKAGECONFIG[etags] = "--enable-etags,--disable-etags"
+PACKAGECONFIG[xml] = "--enable-xml,--disable-xml,libxml2"
+PACKAGECONFIG[json] = "--enable-json,--disable-json,jansson"
+PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
+PACKAGECONFIG[yaml] = "--enable-yaml,--disable-yaml,libyaml"
+PACKAGECONFIG[manpages] = ",,python3-docutils-native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.124.bb b/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.124.bb
deleted file mode 100644
index 4fc59ad..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.124.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Install a Debian system into a subdirectory"
-HOMEPAGE = "https://wiki.debian.org/Debootstrap"
-SECTION = "devel"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=1e68ced6e1689d4cd9dac75ff5225608"
-
-SRC_URI  = "\
-    http://http.debian.net/debian/pool/main/d/debootstrap/debootstrap_${PV}.tar.gz \
-    file://0001-support-to-override-usr-sbin-and-usr-share.patch \
-    file://0002-support-to-override-usr-bin-arch-test.patch \
-    file://0001-do-not-hardcode-the-full-path-of-dpkg.patch \
-"
-
-SRC_URI[md5sum] = "8a5e97f60236c3a63f715c056a5f0e29"
-SRC_URI[sha256sum] = "7700e9864b29f166b26c54153ed8c275b46f4b9a60468bb607e019a64c16cd8f"
-
-S = "${WORKDIR}/debootstrap"
-
-DEPENDS = " \
-    virtual/fakeroot-native \
-"
-
-fakeroot do_install() {
-    oe_runmake 'DESTDIR=${D}' install
-    chown -R root:root ${D}${datadir}/debootstrap
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.126.bb b/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.126.bb
new file mode 100644
index 0000000..38b015c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.126.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Install a Debian system into a subdirectory"
+HOMEPAGE = "https://wiki.debian.org/Debootstrap"
+SECTION = "devel"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=1e68ced6e1689d4cd9dac75ff5225608"
+
+SRC_URI  = "\
+    http://http.debian.net/debian/pool/main/d/debootstrap/debootstrap_${PV}.tar.gz \
+    file://0001-support-to-override-usr-sbin-and-usr-share.patch \
+    file://0002-support-to-override-usr-bin-arch-test.patch \
+    file://0001-do-not-hardcode-the-full-path-of-dpkg.patch \
+"
+
+SRC_URI[sha256sum] = "bc48e1c500c33bed50bd00d201f338d3c92d6c0dcb1f202c3bc00ef01f96c618"
+
+S = "${WORKDIR}/debootstrap"
+
+DEPENDS = " \
+    virtual/fakeroot-native \
+"
+
+fakeroot do_install() {
+    oe_runmake 'DESTDIR=${D}' install
+    chown -R root:root ${D}${datadir}/debootstrap
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb b/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb
index 60ca2ab..5263aae 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb
@@ -3,13 +3,13 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
-SRC_URI = "git://github.com/ubinux/dnf-plugin-tui.git;branch=master "
-SRCREV = "b0d80b7129f1d84cc563a4098d869e7420bcf4bc"
+SRC_URI = "git://github.com/ubinux/dnf-plugin-tui.git;branch=master;protocol=https"
+SRCREV = "3ccf87915ceb70eac055a07eb80bc9105e916620"
 PV = "1.3"
 
 SRC_URI:append:class-target = " file://oe-remote.repo.sample"
 
-inherit distutils3-base
+inherit setuptools3-base
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
index 9d1a5a9..b6d007d 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
@@ -1,4 +1,4 @@
-From 7aeee92c752f8a4b2524ed6a41d60c1a3ca8bf2d Mon Sep 17 00:00:00 2001
+From daf686508f2ee4711d93e96e5b100e50bf161656 Mon Sep 17 00:00:00 2001
 From: Leon Anavi <leon.anavi@konsulko.com>
 Date: Wed, 26 Aug 2020 10:52:10 +0300
 Subject: [PATCH] doxygen: Fix Python issues for doxygen-native
@@ -39,6 +39,7 @@
 Co-Authored-By: Kai Kang <kai.kang@windriver.com>
 Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
 Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+
 ---
  CMakeLists.txt                  |  2 +-
  addon/doxywizard/CMakeLists.txt |  6 +++---
@@ -50,10 +51,10 @@
  7 files changed, 17 insertions(+), 17 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index f30b46b8..50f211c8 100644
+index 2455793..28f0d83 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -101,7 +101,7 @@ else ()
+@@ -105,7 +105,7 @@ else ()
  endif ()
  
  find_program(DOT NAMES dot)
@@ -63,10 +64,10 @@
  find_package(BISON REQUIRED)
  if (BISON_VERSION VERSION_LESS 2.7)
 diff --git a/addon/doxywizard/CMakeLists.txt b/addon/doxywizard/CMakeLists.txt
-index a6f65f8d..d163aa5b 100644
+index 63ac8e3..d37d1d0 100644
 --- a/addon/doxywizard/CMakeLists.txt
 +++ b/addon/doxywizard/CMakeLists.txt
-@@ -58,7 +58,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/settings.h PROPERTIES GENERA
+@@ -57,7 +57,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/settings.h PROPERTIES GENERA
  
  # generate version.cpp
  add_custom_command(
@@ -75,7 +76,7 @@
      DEPENDS ${PROJECT_SOURCE_DIR}/VERSION ${PROJECT_SOURCE_DIR}/src/version.py
      OUTPUT ${GENERATED_SRC_WIZARD}/version.cpp
  )
-@@ -66,7 +66,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/version.cpp PROPERTIES GENER
+@@ -65,7 +65,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/version.cpp PROPERTIES GENER
  
  # generate configdoc.cpp
  add_custom_command(
@@ -84,7 +85,7 @@
      DEPENDS  ${PROJECT_SOURCE_DIR}/src/configgen.py ${PROJECT_SOURCE_DIR}/src/config.xml
      OUTPUT ${GENERATED_SRC_WIZARD}/configdoc.cpp
  )
-@@ -75,7 +75,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/configdoc.cpp PROPERTIES GEN
+@@ -74,7 +74,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/configdoc.cpp PROPERTIES GEN
  set(LEX_FILES config_doxyw)
  foreach(lex_file ${LEX_FILES})
      add_custom_command(
@@ -94,10 +95,10 @@
          OUTPUT  ${GENERATED_SRC_WIZARD}/${lex_file}.l.h
      )
 diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
-index f2d177ed..22a4d602 100644
+index ec63ceb..49a2bda 100644
 --- a/doc/CMakeLists.txt
 +++ b/doc/CMakeLists.txt
-@@ -163,7 +163,7 @@ configure_file(${PROJECT_SOURCE_DIR}/doc/doxyindexer.1      ${PROJECT_BINARY_DIR
+@@ -168,7 +168,7 @@ configure_file(${PROJECT_SOURCE_DIR}/doc/doxyindexer.1      ${PROJECT_BINARY_DIR
  
  # doc/language.doc (see tag Doxyfile:INPUT)
  add_custom_command(
@@ -106,7 +107,7 @@
          DEPENDS ${PROJECT_SOURCE_DIR}/doc/maintainers.txt ${PROJECT_SOURCE_DIR}/doc/language.tpl ${PROJECT_BINARY_DIR}/doc/translator.py ${LANG_FILES}
          OUTPUT language.doc
          WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc
-@@ -172,7 +172,7 @@ set_source_files_properties(language.doc PROPERTIES GENERATED 1)
+@@ -177,7 +177,7 @@ set_source_files_properties(language.doc PROPERTIES GENERATED 1)
  
  # doc/config.doc (see tag Doxyfile:INPUT)
  add_custom_command(
@@ -115,7 +116,7 @@
          DEPENDS ${TOP}/src/config.xml ${TOP}/src/configgen.py
          OUTPUT config.doc
          WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc/
-@@ -223,7 +223,7 @@ add_custom_target(docs_chm
+@@ -228,7 +228,7 @@ add_custom_target(docs_chm
      COMMAND ${CMAKE_COMMAND} -E echo "    for file in files:" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
      COMMAND ${CMAKE_COMMAND} -E echo "        if file.endswith('.html') or file.endswith('.png') or file.endswith('.css') or file.endswith('.gif'):" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
      COMMAND ${CMAKE_COMMAND} -E echo "            print(os.path.join(root, file))" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
@@ -125,7 +126,7 @@
      COMMAND ${CMAKE_COMMAND} -E rename ${PROJECT_BINARY_DIR}/chm/index.chm ${PROJECT_BINARY_DIR}/chm/doxygen_manual.chm
          DEPENDS ${PROJECT_BINARY_DIR}/doc/language.doc ${PROJECT_BINARY_DIR}/doc/config.doc
 diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
-index 194b4271..248b8076 100644
+index 194b427..248b807 100644
 --- a/examples/CMakeLists.txt
 +++ b/examples/CMakeLists.txt
 @@ -54,7 +54,7 @@ foreach (f_inp  ${BASIC_EXAMPLES})
@@ -147,7 +148,7 @@
  	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex
    )
 diff --git a/libmscgen/CMakeLists.txt b/libmscgen/CMakeLists.txt
-index 0a239008..09849e2d 100644
+index 34cf4d8..f015afc 100644
 --- a/libmscgen/CMakeLists.txt
 +++ b/libmscgen/CMakeLists.txt
 @@ -7,7 +7,7 @@ include_directories(
@@ -160,10 +161,10 @@
          OUTPUT  ${GENERATED_SRC}/${lex_file}.l.h
      )
 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 5004a957..68e803f2 100644
+index 0e0c5f7..c1d3ca5 100644
 --- a/src/CMakeLists.txt
 +++ b/src/CMakeLists.txt
-@@ -39,7 +39,7 @@ set_source_files_properties(${GENERATED_SRC}/settings.h PROPERTIES GENERATED 1)
+@@ -40,7 +40,7 @@ set_source_files_properties(${GENERATED_SRC}/settings.h PROPERTIES GENERATED 1)
  
  # configvalues.h
  add_custom_command(
@@ -172,7 +173,7 @@
      DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py
      OUTPUT ${GENERATED_SRC}/configvalues.h
  )
-@@ -51,7 +51,7 @@ add_custom_target(
+@@ -52,7 +52,7 @@ add_custom_target(
  
  # configvalues.cpp
  add_custom_command(
@@ -181,7 +182,7 @@
      DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py
      OUTPUT ${GENERATED_SRC}/configvalues.cpp
  )
-@@ -59,7 +59,7 @@ set_source_files_properties(${GENERATED_SRC}/configvalues.cpp PROPERTIES GENERAT
+@@ -60,7 +60,7 @@ set_source_files_properties(${GENERATED_SRC}/configvalues.cpp PROPERTIES GENERAT
  
  # configoptions.cpp
  add_custom_command(
@@ -190,7 +191,7 @@
      DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py
      OUTPUT ${GENERATED_SRC}/configoptions.cpp
  )
-@@ -94,7 +94,7 @@ endif()
+@@ -95,7 +95,7 @@ endif()
  # resources.cpp
  add_custom_command(
      COMMENT  "Generating ${GENERATED_SRC}/resources.cpp"
@@ -199,7 +200,7 @@
      DEPENDS ${RESOURCES} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py
      OUTPUT ${GENERATED_SRC}/resources.cpp
  )
-@@ -124,7 +124,7 @@ foreach(lex_file ${LEX_FILES})
+@@ -126,7 +126,7 @@ foreach(lex_file ${LEX_FILES})
      set(LEX_FILES_H ${LEX_FILES_H} " " ${GENERATED_SRC}/${lex_file}.l.h CACHE INTERNAL "Stores generated files")
      set(LEX_FILES_CPP ${LEX_FILES_CPP} " " ${GENERATED_SRC}/${lex_file}.cpp CACHE INTERNAL "Stores generated files")
      add_custom_command(
@@ -209,7 +210,7 @@
          OUTPUT  ${GENERATED_SRC}/${lex_file}.l.h
      )
 diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt
-index fd6912e9..0af1865b 100644
+index fd6912e..0af1865 100644
 --- a/testing/CMakeLists.txt
 +++ b/testing/CMakeLists.txt
 @@ -1,7 +1,7 @@
@@ -229,6 +230,3 @@
 +		 COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/testing/runtests.py --id ${TEST_ID} --doxygen $<TARGET_FILE:doxygen> --inputdir ${PROJECT_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
  	)
  endforeach()
--- 
-2.27.0
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.9.2.bb b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.9.2.bb
deleted file mode 100644
index fc5df4c..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.9.2.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "Doxygen is the de facto standard tool for generating documentation from annotated C++ sources."
-HOMEPAGE = "http://www.doxygen.org/"
-
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "flex-native bison-native"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.src.tar.gz \
-           file://0001-build-don-t-look-for-Iconv.patch \
-"
-SRC_URI:append:class-native = " file://doxygen-native-only-check-python3.patch"
-SRC_URI[sha256sum] = "060f254bcef48673cc7ccf542736b7455b67c110b30fdaa33512a5b09bbecee5"
-
-inherit cmake python3native
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.9.3.bb b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.9.3.bb
new file mode 100644
index 0000000..7070c1f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.9.3.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Doxygen is the de facto standard tool for generating documentation from annotated C++ sources."
+HOMEPAGE = "http://www.doxygen.org/"
+
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "flex-native bison-native"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.src.tar.gz \
+           file://0001-build-don-t-look-for-Iconv.patch \
+"
+SRC_URI:append:class-native = " file://doxygen-native-only-check-python3.patch"
+SRC_URI[sha256sum] = "f352dbc3221af7012b7b00935f2dfdc9fb67a97d43287d2f6c81c50449d254e0"
+
+inherit cmake python3native
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/exprtk/exprtk_git.bb b/meta-openembedded/meta-oe/recipes-devtools/exprtk/exprtk_git.bb
index a50679a..52975c8 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/exprtk/exprtk_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/exprtk/exprtk_git.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 SRCREV = "281c2ccc65b8f91c012ea3725ebcef406378a225"
 
-SRC_URI = "git://github.com/ArashPartow/exprtk.git"
+SRC_URI = "git://github.com/ArashPartow/exprtk.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb
index 957f059..06bb971 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb
@@ -14,7 +14,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
 SRCREV = "a9a295fecf3fbd5a4f571f53b01f63202a3e2113"
-SRC_URI = "git://github.com/google/flatbuffers.git"
+SRC_URI = "git://github.com/google/flatbuffers.git;branch=master;protocol=https"
 S = "${WORKDIR}/git"
 
 CVE_CHECK_WHITELIST += "CVE-2020-35864"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.37.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.37.bb
deleted file mode 100644
index 9a70537..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.37.bb
+++ /dev/null
@@ -1,245 +0,0 @@
-DESCRIPTION = "A fast and lightweight IDE"
-HOMEPAGE = "http://plugins.geany.org/"
-
-LICENSE_DEFAULT = "GPLv2"
-LICENSE = "${LICENSE_DEFAULT} & BSD-2-Clause & GPLv3"
-
-python () {
-    for plugin in d.getVar('PLUGINS').split():
-        if 'LICENSE:%s' % plugin not in d:
-            d.setVar('LICENSE:' + plugin, '${LICENSE_DEFAULT}')
-}
-
-DEPENDS = " \
-    vala-native \
-    fribidi \
-    geany \
-    libxml2 \
-    libsoup-2.4 \
-    enchant2 \
-    intltool-native \
-    libassuan \
-    gpgme \
-    vte \
-    libgit2 \
-"
-
-inherit features_check autotools pkgconfig gtk-icon-cache
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = " \
-    https://plugins.geany.org/${BPN}/${BP}.tar.bz2 \
-    file://0001-Use-pkg-config-to-find-gpgme.patch \
-"
-SRC_URI[sha256sum] = "c98f9b1303f4ab9bed7587e749cd0b5594d9136a1bf8ba110900d46a17fa9cd8"
-
-do_configure:prepend() {
-    rm -f ${S}/build/cache/glib-gettext.m4
-}
-
-FILES:${PN} += "${datadir}/icons"
-FILES:${PN}-dev += "${libdir}/geany/*.la ${libdir}/${BPN}/*/*.la"
-
-PLUGINS += "${PN}-addons"
-LIC_FILES_CHKSUM += "file://addons/COPYING;md5=4325afd396febcb659c36b49533135d4"
-FILES:${PN}-addons = "${libdir}/geany/addons.so"
-
-PLUGINS += "${PN}-autoclose"
-LIC_FILES_CHKSUM += "file://autoclose/COPYING;md5=751419260aa954499f7abaabaa882bbe"
-FILES:${PN}-autoclose = "${libdir}/geany/autoclose.so"
-
-PLUGINS += "${PN}-automark"
-LIC_FILES_CHKSUM += "file://automark/COPYING;md5=751419260aa954499f7abaabaa882bbe"
-FILES:${PN}-automark = "${libdir}/geany/automark.so"
-
-PLUGINS += "${PN}-codenav"
-LIC_FILES_CHKSUM += "file://codenav/COPYING;md5=751419260aa954499f7abaabaa882bbe"
-FILES:${PN}-codenav = "${libdir}/geany/codenav.so"
-
-PLUGINS += "${PN}-commander"
-LIC_FILES_CHKSUM += "file://commander/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-LICENSE:${PN}-commander = "GPLv3"
-FILES:${PN}-commander = "${libdir}/geany/commander.so"
-
-# | checking whether the GTK version in use is compatible with plugin Debugger... no
-EXTRA_OECONF += "--disable-debugger"
-#PLUGINS += "${PN}-debugger"
-#LIC_FILES_CHKSUM += "file://debugger/COPYING;md5=4325afd396febcb659c36b49533135d4"
-#FILES:${PN}-debugger = "${libdir}/geany/debugger.so ${datadir}/${PN}/debugger"
-
-PLUGINS += "${PN}-defineformat"
-LIC_FILES_CHKSUM += "file://defineformat/COPYING;md5=751419260aa954499f7abaabaa882bbe"
-FILES:${PN}-defineformat = "${libdir}/geany/defineformat.so"
-
-# no gnome devhelp in some common layer
-EXTRA_OECONF += "--disable-devhelp"
-#PLUGINS += "${PN}-devhelp"
-#LIC_FILES_CHKSUM += "file://devhelp/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-#LICENSE:${PN}-devhelp = "GPLv3"
-#FILES:${PN}-devhelp = "${libdir}/geany/devhelp.so"
-
-PLUGINS += "${PN}-geanyctags"
-LIC_FILES_CHKSUM += "file://geanyctags/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES:${PN}-geanyctags = "${libdir}/geany/geanyctags.so"
-
-PLUGINS += "${PN}-geanydoc"
-LIC_FILES_CHKSUM += "file://geanydoc/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-LICENSE:${PN}-geanydoc = "GPLv3"
-FILES:${PN}-geanydoc = "${libdir}/geany/geanydoc.so"
-
-PLUGINS += "${PN}-geanyextrasel"
-LIC_FILES_CHKSUM += "file://geanyextrasel/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES:${PN}-geanyextrasel = "${libdir}/geany/geanyextrasel.so"
-
-PLUGINS += "${PN}-geanyinsertnum"
-LIC_FILES_CHKSUM += "file://geanyinsertnum/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES:${PN}-geanyinsertnum = "${libdir}/geany/geanyinsertnum.so"
-
-# no lua: max supported version is 5.2
-EXTRA_OECONF += "--disable-geanylua"
-#PLUGINS += "${PN}-geanylua"
-#LIC_FILES_CHKSUM += "file://geanylua/COPYING;md5=4325afd396febcb659c36b49533135d4"
-#FILES:${PN}-geanylua = "${libdir}/geany/geanylua.so ${libdir}/${PN}/geanylua/*.so"
-
-PLUGINS += "${PN}-geanymacro"
-LIC_FILES_CHKSUM += "file://geanymacro/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES:${PN}-geanymacro = "${libdir}/geany/geanymacro.so"
-
-PLUGINS += "${PN}-geanyminiscript"
-LIC_FILES_CHKSUM += "file://geanyminiscript/COPYING;md5=4325afd396febcb659c36b49533135d4"
-FILES:${PN}-geanyminiscript = "${libdir}/geany/geanyminiscript.so"
-
-PLUGINS += "${PN}-geanynumberedbookmarks"
-LIC_FILES_CHKSUM += "file://geanynumberedbookmarks/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES:${PN}-geanynumberedbookmarks = "${libdir}/geany/geanynumberedbookmarks.so"
-
-PLUGINS += "${PN}-geanypg"
-LIC_FILES_CHKSUM += "file://geanypg/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-FILES:${PN}-geanypg = "${libdir}/geany/geanypg.so"
-
-PLUGINS += "${PN}-geanyprj"
-LIC_FILES_CHKSUM += "file://geanyprj/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-LICENSE:${PN}-geanyprj = "GPLv3"
-FILES:${PN}-geanyprj = "${libdir}/geany/geanyprj.so"
-
-#PLUGINS += "${PN}-geanypy"
-#LIC_FILES_CHKSUM += "file://geanypy/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-#FILES:${PN}-geanypy = "${libdir}/geany/geanypy.so"
-
-PLUGINS += "${PN}-geanyvc"
-LIC_FILES_CHKSUM += "file://geanyvc/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES:${PN}-geanyvc = "${libdir}/geany/geanyvc.so"
-
-PLUGINS += "${PN}-geniuspaste"
-LIC_FILES_CHKSUM += "file://geniuspaste/COPYING;md5=bfc203269f8862ebfc1198cdc809a95a"
-FILES:${PN}-geniuspaste = "${libdir}/geany/geniuspaste.so ${datadir}/${PN}/geniuspaste"
-
-PLUGINS += "${PN}-git-changebar"
-LIC_FILES_CHKSUM += "file://git-changebar/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-LICENSE:${PN}-git-changebar = "GPLv3"
-FILES:${PN}-git-changebar = "${datadir}/${BPN}/git-changebar ${libdir}/geany/git-changebar.so"
-
-PLUGINS += "${PN}-keyrecord"
-LIC_FILES_CHKSUM += "file://keyrecord/COPYING;md5=751419260aa954499f7abaabaa882bbe"
-FILES:${PN}-keyrecord = "${libdir}/geany/keyrecord.so"
-
-PLUGINS += "${PN}-latex"
-LIC_FILES_CHKSUM += "file://latex/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES:${PN}-latex = "${libdir}/geany/latex.so"
-
-PLUGINS += "${PN}-lineoperations"
-LIC_FILES_CHKSUM += "file://lineoperations/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES:${PN}-lineoperations = "${libdir}/geany/lineoperations.so"
-
-PLUGINS += "${PN}-lipsum"
-LIC_FILES_CHKSUM += "file://lipsum/COPYING;md5=4325afd396febcb659c36b49533135d4"
-FILES:${PN}-lipsum = "${libdir}/geany/lipsum.so"
-
-# no markdown - avoid floating dependencies
-EXTRA_OECONF += "--disable-peg-markdown"
-#PLUGINS += "${PN}-markdown"
-#LIC_FILES_CHKSUM += "file://markdown/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-#FILES:${PN}-markdown = "${libdir}/geany/markdown.so"
-
-# | checking whether the GTK version in use is compatible with plugin multiterm... no
-EXTRA_OECONF += "--disable-multiterm"
-#PLUGINS += "${PN}-multiterm"
-#LIC_FILES_CHKSUM += "file://multiterm/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-#FILES:${PN}-multiterm = "${libdir}/geany/multiterm.so"
-
-PLUGINS += "${PN}-overview"
-LIC_FILES_CHKSUM += "file://overview/overview/overviewplugin.c;beginline=4;endline=20;md5=1aa33522916cdeb46cccac0c629da0d0"
-FILES:${PN}-overview = "${libdir}/geany/overview.so ${datadir}/${PN}/overview"
-
-PLUGINS += "${PN}-pairtaghighlighter"
-LICENSE:${PN}-pairtaghighlighter = "BSD-2-Clause"
-LIC_FILES_CHKSUM += "file://pairtaghighlighter/COPYING;md5=d6d927525a612b3a8dbebc4b2e9b47c1"
-FILES:${PN}-pairtaghighlighter = "${libdir}/geany/pairtaghighlighter.so"
-
-PLUGINS += "${PN}-pohelper"
-LICENSE:${PN}-pohelper = "GPLv3"
-LIC_FILES_CHKSUM += "file://pohelper/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-FILES:${PN}-pohelper = "${datadir}/${BPN}/pohelper ${libdir}/geany/pohelper.so"
-
-PLUGINS += "${PN}-pretty-printer"
-LIC_FILES_CHKSUM += "file://pretty-printer/src/PrettyPrinter.c;beginline=1;endline=17;md5=1665115c2fadb17c1b53cdb4e43b2440"
-FILES:${PN}-pretty-printer = "${libdir}/geany/pretty-printer.so"
-
-PLUGINS += "${PN}-projectorganizer"
-LIC_FILES_CHKSUM += "file://projectorganizer/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES:${PN}-projectorganizer = "${libdir}/geany/projectorganizer.so"
-
-PLUGINS += "${PN}-scope"
-LIC_FILES_CHKSUM += "file://scope/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES:${PN}-scope = "${datadir}/${BPN}/scope ${libdir}/geany/scope.so"
-
-PLUGINS += "${PN}-sendmail"
-LIC_FILES_CHKSUM += "file://sendmail/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES:${PN}-sendmail = "${libdir}/geany/sendmail.so"
-
-PLUGINS += "${PN}-shiftcolumn"
-LIC_FILES_CHKSUM += "file://shiftcolumn/COPYING;md5=751419260aa954499f7abaabaa882bbe"
-FILES:${PN}-shiftcolumn = "${libdir}/geany/shiftcolumn.so"
-
-PLUGINS += "${PN}-spellcheck"
-LIC_FILES_CHKSUM += "file://spellcheck/COPYING;md5=4325afd396febcb659c36b49533135d4"
-FILES:${PN}-spellcheck = "${libdir}/geany/spellcheck.so"
-
-PLUGINS += "${PN}-tableconvert"
-LIC_FILES_CHKSUM += "file://tableconvert/COPYING;md5=6753686878d090a1f3f9445661d3dfbc"
-FILES:${PN}-tableconvert = "${libdir}/geany/tableconvert.so"
-
-PLUGINS += "${PN}-treebrowser"
-LIC_FILES_CHKSUM += "file://treebrowser/README;beginline=67;endline=67;md5=1f17f0f2abb88e0fa0f1b342112d871c"
-FILES:${PN}-treebrowser = "${libdir}/geany/treebrowser.so"
-
-PLUGINS += "${PN}-updatechecker"
-LIC_FILES_CHKSUM += "file://updatechecker/COPYING;md5=4325afd396febcb659c36b49533135d4"
-FILES:${PN}-updatechecker = "${libdir}/geany/updatechecker.so"
-
-PLUGINS += "${PN}-vimode"
-LIC_FILES_CHKSUM += "file://vimode/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES:${PN}-vimode = "${libdir}/geany/vimode.so"
-
-# no webkit - lasts ages and is not properly detected
-EXTRA_OECONF += " --disable-webhelper"
-#PLUGINS += "${PN}-webhelper"
-#LIC_FILES_CHKSUM += "file://webhelper/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-#LICENSE:${PN}-webhelper = "GPLv3"
-#FILES:${PN}-webhelper = "${libdir}/geany/webhelper.so"
-
-PLUGINS += "${PN}-workbench"
-LIC_FILES_CHKSUM += "file://workbench/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES:${PN}-workbench = "${libdir}/geany/workbench.so"
-
-PLUGINS += "${PN}-xmlsnippets"
-LIC_FILES_CHKSUM += "file://xmlsnippets/COPYING;md5=4325afd396febcb659c36b49533135d4"
-FILES:${PN}-xmlsnippets = "${libdir}/geany/xmlsnippets.so"
-
-PACKAGES =+ "${PN}-common ${PLUGINS}"
-FILES:${PN}-common = "${libdir}/libgeanypluginutils${SOLIBS}"
-
-# geany-plugins is meta package for all plugins
-RDEPENDS:${PN} = "${PLUGINS}"
-ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.38.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.38.bb
new file mode 100644
index 0000000..16dd71c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.38.bb
@@ -0,0 +1,245 @@
+DESCRIPTION = "A fast and lightweight IDE"
+HOMEPAGE = "http://plugins.geany.org/"
+
+LICENSE_DEFAULT = "GPLv2"
+LICENSE = "${LICENSE_DEFAULT} & BSD-2-Clause & GPLv3"
+
+python () {
+    for plugin in d.getVar('PLUGINS').split():
+        if 'LICENSE:%s' % plugin not in d:
+            d.setVar('LICENSE:' + plugin, '${LICENSE_DEFAULT}')
+}
+
+DEPENDS = " \
+    vala-native \
+    fribidi \
+    geany \
+    libxml2 \
+    libsoup-2.4 \
+    enchant2 \
+    intltool-native \
+    libassuan \
+    gpgme \
+    vte \
+    libgit2 \
+"
+
+inherit features_check autotools pkgconfig gtk-icon-cache
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = " \
+    https://plugins.geany.org/${BPN}/${BP}.tar.bz2 \
+    file://0001-Use-pkg-config-to-find-gpgme.patch \
+"
+SRC_URI[sha256sum] = "1c578a7ebb390aa8882f195acd3d8da3ceb73925d291b28dec90cd3e5fd20586"
+
+do_configure:prepend() {
+    rm -f ${S}/build/cache/glib-gettext.m4
+}
+
+FILES:${PN} += "${datadir}/icons"
+FILES:${PN}-dev += "${libdir}/geany/*.la ${libdir}/${BPN}/*/*.la"
+
+PLUGINS += "${PN}-addons"
+LIC_FILES_CHKSUM += "file://addons/COPYING;md5=4325afd396febcb659c36b49533135d4"
+FILES:${PN}-addons = "${libdir}/geany/addons.so"
+
+PLUGINS += "${PN}-autoclose"
+LIC_FILES_CHKSUM += "file://autoclose/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES:${PN}-autoclose = "${libdir}/geany/autoclose.so"
+
+PLUGINS += "${PN}-automark"
+LIC_FILES_CHKSUM += "file://automark/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES:${PN}-automark = "${libdir}/geany/automark.so"
+
+PLUGINS += "${PN}-codenav"
+LIC_FILES_CHKSUM += "file://codenav/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES:${PN}-codenav = "${libdir}/geany/codenav.so"
+
+PLUGINS += "${PN}-commander"
+LIC_FILES_CHKSUM += "file://commander/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+LICENSE:${PN}-commander = "GPLv3"
+FILES:${PN}-commander = "${libdir}/geany/commander.so"
+
+# | checking whether the GTK version in use is compatible with plugin Debugger... no
+EXTRA_OECONF += "--disable-debugger"
+#PLUGINS += "${PN}-debugger"
+#LIC_FILES_CHKSUM += "file://debugger/COPYING;md5=4325afd396febcb659c36b49533135d4"
+#FILES:${PN}-debugger = "${libdir}/geany/debugger.so ${datadir}/${PN}/debugger"
+
+PLUGINS += "${PN}-defineformat"
+LIC_FILES_CHKSUM += "file://defineformat/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES:${PN}-defineformat = "${libdir}/geany/defineformat.so"
+
+# no gnome devhelp in some common layer
+EXTRA_OECONF += "--disable-devhelp"
+#PLUGINS += "${PN}-devhelp"
+#LIC_FILES_CHKSUM += "file://devhelp/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+#LICENSE:${PN}-devhelp = "GPLv3"
+#FILES:${PN}-devhelp = "${libdir}/geany/devhelp.so"
+
+PLUGINS += "${PN}-geanyctags"
+LIC_FILES_CHKSUM += "file://geanyctags/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-geanyctags = "${libdir}/geany/geanyctags.so"
+
+PLUGINS += "${PN}-geanydoc"
+LIC_FILES_CHKSUM += "file://geanydoc/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+LICENSE:${PN}-geanydoc = "GPLv3"
+FILES:${PN}-geanydoc = "${libdir}/geany/geanydoc.so"
+
+PLUGINS += "${PN}-geanyextrasel"
+LIC_FILES_CHKSUM += "file://geanyextrasel/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-geanyextrasel = "${libdir}/geany/geanyextrasel.so"
+
+PLUGINS += "${PN}-geanyinsertnum"
+LIC_FILES_CHKSUM += "file://geanyinsertnum/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-geanyinsertnum = "${libdir}/geany/geanyinsertnum.so"
+
+# no lua: max supported version is 5.2
+EXTRA_OECONF += "--disable-geanylua"
+#PLUGINS += "${PN}-geanylua"
+#LIC_FILES_CHKSUM += "file://geanylua/COPYING;md5=4325afd396febcb659c36b49533135d4"
+#FILES:${PN}-geanylua = "${libdir}/geany/geanylua.so ${libdir}/${PN}/geanylua/*.so"
+
+PLUGINS += "${PN}-geanymacro"
+LIC_FILES_CHKSUM += "file://geanymacro/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-geanymacro = "${libdir}/geany/geanymacro.so"
+
+PLUGINS += "${PN}-geanyminiscript"
+LIC_FILES_CHKSUM += "file://geanyminiscript/COPYING;md5=4325afd396febcb659c36b49533135d4"
+FILES:${PN}-geanyminiscript = "${libdir}/geany/geanyminiscript.so"
+
+PLUGINS += "${PN}-geanynumberedbookmarks"
+LIC_FILES_CHKSUM += "file://geanynumberedbookmarks/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-geanynumberedbookmarks = "${libdir}/geany/geanynumberedbookmarks.so"
+
+PLUGINS += "${PN}-geanypg"
+LIC_FILES_CHKSUM += "file://geanypg/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+FILES:${PN}-geanypg = "${libdir}/geany/geanypg.so"
+
+PLUGINS += "${PN}-geanyprj"
+LIC_FILES_CHKSUM += "file://geanyprj/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+LICENSE:${PN}-geanyprj = "GPLv3"
+FILES:${PN}-geanyprj = "${libdir}/geany/geanyprj.so"
+
+#PLUGINS += "${PN}-geanypy"
+#LIC_FILES_CHKSUM += "file://geanypy/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+#FILES:${PN}-geanypy = "${libdir}/geany/geanypy.so"
+
+PLUGINS += "${PN}-geanyvc"
+LIC_FILES_CHKSUM += "file://geanyvc/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-geanyvc = "${libdir}/geany/geanyvc.so"
+
+PLUGINS += "${PN}-geniuspaste"
+LIC_FILES_CHKSUM += "file://geniuspaste/COPYING;md5=bfc203269f8862ebfc1198cdc809a95a"
+FILES:${PN}-geniuspaste = "${libdir}/geany/geniuspaste.so ${datadir}/${PN}/geniuspaste"
+
+PLUGINS += "${PN}-git-changebar"
+LIC_FILES_CHKSUM += "file://git-changebar/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+LICENSE:${PN}-git-changebar = "GPLv3"
+FILES:${PN}-git-changebar = "${datadir}/${BPN}/git-changebar ${libdir}/geany/git-changebar.so"
+
+PLUGINS += "${PN}-keyrecord"
+LIC_FILES_CHKSUM += "file://keyrecord/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES:${PN}-keyrecord = "${libdir}/geany/keyrecord.so"
+
+PLUGINS += "${PN}-latex"
+LIC_FILES_CHKSUM += "file://latex/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-latex = "${libdir}/geany/latex.so"
+
+PLUGINS += "${PN}-lineoperations"
+LIC_FILES_CHKSUM += "file://lineoperations/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-lineoperations = "${libdir}/geany/lineoperations.so"
+
+PLUGINS += "${PN}-lipsum"
+LIC_FILES_CHKSUM += "file://lipsum/COPYING;md5=4325afd396febcb659c36b49533135d4"
+FILES:${PN}-lipsum = "${libdir}/geany/lipsum.so"
+
+# no markdown - avoid floating dependencies
+EXTRA_OECONF += "--disable-peg-markdown"
+#PLUGINS += "${PN}-markdown"
+#LIC_FILES_CHKSUM += "file://markdown/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+#FILES:${PN}-markdown = "${libdir}/geany/markdown.so"
+
+# | checking whether the GTK version in use is compatible with plugin multiterm... no
+EXTRA_OECONF += "--disable-multiterm"
+#PLUGINS += "${PN}-multiterm"
+#LIC_FILES_CHKSUM += "file://multiterm/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+#FILES:${PN}-multiterm = "${libdir}/geany/multiterm.so"
+
+PLUGINS += "${PN}-overview"
+LIC_FILES_CHKSUM += "file://overview/overview/overviewplugin.c;beginline=4;endline=20;md5=1aa33522916cdeb46cccac0c629da0d0"
+FILES:${PN}-overview = "${libdir}/geany/overview.so ${datadir}/${PN}/overview"
+
+PLUGINS += "${PN}-pairtaghighlighter"
+LICENSE:${PN}-pairtaghighlighter = "BSD-2-Clause"
+LIC_FILES_CHKSUM += "file://pairtaghighlighter/COPYING;md5=d6d927525a612b3a8dbebc4b2e9b47c1"
+FILES:${PN}-pairtaghighlighter = "${libdir}/geany/pairtaghighlighter.so"
+
+PLUGINS += "${PN}-pohelper"
+LICENSE:${PN}-pohelper = "GPLv3"
+LIC_FILES_CHKSUM += "file://pohelper/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+FILES:${PN}-pohelper = "${datadir}/${BPN}/pohelper ${libdir}/geany/pohelper.so"
+
+PLUGINS += "${PN}-pretty-printer"
+LIC_FILES_CHKSUM += "file://pretty-printer/src/PrettyPrinter.c;beginline=1;endline=17;md5=1665115c2fadb17c1b53cdb4e43b2440"
+FILES:${PN}-pretty-printer = "${libdir}/geany/pretty-printer.so"
+
+PLUGINS += "${PN}-projectorganizer"
+LIC_FILES_CHKSUM += "file://projectorganizer/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-projectorganizer = "${libdir}/geany/projectorganizer.so"
+
+PLUGINS += "${PN}-scope"
+LIC_FILES_CHKSUM += "file://scope/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-scope = "${datadir}/${BPN}/scope ${libdir}/geany/scope.so"
+
+PLUGINS += "${PN}-sendmail"
+LIC_FILES_CHKSUM += "file://sendmail/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-sendmail = "${libdir}/geany/sendmail.so"
+
+PLUGINS += "${PN}-shiftcolumn"
+LIC_FILES_CHKSUM += "file://shiftcolumn/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES:${PN}-shiftcolumn = "${libdir}/geany/shiftcolumn.so"
+
+PLUGINS += "${PN}-spellcheck"
+LIC_FILES_CHKSUM += "file://spellcheck/COPYING;md5=4325afd396febcb659c36b49533135d4"
+FILES:${PN}-spellcheck = "${libdir}/geany/spellcheck.so"
+
+PLUGINS += "${PN}-tableconvert"
+LIC_FILES_CHKSUM += "file://tableconvert/COPYING;md5=6753686878d090a1f3f9445661d3dfbc"
+FILES:${PN}-tableconvert = "${libdir}/geany/tableconvert.so"
+
+PLUGINS += "${PN}-treebrowser"
+LIC_FILES_CHKSUM += "file://treebrowser/README;beginline=67;endline=67;md5=1f17f0f2abb88e0fa0f1b342112d871c"
+FILES:${PN}-treebrowser = "${libdir}/geany/treebrowser.so"
+
+PLUGINS += "${PN}-updatechecker"
+LIC_FILES_CHKSUM += "file://updatechecker/COPYING;md5=4325afd396febcb659c36b49533135d4"
+FILES:${PN}-updatechecker = "${libdir}/geany/updatechecker.so"
+
+PLUGINS += "${PN}-vimode"
+LIC_FILES_CHKSUM += "file://vimode/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-vimode = "${libdir}/geany/vimode.so"
+
+# no webkit - lasts ages and is not properly detected
+EXTRA_OECONF += " --disable-webhelper"
+#PLUGINS += "${PN}-webhelper"
+#LIC_FILES_CHKSUM += "file://webhelper/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+#LICENSE:${PN}-webhelper = "GPLv3"
+#FILES:${PN}-webhelper = "${libdir}/geany/webhelper.so"
+
+PLUGINS += "${PN}-workbench"
+LIC_FILES_CHKSUM += "file://workbench/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-workbench = "${libdir}/geany/workbench.so"
+
+PLUGINS += "${PN}-xmlsnippets"
+LIC_FILES_CHKSUM += "file://xmlsnippets/COPYING;md5=4325afd396febcb659c36b49533135d4"
+FILES:${PN}-xmlsnippets = "${libdir}/geany/xmlsnippets.so"
+
+PACKAGES =+ "${PN}-common ${PLUGINS}"
+FILES:${PN}-common = "${libdir}/libgeanypluginutils${SOLIBS}"
+
+# geany-plugins is meta package for all plugins
+RDEPENDS:${PN} = "${PLUGINS}"
+ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.37.1.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.37.1.bb
deleted file mode 100644
index f039a75..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.37.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A fast and lightweight IDE"
-HOMEPAGE = "http://www.geany.org/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bd7b2c994af21d318bd2cd3b3f80c2d5"
-
-DEPENDS = "gtk+3 libxml-parser-perl-native python3-docutils-native intltool-native"
-
-inherit features_check autotools pkgconfig perlnative gettext mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "https://download.geany.org/${BP}.tar.bz2 \
-           file://0001-configure-Upgrade-to-a-modern-Gettext.patch \
-          "
-SRC_URI[sha256sum] = "18c5756444c1d8bcd737c8ecfd4ef0b3607c924fc02560d4e8b78f6121531a18"
-
-FILES:${PN} += "${datadir}/icons"
-
-EXTRA_OECONF = "--disable-html-docs"
-
-RRECOMMENDS:${PN} += "source-code-pro-fonts"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.38.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.38.bb
new file mode 100644
index 0000000..33d0870
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.38.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A fast and lightweight IDE"
+HOMEPAGE = "http://www.geany.org/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bd7b2c994af21d318bd2cd3b3f80c2d5"
+
+DEPENDS = "gtk+3 libxml-parser-perl-native python3-docutils-native intltool-native"
+
+inherit features_check autotools pkgconfig perlnative gettext mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "https://download.geany.org/${BP}.tar.bz2 \
+           file://0001-configure-Upgrade-to-a-modern-Gettext.patch \
+          "
+SRC_URI[sha256sum] = "abff176e4d48bea35ee53037c49c82f90b6d4c23e69aed6e4a5ca8ccd3aad546"
+
+FILES:${PN} += "${datadir}/icons"
+
+EXTRA_OECONF = "--disable-html-docs"
+
+RRECOMMENDS:${PN} += "source-code-pro-fonts"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.41.0.bb b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.41.0.bb
deleted file mode 100644
index f961c53..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.41.0.bb
+++ /dev/null
@@ -1,87 +0,0 @@
-DESCRIPTION = "A high performance, open source, general-purpose RPC framework. \
-Provides gRPC libraries for multiple languages written on top of shared C core library \
-(C++, Node.js, Python, Ruby, Objective-C, PHP, C#)"
-HOMEPAGE = "https://github.com/grpc/grpc"
-SECTION = "libs"
-LICENSE = "Apache-2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-DEPENDS = "c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl libnsl2 abseil-cpp re2"
-DEPENDS:append:class-target = " googletest grpc-native "
-DEPENDS:append:class-nativesdk = " grpc-native "
-
-PACKAGE_BEFORE_PN = "${PN}-compiler"
-
-RDEPENDS:${PN}-compiler = "${PN}"
-RDEPENDS:${PN}-dev:class_native += "${PN}-compiler"
-# Configuration above allows to cross-compile gRPC applications
-# In order to compile applications on the target, use the dependency below
-# Both dependencies are mutually exclusive
-# RDEPENDS:${PN}-dev += "${PN}-compiler"
-
-S = "${WORKDIR}/git"
-SRCREV_grpc = "fc662b7964384b701af5bd3ce6994d2180080eb4"
-BRANCH = "v1.41.x"
-SRC_URI = "git://github.com/grpc/grpc.git;protocol=https;name=grpc;branch=${BRANCH} \
-           file://0001-cmake-revert-db88fb0ee826e73323e06ac6166ac038ee71f6a.patch \
-           file://0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch \
-           "
-# Fixes build with older compilers 4.8 especially on ubuntu 14.04
-CXXFLAGS:append:class-native = " -Wl,--no-as-needed"
-
-inherit cmake pkgconfig
-
-EXTRA_OECMAKE = " \
-    -DgRPC_CARES_PROVIDER=package \
-    -DgRPC_ZLIB_PROVIDER=package \
-    -DgRPC_SSL_PROVIDER=package \
-    -DgRPC_PROTOBUF_PROVIDER=package \
-    -DgRPC_ABSL_PROVIDER=package \
-    -DgRPC_RE2_PROVIDER=package \
-    -DgRPC_INSTALL=ON \
-    -DCMAKE_CROSSCOMPILING=ON \
-    -DgRPC_INSTALL_LIBDIR=${baselib} \
-    -DgRPC_INSTALL_CMAKEDIR=${baselib}/cmake/${BPN} \
-    "
-
-PACKAGECONFIG ??= "cpp shared"
-PACKAGECONFIG_class-target ?= "shared"
-PACKAGECONFIG[cpp] = "-DgRPC_BUILD_GRPC_CPP_PLUGIN=ON,-DgRPC_BUILD_GRPC_CPP_PLUGIN=OFF"
-PACKAGECONFIG[csharp] = "-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=ON,-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF"
-PACKAGECONFIG[node] = "-DgRPC_BUILD_GRPC_NODE_PLUGIN=ON,-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF"
-PACKAGECONFIG[objective-c] = "-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=ON,-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF"
-PACKAGECONFIG[php] = "-DgRPC_BUILD_GRPC_PHP_PLUGIN=ON,-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF"
-PACKAGECONFIG[python] = "-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=ON,-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF"
-PACKAGECONFIG[ruby] = "-DgRPC_BUILD_GRPC_RUBY_PLUGIN=ON,-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF"
-PACKAGECONFIG[protobuf-lite] = "-DgRPC_USE_PROTO_LITE=ON,-DgRPC_USE_PROTO_LITE=OFF,protobuf-lite"
-PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
-
-do_configure:prepend() {
-    sed -i -e "s#lib/pkgconfig/#${baselib}/pkgconfig/#g" ${S}/CMakeLists.txt
-}
-
-do_configure:prepend:mipsarch() {
-    sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
-}
-
-do_configure:prepend:powerpc() {
-    sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
-}
-
-do_configure:prepend:riscv64() {
-    sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
-}
-
-do_configure:prepend:riscv32() {
-    sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
-}
-
-do_configure:prepend:toolchain-clang:x86() {
-    sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
-}
-
-BBCLASSEXTEND = "native nativesdk"
-
-SYSROOT_DIRS_BLACKLIST:append:class-target = " ${baselib}/cmake/grpc"
-
-FILES:${PN}-compiler += "${bindir}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.41.1.bb b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.41.1.bb
new file mode 100644
index 0000000..8a9e762
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.41.1.bb
@@ -0,0 +1,87 @@
+DESCRIPTION = "A high performance, open source, general-purpose RPC framework. \
+Provides gRPC libraries for multiple languages written on top of shared C core library \
+(C++, Node.js, Python, Ruby, Objective-C, PHP, C#)"
+HOMEPAGE = "https://github.com/grpc/grpc"
+SECTION = "libs"
+LICENSE = "Apache-2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+DEPENDS = "c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl libnsl2 abseil-cpp re2"
+DEPENDS:append:class-target = " googletest grpc-native "
+DEPENDS:append:class-nativesdk = " grpc-native "
+
+PACKAGE_BEFORE_PN = "${PN}-compiler"
+
+RDEPENDS:${PN}-compiler = "${PN}"
+RDEPENDS:${PN}-dev:class_native += "${PN}-compiler"
+# Configuration above allows to cross-compile gRPC applications
+# In order to compile applications on the target, use the dependency below
+# Both dependencies are mutually exclusive
+# RDEPENDS:${PN}-dev += "${PN}-compiler"
+
+S = "${WORKDIR}/git"
+SRCREV_grpc = "635693ce624f3b3a89e5a764f0664958ef08b2b9"
+BRANCH = "v1.41.x"
+SRC_URI = "git://github.com/grpc/grpc.git;protocol=https;name=grpc;branch=${BRANCH} \
+           file://0001-cmake-revert-db88fb0ee826e73323e06ac6166ac038ee71f6a.patch \
+           file://0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch \
+           "
+# Fixes build with older compilers 4.8 especially on ubuntu 14.04
+CXXFLAGS:append:class-native = " -Wl,--no-as-needed"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE = " \
+    -DgRPC_CARES_PROVIDER=package \
+    -DgRPC_ZLIB_PROVIDER=package \
+    -DgRPC_SSL_PROVIDER=package \
+    -DgRPC_PROTOBUF_PROVIDER=package \
+    -DgRPC_ABSL_PROVIDER=package \
+    -DgRPC_RE2_PROVIDER=package \
+    -DgRPC_INSTALL=ON \
+    -DCMAKE_CROSSCOMPILING=ON \
+    -DgRPC_INSTALL_LIBDIR=${baselib} \
+    -DgRPC_INSTALL_CMAKEDIR=${baselib}/cmake/${BPN} \
+    "
+
+PACKAGECONFIG ??= "cpp shared"
+PACKAGECONFIG_class-target ?= "shared"
+PACKAGECONFIG[cpp] = "-DgRPC_BUILD_GRPC_CPP_PLUGIN=ON,-DgRPC_BUILD_GRPC_CPP_PLUGIN=OFF"
+PACKAGECONFIG[csharp] = "-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=ON,-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF"
+PACKAGECONFIG[node] = "-DgRPC_BUILD_GRPC_NODE_PLUGIN=ON,-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF"
+PACKAGECONFIG[objective-c] = "-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=ON,-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF"
+PACKAGECONFIG[php] = "-DgRPC_BUILD_GRPC_PHP_PLUGIN=ON,-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF"
+PACKAGECONFIG[python] = "-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=ON,-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF"
+PACKAGECONFIG[ruby] = "-DgRPC_BUILD_GRPC_RUBY_PLUGIN=ON,-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF"
+PACKAGECONFIG[protobuf-lite] = "-DgRPC_USE_PROTO_LITE=ON,-DgRPC_USE_PROTO_LITE=OFF,protobuf-lite"
+PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
+
+do_configure:prepend() {
+    sed -i -e "s#lib/pkgconfig/#${baselib}/pkgconfig/#g" ${S}/CMakeLists.txt
+}
+
+do_configure:prepend:mipsarch() {
+    sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
+}
+
+do_configure:prepend:powerpc() {
+    sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
+}
+
+do_configure:prepend:riscv64() {
+    sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
+}
+
+do_configure:prepend:riscv32() {
+    sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
+}
+
+do_configure:prepend:toolchain-clang:x86() {
+    sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
+SYSROOT_DIRS_BLACKLIST:append:class-target = " ${baselib}/cmake/grpc"
+
+FILES:${PN}-compiler += "${bindir}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.8.bb b/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.8.bb
index f16cced..47d872a 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.8.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.8.bb
@@ -8,7 +8,7 @@
 
 PV = "3.9.8+git${SRCPV}"
 
-SRC_URI = "git://github.com/iipeace/${BPN}"
+SRC_URI = "git://github.com/iipeace/${BPN};branch=master;protocol=https"
 SRCREV = "a502cd93b13235b7539557a91328de00b7c51bc3"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb b/meta-openembedded/meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb
index 5473eef..fad42e3 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb
@@ -9,7 +9,7 @@
 
 DEPENDS = "zlib boost libunwind elfutils"
 
-SRC_URI = "git://github.com/KDE/heaptrack.git;protocol=https \
+SRC_URI = "git://github.com/KDE/heaptrack.git;protocol=https;branch=master \
            file://0001-libheaptrack-Replace-__pid_t-with-pid_t.patch \
            file://0002-heaptrack_inject-Include-dlfcn.h-for-dlopen-dlclose.patch \
            file://0003-heaptrack_preload-Make-noexcept-attribute-conditiona.patch \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch b/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch
deleted file mode 100644
index 5b9afd9..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 86b4d398dbb95e2437b70eba3b30e995ec9be505 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 31 Aug 2017 20:47:50 -0700
-Subject: [PATCH] Fix printd formatting strings
-
-Fixes
-error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/ipfilter.c | 2 +-
- src/othptab.c  | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/ipfilter.c b/src/ipfilter.c
-index eb17ec7..8c76e4c 100644
---- a/src/ipfilter.c
-+++ b/src/ipfilter.c
-@@ -146,7 +146,7 @@ void gethostparams(struct hostparams *data, char *init_saddr, char *init_smask,
- 				snprintf(msgstr, 60,
- 					 "Invalid protocol input at or near token \"%s\"",
- 					 bptr);
--				tui_error(ANYKEY_MSG, msgstr);
-+				tui_error(ANYKEY_MSG, "%s", msgstr);
- 				doagain = 1;
- 			} else
- 				doagain = 0;
-diff --git a/src/othptab.c b/src/othptab.c
-index 142c9c2..fe395c2 100644
---- a/src/othptab.c
-+++ b/src/othptab.c
-@@ -410,7 +410,7 @@ void printothpentry(struct othptable *table, struct othptabent *entry,
- 				break;
- 			}
- 
--			sprintf(scratchpad, rarp_mac_addr);
-+			sprintf(scratchpad, "%s", rarp_mac_addr);
- 			strcat(msgstring, scratchpad);
- 			wattrset(table->othpwin, ARPATTR);
- 			break;
-@@ -485,7 +485,7 @@ void printothpentry(struct othptable *table, struct othptabent *entry,
- 		wattrset(table->othpwin, UNKNIPATTR);
- 		protptr = getprotobynumber(entry->protocol);
- 		if (protptr != NULL) {
--			sprintf(protname, protptr->p_aliases[0]);
-+			sprintf(protname, "%s", protptr->p_aliases[0]);
- 		} else {
- 			sprintf(protname, "IP protocol");
- 			unknown = 1;
--- 
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-make-Make-CC-weak-assignment.patch b/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-make-Make-CC-weak-assignment.patch
new file mode 100644
index 0000000..342c78f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-make-Make-CC-weak-assignment.patch
@@ -0,0 +1,44 @@
+From 223de708552b1ab00ac1a119e82e13deed573036 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Oct 2021 10:22:38 -0700
+Subject: [PATCH] make: Make CC weak assignment
+
+This ensures that if environment overrrides it then its respected, this
+helps cross-compiling cases
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/Makefile
++++ b/Makefile
+@@ -18,14 +18,14 @@ VERSION-FILE: FORCE
+ 	@$(SHELL_PATH) ./GEN-VERSION-FILE
+ -include VERSION-FILE
+ 
+-CFLAGS = -g -O2 -Wall -W -Werror=format-security
+-LDFLAGS =
++CFLAGS += -g -O2 -Wall -W -Werror=format-security
++LDFLAGS ?=
+ IPTRAF_CFLAGS := -std=gnu99 -D_GNU_SOURCE
+ ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS) $(IPTRAF_CFLAGS)
+ ALL_LDFLAGS = $(LDFLAGS)
+ STRIP ?= strip
+ 
+-prefix = $(HOME)
++prefix ?= $(HOME)
+ sbindir_relative = sbin
+ sbindir = $(prefix)/$(sbindir_relative)
+ mandir = $(prefix)/share/man
+@@ -39,7 +39,7 @@ pathsep = :
+ 
+ export prefix bindir sharedir sysconfdir gitwebdir localedir
+ 
+-CC = cc
++CC ?= cc
+ RM = rm -f
+ INSTALL = install
+ RPMBUILD = rpmbuild
diff --git a/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/iptraf-ng-tmpfiles.conf b/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/iptraf-ng-tmpfiles.conf
new file mode 100644
index 0000000..ebb9d67
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/iptraf-ng-tmpfiles.conf
@@ -0,0 +1,3 @@
+d /run/iptraf-ng 0755 root root -
+d /var/log/iptraf-ng 0755 root root -
+d /var/lib/iptraf-ng 0755 root root -
diff --git a/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch b/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch
index 65b92da..8704310 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch
@@ -2,11 +2,9 @@
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Upstream-Status: Pending
-Index: iptraf-ng-1.1.4/Makefile
-===================================================================
---- iptraf-ng-1.1.4.orig/Makefile
-+++ iptraf-ng-1.1.4/Makefile
-@@ -205,8 +205,8 @@ endif
+--- a/Makefile
++++ b/Makefile
+@@ -201,8 +201,8 @@ endif
  
  ifndef NCURSES_LDFLAGS
  ifdef NEEDS_NCURSES5
@@ -17,7 +15,7 @@
  	ifndef NO_PANEL
  		NCURSES_LDFLAGS += -lpanel
  	endif
-@@ -215,8 +215,8 @@ endif
+@@ -211,8 +211,8 @@ endif
  
  ifndef NCURSES_LDFLAGS
  ifdef NEEDS_NCURSESW5
@@ -26,9 +24,9 @@
 +	NCURSES_CFLAGS := $(shell p[k-config ncursesw --cflags 2>/dev/null)
 +	NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
  	ifndef NO_PANEL
- 		NCURSES_LDFLAGS += -lpanel
+ 		NCURSES_LDFLAGS += -lpanelw
  	endif
-@@ -225,8 +225,8 @@ endif
+@@ -221,8 +221,8 @@ endif
  
  ifndef NCURSES_LDFLAGS
  ifdef NEEDS_NCURSES6
@@ -39,7 +37,7 @@
  	ifndef NO_PANEL
  		NCURSES_LDFLAGS += -lpanel
  	endif
-@@ -235,8 +235,8 @@ endif
+@@ -231,8 +231,8 @@ endif
  
  ifndef NCURSES_LDFLAGS
  ifdef NEEDS_NCURSESW6
@@ -48,34 +46,45 @@
 +	NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
 +	NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
  	ifndef NO_PANEL
- 		NCURSES_LDFLAGS += -lpanel
+ 		NCURSES_LDFLAGS += -lpanelw
  	endif
-@@ -246,17 +246,17 @@ endif
+@@ -241,27 +241,27 @@ endif
+ 
  # try find ncuses by autodetect
  ifndef NCURSES_LDFLAGS
- 	ifneq ($(shell ncursesw6-config --libs 2>/dev/null),)
+-	ifneq ($(shell ncursesw6-config --libs 2>/dev/null),)
 -		NCURSES_CFLAGS := $(shell ncursesw6-config --cflags 2>/dev/null)
 -		NCURSES_LDFLAGS := $(shell ncursesw6-config --libs 2>/dev/null)
++	ifneq ($(shell pkg-config ncursesw --libs 2>/dev/null),)
++		NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
++		NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
+ 		ifndef NO_PANEL
+ 			NCURSES_LDFLAGS += -lpanelw
+ 		endif
 -	else ifneq ($(shell ncurses6-config --libs 2>/dev/null),)
 -		NCURSES_CFLAGS := $(shell ncurses6-config --cflags 2>/dev/null)
 -		NCURSES_LDFLAGS := $(shell ncurses6-config --libs 2>/dev/null)
--	else ifneq ($(shell ncursesw5-config --libs 2>/dev/null),)
--		NCURSES_CFLAGS := $(shell ncursesw5-config --cflags 2>/dev/null)
--		NCURSES_LDFLAGS := $(shell ncursesw5-config --libs 2>/dev/null)
--	else ifneq ($(shell ncurses5-config --libs 2>/dev/null),)
--		NCURSES_CFLAGS := $(shell ncurses5-config --cflags 2>/dev/null)
--		NCURSES_LDFLAGS := $(shell ncurses5-config --libs 2>/dev/null)
-+		NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
-+		NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
-+	else ifneq ($(shell pkg-config ncurses --libs 2>/dev/null),)
-+		NCURSES_CFLAGS := $(shell pkg-config ncurses --cflags 2>/dev/null)
-+		NCURSES_LDFLAGS := $(shell pkg-config ncurses --libs 2>/dev/null)
 +	else ifneq ($(shell pkg-config ncursesw --libs 2>/dev/null),)
 +		NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
 +		NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
-+	else ifneq ($(shell pkg-config ncurses --libs 2>/dev/null),)
-+		NCURSES_CFLAGS := $(shell pkg-config ncurses --cflags 2>/dev/null)
-+		NCURSES_LDFLAGS := $(shell pkg-config ncurses --libs 2>/dev/null)
- 	endif
- 
- 	ifneq ($(NCURSES_LDFLAGS),)
+ 		ifndef NO_PANEL
+ 			NCURSES_LDFLAGS += -lpanel
+ 		endif
+-	else ifneq ($(shell ncursesw5-config --libs 2>/dev/null),)
+-		NCURSES_CFLAGS := $(shell ncursesw5-config --cflags 2>/dev/null)
+-		NCURSES_LDFLAGS := $(shell ncursesw5-config --libs 2>/dev/null)
++	else ifneq ($(shell pkg-config ncursesw --libs 2>/dev/null),)
++		NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
++		NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
+ 		ifndef NO_PANEL
+ 			NCURSES_LDFLAGS += -lpanelw
+ 		endif
+-	else ifneq ($(shell ncurses5-config --libs 2>/dev/null),)
+-		NCURSES_CFLAGS := $(shell ncurses5-config --cflags 2>/dev/null)
+-		NCURSES_LDFLAGS := $(shell ncurses5-config --libs 2>/dev/null)
++	else ifneq ($(shell pkg-config ncursesw --libs 2>/dev/null),)
++		NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
++		NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
+ 		ifndef NO_PANEL
+ 			NCURSES_LDFLAGS += -lpanel
+ 		endif
diff --git a/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb b/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb
deleted file mode 100644
index 6b18953..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (C) 2017 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "A console-based network monitoring utility"
-DESCRIPTION = "IPTraf-ng is a console-based network monitoring utility.  IPTraf gathers \
-data like TCP connection packet and byte counts, interface statistics \
-and activity indicators, TCP/UDP traffic breakdowns, and LAN station \
-packet and byte counts.  IPTraf-ng features include an IP traffic monitor \
-which shows TCP flag information, packet and byte counts, ICMP \
-details, OSPF packet types, and oversized IP packet warnings; \
-interface statistics showing IP, TCP, UDP, ICMP, non-IP and other IP \
-packet counts, IP checksum errors, interface activity and packet size \
-counts; a TCP and UDP service monitor showing counts of incoming and \
-outgoing packets for common TCP and UDP application ports, a LAN \
-statistics module that discovers active hosts and displays statistics \
-about their activity; TCP, UDP and other protocol display filters so \
-you can view just the traffic you want; logging; support for Ethernet, \
-FDDI, ISDN, SLIP, PPP, and loopback interfaces; and utilization of the \
-built-in raw socket interface of the Linux kernel, so it can be used \
-on a wide variety of supported network cards."
-
-HOMEPAGE = "https://fedorahosted.org/iptraf-ng/"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e2b3850593b899b1a17594ed4cc4c731"
-DEPENDS = "ncurses"
-
-SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/iptraf-ng/iptraf-ng-1.1.4.tar.gz/e0f8df3b7baf2b5106709abc4f8c029a/${BP}.tar.gz \
-           file://ncurses-config.patch \
-           file://0001-Fix-printd-formatting-strings.patch \
-           "
-SRC_URI[md5sum] = "e0f8df3b7baf2b5106709abc4f8c029a"
-SRC_URI[sha256sum] = "16b9b05bf5d3725d86409b901696639ad46944d02de6def87b1ceae5310dd35c"
-
-inherit autotools-brokensep pkgconfig
-
-CFLAGS += "-D_GNU_SOURCE"
-
-PROVIDES = "iptraf"
-RPROVIDES:${PN} += "iptraf"
-RREPLACES:${PN} += "iptraf"
-RCONFLICTS:${PN} += "iptraf"
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.2.1.bb b/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.2.1.bb
new file mode 100644
index 0000000..27a0f44
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.2.1.bb
@@ -0,0 +1,53 @@
+# Copyright (C) 2017 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "A console-based network monitoring utility"
+DESCRIPTION = "IPTraf-ng is a console-based network monitoring utility.  IPTraf gathers \
+data like TCP connection packet and byte counts, interface statistics \
+and activity indicators, TCP/UDP traffic breakdowns, and LAN station \
+packet and byte counts.  IPTraf-ng features include an IP traffic monitor \
+which shows TCP flag information, packet and byte counts, ICMP \
+details, OSPF packet types, and oversized IP packet warnings; \
+interface statistics showing IP, TCP, UDP, ICMP, non-IP and other IP \
+packet counts, IP checksum errors, interface activity and packet size \
+counts; a TCP and UDP service monitor showing counts of incoming and \
+outgoing packets for common TCP and UDP application ports, a LAN \
+statistics module that discovers active hosts and displays statistics \
+about their activity; TCP, UDP and other protocol display filters so \
+you can view just the traffic you want; logging; support for Ethernet, \
+FDDI, ISDN, SLIP, PPP, and loopback interfaces; and utilization of the \
+built-in raw socket interface of the Linux kernel, so it can be used \
+on a wide variety of supported network cards."
+
+HOMEPAGE = "https://fedorahosted.org/iptraf-ng/"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e2b3850593b899b1a17594ed4cc4c731"
+DEPENDS = "ncurses"
+
+SRC_URI = "https://src.fedoraproject.org/repo/pkgs/iptraf-ng/v${PV}.tar.gz/sha512/44d36fc92cdbf379f62cb63638663c3ee610225b9c28d60ee55e62e358f398a6b0db281129327b3472e45fb553ee3dd605af09c129f2233f8839ae3dbd799384/v${PV}.tar.gz \
+           file://iptraf-ng-tmpfiles.conf \
+           file://ncurses-config.patch \
+           file://0001-make-Make-CC-weak-assignment.patch \
+           "
+SRC_URI[sha256sum] = "9f5cef584065420dea1ba32c86126aede1fa9bd25b0f8362b0f9fd9754f00870"
+
+inherit pkgconfig
+
+CFLAGS += "-D_GNU_SOURCE"
+
+do_compile() {
+    oe_runmake
+}
+
+do_install() {
+    oe_runmake DESTDIR=${D} install
+    install -D -m 0644 -p ${S}/iptraf-ng-logrotate.conf ${D}${sysconfdir}/logrotate.d/iptraf-ng
+    install -Dm 0644 ${WORKDIR}/iptraf-ng-tmpfiles.conf ${D}${libdir}/tmpfiles.d/iptraf-ng-tmpfiles.conf
+}
+
+FILES:${PN} += "${libdir}/tmpfiles.d"
+PROVIDES = "iptraf"
+RPROVIDES:${PN} += "iptraf"
+RREPLACES:${PN} += "iptraf"
+RCONFLICTS:${PN} += "iptraf"
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jemalloc/files/0001-test-Disable-optimization-with-clang-for-aligned_all.patch b/meta-openembedded/meta-oe/recipes-devtools/jemalloc/files/0001-test-Disable-optimization-with-clang-for-aligned_all.patch
new file mode 100644
index 0000000..570202e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/jemalloc/files/0001-test-Disable-optimization-with-clang-for-aligned_all.patch
@@ -0,0 +1,33 @@
+From 3fe67deb9fcf0ae3c2ff31a9eccb6a0a9af33b9c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 14 Jan 2022 09:47:03 -0800
+Subject: [PATCH] test: Disable optimization with clang for aligned_alloc.c
+
+Clang crashes when using glibc 2.35, it works ok with older glibc or
+musl, so its very specific problem. Its reported here
+
+https://github.com/llvm/llvm-project/issues/52765
+
+Until it is fixed, workaround the build failure
+
+Upstream-Status: Inappropriate [Workaround]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ test/integration/aligned_alloc.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/test/integration/aligned_alloc.c b/test/integration/aligned_alloc.c
+index 4375b172..6513bdd9 100644
+--- a/test/integration/aligned_alloc.c
++++ b/test/integration/aligned_alloc.c
+@@ -1,5 +1,7 @@
+ #include "test/jemalloc_test.h"
+ 
++#pragma clang optimize off
++
+ #define MAXALIGN (((size_t)1) << 23)
+ 
+ /*
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jemalloc/jemalloc_5.2.1.bb b/meta-openembedded/meta-oe/recipes-devtools/jemalloc/jemalloc_5.2.1.bb
index 7cd06f1..8618c8c 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/jemalloc/jemalloc_5.2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/jemalloc/jemalloc_5.2.1.bb
@@ -11,13 +11,16 @@
 
 SECTION = "libs"
 
-LIC_FILES_CHKSUM = "file://README;md5=6900e4a158982e4c4715bf16aa54fa10"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ea061f8731d5e6a5761dfad951ef5f5f"
 
-SRC_URI = "git://github.com/jemalloc/jemalloc.git \
+SRC_URI = "git://github.com/jemalloc/jemalloc.git;branch=master;protocol=https \
            file://0001-Makefile.in-make-sure-doc-generated-before-install.patch \
            file://run-ptest \
 "
 
+# Workaround for https://github.com/llvm/llvm-project/issues/52765
+SRC_URI:append:libc-glibc:toolchain-clang = " file://0001-test-Disable-optimization-with-clang-for-aligned_all.patch "
+
 SRCREV = "ea6b3e973b477b8061e0076bb257dbd7f3faa756"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.6.bb b/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.6.bb
deleted file mode 100644
index bfaeed5..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.6.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Lightweight and flexible command-line JSON processor"
-DESCRIPTION = "jq is like sed for JSON data, you can use it to slice and \
-               filter and map and transform structured data with the same \
-               ease that sed, awk, grep and friends let you play with text."
-HOMEPAGE = "https://stedolan.github.io/jq/"
-BUGTRACKER = "https://github.com/stedolan/jq/issues"
-SECTION = "utils"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=15d03e360fa7399f76d5a4359fc72cbf"
-
-SRC_URI = "https://github.com/stedolan/${BPN}/releases/download/${BP}/${BP}.tar.gz"
-
-UPSTREAM_CHECK_URI = "https://github.com/stedolan/${BPN}/releases"
-UPSTREAM_CHECK_REGEX = "jq\-(?P<pver>(\d+\.\d+))(?!_\d+).tar.gz"
-
-SRC_URI[md5sum] = "e68fbd6a992e36f1ac48c99bbf825d6b"
-SRC_URI[sha256sum] = "5de8c8e29aaa3fb9cc6b47bb27299f271354ebb72514e3accadc7d38b5bbaa72"
-
-inherit autotools-brokensep
-
-PACKAGECONFIG ?= "oniguruma"
-
-PACKAGECONFIG[docs] = "--enable-docs,--disable-docs,ruby-native"
-PACKAGECONFIG[maintainer-mode] = "--enable-maintainer-mode,--disable-maintainer-mode,flex-native bison-native"
-PACKAGECONFIG[oniguruma] = "--with-oniguruma,--without-oniguruma,onig"
-
-OE_EXTRACONF += " \
-    --disable-valgrind \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jq/jq_git.bb b/meta-openembedded/meta-oe/recipes-devtools/jq/jq_git.bb
new file mode 100644
index 0000000..d0c70da
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/jq/jq_git.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Lightweight and flexible command-line JSON processor"
+DESCRIPTION = "jq is like sed for JSON data, you can use it to slice and \
+               filter and map and transform structured data with the same \
+               ease that sed, awk, grep and friends let you play with text."
+HOMEPAGE = "https://stedolan.github.io/jq/"
+BUGTRACKER = "https://github.com/stedolan/jq/issues"
+SECTION = "utils"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2814b59e00e7918c864fa3b6bbe049b4"
+
+PV = "1.6+git${SRCPV}"
+SRC_URI = "git://github.com/stedolan/jq;protocol=https;branch=master"
+SRCREV = "a9f97e9e61a910a374a5d768244e8ad63f407d3e"
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep
+
+PACKAGECONFIG ?= "oniguruma"
+
+PACKAGECONFIG[docs] = "--enable-docs,--disable-docs,ruby-native"
+PACKAGECONFIG[maintainer-mode] = "--enable-maintainer-mode,--disable-maintainer-mode,flex-native bison-native"
+PACKAGECONFIG[oniguruma] = "--with-oniguruma,--without-oniguruma,onig"
+
+OE_EXTRACONF += " \
+    --disable-valgrind \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.1.0.bb b/meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.1.0.bb
index 7f6c34e..4a8de5f 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.1.0.bb
@@ -2,7 +2,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c441d022da1b1663c70181a32225d006"
 
-SRC_URI = "git://github.com/pboettch/json-schema-validator"
+SRC_URI = "git://github.com/pboettch/json-schema-validator;branch=master;protocol=https"
 SRCREV = "27fc1d094503623dfe39365ba82581507524545c"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.4.bb b/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.4.bb
deleted file mode 100644
index a02ff4a..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.4.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "JSON C++ lib used to read and write json file."
-DESCRIPTION = "Jsoncpp is an implementation of a JSON (http://json.org) reader \
-               and writer in C++. JSON (JavaScript Object Notation) is a \
-               lightweight data-interchange format. It is easy for humans to \
-               read and write. It is easy for machines to parse and generate."
-
-HOMEPAGE = "https://github.com/open-source-parsers/jsoncpp"
-
-SECTION = "libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fa2a23dd1dc6c139f35105379d76df2b"
-
-PE = "1"
-
-SRCREV = "9059f5cad030ba11d37818847443a53918c327b1"
-SRC_URI = "git://github.com/open-source-parsers/jsoncpp"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON -DBUILD_OBJECT_LIBS=OFF -DJSONCPP_WITH_TESTS=OFF"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.5.bb b/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.5.bb
new file mode 100644
index 0000000..c54dc94
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.5.bb
@@ -0,0 +1,25 @@
+SUMMARY = "JSON C++ lib used to read and write json file."
+DESCRIPTION = "Jsoncpp is an implementation of a JSON (http://json.org) reader \
+               and writer in C++. JSON (JavaScript Object Notation) is a \
+               lightweight data-interchange format. It is easy for humans to \
+               read and write. It is easy for machines to parse and generate."
+
+HOMEPAGE = "https://github.com/open-source-parsers/jsoncpp"
+
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5d73c165a0f9e86a1342f32d19ec5926"
+
+PE = "1"
+
+SRCREV = "5defb4ed1a4293b8e2bf641e16b156fb9de498cc"
+SRC_URI = "git://github.com/open-source-parsers/jsoncpp;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON -DBUILD_OBJECT_LIBS=OFF -DJSONCPP_WITH_TESTS=OFF"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.3.0.bb b/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.3.0.bb
index 586489b..43dc2e3 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.3.0.bb
@@ -9,7 +9,7 @@
 
 DEPENDS = "curl jsoncpp libmicrohttpd hiredis"
 
-SRC_URI = "git://github.com/cinemast/libjson-rpc-cpp \
+SRC_URI = "git://github.com/cinemast/libjson-rpc-cpp;branch=master;protocol=https \
 	   file://0001-Fix-build-with-libmicrohttpd.patch \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.9.0.bb b/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.9.0.bb
index 1664d63..a87dbf0 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.9.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.9.0.bb
@@ -14,7 +14,7 @@
 DEPENDS = "libgfortran"
 
 SRCREV = "6acc99d5f39130be7cec00fb835606042101a970"
-SRC_URI = "git://github.com/Reference-LAPACK/lapack.git;protocol=https"
+SRC_URI = "git://github.com/Reference-LAPACK/lapack.git;protocol=https;branch=master"
 S = "${WORKDIR}/git"
 
 EXTRA_OECMAKE = " -DBUILD_SHARED_LIBS=ON "
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ldns/ldns_1.7.1.bb b/meta-openembedded/meta-oe/recipes-devtools/ldns/ldns_1.7.1.bb
deleted file mode 100644
index 858614c..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/ldns/ldns_1.7.1.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "LDNS is a DNS library that facilitates DNS tool programming"
-HOMEPAGE = "https://nlnetlabs.nl/ldns"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=34330f15b2b4abbbaaa7623f79a6a019"
-
-SRC_URI = "https://www.nlnetlabs.nl/downloads/ldns/ldns-${PV}.tar.gz"
-SRC_URI[md5sum] = "166262a46995d9972aba417fd091acd5"
-SRC_URI[sha256sum] = "8ac84c16bdca60e710eea75782356f3ac3b55680d40e1530d7cea474ac208229"
-
-DEPENDS = "openssl"
-PNBLACKLIST[ldns] ?= "Needs porting to openssl 3.x"
-
-inherit autotools-brokensep
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[drill] = "--with-drill,--without-drill"
-
-EXTRA_OECONF = "--with-ssl=${STAGING_EXECPREFIXDIR} \
-                libtool=${TARGET_PREFIX}libtool"
-
-do_install:append() {
-    sed -e 's@[^ ]*-ffile-prefix-map=[^ "]*@@g' \
-        -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
-        -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
-        -i ${D}${libdir}/pkgconfig/*.pc
-}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ldns/ldns_1.8.1.bb b/meta-openembedded/meta-oe/recipes-devtools/ldns/ldns_1.8.1.bb
new file mode 100644
index 0000000..81e1c62
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/ldns/ldns_1.8.1.bb
@@ -0,0 +1,23 @@
+SUMMARY = "LDNS is a DNS library that facilitates DNS tool programming"
+HOMEPAGE = "https://nlnetlabs.nl/ldns"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=34330f15b2b4abbbaaa7623f79a6a019"
+
+SRC_URI = "https://www.nlnetlabs.nl/downloads/ldns/ldns-${PV}.tar.gz"
+SRC_URI[sha256sum] = "958229abce4d3aaa19a75c0d127666564b17216902186e952ca4aef47c6d7fa3"
+
+DEPENDS = "openssl"
+
+inherit autotools-brokensep
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[drill] = "--with-drill,--without-drill"
+
+EXTRA_OECONF = "--with-ssl=${STAGING_EXECPREFIXDIR}"
+
+do_install:append() {
+    sed -e 's@[^ ]*-ffile-prefix-map=[^ "]*@@g' \
+        -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
+        -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
+        -i ${D}${libdir}/pkgconfig/*.pc
+}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb b/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb
index b83e86a..2dc3776 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb
@@ -7,7 +7,7 @@
 LICENSE = "Artistic-1.0 | GPLv1+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=5b122a36d0f6dc55279a0ebc69f3c60b"
 
-SRC_URI = "git://github.com/hatukanezumi/sombok.git;protocol=https \
+SRC_URI = "git://github.com/hatukanezumi/sombok.git;protocol=https;branch=master \
            file://0001-configure.ac-fix-cross-compiling-issue.patch \
           "
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox_git.bb b/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox_git.bb
index 76d1c8b..872bdb6 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox_git.bb
@@ -13,7 +13,7 @@
 "
 
 SRC_URI = "\
-    git://git.openwrt.org/project/libubox.git \
+    git://git.openwrt.org/project/libubox.git;branch=master \
     file://0001-version-libraries.patch \
     file://fix-libdir.patch \
     file://0001-blobmsg-fix-array-out-of-bounds-GCC-10-warning.patch \
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 37e2ba6..b6fb1dc 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 \
+SRC_URI = "git://github.com/sparkleholic/ltrace.git;branch=master;protocol=http;protocol=https \
            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/luaposix/luaposix_35.1.bb b/meta-openembedded/meta-oe/recipes-devtools/luaposix/luaposix_35.1.bb
index d9f489b..f6578ca 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/luaposix/luaposix_35.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/luaposix/luaposix_35.1.bb
@@ -5,7 +5,7 @@
 
 DEPENDS += "lua-native lua virtual/crypt"
 
-SRC_URI = "git://github.com/luaposix/luaposix.git;branch=release-v${PV} \
+SRC_URI = "git://github.com/luaposix/luaposix.git;branch=release-v${PV};protocol=https \
 "
 SRCREV = "14043c5086ae738823a5dfbc9170d9e14193fbef"
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.4.2.bb b/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.4.2.bb
deleted file mode 100644
index 1fa916c..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.4.2.bb
+++ /dev/null
@@ -1,58 +0,0 @@
-SUMMARY = "Message Passing Interface (MPI) implementation"
-HOMEPAGE = "http://www.mpich.org/"
-SECTION = "devel"
-
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=bd4d7ab13df98988b1ca2a4e01c8c163"
-
-SRC_URI = "http://www.mpich.org/static/downloads/${PV}/mpich-${PV}.tar.gz"
-SRC_URI[sha256sum] = "5c19bea8b84e8d74cca5f047e82b147ff3fba096144270e3911ad623d6c587bf"
-
-RDEPENDS:${PN} += "bash perl libxml2"
-
-EXTRA_OECONF = "--enable-debuginfo \
-    --enable-fast \
-    --enable-shared  \
-    --with-pm=gforker  \
-    --disable-rpath \
-    --disable-f77 \
-    --disable-fc \
-    --disable-fortran \
-    --disable-cxx \
-    BASH_SHELL='${USRBINPATH}/env bash' \
-    PERL='${USRBINPATH}/env perl' \
-    --with-device=ch3:nemesis \
-    --with-rdmacm=no \
-    --disable-numa \
-"
-
-PACKAGECONFIG += " \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
-"
-PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--without-x,virtual/libx11"
-
-# libmpi.so needs symbols like __multf3 and somehow it does not respect --rtlib option passed by clang
-LDFLAGS:append:x86-64 = " -lgcc"
-LDFLAGS:append:x86 = " -lgcc"
-
-inherit autotools gettext pkgconfig
-
-do_configure() {
-    for d in confdb test/mpi test/mpi/confdb src/pm/hydra/confdb \
-        src/pm/hydra/tools/topo/hwloc/hwloc/config src/pm/hydra/mpl/confdb \
-        modules/yaksa/m4 modules/json-c modules/ucx test/mpi/dtpools/confdb \
-        src/mpl/confdb src/mpi/romio/confdb;  do
-        install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/$d
-        install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/$d
-    done
-#    cd ${S}
-#    autoupdate
-#    autoreconf --verbose --install --force
-#    cd ${B}
-    oe_runconf
-}
-
-do_install:append() {
-    sed -i 's,${S}/,,g' ${D}/${libdir}/libmpi.la
-    sed -i 's,${DEBUG_PREFIX_MAP},,g' ${D}/${libdir}/pkgconfig/mpich.pc
-}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.4.3.bb b/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.4.3.bb
new file mode 100644
index 0000000..52648eb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.4.3.bb
@@ -0,0 +1,58 @@
+SUMMARY = "Message Passing Interface (MPI) implementation"
+HOMEPAGE = "http://www.mpich.org/"
+SECTION = "devel"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=bd4d7ab13df98988b1ca2a4e01c8c163"
+
+SRC_URI = "http://www.mpich.org/static/downloads/${PV}/mpich-${PV}.tar.gz"
+SRC_URI[sha256sum] = "8154d89f3051903181018166678018155f4c2b6f04a9bb6fe9515656452c4fd7"
+
+RDEPENDS:${PN} += "bash perl libxml2"
+
+EXTRA_OECONF = "--enable-debuginfo \
+    --enable-fast \
+    --enable-shared  \
+    --with-pm=gforker  \
+    --disable-rpath \
+    --disable-f77 \
+    --disable-fc \
+    --disable-fortran \
+    --disable-cxx \
+    BASH_SHELL='${USRBINPATH}/env bash' \
+    PERL='${USRBINPATH}/env perl' \
+    --with-device=ch3:nemesis \
+    --with-rdmacm=no \
+    --disable-numa \
+"
+
+PACKAGECONFIG += " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+"
+PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--without-x,virtual/libx11"
+
+# libmpi.so needs symbols like __multf3 and somehow it does not respect --rtlib option passed by clang
+LDFLAGS:append:x86-64 = " -lgcc"
+LDFLAGS:append:x86 = " -lgcc"
+
+inherit autotools gettext pkgconfig
+
+do_configure() {
+    for d in confdb test/mpi test/mpi/confdb src/pm/hydra/confdb \
+        src/pm/hydra/tools/topo/hwloc/hwloc/config src/pm/hydra/mpl/confdb \
+        modules/yaksa/m4 modules/json-c modules/ucx test/mpi/dtpools/confdb \
+        src/mpl/confdb src/mpi/romio/confdb;  do
+        install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/$d
+        install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/$d
+    done
+#    cd ${S}
+#    autoupdate
+#    autoreconf --verbose --install --force
+#    cd ${B}
+    oe_runconf
+}
+
+do_install:append() {
+    sed -i 's,${S}/,,g' ${D}/${libdir}/libmpi.la
+    sed -i 's,${DEBUG_PREFIX_MAP},,g' ${D}/${libdir}/pkgconfig/mpich.pc
+}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_4.0.0.bb b/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_4.0.0.bb
index 1bb371a..c6a6ac4 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_4.0.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_4.0.0.bb
@@ -9,7 +9,7 @@
 
 PV .= "+git${SRCPV}"
 
-SRC_URI = "git://github.com/msgpack/msgpack-c;branch=c_master \
+SRC_URI = "git://github.com/msgpack/msgpack-c;branch=c_master;protocol=https \
            "
 SRCREV = "a9a48cea3a78ba661ee8096b5dab456361b0ff23"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-cpp_4.0.2.bb b/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-cpp_4.0.2.bb
index f66a00b..25b199f 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-cpp_4.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-cpp_4.0.2.bb
@@ -9,7 +9,7 @@
 
 PV .= "+git${SRCPV}"
 
-SRC_URI = "git://github.com/msgpack/msgpack-c;branch=cpp_master \
+SRC_URI = "git://github.com/msgpack/msgpack-c;branch=cpp_master;protocol=https \
            "
 SRCREV = "3bdbf0d2ee75d46d71afa691a594777d89a22cf7"
 
@@ -19,4 +19,6 @@
 
 inherit cmake pkgconfig
 
+RDEPENDS:${PN}-dev = ""
+
 BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/musl/musl-nscd_git.bb b/meta-openembedded/meta-oe/recipes-devtools/musl/musl-nscd_git.bb
index 6af7ab9..ac2b5a2 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/musl/musl-nscd_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/musl/musl-nscd_git.bb
@@ -12,7 +12,7 @@
 PV = "1.0.2"
 
 SRCREV = "af581482a3e1059458f3c8b20a56f82807ca3bd4"
-SRC_URI = "git://github.com/pikhq/musl-nscd \
+SRC_URI = "git://github.com/pikhq/musl-nscd;branch=master;protocol=https \
            file://0001-Fix-build-under-GCC-fno-common.patch \
            file://0001-configure-Check-for-flex-if-lex-is-not-found.patch \
            file://0001-nsswitch.y-Replace-empty-bison-extension.patch \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb
index e3c407e..ace3215 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.MIT;md5=b67209a1e36b682a8226de19d265b1e0"
 
-SRC_URI = "git://github.com/nlohmann/fifo_map.git"
+SRC_URI = "git://github.com/nlohmann/fifo_map.git;branch=master;protocol=https"
 
 PV = "1.0.0+git${SRCPV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.10.4.bb b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.10.4.bb
deleted file mode 100644
index fff3237..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.10.4.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "JSON for modern C++"
-HOMEPAGE = "https://nlohmann.github.io/json/"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.MIT;md5=441793d25a658d58d79a1f87516a6ad1"
-
-SRC_URI = "git://github.com/nlohmann/json.git;nobranch=1 \
-           "
-
-SRCREV = "fec56a1a16c6e1c1b1f4e116a20e79398282626c"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE += "-DJSON_BuildTests=OFF"
-
-# nlohmann-json is a header only C++ library, so the main package will be empty.
-
-RDEPENDS:${PN}-dev = ""
-
-BBCLASSEXTEND = "native nativesdk"
-
-# other packages commonly reference the file directly as "json.hpp"
-# create symlink to allow this usage
-do_install:append() {
-    ln -s nlohmann/json.hpp ${D}${includedir}/json.hpp
-}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.10.5.bb b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.10.5.bb
new file mode 100644
index 0000000..a69c5c7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.10.5.bb
@@ -0,0 +1,28 @@
+SUMMARY = "JSON for modern C++"
+HOMEPAGE = "https://nlohmann.github.io/json/"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.MIT;md5=f969127d7b7ed0a8a63c2bbeae002588"
+
+SRC_URI = "git://github.com/nlohmann/json.git;nobranch=1;protocol=https \
+           "
+
+SRCREV = "4f8fba14066156b73f1189a2b8bd568bde5284c5"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DJSON_BuildTests=OFF"
+
+# nlohmann-json is a header only C++ library, so the main package will be empty.
+
+RDEPENDS:${PN}-dev = ""
+
+BBCLASSEXTEND = "native nativesdk"
+
+# other packages commonly reference the file directly as "json.hpp"
+# create symlink to allow this usage
+do_install:append() {
+    ln -s nlohmann/json.hpp ${D}${includedir}/json.hpp
+}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-crypto-fix-build-without-scrypt.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-crypto-fix-build-without-scrypt.patch
new file mode 100644
index 0000000..3a2719a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-crypto-fix-build-without-scrypt.patch
@@ -0,0 +1,38 @@
+From 048203c97009c907ff3891f6ffa8f375fcf1045c Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 26 Oct 2021 08:34:39 -0700
+Subject: [PATCH] crypto: fix build without scrypt
+
+* add missing semicolon to fix:
+  In file included from ../src/node_crypto.h:47,
+                   from ../src/node.cc:46:
+  ../src/crypto/crypto_scrypt.h:80:2:
+  error: expected ';' after struct definition
+     80 | }
+        |  ^
+        |  ;
+
+  and fix typo in the comment
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Submitted [https://github.com/nodejs/node/pull/40613]
+
+---
+ src/crypto/crypto_scrypt.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/crypto/crypto_scrypt.h b/src/crypto/crypto_scrypt.h
+index 4ca888e31d..3d185637f4 100644
+--- a/src/crypto/crypto_scrypt.h
++++ b/src/crypto/crypto_scrypt.h
+@@ -77,8 +77,8 @@ struct ScryptJob {
+   static void Initialize(
+       Environment* env,
+       v8::Local<v8::Object> target) {}
+-}
+-#endif  // !OPENSSL_NO_SCRIPT
++};
++#endif  // !OPENSSL_NO_SCRYPT
+ 
+ }  // namespace crypto
+ }  // namespace node
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_16.11.1.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_16.11.1.bb
index beed833..72fbecb 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_16.11.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_16.11.1.bb
@@ -1,6 +1,6 @@
 DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
 HOMEPAGE = "http://nodejs.org"
-LICENSE = "MIT & BSD & Artistic-2.0"
+LICENSE = "MIT & ISC & BSD-2-Clause & BSD-3-Clause & Artistic-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=12f6b053282af96a218353ae7aff7cd8"
 
 DEPENDS = "openssl"
@@ -24,6 +24,7 @@
            file://mips-less-memory.patch \
            file://system-c-ares.patch \
            file://0001-liftoff-Correct-function-signatures.patch \
+           file://0001-crypto-fix-build-without-scrypt.patch \
            "
 SRC_URI:append:class-target = " \
            file://0002-Using-native-binaries.patch \
@@ -150,49 +151,30 @@
 
 do_compile () {
     export LD="${CXX}"
-    install -Dm 0755 ${B}/v8-qemu-wrapper.sh ${B}/out/Release/v8-qemu-wrapper.sh
+    install -D ${B}/v8-qemu-wrapper.sh ${B}/out/Release/v8-qemu-wrapper.sh
     oe_runmake BUILDTYPE=Release
 }
 
 do_install () {
     oe_runmake install DESTDIR=${D}
-
-    # wasn't updated since 2009 and is the only thing requiring python2 in runtime
-    # ERROR: nodejs-12.14.1-r0 do_package_qa: QA Issue: /usr/lib/node_modules/npm/node_modules/node-gyp/gyp/samples/samples contained in package nodejs-npm requires /usr/bin/python, but no providers found in RDEPENDS:nodejs-npm? [file-rdeps]
-    rm -f ${D}${exec_prefix}/lib/node_modules/npm/node_modules/node-gyp/gyp/samples/samples
 }
 
+BINARIES = " \
+    bytecode_builtins_list_generator \
+    ${@bb.utils.contains('PACKAGECONFIG', 'icu', 'gen-regexp-special-case', '', d)} \
+    mkcodecache \
+    node_mksnapshot \
+    torque \
+"
+
 do_install:append:class-native() {
-    # use node from PATH instead of absolute path to sysroot
-    # node-v0.10.25/tools/install.py is using:
-    # shebang = os.path.join(node_prefix, 'bin/node')
-    # update_shebang(link_path, shebang)
-    # and node_prefix can be very long path to bindir in native sysroot and
-    # when it exceeds 128 character shebang limit it's stripped to incorrect path
-    # and npm fails to execute like in this case with 133 characters show in log.do_install:
-    # updating shebang of /home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/work/x86_64-linux/nodejs-native/0.10.15-r0/image/home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/npm to /home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/node
-    # /usr/bin/npm is symlink to /usr/lib/node_modules/npm/bin/npm-cli.js
-    # use sed on npm-cli.js because otherwise symlink is replaced with normal file and
-    # npm-cli.js continues to use old shebang
-    sed "1s^.*^#\!/usr/bin/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
-
     # Install the native binaries to provide it within sysroot for the target compilation
     install -d ${D}${bindir}
-    install -m 0755 ${S}/out/Release/torque ${D}${bindir}/torque
-    install -m 0755 ${S}/out/Release/bytecode_builtins_list_generator ${D}${bindir}/bytecode_builtins_list_generator
-    if ${@bb.utils.contains('PACKAGECONFIG','icu','true','false',d)}; then
-        install -m 0755 ${S}/out/Release/gen-regexp-special-case ${D}${bindir}/gen-regexp-special-case
-    fi
-    install -m 0755 ${S}/out/Release/mkcodecache ${D}${bindir}/mkcodecache
-    install -m 0755 ${S}/out/Release/node_mksnapshot ${D}${bindir}/node_mksnapshot
-}
-
-do_install:append:class-target() {
-    sed "1s^.*^#\!${bindir}/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
+    (cd ${S}/out/Release && install ${BINARIES} ${D}${bindir})
 }
 
 PACKAGES =+ "${PN}-npm"
-FILES:${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/npm ${bindir}/npx"
+FILES:${PN}-npm = "${nonarch_libdir}/node_modules ${bindir}/npm ${bindir}/npx"
 RDEPENDS:${PN}-npm = "bash python3-core python3-shell python3-datetime \
     python3-misc python3-multiprocessing"
 
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 ad770ce..1b06f29 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
@@ -5,10 +5,10 @@
 RDEPENDS:${PN} = "libusb1"
 
 SRC_URI = " \
-    git://repo.or.cz/openocd.git;protocol=http;name=openocd \
-    git://repo.or.cz/r/git2cl.git;protocol=http;destsuffix=tools/git2cl;name=git2cl \
-    git://repo.or.cz/r/jimtcl.git;protocol=http;destsuffix=git/jimtcl;name=jimtcl \
-    git://repo.or.cz/r/libjaylink.git;protocol=http;destsuffix=git/src/jtag/drivers/libjaylink;name=libjaylink \
+    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://repo.or.cz/r/libjaylink.git;protocol=http;destsuffix=git/src/jtag/drivers/libjaylink;name=libjaylink;branch=master \
 "
 
 SRCREV_FORMAT = "openocd"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/pahole/pahole_1.22.bb b/meta-openembedded/meta-oe/recipes-devtools/pahole/pahole_1.22.bb
index 66f7761..c5c5e83 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/pahole/pahole_1.22.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/pahole/pahole_1.22.bb
@@ -10,7 +10,7 @@
 COMPATIBLE_HOST = "(x86_64|i.86|aarch64).*-linux"
 
 SRCREV = "f02af2553ea58ae1186226af0d0ec835a248358f"
-SRC_URI = "git://git.kernel.org/pub/scm/devel/pahole/pahole.git \
+SRC_URI = "git://git.kernel.org/pub/scm/devel/pahole/pahole.git;branch=master \
            file://0001-CMakeList.txt-make-python-optional.patch \
            file://0002-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch \
            file://0003-CMakeList.txt-don-t-download-libbpf-source-when-syst.patch"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb b/meta-openembedded/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb
index 42f5513..6f4004f 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb
@@ -8,7 +8,7 @@
 COMPATIBLE_HOST = "(x86_64|aarch64|arm|riscv64)"
 
 SRCREV = "09724edb1783a98da2b7ae53c5aaa87493aabc9b"
-SRC_URI = "git://github.com/billfarrow/pcimem.git "
+SRC_URI = "git://github.com/billfarrow/pcimem.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_20200505.0.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_20200505.0.bb
index 27dc358..bab1827 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_20200505.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_20200505.0.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0ebd37caf53781e8b7223e6b99b63f4e"
 DEPENDS = "perl"
 
-SRC_URI = "git://github.com/toddr/IPC-Run.git"
+SRC_URI = "git://github.com/toddr/IPC-Run.git;branch=master;protocol=https"
 SRCREV = "af435a1635ef9e48a84adc3230099e7ecf20c79d"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.050.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.050.bb
index 049dc66..760c0ad 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.050.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.050.bb
@@ -15,7 +15,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d0a06964340e5c0cde88b7af611f755c"
 
 SRCREV = "9b5b70ea372f49fe9bc9e592dae3870596d1e3d6"
-SRC_URI = "git://github.com/perl5-dbi/DBD-mysql.git;protocol=https"
+SRC_URI = "git://github.com/perl5-dbi/DBD-mysql.git;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libjson-perl_4.03000.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/libjson-perl_4.03000.bb
index 156d6c3..ea1c1d5 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/perl/libjson-perl_4.03000.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libjson-perl_4.03000.bb
@@ -9,7 +9,7 @@
 
 DEPENDS += "perl"
 
-SRC_URI = "git://github.com/makamaka/JSON.git;protocol=https"
+SRC_URI = "git://github.com/makamaka/JSON.git;protocol=https;branch=master"
 
 SRCREV = "ebbae181c5e311fa80ee4c6379b598c7a6400570"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-configure.ac-don-t-include-build-libtool.m4.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-configure.ac-don-t-include-build-libtool.m4.patch
deleted file mode 100644
index 2861366..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-configure.ac-don-t-include-build-libtool.m4.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From f5a34e771532b8433f307b679500c26af328ba35 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Fri, 17 Apr 2020 15:01:57 +0800
-Subject: [PATCH] configure.ac: don't include build/libtool.m4
-
-we delete build/libtool.m4 before do_configure,
-we will use libtool.m4 under ACLOCALDIR
-
-Upstream-Status: Inappropriate [oe-specific]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- configure.ac | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 06c6a27..f85144e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -6,7 +6,6 @@ dnl ----------------------------------------------------------------------------
- m4_include([build/ax_check_compile_flag.m4])
- m4_include([build/ax_func_which_gethostbyname_r.m4])
- m4_include([build/ax_gcc_func_attribute.m4])
--m4_include([build/libtool.m4])
- m4_include([build/php_cxx_compile_stdcxx.m4])
- m4_include([build/php.m4])
- m4_include([build/pkg.m4])
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-ext-opcache-config.m4-enable-opcache.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-ext-opcache-config.m4-enable-opcache.patch
new file mode 100644
index 0000000..a967d64
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-ext-opcache-config.m4-enable-opcache.patch
@@ -0,0 +1,251 @@
+From ca9b419f2c146061f73ee045cb0a069c18b40cd0 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 15 Dec 2021 14:00:08 +0800
+Subject: [PATCH 01/11] ext/opcache/config.m4: enable opcache
+
+We can't use AC_TRY_RUN to run programs in a cross compile
+environment. Set the variables directly instead since we know
+that we'd be running on latest enough linux kernel.
+
+Upstream-Status: Inappropriate [Configuration]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+update patch to version 8.0.12
+fix issue linking with librt
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+
+update patch to version 8.1.0
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ ext/opcache/config.m4 | 204 ++----------------------------------------
+ 1 file changed, 8 insertions(+), 196 deletions(-)
+
+diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
+index 2a83fa2..9471b5d 100644
+--- a/ext/opcache/config.m4
++++ b/ext/opcache/config.m4
+@@ -108,209 +108,21 @@ if test "$PHP_OPCACHE" != "no"; then
+   AC_CHECK_FUNCS([mprotect])
+ 
+   AC_MSG_CHECKING(for sysvipc shared memory support)
+-  AC_RUN_IFELSE([AC_LANG_SOURCE([[
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/ipc.h>
+-#include <sys/shm.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int ipc_id;
+-  char *shm;
+-  struct shmid_ds shmbuf;
+-
+-  ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W));
+-  if (ipc_id == -1) {
+-    return 1;
+-  }
+-
+-  shm = shmat(ipc_id, NULL, 0);
+-  if (shm == (void *)-1) {
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 2;
+-  }
+-
+-  if (shmctl(ipc_id, IPC_STAT, &shmbuf) != 0) {
+-    shmdt(shm);
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 3;
+-  }
+-
+-  shmbuf.shm_perm.uid = getuid();
+-  shmbuf.shm_perm.gid = getgid();
+-  shmbuf.shm_perm.mode = 0600;
+-
+-  if (shmctl(ipc_id, IPC_SET, &shmbuf) != 0) {
+-    shmdt(shm);
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 4;
+-  }
+-
+-  shmctl(ipc_id, IPC_RMID, NULL);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-]])],[have_shm_ipc=yes],[have_shm_ipc=no],[have_shm_ipc=no])
+-  if test "$have_shm_ipc" = "yes"; then
+-    AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
+-  fi
++  AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
++  have_shm_ipc=yes
+   AC_MSG_RESULT([$have_shm_ipc])
+ 
+   AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support)
+-  AC_RUN_IFELSE([AC_LANG_SOURCE([[
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+-#ifndef MAP_ANON
+-# ifdef MAP_ANONYMOUS
+-#  define MAP_ANON MAP_ANONYMOUS
+-# endif
+-#endif
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  char *shm;
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
+-  if (shm == MAP_FAILED) {
+-    return 1;
+-  }
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-]])],[have_shm_mmap_anon=yes],[have_shm_mmap_anon=no],[
+-  case $host_alias in
+-    *linux*)
+-      have_shm_mmap_anon=yes
+-      ;;
+-    *)
+-      have_shm_mmap_anon=no
+-      ;;
+-  esac
+-])
+-  if test "$have_shm_mmap_anon" = "yes"; then
+-    AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
+-  fi
++  AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
++  have_shm_mmap_anon=yes
+   AC_MSG_RESULT([$have_shm_mmap_anon])
+ 
+   PHP_CHECK_FUNC_LIB(shm_open, rt, root)
+   AC_MSG_CHECKING(for mmap() using shm_open() shared memory support)
+-  AC_RUN_IFELSE([AC_LANG_SOURCE([[
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <stdlib.h>
+-#include <stdio.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int fd;
+-  char *shm;
+-  char tmpname[4096];
+-
+-  sprintf(tmpname,"/opcache.test.shm.%dXXXXXX", getpid());
+-  if (mktemp(tmpname) == NULL) {
+-    return 1;
+-  }
+-  fd = shm_open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
+-  if (fd == -1) {
+-    return 2;
+-  }
+-  if (ftruncate(fd, 4096) < 0) {
+-    close(fd);
+-    shm_unlink(tmpname);
+-    return 3;
+-  }
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+-  if (shm == MAP_FAILED) {
+-    return 4;
+-  }
+-  shm_unlink(tmpname);
+-  close(fd);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-]])],[have_shm_mmap_posix=yes],[have_shm_mmap_posix=no],[have_shm_mmap_posix=no])
+-  if test "$have_shm_mmap_posix" = "yes"; then
+-    AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
+-    PHP_CHECK_LIBRARY(rt, shm_unlink, [PHP_ADD_LIBRARY(rt,1,OPCACHE_SHARED_LIBADD)])
+-  fi
+-  AC_MSG_RESULT([$have_shm_mmap_posix])
++  AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
++  AC_MSG_RESULT([yes])
++  have_shm_mmap_posix=yes
++  PHP_CHECK_LIBRARY(rt, shm_unlink, [PHP_ADD_LIBRARY(rt,1,OPCACHE_SHARED_LIBADD)])
+ 
+   PHP_NEW_EXTENSION(opcache,
+ 	ZendAccelerator.c \
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch
deleted file mode 100644
index 1f3e683..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch
+++ /dev/null
@@ -1,237 +0,0 @@
-From a74b42098aededd296ec6a3cd4cf5a17e59d6f29 Mon Sep 17 00:00:00 2001
-From: Claude Bing <cbing@cybernetics.com>
-Date: Fri, 8 May 2020 10:15:32 -0400
-Subject: [PATCH] opcache/config.m4: enable opcache
-
-We can't use AC_TRY_RUN to run programs in a cross compile environment.
-Set
-the variables directly instead since we know that we'd be running on
-latest
-enough linux kernel.
-
-Upstream-Status: Inappropriate [Configuration]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-
-update patch to version 7.4.4
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-
-fix issue linking with librt
-Signed-off-by: Claude Bing <cbing@cybernetics.com>
----
- ext/opcache/config.m4 | 195 +-----------------------------------------
- 1 file changed, 4 insertions(+), 191 deletions(-)
-
-diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
-index 6c40cafc1c..6569aa9e1c 100644
---- a/ext/opcache/config.m4
-+++ b/ext/opcache/config.m4
-@@ -23,201 +23,14 @@ if test "$PHP_OPCACHE" != "no"; then
-   AC_CHECK_FUNCS([mprotect])
- 
-   AC_MSG_CHECKING(for sysvipc shared memory support)
--  AC_RUN_IFELSE([AC_LANG_SOURCE([[
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/ipc.h>
--#include <sys/shm.h>
--#include <unistd.h>
--#include <string.h>
--
--int main() {
--  pid_t pid;
--  int status;
--  int ipc_id;
--  char *shm;
--  struct shmid_ds shmbuf;
--
--  ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W));
--  if (ipc_id == -1) {
--    return 1;
--  }
--
--  shm = shmat(ipc_id, NULL, 0);
--  if (shm == (void *)-1) {
--    shmctl(ipc_id, IPC_RMID, NULL);
--    return 2;
--  }
--
--  if (shmctl(ipc_id, IPC_STAT, &shmbuf) != 0) {
--    shmdt(shm);
--    shmctl(ipc_id, IPC_RMID, NULL);
--    return 3;
--  }
--
--  shmbuf.shm_perm.uid = getuid();
--  shmbuf.shm_perm.gid = getgid();
--  shmbuf.shm_perm.mode = 0600;
--
--  if (shmctl(ipc_id, IPC_SET, &shmbuf) != 0) {
--    shmdt(shm);
--    shmctl(ipc_id, IPC_RMID, NULL);
--    return 4;
--  }
--
--  shmctl(ipc_id, IPC_RMID, NULL);
--
--  strcpy(shm, "hello");
--
--  pid = fork();
--  if (pid < 0) {
--    return 5;
--  } else if (pid == 0) {
--    strcpy(shm, "bye");
--    return 6;
--  }
--  if (wait(&status) != pid) {
--    return 7;
--  }
--  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
--    return 8;
--  }
--  if (strcmp(shm, "bye") != 0) {
--    return 9;
--  }
--  return 0;
--}
--]])],[dnl
--    AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
--    msg=yes],[msg=no],[msg=no])
--  AC_MSG_RESULT([$msg])
-+  AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
- 
-   AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support)
--  AC_RUN_IFELSE([AC_LANG_SOURCE([[
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/mman.h>
--#include <unistd.h>
--#include <string.h>
--
--#ifndef MAP_ANON
--# ifdef MAP_ANONYMOUS
--#  define MAP_ANON MAP_ANONYMOUS
--# endif
--#endif
--#ifndef MAP_FAILED
--# define MAP_FAILED ((void*)-1)
--#endif
-+  AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
- 
--int main() {
--  pid_t pid;
--  int status;
--  char *shm;
--
--  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
--  if (shm == MAP_FAILED) {
--    return 1;
--  }
--
--  strcpy(shm, "hello");
--
--  pid = fork();
--  if (pid < 0) {
--    return 5;
--  } else if (pid == 0) {
--    strcpy(shm, "bye");
--    return 6;
--  }
--  if (wait(&status) != pid) {
--    return 7;
--  }
--  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
--    return 8;
--  }
--  if (strcmp(shm, "bye") != 0) {
--    return 9;
--  }
--  return 0;
--}
--]])],[dnl
--    AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
--    msg=yes],[msg=no],[msg=no])
--  AC_MSG_RESULT([$msg])
--
--  PHP_CHECK_FUNC_LIB(shm_open, rt)
-   AC_MSG_CHECKING(for mmap() using shm_open() shared memory support)
--  AC_RUN_IFELSE([AC_LANG_SOURCE([[
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/mman.h>
--#include <sys/stat.h>
--#include <fcntl.h>
--#include <unistd.h>
--#include <string.h>
--#include <stdlib.h>
--#include <stdio.h>
--
--#ifndef MAP_FAILED
--# define MAP_FAILED ((void*)-1)
--#endif
--
--int main() {
--  pid_t pid;
--  int status;
--  int fd;
--  char *shm;
--  char tmpname[4096];
--
--  sprintf(tmpname,"/opcache.test.shm.%dXXXXXX", getpid());
--  if (mktemp(tmpname) == NULL) {
--    return 1;
--  }
--  fd = shm_open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
--  if (fd == -1) {
--    return 2;
--  }
--  if (ftruncate(fd, 4096) < 0) {
--    close(fd);
--    shm_unlink(tmpname);
--    return 3;
--  }
--
--  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
--  if (shm == MAP_FAILED) {
--    return 4;
--  }
--  shm_unlink(tmpname);
--  close(fd);
--
--  strcpy(shm, "hello");
--
--  pid = fork();
--  if (pid < 0) {
--    return 5;
--  } else if (pid == 0) {
--    strcpy(shm, "bye");
--    return 6;
--  }
--  if (wait(&status) != pid) {
--    return 7;
--  }
--  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
--    return 8;
--  }
--  if (strcmp(shm, "bye") != 0) {
--    return 9;
--  }
--  return 0;
--}
--]])],[dnl
--    AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
--    AC_MSG_RESULT([yes])
--    PHP_CHECK_LIBRARY(rt, shm_unlink, [PHP_ADD_LIBRARY(rt,1,OPCACHE_SHARED_LIBADD)])
--  ],[
--    AC_MSG_RESULT([no])
--  ],[
--    AC_MSG_RESULT([no])
--  ])
-+  AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
-+  PHP_CHECK_LIBRARY(rt, shm_unlink, [PHP_ADD_LIBRARY(rt,1,OPCACHE_SHARED_LIBADD)])
- 
-   PHP_NEW_EXTENSION(opcache,
- 	ZendAccelerator.c \
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch
deleted file mode 100644
index d687373..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From ebc101e0728b9db6c687cff525e5dfc8eb0edbf3 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Thu, 3 Nov 2011 14:27:15 +0100
-Subject: [PATCH 2/8] php: don't use broken wrapper for mkdir
-
-Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
-
-update patch to version 7.4.4
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
-
-Upstream-Status: Inappropriate
-
- build/Makefile.global | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/build/Makefile.global b/build/Makefile.global
-index ff858c2..ae554b4 100644
---- a/build/Makefile.global
-+++ b/build/Makefile.global
-@@ -1,4 +1,4 @@
--mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
-+mkinstalldirs = mkdir -p
- INSTALL = $(top_srcdir)/build/shtool install -c
- INSTALL_DATA = $(INSTALL) -m 644
- 
--- 
-1.9.3
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php.m4-don-t-unset-cache-variables.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php.m4-don-t-unset-cache-variables.patch
deleted file mode 100644
index 0d721ec..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php.m4-don-t-unset-cache-variables.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-php.m4: don't unset cache variables
-
-Unsetting prevents cache variable from being passed to configure.
-
-Upstream-Status: Inappropriate [OE-specific]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-
-update this patch to 7.4.4, acinclude.m4 move to build/php.m4
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- build/php.m4 | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/build/php.m4 b/build/php.m4
-index 5c45d13..218ec47 100644
---- a/build/php.m4
-+++ b/build/php.m4
-@@ -1587,8 +1587,6 @@ dnl PHP_CHECK_FUNC_LIB
- dnl
- AC_DEFUN([PHP_CHECK_FUNC_LIB],[
-   ifelse($2,,:,[
--  unset ac_cv_lib_$2[]_$1
--  unset ac_cv_lib_$2[]___$1
-   unset found
-   AC_CHECK_LIB($2, $1, [found=yes], [
-     AC_CHECK_LIB($2, __$1, [found=yes], [found=no])
-@@ -1620,8 +1618,6 @@ dnl and as a fall back in the specified library. Defines HAVE_func and
- dnl HAVE_library if found and adds the library to LIBS.
- dnl
- AC_DEFUN([PHP_CHECK_FUNC],[
--  unset ac_cv_func_$1
--  unset ac_cv_func___$1
-   unset found
- 
-   AC_CHECK_FUNC($1, [found=yes],[ AC_CHECK_FUNC(__$1,[found=yes],[found=no]) ])
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0002-build-php.m4-don-t-unset-cache-variables.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0002-build-php.m4-don-t-unset-cache-variables.patch
new file mode 100644
index 0000000..6183f49
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0002-build-php.m4-don-t-unset-cache-variables.patch
@@ -0,0 +1,45 @@
+From 1af203e8e385d46ad3e33b1c253b1c564aa99034 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:01:55 -0500
+Subject: [PATCH 02/11] build/php.m4: don't unset cache variables
+
+Unsetting prevents cache variable from being passed to configure.
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+update this patch to 7.4.4, acinclude.m4 move to build/php.m4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+update patch to 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ build/php.m4 | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/build/php.m4 b/build/php.m4
+index 9746ba28f3..93551d9ca7 100644
+--- a/build/php.m4
++++ b/build/php.m4
+@@ -1568,8 +1568,6 @@ dnl PHP_CHECK_FUNC_LIB
+ dnl
+ AC_DEFUN([PHP_CHECK_FUNC_LIB],[
+   ifelse($2,,:,[
+-  unset ac_cv_lib_$2[]_$1
+-  unset ac_cv_lib_$2[]___$1
+   unset found
+   AC_CHECK_LIB($2, $1, [found=yes], [
+     AC_CHECK_LIB($2, __$1, [found=yes], [found=no])
+@@ -1601,8 +1599,6 @@ dnl and as a fall back in the specified library. Defines HAVE_func and
+ dnl HAVE_library if found and adds the library to LIBS.
+ dnl
+ AC_DEFUN([PHP_CHECK_FUNC],[
+-  unset ac_cv_func_$1
+-  unset ac_cv_func___$1
+   unset found
+ 
+   AC_CHECK_FUNC($1, [found=yes],[ AC_CHECK_FUNC(__$1,[found=yes],[found=no]) ])
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0003-php-remove-host-specific-info-from-header-file.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0003-php-remove-host-specific-info-from-header-file.patch
new file mode 100644
index 0000000..9637ed9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0003-php-remove-host-specific-info-from-header-file.patch
@@ -0,0 +1,36 @@
+From c81d0bd3491a6c6371d9df2f43956d109f984310 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:02:29 -0500
+Subject: [PATCH 03/11] php: remove host specific info from header file
+
+Based on:
+https://sources.debian.org/data/main/p/php7.3/7.3.6-1/debian/patches/
+        0036-php-5.4.9-fixheader.patch
+
+Upstream-Status: Inappropriate [not author]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+
+update patch to 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1eafd62a44..90c94323aa 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1289,7 +1289,7 @@ PHP_REMOVE_USR_LIB(LDFLAGS)
+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PHP_LDFLAGS"
+ EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $PHP_LDFLAGS"
+ 
+-UNAME=`uname -a | xargs`
++UNAME=`uname | xargs`
+ PHP_UNAME=${PHP_UNAME:-$UNAME}
+ AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output])
+ PHP_OS=`uname | xargs`
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0004-configure.ac-don-t-include-build-libtool.m4.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0004-configure.ac-don-t-include-build-libtool.m4.patch
new file mode 100644
index 0000000..19a8bf8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0004-configure.ac-don-t-include-build-libtool.m4.patch
@@ -0,0 +1,33 @@
+From 41ef1121682c245b10df7de4b78c45baf9114c04 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:03:46 -0500
+Subject: [PATCH 04/11] configure.ac: don't include build/libtool.m4
+
+we delete build/libtool.m4 before do_configure,
+we will use libtool.m4 under ACLOCALDIR
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+update patch to 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ configure.ac | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 90c94323aa..161e7c3f53 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -6,7 +6,6 @@ dnl ----------------------------------------------------------------------------
+ m4_include([build/ax_check_compile_flag.m4])
+ m4_include([build/ax_func_which_gethostbyname_r.m4])
+ m4_include([build/ax_gcc_func_attribute.m4])
+-m4_include([build/libtool.m4])
+ m4_include([build/php_cxx_compile_stdcxx.m4])
+ m4_include([build/php.m4])
+ m4_include([build/pkg.m4])
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0005-pear-fix-Makefile.frag-for-Yocto.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0005-pear-fix-Makefile.frag-for-Yocto.patch
new file mode 100644
index 0000000..fa956e0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0005-pear-fix-Makefile.frag-for-Yocto.patch
@@ -0,0 +1,29 @@
+From f22958b4c1348eec3bb4c0f2cbe2d22676e0ad23 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:04:29 -0500
+Subject: [PATCH 05/11] pear: fix Makefile.frag for Yocto
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+update patch to 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ pear/Makefile.frag | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pear/Makefile.frag b/pear/Makefile.frag
+index 9408757a3a..69072f39e0 100644
+--- a/pear/Makefile.frag
++++ b/pear/Makefile.frag
+@@ -10,7 +10,7 @@ PEAR_SUFFIX = -ds a$(program_suffix)
+ PEAR_INSTALLER_URL = https://pear.php.net/install-pear-nozlib.phar
+ 
+ install-pear-installer: $(SAPI_CLI_PATH)
+-	@$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
++	@$(PHP_NATIVE_DIR)/php $(PEAR_INSTALL_FLAGS) $(builddir)/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
+ 
+ install-pear:
+ 	@echo "Installing PEAR environment:      $(INSTALL_ROOT)$(peardir)/"
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch
new file mode 100644
index 0000000..26872d1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch
@@ -0,0 +1,51 @@
+From eab5babdadea487bbbef025068c553f5ba741774 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:07:25 -0500
+Subject: [PATCH 06/11] ext/phar/Makefile.frag: Fix phar packaging
+
+Inherited from OE-Classic, with some additions to fix host paths leaking
+into the target package.
+
+Upstream-Status: Inappropriate [config]
+
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+update patch to version 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ ext/phar/Makefile.frag | 17 +++--------------
+ 1 file changed, 3 insertions(+), 14 deletions(-)
+
+diff --git a/ext/phar/Makefile.frag b/ext/phar/Makefile.frag
+index 58789cae25..c02af1b186 100644
+--- a/ext/phar/Makefile.frag
++++ b/ext/phar/Makefile.frag
+@@ -10,20 +10,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
+ 
+ PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0
+ PHP_PHARCMD_EXECUTABLE = ` \
+-	if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
+-		$(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
+-		if test "x$(PHP_MODULES)" != "x"; then \
+-		$(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
+-		for i in bz2 zlib phar; do \
+-			if test -f "$(top_builddir)/modules/$$i.la"; then \
+-				. $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
+-			fi; \
+-		done; \
+-		fi; \
+-	else \
+-		$(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
+-	fi;`
+-PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
++               $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; `
++
++PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
+ 
+ $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
+ 	-@test -d $(builddir)/phar || mkdir $(builddir)/phar
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0007-sapi-cli-config.m4-fix-build-directory.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0007-sapi-cli-config.m4-fix-build-directory.patch
new file mode 100644
index 0000000..9776e7f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0007-sapi-cli-config.m4-fix-build-directory.patch
@@ -0,0 +1,32 @@
+From 03aa51625e0d1aa156c2f7cd71503b1f435d35a4 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:08:06 -0500
+Subject: [PATCH 07/11] sapi/cli/config.m4: fix build directory
+
+Upstream-Status: Inappropriate
+
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+update patch to version 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ sapi/cli/config.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sapi/cli/config.m4 b/sapi/cli/config.m4
+index d17d531683..f2f87f9164 100644
+--- a/sapi/cli/config.m4
++++ b/sapi/cli/config.m4
+@@ -47,7 +47,7 @@ if test "$PHP_CLI" != "no"; then
+   esac
+ 
+   dnl Set executable for tests.
+-  PHP_EXECUTABLE="\$(top_builddir)/\$(SAPI_CLI_PATH)"
++  PHP_EXECUTABLE="${PHP_NATIVE_DIR}/php"
+   PHP_SUBST(PHP_EXECUTABLE)
+ 
+   dnl Expose to Makefile.
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0008-ext-imap-config.m4-fix-include-paths.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0008-ext-imap-config.m4-fix-include-paths.patch
new file mode 100644
index 0000000..78bae58
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0008-ext-imap-config.m4-fix-include-paths.patch
@@ -0,0 +1,45 @@
+From c3c20db4415e0f6c4a601d6f9da1f3746a96b301 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:08:58 -0500
+Subject: [PATCH 08/11] ext/imap/config.m4: fix include paths
+
+Upstream-Status: Pending
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+update patch to version 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ ext/imap/config.m4 | 10 ++--------
+ 1 file changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/ext/imap/config.m4 b/ext/imap/config.m4
+index 5086a312d0..0e938bd544 100644
+--- a/ext/imap/config.m4
++++ b/ext/imap/config.m4
+@@ -110,7 +110,7 @@ if test "$PHP_IMAP" != "no"; then
+     PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
+     AC_DEFINE(HAVE_IMAP,1,[ ])
+ 
+-    for i in $PHP_IMAP /usr/local /usr; do
++    for i in $PHP_IMAP $PHP_IMAP/usr /usr/local /usr; do
+       IMAP_INC_CHK()
+       el[]IMAP_INC_CHK(/include/c-client)
+       el[]IMAP_INC_CHK(/include/imap)
+@@ -199,13 +199,7 @@ if test "$PHP_IMAP" != "no"; then
+       AC_MSG_ERROR(Cannot find rfc822.h. Please check your c-client installation.)
+     fi
+ 
+-    if test ! -r "$IMAP_DIR/c-client/libc-client.a" && test -r "$IMAP_DIR/c-client/c-client.a" ; then
+-      ln -s "$IMAP_DIR/c-client/c-client.a" "$IMAP_DIR/c-client/libc-client.a" >/dev/null 2>&1
+-    elif test ! -r "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" && test -r "$IMAP_DIR/$PHP_LIBDIR/c-client.a"; then
+-      ln -s "$IMAP_DIR/$PHP_LIBDIR/c-client.a" "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" >/dev/null 2>&1
+-    fi
+-
+-    for lib in c-client4 c-client imap; do
++    for lib in /usr/lib c-client4 c-client imap; do
+       IMAP_LIB=$lib
+       IMAP_LIB_CHK($PHP_LIBDIR)
+       IMAP_LIB_CHK(c-client)
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0009-php-don-t-use-broken-wrapper-for-mkdir.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0009-php-don-t-use-broken-wrapper-for-mkdir.patch
new file mode 100644
index 0000000..57b05e6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0009-php-don-t-use-broken-wrapper-for-mkdir.patch
@@ -0,0 +1,29 @@
+From 8707720c0aea405f0e06d67354f239232cc823cc Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:10:02 -0500
+Subject: [PATCH 09/11] php: don't use broken wrapper for mkdir
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+update patch to version 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ build/Makefile.global | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/Makefile.global b/build/Makefile.global
+index 6566d052de..eb39421f2a 100644
+--- a/build/Makefile.global
++++ b/build/Makefile.global
+@@ -1,4 +1,4 @@
+-mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
++mkinstalldirs = mkdir -p
+ INSTALL = $(top_srcdir)/build/shtool install -c
+ INSTALL_DATA = $(INSTALL) -m 644
+ 
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0010-iconv-fix-detection.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0010-iconv-fix-detection.patch
new file mode 100644
index 0000000..e3b8cd4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0010-iconv-fix-detection.patch
@@ -0,0 +1,35 @@
+From a04aabc5b80371e579fbaffdd417627390d22722 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:10:33 -0500
+Subject: [PATCH 10/11] iconv: fix detection
+
+Upstream-Status: Pending
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+update patch to version 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ build/php.m4 | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/build/php.m4 b/build/php.m4
+index 93551d9ca7..dba50825fb 100644
+--- a/build/php.m4
++++ b/build/php.m4
+@@ -1919,7 +1919,8 @@ AC_DEFUN([PHP_SETUP_ICONV], [
+   unset ICONV_DIR
+ 
+   dnl Check libc first if no path is provided in --with-iconv.
+-  if test "$PHP_ICONV" = "yes"; then
++  dnl must check against no, not against yes as PHP_ICONV can also include a path, which implies yes
++  if test "$PHP_ICONV" != "no"; then
+     dnl Reset LIBS temporarily as it may have already been included -liconv in.
+     LIBS_save="$LIBS"
+     LIBS=
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php7.conf b/meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php7.conf
deleted file mode 100644
index d206265..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php7.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-LoadModule php7_module lib/apache2/modules/libphp7.so
-
-<FilesMatch "\.ph(p[2-7]?|tml)$">
-	SetHandler application/x-httpd-php
-</FilesMatch>
-
-<FilesMatch "\.phps$">
-	SetHandler application/x-httpd-php-source
-</FilesMatch>
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php8.conf b/meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php8.conf
new file mode 100644
index 0000000..58ce408
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php8.conf
@@ -0,0 +1,9 @@
+LoadModule php_module lib/apache2/modules/libphp.so
+
+<FilesMatch "\.ph(p[2-8]?|tml)$">
+	SetHandler application/x-httpd-php
+</FilesMatch>
+
+<FilesMatch "\.phps$">
+	SetHandler application/x-httpd-php-source
+</FilesMatch>
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch
deleted file mode 100644
index a4804d1..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 1234a8ef7c5ab88e24bc5908f0ccfd55af21aa39 Mon Sep 17 00:00:00 2001
-From: Leon Anavi <leon.anavi@konsulko.com>
-Date: Mon, 31 Aug 2020 16:03:27 +0300
-Subject: [PATCH] php: remove host specific info from header file
-
-Based on:
-https://sources.debian.org/data/main/p/php7.3/7.3.6-1/debian/patches/
-        0036-php-5.4.9-fixheader.patch
-
-Upstream-Status: Inappropriate [not author]
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 2a474ba36d..6d22a21630 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1323,7 +1323,7 @@ PHP_BUILD_DATE=`date -u +%Y-%m-%d`
- fi
- AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE",[PHP build date])
- 
--UNAME=`uname -a | xargs`
-+UNAME=`uname | xargs`
- PHP_UNAME=${PHP_UNAME:-$UNAME}
- AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output])
- PHP_OS=`uname | xargs`
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch
deleted file mode 100644
index 9ec8a89..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Subject: [PATCH] From 17cc5645f3acf943a5a06465d09d0ebcfea987bd Mon Sep 17
- 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Wed, 2 Nov
- 2011 16:54:57 +0100 Subject: [PATCH] Upstream-Status: Pending
-
-update patch to version 7.4.4
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- build/php.m4        | 3 ++-
- ext/iconv/config.m4 | 2 +-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/build/php.m4 b/build/php.m4
-index 7392876..5c45d13 100644
---- a/build/php.m4
-+++ b/build/php.m4
-@@ -1950,7 +1950,8 @@ AC_DEFUN([PHP_SETUP_ICONV], [
-   echo > ext/iconv/php_iconv_supports_errno.h
- 
-   dnl Check libc first if no path is provided in --with-iconv.
--  if test "$PHP_ICONV" = "yes"; then
-+  dnl must check against no, not against yes as PHP_ICONV can also include a path, which implies yes
-+  if test "$PHP_ICONV" != "no"; then
-     dnl Reset LIBS temporarily as it may have already been included -liconv in.
-     LIBS_save="$LIBS"
-     LIBS=
-diff --git a/ext/iconv/config.m4 b/ext/iconv/config.m4
-index fe9b47a..b6b632f 100644
---- a/ext/iconv/config.m4
-+++ b/ext/iconv/config.m4
-@@ -14,7 +14,7 @@ if test "$PHP_ICONV" != "no"; then
- 
-   if test "$iconv_avail" != "no"; then
-     if test -z "$ICONV_DIR"; then
--      for i in /usr/local /usr; do
-+      for i in $PHP_ICONV /usr/local /usr; do
-         if test -f "$i/include/iconv.h" || test -f "$i/include/giconv.h"; then
-           PHP_ICONV_PREFIX="$i"
-           break
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
deleted file mode 100644
index ebe5f6a..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Subject: [PATCH] From c084c8349d1780980e232cb28b60a109e3d89438 Mon Sep 17
- 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Wed, 2 Nov
- 2011 16:54:57 +0100 Subject: [PATCH] Upstream-Status: Pending
-
-update patch to version 7.4.4
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- ext/imap/config.m4 | 10 ++--------
- 1 file changed, 2 insertions(+), 8 deletions(-)
-
-diff --git a/ext/imap/config.m4 b/ext/imap/config.m4
-index 5086a31..0e938bd 100644
---- a/ext/imap/config.m4
-+++ b/ext/imap/config.m4
-@@ -110,7 +110,7 @@ if test "$PHP_IMAP" != "no"; then
-     PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
-     AC_DEFINE(HAVE_IMAP,1,[ ])
- 
--    for i in $PHP_IMAP /usr/local /usr; do
-+    for i in $PHP_IMAP $PHP_IMAP/usr /usr/local /usr; do
-       IMAP_INC_CHK()
-       el[]IMAP_INC_CHK(/include/c-client)
-       el[]IMAP_INC_CHK(/include/imap)
-@@ -199,13 +199,7 @@ if test "$PHP_IMAP" != "no"; then
-       AC_MSG_ERROR(Cannot find rfc822.h. Please check your c-client installation.)
-     fi
- 
--    if test ! -r "$IMAP_DIR/c-client/libc-client.a" && test -r "$IMAP_DIR/c-client/c-client.a" ; then
--      ln -s "$IMAP_DIR/c-client/c-client.a" "$IMAP_DIR/c-client/libc-client.a" >/dev/null 2>&1
--    elif test ! -r "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" && test -r "$IMAP_DIR/$PHP_LIBDIR/c-client.a"; then
--      ln -s "$IMAP_DIR/$PHP_LIBDIR/c-client.a" "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" >/dev/null 2>&1
--    fi
--
--    for lib in c-client4 c-client imap; do
-+    for lib in /usr/lib c-client4 c-client imap; do
-       IMAP_LIB=$lib
-       IMAP_LIB_CHK($PHP_LIBDIR)
-       IMAP_LIB_CHK(c-client)
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch
deleted file mode 100644
index fcbf25b..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From edd575a546d56bb5683aff19782b16963d61fd0b Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Wed, 2 Nov 2011 16:54:57 +0100
-Subject: [PATCH] Upstream-Status: Pending
-
----
- pear/Makefile.frag | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pear/Makefile.frag b/pear/Makefile.frag
-index bbe8ec3..16f43e2 100644
---- a/pear/Makefile.frag
-+++ b/pear/Makefile.frag
-@@ -12,7 +12,7 @@ PEAR_SUFFIX = -ds a$(program_suffix)
- PEAR_INSTALLER_URL = https://pear.php.net/install-pear-nozlib.phar
- 
- install-pear-installer: $(SAPI_CLI_PATH)
--	@$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
-+	@$(PHP_NATIVE_DIR)/php $(PEAR_INSTALL_FLAGS) $(builddir)/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
- 
- install-pear:
- 	@echo "Installing PEAR environment:      $(INSTALL_ROOT)$(peardir)/"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch
deleted file mode 100644
index eb73bc4..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Subject: [PATCH] From 08962a56f69963e01892d98ca5b75de8354bd3f5 Mon Sep 17
- 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Wed, 2 Nov
- 2011 16:54:57 +0100 Subject: [PATCH] Fix phar packaging
-
-Inherited from OE-Classic, with some additions to fix host paths leaking
-into the target package.
-
-Upstream-Status: Inappropriate [config]
-
-update patch to version 7.4.4
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- ext/phar/Makefile.frag | 17 +++--------------
- 1 file changed, 3 insertions(+), 14 deletions(-)
-
-diff --git a/ext/phar/Makefile.frag b/ext/phar/Makefile.frag
-index 6442f33..6145412 100644
---- a/ext/phar/Makefile.frag
-+++ b/ext/phar/Makefile.frag
-@@ -10,20 +10,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
- 
- PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0
- PHP_PHARCMD_EXECUTABLE = ` \
--	if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
--		$(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
--		if test "x$(PHP_MODULES)" != "x"; then \
--		$(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
--		for i in bz2 zlib phar; do \
--			if test -f "$(top_builddir)/modules/$$i.la"; then \
--				. $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
--			fi; \
--		done; \
--		fi; \
--	else \
--		$(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
--	fi;`
--PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
-+               $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; `
-+
-+PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
- 
- $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
- 	-@test -d $(builddir)/phar || mkdir $(builddir)/phar
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch
deleted file mode 100644
index 4aec481..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Subject: [PATCH] rom d251b5aa3d23803d016ca16818e2e1d2f2b70a02 Mon Sep 17
- 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Wed, 2 Nov
- 2011 16:54:57 +0100 Subject: [PATCH] Upstream-Status: Inappriate
-
-update patch to version 7.4.4
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- sapi/cli/config.m4 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sapi/cli/config.m4 b/sapi/cli/config.m4
-index 917d45f..aaf1e27 100644
---- a/sapi/cli/config.m4
-+++ b/sapi/cli/config.m4
-@@ -47,7 +47,7 @@ if test "$PHP_CLI" != "no"; then
-   esac
- 
-   dnl Set executable for tests.
--  PHP_EXECUTABLE="\$(top_builddir)/\$(SAPI_CLI_PATH)"
-+  PHP_EXECUTABLE="${PHP_NATIVE_DIR}/php"
-   PHP_SUBST(PHP_EXECUTABLE)
- 
-   dnl Expose to Makefile.
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/xfail_two_bug_tests.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/xfail_two_bug_tests.patch
deleted file mode 100644
index 2105743..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/xfail_two_bug_tests.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-php-ptest: xfail two tests
-
-If and when these tests are modified to expect the correct output, they will
-succeed and generate warnings in the test summary.  This patch can then be removed.
-
-Note that we add a closing '?>' to one test so that it can be executed directly by php.
-
-Upstream-Status: Pending
-
-Signed-off-By: Joe Slater <joe.slater@windriver.com>
-
-
---- a/tests/basic/bug71273.phpt
-+++ b/tests/basic/bug71273.phpt
-@@ -16,6 +16,8 @@ Bug #71273 A wrong ext directory setup i
- 	var_dump(preg_match(",.+a[\\/].+[\\/]w.php_kartoffelbrei.dll.+,s", $out));
- ?>
- ==DONE==
-+--XFAIL--
-+Output is int(0), not int(1)
- --EXPECT--
- int(1)
- ==DONE==
---- a/tests/run-test/bug75042-3.phpt
-+++ b/tests/run-test/bug75042-3.phpt
-@@ -8,5 +8,8 @@ display_errors=1
- nonexistentsharedmodule
- --FILE--
- <?php
-+?>
-+--XFAIL--
-+No warning message printed.
- --EXPECTF--
- PHP Warning:  PHP Startup: Unable to load dynamic library '%snonexistentsharedmodule.%s' %A
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.21.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.21.bb
deleted file mode 100644
index ab87ced..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.21.bb
+++ /dev/null
@@ -1,271 +0,0 @@
-SUMMARY = "A server-side, HTML-embedded scripting language"
-HOMEPAGE = "http://www.php.net"
-SECTION = "console/network"
-
-LICENSE = "PHP-3.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=99532e0f6620bc9bca34f12fadaee33c"
-
-BBCLASSEXTEND = "native"
-DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native"
-DEPENDS:class-native = "zlib-native libxml2-native"
-
-PHP_MAJOR_VERSION = "${@d.getVar('PV').split('.')[0]}"
-
-SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \
-           file://0001-php-don-t-use-broken-wrapper-for-mkdir.patch \
-           file://debian-php-fixheader.patch \
-           file://0001-configure.ac-don-t-include-build-libtool.m4.patch \
-           file://0001-php.m4-don-t-unset-cache-variables.patch \
-          "
-
-SRC_URI:append:class-target = " \
-            file://iconv.patch \
-            file://imap-fix-autofoo.patch \
-            file://php_exec_native.patch \
-            file://php-fpm.conf \
-            file://php-fpm-apache.conf \
-            file://70_mod_php${PHP_MAJOR_VERSION}.conf \
-            file://php-fpm.service \
-            file://pear-makefile.patch \
-            file://phar-makefile.patch \
-            file://0001-opcache-config.m4-enable-opcache.patch \
-            file://xfail_two_bug_tests.patch \
-          "
-
-S = "${WORKDIR}/php-${PV}"
-SRC_URI[sha256sum] = "36ec6102e757e2c2b7742057a700bbff77c76fa0ccbe9c860398c3d24e32822a"
-
-
-inherit autotools pkgconfig python3native gettext
-
-# phpize is not scanned for absolute paths by default (but php-config is).
-#
-SSTATE_SCAN_FILES += "phpize"
-SSTATE_SCAN_FILES += "build-defs.h"
-
-PHP_LIBDIR = "${libdir}/php${PHP_MAJOR_VERSION}"
-
-# Common EXTRA_OECONF
-COMMON_EXTRA_OECONF = "--enable-sockets \
-                       --enable-pcntl \
-                       --enable-shared \
-                       --disable-rpath \
-                       --with-pic \
-                       --libdir=${PHP_LIBDIR} \
-"
-EXTRA_OECONF = "--enable-mbstring \
-                --enable-fpm \
-                --with-libdir=${baselib} \
-                --with-gettext=${STAGING_LIBDIR}/.. \
-                --with-zlib=${STAGING_LIBDIR}/.. \
-                --with-iconv=${STAGING_LIBDIR}/.. \
-                --with-bz2=${STAGING_DIR_TARGET}${exec_prefix} \
-                --with-config-file-path=${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION} \
-                ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'ac_cv_c_bigendian_php=no', 'ac_cv_c_bigendian_php=yes', d)} \
-                ${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'ac_cv_lib_pam_pam_start=no', d)} \
-                ${COMMON_EXTRA_OECONF} \
-"
-
-EXTRA_OECONF:append:riscv64 = " --with-pcre-jit=no"
-EXTRA_OECONF:append:riscv32 = " --with-pcre-jit=no"
-
-CACHED_CONFIGUREVARS += "ac_cv_func_dlopen=no ac_cv_lib_dl_dlopen=yes"
-
-EXTRA_OECONF:class-native = " \
-                --with-zlib=${STAGING_LIBDIR_NATIVE}/.. \
-                --without-iconv \
-                ${COMMON_EXTRA_OECONF} \
-"
-
-PACKAGECONFIG ??= "mysql sqlite3 imap opcache \
-                   ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \
-"
-PACKAGECONFIG:class-native = ""
-
-PACKAGECONFIG[zip] = "--with-zip --with-zlib-dir=${STAGING_EXECPREFIXDIR},,libzip"
-
-PACKAGECONFIG[mysql] = "--with-mysqli=mysqlnd \
-                        --with-pdo-mysql=mysqlnd \
-                        ,--without-mysqli --without-pdo-mysql \
-                        ,mysql5"
-
-PACKAGECONFIG[sqlite3] = "--with-sqlite3=${STAGING_LIBDIR}/.. \
-                          --with-pdo-sqlite=${STAGING_LIBDIR}/.. \
-                          ,--without-sqlite3 --without-pdo-sqlite \
-                          ,sqlite3"
-PACKAGECONFIG[pgsql] = "--with-pgsql=${STAGING_DIR_TARGET}${exec_prefix},--without-pgsql,postgresql"
-PACKAGECONFIG[soap] = "--enable-soap, --disable-soap, libxml2"
-PACKAGECONFIG[apache2] = "--with-apxs2=${STAGING_BINDIR_CROSS}/apxs,,apache2-native apache2"
-PACKAGECONFIG[pam] = ",,libpam"
-PACKAGECONFIG[imap] = "--with-imap=${STAGING_DIR_HOST} \
-                       --with-imap-ssl=${STAGING_DIR_HOST} \
-                       ,--without-imap --without-imap-ssl \
-                       ,uw-imap"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-PACKAGECONFIG[opcache] = "--enable-opcache,--disable-opcache"
-PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
-PACKAGECONFIG[valgrind] = "--with-valgrind=${STAGING_DIR_TARGET}/usr,--with-valgrind=no,valgrind"
-PACKAGECONFIG[mbregex] = "--enable-mbregex, --disable-mbregex, oniguruma"
-PACKAGECONFIG[mbstring] = "--enable-mbstring,,"
-
-export PHP_NATIVE_DIR = "${STAGING_BINDIR_NATIVE}"
-export PHP_PEAR_PHP_BIN = "${STAGING_BINDIR_NATIVE}/php"
-CFLAGS += " -D_GNU_SOURCE -g -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED -I${STAGING_INCDIR}/apache2"
-
-# Adding these flags enables dynamic library support, which is disabled by
-# default when cross compiling
-# See https://bugs.php.net/bug.php?id=60109
-CFLAGS += " -DHAVE_LIBDL "
-LDFLAGS += " -ldl "
-
-EXTRA_OEMAKE = "INSTALL_ROOT=${D}"
-
-acpaths = ""
-
-do_configure:prepend () {
-    rm -f ${S}/build/libtool.m4 ${S}/ltmain.sh ${S}/aclocal.m4
-    find ${S} -name config.m4 | xargs -n1 sed -i 's!APXS_HTTPD=.*!APXS_HTTPD=${STAGING_SBINDIR_NATIVE}/httpd!'
-}
-
-do_configure:append() {
-    # No, libtool, we really don't want rpath set...
-    sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' ${HOST_SYS}-libtool
-    sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' ${HOST_SYS}-libtool
-}
-
-do_install:append:class-native() {
-    rm -rf ${D}/${PHP_LIBDIR}/php/.registry
-    rm -rf ${D}/${PHP_LIBDIR}/php/.channels
-    rm -rf ${D}/${PHP_LIBDIR}/php/.[a-z]*
-}
-
-do_install:prepend() {
-    cat ${ACLOCALDIR}/libtool.m4 ${ACLOCALDIR}/lt~obsolete.m4 ${ACLOCALDIR}/ltoptions.m4 \
-        ${ACLOCALDIR}/ltsugar.m4 ${ACLOCALDIR}/ltversion.m4 > ${S}/build/libtool.m4
-}
-
-do_install:prepend:class-target() {
-    if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', d)}; then
-        # Install dummy config file so apxs doesn't fail
-        install -d ${D}${sysconfdir}/apache2
-        printf "\nLoadModule dummy_module modules/mod_dummy.so\n" > ${D}${sysconfdir}/apache2/httpd.conf
-    fi
-}
-
-# fixme
-do_install:append:class-target() {
-    install -d ${D}${sysconfdir}/
-    rm -rf ${D}/.registry
-    rm -rf ${D}/.channels
-    rm -rf ${D}/.[a-z]*
-    rm -rf ${D}/var
-    rm -f  ${D}/${sysconfdir}/php-fpm.conf.default
-    install -m 0644 ${WORKDIR}/php-fpm.conf ${D}/${sysconfdir}/php-fpm.conf
-    install -d ${D}/${sysconfdir}/apache2/conf.d
-    install -m 0644 ${WORKDIR}/php-fpm-apache.conf ${D}/${sysconfdir}/apache2/conf.d/php-fpm.conf
-    install -d ${D}${sysconfdir}/init.d
-    sed -i 's:=/usr/sbin:=${sbindir}:g' ${B}/sapi/fpm/init.d.php-fpm
-    sed -i 's:=/etc:=${sysconfdir}:g' ${B}/sapi/fpm/init.d.php-fpm
-    sed -i 's:=/var:=${localstatedir}:g' ${B}/sapi/fpm/init.d.php-fpm
-    install -m 0755 ${B}/sapi/fpm/init.d.php-fpm ${D}${sysconfdir}/init.d/php-fpm
-    install -m 0644 ${WORKDIR}/php-fpm-apache.conf ${D}/${sysconfdir}/apache2/conf.d/php-fpm.conf
-
-    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then
-        install -d ${D}${systemd_unitdir}/system
-        install -m 0644 ${WORKDIR}/php-fpm.service ${D}${systemd_unitdir}/system/
-        sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
-            -e 's,@LOCALSTATEDIR@,${localstatedir},g' \
-            ${D}${systemd_unitdir}/system/php-fpm.service
-    fi
-
-    if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', d)}; then
-        install -d ${D}${sysconfdir}/apache2/modules.d
-        install -d ${D}${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION}
-        install -m 644  ${WORKDIR}/70_mod_php${PHP_MAJOR_VERSION}.conf ${D}${sysconfdir}/apache2/modules.d
-        sed -i s,lib/,${libexecdir}/, ${D}${sysconfdir}/apache2/modules.d/70_mod_php${PHP_MAJOR_VERSION}.conf
-        cat ${S}/php.ini-production | \
-            sed -e 's,extension_dir = \"\./\",extension_dir = \"/usr/lib/extensions\",' \
-            > ${D}${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION}/php.ini
-        rm -f ${D}${sysconfdir}/apache2/httpd.conf*
-    fi
-}
-
-SYSROOT_PREPROCESS_FUNCS += "php_sysroot_preprocess"
-
-php_sysroot_preprocess () {
-    install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
-    install -m 755 ${D}${bindir}/phpize ${SYSROOT_DESTDIR}${bindir_crossscripts}/
-    install -m 755 ${D}${bindir}/php-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
-
-    sed -i 's!eval echo /!eval echo ${STAGING_DIR_HOST}/!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/phpize
-    sed -i 's!^include_dir=.*!include_dir=${STAGING_INCDIR}/php!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/php-config
-}
-
-MODPHP_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', '${PN}-modphp', '', d)}"
-
-PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-phpdbg ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}-opcache ${PN}"
-
-RDEPENDS:${PN} += "libgcc"
-RDEPENDS:${PN}-pear = "${PN}"
-RDEPENDS:${PN}-phar = "${PN}-cli"
-RDEPENDS:${PN}-cli = "${PN}"
-RDEPENDS:${PN}-modphp = "${PN} apache2"
-RDEPENDS:${PN}-opcache = "${PN}"
-
-ALLOW_EMPTY:${PN} = "1"
-
-INITSCRIPT_PACKAGES = "${PN}-fpm"
-inherit update-rc.d
-
-FILES:${PN}-dbg =+ "${bindir}/.debug \
-                    ${libexecdir}/apache2/modules/.debug"
-FILES:${PN}-doc += "${PHP_LIBDIR}/php/doc"
-FILES:${PN}-cli = "${bindir}/php"
-FILES:${PN}-phpdbg = "${bindir}/phpdbg"
-FILES:${PN}-phar = "${bindir}/phar*"
-FILES:${PN}-cgi = "${bindir}/php-cgi"
-FILES:${PN}-fpm = "${sbindir}/php-fpm ${sysconfdir}/php-fpm.conf ${datadir}/fpm ${sysconfdir}/init.d/php-fpm ${systemd_unitdir}/system/php-fpm.service ${sysconfdir}/php-fpm.d/www.conf.default"
-FILES:${PN}-fpm-apache2 = "${sysconfdir}/apache2/conf.d/php-fpm.conf"
-CONFFILES:${PN}-fpm = "${sysconfdir}/php-fpm.conf"
-CONFFILES:${PN}-fpm-apache2 = "${sysconfdir}/apache2/conf.d/php-fpm.conf"
-INITSCRIPT_NAME:${PN}-fpm = "php-fpm"
-INITSCRIPT_PARAMS:${PN}-fpm = "defaults 60"
-FILES:${PN}-pear = "${bindir}/pear* ${bindir}/pecl ${PHP_LIBDIR}/php/PEAR \
-                ${PHP_LIBDIR}/php/PEAR*.php ${PHP_LIBDIR}/php/System.php \
-                ${PHP_LIBDIR}/php/peclcmd.php ${PHP_LIBDIR}/php/pearcmd.php \
-                ${PHP_LIBDIR}/php/.channels ${PHP_LIBDIR}/php/.channels/.alias \
-                ${PHP_LIBDIR}/php/.registry ${PHP_LIBDIR}/php/Archive/Tar.php \
-                ${PHP_LIBDIR}/php/Console/Getopt.php ${PHP_LIBDIR}/php/OS/Guess.php \
-                ${PHP_LIBDIR}/php/data/PEAR \
-                ${sysconfdir}/pear.conf"
-FILES:${PN}-dev = "${includedir}/php ${PHP_LIBDIR}/build ${bindir}/phpize \
-                ${bindir}/php-config ${PHP_LIBDIR}/php/.depdb \
-                ${PHP_LIBDIR}/php/.depdblock ${PHP_LIBDIR}/php/.filemap \
-                ${PHP_LIBDIR}/php/.lock ${PHP_LIBDIR}/php/test"
-FILES:${PN}-staticdev += "${PHP_LIBDIR}/extensions/*/*.a"
-FILES:${PN}-opcache = "${PHP_LIBDIR}/extensions/*/opcache${SOLIBSDEV}"
-FILES:${PN} = "${PHP_LIBDIR}/php"
-FILES:${PN} += "${bindir} ${libexecdir}/apache2"
-
-SUMMARY:${PN}-modphp = "PHP module for the Apache HTTP server"
-FILES:${PN}-modphp = "${libdir}/apache2 ${sysconfdir}"
-
-MODPHP_OLDPACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'modphp', '', d)}"
-RPROVIDES:${PN}-modphp = "${MODPHP_OLDPACKAGE}"
-RREPLACES:${PN}-modphp = "${MODPHP_OLDPACKAGE}"
-RCONFLICTS:${PN}-modphp = "${MODPHP_OLDPACKAGE}"
-
-do_install:append:class-native() {
-    create_wrapper ${D}${bindir}/php \
-        PHP_PEAR_SYSCONF_DIR=${sysconfdir}/
-}
-
-
-# Fails to build with thumb-1 (qemuarm)
-# | {standard input}: Assembler messages:
-# | {standard input}:3719: Error: selected processor does not support Thumb mode `smull r0,r2,r9,r3'
-# | {standard input}:3720: Error: unshifted register required -- `sub r2,r2,r0,asr#31'
-# | {standard input}:3796: Error: selected processor does not support Thumb mode `smull r0,r2,r3,r3'
-# | {standard input}:3797: Error: unshifted register required -- `sub r2,r2,r0,asr#31'
-# | make: *** [ext/standard/math.lo] Error 1
-ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_8.1.0.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_8.1.0.bb
new file mode 100644
index 0000000..43e86fe
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_8.1.0.bb
@@ -0,0 +1,275 @@
+SUMMARY = "A server-side, HTML-embedded scripting language"
+HOMEPAGE = "http://www.php.net"
+SECTION = "console/network"
+
+LICENSE = "PHP-3.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=99532e0f6620bc9bca34f12fadaee33c"
+
+BBCLASSEXTEND = "native"
+DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native"
+DEPENDS:class-native = "zlib-native libxml2-native"
+
+PHP_MAJOR_VERSION = "${@d.getVar('PV').split('.')[0]}"
+
+SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \
+           file://0002-build-php.m4-don-t-unset-cache-variables.patch \
+           file://0003-php-remove-host-specific-info-from-header-file.patch \
+           file://0004-configure.ac-don-t-include-build-libtool.m4.patch \
+           file://0009-php-don-t-use-broken-wrapper-for-mkdir.patch \
+           file://0010-iconv-fix-detection.patch \
+          "
+
+SRC_URI:append:class-target = " \
+            file://0001-ext-opcache-config.m4-enable-opcache.patch \
+            file://0005-pear-fix-Makefile.frag-for-Yocto.patch \
+            file://0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch \
+            file://0007-sapi-cli-config.m4-fix-build-directory.patch \
+            file://0008-ext-imap-config.m4-fix-include-paths.patch \
+            file://php-fpm.conf \
+            file://php-fpm-apache.conf \
+            file://70_mod_php${PHP_MAJOR_VERSION}.conf \
+            file://php-fpm.service \
+          "
+
+S = "${WORKDIR}/php-${PV}"
+SRC_URI[sha256sum] = "0725ed2baea125496a898455d501a77460218b2a0cfad773fa9322f491b82b61"
+
+
+inherit autotools pkgconfig python3native gettext
+
+# phpize is not scanned for absolute paths by default (but php-config is).
+#
+SSTATE_SCAN_FILES += "phpize"
+SSTATE_SCAN_FILES += "build-defs.h"
+
+PHP_LIBDIR = "${libdir}/php${PHP_MAJOR_VERSION}"
+
+# Common EXTRA_OECONF
+COMMON_EXTRA_OECONF = "--enable-sockets \
+                       --enable-pcntl \
+                       --enable-shared \
+                       --disable-rpath \
+                       --with-pic \
+                       --libdir=${PHP_LIBDIR} \
+"
+EXTRA_OECONF = "--enable-mbstring \
+                --enable-fpm \
+                --with-libdir=${baselib} \
+                --with-gettext=${STAGING_LIBDIR}/.. \
+                --with-zlib=${STAGING_LIBDIR}/.. \
+                --with-iconv=${STAGING_LIBDIR}/.. \
+                --with-bz2=${STAGING_DIR_TARGET}${exec_prefix} \
+                --with-config-file-path=${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION} \
+                ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'ac_cv_c_bigendian_php=no', 'ac_cv_c_bigendian_php=yes', d)} \
+                ${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'ac_cv_lib_pam_pam_start=no', d)} \
+                ${COMMON_EXTRA_OECONF} \
+"
+
+EXTRA_OECONF:append:riscv64 = " --with-pcre-jit=no"
+EXTRA_OECONF:append:riscv32 = " --with-pcre-jit=no"
+
+CACHED_CONFIGUREVARS += "ac_cv_func_dlopen=no ac_cv_lib_dl_dlopen=yes"
+
+EXTRA_OECONF:class-native = " \
+                --with-zlib=${STAGING_LIBDIR_NATIVE}/.. \
+                --without-iconv \
+                ${COMMON_EXTRA_OECONF} \
+"
+
+PACKAGECONFIG ??= "mysql sqlite3 imap opcache openssl \
+                   ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \
+"
+PACKAGECONFIG:class-native = ""
+
+PACKAGECONFIG[zip] = "--with-zip --with-zlib-dir=${STAGING_EXECPREFIXDIR},,libzip"
+
+PACKAGECONFIG[mysql] = "--with-mysqli=mysqlnd \
+                        --with-pdo-mysql=mysqlnd \
+                        ,--without-mysqli --without-pdo-mysql \
+                        ,mysql5"
+
+PACKAGECONFIG[sqlite3] = "--with-sqlite3=${STAGING_LIBDIR}/.. \
+                          --with-pdo-sqlite=${STAGING_LIBDIR}/.. \
+                          ,--without-sqlite3 --without-pdo-sqlite \
+                          ,sqlite3"
+PACKAGECONFIG[pgsql] = "--with-pgsql=${STAGING_DIR_TARGET}${exec_prefix},--without-pgsql,postgresql"
+PACKAGECONFIG[soap] = "--enable-soap, --disable-soap, libxml2"
+PACKAGECONFIG[apache2] = "--with-apxs2=${STAGING_BINDIR_CROSS}/apxs,,apache2-native apache2"
+PACKAGECONFIG[pam] = ",,libpam"
+PACKAGECONFIG[imap] = "--with-imap=${STAGING_DIR_HOST} \
+                       --with-imap-ssl=${STAGING_DIR_HOST} \
+                       ,--without-imap --without-imap-ssl \
+                       ,uw-imap"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[opcache] = "--enable-opcache,--disable-opcache"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
+PACKAGECONFIG[valgrind] = "--with-valgrind=${STAGING_DIR_TARGET}/usr,--with-valgrind=no,valgrind"
+PACKAGECONFIG[mbregex] = "--enable-mbregex, --disable-mbregex, oniguruma"
+PACKAGECONFIG[mbstring] = "--enable-mbstring,,"
+
+export HOSTCC = "${BUILD_CC}"
+export PHP_NATIVE_DIR = "${STAGING_BINDIR_NATIVE}"
+export PHP_PEAR_PHP_BIN = "${STAGING_BINDIR_NATIVE}/php"
+CFLAGS += " -D_GNU_SOURCE -g -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED -I${STAGING_INCDIR}/apache2"
+
+# Adding these flags enables dynamic library support, which is disabled by
+# default when cross compiling
+# See https://bugs.php.net/bug.php?id=60109
+CFLAGS += " -DHAVE_LIBDL "
+LDFLAGS += " -ldl "
+
+EXTRA_OEMAKE = "INSTALL_ROOT=${D}"
+
+acpaths = ""
+
+do_configure:prepend () {
+    rm -f ${S}/build/libtool.m4 ${S}/ltmain.sh ${S}/aclocal.m4
+    find ${S} -name config.m4 | xargs -n1 sed -i 's!APXS_HTTPD=.*!APXS_HTTPD=${STAGING_SBINDIR_NATIVE}/httpd!'
+}
+
+do_configure:append() {
+    # No, libtool, we really don't want rpath set...
+    sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+    sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+}
+
+do_install:append:class-native() {
+    rm -rf ${D}/${PHP_LIBDIR}/php/.registry
+    rm -rf ${D}/${PHP_LIBDIR}/php/.channels
+    rm -rf ${D}/${PHP_LIBDIR}/php/.[a-z]*
+}
+
+do_install:prepend() {
+    cat ${ACLOCALDIR}/libtool.m4 ${ACLOCALDIR}/lt~obsolete.m4 ${ACLOCALDIR}/ltoptions.m4 \
+        ${ACLOCALDIR}/ltsugar.m4 ${ACLOCALDIR}/ltversion.m4 > ${S}/build/libtool.m4
+}
+
+do_install:prepend:class-target() {
+    if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', d)}; then
+        # Install dummy config file so apxs doesn't fail
+        install -d ${D}${sysconfdir}/apache2
+        printf "\nLoadModule dummy_module modules/mod_dummy.so\n" > ${D}${sysconfdir}/apache2/httpd.conf
+    fi
+}
+
+# fixme
+do_install:append:class-target() {
+    install -d ${D}${sysconfdir}/
+    rm -rf ${D}/.registry
+    rm -rf ${D}/.channels
+    rm -rf ${D}/.[a-z]*
+    rm -rf ${D}/var
+    rm -f  ${D}/${sysconfdir}/php-fpm.conf.default
+    install -m 0644 ${WORKDIR}/php-fpm.conf ${D}/${sysconfdir}/php-fpm.conf
+    install -d ${D}/${sysconfdir}/apache2/conf.d
+    install -m 0644 ${WORKDIR}/php-fpm-apache.conf ${D}/${sysconfdir}/apache2/conf.d/php-fpm.conf
+    install -d ${D}${sysconfdir}/init.d
+    sed -i 's:=/usr/sbin:=${sbindir}:g' ${B}/sapi/fpm/init.d.php-fpm
+    sed -i 's:=/etc:=${sysconfdir}:g' ${B}/sapi/fpm/init.d.php-fpm
+    sed -i 's:=/var:=${localstatedir}:g' ${B}/sapi/fpm/init.d.php-fpm
+    install -m 0755 ${B}/sapi/fpm/init.d.php-fpm ${D}${sysconfdir}/init.d/php-fpm
+    install -m 0644 ${WORKDIR}/php-fpm-apache.conf ${D}/${sysconfdir}/apache2/conf.d/php-fpm.conf
+
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then
+        install -d ${D}${systemd_unitdir}/system
+        install -m 0644 ${WORKDIR}/php-fpm.service ${D}${systemd_unitdir}/system/
+        sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+            -e 's,@LOCALSTATEDIR@,${localstatedir},g' \
+            ${D}${systemd_unitdir}/system/php-fpm.service
+    fi
+
+    if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', d)}; then
+        install -d ${D}${sysconfdir}/apache2/modules.d
+        install -d ${D}${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION}
+        install -m 644  ${WORKDIR}/70_mod_php${PHP_MAJOR_VERSION}.conf ${D}${sysconfdir}/apache2/modules.d
+        sed -i s,lib/,${libexecdir}/, ${D}${sysconfdir}/apache2/modules.d/70_mod_php${PHP_MAJOR_VERSION}.conf
+        cat ${S}/php.ini-production | \
+            sed -e 's,extension_dir = \"\./\",extension_dir = \"/usr/lib/extensions\",' \
+            > ${D}${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION}/php.ini
+        rm -f ${D}${sysconfdir}/apache2/httpd.conf*
+    fi
+}
+
+SYSROOT_PREPROCESS_FUNCS += "php_sysroot_preprocess"
+
+php_sysroot_preprocess () {
+    install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+    install -m 755 ${D}${bindir}/phpize ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+    install -m 755 ${D}${bindir}/php-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+
+    sed -i 's!eval echo /!eval echo ${STAGING_DIR_HOST}/!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/phpize
+    sed -i 's!^include_dir=.*!include_dir=${STAGING_INCDIR}/php!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/php-config
+}
+
+MODPHP_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', '${PN}-modphp', '', d)}"
+
+PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-phpdbg ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}-opcache ${PN}"
+
+RDEPENDS:${PN} += "libgcc"
+RDEPENDS:${PN}-pear = "${PN}"
+RDEPENDS:${PN}-phar = "${PN}-cli"
+RDEPENDS:${PN}-cli = "${PN}"
+RDEPENDS:${PN}-modphp = "${PN} apache2"
+RDEPENDS:${PN}-opcache = "${PN}"
+
+ALLOW_EMPTY:${PN} = "1"
+
+INITSCRIPT_PACKAGES = "${PN}-fpm"
+inherit update-rc.d
+
+# WARNING: lib32-php-8.0.12-r0 do_package_qa: QA Issue: lib32-php: ELF binary /usr/libexec/apache2/modules/libphp.so has relocations in .text [textrel]
+#WARNING: lib32-php-8.0.12-r0 do_package_qa: QA Issue: lib32-php-opcache: ELF binary /usr/lib/php8/extensions/no-debug-zts-20200930/opcache.so has relocations in .text [textrel]
+INSANE_SKIP:${PN}:append:x86 = " textrel"
+INSANE_SKIP:${PN}-opcache:append:x86 = " textrel"
+
+FILES:${PN}-dbg =+ "${bindir}/.debug \
+                    ${libexecdir}/apache2/modules/.debug"
+FILES:${PN}-doc += "${PHP_LIBDIR}/php/doc"
+FILES:${PN}-cli = "${bindir}/php"
+FILES:${PN}-phpdbg = "${bindir}/phpdbg"
+FILES:${PN}-phar = "${bindir}/phar*"
+FILES:${PN}-cgi = "${bindir}/php-cgi"
+FILES:${PN}-fpm = "${sbindir}/php-fpm ${sysconfdir}/php-fpm.conf ${datadir}/fpm ${sysconfdir}/init.d/php-fpm ${systemd_unitdir}/system/php-fpm.service ${sysconfdir}/php-fpm.d/www.conf.default"
+FILES:${PN}-fpm-apache2 = "${sysconfdir}/apache2/conf.d/php-fpm.conf"
+CONFFILES:${PN}-fpm = "${sysconfdir}/php-fpm.conf"
+CONFFILES:${PN}-fpm-apache2 = "${sysconfdir}/apache2/conf.d/php-fpm.conf"
+INITSCRIPT_NAME:${PN}-fpm = "php-fpm"
+INITSCRIPT_PARAMS:${PN}-fpm = "defaults 60"
+FILES:${PN}-pear = "${bindir}/pear* ${bindir}/pecl ${PHP_LIBDIR}/php/PEAR \
+                ${PHP_LIBDIR}/php/PEAR*.php ${PHP_LIBDIR}/php/System.php \
+                ${PHP_LIBDIR}/php/peclcmd.php ${PHP_LIBDIR}/php/pearcmd.php \
+                ${PHP_LIBDIR}/php/.channels ${PHP_LIBDIR}/php/.channels/.alias \
+                ${PHP_LIBDIR}/php/.registry ${PHP_LIBDIR}/php/Archive/Tar.php \
+                ${PHP_LIBDIR}/php/Console/Getopt.php ${PHP_LIBDIR}/php/OS/Guess.php \
+                ${PHP_LIBDIR}/php/data/PEAR \
+                ${sysconfdir}/pear.conf"
+FILES:${PN}-dev = "${includedir}/php ${PHP_LIBDIR}/build ${bindir}/phpize \
+                ${bindir}/php-config ${PHP_LIBDIR}/php/.depdb \
+                ${PHP_LIBDIR}/php/.depdblock ${PHP_LIBDIR}/php/.filemap \
+                ${PHP_LIBDIR}/php/.lock ${PHP_LIBDIR}/php/test"
+FILES:${PN}-staticdev += "${PHP_LIBDIR}/extensions/*/*.a"
+FILES:${PN}-opcache = "${PHP_LIBDIR}/extensions/*/opcache${SOLIBSDEV}"
+FILES:${PN} = "${PHP_LIBDIR}/php"
+FILES:${PN} += "${bindir} ${libexecdir}/apache2"
+
+SUMMARY:${PN}-modphp = "PHP module for the Apache HTTP server"
+FILES:${PN}-modphp = "${libdir}/apache2 ${sysconfdir}"
+
+MODPHP_OLDPACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'modphp', '', d)}"
+RPROVIDES:${PN}-modphp = "${MODPHP_OLDPACKAGE}"
+RREPLACES:${PN}-modphp = "${MODPHP_OLDPACKAGE}"
+RCONFLICTS:${PN}-modphp = "${MODPHP_OLDPACKAGE}"
+
+do_install:append:class-native() {
+    create_wrapper ${D}${bindir}/php \
+        PHP_PEAR_SYSCONF_DIR=${sysconfdir}/
+}
+
+# Fails to build with thumb-1 (qemuarm)
+# | {standard input}: Assembler messages:
+# | {standard input}:3719: Error: selected processor does not support Thumb mode `smull r0,r2,r9,r3'
+# | {standard input}:3720: Error: unshifted register required -- `sub r2,r2,r0,asr#31'
+# | {standard input}:3796: Error: selected processor does not support Thumb mode `smull r0,r2,r3,r3'
+# | {standard input}:3797: Error: unshifted register required -- `sub r2,r2,r0,asr#31'
+# | make: *** [ext/standard/math.lo] Error 1
+ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ply/ply_git.bb b/meta-openembedded/meta-oe/recipes-devtools/ply/ply_git.bb
index b1327ef..616f5dd 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/ply/ply_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/ply/ply_git.bb
@@ -5,10 +5,10 @@
 
 DEPENDS += "bison-native"
 
-PV = "2.1.1+git${SRCPV}"
+PV = "2.2.0"
 
-SRC_URI = "git://github.com/iovisor/ply"
-SRCREV = "e25c9134b856cc7ffe9f562ff95caf9487d16b59"
+SRC_URI = "git://github.com/iovisor/ply;branch=master;protocol=https"
+SRCREV = "771c32b299355fb31fc296110e90ae0166409b95"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb b/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
index 27db4bf..afa503e 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
@@ -6,7 +6,7 @@
 
 PV = "20130209+git${SRCPV}"
 
-SRC_URI = "git://github.com/anyc/pmtools.git \
+SRC_URI = "git://github.com/anyc/pmtools.git;branch=master;protocol=https \
     file://pmtools-switch-to-dynamic-buffer-for-huge-ACPI-table.patch \
 "
 SRCREV = "3ebe0e54c54061b4c627236cbe35d820de2e1168"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.0.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.0.bb
index cc037d3..b3423ba 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.0.bb
@@ -12,13 +12,15 @@
 
 DEPENDS = "protobuf-native protobuf"
 
-SRC_URI = "git://github.com/protobuf-c/protobuf-c.git"
+SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https"
 SRCREV = "f224ab2eeb648a818eb20687d7150a285442c907"
 
 S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig
 
+export PROTOC = "${STAGING_BINDIR_NATIVE}/protoc"
+
 # After several fix attempts there is still a race between generating
 # t.test-full.pb.h and compiling cxx_generate_packed_data.c despite
 # BUILT_SOURCES and explicit dependencies.
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-build-on-mips-clang.patch b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-build-on-mips-clang.patch
new file mode 100644
index 0000000..8a0696e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-build-on-mips-clang.patch
@@ -0,0 +1,32 @@
+From 08e46feb6553af670754e65d94c3bb6fcd4e0cf9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 31 Oct 2021 23:39:44 -0700
+Subject: [PATCH] Fix build on mips/clang
+
+clang13 crashes on mips, until its fixed upstream disable tailcall on
+mips
+
+https://bugs.llvm.org/show_bug.cgi?id=52367
+
+Upstream-Status: Inappropriate [Clang workaround]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/google/protobuf/port_def.inc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc
+index 71325c387..303475232 100644
+--- a/src/google/protobuf/port_def.inc
++++ b/src/google/protobuf/port_def.inc
+@@ -230,7 +230,7 @@
+ #error PROTOBUF_TAILCALL was previously defined
+ #endif
+ #if __has_cpp_attribute(clang::musttail) && \
+-  !defined(__arm__) && !defined(_ARCH_PPC) && !defined(__wasm__)
++  !defined(__arm__) && !defined(_ARCH_PPC) && !defined(__wasm__) && !defined(__mips__)
+ #  ifndef PROTO2_OPENSOURCE
+ // Compilation fails on ARM32: b/195943306
+ // Compilation fails on powerpc64le: b/187985113
+-- 
+2.33.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Lower-init-prio-for-extension-attributes.patch b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Lower-init-prio-for-extension-attributes.patch
new file mode 100644
index 0000000..a1200e0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Lower-init-prio-for-extension-attributes.patch
@@ -0,0 +1,79 @@
+From 8ff34dbff1eac612326b492d0b2cb93901ad7e2b Mon Sep 17 00:00:00 2001
+From: Jani Nurminen <jani.nurminen@windriver.com>
+Date: Fri, 24 Sep 2021 09:56:11 +0200
+Subject: [PATCH] Lower init prio for extension attributes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Added PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY in
+code generation for extension attributes.
+It has lower prio than PROTOBUF_ATTRIBUTE_INIT_PRIORITY to
+ensure that extension attributes are initialized after
+other attribute.
+This is needed in some applications to avoid segmentation fault.
+
+Reported by Karl-Herman Näslund.
+
+Signed-off-by: Jani Nurminen <jani.nurminen@windriver.com>
+
+Rebase on master
+
+Signed-off-by: He Zhe <zhe.he@windriver.com>
+---
+ src/google/protobuf/compiler/cpp/cpp_extension.cc |  2 +-
+ src/google/protobuf/port_def.inc                  | 12 ++++++++++++
+ src/google/protobuf/port_undef.inc                |  1 +
+ 3 files changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/src/google/protobuf/compiler/cpp/cpp_extension.cc b/src/google/protobuf/compiler/cpp/cpp_extension.cc
+index 8604da5f2..984345ebe 100644
+--- a/src/google/protobuf/compiler/cpp/cpp_extension.cc
++++ b/src/google/protobuf/compiler/cpp/cpp_extension.cc
+@@ -164,7 +164,7 @@ void ExtensionGenerator::GenerateDefinition(io::Printer* printer) {
+   }
+ 
+   format(
+-      "PROTOBUF_ATTRIBUTE_INIT_PRIORITY "
++      "PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY "
+       "::$proto_ns$::internal::ExtensionIdentifier< $extendee$,\n"
+       "    ::$proto_ns$::internal::$type_traits$, $field_type$, $packed$ >\n"
+       "  $scoped_name$($constant_name$, $1$);\n",
+diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc
+index 7e9119112..a5117090d 100644
+--- a/src/google/protobuf/port_def.inc
++++ b/src/google/protobuf/port_def.inc
+@@ -614,6 +614,18 @@
+ #define PROTOBUF_ATTRIBUTE_INIT_PRIORITY
+ #endif
+ 
++// Some embedded systems get a segmentation fault if extension attributes are
++// initialized with higher or equal priority as other attributes. This gives
++// extension attributes high priority, but lower than other attributes.
++#ifdef PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY
++#error PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY was previously defined
++#endif
++#if PROTOBUF_GNUC_MIN(3, 0) && (!defined(__APPLE__) || defined(__clang__)) && !((defined(sun) || defined(__sun)) && (defined(__SVR4) || defined(__svr4__)))
++#define PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY __attribute__((init_priority((103))))
++#else
++#define PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY
++#endif
++
+ #ifdef PROTOBUF_PRAGMA_INIT_SEG
+ #error PROTOBUF_PRAGMA_INIT_SEG was previously defined
+ #endif
+diff --git a/src/google/protobuf/port_undef.inc b/src/google/protobuf/port_undef.inc
+index ccc5daf56..2b28f3a31 100644
+--- a/src/google/protobuf/port_undef.inc
++++ b/src/google/protobuf/port_undef.inc
+@@ -83,6 +83,7 @@
+ #undef PROTOBUF_HAVE_ATTRIBUTE_WEAK
+ #undef PROTOBUF_ATTRIBUTE_NO_DESTROY
+ #undef PROTOBUF_ATTRIBUTE_INIT_PRIORITY
++#undef PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY
+ #undef PROTOBUF_PRAGMA_INIT_SEG
+ #undef PROTOBUF_ASAN
+ #undef PROTOBUF_MSAN
+-- 
+2.26.2
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.18.0.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.18.0.bb
deleted file mode 100644
index 46ebef9..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.18.0.bb
+++ /dev/null
@@ -1,91 +0,0 @@
-SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
-DESCRIPTION = "Protocol Buffers are a way of encoding structured data in an \
-efficient yet extensible format. Google uses Protocol Buffers for almost \
-all of its internal RPC protocols and file formats."
-HOMEPAGE = "https://github.com/google/protobuf"
-SECTION = "console/tools"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b"
-
-DEPENDS = "zlib"
-DEPENDS:append:class-target = " protobuf-native"
-
-SRCREV = "89b14b1d16eba4d44af43256fc45b24a6a348557"
-
-SRC_URI = "git://github.com/protocolbuffers/protobuf.git;branch=3.18.x \
-           file://run-ptest \
-           file://0001-protobuf-fix-configure-error.patch \
-           file://0001-Makefile.am-include-descriptor.cc-when-building-libp.patch \
-           file://0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch \
-           file://0001-Fix-linking-error-with-ld-gold.patch \
-           "
-S = "${WORKDIR}/git"
-
-inherit autotools-brokensep pkgconfig ptest
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[python] = ",,"
-
-EXTRA_OECONF += "--with-protoc=echo"
-
-TEST_SRC_DIR = "examples"
-LANG_SUPPORT = "cpp ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python', '', d)}"
-
-do_compile_ptest() {
-	mkdir -p "${B}/${TEST_SRC_DIR}"
-
-	# Add the location of the cross-compiled header and library files
-	# which haven't been installed yet.
-	cp "${B}/protobuf.pc" "${B}/${TEST_SRC_DIR}/protobuf.pc"
-	sed -e 's|libdir=|libdir=${PKG_CONFIG_SYSROOT_DIR}|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
-	sed -e 's|Cflags:|Cflags: -I${S}/src|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
-	sed -e 's|Libs:|Libs: -L${B}/src/.libs|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
-	export PKG_CONFIG_PATH="${B}/${TEST_SRC_DIR}"
-
-	# Save the pkgcfg sysroot variable, and update it to nothing so
-	# that it doesn't append the sysroot to the beginning of paths.
-	# The header and library files aren't installed to the target
-	# system yet.  So the absolute paths were specified above.
-	save_pkg_config_sysroot_dir=$PKG_CONFIG_SYSROOT_DIR
-	export PKG_CONFIG_SYSROOT_DIR=
-
-	# Compile the tests
-	for lang in ${LANG_SUPPORT}; do
-		oe_runmake -C "${S}/${TEST_SRC_DIR}" ${lang}
-	done
-
-	# Restore the pkgconfig sysroot variable
-	export PKG_CONFIG_SYSROOT_DIR=$save_pkg_config_sysroot_dir
-}
-
-do_install_ptest() {
-	local olddir=`pwd`
-
-	cd "${S}/${TEST_SRC_DIR}"
-	install -d "${D}/${PTEST_PATH}"
-	for i in add_person* list_people*; do
-		if [ -x "$i" ]; then
-			install "$i" "${D}/${PTEST_PATH}"
-		fi
-	done
-	cp "${S}/${TEST_SRC_DIR}/addressbook_pb2.py" "${D}/${PTEST_PATH}"
-	cd "$olddir"
-}
-
-PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
-
-FILES:${PN}-compiler = "${bindir} ${libdir}/libprotoc${SOLIBS}"
-FILES:${PN}-lite = "${libdir}/libprotobuf-lite${SOLIBS}"
-
-RDEPENDS:${PN}-compiler = "${PN}"
-RDEPENDS:${PN}-dev += "${PN}-compiler"
-RDEPENDS:${PN}-ptest = "bash ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python-protobuf', '', d)}"
-
-MIPS_INSTRUCTION_SET = "mips"
-
-BBCLASSEXTEND = "native nativesdk"
-
-LDFLAGS:append:arm = " -latomic"
-LDFLAGS:append:mips = " -latomic"
-LDFLAGS:append:powerpc = " -latomic"
-LDFLAGS:append:mipsel = " -latomic"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.19.3.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.19.3.bb
new file mode 100644
index 0000000..f2d6c6f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.19.3.bb
@@ -0,0 +1,95 @@
+SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
+DESCRIPTION = "Protocol Buffers are a way of encoding structured data in an \
+efficient yet extensible format. Google uses Protocol Buffers for almost \
+all of its internal RPC protocols and file formats."
+HOMEPAGE = "https://github.com/google/protobuf"
+SECTION = "console/tools"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b"
+
+DEPENDS = "zlib"
+DEPENDS:append:class-target = " protobuf-native"
+
+SRCREV = "cc7b1b53234cd7a8f50d90ac3933b240dcf4cd97"
+
+SRC_URI = "git://github.com/protocolbuffers/protobuf.git;branch=3.19.x;protocol=https \
+           file://run-ptest \
+           file://0001-protobuf-fix-configure-error.patch \
+           file://0001-Makefile.am-include-descriptor.cc-when-building-libp.patch \
+           file://0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch \
+           file://0001-Fix-linking-error-with-ld-gold.patch \
+           file://0001-Lower-init-prio-for-extension-attributes.patch \
+           "
+SRC_URI:append:mips:toolchain-clang = " file://0001-Fix-build-on-mips-clang.patch "
+SRC_URI:append:mipsel:toolchain-clang = " file://0001-Fix-build-on-mips-clang.patch "
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep pkgconfig ptest
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[python] = ",,"
+
+EXTRA_OECONF += "--with-protoc=echo"
+
+TEST_SRC_DIR = "examples"
+LANG_SUPPORT = "cpp ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python', '', d)}"
+
+do_compile_ptest() {
+	mkdir -p "${B}/${TEST_SRC_DIR}"
+
+	# Add the location of the cross-compiled header and library files
+	# which haven't been installed yet.
+	cp "${B}/protobuf.pc" "${B}/${TEST_SRC_DIR}/protobuf.pc"
+	sed -e 's|libdir=|libdir=${PKG_CONFIG_SYSROOT_DIR}|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+	sed -e 's|Cflags:|Cflags: -I${S}/src|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+	sed -e 's|Libs:|Libs: -L${B}/src/.libs|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+	export PKG_CONFIG_PATH="${B}/${TEST_SRC_DIR}"
+
+	# Save the pkgcfg sysroot variable, and update it to nothing so
+	# that it doesn't append the sysroot to the beginning of paths.
+	# The header and library files aren't installed to the target
+	# system yet.  So the absolute paths were specified above.
+	save_pkg_config_sysroot_dir=$PKG_CONFIG_SYSROOT_DIR
+	export PKG_CONFIG_SYSROOT_DIR=
+
+	# Compile the tests
+	for lang in ${LANG_SUPPORT}; do
+		oe_runmake -C "${S}/${TEST_SRC_DIR}" ${lang}
+	done
+
+	# Restore the pkgconfig sysroot variable
+	export PKG_CONFIG_SYSROOT_DIR=$save_pkg_config_sysroot_dir
+}
+
+do_install_ptest() {
+	local olddir=`pwd`
+
+	cd "${S}/${TEST_SRC_DIR}"
+	install -d "${D}/${PTEST_PATH}"
+	for i in add_person* list_people*; do
+		if [ -x "$i" ]; then
+			install "$i" "${D}/${PTEST_PATH}"
+		fi
+	done
+	cp "${S}/${TEST_SRC_DIR}/addressbook_pb2.py" "${D}/${PTEST_PATH}"
+	cd "$olddir"
+}
+
+PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
+
+FILES:${PN}-compiler = "${bindir} ${libdir}/libprotoc${SOLIBS}"
+FILES:${PN}-lite = "${libdir}/libprotobuf-lite${SOLIBS}"
+
+RDEPENDS:${PN}-compiler = "${PN}"
+RDEPENDS:${PN}-dev += "${PN}-compiler"
+RDEPENDS:${PN}-ptest = "bash ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python-protobuf', '', d)}"
+
+MIPS_INSTRUCTION_SET = "mips"
+
+BBCLASSEXTEND = "native nativesdk"
+
+LDFLAGS:append:arm = " -latomic"
+LDFLAGS:append:mips = " -latomic"
+LDFLAGS:append:powerpc = " -latomic"
+LDFLAGS:append:mipsel = " -latomic"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.11.2.bb b/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.11.2.bb
deleted file mode 100644
index 09abbd9..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.11.2.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Light-weight C++ XML Processing Library"
-DESCRIPTION = "pugixml is a C++ XML processing library, which consists of a \
-DOM-like interface with rich traversal/modification capabilities, \
-an extremely fast XML parser which constructs the DOM tree from \
-n XML file/buffer, and an XPath 1.0 implementation for complex \
-data-driven tree queries."
-HOMEPAGE = "https://pugixml.org/"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://readme.txt;beginline=29;endline=52;md5=d5ee91fb74cbb64223b3693fd64eb169"
-
-SRC_URI = "https://github.com/zeux/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
-SRC_URI[md5sum] = "2d0be30b843eb9d1893c1ba9ad334946"
-SRC_URI[sha256sum] = "599eabdf8976aad86ac092a198920d8c127623d1376842bc6d683b12a37fb74f"
-
-UPSTREAM_CHECK_URI = "https://github.com/zeux/${BPN}/releases"
-
-inherit cmake
-
-EXTRA_OECMAKE += "-DBUILD_PKGCONFIG=ON \
-                  -DBUILD_SHARED_LIBS=ON \
-                  -DCMAKE_BUILD_TYPE=Release \
-                  "
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.11.4.bb b/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.11.4.bb
new file mode 100644
index 0000000..4e4048f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.11.4.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Light-weight C++ XML Processing Library"
+DESCRIPTION = "pugixml is a C++ XML processing library, which consists of a \
+DOM-like interface with rich traversal/modification capabilities, \
+an extremely fast XML parser which constructs the DOM tree from \
+n XML file/buffer, and an XPath 1.0 implementation for complex \
+data-driven tree queries."
+HOMEPAGE = "https://pugixml.org/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://readme.txt;beginline=29;endline=52;md5=d5ee91fb74cbb64223b3693fd64eb169"
+
+SRC_URI = "https://github.com/zeux/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "8ddf57b65fb860416979a3f0640c2ad45ddddbbafa82508ef0a0af3ce7061716"
+
+UPSTREAM_CHECK_URI = "https://github.com/zeux/${BPN}/releases"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DBUILD_PKGCONFIG=ON \
+                  -DBUILD_SHARED_LIBS=ON \
+                  -DCMAKE_BUILD_TYPE=Release \
+                  "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python3-pycups_2.0.1.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python3-pycups_2.0.1.bb
new file mode 100644
index 0000000..dd00f44
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/python/python3-pycups_2.0.1.bb
@@ -0,0 +1,19 @@
+# Python bindings for libcups, from the CUPS project.
+#
+# Copyright (c) Ambu A/S - All rights reserved
+# SPDX-License-Identifier: MIT
+#
+# Author(s)
+#   clst@ambu.com (Claus Stovgaard)
+#
+
+DESCRIPTION = "pycups - CUPS bindings for Python"
+HOMEPAGE = "https://github.com/OpenPrinting/pycups"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS += "cups"
+
+# See https://pypi.org/project/pycups/ for data
+SRC_URI[sha256sum] = "57434ce5f62548eb12949ca8217f066f4eeb21a5d6ab8b13471dce350e380c90"
+
+inherit pypi setuptools3
\ No newline at end of file
diff --git a/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb b/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
index 0dd6edb..b6ff62b 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://license.txt;md5=ba04aa8f65de1396a7e59d1d746c2125"
 
-SRC_URI = "git://github.com/miloyip/rapidjson.git;nobranch=1"
+SRC_URI = "git://github.com/miloyip/rapidjson.git;nobranch=1;protocol=https"
 
 SRCREV = "0ccdbf364c577803e2a751f5aededce935314313"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck_1.0.0.bb b/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck_1.0.0.bb
index 72193b7..797ec0e 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck_1.0.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck_1.0.0.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 SRC_URI = " \
-    git://github.com/nsekhar/serialcheck.git \
+    git://github.com/nsekhar/serialcheck.git;branch=master;protocol=https \
 "
 
 SRCREV = "45eb2ffa5378396e85432872833890b0a1cba872"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/sqlite-orm/sqlite-orm_1.5.bb b/meta-openembedded/meta-oe/recipes-devtools/sqlite-orm/sqlite-orm_1.5.bb
index 9176cd4..c0b2240 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/sqlite-orm/sqlite-orm_1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/sqlite-orm/sqlite-orm_1.5.bb
@@ -8,7 +8,7 @@
 DEPENDS += "sqlite3"
 
 SRCREV = "e8a9e9416f421303f4b8970caab26dadf8bae98b"
-SRC_URI = "git://github.com/fnc12/sqlite_orm;protocol=https"
+SRC_URI = "git://github.com/fnc12/sqlite_orm;protocol=https;branch=master"
 S = "${WORKDIR}/git"
 
 EXTRA_OECMAKE += "-DSqliteOrm_BuildTests=OFF"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.0.2.bb b/meta-openembedded/meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.0.2.bb
index 18379bc..08b1ecb 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.0.2.bb
@@ -12,7 +12,7 @@
                     file://licenses/zstd.txt;md5=8df8137b630239cbdd4c0674124cb0c8"
 
 SRCREV = "b96f0fc154feef531be76034bf6e38925636146f"
-SRC_URI = "git://github.com/AgentD/squashfs-tools-ng.git;protocol=https"
+SRC_URI = "git://github.com/AgentD/squashfs-tools-ng.git;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb b/meta-openembedded/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb
index b5820c1..c03cf2f 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb
@@ -1,6 +1,6 @@
 LICENSE = "GPLv2 & GPLv3 & BSD-3-Clause & LGPL-2.0 & Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5fa987762101f748a6cdd951b64ffc6b"
-SRC_URI = "git://github.com/DrTimothyAldenDavis/SuiteSparse;protocol=https \
+SRC_URI = "git://github.com/DrTimothyAldenDavis/SuiteSparse;protocol=https;branch=master \
            file://0001-Preserve-CXXFLAGS-from-environment-in-Mongoose.patch \
            file://0002-Preserve-links-when-installing-libmetis.patch \
            file://0003-Add-version-information-to-libmetis.patch \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.10.bb b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.10.bb
deleted file mode 100644
index 4b79377..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.10.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "Trace and analyze execution of a program written in C/C++"
-HOMEPAGE = "https://github.com/namhyung/uftrace"
-BUGTRACKER = "https://github.com/namhyung/uftrace/issues"
-SECTION = "devel"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "elfutils"
-DEPENDS:append:libc-musl = " argp-standalone"
-
-inherit autotools
-
-PV .= "+git${SRCPV}"
-SRCREV = "a5e5a51d32bdfe59af8b453ca08d78cbdf0b3c61"
-SRC_URI = "git://github.com/namhyung/${BPN} \
-           "
-S = "${WORKDIR}/git"
-
-LDFLAGS:append:libc-musl = " -largp"
-
-def set_target_arch(d):
-    import re
-    arch = d.getVar('TARGET_ARCH')
-    if re.match(r'i.86', arch, re.I):
-        return 'i386'
-    elif re.match('armeb', arch, re.I):
-        return 'arm'
-    else:
-        return arch
-
-EXTRA_UFTRACE_OECONF = "ARCH=${@set_target_arch(d)} \
-                        with_elfutils=/use/libelf/from/sysroot"
-
-do_configure() {
-    ${S}/configure ${EXTRA_UFTRACE_OECONF}
-}
-
-FILES_SOLIBSDEV = ""
-FILES:${PN} += "${libdir}/*.so"
-
-COMPATIBLE_HOST = "(i.86|x86_64|aarch64|arm)"
-
-# uftrace supports armv6 and above
-COMPATIBLE_HOST:armv4 = 'null'
-COMPATIBLE_HOST:armv5 = 'null'
diff --git a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.11.bb b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.11.bb
new file mode 100644
index 0000000..59c9dd4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.11.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Trace and analyze execution of a program written in C/C++"
+HOMEPAGE = "https://github.com/namhyung/uftrace"
+BUGTRACKER = "https://github.com/namhyung/uftrace/issues"
+SECTION = "devel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "elfutils"
+DEPENDS:append:libc-musl = " argp-standalone"
+
+inherit autotools
+
+SRCREV = "304a492652dc0fd220f601167c4ebb30e2ae4a39"
+SRC_URI = "git://github.com/namhyung/${BPN};branch=master;protocol=https \
+           "
+S = "${WORKDIR}/git"
+
+LDFLAGS:append:libc-musl = " -largp"
+
+def set_target_arch(d):
+    import re
+    arch = d.getVar('TARGET_ARCH')
+    if re.match(r'i.86', arch, re.I):
+        return 'i386'
+    elif re.match('armeb', arch, re.I):
+        return 'arm'
+    else:
+        return arch
+
+EXTRA_UFTRACE_OECONF = "ARCH=${@set_target_arch(d)} \
+                        with_elfutils=/use/libelf/from/sysroot"
+
+do_configure() {
+    ${S}/configure ${EXTRA_UFTRACE_OECONF}
+}
+
+FILES_SOLIBSDEV = ""
+FILES:${PN} += "${libdir}/*.so"
+
+COMPATIBLE_HOST = "(i.86|x86_64|aarch64|arm)"
+
+# uftrace supports armv6 and above
+COMPATIBLE_HOST:armv4 = 'null'
+COMPATIBLE_HOST:armv5 = 'null'
diff --git a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb
index aba6dfd..3620500 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb
@@ -2,10 +2,10 @@
 write an XML-RPC server or client in C or C++."
 
 HOMEPAGE = "http://xmlrpc-c.sourceforge.net/"
-LICENSE = "BSD & MIT"
+LICENSE = "BSD-3-Clause & MIT"
 LIC_FILES_CHKSUM = "file://doc/COPYING;md5=aefbf81ba0750f02176b6f86752ea951"
 
-SRC_URI = "git://github.com/mirror/xmlrpc-c.git \
+SRC_URI = "git://github.com/mirror/xmlrpc-c.git;branch=master;protocol=https \
            file://0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch \
            file://0002-fix-formatting-issues.patch \
            file://0003-src-Makefile-Fix-Makefile-macro-error.patch \
@@ -16,8 +16,6 @@
 
 S = "${WORKDIR}/git/stable"
 
-DEPENDS = "libxml2"
-
 inherit autotools-brokensep binconfig pkgconfig
 
 TARGET_CFLAGS += "-Wno-narrowing"
@@ -32,13 +30,12 @@
 
 PACKAGECONFIG ??= "curl cplusplus"
 
-PACKAGECONFIG[abyss] = "--enable-abyss-server --enable-abyss-threads --enable-abyss-openssl,--disable-abyss-server --disable-abyss-threads --disable-abyss-openssl,openssl,"
-PACKAGECONFIG[cplusplus] = "--enable-cplusplus,--disable-cplusplus,,"
-PACKAGECONFIG[curl] = "--enable-curl-client,--disable-curl-client,curl,curl"
+PACKAGECONFIG[abyss] = "--enable-abyss-server --enable-abyss-threads --enable-abyss-openssl,--disable-abyss-server --disable-abyss-threads --disable-abyss-openssl,openssl"
+PACKAGECONFIG[cplusplus] = "--enable-cplusplus,--disable-cplusplus"
+PACKAGECONFIG[curl] = "--enable-curl-client,--disable-curl-client,curl"
 
 do_configure() {
-        install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
-        install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
+        gnu-configize --verbose --force ${S}
         autoconf
         oe_runconf
         # license is incompatible with lib/util/getoptx.*
diff --git a/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_1.0.12.bb b/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_1.0.12.bb
index e112a5e..186f2c8 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_1.0.12.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_1.0.12.bb
@@ -10,7 +10,7 @@
 
 # Use 1.0.12 tag
 SRCREV = "17b1790fb9c8abbb3c0f7e083864a6a014191d56"
-SRC_URI = "git://github.com/lloyd/yajl;nobranch=1"
+SRC_URI = "git://github.com/lloyd/yajl;nobranch=1;protocol=https"
 
 inherit cmake lib_package
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb b/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb
index d9a5821..cf8dbb1 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb
@@ -8,7 +8,7 @@
 LICENSE = "ISC"
 LIC_FILES_CHKSUM = "file://COPYING;md5=39af6eb42999852bdd3ea00ad120a36d"
 
-SRC_URI = "git://github.com/lloyd/yajl"
+SRC_URI = "git://github.com/lloyd/yajl;branch=master;protocol=https"
 SRCREV = "a0ecdde0c042b9256170f2f8890dd9451a4240aa"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
index cacdd74..b5cd35a 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
@@ -9,7 +9,7 @@
 PV = "1.3.0+git${SRCPV}"
 # v1.3.0
 SRCREV = "ba463d3c26c0ece2e797b8d6381b161633b5971a"
-SRC_URI = "git://github.com/yasm/yasm.git \
+SRC_URI = "git://github.com/yasm/yasm.git;branch=master;protocol=https \
            file://0001-Do-not-use-AC_HEADER_STDC.patch \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/beep/beep_1.4.9.bb b/meta-openembedded/meta-oe/recipes-extended/beep/beep_1.4.9.bb
index 9437b45..75cf215 100644
--- a/meta-openembedded/meta-oe/recipes-extended/beep/beep_1.4.9.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/beep/beep_1.4.9.bb
@@ -7,7 +7,7 @@
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
-SRC_URI = "git://github.com/spkr-beep/beep.git;protocol=https \
+SRC_URI = "git://github.com/spkr-beep/beep.git;protocol=https;branch=master \
            file://0001-Do-not-use-Werror-as-it-fails-with-newer-clang-11.patch \
 "
 SRCREV = "8b85ddd09f73b9fd7caa5679298781a57af194ac"
diff --git a/meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.42.bb b/meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.42.bb
deleted file mode 100644
index 04d4ca6..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.42.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Bitwise terminal calculator"
-DESCRIPTION = "Bitwise is multi base interactive calculator \
-supporting dynamic base conversion and bit manipulation.\
-It's a handy tool for low level hackers, \
-kernel developers and device drivers developers."
-
-HOMEPAGE = "https://github.com/mellowcandle/bitwise"
-SECTION = "console/utils"
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
-
-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 \
-           "
-SRC_URI[sha256sum] = "d3d43cef47bf8f49e85f7ed381c3eaf1df921ca51805e0962f1a97a517e1d1d2"
-
-UPSTREAM_CHECK_URI = "https://github.com/mellowcandle/bitwise/releases"
-
-S = "${WORKDIR}/${BPN}-v${PV}"
-
-DEPENDS = "ncurses readline"
-
-inherit autotools
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
new file mode 100644
index 0000000..f473cca
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.43.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Bitwise terminal calculator"
+DESCRIPTION = "Bitwise is multi base interactive calculator \
+supporting dynamic base conversion and bit manipulation.\
+It's a handy tool for low level hackers, \
+kernel developers and device drivers developers."
+
+HOMEPAGE = "https://github.com/mellowcandle/bitwise"
+SECTION = "console/utils"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+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 \
+           "
+SRC_URI[sha256sum] = "f524f794188a10defc4df673d8cf0b3739f93e58e93aff0cdb8a99fbdcca2ffb"
+
+UPSTREAM_CHECK_URI = "https://github.com/mellowcandle/bitwise/releases"
+
+S = "${WORKDIR}/${BPN}-v${PV}"
+
+DEPENDS = "ncurses readline"
+
+inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb b/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb
index 92d6d9f..4e2813d 100644
--- a/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb
@@ -6,7 +6,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=941ee9cd1609382f946352712a319b4b"
 
-SRC_URI = "git://github.com/google/brotli.git \
+SRC_URI = "git://github.com/google/brotli.git;branch=master;protocol=https \
            file://838.patch "
 # tag 1.0.9
 SRCREV= "e61745a6b7add50d380cfd7d3883dd6c62fc2c71"
diff --git a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20210808.bb b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20210808.bb
deleted file mode 100644
index eeed39f..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20210808.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-# Sigh. This is one of those places where everyone licenses it differently. Someone
-# even apply UCB to it (Free/Net/OpenBSD). The maintainer states that:
-# "I've found no reliable source which states that byacc must bear a UCB copyright."
-# Setting to PD as this is what the upstream has it as.
-
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=80ce98c6ab91cc4a93a9d2cfb7c14463"
-require byacc.inc
-
-SRC_URI[sha256sum] = "f158529be9d0594263c7f11a87616a49ea23e55ac63691252a2304fbbc7d3a83"
diff --git a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20211224.bb b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20211224.bb
new file mode 100644
index 0000000..85e5072
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20211224.bb
@@ -0,0 +1,10 @@
+# Sigh. This is one of those places where everyone licenses it differently. Someone
+# even apply UCB to it (Free/Net/OpenBSD). The maintainer states that:
+# "I've found no reliable source which states that byacc must bear a UCB copyright."
+# Setting to PD as this is what the upstream has it as.
+
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=e13dd32663e3159031608d536530a080"
+require byacc.inc
+
+SRC_URI[sha256sum] = "7bc42867a095df2189618b64497016298818e88e513fca792cb5adc9a68ebfb8"
diff --git a/meta-openembedded/meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb b/meta-openembedded/meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb
new file mode 100644
index 0000000..39cdaea
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Terminal based 'The Matrix' screen implementation"
+AUTHOR = "Abishek V Ashok"
+
+LICENSE = "GPL-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "git://github.com/abishekvashok/cmatrix.git;branch=stable;protocol=https"
+SRCREV = "adfdf1656f23e5ab3b52c7d7edf91249a4477e8d"
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+DEPENDS += "ncurses"
+
+FILES:${PN} += "${datadir}/* ${libdir}/kbd/*"
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 5c9ea12..464d25a 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 \
+SRC_URI = "git://github.com/kkaempf/cmpi-bindings.git;protocol=http;branch=master;protocol=https \
            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/collectd/collectd_5.12.0.bb b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb
index b443afd..1c613b0 100644
--- a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb
@@ -70,8 +70,8 @@
     # Fix configuration file to allow collectd to start up
     sed -i 's!^#FQDNLookup[ \t]*true!FQDNLookup   false!g' ${D}${sysconfdir}/collectd.conf
 
-    rmdir "${D}${localstatedir}/run"
-    rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
+    rmdir ${D}${localstatedir}/run ${D}${localstatedir}/log
+    rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
 
     # Install systemd unit files
     install -d ${D}${systemd_unitdir}/system
diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.7.bb b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.7.bb
index 6b906a2..e5a3c7c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.7.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.7.bb
@@ -14,7 +14,7 @@
 
 DEPENDS = "zlib gzip-native json-c"
 
-SRC_URI = "git://github.com/GENIVI/${BPN}.git;protocol=https \
+SRC_URI = "git://github.com/GENIVI/${BPN}.git;protocol=https;branch=master \
     file://0002-Don-t-execute-processes-as-a-specific-user.patch \
     file://0004-Modify-systemd-config-directory.patch \
     file://317.patch \
diff --git a/meta-openembedded/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb b/meta-openembedded/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb
index 7a6b0bf..28db39a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb
@@ -18,7 +18,7 @@
 PV = "0.6.3+git${SRCPV}"
 
 SRC_URI = "\
-    git://github.com/docopt/docopt.cpp.git;protocol=https \
+    git://github.com/docopt/docopt.cpp.git;protocol=https;branch=master \
 "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/duktape/duktape_2.6.0.bb b/meta-openembedded/meta-oe/recipes-extended/duktape/duktape_2.6.0.bb
new file mode 100644
index 0000000..95df28e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/duktape/duktape_2.6.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Duktape embeddable Javascript engine"
+DESCRIPTION = "Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint."
+HOMEPAGE = "https://duktape.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c83446610de1f63c7ca60cfcc82dec9d"
+
+SRC_URI = "https://duktape.org/duktape-${PV}.tar.xz \
+           file://0001-Support-makefile-variables.patch \
+"
+SRC_URI[md5sum] = "01ee8ecf3dd5c6504543c8679661bb20"
+SRC_URI[sha256sum] = "96f4a05a6c84590e53b18c59bb776aaba80a205afbbd92b82be609ba7fe75fa7"
+
+do_compile () {
+    oe_runmake -f Makefile.sharedlibrary INSTALL_PREFIX="${prefix}" DESTDIR="${D}"
+}
+
+do_install () {
+    oe_runmake -f Makefile.sharedlibrary INSTALL_PREFIX="${prefix}" DESTDIR="${D}" install
+    # libduktaped is identical to libduktape but has an hard-coded -g build flags, remove it
+    rm -f ${D}${libdir}/libduktaped.so*
+}
diff --git a/meta-openembedded/meta-oe/recipes-extended/duktape/files/0001-Support-makefile-variables.patch b/meta-openembedded/meta-oe/recipes-extended/duktape/files/0001-Support-makefile-variables.patch
new file mode 100644
index 0000000..f3fe40b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/duktape/files/0001-Support-makefile-variables.patch
@@ -0,0 +1,297 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Luca Boccassi <luca.boccassi@microsoft.com>
+Date: Mon, 17 Jan 2022 18:12:03 +0000
+Subject: [PATCH] Support makefile variables
+
+Makefile*: use CFLAGS/CPPFLAGS/LDFLAGS
+Makefile*: allow compiler and install variables to be overridden
+Makefile.sharedlibrary: allow destdir and libdir to be overridden
+Makefile.sharedlibrary: generate pkg-config file
+
+Forwarded: https://github.com/svaarala/duktape/pull/2457
+---
+ Makefile.cmdline       |  5 ++--
+ Makefile.codepage      |  5 ++--
+ Makefile.dukdebug      |  5 ++--
+ Makefile.eval          |  5 ++--
+ Makefile.eventloop     |  5 ++--
+ Makefile.hello         |  5 ++--
+ Makefile.jsoncbor      |  5 ++--
+ Makefile.jxpretty      |  5 ++--
+ Makefile.sandbox       |  5 ++--
+ Makefile.sharedlibrary | 48 ++++++++++++++++++++-----------
+ duktape.pc.in          | 10 +++++++
+ 11 files changed, 68 insertions(+), 35 deletions(-)
+ create mode 100644 duktape.pc.in
+
+diff --git a/Makefile.cmdline b/Makefile.cmdline
+index 235566b8..0b020510 100644
+--- a/Makefile.cmdline
++++ b/Makefile.cmdline
+@@ -8,7 +8,8 @@ DUKTAPE_SOURCES = src/duktape.c
+ CMDLINE_SOURCES = \
+ 	examples/cmdline/duk_cmdline.c
+ 
+-CC = gcc
++CC ?= gcc
++CC := $(CC)
+ CCOPTS = -Os -pedantic -std=c99 -Wall -fstrict-aliasing -fomit-frame-pointer
+ CCOPTS += -I./examples/cmdline -I./src   # duktape.h and duk_config.h must be in include path
+ CCLIBS = -lm
+@@ -40,7 +41,7 @@ CMDLINE_SOURCES += extras/module-duktape/duk_module_duktape.c
+ # http://wiki.duktape.org/Configuring.html
+ 
+ duk: $(DUKTAPE_SOURCES) $(CMDLINE_SOURCES)
+-	$(CC) -o $@ $(DEFINES) $(CCOPTS) $(DUKTAPE_SOURCES) $(CMDLINE_SOURCES) $(CCLIBS)
++	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $(DEFINES) $(CCOPTS) $(DUKTAPE_SOURCES) $(CMDLINE_SOURCES) $(CCLIBS)
+ 
+ linenoise/linenoise.c: linenoise
+ linenoise:
+diff --git a/Makefile.codepage b/Makefile.codepage
+index f6ef1582..29fa6ffc 100644
+--- a/Makefile.codepage
++++ b/Makefile.codepage
+@@ -1,6 +1,7 @@
+-CC = gcc
++CC ?= gcc
++CC := $(CC)
+ 
+ codepage:
+-	$(CC) -o $@ -std=c99 -O2 -Wall -Wextra -Isrc/ \
++	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ -std=c99 -O2 -Wall -Wextra -Isrc/ \
+ 		src/duktape.c examples/codepage-conv/duk_codepage_conv.c \
+ 		examples/codepage-conv/test.c -lm
+diff --git a/Makefile.dukdebug b/Makefile.dukdebug
+index 9fafcc3f..aa289d2e 100644
+--- a/Makefile.dukdebug
++++ b/Makefile.dukdebug
+@@ -10,7 +10,8 @@ CMDLINE_SOURCES = \
+ 	examples/cmdline/duk_cmdline.c \
+ 	examples/debug-trans-socket/duk_trans_socket_unix.c
+ 
+-CC = gcc
++CC ?= gcc
++CC := $(CC)
+ CCOPTS = -Os -pedantic -std=c99 -Wall -fstrict-aliasing -fomit-frame-pointer
+ CCOPTS += -I./prep -I./examples/cmdline -I./examples/debug-trans-socket
+ CCOPTS += -DDUK_CMDLINE_DEBUGGER_SUPPORT     # enable --debugger in ./duk
+@@ -38,4 +39,4 @@ duk: $(CMDLINE_SOURCES)
+ 		-DDUK_USE_INTERRUPT_COUNTER \
+ 		-DDUK_USE_DEBUGGER_DUMPHEAP \
+ 		-DDUK_USE_DEBUGGER_INSPECT
+-	$(CC) -o $@ $(DEFINES) $(CCOPTS) $(DUKTAPE_SOURCES) $(CMDLINE_SOURCES) $(CCLIBS)
++	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $(DEFINES) $(CCOPTS) $(DUKTAPE_SOURCES) $(CMDLINE_SOURCES) $(CCLIBS)
+diff --git a/Makefile.eval b/Makefile.eval
+index 530f74a8..ce831a69 100644
+--- a/Makefile.eval
++++ b/Makefile.eval
+@@ -2,8 +2,9 @@
+ #  Example Makefile for building the eval example
+ #
+ 
+-CC = gcc
++CC ?= gcc
++CC := $(CC)
+ 
+ eval:
+-	$(CC) -o $@ -std=c99 -O2 -Wall -Wextra -Isrc/ \
++	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ -std=c99 -O2 -Wall -Wextra -Isrc/ \
+ 		src/duktape.c examples/eval/eval.c -lm
+diff --git a/Makefile.eventloop b/Makefile.eventloop
+index 1a75587b..ab1b2f72 100644
+--- a/Makefile.eventloop
++++ b/Makefile.eventloop
+@@ -2,14 +2,15 @@
+ #  Example Makefile for building the eventloop example
+ #
+ 
+-CC = gcc
++CC ?= gcc
++CC := $(CC)
+ 
+ evloop:
+ 	@echo "NOTE: The eventloop is an example intended to be used on Linux"
+ 	@echo "      or other common UNIX variants.  It is not fully portable."
+ 	@echo ""
+ 
+-	$(CC) -o $@ -std=c99 -Wall -Wextra -O2 -Isrc \
++	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ -std=c99 -Wall -Wextra -O2 -Isrc \
+ 		examples/eventloop/main.c \
+ 		examples/eventloop/c_eventloop.c \
+ 		examples/eventloop/poll.c \
+diff --git a/Makefile.hello b/Makefile.hello
+index c12b8e09..61269337 100644
+--- a/Makefile.hello
++++ b/Makefile.hello
+@@ -13,7 +13,8 @@ DUKTAPE_SOURCES = src/duktape.c
+ # Compiler options are quite flexible.  GCC versions have a significant impact
+ # on the size of -Os code, e.g. gcc-4.6 is much worse than gcc-4.5.
+ 
+-CC = gcc
++CC ?= gcc
++CC := $(CC)
+ CCOPTS = -Os -pedantic -std=c99 -Wall -fstrict-aliasing -fomit-frame-pointer
+ CCOPTS += -I./src  # for combined sources
+ CCLIBS = -lm
+@@ -29,4 +30,4 @@ DEFINES =
+ # For debugging, use -O0 -g -ggdb, and don't add -fomit-frame-pointer
+ 
+ hello: $(DUKTAPE_SOURCES) examples/hello/hello.c
+-	$(CC) -o $@ $(DEFINES) $(CCOPTS) $(DUKTAPE_SOURCES) examples/hello/hello.c $(CCLIBS)
++	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $(DEFINES) $(CCOPTS) $(DUKTAPE_SOURCES) examples/hello/hello.c $(CCLIBS)
+diff --git a/Makefile.jsoncbor b/Makefile.jsoncbor
+index 30387a2f..8f234004 100644
+--- a/Makefile.jsoncbor
++++ b/Makefile.jsoncbor
+@@ -2,9 +2,10 @@
+ #  Example Makefile for building the jsoncbor example
+ #
+ 
+-CC = gcc
++CC ?= gcc
++CC := $(CC)
+ 
+ jsoncbor:
+-	$(CC) -o $@ -std=c99 -Wall -Wextra -O2 -Isrc -Iextras/cbor \
++	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ -std=c99 -Wall -Wextra -O2 -Isrc -Iextras/cbor \
+ 		src/duktape.c extras/cbor/duk_cbor.c extras/cbor/jsoncbor.c \
+ 		-lm
+diff --git a/Makefile.jxpretty b/Makefile.jxpretty
+index 7ab00cec..aa53aa8b 100644
+--- a/Makefile.jxpretty
++++ b/Makefile.jxpretty
+@@ -2,9 +2,10 @@
+ #  Example Makefile for building the jxpretty example
+ #
+ 
+-CC = gcc
++CC ?= gcc
++CC := $(CC)
+ 
+ jxpretty:
+-	$(CC) -o $@ -std=c99 -Wall -Wextra -O2 -Isrc \
++	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ -std=c99 -Wall -Wextra -O2 -Isrc \
+ 		src/duktape.c examples/jxpretty/jxpretty.c \
+ 		-lm
+diff --git a/Makefile.sandbox b/Makefile.sandbox
+index 26bb5ffc..d1d69ce4 100644
+--- a/Makefile.sandbox
++++ b/Makefile.sandbox
+@@ -2,8 +2,9 @@
+ #  Example Makefile for building the sandbox example
+ #
+ 
+-CC = gcc
++CC ?= gcc
++CC := $(CC)
+ 
+ sandbox:
+-	$(CC) -o $@ -std=c99 -O2 -Wall -Wextra -Isrc/ \
++	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ -std=c99 -O2 -Wall -Wextra -Isrc/ \
+ 		src/duktape.c examples/sandbox/sandbox.c -lm
+diff --git a/Makefile.sharedlibrary b/Makefile.sharedlibrary
+index ace206a1..11620aa7 100644
+--- a/Makefile.sharedlibrary
++++ b/Makefile.sharedlibrary
+@@ -24,7 +24,9 @@
+ # convention is to set soname version to (100*MAJOR + MINOR), e.g. 104 for
+ # Duktape 1.4.x, so that it gets automatically bumped for major and minor
+ # releases (potentially binary incompatible), but not for patch releases.
++# The formatted version is used for the pkg-config file.
+ DUK_VERSION = 20600
++DUK_VERSION_FORMATTED = 2.6.0
+ SONAME_VERSION = 206
+ REAL_VERSION = $(SONAME_VERSION).$(DUK_VERSION)
+ 
+@@ -45,44 +45,58 @@ else
+ endif
+ 
+ # Change to actual path for actual distribution packaging.
+-INSTALL_PREFIX = /usr/local
++INSTALL_PREFIX ?= /usr/local
++INSTALL_PREFIX := $(INSTALL_PREFIX)
++DESTDIR ?=
++DESTDIR := $(DESTDIR)
++LIBDIR ?= /lib
++LIBDIR := $(LIBDIR)
+ 
+ # The 'noline' variant may be more appropriate for some distributions; it
+ # doesn't have #line directives in the combined source.
+ DUKTAPE_SRCDIR = ./src
+ #DUKTAPE_SRCDIR = ./src-noline
+ 
+-CC = gcc
++CC ?= gcc
++CC := $(CC)
+ 
+ .PHONY: all
+-all: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX)
++all: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX) duktape.pc
+ 
+ # If the default duk_config.h is not suitable for the distribution, modify it
+ # before compiling the shared library and copy the same, edited duk_config.h
+ # to $INSTALL_PREFIX/include on installation.
+ 
+ libduktape.$(SO_REALNAME_SUFFIX):
+-	$(CC) -shared -fPIC -Wall -Wextra -Os -Wl,$(LD_SONAME_ARG),libduktape.$(SO_SONAME_SUFFIX) \
++	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fPIC -Wall -Wextra -Os -Wl,$(LD_SONAME_ARG),libduktape.$(SO_SONAME_SUFFIX) \
+ 		-o $@ $(DUKTAPE_SRCDIR)/duktape.c
+ 
+ libduktaped.$(SO_REALNAME_SUFFIX):
+-	$(CC) -shared -fPIC -g -Wall -Wextra -Os -Wl,$(LD_SONAME_ARG),libduktaped.$(SO_SONAME_SUFFIX) \
++	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fPIC -g -Wall -Wextra -Os -Wl,$(LD_SONAME_ARG),libduktaped.$(SO_SONAME_SUFFIX) \
+ 		-o $@ $(DUKTAPE_SRCDIR)/duktape.c
+ 
++duktape.pc:
++	sed -e "s|@PREFIX@|$(INSTALL_PREFIX)|" \
++		-e "s|@LIBDIR@|$(LIBDIR)|" \
++		-e "s|@VERSION@|$(DUK_VERSION_FORMATTED)|" \
++		duktape.pc.in \
++		> duktape.pc
++
+ # Symlinks depend on platform conventions.
+ .PHONY: install
+-install: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX)
+-	mkdir -p $(INSTALL_PREFIX)/lib/
+-	cp $+ $(INSTALL_PREFIX)/lib/
+-	rm -f $(INSTALL_PREFIX)/lib/libduktape.so $(INSTALL_PREFIX)/lib/libduktape.$(SO_SONAME_SUFFIX)
+-	ln -s libduktape.$(SO_REALNAME_SUFFIX) $(INSTALL_PREFIX)/lib/libduktape.so
+-	ln -s libduktape.$(SO_REALNAME_SUFFIX) $(INSTALL_PREFIX)/lib/libduktape.$(SO_SONAME_SUFFIX)
+-	rm -f $(INSTALL_PREFIX)/lib/libduktaped.so $(INSTALL_PREFIX)/lib/libduktaped.$(SO_SONAME_SUFFIX)
+-	ln -s libduktaped.$(SO_REALNAME_SUFFIX) $(INSTALL_PREFIX)/lib/libduktaped.so
+-	ln -s libduktaped.$(SO_REALNAME_SUFFIX) $(INSTALL_PREFIX)/lib/libduktaped.$(SO_SONAME_SUFFIX)
+-	mkdir -p $(INSTALL_PREFIX)/include/
+-	cp $(DUKTAPE_SRCDIR)/duktape.h $(DUKTAPE_SRCDIR)/duk_config.h $(INSTALL_PREFIX)/include/
++install: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX) duktape.pc
++	mkdir -p $(DESTDIR)$(INSTALL_PREFIX)$(LIBDIR)/pkgconfig
++	cp $+ $(DESTDIR)$(INSTALL_PREFIX)$(LIBDIR)/
++	rm -f $(DESTDIR)$(INSTALL_PREFIX)$(LIBDIR)/libduktape.so $(DESTDIR)$(INSTALL_PREFIX)$(LIBDIR)/libduktape.$(SO_SONAME_SUFFIX)
++	ln -s libduktape.$(SO_REALNAME_SUFFIX) $(DESTDIR)$(INSTALL_PREFIX)$(LIBDIR)/libduktape.so
++	ln -s libduktape.$(SO_REALNAME_SUFFIX) $(DESTDIR)$(INSTALL_PREFIX)$(LIBDIR)/libduktape.$(SO_SONAME_SUFFIX)
++	rm -f $(DESTDIR)$(INSTALL_PREFIX)$(LIBDIR)/libduktaped.so $(DESTDIR)$(INSTALL_PREFIX)$(LIBDIR)/libduktaped.$(SO_SONAME_SUFFIX)
++	ln -s libduktaped.$(SO_REALNAME_SUFFIX) $(DESTDIR)$(INSTALL_PREFIX)$(LIBDIR)/libduktaped.so
++	ln -s libduktaped.$(SO_REALNAME_SUFFIX) $(DESTDIR)$(INSTALL_PREFIX)$(LIBDIR)/libduktaped.$(SO_SONAME_SUFFIX)
++	mv $(DESTDIR)$(INSTALL_PREFIX)$(LIBDIR)/duktape.pc $(DESTDIR)$(INSTALL_PREFIX)$(LIBDIR)/pkgconfig/
++	mkdir -p $(DESTDIR)$(INSTALL_PREFIX)/include/
++	cp $(DUKTAPE_SRCDIR)/duktape.h $(DUKTAPE_SRCDIR)/duk_config.h $(DESTDIR)$(INSTALL_PREFIX)/include/
+ 
+ CCOPTS = -I./examples/cmdline
+ duk:
+-	$(CC) $(CCOPTS) -I$(INSTALL_PREFIX)/include -L$(INSTALL_PREFIX)/lib -Wall -Wextra -Os -o $@ ./examples/cmdline/duk_cmdline.c -lduktape -lm
++	$(CC) $(CCOPTS) -I$(INSTALL_PREFIX)/include -L$(INSTALL_PREFIX)$(LIBDIR) -Wall -Wextra -Os -o $@ ./examples/cmdline/duk_cmdline.c -lduktape -lm
+diff --git a/duktape.pc.in b/duktape.pc.in
+new file mode 100644
+index 00000000..0985c67e
+--- /dev/null
++++ b/duktape.pc.in
+@@ -0,0 +1,10 @@
++prefix=@PREFIX@
++exec_prefix=${prefix}
++libdir=${prefix}@LIBDIR@
++includedir=${prefix}/include
++
++Name: duktape
++Description: Embeddable Javascript engine
++Version: @VERSION@
++Libs: -L${libdir} -lduktape
++Cflags: -I${includedir}
diff --git a/meta-openembedded/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.5.bb b/meta-openembedded/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.5.bb
index d88775f..310081b 100644
--- a/meta-openembedded/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.5.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5940d39995ea6857d01b8227109c2e9c"
 
 SRCREV = "89c1502b9d40b5cb4a844498b14d74ba1dd559bf"
-SRC_URI = "git://github.com/Yelp/dumb-init"
+SRC_URI = "git://github.com/Yelp/dumb-init;branch=master;protocol=https"
 S = "${WORKDIR}/git"
 
 EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS} ${LDFLAGS}'"
diff --git a/meta-openembedded/meta-oe/recipes-extended/figlet/figlet_git.bb b/meta-openembedded/meta-oe/recipes-extended/figlet/figlet_git.bb
index 4611646..61b050a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/figlet/figlet_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/figlet/figlet_git.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1688bcd97b27704f1afcac7336409857"
 
-SRC_URI = "git://github.com/cmatsuoka/figlet.git \
+SRC_URI = "git://github.com/cmatsuoka/figlet.git;branch=master;protocol=https \
            file://0001-build-add-autotools-support-to-allow-easy-cross-comp.patch"
 SRCREV = "5bbcd7383a8c3a531299b216b0c734e1495c6db3"
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.4.1.bb b/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.4.1.bb
deleted file mode 100644
index 7751255..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.4.1.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "Gnuplot is a portable command-line driven graphing utility"
-DESCRIPTION = "Gnuplot is a portable command-line driven interactive datafile \
-(text or binary) and function plotting utility."
-HOMEPAGE = "http://www.gnuplot.info/"
-SECTION = "console/scientific"
-LICENSE = "gnuplot"
-LIC_FILES_CHKSUM = "file://Copyright;md5=243a186fc2fd3b992125d60d5b1bab8f"
-DEPENDS = "${BPN}-native virtual/libx11 gd readline"
-
-inherit autotools features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = " \
-    ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BP}.tar.gz;name=archive \
-    http://www.mneuroth.de/privat/zaurus/qtplot-0.2.tar.gz;name=qtplot \
-    file://gnuplot.desktop \
-    file://gnuplot.png \
-"
-SRC_URI:append:class-target = " \
-    file://0002-do-not-build-demos.patch \
-    file://0003-Use-native-tools-to-build-docs.patch \
-    file://0004-Add-configure-option-to-find-qt5-native-tools.patch \
-"
-
-SRC_URI[archive.sha256sum] = "6b690485567eaeb938c26936e5e0681cf70c856d273cc2c45fabf64d8bc6590e"
-SRC_URI[qtplot.sha256sum] = "6df317183ff62cc82f3dcf88207a267cd6478cb5147f55d7530c94f1ad5f4132"
-
-# for building docs (they deserve it) we need *doc2* tools native
-BBCLASSEXTEND = "native"
-DEPENDS:class-native = "readline-native"
-PACKAGECONFIG:class-native = ""
-
-SRC_URI:append:class-native = " file://0001-reduce-build-to-conversion-tools-for-native-build.patch"
-
-do_install:class-native() {
-    install -d ${D}${bindir}
-	install ${B}/docs/*doc* ${D}${bindir}
-    rm ${D}${bindir}/*.o
-}
-
-PACKAGECONFIG ??= "cairo"
-PACKAGECONFIG[cairo] = "--with-cairo,--without-cairo,cairo pango"
-PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua"
-PACKAGECONFIG[qt5] = "--with-qt --with-qt5nativesysroot=${STAGING_DIR_NATIVE},--without-qt,qtbase-native qtbase qtsvg qttools-native"
-
-EXTRA_OECONF = " \
-    --with-readline=${STAGING_LIBDIR}/.. \
-    -disable-wxwidgets \
-"
-
-do_compile:prepend() {
-    install -m 0644 ${WORKDIR}/qtplot-0.2/qtopia.trm ${S}/term/
-}
-
-do_install:append:class-target() {
-    install -d ${D}${datadir}/applications/
-    install -m 0644 ${WORKDIR}/gnuplot.desktop ${D}${datadir}/applications/
-    install -d ${D}${datadir}/pixmaps/
-    install -m 0644 ${WORKDIR}/gnuplot.png ${D}${datadir}/pixmaps/
-}
-
-PACKAGES =+ "${PN}-x11"
-
-RPROVIDES:${PN}-dbg += "${PN}-x11-dbg"
-
-DESCRIPTION:${PN}-x11 = "X11 display terminal for Gnuplot."
-SECTION:${PN}-x11 = "x11/scientific"
-FILES:${PN}-x11 = "${libexecdir} ${datadir}/applications ${datadir}/pixmaps ${libdir}/X11 "
-
-FILES:${PN} += "${datadir}/texmf"
diff --git a/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.4.2.bb b/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.4.2.bb
new file mode 100644
index 0000000..5504515
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.4.2.bb
@@ -0,0 +1,71 @@
+SUMMARY = "Gnuplot is a portable command-line driven graphing utility"
+DESCRIPTION = "Gnuplot is a portable command-line driven interactive datafile \
+(text or binary) and function plotting utility."
+HOMEPAGE = "http://www.gnuplot.info/"
+SECTION = "console/scientific"
+LICENSE = "gnuplot"
+LIC_FILES_CHKSUM = "file://Copyright;md5=243a186fc2fd3b992125d60d5b1bab8f"
+DEPENDS = "${BPN}-native virtual/libx11 gd readline"
+
+inherit autotools features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = " \
+    ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BP}.tar.gz;name=archive \
+    http://www.mneuroth.de/privat/zaurus/qtplot-0.2.tar.gz;name=qtplot \
+    file://gnuplot.desktop \
+    file://gnuplot.png \
+"
+SRC_URI:append:class-target = " \
+    file://0002-do-not-build-demos.patch \
+    file://0003-Use-native-tools-to-build-docs.patch \
+    file://0004-Add-configure-option-to-find-qt5-native-tools.patch \
+"
+
+SRC_URI[archive.sha256sum] = "e57c75e1318133951d32a83bcdc4aff17fed28722c4e71f2305cfc2ae1cae7ba"
+SRC_URI[qtplot.sha256sum] = "6df317183ff62cc82f3dcf88207a267cd6478cb5147f55d7530c94f1ad5f4132"
+
+# for building docs (they deserve it) we need *doc2* tools native
+BBCLASSEXTEND = "native"
+DEPENDS:class-native = "readline-native"
+PACKAGECONFIG:class-native = ""
+
+SRC_URI:append:class-native = " file://0001-reduce-build-to-conversion-tools-for-native-build.patch"
+
+do_install:class-native() {
+    install -d ${D}${bindir}
+	install ${B}/docs/*doc* ${D}${bindir}
+    rm ${D}${bindir}/*.o
+}
+
+PACKAGECONFIG ??= "cairo"
+PACKAGECONFIG[cairo] = "--with-cairo,--without-cairo,cairo pango"
+PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua"
+PACKAGECONFIG[qt5] = "--with-qt --with-qt5nativesysroot=${STAGING_DIR_NATIVE},--without-qt,qtbase-native qtbase qtsvg qttools-native"
+
+EXTRA_OECONF = " \
+    --with-readline=${STAGING_LIBDIR}/.. \
+    -disable-wxwidgets \
+"
+
+do_compile:prepend() {
+    install -m 0644 ${WORKDIR}/qtplot-0.2/qtopia.trm ${S}/term/
+}
+
+do_install:append:class-target() {
+    install -d ${D}${datadir}/applications/
+    install -m 0644 ${WORKDIR}/gnuplot.desktop ${D}${datadir}/applications/
+    install -d ${D}${datadir}/pixmaps/
+    install -m 0644 ${WORKDIR}/gnuplot.png ${D}${datadir}/pixmaps/
+}
+
+PACKAGES =+ "${PN}-x11"
+
+RPROVIDES:${PN}-dbg += "${PN}-x11-dbg"
+
+DESCRIPTION:${PN}-x11 = "X11 display terminal for Gnuplot."
+SECTION:${PN}-x11 = "x11/scientific"
+FILES:${PN}-x11 = "${libexecdir} ${datadir}/applications ${datadir}/pixmaps ${libdir}/X11 "
+
+FILES:${PN} += "${datadir}/texmf"
diff --git a/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.14.bb b/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.14.bb
index 30e126d..ba436c2 100644
--- a/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.14.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.14.bb
@@ -7,7 +7,7 @@
 
 # v1.9.14
 SRCREV = "4da3080ad4587860e5da73072d6ed54d0052938c"
-SRC_URI = "git://github.com/jirka-h/haveged.git \
+SRC_URI = "git://github.com/jirka-h/haveged.git;branch=master;protocol=https \
 "
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.5.bb b/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.5.bb
index 7928df4..6583923 100644
--- a/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.5.bb
@@ -6,7 +6,7 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
 
-SRC_URI = "git://github.com/pixel/hexedit.git \
+SRC_URI = "git://github.com/pixel/hexedit.git;branch=master;protocol=https \
     "
 
 SRCREV = "baf45a289360a39a05253949fb9d1b50e4668d8a"
diff --git a/meta-openembedded/meta-oe/recipes-extended/hiredis/hiredis_1.0.2.bb b/meta-openembedded/meta-oe/recipes-extended/hiredis/hiredis_1.0.2.bb
index 93bda33..2ff4946 100644
--- a/meta-openembedded/meta-oe/recipes-extended/hiredis/hiredis_1.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/hiredis/hiredis_1.0.2.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=d84d659a35c666d23233e54503aaea51"
 DEPENDS = "redis"
 
-SRC_URI = "git://github.com/redis/hiredis;protocol=git"
+SRC_URI = "git://github.com/redis/hiredis;protocol=https;branch=master"
 SRCREV = "b731283245f3183af527237166261ad0768ba7d4"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_2.8.0.bb b/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_2.8.0.bb
deleted file mode 100644
index 259187b..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_2.8.0.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-DESCRIPTION = "Ice Window Manager (IceWM)"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4a26952467ef79a7efca4a9cf52d417b"
-
-SRC_URI = "https://github.com/ice-wm/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.lz \
-           file://0001-configure.ac-skip-running-test-program-when-cross-co.patch \
-           "
-SRC_URI[sha256sum] = "12b7cce67b95b09f34873f46948e7f1cef9edd88682139e054b79ba165c53e49"
-
-UPSTREAM_CHECK_URI = "https://github.com/ice-wm/${BPN}/releases"
-
-inherit autotools pkgconfig gettext perlnative features_check qemu update-alternatives
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OECONF += "--with-libdir=${datadir}/icewm \
-                --with-cfgdir=${sysconfdir}/icewm \
-                --with-docdir=${docdir}/icewm \
-                --enable-fribidi \
-                --enable-xinerama \
-                --enable-shape"
-
-DEPENDS = "asciidoc-native fontconfig fribidi gdk-pixbuf imlib2	libxft libxpm libxrandr \
-    libxinerama libice libsm libx11 libxext libxrender libxcomposite libxdamage \
-    libxfixes"
-DEPENDS:append = " qemu-native"
-RDEPENDS:${PN} = "perl fribidi"
-
-do_compile:prepend:class-target() {
-
-    cd ${B}
-    oe_runmake -C src genpref
-
-    qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}',['${B}/src/.libs','${STAGING_DIR_TARGET}/${libdir}','${STAGING_DIR_TARGET}/${base_libdir}'])}"
-    cat >qemuwrapper <<EOF
-#!/bin/sh
-${qemu_binary} src/genpref "\$@"
-EOF
-    chmod +x qemuwrapper
-    ./qemuwrapper > src/preferences
-}
-
-ALTERNATIVE:${PN} = "x-session-manager"
-ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/icewm-session"
-ALTERNATIVE_PRIORITY_${PN} = "100"
-
-FILES:${PN} += "${datadir}/xsessions"
diff --git a/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_2.9.0.bb b/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_2.9.0.bb
new file mode 100644
index 0000000..e8e1576
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_2.9.0.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "Ice Window Manager (IceWM)"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4a26952467ef79a7efca4a9cf52d417b"
+
+SRC_URI = "https://github.com/ice-wm/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.lz \
+           file://0001-configure.ac-skip-running-test-program-when-cross-co.patch \
+           "
+SRC_URI[sha256sum] = "c76a8c9965a1edde4f2446b47ee17c8564e0e20f3d8474465f6d4c54d1125ac4"
+
+UPSTREAM_CHECK_URI = "https://github.com/ice-wm/${BPN}/releases"
+
+inherit autotools pkgconfig gettext perlnative features_check qemu update-alternatives
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OECONF += "--with-libdir=${datadir}/icewm \
+                --with-cfgdir=${sysconfdir}/icewm \
+                --with-docdir=${docdir}/icewm \
+                --enable-fribidi \
+                --enable-xinerama \
+                --enable-shape"
+
+DEPENDS = "asciidoc-native fontconfig fribidi gdk-pixbuf imlib2	libxft libxpm libxrandr \
+    libxinerama libice libsm libx11 libxext libxrender libxcomposite libxdamage \
+    libxfixes"
+DEPENDS:append = " qemu-native"
+RDEPENDS:${PN} = "perl fribidi"
+
+do_compile:prepend:class-target() {
+
+    cd ${B}
+    oe_runmake -C src genpref
+
+    qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}',['${B}/src/.libs','${STAGING_DIR_TARGET}/${libdir}','${STAGING_DIR_TARGET}/${base_libdir}'])}"
+    cat >qemuwrapper <<EOF
+#!/bin/sh
+${qemu_binary} src/genpref "\$@"
+EOF
+    chmod +x qemuwrapper
+    ./qemuwrapper > src/preferences
+}
+
+ALTERNATIVE:${PN} = "x-session-manager"
+ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/icewm-session"
+ALTERNATIVE_PRIORITY_${PN} = "100"
+
+FILES:${PN} += "${datadir}/xsessions"
diff --git a/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb b/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb
deleted file mode 100644
index d1b288c..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Simple top-like I/O monitor"
-DESCRIPTION = "iotop does for I/O usage what top(1) does for CPU usage. \
-    It watches I/O usage information output by the Linux kernel and displays \
-    a table of current I/O usage by processes on the system."
-HOMEPAGE = "http://guichaz.free.fr/iotop/"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
-
-PV .= "+git${SRCPV}"
-
-SRCREV = "1bfb3bc70febb1ffb95146b6dcd65257228099a3"
-SRC_URI = "git://repo.or.cz/iotop.git"
-
-S = "${WORKDIR}/git"
-
-UPSTREAM_CHECK_URI = "http://repo.or.cz/iotop.git/tags"
-UPSTREAM_CHECK_REGEX = "iotop-(?P<pver>\d+(\.\d+)+)"
-
-inherit distutils3
-
-do_install:append() {
-    rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/site.pyo || true
-    rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/site.py  || true
-}
-
-RDEPENDS:${PN} = "python3-curses \
-                  python3-codecs python3-ctypes python3-pprint \
-                  python3-shell python3-core"
diff --git a/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_1.20.bb b/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_1.20.bb
new file mode 100644
index 0000000..b05c8cd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_1.20.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A top utility for I/O"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=48e7be78bd2671d08c9c3bad71f1cfaa"
+
+DEPENDS = "ncurses"
+
+SRC_URI = "https://github.com/Tomas-M/iotop/releases/download/v1.20/iotop-1.20.tar.xz"
+SRC_URI[sha256sum] = "e0227dd4b71ce3ffe50225b85cf9abb38a99c1d2dff69e3f1db7d059d7490d51"
+UPSTREAM_CHECK_URI = "https://github.com/Tomas-M/iotop/releases"
+
+inherit pkgconfig
+
+EXTRA_OEMAKE = "V=1 STRIP=true"
+
+# Workaround BFD linker crash with clang on arm
+# revisit when upgrading binutils and see if its fixed
+LDFLAGS:append:toolchain-clang:arm = " -fuse-ld=lld"
+
+do_install() {
+    oe_runmake install DESTDIR=${D}
+}
diff --git a/meta-openembedded/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb b/meta-openembedded/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb
index 0c8aaef..b0042b6 100644
--- a/meta-openembedded/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb
@@ -7,7 +7,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
 
-SRC_URI = "git://github.com/rhinstaller/isomd5sum.git;branch=master \
+SRC_URI = "git://github.com/rhinstaller/isomd5sum.git;branch=master;protocol=https \
            file://0001-tweak-install-prefix.patch \
            file://0002-fix-parallel-error.patch \
 "
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 f2805a1..caa1395 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"
+SRC_URI = "git://github.com/snarlistic/jpnevulator.git;protocol=http;branch=master;protocol=https"
 SRCREV = "bc1d4f6587a4a4829b5d55e3ca7ad584da6de545"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb b/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
index 99cf6ab..15a7965 100644
--- a/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
@@ -9,7 +9,7 @@
 DEPENDS:append:class-target = " swig-native sblim-cmpi-devel python3"
 DEPENDS:append:class-native = " cmpi-bindings-native"
 
-SRC_URI = "git://github.com/rnovacek/konkretcmpi.git \
+SRC_URI = "git://github.com/rnovacek/konkretcmpi.git;branch=master;protocol=https \
            file://0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch \
            file://0001-drop-including-rpath-cmake-module.patch \
            "
diff --git a/meta-openembedded/meta-oe/recipes-extended/libbacktrace/libbacktrace_git.bb b/meta-openembedded/meta-oe/recipes-extended/libbacktrace/libbacktrace_git.bb
index d930b43..609e55f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libbacktrace/libbacktrace_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libbacktrace/libbacktrace_git.bb
@@ -8,7 +8,7 @@
 
 DEPENDS += "libunwind"
 
-SRC_URI = "git://github.com/ianlancetaylor/libbacktrace;protocol=https"
+SRC_URI = "git://github.com/ianlancetaylor/libbacktrace;protocol=https;branch=master"
 
 PV = "1.0+git${SRCPV}"
 SRCREV = "4f57c999716847e45505b3df170150876b545088"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0001-lvm-Do-not-include-duplicate-entries-in-bd_lvm_lvs-o.patch b/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0001-lvm-Do-not-include-duplicate-entries-in-bd_lvm_lvs-o.patch
new file mode 100644
index 0000000..e608358
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0001-lvm-Do-not-include-duplicate-entries-in-bd_lvm_lvs-o.patch
@@ -0,0 +1,100 @@
+From d10fb2c0ee60c97f4dfeab4506a347c26cb389df Mon Sep 17 00:00:00 2001
+From: Vojtech Trefny <vtrefny@redhat.com>
+Date: Tue, 7 Dec 2021 15:50:45 +0800
+Subject: [PATCH] lvm: Do not include duplicate entries in bd_lvm_lvs output
+
+We use "-o segtypes" for the "lvs" command which means multisegment
+LVs will be twice in the output.
+
+Signed-off-by: Vojtech Trefny <vtrefny@redhat.com>
+
+Upstream-Status: Backport [https://github.com/storaged-project/libblockdev/pull/671]
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ src/plugins/lvm.c | 17 +++++++++++++++--
+ tests/lvm_test.py | 41 +++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 56 insertions(+), 2 deletions(-)
+
+diff --git a/src/plugins/lvm.c b/src/plugins/lvm.c
+index 2be1dbd..acd5b84 100644
+--- a/src/plugins/lvm.c
++++ b/src/plugins/lvm.c
+@@ -1810,8 +1810,21 @@ BDLVMLVdata** bd_lvm_lvs (const gchar *vg_name, GError **error) {
+         if (table && (num_items == 15)) {
+             /* valid line, try to parse and record it */
+             lvdata = get_lv_data_from_table (table, TRUE);
+-            if (lvdata)
+-                g_ptr_array_add (lvs, lvdata);
++            if (lvdata) {
++                /* ignore duplicate entries in lvs output, these are caused by multi segments LVs */
++                for (gsize i = 0; i < lvs->len; i++) {
++                    if (g_strcmp0 (((BDLVMLVdata *) g_ptr_array_index (lvs, i))->lv_name, lvdata->lv_name) == 0) {
++                        g_debug("Duplicate LV entry for '%s' found in lvs output",
++                                  lvdata->lv_name);
++                        bd_lvm_lvdata_free (lvdata);
++                        lvdata = NULL;
++                        break;
++                    }
++                }
++
++                if (lvdata)
++                    g_ptr_array_add (lvs, lvdata);
++            }
+         } else
+             if (table)
+                 g_hash_table_destroy (table);
+diff --git a/tests/lvm_test.py b/tests/lvm_test.py
+index eb94c91..ab0de21 100644
+--- a/tests/lvm_test.py
++++ b/tests/lvm_test.py
+@@ -915,6 +915,47 @@ class LvmTestLVs(LvmPVVGLVTestCase):
+         lvs = BlockDev.lvm_lvs("testVG")
+         self.assertEqual(len(lvs), 1)
+ 
++class LvmTestLVsMultiSegment(LvmPVVGLVTestCase):
++    def _clean_up(self):
++        try:
++            BlockDev.lvm_lvremove("testVG", "testLV2", True, None)
++        except:
++            pass
++
++        LvmPVVGLVTestCase._clean_up(self)
++
++    def test_lvs(self):
++        """Verify that it's possible to gather info about LVs"""
++
++        succ = BlockDev.lvm_pvcreate(self.loop_dev, 0, 0, None)
++        self.assertTrue(succ)
++
++        succ = BlockDev.lvm_vgcreate("testVG", [self.loop_dev], 0, None)
++        self.assertTrue(succ)
++
++        succ = BlockDev.lvm_lvcreate("testVG", "testLV", 10 * 1024**2)
++        self.assertTrue(succ)
++
++        lvs = BlockDev.lvm_lvs("testVG")
++        self.assertEqual(len(lvs), 1)
++        self.assertListEqual([lv.lv_name for lv in lvs], ["testLV"])
++
++        # add second LV
++        succ = BlockDev.lvm_lvcreate("testVG", "testLV2", 10 * 1024**2)
++        self.assertTrue(succ)
++
++        lvs = BlockDev.lvm_lvs("testVG")
++        self.assertEqual(len(lvs), 2)
++        self.assertListEqual([lv.lv_name for lv in lvs], ["testLV", "testLV2"])
++
++        # by resizing the first LV we will create two segments
++        succ = BlockDev.lvm_lvresize("testVG", "testLV", 20 * 1024**2, None)
++        self.assertTrue(succ)
++
++        lvs = BlockDev.lvm_lvs("testVG")
++        self.assertEqual(len(lvs), 2)
++        self.assertListEqual([lv.lv_name for lv in lvs], ["testLV", "testLV2"])
++
+ class LvmPVVGthpoolTestCase(LvmPVVGTestCase):
+     def _clean_up(self):
+         try:
+-- 
+2.27.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.26.bb b/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.26.bb
index 7325b26..b9c3bbb 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.26.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.26.bb
@@ -10,7 +10,9 @@
 
 inherit autotools gobject-introspection pkgconfig
 
-SRC_URI = "git://github.com/storaged-project/libblockdev;branch=2.x-branch"
+SRC_URI = "git://github.com/storaged-project/libblockdev;branch=2.x-branch;protocol=https \
+           file://0001-lvm-Do-not-include-duplicate-entries-in-bd_lvm_lvs-o.patch \
+"
 SRCREV = "47ff12242c89e36a33259d18b7068b26c3bb1c64"
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_6.0.2.bb b/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_6.0.2.bb
index 1e20338..eabe1d4 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_6.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_6.0.2.bb
@@ -10,7 +10,7 @@
 DEPENDS:append:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"
 
 SRCREV = "29d82c80bcc62be2878a9ac080de7eb286c4beb9"
-SRC_URI = "git://github.com/Pulse-Eight/libcec.git;branch=release \
+SRC_URI = "git://github.com/Pulse-Eight/libcec.git;branch=release;protocol=https \
            file://0001-CheckPlatformSupport.cmake-Do-not-hardcode-lib-path.patch \
            file://0001-Enhance-reproducibility.patch \
            file://0001-Remove-buggy-test-confusing-host-and-target.patch \
diff --git a/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb b/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
index 116ecd8..7ca2a5f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
@@ -11,7 +11,7 @@
 PV = "0.7.0"
 
 SRCREV = "47cbed5355ffda7b952193a770a9a9fa9f89b25b"
-SRC_URI = "git://github.com/libdivecomputer/libdivecomputer.git;protocol=https \
+SRC_URI = "git://github.com/libdivecomputer/libdivecomputer.git;protocol=https;branch=master \
           "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb
index 4114764..a7d2922 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb
@@ -9,7 +9,7 @@
 inherit autotools pkgconfig python3native python3targetconfig
 
 SRCREV = "c5a30e9267068436a75b5d00fcbf95cb9c1f4dcd"
-SRC_URI = "git://github.com/libimobiledevice/libplist;protocol=https"
+SRC_URI = "git://github.com/libimobiledevice/libplist;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_2.0.2.bb b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_2.0.2.bb
index f94c767..171e555 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_2.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_2.0.2.bb
@@ -9,7 +9,7 @@
 PKGV = "${GITPKGVTAG}"
 
 SRCREV = "ce98c346b7c1dc2a21faea4fd3f32c88e27ca2af"
-SRC_URI = "git://github.com/libimobiledevice/libusbmuxd;protocol=https"
+SRC_URI = "git://github.com/libimobiledevice/libusbmuxd;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/libleak/libleak_git.bb b/meta-openembedded/meta-oe/recipes-extended/libleak/libleak_git.bb
index 32d509b..60aa07b 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libleak/libleak_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libleak/libleak_git.bb
@@ -8,7 +8,7 @@
 
 DEPENDS += "libbacktrace"
 
-SRC_URI = "gitsm://github.com/WuBingzheng/libleak;protocol=https \
+SRC_URI = "gitsm://github.com/WuBingzheng/libleak;protocol=https;branch=master \
            file://0001-respect-environment-variables.patch \
           "
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblightmodbus/liblightmodbus_2.0.2.bb b/meta-openembedded/meta-oe/recipes-extended/liblightmodbus/liblightmodbus_2.0.2.bb
index 7fc5997..bbfee1f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/liblightmodbus/liblightmodbus_2.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/liblightmodbus/liblightmodbus_2.0.2.bb
@@ -7,7 +7,7 @@
 
 inherit cmake pkgconfig
 
-SRC_URI = "git://github.com/Jacajack/liblightmodbus.git;protocol=https \
+SRC_URI = "git://github.com/Jacajack/liblightmodbus.git;protocol=https;branch=master \
            file://0001-cmake-Use-GNUInstallDirs-instead-of-hardcoding-lib-p.patch \
           "
 SRCREV = "59d2b405f95701e5b04326589786dbb43ce49e81"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-typo.patch b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-typo.patch
deleted file mode 100644
index 384a4a4..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-typo.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From: =?utf-8?b?IlNaIExpbiAo5p6X5LiK5pm6KSI=?= <szlin@debian.org>
-Date: Thu, 27 Sep 2018 14:51:32 +0800
-Subject: Fix typo
-
----
- doc/modbus_mapping_new_start_address.txt | 4 ++--
- doc/modbus_reply.txt                     | 2 +-
- doc/modbus_reply_exception.txt           | 2 +-
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/doc/modbus_mapping_new_start_address.txt b/doc/modbus_mapping_new_start_address.txt
-index 4fa196a..94a81fb 100644
---- a/doc/modbus_mapping_new_start_address.txt
-+++ b/doc/modbus_mapping_new_start_address.txt
-@@ -21,9 +21,9 @@ The _modbus_mapping_new_start_address()_ function shall allocate four arrays to
- store bits, input bits, registers and inputs registers. The pointers are stored
- in modbus_mapping_t structure. All values of the arrays are initialized to zero.
- 
--The different starting adresses make it possible to place the mapping at any
-+The different starting addresses make it possible to place the mapping at any
- address in each address space. This way, you can give access to values stored
--at high adresses without allocating memory from the address zero, for eg. to
-+at high addresses without allocating memory from the address zero, for eg. to
- make available registers from 10000 to 10009, you can use:
- 
- [source,c]
-diff --git a/doc/modbus_reply.txt b/doc/modbus_reply.txt
-index 0b29d6f..6b71d11 100644
---- a/doc/modbus_reply.txt
-+++ b/doc/modbus_reply.txt
-@@ -3,7 +3,7 @@ modbus_reply(3)
- 
- NAME
- ----
--modbus_reply - send a reponse to the received request
-+modbus_reply - send a response to the received request
- 
- 
- SYNOPSIS
-diff --git a/doc/modbus_reply_exception.txt b/doc/modbus_reply_exception.txt
-index 7e6324f..b2170be 100644
---- a/doc/modbus_reply_exception.txt
-+++ b/doc/modbus_reply_exception.txt
-@@ -3,7 +3,7 @@ modbus_reply_exception(3)
- 
- NAME
- ----
--modbus_reply_exception - send an exception reponse
-+modbus_reply_exception - send an exception response
- 
- 
- SYNOPSIS
diff --git a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d.patch b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d.patch
deleted file mode 100644
index 7fae34e..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d Mon Sep 17 00:00:00 2001
-From: i-ky <gl.ivanovsky@gmail.com>
-Date: Tue, 10 Jul 2018 15:58:45 +0300
-Subject: [PATCH] Fixed MODBUS_GET_* macros in case of negative values
-
-In case resulting value should be negative it is incorrect to use '+' operator to construct it from pieces, because highest bytes will result in negative number after bitwise shift while others will stay positive. Replacing addition with '|' should solve the issue.
----
- src/modbus.h | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/modbus.h b/src/modbus.h
-index f6e9a5f5..c63f5ceb 100644
---- a/src/modbus.h
-+++ b/src/modbus.h
-@@ -245,12 +245,12 @@ MODBUS_API int modbus_reply_exception(modbus_t *ctx, const uint8_t *req,
- #define MODBUS_GET_HIGH_BYTE(data) (((data) >> 8) & 0xFF)
- #define MODBUS_GET_LOW_BYTE(data) ((data) & 0xFF)
- #define MODBUS_GET_INT64_FROM_INT16(tab_int16, index) \
--    (((int64_t)tab_int16[(index)    ] << 48) + \
--     ((int64_t)tab_int16[(index) + 1] << 32) + \
--     ((int64_t)tab_int16[(index) + 2] << 16) + \
-+    (((int64_t)tab_int16[(index)    ] << 48) | \
-+     ((int64_t)tab_int16[(index) + 1] << 32) | \
-+     ((int64_t)tab_int16[(index) + 2] << 16) | \
-       (int64_t)tab_int16[(index) + 3])
--#define MODBUS_GET_INT32_FROM_INT16(tab_int16, index) ((tab_int16[(index)] << 16) + tab_int16[(index) + 1])
--#define MODBUS_GET_INT16_FROM_INT8(tab_int8, index) ((tab_int8[(index)] << 8) + tab_int8[(index) + 1])
-+#define MODBUS_GET_INT32_FROM_INT16(tab_int16, index) ((tab_int16[(index)] << 16) | tab_int16[(index) + 1])
-+#define MODBUS_GET_INT16_FROM_INT8(tab_int8, index) ((tab_int8[(index)] << 8) | tab_int8[(index) + 1])
- #define MODBUS_SET_INT16_TO_INT8(tab_int8, index, value) \
-     do { \
-         tab_int8[(index)] = (value) >> 8;  \
diff --git a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.6.bb b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.6.bb
deleted file mode 100644
index 8e42fdc..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.6.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-require libmodbus.inc
-
-SRC_URI += "file://f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d.patch \
-	    file://Fix-float-endianness-issue-on-big-endian-arch.patch \
-	    file://Fix-typo.patch"
-SRC_URI[md5sum] = "15c84c1f7fb49502b3efaaa668cfd25e"
-SRC_URI[sha256sum] = "d7d9fa94a16edb094e5fdf5d87ae17a0dc3f3e3d687fead81835d9572cf87c16"
-
-# this file has been created one minute after the configure file, so it doesn't get recreated during configure step
-do_configure:prepend() {
-	rm -rf ${S}/tests/unit-test.h
-}
diff --git a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.7.bb b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.7.bb
new file mode 100644
index 0000000..6c0e315
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.7.bb
@@ -0,0 +1,9 @@
+require libmodbus.inc
+
+SRC_URI += "file://Fix-float-endianness-issue-on-big-endian-arch.patch"
+SRC_URI[sha256sum] = "7dfe958431d0570b271e1a5b329b76a658e89c614cf119eb5aadb725c87f8fbd"
+
+# this file has been created one minute after the configure file, so it doesn't get recreated during configure step
+do_configure:prepend() {
+	rm -rf ${S}/tests/unit-test.h
+}
diff --git a/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb b/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb
index 7ff0725..ec427a9 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb
@@ -18,7 +18,7 @@
 
 DEPENDS = "cracklib virtual/gettext"
 
-inherit autotools distutils3-base gettext
+inherit autotools setuptools3-base gettext
 
 B = "${S}"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.3.bb b/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.3.bb
deleted file mode 100644
index 18d6a4f..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.3.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "An IPC library for high performance servers"
-DESCRIPTION = "libqb is a library with the primary purpose of providing high performance client server reusable features. \
-It provides high performance logging, tracing, ipc, and poll."
-
-HOMEPAGE = "https://github.com/clusterlabs/libqb/wiki"
-SECTION = "libs"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785"
-
-inherit autotools pkgconfig
-
-SRCREV = "404adbcd998ec83643e47d92b3ea8d9c3970e68b"
-SRC_URI = "git://github.com/ClusterLabs/${BPN}.git \
-          "
-S = "${WORKDIR}/git"
-
-DEPENDS += "libxml2"
-
-CFLAGS += "-pthread -D_REENTRANT"
-
-do_configure:prepend() {
-    ( cd ${S}
-    ${S}/autogen.sh )
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.4.bb b/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.4.bb
new file mode 100644
index 0000000..48a7d08
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.4.bb
@@ -0,0 +1,26 @@
+SUMMARY = "An IPC library for high performance servers"
+DESCRIPTION = "libqb is a library with the primary purpose of providing high performance client server reusable features. \
+It provides high performance logging, tracing, ipc, and poll."
+
+HOMEPAGE = "https://github.com/clusterlabs/libqb/wiki"
+SECTION = "libs"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785"
+
+inherit autotools pkgconfig
+
+SRCREV = "a2691b96188033b5ad5c08871982048ae1f4f4e8"
+SRC_URI = "git://github.com/ClusterLabs/${BPN}.git;branch=main;protocol=https \
+          "
+S = "${WORKDIR}/git"
+
+DEPENDS += "libxml2"
+
+CFLAGS += "-pthread -D_REENTRANT"
+
+do_configure:prepend() {
+    ( cd ${S}
+    ${S}/autogen.sh )
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb b/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb
index 7741305..631860a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb
@@ -11,7 +11,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
 
 
-SRC_URI = "git://github.com/abrt/libreport.git;protocol=https"
+SRC_URI = "git://github.com/abrt/libreport.git;protocol=https;branch=master"
 SRC_URI += "file://0001-Makefile.am-remove-doc-and-apidoc.patch \
             file://0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch \
             file://0003-without-build-plugins.patch \
diff --git a/meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab/0001-configure.ac-Do-not-use-single-line-comment.patch b/meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab/0001-configure.ac-Do-not-use-single-line-comment.patch
deleted file mode 100644
index 46493bb..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab/0001-configure.ac-Do-not-use-single-line-comment.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a8502c5a7e336f1e5068f9dd3bdb359d787f9bdc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 5 Feb 2021 18:35:12 -0800
-Subject: [PATCH] configure.ac: Do not use single line comment
-
-autoconf 2.70+ does not like it and regenerating configure script fails
-
-| ../libstatgrab-0.92/configure: line 7818: syntax error near unexpected token `ac_fn_check_decl'
-| ../libstatgrab-0.92/configure: line 7818: `fi ac_fn_check_decl "$LINENO" "__sun" "ac_cv_have_decl___sun" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"'
-
-Upstream-Status: Submitted [https://github.com/libstatgrab/libstatgrab/pull/128]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 99518f8..74e7f0f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -100,7 +100,8 @@ AC_TYPE_UNSIGNED_LONG_LONG_INT
- 
- dnl Check for extra flags to enable some kind of behavior
- AC_CHECK_DECL([_AIX],[ac_cv_need_minus_d_linux_source_compat="yes"; ac_cv_need_minus_d_all_source="yes"])
--AC_CHECK_DECL([__linux],[ac_cv_need_minus_d_gnu_source="yes"]) dnl probably required by kfreebsd, too?
-+dnl probably required by kfreebsd, too?
-+AC_CHECK_DECL([__linux],[ac_cv_need_minus_d_gnu_source="yes"])
- AC_CHECK_DECL([__sun],[ac_cv_need_minus_d_extensions="yes"; ac_cv_need_minus_d_posix_pthread_semantics="yes"])
- AC_CHECK_DECL([__hpux],[ac_cv_need_minus_d_hpux_source="yes"])
- 
--- 
-2.30.0
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.1.bb b/meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.1.bb
new file mode 100644
index 0000000..61f159c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.1.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Utilities to collect and visualise system statistics"
+HOMEPAGE = "http://www.i-scream.org/libstatgrab/"
+
+LICENSE = "GPL-2.0+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "ncurses"
+
+PACKAGES:prepend = "statgrab statgrab-dbg saidar saidar-dbg ${PN}-mrtg "
+
+# don't use the git tag unless docbooc2x is available to build the manpages
+SRC_URI = "https://github.com/libstatgrab/libstatgrab/releases/download/LIBSTATGRAB_0_92_1/libstatgrab-${PV}.tar.gz \
+          "
+SRC_URI[sha256sum] = "5688aa4a685547d7174a8a373ea9d8ee927e766e3cc302bdee34523c2c5d6c11"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+
+# Perl5 is for tests only
+EXTRA_OECONF = "--without-perl5 --with-mnttab=/proc/mounts"
+
+# use with caution - default properties are configured to trace
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[log4cplus] = "--with-log4cplus,--without-log4cplus,log4cplus"
+PACKAGECONFIG[logging] = "--enable-logging,--disable-logging,"
+
+inherit autotools pkgconfig
+
+FILES:statgrab = "${bindir}/statgrab"
+FILES:statgrab-dbg = "${bindir}/.debug/statgrab"
+FILES:saidar = "${bindir}/saidar"
+FILES:saidar-dbg = "${bindir}/.debug/saidar"
+FILES:${PN}-mrtg = "${bindir}/statgrab-make-mrtg-config ${bindir}/statgrab-make-mrtg-index"
+RDEPENDS:${PN}-mrtg:append = " perl statgrab"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.bb b/meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.bb
deleted file mode 100644
index 3f15a25..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-DESCRIPTION = "Utilities to collect and visualise system statistics"
-HOMEPAGE = "http://www.i-scream.org/libstatgrab/"
-
-LICENSE = "GPL-2.0+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "ncurses"
-
-PACKAGES:prepend = "statgrab statgrab-dbg saidar saidar-dbg ${PN}-mrtg "
-
-# don't use the git tag unless docbooc2x is available to build the manpages
-SRC_URI = "https://github.com/libstatgrab/libstatgrab/releases/download/LIBSTATGRAB_0_92/libstatgrab-0.92.tar.gz \
-           file://0001-configure.ac-Do-not-use-single-line-comment.patch \
-          "
-SRC_URI[md5sum] = "5362b2ddbec54b3901e7d70c22cda249"
-SRC_URI[sha256sum] = "5bf1906aff9ffc3eeacf32567270f4d819055d8386d98b9c8c05519012d5a196"
-
-UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
-
-# Perl5 is for tests only
-EXTRA_OECONF = "--without-perl5 --with-mnttab=/proc/mounts"
-
-# use with caution - default properties are configured to trace
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[log4cplus] = "--with-log4cplus,--without-log4cplus,log4cplus"
-PACKAGECONFIG[logging] = "--enable-logging,--disable-logging,"
-
-inherit autotools pkgconfig
-
-FILES:statgrab = "${bindir}/statgrab"
-FILES:statgrab-dbg = "${bindir}/.debug/statgrab"
-FILES:saidar = "${bindir}/saidar"
-FILES:saidar-dbg = "${bindir}/.debug/saidar"
-FILES:${PN}-mrtg = "${bindir}/statgrab-make-mrtg-config ${bindir}/statgrab-make-mrtg-index"
-RDEPENDS:${PN}-mrtg:append = " perl statgrab"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb b/meta-openembedded/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb
index 781e7aa..c93c8b0 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "GPL-2.0"
 LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
 
-SRC_URI = "git://git.code.sf.net/p/libuio/code \
+SRC_URI = "git://git.code.sf.net/p/libuio/code;branch=master \
            file://replace_inline_with_static-inline.patch \
            file://0001-include-fcntl.h-for-O_RDWR-define.patch \
            "
diff --git a/meta-openembedded/meta-oe/recipes-extended/libyang/libyang_2.0.7.bb b/meta-openembedded/meta-oe/recipes-extended/libyang/libyang_2.0.7.bb
index 6c675c4..2f5e461 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libyang/libyang_2.0.7.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libyang/libyang_2.0.7.bb
@@ -8,7 +8,7 @@
 
 SRCREV = "69d9fff65abb58beb0bb6aa9ecacd572ca1dfc56"
 
-SRC_URI = "git://github.com/CESNET/libyang.git \
+SRC_URI = "git://github.com/CESNET/libyang.git;branch=master;protocol=https \
            file://libyang-skip-pcre2-config-add-stdint-h.patch \
            file://run-ptest \
            "
diff --git a/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_git.bb b/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_git.bb
index e8c6864..cc31323 100644
--- a/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_git.bb
@@ -9,7 +9,7 @@
 
 SRCREV = "877613493ff44807888ce1928129574be393cbb0"
 
-SRC_URI = "git://github.com/jessek/hashdeep.git \
+SRC_URI = "git://github.com/jessek/hashdeep.git;branch=master;protocol=https \
            file://wrong-variable-expansion.patch \
            file://0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch \
            "
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 596ec0b..671d320 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
@@ -11,7 +11,7 @@
 RDEPENDS:${PN} = "python3-core"
 
 SRCREV = "aa42957a2e227df41510047cece3cd606dc1cb6a"
-SRC_URI = "git://github.com/apache/nifi-minifi-cpp.git \
+SRC_URI = "git://github.com/apache/nifi-minifi-cpp.git;branch=master;protocol=https \
             https://curl.haxx.se/download/curl-7.64.0.tar.bz2;name=curl;subdir=git/thirdparty \
             https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.3.tar.gz;name=libressl;subdir=git/thirdparty \
             ${DEBIAN_MIRROR}/main/o/ossp-uuid/ossp-uuid_1.6.2.orig.tar.gz;name=ossp-uuid;subdir=git/thirdparty \
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0001-Cargo.toml-do-not-abort-on-panic.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0001-Cargo.toml-do-not-abort-on-panic.patch
similarity index 100%
rename from meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0001-Cargo.toml-do-not-abort-on-panic.patch
rename to meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0001-Cargo.toml-do-not-abort-on-panic.patch
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch
similarity index 100%
rename from meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch
rename to meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0001-rewrite-cargo-host-linker-in-python3.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0001-rewrite-cargo-host-linker-in-python3.patch
new file mode 100644
index 0000000..7b93817
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0001-rewrite-cargo-host-linker-in-python3.patch
@@ -0,0 +1,56 @@
+From 9eceb43dd676afe2f675bd65ab369ba4d14f6537 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 18 Nov 2021 07:16:39 +0000
+Subject: [PATCH] Rewrite cargo-host-linker in python3
+
+Mozjs compile failed with this failure:
+/bin/sh: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /build/tmp-glibc/work/corei7-64-wrs-linux/mozjs/91.1.0-r0/recipe-sysroot-native/usr/lib/libtinfo.so.5)
+
+Root Cause:
+cargo-host-linker has /bin/sh as it's interpreter, but cargo run the cmd
+with LD_LIBRARY_PATH set to recipe-sysroot-native. The host /bin/sh links
+libtinfo.so.5 under recipe-sysroot-native, which needs higher libc. But
+host libc is older libc. So the incompatible problem occurred.
+
+Solution:
+rewrite cargo-host-linker in python3
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ build/cargo-host-linker | 24 +++++++---
+ 1 file changed, 21 insertions(+), 3 deletions(-)
+
+diff --git a/build/cargo-host-linker b/build/cargo-host-linker
+index cbd0472bf7..ccd8bffec1 100755
+--- a/build/cargo-host-linker
++++ b/build/cargo-host-linker
+@@ -1,3 +1,21 @@
+-#!/bin/sh
+-# See comment in cargo-linker.
+-eval ${MOZ_CARGO_WRAP_HOST_LD} ${MOZ_CARGO_WRAP_HOST_LDFLAGS} '"$@"'
++#!/usr/bin/env python3
++
++import os,sys
++
++if os.environ['MOZ_CARGO_WRAP_HOST_LD'].strip():
++    binary=os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]
++else:
++    sys.exit(0)
++
++if os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS'].strip():
++    if os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:]:
++        args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:] + [os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS']] + sys.argv[1:]
++    else:
++        args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + [os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS']] + sys.argv[1:]
++else:
++    if os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:]:
++        args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:] + sys.argv[1:]
++    else:
++        args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + sys.argv[1:]
++
++os.execvp(binary, args)
+-- 
+2.33.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0001-util.configure-fix-one-occasionally-reproduced-confi.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0001-util.configure-fix-one-occasionally-reproduced-confi.patch
new file mode 100644
index 0000000..5472edd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0001-util.configure-fix-one-occasionally-reproduced-confi.patch
@@ -0,0 +1,50 @@
+From b13cad4abc53f816f64c8b0af70cb46820746c72 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 11 Nov 2021 16:05:54 +0800
+Subject: [PATCH] util.configure: fix one occasionally reproduced configure
+ failure
+
+error:
+| checking whether the C++ compiler supports -Wno-range-loop-analysis...
+| DEBUG: Creating /tmp/conftest.jr1qrcw3.cpp with content:
+| DEBUG: | int
+| DEBUG: | main(void)
+| DEBUG: | {
+| DEBUG: |
+| DEBUG: | ;
+| DEBUG: | return 0;
+| DEBUG: | }
+| DEBUG: Executing: aarch64-wrs-linux-g++ -mcpu=cortex-a53 -march=armv8-a+crc -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/mozjs/91.1.0-r0/recipe-sysroot /tmp/conftest.jr1qrcw3.cpp -Werror -Wrange-loop-analysis -c
+| DEBUG: The command returned non-zero exit status 1.
+| DEBUG: Its error output was:
+...
+| File "/mozjs/91.1.0-r0/firefox-91.1.0/build/moz.configure/util.configure", line 239, in try_invoke_compiler
+| os.remove(path)
+| FileNotFoundError: [Errno 2] No such file or directory: '/tmp/conftest.jr1qrcw3.cpp'
+
+It should be another process that deleted this file by using
+"rm -rf conftest*" inappropriately
+
+Upstream-Status: Submitted [https://bugzilla.mozilla.org/show_bug.cgi?id=1740667]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ build/moz.configure/util.configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/moz.configure/util.configure b/build/moz.configure/util.configure
+index 8f35e89c73..84e256647d 100644
+--- a/build/moz.configure/util.configure
++++ b/build/moz.configure/util.configure
+@@ -222,7 +222,7 @@ def try_invoke_compiler(compiler, language, source, flags=None, onerror=None):
+         "C++": ".cpp",
+     }[language]
+ 
+-    fd, path = mkstemp(prefix="conftest.", suffix=suffix, text=True)
++    fd, path = mkstemp(prefix="try_invoke_compiler_conftest.", suffix=suffix, text=True)
+     try:
+         source = source.encode("ascii", "replace")
+ 
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0002-moz.configure-do-not-look-for-llvm-objdump.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0002-moz.configure-do-not-look-for-llvm-objdump.patch
similarity index 100%
rename from meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0002-moz.configure-do-not-look-for-llvm-objdump.patch
rename to meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0002-moz.configure-do-not-look-for-llvm-objdump.patch
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch
similarity index 100%
rename from meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch
rename to meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0004-use-asm-sgidefs.h.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0004-use-asm-sgidefs.h.patch
similarity index 100%
copy from meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0004-use-asm-sgidefs.h.patch
copy to meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0004-use-asm-sgidefs.h.patch
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/nojit-32bit-arch-fix.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0005-nojit-32bit-arch-fix.patch
similarity index 100%
rename from meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/nojit-32bit-arch-fix.patch
rename to meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0005-nojit-32bit-arch-fix.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0006-Fix-build-on-powerpc.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0006-Fix-build-on-powerpc.patch
new file mode 100644
index 0000000..80bf746
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/0006-Fix-build-on-powerpc.patch
@@ -0,0 +1,36 @@
+From 0e0548e3f95e22a39db8d5b934afe0672a3f801b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Mon, 1 Nov 2021 08:13:29 +0100
+Subject: [PATCH] Fix build on powerpc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Another fix for (this time JIT enabled)
+| <...>/irefox-91.2.0/js/src/wasm/WasmFrame.cpp:57:76: error: static assertion failed: Aligned after pushing DebugFrame
+|    57 |   static_assert((offsetof(DebugFrame, frame_) + sizeof(Frame)) % Alignment == 0,
+|       |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ js/src/wasm/WasmFrame.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/js/src/wasm/WasmFrame.h b/js/src/wasm/WasmFrame.h
+index 893762e..2d90656 100644
+--- a/js/src/wasm/WasmFrame.h
++++ b/js/src/wasm/WasmFrame.h
+@@ -232,7 +232,7 @@ class DebugFrame {
+ #if defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_ARM) || \
+     (defined(JS_CODEGEN_NONE) && \
+      (defined(__riscv) && __riscv_xlen == 32) || defined(__mips__)) || \
+-    defined(JS_CODEGEN_X86) || defined(__wasi__)
++    defined(JS_CODEGEN_X86) || defined(__wasi__) || defined(__powerpc__)
+   // See alignmentStaticAsserts().  For MIPS32, ARM32 and X86 DebugFrame is only
+   // 4-byte aligned, so we add another word to get up to 8-byte
+   // alignment.
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/fix-musl-build.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/fix-musl-build.patch
similarity index 100%
copy from meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/fix-musl-build.patch
copy to meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/fix-musl-build.patch
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/riscv32.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/riscv32.patch
similarity index 100%
rename from meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/riscv32.patch
rename to meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91/riscv32.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91_91.4.0.bb b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91_91.4.0.bb
new file mode 100644
index 0000000..dd02ed9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91_91.4.0.bb
@@ -0,0 +1,74 @@
+SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
+HOMEPAGE = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dc9b6ecd19a14a54a628edaaf23733bf"
+
+SRC_URI = "https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/firefox-${PV}esr.source.tar.xz \
+           file://0001-Cargo.toml-do-not-abort-on-panic.patch \
+           file://0002-moz.configure-do-not-look-for-llvm-objdump.patch \
+           file://0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch \
+           file://0004-use-asm-sgidefs.h.patch \
+           file://fix-musl-build.patch \
+           file://0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch \
+           file://riscv32.patch \
+           file://0005-nojit-32bit-arch-fix.patch \
+           file://0006-Fix-build-on-powerpc.patch \
+           file://0001-util.configure-fix-one-occasionally-reproduced-confi.patch \
+           file://0001-rewrite-cargo-host-linker-in-python3.patch  \
+           "
+SRC_URI[sha256sum] = "e722829db490f9332712a81c35996541737bbfb05232d47190fee779c4fcb327"
+
+S = "${WORKDIR}/firefox-${@d.getVar("PV").replace("esr", "")}"
+
+inherit pkgconfig perlnative python3native rust
+
+DEPENDS += "zlib cargo-native python3"
+
+B = "${WORKDIR}/build"
+
+export PYTHONPATH = "${S}/build:${S}/third_party/python/PyYAML/lib3:${S}/testing/mozbase/mozfile:${S}/python/mozboot:${S}/third_party/python/distro:${S}/testing/mozbase/mozinfo:${S}/config:${S}/testing/mozbase/manifestparser:${S}/third_party/python/pytoml:${S}/testing/mozbase/mozprocess:${S}/third_party/python/six:${S}/python/mozbuild:${S}/python/mozbuild/mozbuild:${S}/python/mach:${S}/third_party/python/jsmin:${S}/python/mozversioncontrol"
+
+export HOST_CC = "${BUILD_CC}"
+export HOST_CXX = "${BUILD_CXX}"
+export HOST_CFLAGS = "${BUILD_CFLAGS}"
+export HOST_CPPFLAGS = "${BUILD_CPPFLAGS}"
+export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
+
+export AS = "${CC}"
+
+export RUSTFLAGS
+
+JIT ?= ""
+
+JIT:mipsarch = "--disable-jit"
+
+do_configure() {
+    cd ${B}
+    python3 ${S}/configure.py \
+        --enable-project=js \
+        --target=${HOST_SYS} \
+        --host=${BUILD_SYS} \
+        --prefix=${prefix} \
+        --libdir=${libdir} \
+        --disable-jemalloc \
+        ${JIT}
+
+}
+
+do_install() {
+    oe_runmake 'DESTDIR=${D}' install
+}
+
+inherit multilib_script multilib_header
+
+MULTILIB_SCRIPTS += " ${PN}-dev:${bindir}/js91-config"
+
+do_install:append() {
+    oe_multilib_header mozjs-91/js-config.h
+    sed -e 's@${STAGING_DIR_HOST}@@g' \
+        -i ${D}${bindir}/js91-config
+    rm -f ${D}${libdir}/libjs_static.ajs
+}
+
+PACKAGES =+ "lib${BPN}"
+FILES:lib${BPN} += "${libdir}/lib*"
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 dcfbabc..2a50550 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 \
+SRC_URI = "git://github.com/eclipse/${BPN}.git;protocol=http;branch=master;protocol=https \
            file://0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch \
            file://0001-include-Declare-gVERSION-global-as-extern.patch \
            "
@@ -18,7 +18,7 @@
 # CMakeLists.txt checks the architecture, only x86 and ARM supported for now
 COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
 
-inherit cmake distutils3-base
+inherit cmake setuptools3-base
 
 DEPENDS += "json-c"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.11.bb b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.11.bb
index 23db7c6..af0a3c2 100644
--- a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.11.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.11.bb
@@ -17,7 +17,7 @@
 
 SRCREV = "d8eba6cb6682b59d84ca1da67a523520b879ade6"
 
-SRC_URI = "git://github.com/Openwsman/openwsman.git \
+SRC_URI = "git://github.com/Openwsman/openwsman.git;branch=master;protocol=https \
            file://libssl-is-required-if-eventint-supported.patch \
            file://openwsmand.service \
            file://0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch \
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2021.5.bb b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2021.5.bb
deleted file mode 100644
index 08cfb13..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2021.5.bb
+++ /dev/null
@@ -1,189 +0,0 @@
-SUMMARY = "Versioned Operating System Repository."
-DESCRIPTION = "libostree is both a shared library and suite of command line \
-tools that combines a \"git-like\" model for committing and downloading \
-bootable filesystem trees, along with a layer for deploying them and managing \
-the bootloader configuration."
-HOMEPAGE = "https://ostree.readthedocs.io"
-LICENSE = "LGPLv2.1"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-DEPENDS = " \
-    glib-2.0 \
-    e2fsprogs \
-    libcap \
-    zlib \
-    xz \
-    bison-native \
-"
-
-# The Yocto mirror has an old export of ostree:
-# http://downloads.yoctoproject.org/mirror/sources/git2_github.com.ostreedev.ostree.tar.gz
-PREMIRRORS = ""
-
-SRC_URI = " \
-    gitsm://github.com/ostreedev/ostree;branch=main \
-    file://run-ptest \
-"
-SRCREV = "63bf5e606b24c7343bfe622bf6af2110ee6beabc"
-
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+)"
-
-S = "${WORKDIR}/git"
-
-inherit autotools bash-completion gobject-introspection gtk-doc manpages pkgconfig ptest-gnome systemd
-
-# Package configuration - match ostree defaults, but without rofiles-fuse
-# otherwise we introduce a dependendency on meta-filesystems
-PACKAGECONFIG ??= " \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd libmount', '', d)} \
-    glib \
-    gpgme \
-    soup \
-"
-
-# We include soup because ostree can't (currently) be built without
-# soup or curl - https://github.com/ostreedev/ostree/issues/1897
-PACKAGECONFIG:class-native ??= " \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
-    builtin-grub2-mkconfig \
-    gpgme \
-    soup \
-"
-
-PACKAGECONFIG[avahi] = "--with-avahi, --without-avahi, avahi"
-PACKAGECONFIG[builtin-grub2-mkconfig] = "--with-builtin-grub2-mkconfig, --without-builtin-grub2-mkconfig"
-PACKAGECONFIG[curl] = "--with-curl, --without-curl, curl"
-PACKAGECONFIG[dracut] = "--with-dracut, --without-dracut"
-PACKAGECONFIG[glib] = "--with-crypto=glib"
-PACKAGECONFIG[gjs] = "ac_cv_path_GJS=${bindir}/gjs"
-PACKAGECONFIG[gnutls] = "--with-crypto=gnutls, , gnutls"
-PACKAGECONFIG[gpgme] = "--with-gpgme, --without-gpgme, gpgme"
-PACKAGECONFIG[libarchive] = "--with-libarchive, --without-libarchive, libarchive"
-PACKAGECONFIG[libmount] = "--with-libmount, --without-libmount, util-linux"
-PACKAGECONFIG[manpages] = "--enable-man, --disable-man, libxslt-native docbook-xsl-stylesheets-native"
-PACKAGECONFIG[mkinitcpio] = "--with-mkinitcpio, --without-mkinitcpio"
-PACKAGECONFIG[no-http2] = "--disable-http2, --enable-http2"
-PACKAGECONFIG[openssl] = "--with-crypto=openssl, , openssl"
-PACKAGECONFIG[rofiles-fuse] = "--enable-rofiles-fuse, --disable-rofiles-fuse, fuse"
-PACKAGECONFIG[selinux] = "--with-selinux, --without-selinux, libselinux"
-PACKAGECONFIG[smack] = "--with-smack, --without-smack, smack"
-PACKAGECONFIG[soup] = "--with-soup, --without-soup --disable-glibtest, libsoup-2.4"
-PACKAGECONFIG[static] = ""
-PACKAGECONFIG[systemd] = "--with-libsystemd --with-systemdsystemunitdir=${systemd_unitdir}/system, --without-libsystemd, systemd"
-PACKAGECONFIG[trivial-httpd-cmdline] = "--enable-trivial-httpd-cmdline, --disable-trivial-httpd-cmdline"
-
-EXTRA_OECONF = " \
-    ${@bb.utils.contains('PACKAGECONFIG', 'static', '--with-static-compiler=\'${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}\'', '', d)} \
-"
-
-# Makefile-libostree.am overrides this to avoid a build problem with clang,
-# but that fix breaks cross compilation and we don't need it
-EXTRA_OEMAKE = " \
-    INTROSPECTION_SCANNER_ENV= \
-"
-
-EXTRA_OECONF:class-native = " \
-    --enable-wrpseudo-compat \
-    --disable-otmpfile \
-"
-
-# Path to ${prefix}/lib/ostree/ostree-grub-generator is hardcoded on the
-# do_configure stage so we do depend on it
-SYSROOT_DIR = "${STAGING_DIR_TARGET}"
-SYSROOT_DIR:class-native = "${STAGING_DIR_NATIVE}"
-do_configure[vardeps] += "SYSROOT_DIR"
-
-do_configure:prepend() {
-    # this reflects what autogen.sh does, but the OE wrappers for autoreconf
-    # allow it to work without the other gyrations which exist there
-    cp ${S}/libglnx/Makefile-libglnx.am ${S}/libglnx/Makefile-libglnx.am.inc
-    cp ${S}/bsdiff/Makefile-bsdiff.am ${S}/bsdiff/Makefile-bsdiff.am.inc
-}
-
-do_install:append:class-native() {
-    create_wrapper ${D}${bindir}/ostree OSTREE_GRUB2_EXEC="${STAGING_LIBDIR_NATIVE}/ostree/ostree-grub-generator"
-}
-
-PACKAGE_BEFORE_PN = " \
-    ${PN}-dracut \
-    ${PN}-grub \
-    ${PN}-mkinitcpio \
-    ${PN}-switchroot \
-    ${PN}-trivial-httpd \
-"
-
-FILES:${PN} += " \
-    ${nonarch_libdir}/${BPN} \
-    ${nonarch_libdir}/tmpfiles.d \
-    ${systemd_unitdir}/system \
-    ${systemd_unitdir}/system-generators \
-"
-FILES:${PN}-dracut = " \
-    ${sysconfdir}/dracut.conf.d \
-    ${libdir}/dracut \
-"
-FILES:${PN}-grub = " \
-    ${sysconfdir}/grub.d \
-    ${libexecdir}/libostree/grub2-15_ostree \
-"
-FILES:${PN}-mkinitcpio = " \
-    ${sysconfdir}/ostree-mkinitcpio.conf \
-    ${libdir}/initcpio \
-"
-FILES:${PN}-switchroot = " \
-    ${nonarch_libdir}/${BPN}/ostree-prepare-root \
-    ${systemd_unitdir}/system/ostree-prepare-root.service \
-"
-FILES:${PN}-trivial-httpd = " \
-    ${libexecdir}/libostree/ostree-trivial-httpd \
-"
-
-RDEPENDS:${PN} = " \
-    ${@bb.utils.contains('PACKAGECONFIG', 'trivial-httpd-cmdline', '${PN}-trivial-httpd', '', d)} \
-"
-RDEPENDS:${PN}-dracut = "bash"
-RDEPENDS:${PN}-mkinitcpio = "bash"
-RDEPENDS:${PN}:class-target = " \
-    ${@bb.utils.contains('PACKAGECONFIG', 'gpgme', 'gnupg', '', d)} \
-    ${PN}-switchroot \
-"
-
-#
-# Note that to get ptest to pass you also need:
-#
-#   xattr in DISTRO_FEATURES
-#   static ostree-prepare-root (PACKAGECONFIG:append:pn-ostree = " static")
-#   meta-python in your layers
-#   overlayfs in your kernel (KERNEL_EXTRA_FEATURES += "features/overlayfs/overlayfs.scc")
-#   busybox built statically
-#   /var/tmp as a real filesystem (not a tmpfs)
-#   Sufficient disk space (IMAGE_ROOTFS_SIZE = "524288") and RAM (QB_MEM = "-m 1024")
-#
-RDEPENDS:${PN}-ptest += " \
-    attr \
-    bash \
-    coreutils \
-    cpio \
-    diffutils \
-    findutils \
-    grep \
-    python3-core \
-    python3-multiprocessing \
-    strace \
-    tar \
-    util-linux \
-    xz \
-    ${PN}-trivial-httpd \
-    python3-pyyaml \
-    ${@bb.utils.contains('PACKAGECONFIG', 'gjs', 'gjs', '', d)} \
-"
-RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils glibc-localedata-en-us"
-
-RRECOMMENDS:${PN} += "kernel-module-overlay"
-
-SYSTEMD_SERVICE:${PN} = "ostree-remount.service ostree-finalize-staged.path"
-SYSTEMD_SERVICE:${PN}-switchroot = "ostree-prepare-root.service"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2021.6.bb b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2021.6.bb
new file mode 100644
index 0000000..d2d5dc0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2021.6.bb
@@ -0,0 +1,209 @@
+SUMMARY = "Versioned Operating System Repository."
+DESCRIPTION = "libostree is both a shared library and suite of command line \
+tools that combines a \"git-like\" model for committing and downloading \
+bootable filesystem trees, along with a layer for deploying them and managing \
+the bootloader configuration."
+HOMEPAGE = "https://ostree.readthedocs.io"
+LICENSE = "LGPLv2.1"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+DEPENDS = " \
+    glib-2.0 \
+    e2fsprogs \
+    libcap \
+    zlib \
+    xz \
+    bison-native \
+"
+
+SRC_URI = " \
+    gitsm://github.com/ostreedev/ostree;branch=main;protocol=https \
+    file://run-ptest \
+"
+SRCREV = "f1155c8d283c3c85d74d5e1050b0dcf8198f750a"
+
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+)"
+
+S = "${WORKDIR}/git"
+
+inherit autotools bash-completion gobject-introspection gtk-doc manpages pkgconfig ptest-gnome systemd
+
+# Workaround compile failure:
+# |../git/src/libotutil/zbase32.c:37:1: error: function returns an aggregate [-Werror=aggregate-return]
+# so remove -Og and use -O2 as workaround
+DEBUG_OPTIMIZATION:remove = "-Og"
+DEBUG_OPTIMIZATION:append = " -O2"
+BUILD_OPTIMIZATION:remove = "-Og"
+BUILD_OPTIMIZATION:append = " -O2"
+
+# Package configuration - match ostree defaults, but without rofiles-fuse
+# otherwise we introduce a dependendency on meta-filesystems
+PACKAGECONFIG ??= " \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd libmount', '', d)} \
+    glib \
+    gpgme \
+    soup \
+"
+
+# We include soup because ostree can't (currently) be built without
+# soup or curl - https://github.com/ostreedev/ostree/issues/1897
+PACKAGECONFIG:class-native ??= " \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
+    builtin-grub2-mkconfig \
+    gpgme \
+    soup \
+"
+
+PACKAGECONFIG:class-nativesdk ??= " \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
+    builtin-grub2-mkconfig \
+    gpgme \
+    soup \
+"
+
+PACKAGECONFIG[avahi] = "--with-avahi, --without-avahi, avahi"
+PACKAGECONFIG[builtin-grub2-mkconfig] = "--with-builtin-grub2-mkconfig, --without-builtin-grub2-mkconfig"
+PACKAGECONFIG[curl] = "--with-curl, --without-curl, curl"
+PACKAGECONFIG[dracut] = "--with-dracut, --without-dracut"
+PACKAGECONFIG[glib] = "--with-crypto=glib"
+PACKAGECONFIG[gjs] = "ac_cv_path_GJS=${bindir}/gjs"
+PACKAGECONFIG[gnutls] = "--with-crypto=gnutls, , gnutls"
+PACKAGECONFIG[gpgme] = "--with-gpgme, --without-gpgme, gpgme"
+PACKAGECONFIG[libarchive] = "--with-libarchive, --without-libarchive, libarchive"
+PACKAGECONFIG[libmount] = "--with-libmount, --without-libmount, util-linux"
+PACKAGECONFIG[manpages] = "--enable-man, --disable-man, libxslt-native docbook-xsl-stylesheets-native"
+PACKAGECONFIG[mkinitcpio] = "--with-mkinitcpio, --without-mkinitcpio"
+PACKAGECONFIG[no-http2] = "--disable-http2, --enable-http2"
+PACKAGECONFIG[openssl] = "--with-crypto=openssl, , openssl"
+PACKAGECONFIG[rofiles-fuse] = "--enable-rofiles-fuse, --disable-rofiles-fuse, fuse"
+PACKAGECONFIG[selinux] = "--with-selinux, --without-selinux, libselinux"
+PACKAGECONFIG[smack] = "--with-smack, --without-smack, smack"
+PACKAGECONFIG[soup] = "--with-soup, --without-soup --disable-glibtest, libsoup-2.4"
+PACKAGECONFIG[static] = ""
+PACKAGECONFIG[systemd] = "--with-libsystemd --with-systemdsystemunitdir=${systemd_unitdir}/system, --without-libsystemd, systemd"
+PACKAGECONFIG[trivial-httpd-cmdline] = "--enable-trivial-httpd-cmdline, --disable-trivial-httpd-cmdline"
+
+EXTRA_OECONF = " \
+    ${@bb.utils.contains('PACKAGECONFIG', 'static', '--with-static-compiler=\'${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}\'', '', d)} \
+"
+
+# Makefile-libostree.am overrides this to avoid a build problem with clang,
+# but that fix breaks cross compilation and we don't need it
+EXTRA_OEMAKE = " \
+    INTROSPECTION_SCANNER_ENV= \
+"
+
+EXTRA_OECONF:class-native = " \
+    --enable-wrpseudo-compat \
+    --disable-otmpfile \
+"
+
+EXTRA_OECONF:class-nativesdk = " \
+    --enable-wrpseudo-compat \
+    --disable-otmpfile \
+"
+
+# Path to ${prefix}/lib/ostree/ostree-grub-generator is hardcoded on the
+# do_configure stage so we do depend on it
+SYSROOT_DIR = "${STAGING_DIR_TARGET}"
+SYSROOT_DIR:class-native = "${STAGING_DIR_NATIVE}"
+do_configure[vardeps] += "SYSROOT_DIR"
+
+do_configure:prepend() {
+    # this reflects what autogen.sh does, but the OE wrappers for autoreconf
+    # allow it to work without the other gyrations which exist there
+    cp ${S}/libglnx/Makefile-libglnx.am ${S}/libglnx/Makefile-libglnx.am.inc
+    cp ${S}/bsdiff/Makefile-bsdiff.am ${S}/bsdiff/Makefile-bsdiff.am.inc
+}
+
+do_install:append:class-native() {
+    create_wrapper ${D}${bindir}/ostree OSTREE_GRUB2_EXEC="${STAGING_LIBDIR_NATIVE}/ostree/ostree-grub-generator"
+}
+
+do_install:append:class-nativesdk() {
+    create_wrapper ${D}${bindir}/ostree OSTREE_GRUB2_EXEC="\$OECORE_NATIVE_SYSROOT/usr/lib/ostree/ostree-grub-generator"
+}
+
+PACKAGE_BEFORE_PN = " \
+    ${PN}-dracut \
+    ${PN}-grub \
+    ${PN}-mkinitcpio \
+    ${PN}-switchroot \
+    ${PN}-trivial-httpd \
+"
+
+FILES:${PN} += " \
+    ${nonarch_libdir}/${BPN} \
+    ${nonarch_libdir}/tmpfiles.d \
+    ${systemd_unitdir}/system \
+    ${systemd_unitdir}/system-generators \
+"
+FILES:${PN}-dracut = " \
+    ${sysconfdir}/dracut.conf.d \
+    ${libdir}/dracut \
+"
+FILES:${PN}-grub = " \
+    ${sysconfdir}/grub.d \
+    ${libexecdir}/libostree/grub2-15_ostree \
+"
+FILES:${PN}-mkinitcpio = " \
+    ${sysconfdir}/ostree-mkinitcpio.conf \
+    ${libdir}/initcpio \
+"
+FILES:${PN}-switchroot = " \
+    ${nonarch_libdir}/${BPN}/ostree-prepare-root \
+    ${systemd_unitdir}/system/ostree-prepare-root.service \
+"
+FILES:${PN}-trivial-httpd = " \
+    ${libexecdir}/libostree/ostree-trivial-httpd \
+"
+
+RDEPENDS:${PN} = " \
+    ${@bb.utils.contains('PACKAGECONFIG', 'trivial-httpd-cmdline', '${PN}-trivial-httpd', '', d)} \
+"
+RDEPENDS:${PN}-dracut = "bash"
+RDEPENDS:${PN}-mkinitcpio = "bash"
+RDEPENDS:${PN}:class-target = " \
+    ${@bb.utils.contains('PACKAGECONFIG', 'gpgme', 'gnupg', '', d)} \
+    ${PN}-switchroot \
+"
+
+#
+# Note that to get ptest to pass you also need:
+#
+#   xattr in DISTRO_FEATURES
+#   static ostree-prepare-root (PACKAGECONFIG:append:pn-ostree = " static")
+#   meta-python in your layers
+#   overlayfs in your kernel (KERNEL_EXTRA_FEATURES += "features/overlayfs/overlayfs.scc")
+#   busybox built statically
+#   /var/tmp as a real filesystem (not a tmpfs)
+#   Sufficient disk space (IMAGE_ROOTFS_SIZE = "524288") and RAM (QB_MEM = "-m 1024")
+#
+RDEPENDS:${PN}-ptest += " \
+    attr \
+    bash \
+    coreutils \
+    cpio \
+    diffutils \
+    findutils \
+    grep \
+    python3-core \
+    python3-multiprocessing \
+    strace \
+    tar \
+    util-linux \
+    xz \
+    ${PN}-trivial-httpd \
+    python3-pyyaml \
+    ${@bb.utils.contains('PACKAGECONFIG', 'gjs', 'gjs', '', d)} \
+"
+RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils glibc-localedata-en-us"
+
+RRECOMMENDS:${PN} += "kernel-module-overlay"
+
+SYSTEMD_SERVICE:${PN} = "ostree-remount.service ostree-finalize-staged.path"
+SYSTEMD_SERVICE:${PN}-switchroot = "ostree-prepare-root.service"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-extended/p8platform/p8platform_git.bb b/meta-openembedded/meta-oe/recipes-extended/p8platform/p8platform_git.bb
index b18e52f..eca7d87 100644
--- a/meta-openembedded/meta-oe/recipes-extended/p8platform/p8platform_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/p8platform/p8platform_git.bb
@@ -6,7 +6,7 @@
 
 PV = "2.1.0.1"
 
-SRC_URI = "git://github.com/Pulse-Eight/platform.git \
+SRC_URI = "git://github.com/Pulse-Eight/platform.git;branch=master;protocol=https \
            file://0001-Make-resulting-cmake-config-relocatable.patch"
 SRCREV = "2d90f98620e25f47702c9e848380c0d93f29462b"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb b/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
index f98c4a7..dc7b849 100644
--- a/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
@@ -11,7 +11,7 @@
 
 SRCREV = "e2145df09469bf84878e4729b4ecd814efb797d1"
 
-SRC_URI = "git://github.com/PADL/pam_ccreds"
+SRC_URI = "git://github.com/PADL/pam_ccreds;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb b/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb
index 5374539..6985590 100644
--- a/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb
@@ -11,7 +11,7 @@
 REQUIRED_DISTRO_FEATURES = "pam"
 
 SRCREV = "84d7b260f1ae6857ae36e014c9a5968e8aa1cbe8"
-SRC_URI = "git://github.com/rmbreak/pam_ldapdb \
+SRC_URI = "git://github.com/rmbreak/pam_ldapdb;branch=master;protocol=https \
            file://0001-include-stdexcept-for-std-invalid_argument.patch \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.11.1.bb b/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.11.1.bb
index e456603..4354c83 100644
--- a/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.11.1.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.11.1.bb
@@ -11,7 +11,7 @@
 
 S = "${WORKDIR}/git"
 
-SRC_URI = "git://github.com/pmem/pmdk.git;branch=stable-1.11"
+SRC_URI = "git://github.com/pmem/pmdk.git;branch=stable-1.11;protocol=https"
 SRCREV = "5b21904a257eff47f2e87fcbf2de46111f03ddd8"
 
 inherit autotools-brokensep pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.119.bb b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.119.bb
index a41b0fe..d763617 100644
--- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.119.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.119.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=155db86cdbafa7532b41f390409283eb \
                     file://src/polkit/polkit.h;beginline=1;endline=20;md5=0a8630b0133176d0504c87a0ded39db4"
 
-DEPENDS = "expat glib-2.0 intltool-native mozjs"
+DEPENDS = "expat glib-2.0 intltool-native mozjs-91"
 
 inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection features_check
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb b/meta-openembedded/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb
index 450bbb9..d7e59e9 100644
--- a/meta-openembedded/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb
@@ -9,7 +9,7 @@
 PV = "0.0.1+git${SRCPV}"
 
 SRCREV = "45863e849b39c4921d6553e6d27e267a96ac7d77"
-SRC_URI = "git://github.com/lib-cpp/${BPN}.git"
+SRC_URI = "git://github.com/lib-cpp/${BPN}.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.2.bb b/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.2.bb
deleted file mode 100644
index 2a6bb57..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.2.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "C++ client for Redis based on hiredis"
-HOMEPAGE = "https://github.com/sewenew/redis-plus-plus"
-SECTION = "libs"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-SRC_URI = "git://github.com/sewenew/redis-plus-plus"
-SRCREV = "e29c63db54653a660d7a0f556f670b7a6fce0a78"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-DEPENDS += "hiredis"
-
-RDEPENDS:${PN} += "hiredis"
-
-FILES_SOLIBSDEV = ""
-FILES:${PN} += " ${libdir}/libredis++.so*"
-
-INSANE_SKIP:${PN} += "dev-so"
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.3.bb b/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.3.bb
new file mode 100644
index 0000000..c135105
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.3.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "C++ client for Redis based on hiredis"
+HOMEPAGE = "https://github.com/sewenew/redis-plus-plus"
+SECTION = "libs"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI = "git://github.com/sewenew/redis-plus-plus;branch=master;protocol=https"
+SRCREV = "389ffdf9e72035ea2096b03cda7f4a6809ae6363"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+DEPENDS += "hiredis"
+
+RDEPENDS:${PN} += "hiredis"
+
+FILES_SOLIBSDEV = ""
+FILES:${PN} += " ${libdir}/libredis++.so*"
+
+INSANE_SKIP:${PN} += "dev-so"
diff --git a/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.2.bb b/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.2.bb
index e96138e..bb72316 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.2.bb
@@ -10,7 +10,7 @@
 PV = "1.7.2"
 
 SRC_URI = "\
-    git://github.com/oetiker/rrdtool-1.x.git;branch=master;protocol=http; \
+    git://github.com/oetiker/rrdtool-1.x.git;branch=master;protocol=http;;protocol=https \
 "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb
index 88ba9ed..24ad172 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb
@@ -6,7 +6,7 @@
 
 DEPENDS = ""
 
-SRC_URI = "git://github.com/rsyslog/libfastjson.git;protocol=https"
+SRC_URI = "git://github.com/rsyslog/libfastjson.git;protocol=https;branch=master"
 
 SRCREV = "0293afb3913f760c449348551cca4d2df59c1a00"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock/setuptools.patch b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock/setuptools.patch
new file mode 100644
index 0000000..bc2c68c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock/setuptools.patch
@@ -0,0 +1,18 @@
+Switch to setuptools as distutils is deprecated.
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/python/setup.py b/python/setup.py
+index b3bfaf1..dfbaf21 100644
+--- a/python/setup.py
++++ b/python/setup.py
+@@ -4,7 +4,7 @@
+ # modify, copy, or redistribute it subject to the terms and conditions
+ # of the GNU General Public License v.2.
+ 
+-from distutils.core import setup, Extension
++from setuptools import setup, Extension
+ 
+ sanlocklib = ['sanlock']
+ sanlock = Extension(name='sanlock',
diff --git a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb
index fa08d0f..3c08c4e 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb
@@ -9,31 +9,32 @@
 SECTION = "utils"
 
 LICENSE = "LGPLv2+ & GPLv2 & GPLv2+"
-LIC_FILES_CHKSUM = "file://../README.license;md5=60487bf0bf429d6b5aa72b6d37a0eb22"
+LIC_FILES_CHKSUM = "file://README.license;md5=60487bf0bf429d6b5aa72b6d37a0eb22"
 
 PV .= "+git${SRCPV}"
 
-SRC_URI = "git://pagure.io/sanlock.git;protocol=http \
-           file://0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch;patchdir=../ \
+SRC_URI = "git://pagure.io/sanlock.git;protocol=http;branch=master \
+           file://0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch \
+           file://setuptools.patch \
           "
 SRCREV = "a181e951376d49a82eef17920c8ebedec80b4823"
 
-S = "${WORKDIR}/git/python"
+S = "${WORKDIR}/git"
 
 DEPENDS = "libaio util-linux"
 
-inherit distutils3 useradd
+inherit setuptools3 useradd
 
-do_configure[noexec] = "1"
+SETUPTOOLS_SETUP_PATH = "${S}/python"
 
 do_compile:prepend () {
-    oe_runmake -C ${S}/../wdmd CMD_LDFLAGS="${LDFLAGS}" LIB_LDFLAGS="${LDFLAGS}"
-    oe_runmake -C ${S}/../src CMD_LDFLAGS="${LDFLAGS}" LIB_ENTIRE_LDFLAGS="${LDFLAGS}" LIB_CLIENT_LDFLAGS="${LDFLAGS}"
+    oe_runmake -C ${S}/wdmd CMD_LDFLAGS="${LDFLAGS}" LIB_LDFLAGS="${LDFLAGS}"
+    oe_runmake -C ${S}/src CMD_LDFLAGS="${LDFLAGS}" LIB_ENTIRE_LDFLAGS="${LDFLAGS}" LIB_CLIENT_LDFLAGS="${LDFLAGS}"
 }
 
 do_install:prepend () {
-    oe_runmake -C ${S}/../wdmd DESTDIR=${D} LIBDIR=${libdir} install
-    oe_runmake -C ${S}/../src DESTDIR=${D} LIBDIR=${libdir} install
+    oe_runmake -C ${S}/wdmd DESTDIR=${D} LIBDIR=${libdir} install
+    oe_runmake -C ${S}/src DESTDIR=${D} LIBDIR=${libdir} install
 }
 
 SANLOCKGROUP ?= "sanlock"
diff --git a/meta-openembedded/meta-oe/recipes-extended/sedutil/sedutil_git.bb b/meta-openembedded/meta-oe/recipes-extended/sedutil/sedutil_git.bb
index 99e3586..e4323ec 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sedutil/sedutil_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sedutil/sedutil_git.bb
@@ -10,7 +10,7 @@
 BASEPV = "1.15.1"
 PV = "1.20.0"
 SRCREV = "d3de8e45e06a21d31cca0046ceb16ced1ef3563a"
-SRC_URI = "git://github.com/Drive-Trust-Alliance/sedutil.git \
+SRC_URI = "git://github.com/Drive-Trust-Alliance/sedutil.git;branch=master;protocol=https \
            file://0001-Fix-build-on-big-endian-architectures.patch \
            "
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/snappy/snappy_1.1.9.bb b/meta-openembedded/meta-oe/recipes-extended/snappy/snappy_1.1.9.bb
index 5c786d8..252ba9f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/snappy/snappy_1.1.9.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/snappy/snappy_1.1.9.bb
@@ -10,7 +10,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=f62f3080324a97b3159a7a7e61812d0c"
 
-SRC_URI = "gitsm://github.com/google/snappy.git;protocol=https \
+SRC_URI = "gitsm://github.com/google/snappy.git;protocol=https;branch=master \
     file://0001-Add-inline-with-SNAPPY_ATTRIBUTE_ALWAYS_INLINE.patch \
 "
 SRCREV = "2b63814b15a2aaae54b7943f0cd935892fae628f"
diff --git a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
index eed79ae..0e53cfa 100644
--- a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
@@ -3,7 +3,7 @@
 SRCREV = "beb4650660179963a8ed5b5cbf2085cc1b34f608"
 PV = "1.0+git${SRCPV}"
 
-SRC_URI = "git://github.com/hartkopp/can-isotp.git;protocol=https"
+SRC_URI = "git://github.com/hartkopp/can-isotp.git;protocol=https;branch=master"
 
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
index 1a2d330..45978bb 100644
--- a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
@@ -4,7 +4,7 @@
 
 DEPENDS = "libsocketcan"
 
-SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git"
+SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=https;branch=master"
 
 SRCREV = "3615bac17e539a06835dcb90855eae844ee18053"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb b/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb
index 65e1fde..59114b0 100644
--- a/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb
@@ -8,7 +8,7 @@
 DEPENDS = "libsocketcan"
 
 SRCREV = "299dff7f5322bf0348dcdd60071958ebedf5f09d"
-SRC_URI = "git://git.pengutronix.de/git/tools/canutils.git;protocol=git \
+SRC_URI = "git://git.pengutronix.de/git/tools/canutils.git;protocol=git;branch=master \
     file://0001-canutils-candump-Add-error-frame-s-handling.patch \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.12.bb b/meta-openembedded/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.12.bb
index b7a7f6f..27380ee 100644
--- a/meta-openembedded/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.12.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.12.bb
@@ -7,7 +7,7 @@
 
 SRCREV = "077def398ad303043d73339112968e5112d8d7c8"
 
-SRC_URI = "git://git.pengutronix.de/git/tools/libsocketcan.git;protocol=git"
+SRC_URI = "git://git.pengutronix.de/git/tools/libsocketcan.git;protocol=git;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Fix-a-lot-of-Werror-format-security-errors-.patch b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Fix-a-lot-of-Werror-format-security-errors-.patch
new file mode 100644
index 0000000..055b0c1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Fix-a-lot-of-Werror-format-security-errors-.patch
@@ -0,0 +1,155 @@
+From a5c8e2676b94d2ea41b44b4e05943bee6459f337 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Oct 2021 09:46:35 -0700
+Subject: [PATCH] libsinsp: Fix a lot of -Werror=format-security errors with
+ mvprintw/mvwprintw
+
+In all these places a non-constant is used as a format string which
+compiler complains about. Fix by using "%s" as format.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ userspace/libsinsp/cursescomponents.cpp |  4 ++--
+ userspace/libsinsp/cursesspectro.cpp    |  2 +-
+ userspace/libsinsp/cursestable.cpp      |  6 +++---
+ userspace/libsinsp/cursesui.cpp         | 14 +++++++-------
+ 4 files changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/userspace/libsinsp/cursescomponents.cpp b/userspace/libsinsp/cursescomponents.cpp
+index 4003cb4e..372b4526 100644
+--- a/userspace/libsinsp/cursescomponents.cpp
++++ b/userspace/libsinsp/cursescomponents.cpp
+@@ -877,7 +877,7 @@ void curses_textbox::print_no_data()
+ 	string wstr = "No Data For This Selection";
+ 	mvprintw(m_parent->m_screenh / 2,
+ 		m_parent->m_screenw / 2 - wstr.size() / 2,
+-		wstr.c_str());
++		"%s", wstr.c_str());
+ 
+ 	refresh();
+ }
+@@ -1100,7 +1100,7 @@ void curses_textbox::render()
+ 		attrset(m_parent->m_colors[sinsp_cursesui::LARGE_NUMBER]);
+ 		mvprintw(0,
+ 			m_parent->m_screenw / 2 - wstr.size() / 2,
+-			wstr.c_str());
++			"%s", wstr.c_str());
+ 	}
+ 
+ 	//
+diff --git a/userspace/libsinsp/cursesspectro.cpp b/userspace/libsinsp/cursesspectro.cpp
+index 6858bc95..32012963 100644
+--- a/userspace/libsinsp/cursesspectro.cpp
++++ b/userspace/libsinsp/cursesspectro.cpp
+@@ -227,7 +227,7 @@ void curses_spectro::print_error(string wstr)
+ 	mvwprintw(m_tblwin, 
+ 		m_parent->m_screenh / 2,
+ 		m_parent->m_screenw / 2 - wstr.size() / 2, 
+-		wstr.c_str());	
++		"%s", wstr.c_str());	
+ }
+ 
+ void curses_spectro::update_data(vector<sinsp_sample_row>* data, bool force_selection_change)
+diff --git a/userspace/libsinsp/cursestable.cpp b/userspace/libsinsp/cursestable.cpp
+index 69c2aa32..54667554 100644
+--- a/userspace/libsinsp/cursestable.cpp
++++ b/userspace/libsinsp/cursestable.cpp
+@@ -254,7 +254,7 @@ void curses_table::print_line_centered(string line, int32_t off)
+ 		mvwprintw(m_tblwin, 
+ 			m_parent->m_screenh / 2 + off,
+ 			m_parent->m_screenw / 2 - line.size() / 2, 
+-			line.c_str());
++			"%s", line.c_str());
+ 	}
+ 	else
+ 	{
+@@ -268,7 +268,7 @@ glogf("2, %d %s\n", spos, ss.c_str());
+ 			mvwprintw(m_tblwin, 
+ 				m_parent->m_screenh / 2 + off + j,
+ 				0,
+-				ss.c_str());
++				"%s", ss.c_str());
+ 
+ 			spos += m_parent->m_screenw;
+ 			if(spos >= line.size())
+@@ -328,7 +328,7 @@ void curses_table::print_error(string wstr)
+ 	mvwprintw(m_tblwin, 
+ 		m_parent->m_screenh / 2,
+ 		m_parent->m_screenw / 2 - wstr.size() / 2, 
+-		wstr.c_str());	
++		"%s", wstr.c_str());	
+ }
+ 
+ void curses_table::render(bool data_changed)
+diff --git a/userspace/libsinsp/cursesui.cpp b/userspace/libsinsp/cursesui.cpp
+index 1eeb0864..69652edc 100644
+--- a/userspace/libsinsp/cursesui.cpp
++++ b/userspace/libsinsp/cursesui.cpp
+@@ -825,7 +825,7 @@ void sinsp_cursesui::render_header()
+ 		attrset(m_colors[sinsp_cursesui::LARGE_NUMBER]);
+ 		mvprintw(0,
+ 			m_screenw / 2 - wstr.size() / 2, 
+-			wstr.c_str());	
++			"%s", wstr.c_str());	
+ 	}
+ 
+ 	//
+@@ -1123,7 +1123,7 @@ void sinsp_cursesui::render_filtersearch_main_menu()
+ 
+ 		m_cursor_pos = cursor_pos;
+ 
+-		mvprintw(m_screenh - 1, m_cursor_pos, str->c_str());
++		mvprintw(m_screenh - 1, m_cursor_pos, "%s", str->c_str());
+ 
+ 		m_cursor_pos += str->size();
+ 	}
+@@ -2189,7 +2189,7 @@ void sinsp_cursesui::print_progress(double progress)
+ 	string wstr = "Processing File";
+ 	mvprintw(m_screenh / 2,
+ 		m_screenw / 2 - wstr.size() / 2, 
+-		wstr.c_str());	
++		"%s", wstr.c_str());	
+ 
+ 	//
+ 	// Using sprintf because to_string doesn't support setting the precision 
+@@ -2199,7 +2199,7 @@ void sinsp_cursesui::print_progress(double progress)
+ 	wstr = "Progress: " + string(numbuf);
+ 	mvprintw(m_screenh / 2 + 1,
+ 		m_screenw / 2 - wstr.size() / 2, 
+-		wstr.c_str());
++		"%s", wstr.c_str());
+ 
+ 	refresh();
+ }
+@@ -2308,7 +2308,7 @@ sysdig_table_action sinsp_cursesui::handle_textbox_input(int ch)
+ 						attrset(m_colors[sinsp_cursesui::FAILED_SEARCH]);
+ 						mvprintw(m_screenh / 2,
+ 							m_screenw / 2 - wstr.size() / 2, 
+-							wstr.c_str());	
++							"%s", wstr.c_str());	
+ 
+ 						//
+ 						// Restore the cursor
+@@ -2363,7 +2363,7 @@ sysdig_table_action sinsp_cursesui::handle_textbox_input(int ch)
+ 
+ 					mvprintw(m_screenh / 2,
+ 						m_screenw / 2 - wstr.size() / 2, 
+-						wstr.c_str());
++						"%s", wstr.c_str());
+ 
+ 					render();
+ 				}
+@@ -2436,7 +2436,7 @@ sysdig_table_action sinsp_cursesui::handle_textbox_input(int ch)
+ 
+ 				mvprintw(m_screenh / 2,
+ 					m_screenw / 2 - wstr.size() / 2, 
+-					wstr.c_str());
++					"%s", wstr.c_str());
+ 
+ 				render();
+ 			}
+-- 
+2.33.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb
index a12f8ba..340a124 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb
@@ -21,9 +21,10 @@
 DEPENDS += "libb64 lua${JIT} zlib c-ares grpc-native grpc curl ncurses jsoncpp tbb jq openssl elfutils protobuf protobuf-native jq-native"
 RDEPENDS:${PN} = "bash"
 
-SRC_URI = "git://github.com/draios/sysdig.git;branch=dev \
+SRC_URI = "git://github.com/draios/sysdig.git;branch=dev;protocol=https \
            file://0001-fix-build-with-LuaJIT-2.1-betas.patch \
            file://aarch64.patch \
+           file://0001-libsinsp-Fix-a-lot-of-Werror-format-security-errors-.patch \
           "
 SRCREV = "67833b2aca06bd9d11cff7cb29f04fbf4ef96cad"
 PV = "0.27.1"
diff --git a/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb b/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
index e2e6de6..271fe7a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
@@ -2,7 +2,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://tipclog/tipc.h;endline=35;md5=985b6ea8735818511d276c1b466cce98"
 
-SRC_URI = "git://git.code.sf.net/p/tipc/tipcutils \
+SRC_URI = "git://git.code.sf.net/p/tipc/tipcutils;branch=master \
            file://0001-include-sys-select.h-for-FD_-definitions.patch \
            file://0002-replace-non-standard-uint-with-unsigned-int.patch \
            file://0001-multicast_blast-tipcc-Fix-struct-type-for-TIPC_GROUP.patch \
diff --git a/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-a-lot-of-Werror-format-security-errors-with-mvwp.patch b/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-a-lot-of-Werror-format-security-errors-with-mvwp.patch
new file mode 100644
index 0000000..6d5e293
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-a-lot-of-Werror-format-security-errors-with-mvwp.patch
@@ -0,0 +1,31 @@
+From 42e99eb6c727df7c9d49586803a4bf9933a9796b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Oct 2021 10:52:42 -0700
+Subject: [PATCH] Fix a lot of -Werror=format-security errors with mvwprintw
+
+In all these places a non-constant is used as a format string which
+compiler complains about. Fix by using "%s" as format.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/helpwin.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/helpwin.c b/src/helpwin.c
+index 0d660f9..1623d9c 100644
+--- a/src/helpwin.c
++++ b/src/helpwin.c
+@@ -61,7 +61,7 @@ void show_help_win(WINDOW* win, screen_t* screen)
+     wattroff(win, A_REVERSE);
+ 
+   /* screen description */
+-  mvwprintw(win, 2, 1, screen->desc);
++  mvwprintw(win, 2, 1, "%s", screen->desc);
+ 
+   /* max size of column headers */
+   for(i = 0; i < n; i++) {
+-- 
+2.33.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb b/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb
index 31d0dae..13aa92e 100644
--- a/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb
@@ -1,17 +1,19 @@
 SUMMARY = "Hardware performance monitoring counters"
-HOMEPAGE = "http://tiptop.gforge.inria.fr/"
+HOMEPAGE = "https://team.inria.fr/pacap/software/tiptop/"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 DEPENDS = "ncurses libxml2 bison-native flex-native"
 
-SRC_URI = "http://tiptop.gforge.inria.fr/releases/${BP}.tar.gz \
+SRC_URI = "http://files.inria.fr/pacap/${BPN}/${BP}.tar.gz \
            file://0001-Fix-parallel-build-problems-by-Adrian-Bunk.patch \
            file://0002-fix-reproducibility-of-build-process.patch \
            file://0001-Fix-build-when-S-B.patch \
+           file://0001-Fix-a-lot-of-Werror-format-security-errors-with-mvwp.patch \
            "
-SRC_URI[md5sum] = "46ca0fdf0236f02dd2b96d347626d2a2"
 SRC_URI[sha256sum] = "51c4449c95bba34f16b429729c2f58431490665d8093efaa8643b2e1d1084182"
 
+UPSTREAM_CHECK_URI = "https://team.inria.fr/pacap/software/tiptop/"
+
 inherit autotools
 
 EXTRA_OECONF = "CFLAGS="$CFLAGS -I${STAGING_INCDIR}/libxml2""
diff --git a/meta-openembedded/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb b/meta-openembedded/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb
index 7ae8c51..6dc5c0c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb
@@ -7,7 +7,7 @@
 
 DEPENDS:append = " libevent libssh msgpack-c ncurses"
 SRC_URI = "\
-    git://github.com/tmate-io/tmate.git;protocol=https \
+    git://github.com/tmate-io/tmate.git;protocol=https;branch=master \
 "
 
 SRCREV = "5e00bfa5e137e76c81888727712ced2b3fd99f5b"
diff --git a/meta-openembedded/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb b/meta-openembedded/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb
index 472a39589..c8d5857 100644
--- a/meta-openembedded/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb
@@ -7,7 +7,7 @@
 # matches debian/0.5.0-1 tag
 SRCREV = "44a173195986d0d853316cb02a58785ded66c12b"
 PV = "0.5.0+git${SRCPV}"
-SRC_URI = "git://github.com/wertarbyte/${BPN}.git;branch=debian"
+SRC_URI = "git://github.com/wertarbyte/${BPN}.git;branch=debian;protocol=https"
 
 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 cd7dd9a..61e2e38 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 \
+SRC_URI = "git://github.com/eclipse/${BPN}.git;protocol=http;branch=master;protocol=https \
            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 \
@@ -25,7 +25,7 @@
 # Depends on mraa which only supports x86 and ARM for now
 COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
 
-inherit distutils3-base cmake pkgconfig
+inherit setuptools3-base cmake pkgconfig
 
 EXTRA_OECMAKE += "-UPYTHON_EXECUTABLE -DWERROR=off"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/wipe/wipe_0.24.bb b/meta-openembedded/meta-oe/recipes-extended/wipe/wipe_0.24.bb
index 831d514..3ccc5af 100644
--- a/meta-openembedded/meta-oe/recipes-extended/wipe/wipe_0.24.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/wipe/wipe_0.24.bb
@@ -9,7 +9,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
 
-SRC_URI = "git://github.com/berke/wipe.git;branch=master \
+SRC_URI = "git://github.com/berke/wipe.git;branch=master;protocol=https \
     file://support-cross-compile-for-linux.patch \
     file://makefile-add-ldflags.patch \
 "
diff --git a/meta-openembedded/meta-oe/recipes-extended/wxwidgets/wxwidgets_git.bb b/meta-openembedded/meta-oe/recipes-extended/wxwidgets/wxwidgets_git.bb
index 9d9fab2..404ab26 100644
--- a/meta-openembedded/meta-oe/recipes-extended/wxwidgets/wxwidgets_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/wxwidgets/wxwidgets_git.bb
@@ -22,7 +22,7 @@
 "
 
 SRC_URI = " \
-    git://github.com/wxWidgets/wxWidgets.git \
+    git://github.com/wxWidgets/wxWidgets.git;branch=master;protocol=https \
     file://0001-wx-config.in-Disable-cross-magic-it-does-not-work-fo.patch \
 "
 PV = "3.1.4"
diff --git a/meta-openembedded/meta-oe/recipes-extended/zlog/zlog_1.2.15.bb b/meta-openembedded/meta-oe/recipes-extended/zlog/zlog_1.2.15.bb
index 7dde418..1a77665 100644
--- a/meta-openembedded/meta-oe/recipes-extended/zlog/zlog_1.2.15.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/zlog/zlog_1.2.15.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
 SRCREV = "876099f3c66033f3de11d79f63814766b1021dbe"
-SRC_URI = "git://github.com/HardySimpson/zlog"
+SRC_URI = "git://github.com/HardySimpson/zlog;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/zsync/zsync-curl_git.bb b/meta-openembedded/meta-oe/recipes-extended/zsync/zsync-curl_git.bb
index adb72d5..8459338 100644
--- a/meta-openembedded/meta-oe/recipes-extended/zsync/zsync-curl_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/zsync/zsync-curl_git.bb
@@ -5,7 +5,7 @@
 LICENSE = "Artistic-2.0"
 LIC_FILES_CHKSUM = "file://src/COPYING;md5=71c0ac4d86266533509aa0825b8d323c"
 
-SRC_URI = "git://github.com/probonopd/zsync-curl;protocol=https \
+SRC_URI = "git://github.com/probonopd/zsync-curl;protocol=https;branch=master \
            file://fixes.patch \
            file://make.patch"
 SRCREV = "00141c2806ccc4ddf2ff6263ee1612d19c0b713f"
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
index 7f38d42..d89613d 100644
--- 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
@@ -5,7 +5,7 @@
 
 DEPENDS = "glib-2.0 zlib"
 
-inherit gnomebase gobject-introspection
+inherit gnomebase gobject-introspection vala
 
 SRC_URI += "file://iconv-detect.h \
             file://nodolt.patch"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/gnome-themes/gnome-themes-extra_3.28.bb b/meta-openembedded/meta-oe/recipes-gnome/gnome-themes/gnome-themes-extra_3.28.bb
index 3a018bb..bba9720 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/gnome-themes/gnome-themes-extra_3.28.bb
+++ b/meta-openembedded/meta-oe/recipes-gnome/gnome-themes/gnome-themes-extra_3.28.bb
@@ -12,6 +12,8 @@
 
 DEPENDS += "intltool-native gtk+"
 
+# PV is 3.28 not 3.28.0, so the gnomebase SRC_URI isn't right.
+SRC_URI = "${GNOME_MIRROR}/${BPN}/${PV}/${BPN}-${PV}.tar.xz;name=archive"
 SRC_URI[archive.md5sum] = "f9f2c6c521948da427f702372e16f826"
 SRC_URI[archive.sha256sum] = "7c4ba0bff001f06d8983cfc105adaac42df1d1267a2591798a780bac557a5819"
 
diff --git a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch
deleted file mode 100644
index 9eb7f6b..0000000
--- a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-Updated to apply to gtk+-2.24.15
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-Index: gtk+-2.24.31/configure.ac
-===================================================================
---- gtk+-2.24.31.orig/configure.ac
-+++ gtk+-2.24.31/configure.ac
-@@ -415,7 +415,7 @@ AC_MSG_CHECKING([Whether to write depend
- case $enable_explicit_deps in
-   auto)
-     export SED
--    deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
-+    deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
-     if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
-       enable_explicit_deps=yes  
-     else
-@@ -772,7 +772,7 @@ else
-     dnl Now we check to see if our libtool supports shared lib deps
-     dnl (in a rather ugly way even)
-     if $dynworks; then
--        module_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
-+        module_libtool_config="${CONFIG_SHELL-/bin/sh} $host_alias-libtool --config"
-         module_deplibs_check=`$module_libtool_config | \
-             grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
-             sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
-@@ -1579,7 +1579,7 @@ fi
- # We are using gmodule-no-export now, but I'm leaving the stripping
- # code in place for now, since pango and atk still require gmodule.
- export SED
--export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
-+export_dynamic=`($host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
- if test -n "$export_dynamic"; then
-   GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
-   GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
diff --git a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtk+_2.24.33.bb b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtk+_2.24.33.bb
index ccd82b9..082967e 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtk+_2.24.33.bb
+++ b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtk+_2.24.33.bb
@@ -6,7 +6,6 @@
                     file://tests/testgtk.c;endline=27;md5=262db5db5f776f9863e56df31423e24c"
 SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-${PV}.tar.xz \
            file://xsettings.patch \
-           file://hardcoded_libtool.patch \
            file://toggle-font.diff;striplevel=0 \
            file://doc-fixes.patch \
            file://strict-prototypes.patch \
diff --git a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.5.bb b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.5.bb
index 428ec69..a8c7713 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.5.bb
+++ b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.5.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
                     file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
 
-DEPENDS = "glib-2.0-native atkmm pangomm glibmm gtk+3 cairomm"
+DEPENDS = "glib-2.0-native atkmm pangomm glibmm gtk+3 cairomm gdk-pixbuf-native"
 
 BPN = "gtkmm"
 
diff --git a/meta-openembedded/meta-oe/recipes-gnome/libjcat/libjcat_0.1.8.bb b/meta-openembedded/meta-oe/recipes-gnome/libjcat/libjcat_0.1.8.bb
deleted file mode 100644
index 977c321..0000000
--- a/meta-openembedded/meta-oe/recipes-gnome/libjcat/libjcat_0.1.8.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Library for reading and writing Jcat files"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
-
-DEPENDS = "\
-    glib-2.0 \
-    json-glib \
-"
-
-SRC_URI = "\
-    git://github.com/hughsie/libjcat.git \
-    file://run-ptest \
-"
-SRCREV = "356cd2faf2d2197156b0dae7984482cf781d64db"
-S = "${WORKDIR}/git"
-
-inherit gobject-introspection gtk-doc meson ptest-gnome vala
-
-PACKAGECONFIG ??= "\
-    gpg \
-    pkcs7 \
-    ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
-"
-PACKAGECONFIG[gpg] = "-Dgpg=true,-Dgpg=false,gpgme"
-PACKAGECONFIG[pkcs7] = "-Dpkcs7=true,-Dpkcs7=false,gnutls gnutls-native"
-PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false"
-
-# manpage generation is broken because help2man needs to run the target binary on the host...
-EXTRA_OEMESON = "-Dman=false"
-GTKDOC_MESON_OPTION = "gtkdoc"
-
-RDEPENDS:${PN}:class-target = "\
-    ${@bb.utils.contains('PACKAGECONFIG', 'gpg', 'gnupg', '', d)} \
-"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/libjcat/libjcat_0.1.9.bb b/meta-openembedded/meta-oe/recipes-gnome/libjcat/libjcat_0.1.9.bb
new file mode 100644
index 0000000..b0871c6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-gnome/libjcat/libjcat_0.1.9.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Library for reading and writing Jcat files"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
+
+DEPENDS = "\
+    glib-2.0 \
+    json-glib \
+"
+
+SRC_URI = "\
+    git://github.com/hughsie/libjcat.git;branch=main;protocol=https \
+    file://run-ptest \
+"
+SRCREV = "d4833949f8f1997b83f35a03127b9e12c104a7c8"
+S = "${WORKDIR}/git"
+
+inherit gobject-introspection gtk-doc meson ptest-gnome vala lib_package
+
+PACKAGECONFIG ??= "\
+    gpg \
+    pkcs7 \
+    ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
+"
+PACKAGECONFIG[gpg] = "-Dgpg=true,-Dgpg=false,gpgme"
+PACKAGECONFIG[pkcs7] = "-Dpkcs7=true,-Dpkcs7=false,gnutls gnutls-native"
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false"
+
+# manpage generation is broken because help2man needs to run the target binary on the host...
+EXTRA_OEMESON = "-Dman=false"
+GTKDOC_MESON_OPTION = "gtkdoc"
+
+RDEPENDS:${PN}:class-target = "\
+    ${@bb.utils.contains('PACKAGECONFIG', 'gpg', 'gnupg', '', d)} \
+"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.3.bb b/meta-openembedded/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.3.bb
deleted file mode 100644
index 0ebd653..0000000
--- a/meta-openembedded/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.3.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "A library to help create and query binary XML blobs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
-
-SRC_URI = "git://github.com/hughsie/libxmlb.git;branch=main \
-           file://run-ptest \
-           "
-SRCREV = "5108556a17bb1c2863c2ca5df088143ea65474a3"
-S = "${WORKDIR}/git"
-
-inherit gobject-introspection gtk-doc meson ptest-gnome
-
-PACKAGECONFIG ??= "\
-    ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
-"
-PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false"
-
-GTKDOC_MESON_OPTION = "gtkdoc"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.6.bb b/meta-openembedded/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.6.bb
new file mode 100644
index 0000000..585c490
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.6.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A library to help create and query binary XML blobs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
+
+SRC_URI = "git://github.com/hughsie/libxmlb.git;branch=main;protocol=https \
+           file://run-ptest \
+           "
+SRCREV = "89276ffa4407a8d684e95675990fa864793a7586"
+S = "${WORKDIR}/git"
+
+inherit gobject-introspection gtk-doc meson ptest-gnome lib_package
+
+PACKAGECONFIG ??= "\
+    ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
+"
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false"
+
+GTKDOC_MESON_OPTION = "gtkdoc"
+
+FILES:${PN}-bin += "${libexecdir}/*"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.26.bb b/meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.26.bb
deleted file mode 100644
index a957c1d..0000000
--- a/meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.26.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "A Python module to deal with freedesktop.org specifications"
-HOMEPAGE = "http://freedesktop.org/wiki/Software/pyxdg"
-SECTION = "devel/python"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a"
-
-SRCREV = "7db14dcf4c4305c3859a2d9fcf9f5da2db328330"
-SRC_URI = "git://anongit.freedesktop.org/xdg/pyxdg"
-
-inherit distutils3
-
-S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.27.bb b/meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.27.bb
new file mode 100644
index 0000000..35ecd7f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.27.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "A Python module to deal with freedesktop.org specifications"
+HOMEPAGE = "http://freedesktop.org/wiki/Software/pyxdg"
+SECTION = "devel/python"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a"
+
+SRCREV = "f097a66923a65e93640c48da83e6e9cfbddd86ba"
+SRC_URI = "git://anongit.freedesktop.org/xdg/pyxdg;branch=master"
+
+inherit setuptools3
+
+S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb b/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb
index 985706a..541b938 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb
@@ -8,7 +8,7 @@
 PR = "r1"
 
 SRCREV = "ef2e1a390e768e21e6a6268977580ee129a96633"
-SRC_URI = "git://github.com/lucasdemarchi/dietsplash.git \
+SRC_URI = "git://github.com/lucasdemarchi/dietsplash.git;branch=master;protocol=https \
            file://0001-configure.ac-Do-not-demand-linker-hash-style.patch \
            "
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.2.bb b/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.2.bb
new file mode 100644
index 0000000..eea231a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.2.bb
@@ -0,0 +1,31 @@
+SUMMARY = "dnfdragora is a DNF frontend, based on rpmdragora from Mageia (originally rpmdrake) Perl code."
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504 \
+                   "
+
+SRC_URI = "git://github.com/manatools/dnfdragora.git;branch=master;protocol=https \
+           file://0001-disable-build-manpages.patch \
+           file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
+           file://0001-To-fix-error-when-do_package.patch \
+           "
+
+SRCREV = "5cbbc07c9d015af284a424a172a379b385f05b6f"
+
+S = "${WORKDIR}/git"
+
+inherit cmake gettext pkgconfig python3-dir python3native setuptools3-base mime-xdg
+
+DEPENDS += "dnf python3 "
+#DEPENDS:class-nativesdk += "nativesdk-python3"
+
+RDEPENDS:${PN}:class-target = " python3-core libyui libyui-ncurses "
+
+# manpages generation requires http://www.sphinx-doc.org/
+EXTRA_OECMAKE = " -DWITH_MAN=OFF -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3"
+
+BBCLASSEXTEND = "nativesdk"
+
+FILES:${PN} = "${PYTHON_SITEPACKAGES_DIR}/ ${datadir}/ ${bindir}/ ${sysconfdir}/dnfdragora ${sysconfdir}/xdg"
+
+PNBLACKLIST[dnfdragora] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}"
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb b/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb
deleted file mode 100644
index 70e1a47..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "dnfdragora is a DNF frontend, based on rpmdragora from Mageia (originally rpmdrake) Perl code."
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504 \
-                   "
-
-SRC_URI = "git://github.com/manatools/dnfdragora.git \
-           file://0001-disable-build-manpages.patch \
-           file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
-           file://0001-To-fix-error-when-do_package.patch \
-           "
-
-PV = "1.1.2+git${SRCPV}"
-SRCREV = "19e123132cfd4efd860e5204261c3c228bfe80a8"
-
-S = "${WORKDIR}/git"
-
-inherit cmake gettext pkgconfig python3-dir python3native distutils3-base mime-xdg
-
-DEPENDS += "dnf python3 "
-#DEPENDS:class-nativesdk += "nativesdk-python3"
-
-RDEPENDS:${PN}:class-target = " python3-core libyui libyui-ncurses "
-
-# manpages generation requires http://www.sphinx-doc.org/
-EXTRA_OECMAKE = " -DWITH_MAN=OFF -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3"
-
-BBCLASSEXTEND = "nativesdk"
-
-FILES:${PN} = "${PYTHON_SITEPACKAGES_DIR}/ ${datadir}/ ${bindir}/ ${sysconfdir}/dnfdragora ${sysconfdir}/xdg"
-
-PNBLACKLIST[dnfdragora] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}"
-
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.5.bb b/meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.5.bb
index dfd137c..833a416 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.5.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a"
 SECTION = "console/utils"
 DEPENDS = "libpng zlib"
-SRC_URI = "git://github.com/GunnarMonell/fbgrab.git;protocol=https"
+SRC_URI = "git://github.com/GunnarMonell/fbgrab.git;protocol=https;branch=master"
 
 SRCREV = "f43ce6d5ce48fb01360eaa7c4a92c2573a1d02f8"
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb b/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb
index bcc8515..e715f74 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb
@@ -15,7 +15,7 @@
 
 # tag 20190801
 SRCREV = "ac635b818e38ddb8e7e2e1057330a32b4e25476e"
-SRC_URI = "git://github.com/${BPN}/${BPN}.git \
+SRC_URI = "git://github.com/${BPN}/${BPN}.git;branch=master;protocol=https \
            file://0001-include-sys-select-on-non-glibc-platforms.patch \
 "
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.9.bb b/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.9.bb
index e044926..b2ad1b6 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.9.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.9.bb
@@ -32,7 +32,7 @@
 "
 
 SRC_URI = " \
-    git://github.com/fvwmorg/fvwm.git;protocol=https \
+    git://github.com/fvwmorg/fvwm.git;protocol=https;branch=master \
     file://0001-Fix-compilation-for-disabled-gnome.patch \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb b/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb
index a2eb864..71a005a 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://copying.txt;md5=462e4b97f73ef12f8171c3c546ce4e8d"
 
 SRC_URI = " \
-    git://github.com/g-truc/glm;branch=master \
+    git://github.com/g-truc/glm;branch=master;protocol=https \
     file://0001-Silence-clang-warnings.patch \
     file://glmConfig.cmake.in \
     file://glmConfigVersion.cmake.in \
diff --git a/meta-openembedded/meta-oe/recipes-graphics/graphene/graphene_1.10.6.bb b/meta-openembedded/meta-oe/recipes-graphics/graphene/graphene_1.10.6.bb
new file mode 100644
index 0000000..0c05c60
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/graphene/graphene_1.10.6.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A thin layer of graphic data types"
+HOMEPAGE = "http://ebassi.github.io/graphene/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a7d871d9e23c450c421a85bb2819f648"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gobject-introspection gtk-doc
+
+SRC_URI[archive.sha256sum] = "80ae57723e4608e6875626a88aaa6f56dd25df75024bd16e9d77e718c3560b25"
+
+# gtk4 & mutter 41.0 requires graphene build with introspection
+PACKAGECONFIG ?= "introspection"
+PACKAGECONFIG[introspection] = "-Dintrospection=enabled,-Dintrospection=disabled,"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+EXTRA_OEMESON = "-Dinstalled_tests=false"
+
+FILES:${PN} += "${libdir}/graphene-1.0"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.109.bb b/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.109.bb
deleted file mode 100644
index ce2a83d..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.109.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "VCD (Value Change Dump) file waveform viewer"
-DESCRIPTION = "gtkwave is a viewer for VCD (Value Change Dump) files which are usually created by digital circuit simulators. (These files have no connection to video CDs!) "
-HOMEPAGE = "http://gtkwave.sourceforge.net/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
-
-SRC_URI = "http://gtkwave.sourceforge.net/gtkwave-gtk3-${PV}.tar.gz"
-SRC_URI[sha256sum] = "35461eccd9b8b4470caa78ab9a8f14ecacbcc9eff63033d8dce58093e786deb7"
-S = "${WORKDIR}/${BPN}-gtk3-${PV}"
-
-DEPENDS = " \
-    gperf-native \
-    gtk+3 \
-    gdk-pixbuf \
-    tcl \
-    tk \
-    bzip2 \
-    xz \
-    pango \
-    zlib \
-"
-
-inherit pkgconfig autotools gettext texinfo mime mime-xdg
-
-inherit features_check
-# depends on gtk+3 which has this restriction
-# ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-# but https://github.com/gtkwave/gtkwave/blob/f9d82a82aa3ddc30ca47984278371f62c9a3bd81/gtkwave3-gtk3/src/gtk23compat.h#L10
-# explicitly includes gdk/gdkwayland.h for gtk-3.22.26 and newer (oe-core currently has 3.24.29)
-# and it needs x11 as well for tk dependency (so it happends to be both GTK3DISTROFEATURES instead of either of them)
-REQUIRED_DISTRO_FEATURES = "wayland x11"
-
-EXTRA_OECONF = " \
-    --enable-gtk3 \
-    --with-tcl=${STAGING_BINDIR_CROSS} \
-    --with-tk=${STAGING_BINDIR_CROSS} \
-    --with-tirpc \
-    --disable-mime-update \
-"
-
-FILES:${PN} = "${bindir} ${datadir}"
-
-RDEPENDS:${PN} += "tk-lib"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.111.bb b/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.111.bb
new file mode 100644
index 0000000..36b1e04
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.111.bb
@@ -0,0 +1,44 @@
+SUMMARY = "VCD (Value Change Dump) file waveform viewer"
+DESCRIPTION = "gtkwave is a viewer for VCD (Value Change Dump) files which are usually created by digital circuit simulators. (These files have no connection to video CDs!) "
+HOMEPAGE = "http://gtkwave.sourceforge.net/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
+
+SRC_URI = "http://gtkwave.sourceforge.net/gtkwave-gtk3-${PV}.tar.gz"
+SRC_URI[sha256sum] = "b4e1c2f718fb3c4b4f412a220876b9da599fe11745fb6f7eb4aed107b1106233"
+S = "${WORKDIR}/${BPN}-gtk3-${PV}"
+
+DEPENDS = " \
+    gperf-native \
+    gtk+3 \
+    gdk-pixbuf \
+    tcl \
+    tk \
+    bzip2 \
+    xz \
+    pango \
+    zlib \
+"
+
+inherit pkgconfig autotools gettext texinfo mime mime-xdg
+
+inherit features_check
+# depends on gtk+3 which has this restriction
+# ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+# but https://github.com/gtkwave/gtkwave/blob/f9d82a82aa3ddc30ca47984278371f62c9a3bd81/gtkwave3-gtk3/src/gtk23compat.h#L10
+# explicitly includes gdk/gdkwayland.h for gtk-3.22.26 and newer (oe-core currently has 3.24.29)
+# and it needs x11 as well for tk dependency (so it happends to be both GTK3DISTROFEATURES instead of either of them)
+REQUIRED_DISTRO_FEATURES = "wayland x11"
+
+EXTRA_OECONF = " \
+    --enable-gtk3 \
+    --with-tcl=${STAGING_BINDIR_CROSS} \
+    --with-tk=${STAGING_BINDIR_CROSS} \
+    --with-tirpc \
+    --disable-mime-update \
+"
+
+FILES:${PN} = "${bindir} ${datadir}"
+
+RDEPENDS:${PN} += "tk-lib"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/imlib2/imlib2_git.bb b/meta-openembedded/meta-oe/recipes-graphics/imlib2/imlib2_git.bb
index a90d40e..56d41cd 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/imlib2/imlib2_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/imlib2/imlib2_git.bb
@@ -2,7 +2,7 @@
 
 HOMEPAGE = "https://sourceforge.net/projects/enlightenment/"
 SECTION = "libs"
-LICENSE = "MIT & BSD"
+LICENSE = "Imlib2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35"
 
 DEPENDS = "freetype "
@@ -14,7 +14,7 @@
 
 AUTO_LIBNAME_PKGS = ""
 
-SRC_URI = "git://git.enlightenment.org/legacy/${BPN}.git;protocol=https"
+SRC_URI = "git://git.enlightenment.org/legacy/${BPN}.git;protocol=https;branch=master"
 S = "${WORKDIR}/git"
 
 PACKAGECONFIG ??= "jpeg png zlib ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.26.bb b/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.26.bb
deleted file mode 100644
index e633854..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.26.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Jpeg 2000 implementation"
-HOMEPAGE = "https://jasper-software.github.io/jasper/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a80440d1d8f17d041c71c7271d6e06eb"
-
-SRC_URI = "git://github.com/jasper-software/jasper.git;protocol=https"
-SRCREV = "5083b949f0caa5bc6257cd81162a33c15bf8a1d1"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[jpeg] = "-DJAS_ENABLE_LIBJPEG=true, -DJAS_ENABLE_LIBJPEG=false, jpeg"
-PACKAGECONFIG[opengl] = "-DJAS_ENABLE_OPENGL=true, -DJAS_ENABLE_OPENGL=false, freeglut"
-
-EXTRA_OECMAKE:append = " -DJAS_ENABLE_SHARED=true"
-
-do_install:append() {
-    chrpath -d ${D}${bindir}/jasper
-    chrpath -d ${D}${bindir}/imginfo
-    chrpath -d ${D}${bindir}/imgcmp
-    chrpath -d ${D}${libdir}/libjasper.so.*
-}
diff --git a/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb b/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb
new file mode 100644
index 0000000..4c17105
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Jpeg 2000 implementation"
+HOMEPAGE = "https://jasper-software.github.io/jasper/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a80440d1d8f17d041c71c7271d6e06eb"
+
+SRC_URI = "git://github.com/jasper-software/jasper.git;protocol=https;branch=master"
+SRCREV = "fe00207dc10db1d7cc6f2757961c5c6bdfd10973"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[jpeg] = "-DJAS_ENABLE_LIBJPEG=true, -DJAS_ENABLE_LIBJPEG=false, jpeg"
+PACKAGECONFIG[opengl] = "-DJAS_ENABLE_OPENGL=true, -DJAS_ENABLE_OPENGL=false, freeglut"
+
+EXTRA_OECMAKE:append = " -DJAS_ENABLE_SHARED=true"
+
+do_install:append() {
+    chrpath -d ${D}${bindir}/jasper
+    chrpath -d ${D}${bindir}/imginfo
+    chrpath -d ${D}${bindir}/imgcmp
+    chrpath -d ${D}${libdir}/libjasper.so.*
+}
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch
index 871e6e9..962c119 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch
+++ b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch
@@ -1,4 +1,4 @@
-From f9c4ad3a171d676e3818b8f6897f325ccf0b2203 Mon Sep 17 00:00:00 2001
+From 6ec375eaafc43a2b3c30a0e0e49447d231d81a67 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 9 May 2017 00:57:10 -0700
 
@@ -7,10 +7,10 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/Makefile.am b/Makefile.am
-index 8166d91..8e05e49 100644
+index 8568dd2..5efc91e 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -2,6 +2,8 @@
+@@ -3,6 +3,8 @@ ACLOCAL_AMFLAGS = -I acinclude
  
  lib_LTLIBRARIES = libSDL2_ttf.la
  
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.15.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.15.bb
deleted file mode 100644
index 5787e98..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.15.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Simple DirectMedia Layer truetype font library"
-SECTION = "libs"
-DEPENDS = "virtual/libsdl2 freetype virtual/libgl"
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=4bb27d550fdafcd8f8e4fb8cbb2775ef"
-
-SRC_URI = " \
-    http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-${PV}.tar.gz \
-    file://automake_foreign.patch \
-"
-SRC_URI[md5sum] = "04fe06ff7623d7bdcb704e82f5f88391"
-SRC_URI[sha256sum] = "a9eceb1ad88c1f1545cd7bd28e7cbc0b2c14191d40238f531a15b01b1b22cd33"
-
-S = "${WORKDIR}/SDL2_ttf-${PV}"
-
-inherit autotools pkgconfig features_check
-
-# links to libGL.so
-REQUIRED_DISTRO_FEATURES += "x11 opengl"
-
-do_configure:prepend() {
-    # Removing these files fixes a libtool version mismatch.
-    MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
-
-    for i in ${MACROS}; do
-        rm -f ${S}/acinclude/$i
-    done
-}
-ASNEEDED = ""
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.18.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.18.bb
new file mode 100644
index 0000000..513b411
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.18.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Simple DirectMedia Layer truetype font library"
+SECTION = "libs"
+DEPENDS = "virtual/libsdl2 freetype virtual/libgl"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=e98cfd01ca78f683e9d035795810ce87"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-${PV}.tar.gz \
+           file://automake_foreign.patch \
+           "
+SRC_URI[sha256sum] = "7234eb8883514e019e7747c703e4a774575b18d435c22a4a29d068cb768a2251"
+
+S = "${WORKDIR}/SDL2_ttf-${PV}"
+
+inherit autotools pkgconfig features_check
+
+# links to libGL.so
+REQUIRED_DISTRO_FEATURES += "opengl"
+
+do_configure:prepend() {
+    # Removing these files fixes a libtool version mismatch.
+    MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
+
+    for i in ${MACROS}; do
+        rm -f ${S}/acinclude/$i
+    done
+}
+ASNEEDED = ""
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb b/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb
index 3ed9e94..c3b6645 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb
@@ -44,7 +44,7 @@
 
 inherit cmake
 
-SRC_URI = "git://github.com/LibVNC/libvncserver"
+SRC_URI = "git://github.com/LibVNC/libvncserver;branch=master;protocol=https"
 SRCREV = "2aa20dad4c23c18948d3f63b33f9dfec1f837729"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.1.1.bb b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.1.1.bb
index b298684..bdcbfd7 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.1.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.1.1.bb
@@ -4,7 +4,7 @@
     file://../COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \
 "
 
-SRC_URI = "git://github.com/libyui/libyui.git"
+SRC_URI = "git://github.com/libyui/libyui.git;branch=master;protocol=https"
 
 SRC_URI:append:class-target = " file://0001-Fix-the-error-of-can-t-find-header-file.patch"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_4.1.1.bb b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_4.1.1.bb
index b15343c..4ea2177 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_4.1.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_4.1.1.bb
@@ -5,7 +5,7 @@
                     file://../COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
                    "
 
-SRC_URI = "git://github.com/libyui/libyui.git \
+SRC_URI = "git://github.com/libyui/libyui.git;branch=master;protocol=https \
            file://0001-Fix-build-with-clang.patch \
            file://0001-Use-relative-install-paths-for-CMake.patch \
            "
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 a7478d4..7ccee6b 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
@@ -1,21 +1,18 @@
 # SPDX-FileCopyrightText: Huawei Inc.
+#
 # SPDX-License-Identifier: MIT
 
-# TODO: Pin upstream release (current v7.11.0-80-g419a757)
-src_org = "lvgl"
-SRC_URI = "gitsm://github.com/${src_org}/lv_drivers;destsuffix=${S};protocol=https;nobranch=1"
-SRCREV = "419a757c23aaa67c676fe3a2196d64808fcf2254"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d6fc0df890c5270ef045981b516bb8f2"
-
 HOMEPAGE = "https://docs.lvgl.io/latest/en/html/porting/index.html"
 SUMMARY = "LVGL's Display and Touch pad drivers"
 DESCRIPTION = "Collection of drivers: SDL, framebuffer, wayland and more..."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d6fc0df890c5270ef045981b516bb8f2"
 
-DEPENDS += "libxkbcommon"
-DEPENDS += "lvgl"
-DEPENDS += "wayland"
+# TODO: Pin upstream release (current v7.11.0-80-g419a757)
+SRC_URI = "git://github.com/lvgl/lv_drivers;destsuffix=${S};protocol=https;nobranch=1"
+SRCREV = "419a757c23aaa67c676fe3a2196d64808fcf2254"
+
+DEPENDS = "libxkbcommon lvgl wayland"
 
 REQUIRED_DISTRO_FEATURES = "wayland"
 
@@ -24,22 +21,26 @@
 
 S = "${WORKDIR}/${PN}-${PV}"
 
+LVGL_CONFIG_WAYLAND_HOR_RES ?= "480"
+LVGL_CONFIG_WAYLAND_VER_RES ?= "320"
+
 EXTRA_OECMAKE += "-Dinstall:BOOL=ON"
 
 TARGET_CFLAGS += "-DLV_CONF_INCLUDE_SIMPLE=1"
 TARGET_CFLAGS += "-I${RECIPE_SYSROOT}/${includedir}/lvgl"
 
-
+# Upstream does not support a default configuration
+# but propose a default "disabled" template, which is used as reference
+# More configuration can be done using external configuration variables
 do_configure:append() {
     [ -r "${S}/lv_drv_conf.h" ] \
         || sed -e "s|#if 0 .*Set it to \"1\" to enable the content.*|#if 1 // Enabled by ${PN}|g" \
                -e "s|#  define USE_WAYLAND       0|#  define USE_WAYLAND       1|g" \
+	       -e "s|\(^ *# *define *WAYLAND_HOR_RES *\).*|\1${LVGL_CONFIG_WAYLAND_HOR_RES}|g" \
+ 	       -e "s|\(^ *# *define *WAYLAND_VER_RES *\).*|\1${LVGL_CONFIG_WAYLAND_VER_RES}|g" \
           < "${S}/lv_drv_conf_template.h" > "${S}/lv_drv_conf.h"
 }
 
-
-FILES:${PN}-dev = "\
+FILES:${PN}-dev += "\
     ${includedir}/lvgl/lv_drivers/ \
     "
-
-FILES:${PN}-staticdev = "${libdir}/"
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 084070c..5b3b38d 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
@@ -1,16 +1,15 @@
 # SPDX-FileCopyrightText: Huawei Inc.
+#
 # SPDX-License-Identifier: MIT
 
-src_org = "lvgl"
-SRC_URI = "gitsm://github.com/${src_org}/lv_lib_png;destsuffix=${S};protocol=https;nobranch=1"
-SRCREV = "bf1531afe07c9f861107559e29ab8a2d83e4715a"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d6fc0df890c5270ef045981b516bb8f2"
-
 HOMEPAGE = "https://docs.lvgl.io"
 SUMMARY = "PNG decoder for LVGL"
 DESCRIPTION = "Allow the use of PNG images in LVGL. This implementation uses lodepng"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d6fc0df890c5270ef045981b516bb8f2"
+
+SRC_URI = "git://github.com/lvgl/lv_lib_png;destsuffix=${S};protocol=https;nobranch=1"
+SRCREV = "bf1531afe07c9f861107559e29ab8a2d83e4715a"
 
 # because of lvgl dependency
 REQUIRED_DISTRO_FEATURES = "wayland"
@@ -26,5 +25,3 @@
 FILES:${PN}-dev = "\
     ${includedir}/lvgl/lv_lib_png/ \
     "
-
-FILES:${PN}-staticdev = "${libdir}/"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.0.3.bb b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.0.3.bb
deleted file mode 100644
index 2ca7f60..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.0.3.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-FileCopyrightText: Huawei Inc.
-#
-# SPDX-License-Identifier: MIT
-
-HOMEPAGE = "https://lvgl.io/"
-DESCRIPTION = "LVGL is an OSS graphics library to create embedded GUI"
-SUMMARY = "Light and Versatile Graphics Library"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a"
-
-# TODO: Pin upstream release (current is v8.0.3-dev-239-g7b7bed37d)
-SRC_URI = "gitsm://github.com/lvgl/lvgl;destsuffix=${S};protocol=https;nobranch=1"
-SRCREV = "7b7bed37d3e937c59ec99fccba58774fbf9f1930"
-
-REQUIRED_DISTRO_FEATURES = "wayland"
-
-inherit cmake
-inherit features_check
-
-S = "${WORKDIR}/${PN}-${PV}"
-
-EXTRA_OECMAKE += "-Dinstall:BOOL=ON"
-
-do_configure:prepend() {
-    [ -r "${S}/lv_conf.h" ] \
-        || sed -e "s|#if 0 /*Set it to \"1\" to enable the content*/|#if 1 // Enabled by ${PN}|g" \
-            < "${S}/lv_conf_template.h" > "${S}/lv_conf.h"
-}
-
-FILES:${PN}-dev += "\
-    ${includedir}/${PN}/ \
-    ${includedir}/${PN}/lvgl/ \
-    "
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
new file mode 100644
index 0000000..958639b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.1.0.bb
@@ -0,0 +1,36 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: MIT
+
+HOMEPAGE = "https://lvgl.io/"
+DESCRIPTION = "LVGL is an OSS graphics library to create embedded GUI"
+SUMMARY = "Light and Versatile Graphics Library"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a"
+
+SRC_URI = "gitsm://github.com/lvgl/lvgl;destsuffix=${S};protocol=https;nobranch=1"
+SRCREV = "d38eb1e689fa5a64c25e677275172d9c8a4ab2f0"
+
+REQUIRED_DISTRO_FEATURES = "wayland"
+
+inherit cmake
+inherit features_check
+
+S = "${WORKDIR}/${PN}-${PV}"
+
+LVGL_CONFIG_LV_MEM_CUSTOM ?= "0"
+
+# Upstream does not support a default configuration
+# but propose a default "disabled" template, which is used as reference
+# More configuration can be done using external configuration variables
+do_configure:prepend() {
+    [ -r "${S}/lv_conf.h" ] \
+        || sed -e 's|#if 0 .*Set it to "1" to enable .*|#if 1 // Enabled|g' \
+	    -e "s|\(#define LV_MEM_CUSTOM .*\)0|\1${LVGL_CONFIG_LV_MEM_CUSTOM}|g" \
+            < "${S}/lv_conf_template.h" > "${S}/lv_conf.h"
+}
+
+FILES:${PN}-dev += "\
+    ${includedir}/${PN}/ \
+    ${includedir}/${PN}/lvgl/ \
+    "
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openbox/obconf_git.bb b/meta-openembedded/meta-oe/recipes-graphics/openbox/obconf_git.bb
index bb1e752..4ff0d26 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/openbox/obconf_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/openbox/obconf_git.bb
@@ -13,7 +13,7 @@
 
 SRCREV = "63ec47c5e295ad4f09d1df6d92afb7e10c3fec39"
 SRC_URI = " \
-    git://git.openbox.org/dana/obconf \
+    git://git.openbox.org/dana/obconf;branch=master \
 "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.4.0.bb b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.4.0.bb
index 9f610ef..0533f92 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.4.0.bb
@@ -6,7 +6,7 @@
 DEPENDS = "libpng tiff lcms zlib"
 
 SRC_URI = " \
-    git://github.com/uclouvain/openjpeg.git \
+    git://github.com/uclouvain/openjpeg.git;branch=master;protocol=https \
     file://0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch \
     file://0001-This-patch-fixed-include-dir-to-usr-include-.-Obviou.patch \
 "
diff --git a/meta-openembedded/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb b/meta-openembedded/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb
index 4c02cc5..52723d7 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb
@@ -1,7 +1,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=4f59d6446bf2e004e80df1a0937129fa"
 
-SRC_URI = "git://gitlab.freedesktop.org/mesa/parallel-deqp-runner.git;protocol=https \
+SRC_URI = "git://gitlab.freedesktop.org/mesa/parallel-deqp-runner.git;protocol=https;branch=master \
            file://0001-meson.build-WORKAROUND-Remove-vulkan-dependency.patch \
            "
 
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 3eb23dc..defaaee 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
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
 
 SRCREV = "715e29fd4cd71b6e452ae0f4e36d917b43122ce8"
-SRC_URI = "git://github.com/fukuchi/libqrencode.git"
+SRC_URI = "git://github.com/fukuchi/libqrencode.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
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 be5b601..0bc0394 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 \
+    git://github.com/baldurk/${BPN}.git;protocol=http;branch=v1.x;protocol=https \
     file://0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch \
 "
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb b/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb
index b787972..bf0a594 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb
@@ -6,7 +6,7 @@
 
 S = "${WORKDIR}/git"
 SRCREV = "ed16b3e69985feaf565efbecea70a1cc2fca2a58"
-SRC_URI = "git://github.com/KhronosGroup/SPIRV-Cross.git \
+SRC_URI = "git://github.com/KhronosGroup/SPIRV-Cross.git;branch=master;protocol=https \
 	file://0001-Add-install-PHONY-target-in-Makefile.patch \
 "
 
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 710ed9b..51c1462 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,16 +9,20 @@
 
 REQUIRED_DISTRO_FEATURES = "x11 opengl"
 
-SRC_URI = "git://git.suckless.org/surf;branch=surf-webkit2 \
-           file://0001-config.mk-Fix-compiler-and-linker.patch \
-           file://0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch \
-           "
 SRCREV = "bcd7d74e613fb8af11b40c351f0a6c1a771b2d2b"
+SRC_URI = "git://git.suckless.org/surf;branch=surf-webkit2 \
+           "
+SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'soup3', 'file://0001-config.mk-Fix-compiler-and-linke,ig.ml-make-compatible-with-webkitgtk-2.34.0.patch', '', d)}"
 
 S = "${WORKDIR}/git"
 
 inherit pkgconfig features_check
 
+PACKAGECONFIG ?= ""
+
+# Enable if soup3 is enabled in webkit recipe
+PACKAGECONFIG[soup3] = ",,,"
+
 TARGET_CC_ARCH += "${LDFLAGS}"
 
 do_install () {
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang_4.1.0.bb b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang_4.1.0.bb
index dea579c..3a3068f 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang_4.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang_4.1.0.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
 SRCREV = "4767ea922bcc460e70b87b1d303ebdfed0897da8"
-SRC_URI = "git://github.com/tesseract-ocr/tessdata.git"
+SRC_URI = "git://github.com/tesseract-ocr/tessdata.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_4.1.1.bb b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_4.1.1.bb
deleted file mode 100644
index 7856fab..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_4.1.1.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "A commercial quality OCR engine "
-HOMEPAGE = "https://github.com/tesseract-ocr/tesseract"
-BUGTRACKER = "https://github.com/tesseract-ocr/tesseract/issues"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-BRANCH = "4.1"
-SRCREV = "f4ef2f2050f4c25b28bdbf0063b7d2eb30f41cf7"
-SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git;branch=${BRANCH} \
-           file://0001-include-sys-time.h.patch \
-          "
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "leptonica"
-
-EXTRA_OECONF += "LIBLEPT_HEADERSDIR=${STAGING_INCDIR}/leptonica"
-
-inherit autotools pkgconfig
-
-FILES:${PN} += "${datadir}/tessdata"
-
-RRECOMMENDS:${PN} += "tesseract-lang-eng"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_4.1.3.bb b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_4.1.3.bb
new file mode 100644
index 0000000..6f92679
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_4.1.3.bb
@@ -0,0 +1,24 @@
+SUMMARY = "A commercial quality OCR engine "
+HOMEPAGE = "https://github.com/tesseract-ocr/tesseract"
+BUGTRACKER = "https://github.com/tesseract-ocr/tesseract/issues"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+BRANCH = "4.1"
+SRCREV = "f38e7a7ba850b668d4505dd4c712238d7ec63ca8"
+SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git;branch=${BRANCH};protocol=https \
+           file://0001-include-sys-time.h.patch \
+          "
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "leptonica"
+
+EXTRA_OECONF += "LIBLEPT_HEADERSDIR=${STAGING_INCDIR}/leptonica"
+
+inherit autotools pkgconfig
+
+FILES:${PN} += "${datadir}/tessdata"
+
+RRECOMMENDS:${PN} += "tesseract-lang-eng"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb
index e7673c5..a946d92 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb
@@ -17,7 +17,7 @@
 
 SRCREV = "540bfc3278e396321124d4b18a798ac2bc18b6ca"
 
-SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.11-branch \
+SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.11-branch;protocol=https \
            file://0002-do-not-build-tests-sub-directory.patch \
            file://0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch \
            file://0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch \
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb
index 4cec02d..7fa155a 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb
@@ -8,7 +8,7 @@
 PV = "0.1+gitr${SRCPV}"
 PR = "r3"
 
-SRC_URI = "git://github.com/android/platform_frameworks_base.git;branch=master"
+SRC_URI = "git://github.com/android/platform_frameworks_base.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git/data/fonts"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.92.1.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.92.1.bb
index f72b8b6..8340ccc 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.92.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.92.1.bb
@@ -8,7 +8,7 @@
 LIC_FILES_CHKSUM = "file://OFL.txt;md5=7dfa0a236dc535ad2d2548e6170c4402"
 
 SRCREV = "a403c9b7f509dad5e58dde85ef63b1c36fde3a21"
-SRC_URI = "git://github.com/pravins/lohit.git;branch=master"
+SRC_URI = "git://github.com/pravins/lohit.git;branch=master;protocol=https"
 
 DEPENDS = "fontforge-native"
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb b/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb
index 8a6b6f8..f3602f1 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b25d2c4cca175f44120d1b8e67cb358d"
 
-SRC_URI = "git://github.com/Airblader/unclutter-xfixes.git \
+SRC_URI = "git://github.com/Airblader/unclutter-xfixes.git;branch=master;protocol=https \
            file://0001-build-use-autotools.patch"
 SRCREV = "160ae3760a51126eb225ce77d83e4706eccd4ed9"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_1.4.bb b/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_1.4.bb
index 64dd3ea..2c08ff3 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_1.4.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_1.4.bb
@@ -6,7 +6,7 @@
 DEPENDS = "virtual/libx11 libxext xorgproto"
 
 SRCREV = "c3d1a9dbafdfe6144ff474d0d523dc01b068750f"
-SRC_URI = "git://anongit.freedesktop.org/vdpau/libvdpau"
+SRC_URI = "git://anongit.freedesktop.org/vdpau/libvdpau;branch=master"
 
 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 1faee4d3a1..7d73bfb 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
@@ -4,9 +4,9 @@
 SRC_URI = "\
 	git://github.com/KhronosGroup/VK-GL-CTS.git;protocol=https;name=vk-gl-cts;nobranch=1 \
 	git://github.com/google/amber;protocol=https;destsuffix=git/external/amber/src;name=amber;branch=main \
-	git://github.com/KhronosGroup/glslang.git;protocol=https;destsuffix=git/external/glslang/src;name=glslang \
-	git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/external/spirv-headers/src;name=spirv-headers \
-	git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/external/spirv-tools/src;name=spirv-tools \
+	git://github.com/KhronosGroup/glslang.git;protocol=https;destsuffix=git/external/glslang/src;name=glslang;branch=master \
+	git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/external/spirv-headers/src;name=spirv-headers;branch=master \
+	git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/external/spirv-tools/src;name=spirv-tools;branch=master \
 	https://raw.githubusercontent.com/baldurk/renderdoc/v1.1/renderdoc/api/app/renderdoc_app.h;subdir=git/external/renderdoc/src;name=renderdoc \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
index 21b20f4..0a7af92 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
@@ -10,7 +10,7 @@
 SRCREV = "87cd0530f438372dda3c70bb491a6fd19f09acc2"
 PV .= "+git${SRCPV}"
 
-SRC_URI = "git://github.com/LibVNC/x11vnc \
+SRC_URI = "git://github.com/LibVNC/x11vnc;branch=master;protocol=https \
            file://starting-fix.patch \
            "
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-armsoc_1.4.1.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-armsoc_1.4.1.bb
index 3b7bbd1..404df4e 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-armsoc_1.4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-armsoc_1.4.1.bb
@@ -7,7 +7,7 @@
 DEPENDS += "virtual/libx11 libdrm xorgproto"
 
 SRCREV = "8bbdb2ae3bb8ef649999a8da33ddbe11a04763b8"
-SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-armsoc"
+SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-armsoc;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati/0001-ati-cleanup-terminology-to-use-primary-secondary.patch b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati/0001-ati-cleanup-terminology-to-use-primary-secondary.patch
new file mode 100644
index 0000000..cda2c2f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati/0001-ati-cleanup-terminology-to-use-primary-secondary.patch
@@ -0,0 +1,369 @@
+From 6e035c007876ffe972a497681dd3debdc806e979 Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Mon, 13 Jul 2020 09:11:28 +1000
+Subject: [PATCH] ati: cleanup terminology to use primary/secondary
+
+The X server changed some API/ABIs here.
+
+Based on amdgpu patch by Michel
+---
+Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/commit/8da3e4561ef82bb78c9a17b8cd8bf139b9cfd680.patch]
+man/radeon.man        |  2 +-
+ src/compat-api.h      |  6 ++++
+ src/drmmode_display.c |  4 +--
+ src/evergreen_state.h |  2 +-
+ src/r600_state.h      |  2 +-
+ src/radeon.h          | 10 +++---
+ src/radeon_exa.c      |  2 +-
+ src/radeon_glamor.c   |  2 +-
+ src/radeon_kms.c      | 74 +++++++++++++++++++++----------------------
+ 9 files changed, 55 insertions(+), 49 deletions(-)
+
+diff --git a/man/radeon.man b/man/radeon.man
+index dcebf53..247dcdb 100644
+--- a/man/radeon.man
++++ b/man/radeon.man
+@@ -290,7 +290,7 @@ on. If this option is set, the default value of the property is 'on' or 'off'
+ accordingly. If this option isn't set, the default value of the property is
+ .B auto,
+ which means that TearFree is on for rotated outputs, outputs with RandR
+-transforms applied and for RandR 1.4 slave outputs, otherwise off.
++transforms applied and for RandR 1.4 secondary outputs, otherwise off.
+ .TP
+ .BI "Option \*qAccelMethod\*q \*q" "string" \*q
+ Chooses between available acceleration architectures.  Valid values are
+diff --git a/src/compat-api.h b/src/compat-api.h
+index f4e7524..def6d3e 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -34,4 +34,10 @@
+ #define BLOCKHANDLER_ARGS pScreen, pTimeout, pReadmask
+ #endif
+ 
++#if ABI_VIDEODRV_VERSION < SET_ABI_VERSION(25, 2)
++#define current_primary current_master
++#define primary_pixmap master_pixmap
++#define secondary_dst slave_dst
++#endif
++
+ #endif
+diff --git a/src/drmmode_display.c b/src/drmmode_display.c
+index 0e9e247..3dec91e 100644
+--- a/src/drmmode_display.c
++++ b/src/drmmode_display.c
+@@ -720,7 +720,7 @@ drmmode_crtc_prime_scanout_update(xf86CrtcPtr crtc, DisplayModePtr mode,
+ 		xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list,
+ 					 ent) {
+ 			if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) {
+-				dirty->slave_dst =
++				dirty->secondary_dst =
+ 					drmmode_crtc->scanout[scanout_id].pixmap;
+ 				break;
+ 			}
+@@ -1356,7 +1356,7 @@ drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix)
+ 
+ 	xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list, ent) {
+ 		if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) {
+-			PixmapStopDirtyTracking(dirty->src, dirty->slave_dst);
++			PixmapStopDirtyTracking(dirty->src, dirty->secondary_dst);
+ 			break;
+ 		}
+ 	}
+diff --git a/src/evergreen_state.h b/src/evergreen_state.h
+index 7e54e1c..34ba87b 100644
+--- a/src/evergreen_state.h
++++ b/src/evergreen_state.h
+@@ -350,7 +350,7 @@ extern void *RADEONEXACreatePixmap2(ScreenPtr pScreen, int width, int height,
+ 				    int *new_pitch);
+ extern void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv);
+ extern Bool RADEONEXAPixmapIsOffscreen(PixmapPtr pPix);
+-extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **handle_p);
++extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr secondary, void **handle_p);
+ extern Bool RADEONEXASetSharedPixmapBacking(PixmapPtr ppix, void *handle);
+ 
+ #endif
+diff --git a/src/r600_state.h b/src/r600_state.h
+index 3434599..567c3ca 100644
+--- a/src/r600_state.h
++++ b/src/r600_state.h
+@@ -321,6 +321,6 @@ extern void *RADEONEXACreatePixmap2(ScreenPtr pScreen, int width, int height,
+ 				    int *new_pitch);
+ extern void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv);
+ extern Bool RADEONEXAPixmapIsOffscreen(PixmapPtr pPix);
+-extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **handle_p);
++extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr secondary, void **handle_p);
+ extern Bool RADEONEXASetSharedPixmapBacking(PixmapPtr ppix, void *handle);
+ #endif
+diff --git a/src/radeon.h b/src/radeon.h
+index 2c91346..85fd021 100644
+--- a/src/radeon.h
++++ b/src/radeon.h
+@@ -182,18 +182,18 @@ typedef enum {
+ 
+ 
+ static inline ScreenPtr
+-radeon_master_screen(ScreenPtr screen)
++radeon_primary_screen(ScreenPtr screen)
+ {
+-    if (screen->current_master)
+-	return screen->current_master;
++    if (screen->current_primary)
++	return screen->current_primary;
+ 
+     return screen;
+ }
+ 
+ static inline ScreenPtr
+-radeon_dirty_master(PixmapDirtyUpdatePtr dirty)
++radeon_dirty_primary(PixmapDirtyUpdatePtr dirty)
+ {
+-    return radeon_master_screen(dirty->slave_dst->drawable.pScreen);
++    return radeon_primary_screen(dirty->secondary_dst->drawable.pScreen);
+ }
+ 
+ static inline DrawablePtr
+diff --git a/src/radeon_exa.c b/src/radeon_exa.c
+index 268155e..320ff99 100644
+--- a/src/radeon_exa.c
++++ b/src/radeon_exa.c
+@@ -282,7 +282,7 @@ void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv)
+     free(driverPriv);
+ }
+ 
+-Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **fd_handle)
++Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr seconndary, void **fd_handle)
+ {
+     struct radeon_exa_pixmap_priv *driver_priv = exaGetPixmapDriverPrivate(ppix);
+ 
+diff --git a/src/radeon_glamor.c b/src/radeon_glamor.c
+index f109838..ccf9994 100644
+--- a/src/radeon_glamor.c
++++ b/src/radeon_glamor.c
+@@ -366,7 +366,7 @@ radeon_glamor_set_pixmap_bo(DrawablePtr drawable, PixmapPtr pixmap)
+ 
+ 
+ static Bool
+-radeon_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr slave,
++radeon_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr secondary,
+ 				   void **handle_p)
+ {
+ 	ScreenPtr screen = pixmap->drawable.pScreen;
+diff --git a/src/radeon_kms.c b/src/radeon_kms.c
+index b3db7c4..62962d6 100644
+--- a/src/radeon_kms.c
++++ b/src/radeon_kms.c
+@@ -559,8 +559,8 @@ dirty_region(PixmapDirtyUpdatePtr dirty)
+ 	if (dirty->rotation != RR_Rotate_0) {
+ 		dstregion = transform_region(damageregion,
+ 					     &dirty->f_inverse,
+-					     dirty->slave_dst->drawable.width,
+-					     dirty->slave_dst->drawable.height);
++					     dirty->secondary_dst->drawable.width,
++					     dirty->secondary_dst->drawable.height);
+ 	} else
+ #endif
+ 	{
+@@ -568,7 +568,7 @@ dirty_region(PixmapDirtyUpdatePtr dirty)
+ 
+ 	    dstregion = RegionDuplicate(damageregion);
+ 	    RegionTranslate(dstregion, -dirty->x, -dirty->y);
+-	    PixmapRegionInit(&pixregion, dirty->slave_dst);
++	    PixmapRegionInit(&pixregion, dirty->secondary_dst);
+ 	    RegionIntersect(dstregion, dstregion, &pixregion);
+ 	    RegionUninit(&pixregion);
+ 	}
+@@ -585,8 +585,8 @@ redisplay_dirty(PixmapDirtyUpdatePtr dirty, RegionPtr region)
+ 	if (RegionNil(region))
+ 		goto out;
+ 
+-	if (dirty->slave_dst->master_pixmap)
+-	    DamageRegionAppend(&dirty->slave_dst->drawable, region);
++	if (dirty->secondary_dst->primary_pixmap)
++	    DamageRegionAppend(&dirty->secondary_dst->drawable, region);
+ 
+ #ifdef HAS_DIRTYTRACKING_ROTATION
+ 	PixmapSyncDirtyHelper(dirty);
+@@ -595,8 +595,8 @@ redisplay_dirty(PixmapDirtyUpdatePtr dirty, RegionPtr region)
+ #endif
+ 
+ 	radeon_cs_flush_indirect(src_scrn);
+-	if (dirty->slave_dst->master_pixmap)
+-	    DamageRegionProcessPending(&dirty->slave_dst->drawable);
++	if (dirty->secondary_dst->primary_pixmap)
++	    DamageRegionProcessPending(&dirty->secondary_dst->drawable);
+ 
+ out:
+ 	DamageEmpty(dirty->damage);
+@@ -613,12 +613,12 @@ radeon_prime_scanout_update_abort(xf86CrtcPtr crtc, void *event_data)
+ void
+ radeon_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty)
+ {
+-    ScreenPtr master_screen = radeon_dirty_master(dirty);
++    ScreenPtr primary_screen = radeon_dirty_primary(dirty);
+     PixmapDirtyUpdatePtr ent;
+     RegionPtr region;
+ 
+-    xorg_list_for_each_entry(ent, &master_screen->pixmap_dirty_list, ent) {
+-	if (!radeon_dirty_src_equals(dirty, ent->slave_dst))
++    xorg_list_for_each_entry(ent, &primary_screen->pixmap_dirty_list, ent) {
++	if (!radeon_dirty_src_equals(dirty, ent->secondary_dst))
+ 	    continue;
+ 
+ 	region = dirty_region(ent);
+@@ -631,45 +631,45 @@ radeon_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty)
+ #if HAS_SYNC_SHARED_PIXMAP
+ 
+ static Bool
+-master_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
++primary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
+ {
+-    ScreenPtr master_screen = radeon_dirty_master(dirty);
++    ScreenPtr primary_screen = radeon_dirty_primary(dirty);
+ 
+-    return !!master_screen->SyncSharedPixmap;
++    return !!primary_screen->SyncSharedPixmap;
+ }
+ 
+ static Bool
+-slave_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
++secondary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
+ {
+-    ScreenPtr slave_screen = dirty->slave_dst->drawable.pScreen;
++    ScreenPtr secondary_screen = dirty->secondary_dst->drawable.pScreen;
+ 
+-    return !!slave_screen->SyncSharedPixmap;
++    return !!secondary_screen->SyncSharedPixmap;
+ }
+ 
+ static void
+ call_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty)
+ {
+-    ScreenPtr master_screen = radeon_dirty_master(dirty);
++    ScreenPtr primary_screen = radeon_dirty_primary(dirty);
+ 
+-    master_screen->SyncSharedPixmap(dirty);
++    primary_screen->SyncSharedPixmap(dirty);
+ }
+ 
+ #else /* !HAS_SYNC_SHARED_PIXMAP */
+ 
+ static Bool
+-master_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
++primary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
+ {
+-    ScrnInfoPtr master_scrn = xf86ScreenToScrn(radeon_dirty_master(dirty));
++    ScrnInfoPtr primary_scrn = xf86ScreenToScrn(radeon_dirty_primary(dirty));
+ 
+-    return master_scrn->driverName == scrn->driverName;
++    return primary_scrn->driverName == scrn->driverName;
+ }
+ 
+ static Bool
+-slave_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
++secondary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
+ {
+-    ScrnInfoPtr slave_scrn = xf86ScreenToScrn(dirty->slave_dst->drawable.pScreen);
++    ScrnInfoPtr secondary_scrn = xf86ScreenToScrn(dirty->secondary_dst->drawable.pScreen);
+ 
+-    return slave_scrn->driverName == scrn->driverName;
++    return secondary_scrn->driverName == scrn->driverName;
+ }
+ 
+ static void
+@@ -684,12 +684,12 @@ call_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty)
+ static xf86CrtcPtr
+ radeon_prime_dirty_to_crtc(PixmapDirtyUpdatePtr dirty)
+ {
+-    ScreenPtr screen = dirty->slave_dst->drawable.pScreen;
++    ScreenPtr screen = dirty->secondary_dst->drawable.pScreen;
+     ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
+     xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
+     int c;
+ 
+-    /* Find the CRTC which is scanning out from this slave pixmap */
++    /* Find the CRTC which is scanning out from this secondary pixmap */
+     for (c = 0; c < xf86_config->num_crtc; c++) {
+ 	xf86CrtcPtr xf86_crtc = xf86_config->crtc[c];
+ 	drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private;
+@@ -714,7 +714,7 @@ radeon_prime_scanout_do_update(xf86CrtcPtr crtc, unsigned scanout_id)
+ 	if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) {
+ 	    RegionPtr region;
+ 
+-	    if (master_has_sync_shared_pixmap(scrn, dirty))
++	    if (primary_has_sync_shared_pixmap(scrn, dirty))
+ 		call_sync_shared_pixmap(dirty);
+ 
+ 	    region = dirty_region(dirty);
+@@ -727,7 +727,7 @@ radeon_prime_scanout_do_update(xf86CrtcPtr crtc, unsigned scanout_id)
+ 		radeon_cs_flush_indirect(scrn);
+ 		RegionCopy(&drmmode_crtc->scanout_last_region, region);
+ 		RegionTranslate(region, -crtc->x, -crtc->y);
+-		dirty->slave_dst = drmmode_crtc->scanout[scanout_id].pixmap;
++		dirty->secondary_dst = drmmode_crtc->scanout[scanout_id].pixmap;
+ 	    }
+ 
+ 	    redisplay_dirty(dirty, region);
+@@ -754,7 +754,7 @@ radeon_prime_scanout_update_handler(xf86CrtcPtr crtc, uint32_t frame, uint64_t u
+ static void
+ radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty)
+ {
+-    ScreenPtr screen = dirty->slave_dst->drawable.pScreen;
++    ScreenPtr screen = dirty->secondary_dst->drawable.pScreen;
+     ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
+     RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn);
+     xf86CrtcPtr xf86_crtc = radeon_prime_dirty_to_crtc(dirty);
+@@ -818,7 +818,7 @@ radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty)
+ static void
+ radeon_prime_scanout_flip(PixmapDirtyUpdatePtr ent)
+ {
+-    ScreenPtr screen = ent->slave_dst->drawable.pScreen;
++    ScreenPtr screen = ent->secondary_dst->drawable.pScreen;
+     ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
+     RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn);
+     xf86CrtcPtr crtc = radeon_prime_dirty_to_crtc(ent);
+@@ -893,11 +893,11 @@ radeon_dirty_update(ScrnInfoPtr scrn)
+ 		if (screen->isGPU) {
+ 			PixmapDirtyUpdatePtr region_ent = ent;
+ 
+-			if (master_has_sync_shared_pixmap(scrn, ent)) {
+-				ScreenPtr master_screen = radeon_dirty_master(ent);
++			if (primary_has_sync_shared_pixmap(scrn, ent)) {
++				ScreenPtr primary_screen = radeon_dirty_primary(ent);
+ 
+-				xorg_list_for_each_entry(region_ent, &master_screen->pixmap_dirty_list, ent) {
+-					if (radeon_dirty_src_equals(ent, region_ent->slave_dst))
++				xorg_list_for_each_entry(region_ent, &primary_screen->pixmap_dirty_list, ent) {
++					if (radeon_dirty_src_equals(ent, region_ent->secondary_dst))
+ 						break;
+ 				}
+ 			}
+@@ -921,7 +921,7 @@ radeon_dirty_update(ScrnInfoPtr scrn)
+ 
+ 			RegionDestroy(region);
+ 		} else {
+-			if (slave_has_sync_shared_pixmap(scrn, ent))
++			if (secondary_has_sync_shared_pixmap(scrn, ent))
+ 				continue;
+ 
+ 			region = dirty_region(ent);
+@@ -1216,7 +1216,7 @@ static void RADEONBlockHandler_KMS(BLOCKHANDLER_ARGS_DECL)
+     (*pScreen->BlockHandler) (BLOCKHANDLER_ARGS);
+     pScreen->BlockHandler = RADEONBlockHandler_KMS;
+ 
+-    if (!xf86ScreenToScrn(radeon_master_screen(pScreen))->vtSema)
++    if (!xf86ScreenToScrn(radeon_primary_screen(pScreen))->vtSema)
+ 	return;
+ 
+     if (!pScreen->isGPU)
+@@ -2584,7 +2584,7 @@ CARD32 cleanup_black_fb(OsTimerPtr timer, CARD32 now, pointer data)
+     xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
+     int c;
+ 
+-    if (xf86ScreenToScrn(radeon_master_screen(screen))->vtSema)
++    if (xf86ScreenToScrn(radeon_primary_screen(screen))->vtSema)
+ 	return 0;
+ 
+     /* Unreference the all-black FB created by RADEONLeaveVT_KMS. After
+-- 
+2.33.1
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.0.1.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.0.1.bb
deleted file mode 100644
index 3ba28d9..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.0.1.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-require recipes-graphics/xorg-driver/xorg-driver-video.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=aabff1606551f9461ccf567739af63dc"
-
-SUMMARY = "X.Org X server -- ATI Radeon video driver"
-
-DESCRIPTION = "Open-source X.org graphics driver for ATI Radeon graphics"
-
-DEPENDS += "virtual/libx11 libxvmc drm \
-            virtual/libgl xorgproto libpciaccess"
-
-inherit features_check
-REQUIRED_DISTRO_FEATURES += "opengl"
-
-SRC_URI += "file://0001-Fix-link-failure-with-gcc-10.patch"
-
-SRC_URI[md5sum] = "47eccf71823206ade9629cba69de7ef6"
-SRC_URI[sha256sum] = "5cb6015d8664546ad1311bc9c363d7bc41ebf60e7046ceb44dd38e5b707961b0"
-
-EXTRA_OECONF += "--disable-glamor"
-
-RDEPENDS:${PN} += "xserver-xorg-module-exa"
-RRECOMMENDS:${PN} += "linux-firmware-radeon"
-
-FILES:${PN} += "${datadir}/X11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.1.0.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.1.0.bb
new file mode 100644
index 0000000..c8ce77a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.1.0.bb
@@ -0,0 +1,25 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=aabff1606551f9461ccf567739af63dc"
+
+SUMMARY = "X.Org X server -- ATI Radeon video driver"
+
+DESCRIPTION = "Open-source X.org graphics driver for ATI Radeon graphics"
+
+DEPENDS += "virtual/libx11 libxvmc drm \
+            virtual/libgl xorgproto libpciaccess"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES += "opengl"
+
+SRC_URI += "file://0001-Fix-link-failure-with-gcc-10.patch \
+            file://0001-ati-cleanup-terminology-to-use-primary-secondary.patch \
+           "
+SRC_URI[sha256sum] = "659f5a1629eea5f5334d9b39b18e6807a63aa1efa33c1236d9cc53acbb223c49"
+
+#EXTRA_OECONF += "--disable-glamor"
+
+RDEPENDS:${PN} += "xserver-xorg-module-exa"
+RRECOMMENDS:${PN} += "linux-firmware-radeon"
+
+FILES:${PN} += "${datadir}/X11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau/0001-nouveau-fixup-driver-for-new-X-server-ABI.patch b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau/0001-nouveau-fixup-driver-for-new-X-server-ABI.patch
new file mode 100644
index 0000000..e49c995
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau/0001-nouveau-fixup-driver-for-new-X-server-ABI.patch
@@ -0,0 +1,66 @@
+From 7ae2f6ba4cbf29fc3f1b08579b838679a3301cb3 Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Mon, 13 Jul 2020 09:20:15 +1000
+Subject: [PATCH] nouveau: fixup driver for new X server ABI
+
+Upstream-Status: Backport [https://cgit.freedesktop.org/nouveau/xf86-video-nouveau/commit/?id=e80e73ced69b15662103d0fd6837db4ce6c6eb5b]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/compat-api.h  | 4 ++++
+ src/nouveau_exa.c | 2 +-
+ src/nv_driver.c   | 6 +++---
+ 3 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+index fde2f4b..8a1fcf9 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -102,4 +102,8 @@
+ 
+ #endif
+ 
++#if ABI_VIDEODRV_VERSION < SET_ABI_VERSION(25, 2)
++#define secondary_dst slave_dst
++#endif
++
+ #endif
+diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c
+index 55df6f8..db3b112 100644
+--- a/src/nouveau_exa.c
++++ b/src/nouveau_exa.c
+@@ -157,7 +157,7 @@ nouveau_exa_destroy_pixmap(ScreenPtr pScreen, void *priv)
+ 
+ #ifdef NOUVEAU_PIXMAP_SHARING
+ static Bool
+-nouveau_exa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr slave, void **handle_p)
++nouveau_exa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr secondary, void **handle_p)
+ {
+ 	struct nouveau_bo *bo = nouveau_pixmap_bo(ppix);
+ 	struct nouveau_pixmap *nvpix = nouveau_pixmap(ppix);
+diff --git a/src/nv_driver.c b/src/nv_driver.c
+index e72a6b6..f9ab4af 100644
+--- a/src/nv_driver.c
++++ b/src/nv_driver.c
+@@ -559,16 +559,16 @@ redisplay_dirty(ScreenPtr screen, PixmapDirtyUpdatePtr dirty)
+ {
+ 	RegionRec pixregion;
+ 
+-	PixmapRegionInit(&pixregion, dirty->slave_dst);
++	PixmapRegionInit(&pixregion, dirty->secondary_dst);
+ 
+-	DamageRegionAppend(&dirty->slave_dst->drawable, &pixregion);
++	DamageRegionAppend(&dirty->secondary_dst->drawable, &pixregion);
+ #ifdef HAS_DIRTYTRACKING_ROTATION
+ 	PixmapSyncDirtyHelper(dirty);
+ #else
+ 	PixmapSyncDirtyHelper(dirty, &pixregion);
+ #endif
+ 
+-	DamageRegionProcessPending(&dirty->slave_dst->drawable);
++	DamageRegionProcessPending(&dirty->secondary_dst->drawable);
+ 	RegionUninit(&pixregion);
+ }
+ 
+-- 
+2.33.1
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.17.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.17.bb
index d9d09a2..d471610 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.17.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.17.bb
@@ -15,4 +15,5 @@
 
 COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
 
+SRC_URI += "file://0001-nouveau-fixup-driver-for-new-X-server-ABI.patch"
 SRC_URI[sha256sum] = "499322e27a55c8183166bf2dd1e47d085eb834143e0d7036baba8427b90c156b"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/yad/yad_6.0.bb b/meta-openembedded/meta-oe/recipes-graphics/yad/yad_6.0.bb
index 6ede557..029d793 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/yad/yad_6.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/yad/yad_6.0.bb
@@ -5,7 +5,7 @@
 LICENSE = "GPLv3"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
-SRC_URI = "git://github.com/v1cont/yad.git"
+SRC_URI = "git://github.com/v1cont/yad.git;branch=master;protocol=https"
 SRCREV = "a5b1a7a3867bc7dffbbc539f586f301687b6ec02"
 
 inherit autotools gsettings features_check pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/agent-proxy_1.97.bb b/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/agent-proxy_1.97.bb
index 2eb1920..57232f8 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/agent-proxy_1.97.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/agent-proxy_1.97.bb
@@ -10,7 +10,7 @@
 
 SRCREV = "468fe4c31e6c62c9bbb328b06ba71eaf7be0b76a"
 
-SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kgdb/agent-proxy.git;protocol=git \
+SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kgdb/agent-proxy.git;protocol=git;branch=master \
            file://0001-Makefile-Add-LDFLAGS-variable.patch \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_12.0.1.1105_p2.bb b/meta-openembedded/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_12.0.1.1105_p2.bb
index bc00e3d..e135b05 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_12.0.1.1105_p2.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_12.0.1.1105_p2.bb
@@ -9,7 +9,7 @@
 NO_GENERIC_LICENSE[Firmware-Broadcom-WIDCOMM] = "LICENSE.broadcom_bcm20702"
 
 LIC_FILES_CHKSUM = "file://LICENSE.broadcom_bcm20702;md5=c0d5ea0502b00df74173d0f8a48b619d"
-SRC_URI = "git://github.com/winterheart/broadcom-bt-firmware.git"
+SRC_URI = "git://github.com/winterheart/broadcom-bt-firmware.git;branch=master;protocol=https"
 SRCREV = "1af1116f73782951bd7bbe2139928e497c3a634b"
 
 PE = "1"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.3.0.bb b/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.3.0.bb
index 4b228bb..35de3c5 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.3.0.bb
@@ -13,7 +13,7 @@
 DEPENDS = "zlib readline coreutils-native ncurses-native"
 
 S = "${WORKDIR}/git"
-SRC_URI = "git://github.com/crash-utility/${BPN}.git \
+SRC_URI = "git://github.com/crash-utility/${BPN}.git;branch=master;protocol=https \
            ${GNU_MIRROR}/gdb/gdb-7.6.tar.gz;name=gdb;subdir=git \
            file://7001force_define_architecture.patch \
            file://7003cross_ranlib.patch \
diff --git a/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
index e3c74a5..3337fe5 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
@@ -37,6 +37,9 @@
 
 inherit autotools
 
+PACKAGES =+ "${PN}-ipmievd"
+FILES:${PN}-ipmievd += "${sbindir}/ipmievd"
+
 # --disable-dependency-tracking speeds up the build
 # --enable-file-security adds some security checks
 # --disable-intf-free disables FreeIPMI support - we don't want to depend on
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc
index 9e62617..13c4549 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc
+++ b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc
@@ -3,7 +3,7 @@
 LICENSE = "GPLv2 & LGPLv2"
 DEPENDS = "elfutils bash"
 
-SRC_URI = "git://github.com/dynup/kpatch.git;protocol=https \
+SRC_URI = "git://github.com/dynup/kpatch.git;protocol=https;branch=master \
 	file://0001-kpatch-build-add-cross-compilation-support.patch \
 	file://0002-kpatch-build-allow-overriding-of-distro-name.patch \
 	"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/libbpf/libbpf_0.5.0.bb b/meta-openembedded/meta-oe/recipes-kernel/libbpf/libbpf_0.5.0.bb
index 7ce7234..4a3b834 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/libbpf/libbpf_0.5.0.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/libbpf/libbpf_0.5.0.bb
@@ -8,7 +8,7 @@
 
 DEPENDS = "zlib elfutils"
 
-SRC_URI = "git://github.com/libbpf/libbpf.git;protocol=https"
+SRC_URI = "git://github.com/libbpf/libbpf.git;protocol=https;branch=master"
 SRCREV = "5579664205e42194e1921d69d0839f660c801a4d"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch
index 2b108ab..1dd87c8 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch
+++ b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch
@@ -13,9 +13,12 @@
 Upstream-Status: Inappropriate[oe specific]
 
 Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+
+[2021-11-18] Patch updated to use CFLAGS_COMMON for zstd
+Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
 ---
- Makefile | 45 +++++++++++++++++++++++----------------------
- 1 file changed, 23 insertions(+), 22 deletions(-)
+ Makefile |   47 ++++++++++++++++++++++++-----------------------
+ 1 file changed, 24 insertions(+), 23 deletions(-)
 
 --- a/Makefile
 +++ b/Makefile
@@ -94,7 +97,7 @@
  endif
  
  ifeq ($(USESNAPPY), on)
-@@ -65,7 +66,7 @@ LIBS := -lsnappy $(LIBS)
+@@ -65,12 +66,12 @@ LIBS := -lsnappy $(LIBS)
  ifneq ($(LINKTYPE), dynamic)
  LIBS := $(LIBS) -lstdc++
  endif
@@ -102,8 +105,14 @@
 +CFLAGS_COMMON += -DUSESNAPPY
  endif
  
- LIBS := $(LIBS) -lpthread
-@@ -90,14 +91,14 @@ LIBS := $(LIBS) $(call try-run,\
+ ifeq ($(USEZSTD), on)
+ LIBS := -lzstd $(LIBS)
+-CFLAGS += -DUSEZSTD
++CFLAGS_COMMON += -DUSEZSTD
+ endif
+ 
+ ifeq ($(DEBUG), on)
+@@ -104,14 +105,14 @@ LIBS := $(LIBS) $(call try-run,\
  all: makedumpfile
  
  $(OBJ_PART): $(SRC_PART)
@@ -120,7 +129,7 @@
  	echo .TH MAKEDUMPFILE 8 \"$(DATE)\" \"makedumpfile v$(VERSION)\" \"Linux System Administrator\'s Manual\" > temp.8
  	grep -v "^.TH MAKEDUMPFILE 8" $(VPATH)makedumpfile.8 >> temp.8
  	mv temp.8 makedumpfile.8
-@@ -108,7 +109,7 @@ makedumpfile: $(SRC_BASE) $(OBJ_PART) $(
+@@ -122,7 +123,7 @@ makedumpfile: $(SRC_BASE) $(OBJ_PART) $(
  	gzip -c ./makedumpfile.conf.5 > ./makedumpfile.conf.5.gz
  
  eppic_makedumpfile.so: extension_eppic.c
diff --git a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch
deleted file mode 100644
index f46fb31..0000000
--- a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 9045b72bdb703bf58a6586d77461eea8f59f50f7 Mon Sep 17 00:00:00 2001
-From: Alexandru Moise <alexandru.moise@windriver.com>
-Date: Fri, 29 Apr 2016 07:40:46 +0000
-Subject: [PATCH] mem_section: Support only 46 bit for MAX_PHYSMEM_BITS on
- PPC64
-
-Related to change:
-http://lists.infradead.org/pipermail/kexec/2013-January/007849.html
-
-Linux on PPC64 has supported only 46 bit MAX_PHYSMEM_BITS since commit:
-048ee0993ec8360abb0b51bdf8f8721e9ed62ec4
-
-Also remove set_ppc64_max_physmem_bits and set info->max_physmem_bits in
-get_machdep_info_ppc64 instead. set_ppc64_max_physmem_bits is broken
-for all kernels compiled with CONFIG_SPARSEMEM=n. makedumpfile is
-unable to get mem_section field from powerpc kernel since commit:
-fd59d231f81cb02870b9cf15f456a897f3669b4e
-
-Upstream-Status: Pending
-
-Signed-off-by: Alexandru Moise <alexandru.moise@windriver.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
-
-[hqBai: adjusted patch for context, no logical change]
-Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- arch/ppc64.c | 38 ++------------------------------------
- 1 file changed, 2 insertions(+), 36 deletions(-)
-
---- a/arch/ppc64.c
-+++ b/arch/ppc64.c
-@@ -462,44 +462,6 @@ ppc64_vtop_level4(unsigned long vaddr)
- 	return paddr;
- }
- 
--int
--set_ppc64_max_physmem_bits(void)
--{
--	long array_len = ARRAY_LENGTH(mem_section);
--
--	/* Check if we can get MAX_PHYSMEM_BITS from vmcoreinfo */
--	if (NUMBER(MAX_PHYSMEM_BITS) != NOT_FOUND_NUMBER) {
--		info->max_physmem_bits = NUMBER(MAX_PHYSMEM_BITS);
--		return TRUE;
--	}
--
--	/*
--	 * The older ppc64 kernels uses _MAX_PHYSMEM_BITS as 42 and the
--	 * newer kernels 3.7 onwards uses 46 bits.
--	 */
--
--	info->max_physmem_bits  = _MAX_PHYSMEM_BITS_ORIG ;
--	if ((array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT_EXTREME()))
--		|| (array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT())))
--		return TRUE;
--
--	info->max_physmem_bits  = _MAX_PHYSMEM_BITS_3_7;
--	if ((array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT_EXTREME()))
--		|| (array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT())))
--		return TRUE;
--
--	info->max_physmem_bits  = _MAX_PHYSMEM_BITS_4_19;
--	if ((array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT_EXTREME()))
--		|| (array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT())))
--		return TRUE;
--
--	info->max_physmem_bits  = _MAX_PHYSMEM_BITS_4_20;
--	if ((array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT_EXTREME()))
--		|| (array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT())))
--		return TRUE;
--
--	return FALSE;
--}
- 
- int
- get_machdep_info_ppc64(void)
-@@ -507,10 +469,8 @@ get_machdep_info_ppc64(void)
- 	unsigned long vmlist, vmap_area_list, vmalloc_start;
- 
- 	info->section_size_bits = _SECTION_SIZE_BITS;
--	if (!set_ppc64_max_physmem_bits()) {
--		ERRMSG("Can't detect max_physmem_bits.\n");
--		return FALSE;
--	}
-+	info->max_physmem_bits = _MAX_PHYSMEM_BITS_3_7;
-+
- 	info->page_offset = __PAGE_OFFSET;
- 
- 	if (SYMBOL(_stext) == NOT_FOUND_SYMBOL) {
diff --git a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.9.bb b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.9.bb
deleted file mode 100644
index cf34d34..0000000
--- a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.9.bb
+++ /dev/null
@@ -1,64 +0,0 @@
-SUMMARY = "VMcore extraction tool"
-DESCRIPTION = "\
-    This program is used to extract a subset of the memory available either \
-    via /dev/mem or /proc/vmcore (for crashdumps). It is used to get memory \
-    images without extra uneeded information (zero pages, userspace programs, \
-    etc). \
-"
-HOMEPAGE = "https://github.com/makedumpfile/makedumpfile"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-LICENSE = "GPLv2.0"
-
-SRCBRANCH ?= "master"
-SRCREV = "a9ad811c15e769c8e6d8d915a05cebc32f2ea2f5"
-
-DEPENDS = "bzip2 zlib elfutils xz"
-RDEPENDS:${PN}-tools = "perl ${PN}"
-
-# arm and aarch64 would compile but has never been tested upstream.  mips would not compile.
-#
-COMPATIBLE_HOST = "(x86_64|i.86|powerpc|arm|aarch64).*-linux"
-
-PACKAGES =+ "${PN}-tools"
-FILES:${PN}-tools = "${bindir}/*.pl"
-
-SRC_URI = "\
-    git://github.com/makedumpfile/makedumpfile;branch=${SRCBRANCH} \
-    file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \
-    file://0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch \
-"
-
-S = "${WORKDIR}/git"
-
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
-
-SECTION = "base"
-
-# If we do not specify TARGET, makedumpfile will build for the host but use the
-# target gcc.
-#
-EXTRA_OEMAKE = "\
-    LINKTYPE=static \
-    TARGET=${TARGET_ARCH} \
-    ${PACKAGECONFIG_CONFARGS} \
-"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[lzo] = "USELZO=on,USELZO=off,lzo"
-PACKAGECONFIG[snappy] = "USESNAPPY=on,USESNAPPY=off,snappy"
-
-do_install () {
-    mkdir -p ${D}/usr/bin
-    install -m 755 ${S}/makedumpfile ${D}/usr/bin
-    install -m 755 ${S}/makedumpfile-R.pl ${D}/usr/bin
-
-    mkdir -p ${D}/usr/share/man/man8
-    install -m 644 ${S}/makedumpfile.8.gz ${D}/usr/share/man/man8
-
-    mkdir -p ${D}/usr/share/man/man5
-    install -m 644 ${S}/makedumpfile.conf.5.gz ${D}/usr/share/man/man5
-
-    mkdir -p ${D}/etc/
-    install -m 644 ${S}/makedumpfile.conf ${D}/etc/makedumpfile.conf.sample
-}
diff --git a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.0.bb b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.0.bb
new file mode 100644
index 0000000..e703ee7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.0.bb
@@ -0,0 +1,63 @@
+SUMMARY = "VMcore extraction tool"
+DESCRIPTION = "\
+    This program is used to extract a subset of the memory available either \
+    via /dev/mem or /proc/vmcore (for crashdumps). It is used to get memory \
+    images without extra uneeded information (zero pages, userspace programs, \
+    etc). \
+"
+HOMEPAGE = "https://github.com/makedumpfile/makedumpfile"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+LICENSE = "GPLv2.0"
+
+SRCBRANCH ?= "master"
+SRCREV = "06ef8e2b814feb08a668b7a3783c86674e49a7b1"
+
+DEPENDS = "bzip2 zlib elfutils xz"
+RDEPENDS:${PN}-tools = "perl ${PN}"
+
+# mips would not compile.
+COMPATIBLE_HOST = "(x86_64|i.86|powerpc|arm|aarch64).*-linux"
+
+PACKAGES =+ "${PN}-tools"
+FILES:${PN}-tools = "${bindir}/*.pl"
+
+SRC_URI = "\
+    git://github.com/makedumpfile/makedumpfile;branch=${SRCBRANCH};protocol=https \
+    file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \
+"
+
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
+
+SECTION = "base"
+
+# If we do not specify TARGET, makedumpfile will build for the host but use the
+# target gcc.
+#
+EXTRA_OEMAKE = "\
+    LINKTYPE=static \
+    TARGET=${TARGET_ARCH} \
+    ${PACKAGECONFIG_CONFARGS} \
+"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[lzo] = "USELZO=on,USELZO=off,lzo"
+PACKAGECONFIG[snappy] = "USESNAPPY=on,USESNAPPY=off,snappy"
+PACKAGECONFIG[zstd] = "USEZSTD=on,USEZSTD=off,zstd"
+
+do_install () {
+    mkdir -p ${D}/usr/bin
+    install -m 755 ${S}/makedumpfile ${D}/usr/bin
+    install -m 755 ${S}/makedumpfile-R.pl ${D}/usr/bin
+
+    mkdir -p ${D}/usr/share/man/man8
+    install -m 644 ${S}/makedumpfile.8.gz ${D}/usr/share/man/man8
+
+    mkdir -p ${D}/usr/share/man/man5
+    install -m 644 ${S}/makedumpfile.conf.5.gz ${D}/usr/share/man/man5
+
+    mkdir -p ${D}/etc/
+    install -m 644 ${S}/makedumpfile.conf ${D}/etc/makedumpfile.conf.sample
+}
diff --git a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb
index 1b578d3..887390c 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb
@@ -13,7 +13,7 @@
 
 PR .= "+git${SRCPV}"
 
-SRC_URI = "git://github.com/diamon/minicoredumper;protocol=https \
+SRC_URI = "git://github.com/diamon/minicoredumper;protocol=https;branch=master \
            file://0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch \
            file://minicoredumper.service \
            file://minicoredumper.init \
diff --git a/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb b/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb
index 06a02bb..0562f31 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
 
 SRCREV = "cf59527dc24fdd2f314ae4dcaeb3d68a117988f6"
-SRC_URI = "git://github.com/intel/pm-graph.git \
+SRC_URI = "git://github.com/intel/pm-graph.git;branch=master;protocol=https \
            file://0001-Makefile-fix-multilib-build-failure.patch \
            file://0001-sleepgraph.py-use-python3.patch \
            file://0001-sleepgraph-add-support-for-RT-kernel-ftrace-flags.patch \
diff --git a/meta-openembedded/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb b/meta-openembedded/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb
new file mode 100644
index 0000000..a2b0dea
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb
@@ -0,0 +1,69 @@
+# Recipe for building userspace part of USB/IP
+#
+# Started with work from chuck kamas - 2021-11-05
+# https://lists.yoctoproject.org/g/yocto/topic/86249103?p=,,,20,0,0,0::recentpostdate/sticky,,,20,0,0,86249103
+# Though have rewritten all the logic to be much simpler
+#
+# SPDX-License-Identifier: MIT
+#
+# Author(s)
+#   clst@ambu.com (Claus Stovgaard)
+#
+
+SUMMARY = "userspace usbip from Linux kernel tools"
+DESCRIPTION = " USB/IP protocol allows to pass USB device from server to \
+client over the network. Server is a machine which provides (shares) a \
+USB device. Client is a machine which uses USB device provided by server \
+over the network. The USB device may be either physical device connected \
+to a server or software entity created on a server using USB gadget subsystem."
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
+DEPENDS = "virtual/kernel udev"
+PROVIDES = "virtual/usbip-tools"
+
+inherit kernelsrc autotools-brokensep
+
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+# We need to set S, for not being set to STAGING_KERNEL_DIR, and by that
+# be wiped when we prune dest below. We just set it to usbip-tools-1.0
+S = "${WORKDIR}/${BP}"
+
+# Copy the source files from KERNEL/tools/usb/usbip to ${S}
+do_configure[prefuncs] += "copy_usbip_source_from_kernel"
+python copy_usbip_source_from_kernel() {
+    dir_in_kernel = "tools/usb/usbip"
+    src_dir = d.getVar("STAGING_KERNEL_DIR")
+    src = oe.path.join(src_dir, dir_in_kernel)
+    dest = d.getVar("S")
+    bb.utils.mkdirhier(dest)
+    bb.utils.prunedir(dest)
+    # copy src to dest folder
+    if not os.path.exists(src):
+        bb.fatal("Path does not exist: %s. Maybe dir_in_kernel does not match the kernel version." % src)
+    if os.path.isdir(src):
+        oe.path.copyhardlinktree(src, dest)
+    else:
+        src_path = os.path.dirname(src)
+        os.makedirs(os.path.join(dest,src_path),exist_ok=True)
+        bb.utils.copyfile(src, dest)
+}
+
+# Use local scripts before relying on inherited autotools
+do_configure () {
+    # We are in ${B} - equal to ${S}, so just run the scripts
+    ./cleanup.sh || bbnote "${PN} failed to cleanup.sh"
+    ./autogen.sh || bbnote "${PN} failed to autogen.sh"
+    oe_runconf
+}
+
+# As usbip integrate with the kernel module, we set this package to be build specific for
+# this machine, and not generally for the architecture
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+# Even though the libusbip is set to version 0.0.1, set the package version to match kernel
+# e.g. usbip-tools-5.14.21-r0.qemux86_64.rpm for qemu package using kernel 5.14.21
+python do_package:prepend() {
+    d.setVar('PKGV', d.getVar("KERNEL_VERSION", True).split("-")[0])
+}
\ No newline at end of file
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb b/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb
index c892040..e9841e4 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb
@@ -23,6 +23,8 @@
 DEPENDS = "libcap file bzip2"
 RDEPENDS:dirsplit = "perl"
 
+RDEPENDS:${PN}-dev = ""
+
 PACKAGES =+ "dirsplit genisoimage icedax wodim"
 
 FILES:dirsplit = " \
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_9.bb b/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_9.bb
index 1351dc4..fa4da18 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_9.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_9.bb
@@ -11,7 +11,7 @@
 
 SRCREV = "de37569c926c5886768f892c019e3f0468615038"
 SRC_URI = " \
-    git://github.com/linuxaudio/a2jmidid;protocol=https \
+    git://github.com/linuxaudio/a2jmidid;protocol=https;branch=master \
     file://riscv_ucontext.patch \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_1.19.19.bb b/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_1.19.19.bb
index c4a271e..8411cba 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_1.19.19.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_1.19.19.bb
@@ -14,7 +14,7 @@
 
 DEPENDS = "libsamplerate0 libsndfile1 readline"
 
-SRC_URI = "git://github.com/jackaudio/jack2.git \
+SRC_URI = "git://github.com/jackaudio/jack2.git;branch=master;protocol=https \
            file://0001-example-clients-Use-c-compiler-for-jack_simdtests.patch \
           "
 SRCREV = "3e6ca6b734b69e2f5dfb85935068e15006fb5acf"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.14.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.14.0.bb
index 8b57c39..0e62307 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.14.0.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.14.0.bb
@@ -7,7 +7,7 @@
 
 DEPENDS = "enca fontconfig freetype libpng fribidi"
 
-SRC_URI = "git://github.com/libass/libass.git"
+SRC_URI = "git://github.com/libass/libass.git;branch=master;protocol=https"
 SRCREV = "73284b676b12b47e17af2ef1b430527299e10c17"
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio/0001-Fix-a-few-Werror-format-security-errors-with-mvprint.patch b/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio/0001-Fix-a-few-Werror-format-security-errors-with-mvprint.patch
new file mode 100644
index 0000000..09e7dc3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio/0001-Fix-a-few-Werror-format-security-errors-with-mvprint.patch
@@ -0,0 +1,40 @@
+From e5e54be286bf6d8336b747503c803750bc674c57 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Oct 2021 01:28:18 -0700
+Subject: [PATCH] Fix a few -Werror=format-security errors with mvprintw()
+
+In all these places a non-constant is used as a format string which
+compiler complains about. Fix by using "%s" as format.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/cdda-player.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/cdda-player.c b/src/cdda-player.c
+index 69eddee..8834d60 100644
+--- a/src/cdda-player.c
++++ b/src/cdda-player.c
+@@ -298,7 +298,7 @@ action(const char *psz_action)
+              psz_action);
+   else
+     snprintf(psz_action_line, sizeof(psz_action_line), "%s", "" );
+-  mvprintw(LINE_ACTION, 0, psz_action_line);
++  mvprintw(LINE_ACTION, 0, "%s", psz_action_line);
+   clrtoeol();
+   refresh();
+ }
+@@ -1029,10 +1029,10 @@ display_tracks(void)
+       }
+       if (sub.track == i) {
+         attron(A_STANDOUT);
+-        mvprintw(i_line++, 0, line);
++        mvprintw(i_line++, 0, "%s", line);
+         attroff(A_STANDOUT);
+       } else
+-        mvprintw(i_line++, 0, line);
++        mvprintw(i_line++, 0, "%s", line);
+       clrtoeol();
+     }
+   }
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_2.1.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_2.1.0.bb
index 2340132..2becafb 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_2.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_2.1.0.bb
@@ -4,7 +4,9 @@
 LICENSE = "GPLv3+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
-SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.bz2"
+SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.bz2 \
+           file://0001-Fix-a-few-Werror-format-security-errors-with-mvprint.patch \
+           "
 
 SRC_URI[md5sum] = "aa7629e8f73662a762f64c444b901055"
 SRC_URI[sha256sum] = "8550e9589dbd594bfac93b81ecf129b1dc9d0d51e90f9696f1b2f9b2af32712b"
diff --git a/poky/meta/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch b/meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch
similarity index 100%
rename from poky/meta/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch
rename to meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch
diff --git a/poky/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch b/meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch
similarity index 100%
rename from poky/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch
rename to meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch
diff --git a/poky/meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch b/meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch
similarity index 100%
rename from poky/meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch
rename to meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch
diff --git a/poky/meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch b/meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch
similarity index 100%
rename from poky/meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch
rename to meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch
diff --git a/poky/meta/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch b/meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch
similarity index 100%
rename from poky/meta/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch
rename to meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch
diff --git a/poky/meta/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch b/meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch
similarity index 100%
rename from poky/meta/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch
rename to meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch
diff --git a/poky/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb b/meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb
similarity index 100%
rename from poky/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb
rename to meta-openembedded/meta-oe/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.33.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.33.1.bb
deleted file mode 100644
index e26c186..0000000
--- a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.33.1.bb
+++ /dev/null
@@ -1,116 +0,0 @@
-SUMMARY = "Open Source multimedia player"
-DESCRIPTION = "mpv is a fork of mplayer2 and MPlayer. It shares some features with the former projects while introducing many more."
-SECTION = "multimedia"
-HOMEPAGE = "http://www.mpv.io/"
-
-DEPENDS = " \
-    zlib \
-    ffmpeg \
-    jpeg \
-    libv4l \
-    libass \
-"
-
-DEPENDS += " \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' virtual/libx11 xsp libxv libxscrnsaver libxinerama', '', d)} \
-"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=91f1cb870c1cc2d31351a4d2595441cb"
-
-SRCREV_mpv = "b5d3e43198b9d57af5620b63537885aaa41fa8cd"
-SRC_URI = " \
-    git://github.com/mpv-player/mpv;name=mpv;branch=release/0.33;protocol=https \
-    https://waf.io/waf-2.0.20;name=waf;subdir=git \
-"
-SRC_URI[waf.sha256sum] = "bf971e98edc2414968a262c6aa6b88541a26c3cd248689c89f4c57370955ee7f"
-
-S = "${WORKDIR}/git"
-
-inherit waf pkgconfig mime-xdg
-
-LDFLAGS:append:riscv64 = " -latomic"
-
-LUA ?= "lua"
-LUA:mips64  = ""
-LUA:powerpc64  = ""
-LUA:powerpc64le  = ""
-LUA:riscv64  = ""
-LUA:riscv32  = ""
-LUA:powerpc  = ""
-
-# Note: lua is required to get on-screen-display (controls)
-PACKAGECONFIG ??= " \
-    ${LUA} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \
-"
-
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11"
-PACKAGECONFIG[xv] = "--enable-xv,--disable-xv,libxv"
-PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
-PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl"
-PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
-PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgbm"
-PACKAGECONFIG[lua] = "--enable-lua,--disable-lua,lua luajit"
-PACKAGECONFIG[libarchive] = "--enable-libarchive,--disable-libarchive,libarchive"
-PACKAGECONFIG[jack] = "--enable-jack, --disable-jack, jack"
-PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
-PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
-PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native libxkbcommon"
-
-python __anonymous() {
-    packageconfig = (d.getVar("PACKAGECONFIG") or "").split()
-    extras = []
-    if "x11" in packageconfig and "opengl" in packageconfig:
-        extras.append(" --enable-gl-x11")
-    if "x11" in packageconfig and "egl" in packageconfig:
-        extras.append(" --enable-egl-x11")
-    if "egl" in packageconfig and "drm" in packageconfig:
-        extras.append(" --enable-egl-drm")
-    if "vaapi" in packageconfig and "x11" in packageconfig:
-        extras.append(" --enable-vaapi-x11")
-    if "vaapi" in packageconfig and "drm" in packageconfig:
-        extras.append(" --enable-vaapi-drm")
-    if "vaapi" in packageconfig and "x11" in packageconfig and "egl" in packageconfig:
-        extras.append(" --enable-vaapi-x-egl")
-    if "vdpau" in packageconfig and "opengl" in packageconfig and "x11" in packageconfig:
-        extras.append(" --enable-vdpau-gl-x11")
-    if "wayland" in packageconfig and "opengl" in packageconfig:
-        extras.append(" --enable-gl-wayland")
-    if "wayland" in packageconfig and "vaapi" in packageconfig:
-        extras.append(" --enable-vaapi-wayland")
-    if extras:
-        d.appendVar("EXTRA_OECONF", "".join(extras))
-}
-
-SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}"
-
-EXTRA_OECONF = " \
-    --prefix=${prefix} \
-    --target=${SIMPLE_TARGET_SYS} \
-    --confdir=${sysconfdir} \
-    --datadir=${datadir} \
-    --disable-manpage-build \
-    --disable-libbluray \
-    --disable-dvdnav \
-    --disable-cdda \
-    --disable-uchardet \
-    --disable-rubberband \
-    --disable-lcms2 \
-    --disable-vapoursynth \
-    ${PACKAGECONFIG_CONFARGS} \
-"
-
-link_waf() {
-    ln -s waf-2.0.20 ${S}/waf
-}
-do_unpack[postfuncs] += "link_waf"
-
-FILES:${PN} += " \
-    ${datadir}/icons \
-    ${datadir}/zsh \
-    ${datadir}/bash-completion \
-    "
-EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "0", "1", d)}"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.34.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.34.0.bb
new file mode 100644
index 0000000..ebcaa6c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.34.0.bb
@@ -0,0 +1,116 @@
+SUMMARY = "Open Source multimedia player"
+DESCRIPTION = "mpv is a fork of mplayer2 and MPlayer. It shares some features with the former projects while introducing many more."
+SECTION = "multimedia"
+HOMEPAGE = "http://www.mpv.io/"
+
+DEPENDS = " \
+    zlib \
+    ffmpeg \
+    jpeg \
+    libv4l \
+    libass \
+"
+
+DEPENDS += " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' virtual/libx11 xsp libxv libxscrnsaver libxinerama', '', d)} \
+"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRCREV_mpv = "9ca9066d052acecb5b05369141a76993a753ee1e"
+SRC_URI = " \
+    git://github.com/mpv-player/mpv;name=mpv;branch=master;protocol=https \
+    https://waf.io/waf-2.0.20;name=waf;subdir=git \
+"
+SRC_URI[waf.sha256sum] = "bf971e98edc2414968a262c6aa6b88541a26c3cd248689c89f4c57370955ee7f"
+
+S = "${WORKDIR}/git"
+
+inherit waf pkgconfig mime-xdg
+
+LDFLAGS:append:riscv64 = " -latomic"
+
+LUA ?= "lua"
+LUA:mips64  = ""
+LUA:powerpc64  = ""
+LUA:powerpc64le  = ""
+LUA:riscv64  = ""
+LUA:riscv32  = ""
+LUA:powerpc  = ""
+
+# Note: lua is required to get on-screen-display (controls)
+PACKAGECONFIG ??= " \
+    ${LUA} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \
+"
+
+PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11"
+PACKAGECONFIG[xv] = "--enable-xv,--disable-xv,libxv"
+PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
+PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl"
+PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
+PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgbm"
+PACKAGECONFIG[lua] = "--enable-lua,--disable-lua,lua luajit"
+PACKAGECONFIG[libarchive] = "--enable-libarchive,--disable-libarchive,libarchive"
+PACKAGECONFIG[jack] = "--enable-jack, --disable-jack, jack"
+PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
+PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
+PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native libxkbcommon"
+
+python __anonymous() {
+    packageconfig = (d.getVar("PACKAGECONFIG") or "").split()
+    extras = []
+    if "x11" in packageconfig and "opengl" in packageconfig:
+        extras.append(" --enable-gl-x11")
+    if "x11" in packageconfig and "egl" in packageconfig:
+        extras.append(" --enable-egl-x11")
+    if "egl" in packageconfig and "drm" in packageconfig:
+        extras.append(" --enable-egl-drm")
+    if "vaapi" in packageconfig and "x11" in packageconfig:
+        extras.append(" --enable-vaapi-x11")
+    if "vaapi" in packageconfig and "drm" in packageconfig:
+        extras.append(" --enable-vaapi-drm")
+    if "vaapi" in packageconfig and "x11" in packageconfig and "egl" in packageconfig:
+        extras.append(" --enable-vaapi-x-egl")
+    if "vdpau" in packageconfig and "opengl" in packageconfig and "x11" in packageconfig:
+        extras.append(" --enable-vdpau-gl-x11")
+    if "wayland" in packageconfig and "opengl" in packageconfig:
+        extras.append(" --enable-gl-wayland")
+    if "wayland" in packageconfig and "vaapi" in packageconfig:
+        extras.append(" --enable-vaapi-wayland")
+    if extras:
+        d.appendVar("EXTRA_OECONF", "".join(extras))
+}
+
+SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}"
+
+EXTRA_OECONF = " \
+    --prefix=${prefix} \
+    --target=${SIMPLE_TARGET_SYS} \
+    --confdir=${sysconfdir} \
+    --datadir=${datadir} \
+    --disable-manpage-build \
+    --disable-libbluray \
+    --disable-dvdnav \
+    --disable-cdda \
+    --disable-uchardet \
+    --disable-rubberband \
+    --disable-lcms2 \
+    --disable-vapoursynth \
+    ${PACKAGECONFIG_CONFARGS} \
+"
+
+link_waf() {
+    ln -s waf-2.0.20 ${S}/waf
+}
+do_unpack[postfuncs] += "link_waf"
+
+FILES:${PN} += " \
+    ${datadir}/icons \
+    ${datadir}/zsh \
+    ${datadir}/bash-completion \
+    "
+EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "0", "1", d)}"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb
index deffa4a..39e73d3 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb
@@ -2,7 +2,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
 
-SRC_URI = "git://git.ideasonboard.org/yavta.git \
+SRC_URI = "git://git.ideasonboard.org/yavta.git;branch=master \
           "
 SRCREV = "65f740aa1758531fd810339bc1b7d1d33666e28a"
 
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.2.bb b/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.2.bb
index fe428be..0e12587 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.2.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.2.bb
@@ -8,7 +8,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4"
 
 SRCREV = "7ec7a33a081aeeb53fed1a8d87e4cbd189152527"
-SRC_URI += "git://chromium.googlesource.com/webm/libvpx;protocol=https \
+SRC_URI += "git://chromium.googlesource.com/webm/libvpx;protocol=https;branch=master \
             file://libvpx-configure-support-blank-prefix.patch \
            "
 
diff --git a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.23.1.bb b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.23.1.bb
index 8763c68..c11d4c7 100644
--- a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.23.1.bb
+++ b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.23.1.bb
@@ -34,6 +34,7 @@
     nostrip='true' \
     systemd='${SYSTEMD_OESCONS}' \
     libdir='${libdir}' \
+    sbindir='${sbindir}' \
     udevdir='${nonarch_base_libdir}/udev' \
     unitdir='${systemd_system_unitdir}' \
     manbuild='false' \
@@ -47,6 +48,7 @@
     export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
     export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
     export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
+    export CC="${CC}"
     export LD="${CC}"
     export LINKFLAGS="${LDFLAGS}"
 }
@@ -75,12 +77,11 @@
     install -m 755 ${D}${libdir}/gps/*.py ${D}${PYTHON_SITEPACKAGES_DIR}/gps
 }
 
-PACKAGES =+ "libgps libgpsd python3-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
+PACKAGES =+ "libgps python3-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
 
 RPROVIDES:${PN}-dbg += "python-pygps-dbg"
 
-FILES:${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \
-                    ${libdir}/libQgpsmm.prl"
+FILES:${PN}-dev += "${libdir}/libQgpsmm.prl"
 
 FILES:${PN}-doc += "${datadir}/${BPN}/doc"
 
@@ -91,9 +92,6 @@
 FILES:gpsd-udev = "${nonarch_base_libdir}/udev"
 RDEPENDS:gpsd-udev += "udev gpsd-conf"
 
-SUMMARY:libgpsd = "C service library used for communicating with gpsd"
-FILES:libgpsd = "${libdir}/libgpsd.so.*"
-
 SUMMARY:libgps = "C service library used for communicating with gpsd"
 FILES:libgps = "${libdir}/libgps.so.*"
 
@@ -106,7 +104,32 @@
 
 SUMMARY:gps-utils = "Utils used for simulating, monitoring,... a GPS"
 # Python files are required for gps/fake, required for gpsfake.
-FILES:gps-utils = "${bindir}/* ${libdir}/gps/*.py ${libdir}/gps/*.so"
+FILES:gps-utils = "\
+    ${bindir}/cgps         \
+    ${bindir}/gegps        \
+    ${bindir}/gps2udp      \
+    ${bindir}/gpscat       \
+    ${bindir}/gpscsv       \
+    ${bindir}/gpsctl       \
+    ${bindir}/gpsdebuginfo \
+    ${bindir}/gpsdecode    \
+    ${bindir}/gpsfake      \
+    ${bindir}/gpsmon       \
+    ${bindir}/gpspipe      \
+    ${bindir}/gpsplot      \
+    ${bindir}/gpsprof      \
+    ${bindir}/gpsrinex     \
+    ${bindir}/gpssnmp      \
+    ${bindir}/gpssubframe  \
+    ${bindir}/gpxlogger    \
+    ${bindir}/lcdgps       \
+    ${bindir}/ntpshmmon    \
+    ${bindir}/ppscheck     \
+    ${bindir}/ubxtool      \
+    ${bindir}/xgps         \
+    ${bindir}/xgpsspeed    \
+    ${bindir}/zerk         \
+"
 RDEPENDS:gps-utils = "python3-pygps"
 
 SUMMARY:python3-pygps = "Python bindings to gpsd"
diff --git a/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters.inc b/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters.inc
index c01e2cd..061c8a6 100644
--- a/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters.inc
+++ b/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters.inc
@@ -2,7 +2,7 @@
 HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/openprinting/cups-filters"
 
 LICENSE = "GPLv2 & LGPLv2 & MIT & GPLv2+ & GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=516215fd57564996d70327db19b368ff"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d77679ce6a2cc4d873d4ebbf2a401e6"
 
 SECTION = "console/utils"
 
diff --git a/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.27.2.bb b/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.27.2.bb
deleted file mode 100644
index 35c4a92..0000000
--- a/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.27.2.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-include cups-filters.inc
-
-SRC_URI[md5sum] = "90ebcae31f2eabd802236408646b1dd9"
-SRC_URI[sha256sum] = "174a2a5c919bf88c63ced692a2170add6c2cd70ff06c49bcea32e9cf56960492"
diff --git a/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.28.11.bb b/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.28.11.bb
new file mode 100644
index 0000000..bfe5375
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.28.11.bb
@@ -0,0 +1,3 @@
+include cups-filters.inc
+
+SRC_URI[sha256sum] = "472418f1a1e12c9ad91b01caa020eb668626776d85de9da488be38e6663102ca"
diff --git a/meta-openembedded/meta-oe/recipes-printing/gutenprint/gutenprint-native_git.bb b/meta-openembedded/meta-oe/recipes-printing/gutenprint/gutenprint-native_git.bb
new file mode 100644
index 0000000..c6e00c3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-printing/gutenprint/gutenprint-native_git.bb
@@ -0,0 +1,42 @@
+# Recipe for building gutenprint-native
+#
+# Native part is for generating strings - xmli18n-tmp.h used by target recipe
+# We don't depend on cups as this is for generating the string header.
+#
+# Copyright (c) Ambu A/S - All rights reserved
+# SPDX-License-Identifier: MIT
+#
+# Author(s)
+#   clst@ambu.com (Claus Stovgaard)
+#
+
+require gutenprint.inc
+
+# We could consider switching to BBCLASSEXTEND native instead of inherit
+# Using devtool with this results in warning, as devtool append externalsrc to
+# inheritance, making native not being inherited last.
+inherit autotools-brokensep pkgconfig native
+
+SECTION = "libs"
+
+# binutils is for xz etc.
+# gettext-native for configuration
+# flex-native is used for compilation
+# byacc-native is for yacc command (compilation)
+DEPENDS += "binutils-native gettext-native flex-native byacc-native"
+
+EXTRA_OECONF = "--without-doc --without-cups"
+
+# gutenprint does not have a configure file in its root folder.
+# Rather it has a autogen.sh in its root folder. We just use it
+do_configure() {
+    ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh"
+    oe_runconf
+}
+
+# Currently we only uses the string header, even though we compile the complete
+# native version of the library. So we limit the install to the needed.
+do_install() {
+    install -d ${D}${datadir}/gutenprint/
+    install -m644 ${B}/src/xml/xmli18n-tmp.h ${D}${datadir}/gutenprint/
+}
\ No newline at end of file
diff --git a/meta-openembedded/meta-oe/recipes-printing/gutenprint/gutenprint.inc b/meta-openembedded/meta-oe/recipes-printing/gutenprint/gutenprint.inc
new file mode 100644
index 0000000..0a162d2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-printing/gutenprint/gutenprint.inc
@@ -0,0 +1,22 @@
+# common part for gutenprint-native / gutenprint
+#
+# As we are using the native part for generating string header to the target
+# version, it is important they use the same version.
+# So we set the SRC_URI and SRCREV here.
+#
+# Copyright (c) Ambu A/S - All rights reserved
+# SPDX-License-Identifier: MIT
+#
+# Author(s)
+#   clst@ambu.com (Claus Stovgaard)
+#
+
+DESCRIPTION = "Gutenprint printer drivers"
+HOMEPAGE = "http://gimp-print.sourceforge.net/"
+LICENSE = "GPLv2+"
+
+SRC_URI = "git://git.code.sf.net/p/gimp-print/source;protocol=https;branch=master"
+SRCREV = "8e47dc44dd7738302ba9e8fbc1f918461fed0236"
+S = "${WORKDIR}/git"
+
+LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
\ No newline at end of file
diff --git a/meta-openembedded/meta-oe/recipes-printing/gutenprint/gutenprint_git.bb b/meta-openembedded/meta-oe/recipes-printing/gutenprint/gutenprint_git.bb
new file mode 100644
index 0000000..7779793
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-printing/gutenprint/gutenprint_git.bb
@@ -0,0 +1,46 @@
+# Recipe for building gutenprint
+#
+# Uses the gutenprint-native extracted strings and disable local build stuff
+#
+# Copyright (c) Ambu A/S - All rights reserved
+# SPDX-License-Identifier: MIT
+#
+# Author(s)
+#   clst@ambu.com (Claus Stovgaard)
+#
+
+require gutenprint.inc
+
+inherit autotools-brokensep pkgconfig
+
+DEPENDS += "cups gutenprint-native"
+
+# cups-genppdupdate depend on perl
+# We also set the path to PERL as else the version in hosttools would be used
+# with full path
+RDEPENDS:${PN} = "perl "
+
+EXTRA_OECONF = "--without-doc --disable-test --disable-nls PERL=/usr/bin/perl"
+
+# gutenprint does not have a configure file in its root folder.
+# Rather it has a autogen.sh in its root folder. We just use it
+# together with adapting for cross compilation
+do_configure() {
+    # Disable the xmli18n-tmp.h rule
+    # It depend on the local build extract-strings, we are not able to run this
+    # So we are using the xmli18n-tmp.h created by gutenprint-native
+    sed -i 's/all-local: xmli18n-tmp.h xml-stamp/all-local: xml-stamp/'  ${S}/src/xml/Makefile.am
+    sed -i 's/dist-hook: xmli18n-tmp.h xml-stamp/dist-hook: xml-stamp/'  ${S}/src/xml/Makefile.am
+    cp ${RECIPE_SYSROOT_NATIVE}${datadir}/gutenprint/xmli18n-tmp.h ${S}/src/xml/
+
+    ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh"
+    oe_runconf
+}
+
+# gutenprint install the calibrate.ppm and net.sf.gimp-print.usb-quirks in
+# /usr/share/cups
+FILES:${PN} += "${datadir}/cups/*"
+
+# Install in /etc/cups when RPM needs DIRFILES to not conflict
+# https://stackoverflow.com/questions/44762430/why-do-i-get-etc-cups-conflicts-between-attempted-installs-in-yocto
+DIRFILES = "1"
\ No newline at end of file
diff --git a/meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_10.3.2.bb b/meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_10.3.2.bb
deleted file mode 100644
index cfbe529..0000000
--- a/meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_10.3.2.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-DESCRIPTION = "PDF transformation/inspection software"
-HOMEPAGE = "http://qpdf.sourceforge.net"
-LICENSE = "Artistic-2.0"
-SECTION = "libs"
-DEPENDS = "libpcre zlib libjpeg-turbo"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/qpdf/qpdf-${PV}.tar.gz"
-
-LIC_FILES_CHKSUM = "file://Artistic-2.0;md5=7806296b9fae874361e6fb10072b7ee3"
-SRC_URI[sha256sum] = "062808c40ef8741ec8160ae00168638a712cfa1d4bf673e8e595ab5eba1da947"
-
-inherit autotools-brokensep gettext
-
-# disable random file detection for cross-compile
-EXTRA_OECONF = "--without-random \
-                --disable-static \
-                --disable-check-autofiles \
-                "
-
-EXTRA_OEMAKE:class-target = "LIBTOOL=${HOST_SYS}-libtool"
-
-LDFLAGS:append:mipsarch = " -latomic"
-LDFLAGS:append:riscv32 = " -latomic"
-
-S="${WORKDIR}/${BPN}-${PV}"
-
-# avoid Makefile returning error on 'make clean' before configure was run
-CLEANBROKEN = "1"
-
-DEBIAN_NOAUTONAME:libqpdf = "1"
-
-PACKAGES =+ "libqpdf"
-FILES:libqpdf = "${libdir}/libqpdf.so.*"
-
-RDEPENDS:${PN} = "libqpdf"
diff --git a/meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_10.5.0.bb b/meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_10.5.0.bb
new file mode 100644
index 0000000..9644c65
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_10.5.0.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "PDF transformation/inspection software"
+HOMEPAGE = "http://qpdf.sourceforge.net"
+LICENSE = "Artistic-2.0"
+SECTION = "libs"
+DEPENDS = "libpcre zlib libjpeg-turbo"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/qpdf/qpdf-${PV}.tar.gz"
+SRC_URI[sha256sum] = "88257d36a44fd5c50b2879488324dd9cafc11686ae49d8c4922a4872203ce006"
+
+LIC_FILES_CHKSUM = "file://Artistic-2.0;md5=7806296b9fae874361e6fb10072b7ee3"
+
+inherit autotools-brokensep gettext
+
+# disable random file detection for cross-compile
+EXTRA_OECONF = "--without-random \
+                --disable-static \
+                --disable-check-autofiles \
+                "
+
+LDFLAGS:append:mipsarch = " -latomic"
+LDFLAGS:append:riscv32 = " -latomic"
+
+S="${WORKDIR}/${BPN}-${PV}"
+
+# avoid Makefile returning error on 'make clean' before configure was run
+CLEANBROKEN = "1"
+
+DEBIAN_NOAUTONAME:libqpdf = "1"
+
+PACKAGES =+ "libqpdf"
+FILES:libqpdf = "${libdir}/libqpdf.so.*"
+
+RDEPENDS:${PN} = "libqpdf"
diff --git a/meta-openembedded/meta-oe/recipes-security/audit/audit_2.8.5.bb b/meta-openembedded/meta-oe/recipes-security/audit/audit_2.8.5.bb
index 10c1afb..b3a377d 100644
--- a/meta-openembedded/meta-oe/recipes-security/audit/audit_2.8.5.bb
+++ b/meta-openembedded/meta-oe/recipes-security/audit/audit_2.8.5.bb
@@ -7,7 +7,7 @@
 LICENSE = "GPLv2+ & LGPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
-SRC_URI = "git://github.com/linux-audit/${BPN}-userspace.git;branch=2.8_maintenance \
+SRC_URI = "git://github.com/linux-audit/${BPN}-userspace.git;branch=2.8_maintenance;protocol=https \
            file://0001-Add-substitue-functions-for-strndupa-rawmemchr.patch \
            file://0002-Fixed-swig-host-contamination-issue.patch \
            file://0003-Header-definitions-need-to-be-external-when-building.patch \
diff --git a/meta-openembedded/meta-oe/recipes-security/audit/audit_3.0.6.bb b/meta-openembedded/meta-oe/recipes-security/audit/audit_3.0.6.bb
index 2d75232..7e4cc27 100644
--- a/meta-openembedded/meta-oe/recipes-security/audit/audit_3.0.6.bb
+++ b/meta-openembedded/meta-oe/recipes-security/audit/audit_3.0.6.bb
@@ -7,7 +7,7 @@
 LICENSE = "GPLv2+ & LGPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
-SRC_URI = "git://github.com/linux-audit/${BPN}-userspace.git;branch=master \
+SRC_URI = "git://github.com/linux-audit/${BPN}-userspace.git;branch=master;protocol=https \
            file://Fixed-swig-host-contamination-issue.patch \
            file://auditd \
            file://auditd.service \
diff --git a/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.11.5.bb b/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.11.5.bb
index 8fe601a..20f8404 100644
--- a/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.11.5.bb
+++ b/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.11.5.bb
@@ -2,7 +2,7 @@
 HOMEPAGE = "http://gondor.apana.org.au/~herbert/dash/"
 SECTION = "System Environment/Shells"
 
-LICENSE = "BSD & GPLv2+"
+LICENSE = "BSD-3-Clause & GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b5262b4a1a1bff72b48e935531976d2e"
 
 inherit autotools update-alternatives
diff --git a/meta-openembedded/meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb b/meta-openembedded/meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb
index 15cfb6e..746d418 100644
--- a/meta-openembedded/meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=794d11c5219c59c9efa2487c2b4066b2"
 
-SRC_URI = "git://github.com/ajaxorg/ace-builds.git;protocol=https"
+SRC_URI = "git://github.com/ajaxorg/ace-builds.git;protocol=https;branch=master"
 
 PV = "02.07.17+git${SRCPV}"
 SRCREV = "812e2c56aed246931a667f16c28b096e34597016"
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb
index c91d866..819303c 100644
--- a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb
@@ -42,6 +42,10 @@
         rm -f ${D}${sysconfdir}/init.d/atopacct
     fi
 
+    # /var/log/atop will be created in runtime
+    rm -rf ${D}${localstatedir}/log
+    rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
+
     # remove atopacct related files
     rm -rf ${D}${sbindir} ${D}${mandir}/man8
 }
diff --git a/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.10.2.bb b/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.10.2.bb
deleted file mode 100644
index 98f464f..0000000
--- a/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.10.2.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Apache Avro data serialization system."
-HOMEPAGE = "http://apr.apache.org/"
-SECTION = "libs"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6d502b41f76179fc84e536236f359cae"
-
-DEPENDS = "jansson zlib xz"
-
-BRANCH = "branch-1.10"
-SRCREV = "8111cdc35430ff68dcb644306362859de40999d9"
-SRC_URI = "git://github.com/apache/avro;branch=${BRANCH} \
-          "
-
-S = "${WORKDIR}/git/lang/c"
-
-inherit cmake pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.11.0.bb b/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.11.0.bb
new file mode 100644
index 0000000..8558f75
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.11.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Apache Avro data serialization system."
+HOMEPAGE = "http://apr.apache.org/"
+SECTION = "libs"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6d502b41f76179fc84e536236f359cae"
+
+DEPENDS = "jansson zlib xz"
+
+BRANCH = "branch-1.11"
+SRCREV = "4e1fefca493029ace961b7ef8889a3722458565a"
+SRC_URI = "git://github.com/apache/avro;branch=${BRANCH};protocol=https \
+          "
+
+S = "${WORKDIR}/git/lang/c"
+
+inherit cmake pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.2.0.bb b/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.2.0.bb
index ad94009..7ee63b1 100644
--- a/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.2.0.bb
@@ -24,7 +24,7 @@
 DEPENDS = "libatomic-ops"
 
 SRCREV = "47e9106c17b72e9ee5501308f69ea94531e798b3"
-SRC_URI = "git://github.com/ivmai/bdwgc.git"
+SRC_URI = "git://github.com/ivmai/bdwgc.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares_1.17.2.bb b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares_1.17.2.bb
deleted file mode 100644
index 2109d95..0000000
--- a/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares_1.17.2.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (c) 2012-2014 LG Electronics, Inc.
-SUMMARY = "c-ares is a C library that resolves names asynchronously."
-HOMEPAGE = "http://daniel.haxx.se/projects/c-ares/"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=fb997454c8d62aa6a47f07a8cd48b006"
-
-SRC_URI = "git://github.com/c-ares/c-ares.git;branch=main"
-SRCREV = "6654436a307a5a686b008c1d4c93b0085da6e6d8"
-
-UPSTREAM_CHECK_GITTAGREGEX = "cares-(?P<pver>\d+_(\d_?)+)"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
-
-PACKAGES =+ "${PN}-utils"
-
-FILES:${PN}-utils = "${bindir}"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares_1.18.1.bb b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares_1.18.1.bb
new file mode 100644
index 0000000..2cd00cb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares_1.18.1.bb
@@ -0,0 +1,21 @@
+# Copyright (c) 2012-2014 LG Electronics, Inc.
+SUMMARY = "c-ares is a C library that resolves names asynchronously."
+HOMEPAGE = "http://daniel.haxx.se/projects/c-ares/"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=fb997454c8d62aa6a47f07a8cd48b006"
+
+SRC_URI = "git://github.com/c-ares/c-ares.git;branch=main;protocol=https"
+SRCREV = "2aa086f822aad5017a6f2061ef656f237a62d0ed"
+
+UPSTREAM_CHECK_GITTAGREGEX = "cares-(?P<pver>\d+_(\d_?)+)"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+PACKAGES =+ "${PN}-utils"
+
+FILES:${PN}-utils = "${bindir}"
+
+BBCLASSEXTEND = "native nativesdk"
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.3.1.bb
index effab9d..b5bdcd5 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.3.1.bb
@@ -8,7 +8,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=4097ec544cf01e9c7cfc4bdf8e4ed887"
 
-SRC_URI = "git://github.com/vsergeev/c-periphery;protocol=https"
+SRC_URI = "git://github.com/vsergeev/c-periphery;protocol=https;branch=master"
 SRCREV = "23bfa4ab481edbad82a69ee385fc58ce03b63084"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch b/meta-openembedded/meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch
deleted file mode 100644
index 477cc31..0000000
--- a/meta-openembedded/meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-No need to link with libfl.
-
-Upstream-Status: Pending
-Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
-
-Index: ccid-1.4.8/src/Makefile.am
-===================================================================
---- ccid-1.4.8.orig/src/Makefile.am
-+++ ccid-1.4.8/src/Makefile.am
-@@ -53,7 +53,7 @@ PROVIDED_BY_PCSC = debug.c
- endif
- 
- libccid_la_SOURCES = $(COMMON) $(USB) $(TOKEN_PARSER) $(PROVIDED_BY_PCSC) $(T1)
--libccid_la_LIBADD = $(LEXLIB) $(LIBUSB_LIBS) $(PTHREAD_LIBS)
-+libccid_la_LIBADD = $(LIBUSB_LIBS) $(PTHREAD_LIBS)
- libccid_la_CFLAGS = $(PCSC_CFLAGS) $(LIBUSB_CFLAGS) $(PTHREAD_CFLAGS) \
- 	$(SYMBOL_VISIBILITY) -D$(CCID_VERSION) -DSIMCLIST_NO_DUMPRESTORE
- libccid_la_LDFLAGS = -avoid-version
diff --git a/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.33.bb b/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.33.bb
index 4b1c421..e3cb7ce 100644
--- a/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.33.bb
+++ b/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.33.bb
@@ -7,7 +7,6 @@
 RDEPENDS:${PN} = "pcsc-lite"
 
 SRC_URI = "https://ccid.apdu.fr/files/ccid-${PV}.tar.bz2 \
-    file://no-dep-on-libfl.patch \
     file://0001-Add-build-rule-for-README.patch \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_2.0.0.bb b/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_2.0.0.bb
index a516516..bfd2d03 100644
--- a/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_2.0.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_2.0.0.bb
@@ -6,7 +6,7 @@
 
 DEPENDS = "libeigen glog"
 
-SRC_URI = "git://github.com/ceres-solver/ceres-solver.git"
+SRC_URI = "git://github.com/ceres-solver/ceres-solver.git;branch=master;protocol=https"
 SRCREV = "399cda773035d99eaf1f4a129a666b3c4df9d1b1"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.9.1.bb b/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.9.1.bb
index a01f2c2..7de3335 100644
--- a/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.9.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.9.1.bb
@@ -6,7 +6,7 @@
 SRCREV = "5cb3efabce007c3a0230e4cc2e27da491c646b6c"
 PV .= "+git${SRCPV}"
 
-SRC_URI += "gitsm://github.com/CLIUtils/CLI11;branch=v1"
+SRC_URI += "gitsm://github.com/CLIUtils/CLI11;branch=v1;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/cmark/cmark_0.30.2.bb b/meta-openembedded/meta-oe/recipes-support/cmark/cmark_0.30.2.bb
index 6669c6e..6d6d3e5 100644
--- a/meta-openembedded/meta-oe/recipes-support/cmark/cmark_0.30.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/cmark/cmark_0.30.2.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-2-Clause & MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=81f9cae6293cc0345a9144b78152ab62"
 
-SRC_URI = "git://github.com/commonmark/cmark.git"
+SRC_URI = "git://github.com/commonmark/cmark.git;branch=master;protocol=https"
 SRCREV = "a8da5a2f252b96eca60ae8bada1a9ba059a38401"
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/colord/colord.bb b/meta-openembedded/meta-oe/recipes-support/colord/colord.bb
index 563a0ee..e300222 100644
--- a/meta-openembedded/meta-oe/recipes-support/colord/colord.bb
+++ b/meta-openembedded/meta-oe/recipes-support/colord/colord.bb
@@ -4,7 +4,7 @@
 
 # polkit and gobject-introspection are mandatory and cannot be configured
 REQUIRED_DISTRO_FEATURES = "polkit gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST:append = " introspection"
+GIR_MESON_OPTION = ""
 
 DEPENDS += " \
     ${BPN}-native \
diff --git a/meta-openembedded/meta-oe/recipes-support/consolation/consolation_0.0.8.bb b/meta-openembedded/meta-oe/recipes-support/consolation/consolation_0.0.8.bb
index 2bd69e8..01a02d4 100644
--- a/meta-openembedded/meta-oe/recipes-support/consolation/consolation_0.0.8.bb
+++ b/meta-openembedded/meta-oe/recipes-support/consolation/consolation_0.0.8.bb
@@ -14,7 +14,7 @@
     udev \
 "
 
-SRC_URI = "git://salsa.debian.org/consolation-team/consolation.git"
+SRC_URI = "git://salsa.debian.org/consolation-team/consolation.git;branch=master"
 SRCREV = "4581eaece6e49fa2b687efbdbe23b2de452e7902"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb b/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb
index c766327..f46dec5 100644
--- a/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb
@@ -7,7 +7,7 @@
 inherit autotools
 
 SRCREV = "18869a797dab12bf1c917ba3b4782fef484c407c"
-SRC_URI = "git://github.com/bmc/daemonize.git \
+SRC_URI = "git://github.com/bmc/daemonize.git;branch=master;protocol=https \
 "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_3.7.2.bb b/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_3.7.2.bb
index 9fcc278..cac2b4f 100644
--- a/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_3.7.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_3.7.2.bb
@@ -4,7 +4,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=44fee82a1d2ed0676cf35478283e0aa0"
 
-SRC_URI = "git://github.com/bcl/digitemp"
+SRC_URI = "git://github.com/bcl/digitemp;branch=master;protocol=https"
 
 SRCREV = "a162e63aad35358aab325388f3d5e88121606419"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/dool/dool/0001-Fix-build-error-as-following.patch b/meta-openembedded/meta-oe/recipes-support/dool/dool/0001-Fix-build-error-as-following.patch
new file mode 100644
index 0000000..2324af4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/dool/dool/0001-Fix-build-error-as-following.patch
@@ -0,0 +1,39 @@
+From e81feec1ebbc676220cd8759d83f46335602d079 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@fujitsu.com>
+Date: Fri, 7 Jan 2022 14:37:36 +0900
+Subject: [PATCH] Fix build error as following:
+
+*** No rule to make target 'dstat.1', needed by 'docs'.  Stop.
+
+Upstream-Status: Pending
+
+Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
+---
+ docs/Makefile | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/docs/Makefile b/docs/Makefile
+index c031e82..1a85e61 100644
+--- a/docs/Makefile
++++ b/docs/Makefile
+@@ -11,13 +11,13 @@ all:
+ 
+ dist: docs
+ 
+-docs: dstat.1 $(htmltargets)
++docs: dool.1 $(htmltargets)
+ 
+-install: dstat.1
+-	install -Dp -m0644 dstat.1 $(DESTDIR)$(mandir)/man1/dstat.1
++install: dool.1
++	install -Dp -m0644 dool.1 $(DESTDIR)$(mandir)/man1/dool.1
+ 
+ clean:
+-	rm -f dstat.1 *.html *.xml
++	rm -f dool.1 *.html *.xml
+ 
+ %.1.html: %.1.adoc
+ 	asciidoc -d manpage $<
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/dool/dool_1.0.0.bb b/meta-openembedded/meta-oe/recipes-support/dool/dool_1.0.0.bb
new file mode 100644
index 0000000..0cbc32f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/dool/dool_1.0.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "versatile resource statics tool"
+DESCRIPTION = "Dstat is a versatile replacement for vmstat, iostat, netstat and ifstat. \
+Dstat overcomes some of their limitations and adds some extra features, more counters \
+and flexibility. Dstat is handy for monitoring systems during performance tuning tests, \
+benchmarks or troubleshooting."
+HOMEPAGE = "http://dag.wiee.rs/home-made/dstat"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS += "asciidoc-native xmlto-native"
+
+SRC_URI = "git://github.com/scottchiefbaker/dool.git;branch=master;protocol=https \
+	   file://0001-Fix-build-error-as-following.patch \
+          "
+
+SRCREV = "34a3244b46aa70a31f871a7ca8ffa8d3a7b950d2"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+    oe_runmake 'DESTDIR=${D}' install
+}
+
+RDEPENDS:${PN} += "python3-core python3-misc python3-resource python3-shell python3-six python3-unixadmin"
diff --git a/meta-openembedded/meta-oe/recipes-support/driverctl/driverctl_0.111.bb b/meta-openembedded/meta-oe/recipes-support/driverctl/driverctl_0.111.bb
index 7404f40..2b9a2f8 100644
--- a/meta-openembedded/meta-oe/recipes-support/driverctl/driverctl_0.111.bb
+++ b/meta-openembedded/meta-oe/recipes-support/driverctl/driverctl_0.111.bb
@@ -7,7 +7,7 @@
 DEPENDS = "systemd"
 RDEPENDS:${PN} += "bash bash-completion"
 
-SRC_URI = " git://gitlab.com/driverctl/driverctl.git"
+SRC_URI = " git://gitlab.com/driverctl/driverctl.git;branch=master"
 SRCREV = "fa9dce43d1a667d6e6e26895fbed01b3b04362c9"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/dstat/dstat/0001-change-dstat-to-python3.patch b/meta-openembedded/meta-oe/recipes-support/dstat/dstat/0001-change-dstat-to-python3.patch
deleted file mode 100644
index 06a8498..0000000
--- a/meta-openembedded/meta-oe/recipes-support/dstat/dstat/0001-change-dstat-to-python3.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From ce0528cb48666843fed2ad10ece5ecb0ac0b8cf8 Mon Sep 17 00:00:00 2001
-From: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
-Date: Fri, 15 May 2020 12:38:49 +0900
-Subject: [PATCH] change dstat to python3.
-
-Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
----
- dstat               | 2 +-
- examples/curstest   | 2 +-
- examples/devtest.py | 2 +-
- examples/mmpipe.py  | 2 +-
- examples/mstat.py   | 2 +-
- examples/read.py    | 2 +-
- examples/tdbtest    | 2 +-
- 7 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/dstat b/dstat
-index 9359965..f250f06 100755
---- a/dstat
-+++ b/dstat
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- 
- ### This program is free software; you can redistribute it and/or
- ### modify it under the terms of the GNU General Public License
-diff --git a/examples/curstest b/examples/curstest
-index afc4e70..d720cca 100755
---- a/examples/curstest
-+++ b/examples/curstest
-@@ -1,4 +1,4 @@
--#!/usr/bin/python
-+#!/usr/bin/python3
- import curses, sys
- 
- #c = curses.wrapper(s)
-diff --git a/examples/devtest.py b/examples/devtest.py
-index 0e9e969..e53babd 100755
---- a/examples/devtest.py
-+++ b/examples/devtest.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/python
-+#!/usr/bin/python3
- 
- import sys
- sys.path.insert(0, '/usr/share/dstat/')
-diff --git a/examples/mmpipe.py b/examples/mmpipe.py
-index 5c93567..f91515f 100755
---- a/examples/mmpipe.py
-+++ b/examples/mmpipe.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/python
-+#!/usr/bin/python3
- import select, sys, os
- 
- def readpipe(file, tmout = 0.001):
-diff --git a/examples/mstat.py b/examples/mstat.py
-index abf4d07..ac157e4 100755
---- a/examples/mstat.py
-+++ b/examples/mstat.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/python
-+#!/usr/bin/python3
- 
- ### Example2: simple sub-second monitor (ministat)
- 
-diff --git a/examples/read.py b/examples/read.py
-index 556b7ae..a925109 100755
---- a/examples/read.py
-+++ b/examples/read.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/python
-+#!/usr/bin/python3
- 
- ### Example 1: Direct accessing stats
- ### This is a quick example showing how you can access dstat data
-diff --git a/examples/tdbtest b/examples/tdbtest
-index 528a8ea..ae7fef9 100755
---- a/examples/tdbtest
-+++ b/examples/tdbtest
-@@ -1,4 +1,4 @@
--#!/usr/bin/python
-+#!/usr/bin/python3
- import sys, tdb
- 
- db = tdb.tdb('/var/cache/samba/connections.tdb')
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb b/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb
deleted file mode 100644
index a1076cc..0000000
--- a/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "versatile resource statics tool"
-DESCRIPTION = "Dstat is a versatile replacement for vmstat, iostat, netstat and ifstat. \
-Dstat overcomes some of their limitations and adds some extra features, more counters \
-and flexibility. Dstat is handy for monitoring systems during performance tuning tests, \
-benchmarks or troubleshooting."
-HOMEPAGE = "http://dag.wiee.rs/home-made/dstat"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS += "asciidoc-native xmlto-native"
-
-SRC_URI = "git://github.com/dagwieers/dstat.git \
-           file://0001-change-dstat-to-python3.patch \
-          "
-
-SRCREV = "6f5db0aed26bf8cf2700d4ffe90a9bd3436ac728"
-
-S = "${WORKDIR}/git"
-
-do_install() {
-    oe_runmake 'DESTDIR=${D}' install
-}
-
-RDEPENDS:${PN} += "python3-core python3-misc python3-resource python3-shell python3-six python3-unixadmin"
diff --git a/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb b/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb
index 8ca5740..bdffe4b 100644
--- a/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb
@@ -5,7 +5,7 @@
                     file://COPYING-PLAIN;md5=f59cacc08235a546b0c34a5422133035"
 DEPENDS = "jpeg libexif"
 
-SRC_URI = "git://github.com/mattes/epeg.git"
+SRC_URI = "git://github.com/mattes/epeg.git;branch=master;protocol=https"
 SRCREV = "9a175cd67eaa61fe45413d8da82da72936567047"
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/fftw/fftw/club-libtool.patch b/meta-openembedded/meta-oe/recipes-support/fftw/fftw/club-libtool.patch
deleted file mode 100644
index d4a1ef8..0000000
--- a/meta-openembedded/meta-oe/recipes-support/fftw/fftw/club-libtool.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- ./tests/Makefile.am.orig	2021-03-23 11:45:12.756371739 -0400
-+++ ./tests/Makefile.am	2021-03-23 11:46:43.224132851 -0400
-@@ -1,5 +1,5 @@
- AM_CPPFLAGS = -I $(top_srcdir)
--noinst_PROGRAMS = bench
-+bin_PROGRAMS = bench@PREC_SUFFIX@
- EXTRA_DIST = check.pl README
- 
- if THREADS
diff --git a/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.10.bb b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.10.bb
new file mode 100644
index 0000000..13541bc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.10.bb
@@ -0,0 +1,102 @@
+DESCRIPTION = "FFTW"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+SRC_URI = " \
+    http://www.fftw.org/fftw-${PV}.tar.gz \
+    file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \
+    file://install-bench.patch \
+    file://run-ptest \
+"
+SRC_URI[sha256sum] = "56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467"
+
+inherit autotools pkgconfig ptest
+
+# we had multiple recipes in the past
+PROVIDES = "fftwl fftwf"
+
+EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+# neon is optional for arm version < 8 -> check tune features
+FFTW_NEON = "${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)}"
+# neon is suppored for arm version = 8 -> enable
+FFTW_NEON:aarch64 = "--enable-neon"
+FFTW_NEON:class-native = ""
+
+do_configure() {
+    # configure fftw
+    rm -rf ${WORKDIR}/build-fftw
+	mkdir -p ${B}
+    cd ${B}
+    # full (re)configure
+    autotools_do_configure
+    mv ${B} ${WORKDIR}/build-fftw
+
+    # configure fftwl
+    rm -rf ${WORKDIR}/build-fftwl
+	mkdir -p ${B}
+    cd ${B}
+    # configure only
+    oe_runconf  --enable-long-double
+    mv ${B} ${WORKDIR}/build-fftwl 
+
+    # configure fftwf
+    rm -rf ${WORKDIR}/build-fftwf
+	mkdir -p ${B}
+    cd ${B}
+    # configure only
+    oe_runconf --enable-single ${FFTW_NEON}
+    mv ${B} ${WORKDIR}/build-fftwf
+}
+
+do_compile() {
+    for lib in fftw fftwl fftwf; do
+        cd ${WORKDIR}/build-$lib
+        autotools_do_compile
+    done
+}
+
+do_install() {
+    for lib in fftw fftwl fftwf; do
+        cd ${WORKDIR}/build-$lib
+        autotools_do_install
+    done
+}
+
+do_install_ptest() {
+    for lib in fftw fftwl fftwf; do
+        install -d ${D}${PTEST_PATH}/$lib
+        install -m 0755 ${S}/tests/check.pl ${D}${PTEST_PATH}/$lib
+        cd ${WORKDIR}/build-$lib
+        if [ $lib = "fftw" ]; then
+            mv ${D}${bindir}/bench ${D}${PTEST_PATH}/$lib
+        fi
+        if [ $lib = "fftwl" ]; then
+            mv ${D}${bindir}/benchl ${D}${PTEST_PATH}/$lib
+        fi
+        if [ $lib = "fftwf" ]; then
+            mv ${D}${bindir}/benchf ${D}${PTEST_PATH}/$lib
+        fi
+    done
+}
+
+PACKAGES =+ "libfftw libfftwl libfftwf"
+FILES:libfftw = "${libdir}/libfftw3.so.* ${libdir}/libfftw3_*.so.*"
+FILES:libfftwl = "${libdir}/libfftw3l.so.* ${libdir}/libfftw3l_*.so.*"
+FILES:libfftwf = "${libdir}/libfftw3f.so.* ${libdir}/libfftw3f_*.so.*"
+
+PACKAGES =+ "fftw-wisdom fftwl-wisdom fftwf-wisdom fftw-wisdom-to-conf"
+FILES:fftw-wisdom = "${bindir}/fftw-wisdom"
+FILES:fftwl-wisdom = "${bindir}/fftwl-wisdom"
+FILES:fftwf-wisdom = "${bindir}/fftwf-wisdom"
+FILES:fftw-wisdom-to-conf = "${bindir}/fftw-wisdom-to-conf"
+
+FILES:${PN}-dev += "${libdir}/cmake"
+RDEPENDS:${PN}-dev = "libfftw libfftwl libfftwf"
+RDEPENDS:${PN}-ptest += "perl"
+RDEPENDS:${PN}-ptest:remove = "fftw"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.9.bb b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.9.bb
deleted file mode 100644
index 38bf3a1..0000000
--- a/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.9.bb
+++ /dev/null
@@ -1,102 +0,0 @@
-DESCRIPTION = "FFTW"
-SECTION = "libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-SRC_URI = " \
-    http://www.fftw.org/fftw-${PV}.tar.gz \
-    file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \
-    file://install-bench.patch \
-    file://run-ptest \
-"
-SRC_URI[sha256sum] = "bf2c7ce40b04ae811af714deb512510cc2c17b9ab9d6ddcf49fe4487eea7af3d"
-
-inherit autotools pkgconfig ptest
-
-# we had multiple recipes in the past
-PROVIDES = "fftwl fftwf"
-
-EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
-
-CFLAGS += "-D_GNU_SOURCE"
-
-# neon is optional for arm version < 8 -> check tune features
-FFTW_NEON = "${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)}"
-# neon is suppored for arm version = 8 -> enable
-FFTW_NEON:aarch64 = "--enable-neon"
-FFTW_NEON:class-native = ""
-
-do_configure() {
-    # configure fftw
-    rm -rf ${WORKDIR}/build-fftw
-	mkdir -p ${B}
-    cd ${B}
-    # full (re)configure
-    autotools_do_configure
-    mv ${B} ${WORKDIR}/build-fftw
-
-    # configure fftwl
-    rm -rf ${WORKDIR}/build-fftwl
-	mkdir -p ${B}
-    cd ${B}
-    # configure only
-    oe_runconf  --enable-long-double
-    mv ${B} ${WORKDIR}/build-fftwl 
-
-    # configure fftwf
-    rm -rf ${WORKDIR}/build-fftwf
-	mkdir -p ${B}
-    cd ${B}
-    # configure only
-    oe_runconf --enable-single ${FFTW_NEON}
-    mv ${B} ${WORKDIR}/build-fftwf
-}
-
-do_compile() {
-    for lib in fftw fftwl fftwf; do
-        cd ${WORKDIR}/build-$lib
-        autotools_do_compile
-    done
-}
-
-do_install() {
-    for lib in fftw fftwl fftwf; do
-        cd ${WORKDIR}/build-$lib
-        autotools_do_install
-    done
-}
-
-do_install_ptest() {
-    for lib in fftw fftwl fftwf; do
-        install -d ${D}${PTEST_PATH}/$lib
-        install -m 0755 ${S}/tests/check.pl ${D}${PTEST_PATH}/$lib
-        cd ${WORKDIR}/build-$lib
-        if [ $lib = "fftw" ]; then
-            mv ${D}${bindir}/bench ${D}${PTEST_PATH}/$lib
-        fi
-        if [ $lib = "fftwl" ]; then
-            mv ${D}${bindir}/benchl ${D}${PTEST_PATH}/$lib
-        fi
-        if [ $lib = "fftwf" ]; then
-            mv ${D}${bindir}/benchf ${D}${PTEST_PATH}/$lib
-        fi
-    done
-}
-
-PACKAGES =+ "libfftw libfftwl libfftwf"
-FILES:libfftw = "${libdir}/libfftw3.so.* ${libdir}/libfftw3_*.so.*"
-FILES:libfftwl = "${libdir}/libfftw3l.so.* ${libdir}/libfftw3l_*.so.*"
-FILES:libfftwf = "${libdir}/libfftw3f.so.* ${libdir}/libfftw3f_*.so.*"
-
-PACKAGES =+ "fftw-wisdom fftwl-wisdom fftwf-wisdom fftw-wisdom-to-conf"
-FILES:fftw-wisdom = "${bindir}/fftw-wisdom"
-FILES:fftwl-wisdom = "${bindir}/fftwl-wisdom"
-FILES:fftwf-wisdom = "${bindir}/fftwf-wisdom"
-FILES:fftw-wisdom-to-conf = "${bindir}/fftw-wisdom-to-conf"
-
-FILES:${PN}-dev += "${libdir}/cmake"
-RDEPENDS:${PN}-dev = "libfftw libfftwl libfftwf"
-RDEPENDS:${PN}-ptest += "perl"
-RDEPENDS:${PN}-ptest:remove = "fftw"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc
index 6e8fdc9..2eaf491 100644
--- a/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc
@@ -11,8 +11,8 @@
     file://0002-always-build-fluid-and-export-pointers.patch \
 "
 
-PV = "1.3.7"
-SRC_URI[sha256sum] = "5ff1e90766ff4216e78e9a19a9bf527e6258f04accccd4429e9bb829b01d690d"
+PV = "1.3.8"
+SRC_URI[sha256sum] = "1d9832409fc08c908c64ab40ad9fd8b0e8af5d203651eb9690b810f41e2f412d"
 
 inherit cmake pkgconfig
 
diff --git a/meta-openembedded/meta-oe/recipes-support/fmt/fmt_8.0.1.bb b/meta-openembedded/meta-oe/recipes-support/fmt/fmt_8.0.1.bb
deleted file mode 100644
index 0dc8e03..0000000
--- a/meta-openembedded/meta-oe/recipes-support/fmt/fmt_8.0.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "open-source formatting library for C++"
-DESCRIPTION = "{fmt} is an open-source formatting library for C++. It can be used as a safe and fast alternative to (s)printf and iostreams."
-HOMEPAGE = "https://fmt.dev"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=af88d758f75f3c5c48a967501f24384b"
-
-SRC_URI = "git://github.com/fmtlib/fmt"
-SRCREV = "d141cdbeb0fb422a3fb7173b285fd38e0d1772dc"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-inherit ptest
-
-EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/fmt/fmt_8.1.1.bb b/meta-openembedded/meta-oe/recipes-support/fmt/fmt_8.1.1.bb
new file mode 100644
index 0000000..c53dd38
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fmt/fmt_8.1.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "open-source formatting library for C++"
+DESCRIPTION = "{fmt} is an open-source formatting library for C++. It can be used as a safe and fast alternative to (s)printf and iostreams."
+HOMEPAGE = "https://fmt.dev"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=af88d758f75f3c5c48a967501f24384b"
+
+SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https"
+SRCREV = "b6f4ceaed0a0a24ccf575fab6c56dd50ccf6f1a9"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+inherit ptest
+
+EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-FIPS-mode-support-and-build-with-OpenSSL-3.0.patch b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-FIPS-mode-support-and-build-with-OpenSSL-3.0.patch
deleted file mode 100644
index 04fe644..0000000
--- a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-FIPS-mode-support-and-build-with-OpenSSL-3.0.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From f703b1184229796d504a2e833f72ace4cc605d15 Mon Sep 17 00:00:00 2001
-From: Ondrej Holy <oholy@redhat.com>
-Date: Wed, 12 May 2021 12:48:15 +0200
-Subject: [PATCH 1/2] Fix FIPS mode support and build with OpenSSL 3.0
-
-FreeRDP fails to build with OpenSSL 3.0 because of usage of the `FIPS_mode`
-and `FIPS_mode_set` functions, which were removed there. Just a note that
-the FIPS mode is not supported by OpenSSL 1.1.* although the mentioned
-functions are still there (see https://wiki.openssl.org/index.php/FIPS_modules).
-Let's make FreeRDP build with OpenSSL 3.0 and fix the FIPS mode support.
-
-See: https://bugzilla.redhat.com/show_bug.cgi?id=1952937
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- winpr/libwinpr/utils/ssl.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/winpr/libwinpr/utils/ssl.c b/winpr/libwinpr/utils/ssl.c
-index 3a8590390..03b23af43 100644
---- a/winpr/libwinpr/utils/ssl.c
-+++ b/winpr/libwinpr/utils/ssl.c
-@@ -244,9 +244,17 @@ static BOOL winpr_enable_fips(DWORD flags)
- #else
- 		WLog_DBG(TAG, "Ensuring openssl fips mode is ENabled");
- 
-+#if defined(OPENSSL_VERSION_MAJOR) && (OPENSSL_VERSION_MAJOR >= 3)
-+		if (!EVP_default_properties_is_fips_enabled(NULL))
-+#else
- 		if (FIPS_mode() != 1)
-+#endif
- 		{
-+#if defined(OPENSSL_VERSION_MAJOR) && (OPENSSL_VERSION_MAJOR >= 3)
-+			if (EVP_set_default_properties(NULL, "fips=yes"))
-+#else
- 			if (FIPS_mode_set(1))
-+#endif
- 				WLog_INFO(TAG, "Openssl fips mode ENabled!");
- 			else
- 			{
--- 
-2.20.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0002-winpr-avoid-calling-FIPS_mode-with-OpenSSL-3.0.patch b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0002-winpr-avoid-calling-FIPS_mode-with-OpenSSL-3.0.patch
deleted file mode 100644
index 728638e..0000000
--- a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0002-winpr-avoid-calling-FIPS_mode-with-OpenSSL-3.0.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 4dbf108c0ae5e997d5c432f3da4b4c5fd7b35373 Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppym@gentoo.org>
-Date: Sun, 1 Aug 2021 12:14:43 -0400
-Subject: [PATCH 2/2] winpr: avoid calling FIPS_mode() with OpenSSL 3.0
-
-Fixes: 26bf2816c3e0daeaf524c47cf0fcda8ae13b65ad
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- winpr/libwinpr/utils/ssl.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/winpr/libwinpr/utils/ssl.c b/winpr/libwinpr/utils/ssl.c
-index 03b23af43..74ef156e7 100644
---- a/winpr/libwinpr/utils/ssl.c
-+++ b/winpr/libwinpr/utils/ssl.c
-@@ -364,6 +364,8 @@ BOOL winpr_FIPSMode(void)
- {
- #if (OPENSSL_VERSION_NUMBER < 0x10001000L) || defined(LIBRESSL_VERSION_NUMBER)
- 	return FALSE;
-+#elif defined(OPENSSL_VERSION_MAJOR) && (OPENSSL_VERSION_MAJOR >= 3)
-+	return (EVP_default_properties_is_fips_enabled(NULL) == 1);
- #else
- 	return (FIPS_mode() == 1);
- #endif
--- 
-2.20.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.3.0.bb b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.3.0.bb
deleted file mode 100644
index 78af538..0000000
--- a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.3.0.bb
+++ /dev/null
@@ -1,87 +0,0 @@
-# Copyright (C) 2010-2012 O.S. Systems Software Ltda. All Rights Reserved
-# Released under the MIT license
-
-DESCRIPTION = "FreeRDP RDP client & server library"
-HOMEPAGE = "http://www.freerdp.com"
-DEPENDS = "openssl alsa-lib pcsc-lite"
-SECTION = "net"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-inherit pkgconfig cmake gitpkgv
-
-PE = "1"
-PKGV = "${GITPKGVTAG}"
-
-SRCREV = "14c7f7aed7dd4e2454ee0cd81028b9f790885021"
-SRC_URI = "git://github.com/FreeRDP/FreeRDP.git;branch=stable-2.0 \
-    file://winpr-makecert-Build-with-install-RPATH.patch \
-    file://0001-Fix-FIPS-mode-support-and-build-with-OpenSSL-3.0.patch \
-    file://0002-winpr-avoid-calling-FIPS_mode-with-OpenSSL-3.0.patch \
-"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECMAKE += " \
-    -DWITH_ALSA=ON \
-    -DWITH_PCSC=ON \
-    -DWITH_FFMPEG=OFF \
-    -DWITH_CUNIT=OFF \
-    -DWITH_NEON=OFF \
-    -DBUILD_STATIC_LIBS=OFF \
-    -DCMAKE_POSITION_INDEPENDANT_CODE=ON \
-    -DWITH_MANPAGES=OFF \
-"
-
-PACKAGECONFIG ??= " \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb pam pulseaudio wayland x11', d)}\
-    gstreamer cups \
-"
-
-X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile"
-PACKAGECONFIG[x11] = "-DWITH_X11=ON -DWITH_XINERAMA=ON -DWITH_XEXT=ON -DWITH_XCURSOR=ON -DWITH_XV=ON -DWITH_XI=ON -DWITH_XRENDER=ON -DWITH_XFIXES=ON -DWITH_XDAMAGE=ON -DWITH_XRANDR=ON -DWITH_XKBFILE=ON,-DWITH_X11=OFF,${X11_DEPS}"
-PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland wayland-native libxkbcommon"
-PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb"
-PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam"
-PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio"
-PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER_1_0=ON,-DWITH_GSTREAMER_1_0=OFF,gstreamer1.0 gstreamer1.0-plugins-base"
-PACKAGECONFIG[cups] = "-DWITH_CUPS=ON,-DWITH_CUPS=OFF,cups"
-
-PACKAGES =+ "libfreerdp"
-
-LEAD_SONAME = "libfreerdp.so"
-FILES:libfreerdp = "${libdir}/lib*${SOLIBS}"
-
-PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*"
-
-# we will need winpr-makecert to generate TLS certificates
-do_install:append () {
-    install -d ${D}${bindir}
-    install -m755 winpr/tools/makecert-cli/winpr-makecert ${D}${bindir}
-    rm -rf ${D}${libdir}/cmake
-    rm -rf ${D}${libdir}/freerdp
-}
-
-python populate_packages:prepend () {
-    freerdp_root = d.expand('${libdir}/freerdp')
-
-    do_split_packages(d, freerdp_root, '^(audin_.*)\.so$',
-        output_pattern='libfreerdp-plugin-%s',
-        description='FreeRDP plugin %s',
-        prepend=True, extra_depends='libfreerdp-plugin-audin')
-
-    do_split_packages(d, freerdp_root, '^(rdpsnd_.*)\.so$',
-        output_pattern='libfreerdp-plugin-%s',
-        description='FreeRDP plugin %s',
-        prepend=True, extra_depends='libfreerdp-plugin-rdpsnd')
-
-    do_split_packages(d, freerdp_root, '^(tsmf_.*)\.so$',
-        output_pattern='libfreerdp-plugin-%s',
-        description='FreeRDP plugin %s',
-        prepend=True, extra_depends='libfreerdp-plugin-tsmf')
-
-    do_split_packages(d, freerdp_root, '^([^-]*)\.so$',
-        output_pattern='libfreerdp-plugin-%s',
-        description='FreeRDP plugin %s',
-        prepend=True, extra_depends='')
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.4.1.bb b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.4.1.bb
new file mode 100644
index 0000000..aba77e20
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.4.1.bb
@@ -0,0 +1,85 @@
+# Copyright (C) 2010-2012 O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license
+
+DESCRIPTION = "FreeRDP RDP client & server library"
+HOMEPAGE = "http://www.freerdp.com"
+DEPENDS = "openssl alsa-lib libusb1"
+SECTION = "net"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+inherit pkgconfig cmake gitpkgv
+
+PE = "1"
+PKGV = "${GITPKGVTAG}"
+
+SRCREV = "d39a7ba5c38e3ba3b99b1558dc2ab0970cbfb0c5"
+SRC_URI = "git://github.com/FreeRDP/FreeRDP.git;branch=stable-2.0;protocol=https \
+    file://winpr-makecert-Build-with-install-RPATH.patch \
+"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE += " \
+    -DWITH_ALSA=ON \
+    -DWITH_FFMPEG=OFF \
+    -DWITH_CUNIT=OFF \
+    -DWITH_NEON=OFF \
+    -DBUILD_STATIC_LIBS=OFF \
+    -DCMAKE_POSITION_INDEPENDANT_CODE=ON \
+    -DWITH_MANPAGES=OFF \
+"
+
+PACKAGECONFIG ??= " \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb pam pulseaudio wayland x11', d)}\
+    gstreamer cups pcsc \
+"
+
+X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile"
+PACKAGECONFIG[x11] = "-DWITH_X11=ON -DWITH_XINERAMA=ON -DWITH_XEXT=ON -DWITH_XCURSOR=ON -DWITH_XV=ON -DWITH_XI=ON -DWITH_XRENDER=ON -DWITH_XFIXES=ON -DWITH_XDAMAGE=ON -DWITH_XRANDR=ON -DWITH_XKBFILE=ON,-DWITH_X11=OFF,${X11_DEPS}"
+PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland wayland-native libxkbcommon"
+PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb"
+PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam"
+PACKAGECONFIG[pcsc] = "-DWITH_PCSC=ON,-DWITH_PCSC=OFF,pcsc-lite"
+PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio"
+PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER_1_0=ON,-DWITH_GSTREAMER_1_0=OFF,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[cups] = "-DWITH_CUPS=ON,-DWITH_CUPS=OFF,cups"
+
+PACKAGES =+ "libfreerdp"
+
+LEAD_SONAME = "libfreerdp.so"
+FILES:libfreerdp = "${libdir}/lib*${SOLIBS}"
+
+PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*"
+
+# we will need winpr-makecert to generate TLS certificates
+do_install:append () {
+    install -d ${D}${bindir}
+    install -m755 winpr/tools/makecert-cli/winpr-makecert ${D}${bindir}
+    rm -rf ${D}${libdir}/cmake
+    rm -rf ${D}${libdir}/freerdp
+}
+
+python populate_packages:prepend () {
+    freerdp_root = d.expand('${libdir}/freerdp')
+
+    do_split_packages(d, freerdp_root, '^(audin_.*)\.so$',
+        output_pattern='libfreerdp-plugin-%s',
+        description='FreeRDP plugin %s',
+        prepend=True, extra_depends='libfreerdp-plugin-audin')
+
+    do_split_packages(d, freerdp_root, '^(rdpsnd_.*)\.so$',
+        output_pattern='libfreerdp-plugin-%s',
+        description='FreeRDP plugin %s',
+        prepend=True, extra_depends='libfreerdp-plugin-rdpsnd')
+
+    do_split_packages(d, freerdp_root, '^(tsmf_.*)\.so$',
+        output_pattern='libfreerdp-plugin-%s',
+        description='FreeRDP plugin %s',
+        prepend=True, extra_depends='libfreerdp-plugin-tsmf')
+
+    do_split_packages(d, freerdp_root, '^([^-]*)\.so$',
+        output_pattern='libfreerdp-plugin-%s',
+        description='FreeRDP plugin %s',
+        prepend=True, extra_depends='')
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/function2/function2_4.2.0.bb b/meta-openembedded/meta-oe/recipes-support/function2/function2_4.2.0.bb
index 8b0c786..2843939 100644
--- a/meta-openembedded/meta-oe/recipes-support/function2/function2_4.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/function2/function2_4.2.0.bb
@@ -6,7 +6,7 @@
 SRCREV = "02ca99831de59c7c3a4b834789260253cace0ced"
 PV .= "+git${SRCPV}"
 
-SRC_URI += "gitsm://github.com/Naios/function2"
+SRC_URI += "gitsm://github.com/Naios/function2;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd_2.3.3.bb b/meta-openembedded/meta-oe/recipes-support/gd/gd_2.3.3.bb
index cbd45c0..9d4ee1f 100644
--- a/meta-openembedded/meta-oe/recipes-support/gd/gd_2.3.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gd/gd_2.3.3.bb
@@ -13,7 +13,7 @@
 
 DEPENDS = "freetype libpng jpeg zlib tiff"
 
-SRC_URI = "git://github.com/libgd/libgd.git;nobranch=1 \
+SRC_URI = "git://github.com/libgd/libgd.git;nobranch=1;protocol=https \
            "
 
 SRCREV = "b5319a41286107b53daa0e08e402aa1819764bdc"
diff --git a/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.2.bb b/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.2.bb
index 6436df4..a9a867b 100644
--- a/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.2.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING.txt;md5=c80d1a3b623f72bb85a4c75b556551df"
 
-SRC_URI = "git://github.com/gflags/gflags.git"
+SRC_URI = "git://github.com/gflags/gflags.git;branch=master;protocol=https"
 SRCREV = "e171aa2d15ed9eb17054558e0b3a6a413bb01067"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog_0.5.0.bb b/meta-openembedded/meta-oe/recipes-support/glog/glog_0.5.0.bb
index 4019934..61581d9 100644
--- a/meta-openembedded/meta-oe/recipes-support/glog/glog_0.5.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/glog/glog_0.5.0.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b"
 
 SRC_URI = " \
-    git://github.com/google/glog.git;nobranch=1 \
+    git://github.com/google/glog.git;nobranch=1;protocol=https \
     file://libexecinfo.patch \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2018-03-07.03.bb b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2018-03-07.03.bb
index 146747e..ac46b56 100644
--- a/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2018-03-07.03.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2018-03-07.03.bb
@@ -13,7 +13,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=56a22a6e5bcce45e2c8ac184f81412b5"
 SRCREV = "0d6e3307bbdb8df4d56043d5f373eeeffe4cbef3"
 
-SRC_URI = "git://git.sv.gnu.org/gnulib.git \
+SRC_URI = "git://git.sv.gnu.org/gnulib.git;branch=master \
 "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.9.1.bb b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.9.1.bb
index 557af0e..bd42e7c 100644
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.9.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.9.1.bb
@@ -11,7 +11,7 @@
 DEPENDS:append:libc-musl = " libucontext"
 
 SRCREV = "f7c6fb6c8e99d6b1b725e5994373bcd19ffdf8fd"
-SRC_URI = "git://github.com/gperftools/gperftools \
+SRC_URI = "git://github.com/gperftools/gperftools;branch=master;protocol=https \
            file://0001-Support-Atomic-ops-on-clang.patch \
            file://0001-fix-build-with-musl-libc.patch \
            file://0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch \
diff --git a/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb b/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
index 039c955..7e353d5 100644
--- a/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
@@ -13,7 +13,7 @@
 
 DEPENDS = "ncurses bison-native"
 
-SRC_URI = "git://github.com/telmich/gpm;protocol=git \
+SRC_URI = "git://github.com/telmich/gpm;protocol=https;branch=master \
            file://init \
            file://gpm.service.in \
            "
diff --git a/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.7.1.bb b/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.7.1.bb
new file mode 100644
index 0000000..a4dc143
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.7.1.bb
@@ -0,0 +1,4 @@
+include gsl.inc
+
+SRC_URI = "${GNU_MIRROR}/gsl/gsl-${PV}.tar.gz"
+SRC_URI[sha256sum] = "dcb0fbd43048832b757ff9942691a8dd70026d5da0ff85601e52687f6deeb34b"
diff --git a/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.7.bb b/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.7.bb
deleted file mode 100644
index d40eebb..0000000
--- a/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.7.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-include gsl.inc
-
-SRC_URI = "${GNU_MIRROR}/gsl/gsl-${PV}.tar.gz"
-SRC_URI[sha256sum] = "efbbf3785da0e53038be7907500628b466152dbc3c173a87de1b5eba2e23602b"
diff --git a/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb b/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb
index e454450..9106abe 100644
--- a/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb
@@ -11,7 +11,7 @@
 
 inherit autotools pkgconfig
 
-SRC_URI = "git://github.com/libusb/hidapi.git;protocol=https \
+SRC_URI = "git://github.com/libusb/hidapi.git;protocol=https;branch=master \
            file://0001-configure.ac-remove-duplicate-AC_CONFIG_MACRO_DIR-22.patch \
 "
 PV = "0.10.1"
diff --git a/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch b/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch
index 93d6d58..2760162 100644
--- a/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch
+++ b/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch
@@ -1,4 +1,4 @@
-From 14100c6fc2cce7260ca5ace81094aee0ae40dd07 Mon Sep 17 00:00:00 2001
+From 98ed72177c49a8015a443b3ec272fee3fb5a4eb3 Mon Sep 17 00:00:00 2001
 From: Paul Barker <pbarker@toganlabs.com>
 Date: Sun, 5 Nov 2017 22:07:30 +0000
 Subject: [PATCH] htop: Update to v2.0.2
@@ -17,32 +17,32 @@
  1 file changed, 6 insertions(+), 6 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index 115d894..0e0a1eb 100644
+index 0e69096..d20014f 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -205,10 +205,10 @@ AS_VAR_POPDEF([CACHEVAR])dnl
- 
- AC_ARG_ENABLE(unicode, [AS_HELP_STRING([--enable-unicode], [enable Unicode support])], ,enable_unicode="yes")
+@@ -322,10 +322,10 @@ AC_ARG_ENABLE([unicode],
+               [],
+               [enable_unicode=yes])
  if test "x$enable_unicode" = xyes; then
--   HTOP_CHECK_SCRIPT([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw6-config",
--    HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw6-config",
--     HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw5-config",
--      HTOP_CHECK_SCRIPT([ncurses], [addnwstr], [HAVE_LIBNCURSESW], "ncurses5-config",
-+   HTOP_CHECK_SCRIPT([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw6",
-+    HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw6",
-+     HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw5",
-+      HTOP_CHECK_SCRIPT([ncurses], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncurses5",
+-   HTOP_CHECK_SCRIPT([ncursesw6], [waddwstr], [HAVE_LIBNCURSESW], "ncursesw6-config",
+-    HTOP_CHECK_SCRIPT([ncursesw], [waddwstr], [HAVE_LIBNCURSESW], "ncursesw6-config",
+-     HTOP_CHECK_SCRIPT([ncursesw], [wadd_wch], [HAVE_LIBNCURSESW], "ncursesw5-config",
+-      HTOP_CHECK_SCRIPT([ncurses], [wadd_wch], [HAVE_LIBNCURSESW], "ncurses5-config",
++   HTOP_CHECK_SCRIPT([ncursesw6], [waddwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw6",
++    HTOP_CHECK_SCRIPT([ncursesw], [waddwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw6",
++     HTOP_CHECK_SCRIPT([ncursesw], [wadd_wch], [HAVE_LIBNCURSESW], "pkg-config ncursesw5",
++      HTOP_CHECK_SCRIPT([ncurses], [wadd_wch], [HAVE_LIBNCURSESW], "pkg-config ncurses5",
         HTOP_CHECK_LIB([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW],
          HTOP_CHECK_LIB([ncursesw], [addnwstr], [HAVE_LIBNCURSESW],
           HTOP_CHECK_LIB([ncurses], [addnwstr], [HAVE_LIBNCURSESW],
-@@ -225,8 +225,8 @@ if test "x$enable_unicode" = xyes; then
+@@ -342,8 +342,8 @@ if test "x$enable_unicode" = xyes; then
     # (at this point we already link against a working ncurses library with wide character support)
     AC_SEARCH_LIBS([keypad], [tinfow tinfo])
  else
--   HTOP_CHECK_SCRIPT([ncurses6], [refresh], [HAVE_LIBNCURSES], "ncurses6-config",
--    HTOP_CHECK_SCRIPT([ncurses], [refresh], [HAVE_LIBNCURSES], "ncurses5-config",
-+   HTOP_CHECK_SCRIPT([ncurses6], [refresh], [HAVE_LIBNCURSES], "pkg-config ncurses6",
-+    HTOP_CHECK_SCRIPT([ncurses], [refresh], [HAVE_LIBNCURSES], "pkg-config ncurses5",
-      HTOP_CHECK_LIB([ncurses6],  [refresh], [HAVE_LIBNCURSES],
-       HTOP_CHECK_LIB([ncurses],  [refresh], [HAVE_LIBNCURSES],
-       missing_libraries="$missing_libraries libncurses"
+-   HTOP_CHECK_SCRIPT([ncurses6], [wnoutrefresh], [HAVE_LIBNCURSES], [ncurses6-config],
+-    HTOP_CHECK_SCRIPT([ncurses], [wnoutrefresh], [HAVE_LIBNCURSES], [ncurses5-config],
++   HTOP_CHECK_SCRIPT([ncurses6], [wnoutrefresh], [HAVE_LIBNCURSES], [pkg-config ncurses6],
++    HTOP_CHECK_SCRIPT([ncurses], [wnoutrefresh], [HAVE_LIBNCURSES], [pkg-config ncurses5],
+      HTOP_CHECK_LIB([ncurses6],  [doupdate], [HAVE_LIBNCURSES],
+       HTOP_CHECK_LIB([ncurses],  [doupdate], [HAVE_LIBNCURSES],
+        HTOP_CHECK_LIB([curses],  [doupdate], [HAVE_LIBNCURSES],
diff --git a/meta-openembedded/meta-oe/recipes-support/htop/htop_3.0.5.bb b/meta-openembedded/meta-oe/recipes-support/htop/htop_3.0.5.bb
deleted file mode 100644
index 7854c7b..0000000
--- a/meta-openembedded/meta-oe/recipes-support/htop/htop_3.0.5.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Interactive process viewer"
-HOMEPAGE = "https://htop.dev"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4099d367cd5e59b6d4fc1ee33accb891"
-
-DEPENDS = "ncurses"
-
-SRC_URI = "git://github.com/htop-dev/htop.git \
-           file://0001-Use-pkg-config.patch \
-           "
-SRCREV = "ce6d60e7def146c13d0b8bca4642e7401a0a8995"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= " \
-    unicode \
-    linux-affinity \
-    delayacct \
-"
-PACKAGECONFIG[openvz] = "--enable-openvz,--disable-openvz"
-PACKAGECONFIG[vserver] = "--enable-vserver,--disable-vserver"
-PACKAGECONFIG[ancient-vserver] = "--enable-ancient-vserver,--disable-ancient-vserver"
-PACKAGECONFIG[unicode] = "--enable-unicode,--disable-unicode"
-PACKAGECONFIG[hwloc] = "--enable-hwloc,--disable-hwloc,hwloc"
-PACKAGECONFIG[linux-affinity] = "--enable-linux-affinity,--disable-linux-affinity"
-PACKAGECONFIG[setuid] = "--enable-setuid,--disable-setuid"
-PACKAGECONFIG[delayacct] = "--enable-delayacct,--disable-delayacct,libnl"
-PACKAGECONFIG[sensors] = "--with-sensors,--without-sensors,lmsensors,lmsensors-libsensors"
-
-FILES:${PN} += "${datadir}/icons/hicolor/scalable/apps/htop.svg"
-
-RDEPENDS:${PN} += "ncurses-terminfo-base"
diff --git a/meta-openembedded/meta-oe/recipes-support/htop/htop_3.1.2.bb b/meta-openembedded/meta-oe/recipes-support/htop/htop_3.1.2.bb
new file mode 100644
index 0000000..d8e241e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/htop/htop_3.1.2.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Interactive process viewer"
+HOMEPAGE = "https://htop.dev"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "ncurses"
+
+SRC_URI = "git://github.com/htop-dev/htop.git;branch=main;protocol=https \
+           file://0001-Use-pkg-config.patch \
+"
+SRCREV = "d73783d6dbec4a8d9d20d744bf2b5e6a7073aa46"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= " \
+    unicode \
+    affinity \
+    delayacct \
+"
+PACKAGECONFIG[unicode] = "--enable-unicode,--disable-unicode"
+PACKAGECONFIG[affinity] = "--enable-affinity,--disable-affinity,,,,hwloc"
+PACKAGECONFIG[unwind] = "--enable-unwind,--disable-unwind,libunwind"
+PACKAGECONFIG[hwloc] = "--enable-hwloc,--disable-hwloc,hwloc,,,affinity"
+PACKAGECONFIG[openvz] = "--enable-openvz,--disable-openvz"
+PACKAGECONFIG[vserver] = "--enable-vserver,--disable-vserver"
+PACKAGECONFIG[ancient-vserver] = "--enable-ancient-vserver,--disable-ancient-vserver"
+PACKAGECONFIG[capabilities] = "--enable-capabilities,--disable-capabilities,libcap"
+PACKAGECONFIG[delayacct] = "--enable-delayacct,--disable-delayacct,libnl"
+PACKAGECONFIG[sensors] = "--enable-sensors,--disable-sensors,lmsensors,lmsensors-libsensors"
+
+FILES:${PN} += "${datadir}/icons/hicolor/scalable/apps/htop.svg"
+
+RDEPENDS:${PN} += "ncurses-terminfo-base"
diff --git a/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb b/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb
index eb1472f..9e8583b 100644
--- a/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb
@@ -135,7 +135,7 @@
 
 PV = "0.0.0+git${SRCPV}"
 SRCREV = "820a65e539e34a3a8c2a855d2450b84745c624ee"
-SRC_URI = "git://github.com/wooorm/dictionaries.git"
+SRC_URI = "git://github.com/wooorm/dictionaries.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.7.0.bb b/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.7.0.bb
index b0aa4f7..f5813df 100644
--- a/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.7.0.bb
@@ -7,7 +7,7 @@
 "
 
 SRCREV = "4ddd8ed5ca6484b930b111aec50c2750a6119a0f"
-SRC_URI = "git://github.com/${BPN}/${BPN}.git"
+SRC_URI = "git://github.com/${BPN}/${BPN}.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.347.bb b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.347.bb
index 192aa57..3713004 100644
--- a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.347.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.347.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
 
 SRCREV = "ae89c73d89bb9f416b25ad9e850e9606e66a573e"
-SRC_URI = "git://github.com/vcrhonek/${BPN}.git"
+SRC_URI = "git://github.com/vcrhonek/${BPN}.git;branch=master;protocol=https"
 S = "${WORKDIR}/git"
 
 do_configure() {
diff --git a/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb b/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
index 986984d..ac23630 100644
--- a/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
@@ -7,7 +7,7 @@
 SRCREV = "978b733462e41efd5db72bc9974cb3b0d1d5f6fa"
 PV = "1.5+git${SRCPV}"
 
-SRC_URI = "git://github.com/meduketto/iksemel.git;protocol=https \
+SRC_URI = "git://github.com/meduketto/iksemel.git;protocol=https;branch=master \
            file://fix-configure-option-parsing.patch \
            file://avoid-obsolete-gnutls-apis.patch"
 
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.0.10.bb
index d8e6315..bb111a1 100644
--- a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.10.bb
@@ -11,7 +11,7 @@
 
 BASE_PV := "${PV}"
 PV .= "_25"
-SRC_URI = "git://github.com/ImageMagick/ImageMagick.git "
+SRC_URI = "git://github.com/ImageMagick/ImageMagick.git;branch=master;protocol=https"
 SRCREV = "8b4e00829eb84d4e7b4da11acf1f98f1e8166e5b"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb b/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb
index 00747f4..cf39080 100644
--- a/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb
@@ -9,7 +9,7 @@
 
 # The github repository provides a cmake and pkg-config integration
 SRCREV = "c858aff8c31fa63ef4d1e0176c10e5928cde9a23"
-SRC_URI = "git://github.com/OSSystems/inih.git \
+SRC_URI = "git://github.com/OSSystems/inih.git;branch=master;protocol=https \
            file://0001-include-install-header-files-without-prefix-dir-inih.patch \
            "
 
diff --git a/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb b/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb
index f4b553a..f3593fb 100644
--- a/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb
@@ -6,7 +6,7 @@
 
 DEPENDS = "doxygen-native"
 
-SRC_URI = "git://github.com/ndevilla/iniparser.git;protocol=https \
+SRC_URI = "git://github.com/ndevilla/iniparser.git;protocol=https;branch=master \
 	   file://Add-CMake-support.patch"
 
 # tag 4.1
diff --git a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/0001-libinotifytools-Include-limit.h-for-PATH_MAX.patch b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/0001-libinotifytools-Include-limit.h-for-PATH_MAX.patch
new file mode 100644
index 0000000..f30a62d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/0001-libinotifytools-Include-limit.h-for-PATH_MAX.patch
@@ -0,0 +1,29 @@
+From 1e37cc3aa674c4b052f0655fef59a910fd7325cb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 16 Dec 2021 14:53:25 -0800
+Subject: [PATCH 1/2] libinotifytools: Include limit.h for PATH_MAX
+
+musl builds fail since the required header which defines PATH_MAX is
+missing, its perhaps included indirectly via glibc based systems
+
+Upstream-Status: Submitted [https://github.com/inotify-tools/inotify-tools/pull/153]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libinotifytools/src/inotifytools.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libinotifytools/src/inotifytools.c b/libinotifytools/src/inotifytools.c
+index 8bdfdb6..902eac2 100644
+--- a/libinotifytools/src/inotifytools.c
++++ b/libinotifytools/src/inotifytools.c
+@@ -17,6 +17,7 @@
+ #include "inotifytools_p.h"
+ #include "stats.h"
+ 
++#include <limits.h>
+ #include <string.h>
+ #include <strings.h>
+ #include <stdlib.h>
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/0002-libinotifytools-Bridge-differences-between-musl-glib.patch b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/0002-libinotifytools-Bridge-differences-between-musl-glib.patch
new file mode 100644
index 0000000..9312448
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/0002-libinotifytools-Bridge-differences-between-musl-glib.patch
@@ -0,0 +1,40 @@
+From 6c3ce01a281a9aa661494d24a862219fc9e2b460 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 16 Dec 2021 14:57:55 -0800
+Subject: [PATCH 2/2] libinotifytools: Bridge differences between
+ musl/glibc/kernel fnotify.h
+
+System detects to use sys/fnotify.h and then assumes glibc's definitions
+but musl has definitions of its own. perhaps portable thing would be to
+use linux/fnotify.h interface directly on linux irrespective of libc
+
+See the differences discussion here [1]
+
+[1] https://inbox.vuxu.org/musl/20191112220151.GC27331@x230/T/#ma8700992467200c8792e0fa8508eae656b81aeba
+
+Upstream-Status: Submitted [https://github.com/inotify-tools/inotify-tools/pull/154]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libinotifytools/src/inotifytools.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/libinotifytools/src/inotifytools.c b/libinotifytools/src/inotifytools.c
+index 902eac2..2b96395 100644
+--- a/libinotifytools/src/inotifytools.c
++++ b/libinotifytools/src/inotifytools.c
+@@ -55,6 +55,12 @@ struct fanotify_event_fid {
+ 	struct fanotify_event_info_fid info;
+ 	struct file_handle handle;
+ };
++
++#ifndef __GLIBC__
++#define val __val
++#define __kernel_fsid_t fsid_t
++#endif
++
+ #endif
+ 
+ /**
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_3.21.9.6.bb b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_3.21.9.6.bb
new file mode 100644
index 0000000..89c3a00
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_3.21.9.6.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Command line tools and C library providing a simple interface to inotify"
+AUTHOR = "Rohan McGovern <rohan@mcgovern.id.au>"
+HOMEPAGE = "http://wiki.github.com/rvoicilas/inotify-tools"
+SECTION = "console/devel"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ac6c26e52aea428ee7f56dc2c56424c6"
+
+SRCREV = "8f8fcdffb7e80928bea6c1fccd3527a9f5d8fe77"
+
+SRC_URI = "git://github.com/${BPN}/${BPN};branch=master;protocol=https \
+           file://0001-libinotifytools-Include-limit.h-for-PATH_MAX.patch \
+           file://0002-libinotifytools-Bridge-differences-between-musl-glib.patch \
+          "
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-doxygen"
+
+# workaround until glibc 2.35 is fixed for this [1]
+# [1] https://sourceware.org/pipermail/libc-alpha/2021-December/134215.html
+CFLAGS += "-Wno-error"
+
+PACKAGES =+ "libinotifytools"
+
+FILES:libinotifytools = "${libdir}/lib*.so.*"
diff --git a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
deleted file mode 100644
index 26e7e84..0000000
--- a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Command line tools and C library providing a simple interface to inotify"
-AUTHOR = "Rohan McGovern <rohan@mcgovern.id.au>"
-HOMEPAGE = "http://wiki.github.com/rvoicilas/inotify-tools"
-SECTION = "console/devel"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ac6c26e52aea428ee7f56dc2c56424c6"
-
-SRCREV = "98e8dfa47eb6a6ba52e35de55d2de21b274a4af8"
-PV = "3.20.11.0"
-
-SRC_URI = "git://github.com/rvoicilas/${BPN}"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-EXTRA_OECONF = "--disable-doxygen"
-
-PACKAGES =+ "libinotifytools"
-
-FILES:libinotifytools = "${libdir}/lib*.so.*"
diff --git a/meta-openembedded/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb b/meta-openembedded/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb
index 127f71d..4ca41cb 100644
--- a/meta-openembedded/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb
@@ -5,7 +5,7 @@
 DEPENDS = "udev"
 
 SRCREV = "de6258940960443038b4c1651dfda3620075e870"
-SRC_URI = "git://git.0pointer.de/libatasmart.git \
+SRC_URI = "git://git.0pointer.de/libatasmart.git;branch=master \
            file://0001-Makefile.am-add-CFLAGS-and-LDFLAGS-definiton.patch \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.6.bb b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.6.bb
index 7b8d4a3..cbf6be4 100644
--- a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.6.bb
@@ -10,7 +10,7 @@
 B = "${S}"
 
 SRCREV = "c9864f4dd03736839f40d225da494cb1eb64e654"
-SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master"
+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/libcereal_1.3.0.bb b/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.3.0.bb
index 6498bb3..0dbd520 100644
--- a/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.3.0.bb
@@ -16,7 +16,7 @@
 
 PV .= "+git${SRCPV}"
 SRCREV = "64f50dbd5cecdaba785217e2b0aeea3a4f1cdfab"
-SRC_URI = "git://github.com/USCiLab/cereal.git \
+SRC_URI = "git://github.com/USCiLab/cereal.git;branch=master;protocol=https \
            file://0001-Use-GNUInstallDirs-instead-of-hard-wiring-install-di.patch \
            "
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libcppkafka/libcppkafka_git.bb b/meta-openembedded/meta-oe/recipes-support/libcppkafka/libcppkafka_git.bb
index d98fa2c..8f777eb 100644
--- a/meta-openembedded/meta-oe/recipes-support/libcppkafka/libcppkafka_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libcppkafka/libcppkafka_git.bb
@@ -8,7 +8,7 @@
 file://LICENSE;md5=d8b4ca15d239dc1485ef495c8f1bcc72 \
 "
 
-SRC_URI = "git://github.com/mfontanini/cppkafka;protocol=https"
+SRC_URI = "git://github.com/mfontanini/cppkafka;protocol=https;branch=master"
 SRCREV = "5e4b350806d561473138ce7a982e8f6cf2e77733"
 
 DEPENDS = "librdkafka boost chrpath-replacement-native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb b/meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
index 98871c3..3508384 100644
--- a/meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
@@ -8,7 +8,7 @@
 PV = "1.0.0+git${SRCPV}"
 
 SRCREV = "655e2d544183d094f0e2d119c7e0c6206a0ddb3f"
-SRC_URI = "git://github.com/cyrozap/${BPN}.git"
+SRC_URI = "git://github.com/cyrozap/${BPN}.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libfann/libfann_git.bb b/meta-openembedded/meta-oe/recipes-support/libfann/libfann_git.bb
index eae2446..5ab484d 100644
--- a/meta-openembedded/meta-oe/recipes-support/libfann/libfann_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libfann/libfann_git.bb
@@ -9,7 +9,7 @@
 inherit cmake
 
 SRCREV ?= "7ec1fc7e5bd734f1d3c89b095e630e83c86b9be1"
-SRC_URI = "git://github.com/libfann/fann.git;branch=master \
+SRC_URI = "git://github.com/libfann/fann.git;branch=master;protocol=https \
           "
 
 PV = "2.2.0+git${SRCPV}"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/files/run-ptest b/meta-openembedded/meta-oe/recipes-support/libgpiod/files/run-ptest
index 60c661f..61b9b69 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/files/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/files/run-ptest
@@ -7,7 +7,7 @@
 
 for testbin in $testbins; do
 	if test -e ./$testbin; then
-		./$testbin > ./$testbin.out
+		./$testbin > ./$testbin.out 2>&1
 		if [ $? -ne 0 ]; then
 			echo "FAIL: $testbin"
 		else
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.6.3.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.6.3.bb
index ac4ba85..51b74ba 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.6.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.6.3.bb
@@ -49,7 +49,11 @@
 FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
 
 RRECOMMENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'python3', '${PN}-python', '', d)}"
-RRECOMMENDS:${PN}-ptest += "kernel-module-gpio-mockup"
+RRECOMMENDS:${PN}-ptest += " \
+    kernel-module-gpio-mockup \
+    coreutils \
+    ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-unittest', '', d)} \
+"
 
 PACKAGECONFIG:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'tests', '', d)}"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_0.3.8.bb b/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_0.3.8.bb
deleted file mode 100644
index c22030b..0000000
--- a/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_0.3.8.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "GUsb is a GObject wrapper for libusb1"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-DEPENDS = "glib-2.0 libusb"
-
-inherit meson gobject-introspection gtk-doc gettext vala
-
-SRC_URI = "git://github.com/hughsie/libgusb.git;branch=main"
-SRCREV = "db9edbd8b45662d551194a0985173732f8f557a5"
-S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_0.3.9.bb b/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_0.3.9.bb
new file mode 100644
index 0000000..3fdb2b7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_0.3.9.bb
@@ -0,0 +1,14 @@
+SUMMARY = "GUsb is a GObject wrapper for libusb1"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+DEPENDS = "glib-2.0 libusb"
+
+inherit meson gobject-introspection gtk-doc gettext vala
+
+PACKAGECONFIG ??= "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vapi', '', d)}"
+PACKAGECONFIG[vapi] = "-Dvapi=true,-Dvapi=false"
+
+SRC_URI = "git://github.com/hughsie/libgusb.git;branch=main;protocol=https"
+SRCREV = "582f33178a986e74543de8ced087865009f8fef0"
+S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/libharu/libharu_2.3.0.bb b/meta-openembedded/meta-oe/recipes-support/libharu/libharu_2.3.0.bb
index 01c94f8..7477c5f 100644
--- a/meta-openembedded/meta-oe/recipes-support/libharu/libharu_2.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libharu/libharu_2.3.0.bb
@@ -6,7 +6,7 @@
 LICENSE = "Zlib"
 LIC_FILES_CHKSUM = "file://README;md5=3ee6bc1f64d9cc7907f44840c8e50cb1"
 
-SRC_URI = "git://github.com/libharu/libharu.git;branch=2_3 \
+SRC_URI = "git://github.com/libharu/libharu.git;branch=2_3;protocol=https \
            file://libharu-RELEASE_2_3_0_cmake.patch \
            file://0001-Install-static-lib-into-var-libdir-rather-than-hardc.patch \
 	   "
diff --git a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
index 488d4e3..6632f7e 100644
--- a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -7,7 +7,7 @@
 SRCREV = "565bf68eccfdbbf22cf5cb6d792e23de564665c7"
 PV = "0.21+git${SRCPV}"
 
-SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https \
+SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https;branch=master \
            file://0001-python-Do-not-verify-whether-libiio-is-installed-whe.patch \
 "
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
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 66fb5a3..2db16e1 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"
+SRC_URI = "git://github.com/js-cookie/js-cookie.git;protocol=http;branch=master;protocol=https"
 
 SRCREV = "0ba77141dd215782cc7770347a457906908c66ff"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-globalize_1.7.0.bb b/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-globalize_1.7.0.bb
index a87c5bf..b6147ff 100644
--- a/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-globalize_1.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-globalize_1.7.0.bb
@@ -7,7 +7,8 @@
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=4db68fb4d1d9986d736b35039f2ad9ea"
 
-SRC_URI = "git://github.com/globalizejs/globalize;tag=1.7.0;nobranch=1"
+SRCREV = "771061fb35f7fd8d7c2c37f5d5bb26115be382bc"
+SRC_URI = "git://github.com/globalizejs/globalize;protocol=https;nobranch=1"
 
 FILES:${PN} = "${datadir}/javascript/jquery-globalize"
 FILES:${PN}-doc += "${docdir}/${PN}"
diff --git a/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
index 590c4eb..fc0b1ee 100644
--- a/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
@@ -10,7 +10,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b49da7df0ca479ef01ff7f2d799eabee"
 
 SRCREV = "50486af99b4f9b35522d7b3de40b6ce107505279"
-SRC_URI += "git://github.com/LadislavSopko/mimetic/ \
+SRC_URI += "git://github.com/LadislavSopko/mimetic/;branch=master;protocol=https \
             file://0001-libmimetic-Removing-test-directory-from-the-Makefile.patch \
             file://0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch \
            "
diff --git a/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_3.2.bb b/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_3.2.bb
deleted file mode 100644
index 2e8ecbf..0000000
--- a/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_3.2.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-DESCRIPTION = "Tiny XML Library"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-HOMEPAGE = "https://www.msweet.org/mxml/"
-BUGTRACKER = "https://github.com/michaelrsweet/mxml/issues"
-
-SRC_URI = "git://github.com/michaelrsweet/mxml.git;nobranch=1"
-SRCREV = "38b044ed8ca2a611ed9ed3e26c4b46416335194e"
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-PACKAGECONFIG ??= "threads"
-PACKAGECONFIG[threads] = "--enable-threads,--disable-threads"
-
-# Package does not support out of tree builds.
-B = "${S}"
-
-# MXML uses autotools but it explicitly states it does not support autoheader.
-EXTRA_AUTORECONF = "--exclude=autopoint,autoheader"
-
-do_configure:prepend() {
-    # Respect optimization CFLAGS specified by OE.
-    sed -e 's/-Os -g//' -i ${S}/configure.ac
-
-    # Enable verbose compilation output. This is required for extra QA checks to work.
-    sed -e '/.SILENT:/d' -i ${S}/Makefile.in
-}
-
-do_install() {
-    # Package uses DSTROOT instread of standard DESTDIR to specify install location.
-    oe_runmake install DSTROOT=${D}
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_3.3.bb b/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_3.3.bb
new file mode 100644
index 0000000..c8e2167
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_3.3.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Tiny XML Library"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+HOMEPAGE = "https://www.msweet.org/mxml/"
+BUGTRACKER = "https://github.com/michaelrsweet/mxml/issues"
+
+SRC_URI = "git://github.com/michaelrsweet/mxml.git;nobranch=1;protocol=https"
+SRCREV = "0237559fdbcecae34157b547aa2b99e12de305a2"
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PACKAGECONFIG ??= "threads"
+PACKAGECONFIG[threads] = "--enable-threads,--disable-threads"
+
+# Package does not support out of tree builds.
+B = "${S}"
+
+# MXML uses autotools but it explicitly states it does not support autoheader.
+EXTRA_AUTORECONF = "--exclude=autopoint,autoheader"
+
+do_configure:prepend() {
+    # Respect optimization CFLAGS specified by OE.
+    sed -e 's/-Os -g//' -i ${S}/configure.ac
+
+    # Enable verbose compilation output. This is required for extra QA checks to work.
+    sed -e '/.SILENT:/d' -i ${S}/Makefile.in
+}
+
+do_install() {
+    # Package uses DSTROOT instread of standard DESTDIR to specify install location.
+    oe_runmake install DSTROOT=${D}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.11.bb b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.11.bb
index 4c99a32..dc2cc89 100644
--- a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.11.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.11.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29"
 DEPENDS = "libtool openssl"
 
-SRC_URI = "git://github.com/OpenSC/libp11.git"
+SRC_URI = "git://github.com/OpenSC/libp11.git;branch=master;protocol=https"
 SRCREV = "9ca6a71c890b5583c8af3b4900172626bca55e72"
 
 UPSTREAM_CHECK_GITTAGREGEX = "libp11-(?P<pver>\d+(\.\d+)+)"
diff --git a/meta-openembedded/meta-oe/recipes-support/libraw/libraw_0.20.2.bb b/meta-openembedded/meta-oe/recipes-support/libraw/libraw_0.20.2.bb
index 0a7c534..4765264 100644
--- a/meta-openembedded/meta-oe/recipes-support/libraw/libraw_0.20.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libraw/libraw_0.20.2.bb
@@ -2,7 +2,7 @@
 LICENSE = "LGPL-2.1 | CDDL-1.0"
 LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=74c9dffdc42805f9c0de2f97df6031fc"
 
-SRC_URI = "git://github.com/LibRaw/LibRaw.git"
+SRC_URI = "git://github.com/LibRaw/LibRaw.git;branch=master;protocol=https"
 SRCREV = "0209b6a2caec189e6d1a9b21c10e9e49f46e5a92"
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/librdkafka/librdkafka/0001_fix_absolute_path_usage.patch b/meta-openembedded/meta-oe/recipes-support/librdkafka/librdkafka/0001_fix_absolute_path_usage.patch
deleted file mode 100644
index d609786..0000000
--- a/meta-openembedded/meta-oe/recipes-support/librdkafka/librdkafka/0001_fix_absolute_path_usage.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From dd06894a786edf4bea11dace50d7380b89dfaba5 Mon Sep 17 00:00:00 2001
-From: hasan.men <hasan.men@bosphorusiss.com>
-Date: Sun, 4 Apr 2021 17:20:32 +0200
-Subject: [PATCH] fix absolute path problem
-
----
- src/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index c6c05e06..e6c47374 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -176,7 +176,7 @@ if(MINGW)
- endif(MINGW)
- 
- # Support '#include <rdkafka.h>'
--target_include_directories(rdkafka PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>")
-+target_include_directories(rdkafka PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
- target_compile_definitions(rdkafka PUBLIC ${rdkafka_compile_definitions})
- if(RDKAFKA_BUILD_STATIC)
-   target_compile_definitions(rdkafka PUBLIC LIBRDKAFKA_STATICLIB)
-@@ -188,7 +188,7 @@ if(MINGW)
-   target_link_libraries(rdkafka PUBLIC crypt32 ws2_32 secur32)
- endif(MINGW)
- 
--if(WIN32)  
-+if(WIN32)
-   if(RDKAFKA_BUILD_STATIC)
-     target_link_libraries(rdkafka PUBLIC crypt32)
-   else()
-@@ -207,13 +207,13 @@ endif()
- 
- if(WITH_ZLIB)
-   find_package(ZLIB REQUIRED)
--  target_include_directories(rdkafka PUBLIC ${ZLIB_INCLUDE_DIRS})
-+  target_include_directories(rdkafka PRIVATE ${ZLIB_INCLUDE_DIRS})
-   target_link_libraries(rdkafka PUBLIC ZLIB::ZLIB)
- endif()
- 
- if(WITH_ZSTD)
--  target_link_libraries(rdkafka PUBLIC ${ZSTD_LIBRARY})
--  target_include_directories(rdkafka PUBLIC ${ZSTD_INCLUDE_DIR})
-+  target_link_libraries(rdkafka PRIVATE ${ZSTD_LIBRARY})
-+  target_include_directories(rdkafka PRIVATE ${ZSTD_INCLUDE_DIR})
-   message(STATUS "Found ZSTD: ${ZSTD_LIBRARY}")
- endif()
- 
-@@ -222,12 +222,12 @@ if(WITH_SSL)
-     if(NOT TARGET bundled-ssl)
-       message(FATAL_ERROR "bundled-ssl target not exist")
-     endif()
--    target_include_directories(rdkafka BEFORE PUBLIC ${BUNDLED_SSL_INCLUDE_DIR})
-+    target_include_directories(rdkafka BEFORE PRIVATE ${BUNDLED_SSL_INCLUDE_DIR})
-     target_link_libraries(rdkafka PUBLIC ${BUNDLED_SSL_LIBRARIES})
-     add_dependencies(rdkafka bundled-ssl)
-   else()
-     find_package(OpenSSL REQUIRED)
--    target_include_directories(rdkafka PUBLIC ${OPENSSL_INCLUDE_DIR})
-+    target_include_directories(rdkafka PRIVATE ${OPENSSL_INCLUDE_DIR})
-     target_link_libraries(rdkafka PUBLIC OpenSSL::SSL OpenSSL::Crypto)
-     get_target_property(OPENSSL_TARGET_TYPE OpenSSL::SSL TYPE)
-     if(OPENSSL_CRYPTO_LIBRARY MATCHES "\\.a$")
-@@ -244,7 +244,7 @@ find_package(Threads REQUIRED)
- target_link_libraries(rdkafka PUBLIC Threads::Threads)
- 
- if(WITH_SASL_CYRUS)
--  target_include_directories(rdkafka PUBLIC ${SASL_INCLUDE_DIRS})
-+  target_include_directories(rdkafka PRIVATE ${SASL_INCLUDE_DIRS})
-   target_link_libraries(rdkafka PUBLIC ${SASL_LIBRARIES})
- endif()
- 
-@@ -253,7 +253,7 @@ if(WITH_LIBDL)
- endif()
- 
- if(WITH_LZ4_EXT)
--  target_include_directories(rdkafka PUBLIC ${LZ4_INCLUDE_DIRS})
-+  target_include_directories(rdkafka PRIVATE ${LZ4_INCLUDE_DIRS})
-   target_link_libraries(rdkafka PUBLIC LZ4::LZ4)
- endif()
- 
--- 
-2.17.1
\ No newline at end of file
diff --git a/meta-openembedded/meta-oe/recipes-support/librdkafka/librdkafka_1.6.1.bb b/meta-openembedded/meta-oe/recipes-support/librdkafka/librdkafka_1.6.1.bb
deleted file mode 100644
index 0fa2296..0000000
--- a/meta-openembedded/meta-oe/recipes-support/librdkafka/librdkafka_1.6.1.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "the Apache Kafka C/C++ client library"
-DESCRIPTION = "librdkafka is a C library implementation of the Apache Kafka protocol, providing Producer, Consumer and Admin clients."
-HOMEPAGE = "https://github.com/edenhill/librdkafka"
-SECTION = "libs"
-LICENSE = "BSD-2-Clause"
-
-LIC_FILES_CHKSUM = " \
-file://LICENSE;md5=2be8675acbfdac48935e73897af5f646 \
-"
-
-SRC_URI = "git://github.com/edenhill/librdkafka;protocol=https \
-            file://0001_fix_absolute_path_usage.patch"
-SRCREV = "1a722553638bba85dbda5050455f7b9a5ef302de"
-
-DEPENDS = "zlib openssl zstd"
-
-inherit cmake
-
-S = "${WORKDIR}/git"
-
-FILES:${PN} += "${datadir}"
-
-EXTRA_OECMAKE += "-DRDKAFKA_BUILD_EXAMPLES=OFF -DRDKAFKA_BUILD_TESTS=OFF"
\ No newline at end of file
diff --git a/meta-openembedded/meta-oe/recipes-support/librdkafka/librdkafka_1.8.2.bb b/meta-openembedded/meta-oe/recipes-support/librdkafka/librdkafka_1.8.2.bb
new file mode 100644
index 0000000..f9f3baa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/librdkafka/librdkafka_1.8.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "the Apache Kafka C/C++ client library"
+DESCRIPTION = "librdkafka is a C library implementation of the Apache Kafka protocol, \
+               providing Producer, Consumer and Admin clients."
+HOMEPAGE = "https://github.com/edenhill/librdkafka"
+SECTION = "libs"
+LICENSE = "BSD-2-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2be8675acbfdac48935e73897af5f646"
+
+SRC_URI = "git://github.com/edenhill/librdkafka;protocol=https;branch=master"
+SRCREV = "063a9ae7a65cebdf1cc128da9815c05f91a2a996"
+
+DEPENDS = "zlib openssl zstd"
+
+inherit cmake
+
+S = "${WORKDIR}/git"
+
+FILES:${PN} += "${datadir}"
+
+EXTRA_OECMAKE += "-DRDKAFKA_BUILD_EXAMPLES=OFF -DRDKAFKA_BUILD_TESTS=OFF"
diff --git a/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.2.bb b/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.2.bb
index 79a1a0f..1dc4a072 100644
--- a/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.2.bb
@@ -4,7 +4,7 @@
 LICENSE = "LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
 
-SRC_URI = "git://github.com/librsync/librsync.git"
+SRC_URI = "git://github.com/librsync/librsync.git;branch=master;protocol=https"
 SRCREV = "42b636d2a65ab6914ea7cac50886da28192aaf9b"
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb b/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb
index 9abba6e..6c943be 100644
--- a/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb
@@ -10,7 +10,7 @@
 inherit autotools pkgconfig python3-dir
 
 SRCREV = "fd1ad6e7823fa76d8db0d3c5884faffa8ffddafb"
-SRC_URI = "git://github.com/jackmitch/libsoc.git"
+SRC_URI = "git://github.com/jackmitch/libsoc.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.9.bb b/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.9.bb
index cbda8b7..63be2ac 100644
--- a/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.9.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.9.bb
@@ -6,7 +6,7 @@
 
 DEPENDS = "zlib openssl"
 
-SRC_URI = "git://git.libssh.org/projects/libssh.git;branch=stable-0.8"
+SRC_URI = "git://git.libssh.org/projects/libssh.git;protocol=https;branch=stable-0.8"
 SRCREV = "04685a74df9ce1db1bc116a83a0da78b4f4fa1f8"
 
 S = "${WORKDIR}/git"
@@ -33,3 +33,5 @@
 }
 
 TOOLCHAIN = "gcc"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-check-the-return-value.patch b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-check-the-return-value.patch
new file mode 100644
index 0000000..96891c9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-check-the-return-value.patch
@@ -0,0 +1,34 @@
+From e86a58271d7d0a3b9cd546251d2527e93898bdb8 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Tue, 21 Dec 2021 11:15:31 +0800
+Subject: [PATCH] team_basic_test.py: check the return value
+
+Not only print the traceback like before, also check the
+return value.
+
+Upstream-Status: Submitted [https://github.com/jpirko/libteam/pull/63]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ scripts/team_basic_test.py | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/scripts/team_basic_test.py b/scripts/team_basic_test.py
+index 0b64af2..17588c7 100755
+--- a/scripts/team_basic_test.py
++++ b/scripts/team_basic_test.py
+@@ -203,4 +203,10 @@ def main():
+     btest.run()
+ 
+ if __name__ == "__main__":
+-    main()
++    try:
++        ret = main()
++    except Exception as esc:
++        ret = 1
++        import traceback
++        traceback.print_exc()
++    sys.exit(ret)
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-switch-to-python3.patch b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-switch-to-python3.patch
new file mode 100644
index 0000000..69276ab
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-switch-to-python3.patch
@@ -0,0 +1,101 @@
+From 06050e79655f0fa7d9daeda1fbd3a9a2c7736841 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 2 Dec 2021 15:08:25 +0800
+Subject: [PATCH] team_basic_test.py: switch to python3
+
+Switch the script team_basic_test.py to python3
+
+Upstream-Status: Submitted [https://github.com/jpirko/libteam/pull/63]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ scripts/team_basic_test.py | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/scripts/team_basic_test.py b/scripts/team_basic_test.py
+index faabd18..0b64af2 100755
+--- a/scripts/team_basic_test.py
++++ b/scripts/team_basic_test.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+ """
+ Basic test.
+ 
+@@ -32,11 +32,11 @@ def usage():
+     """
+     Print usage of this app
+     """
+-    print "Usage: team_basic_test.py [OPTION...]"
+-    print ""
+-    print "  -h, --help                         print this message"
+-    print "  -c, --loop-count=NUMBER            number of loops (default 1)"
+-    print "  -p, --port=NETDEV                  port device (can be defined multiple times)"
++    print("Usage: team_basic_test.py [OPTION...]")
++    print("")
++    print("  -h, --help                         print this message")
++    print("  -c, --loop-count=NUMBER            number of loops (default 1)")
++    print("  -p, --port=NETDEV                  port device (can be defined multiple times)")
+     sys.exit()
+ 
+ class CmdExecFailedException(Exception):
+@@ -55,15 +55,15 @@ class CmdExecUnexpectedOutputException(Exception):
+         return "Command execution output unexpected: \"%s\" != \"%s\"" % (self.__output, self.__expected_output)
+ 
+ def print_output(out_type, string):
+-    print("%s:\n"
++    print(("%s:\n"
+           "----------------------------\n"
+           "%s"
+-          "----------------------------" % (out_type, string))
++          "----------------------------" % (out_type, string)))
+ 
+ def cmd_exec(cmd, expected_output=None, cleaner=False):
+     cmd = cmd.rstrip(" ")
+     if not cleaner:
+-        print("# \"%s\"" % cmd)
++        print(("# \"%s\"" % cmd))
+     subp = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
+                             stderr=subprocess.PIPE)
+     (data_stdout, data_stderr) = subp.communicate()
+@@ -74,7 +74,7 @@ def cmd_exec(cmd, expected_output=None, cleaner=False):
+         if data_stderr:
+             print_output("Stderr", data_stderr)
+         raise CmdExecFailedException(subp.returncode)
+-    output = data_stdout.rstrip()
++    output = (data_stdout.rstrip()).decode()
+     if expected_output:
+         if output != expected_output:
+             raise CmdExecUnexpectedOutputException(output, expected_output)
+@@ -166,7 +166,7 @@ TEAM_PORT_CONFIG='{"prio": 10}'
+             os.removedirs("/tmp/team_test/")
+ 
+     def _run_one_loop(self, run_nr):
+-        print "RUN #%d" % (run_nr)
++        print("RUN #%d" % (run_nr))
+         self._created_teams = []
+         try:
+             for mode_name in self._team_modes:
+@@ -176,7 +176,7 @@ TEAM_PORT_CONFIG='{"prio": 10}'
+             cmd_exec("modprobe -r team_mode_loadbalance team_mode_roundrobin team_mode_activebackup team_mode_broadcast team");
+ 
+     def run(self):
+-        for i in xrange(self._loop_count):
++        for i in range(self._loop_count):
+             self._run_one_loop(i + 1)
+ 
+ def main():
+@@ -186,8 +186,8 @@ def main():
+             "hc:p:",
+             ["help", "loop-count=", "port="]
+         )
+-    except getopt.GetoptError, err:
+-        print str(err)
++    except getopt.GetoptError as err:
++        print(str(err))
+         usage()
+ 
+     btest = TeamBasicTest()
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-use-python3-interpreter.patch b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-use-python3-interpreter.patch
deleted file mode 100644
index e27e4f3..0000000
--- a/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-use-python3-interpreter.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 571c141b434dff13494c6a3afe621f63a8e610e9 Mon Sep 17 00:00:00 2001
-From: Andrey Zhizhikin <andrey.z@gmail.com>
-Date: Mon, 27 Jan 2020 14:29:34 +0000
-Subject: [PATCH] team_basic_test.py: use python3 interpreter
-
-Use python3 since python2 is EOL and has been removed from several
-distributions.
-
-Upstream-Status: Pending
-
-Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
----
- scripts/team_basic_test.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/team_basic_test.py b/scripts/team_basic_test.py
-index b05be9e..ad980e8 100755
---- a/scripts/team_basic_test.py
-+++ b/scripts/team_basic_test.py
-@@ -1,4 +1,4 @@
--#! /usr/bin/env python
-+#! /usr/bin/env python3
- """
- Basic test.
- 
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest
index b5c6f4e..26f097d 100644
--- a/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest
@@ -1,3 +1,8 @@
 #!/bin/sh
 
 python3 $(dirname $0)/team_basic_test.py
+if [ $? -eq 0 ] ; then
+    echo "PASS: libteam"
+else
+    echo "FAIL: libteam"
+fi
diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.31.bb b/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.31.bb
index a131de3..e43d3e0 100644
--- a/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.31.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.31.bb
@@ -7,11 +7,12 @@
 
 DEPENDS = "libnl libdaemon jansson"
 
-SRC_URI = "git://github.com/jpirko/libteam \
+SRC_URI = "git://github.com/jpirko/libteam;branch=master;protocol=https \
            file://0001-include-sys-select.h-for-fd_set-definition.patch \
            file://0002-teamd-Re-adjust-include-header-order.patch \
            file://0001-team_basic_test.py-disable-RedHat-specific-test.patch \
-           file://0001-team_basic_test.py-use-python3-interpreter.patch \
+           file://0001-team_basic_test.py-switch-to-python3.patch \
+           file://0001-team_basic_test.py-check-the-return-value.patch \
            file://run-ptest \
            "
 SRCREV = "3ee12c6d569977cf1cd30d0da77807a07aa77158"
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 215f32a..7f20598 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,7 +4,7 @@
 LICENSE = "Zlib"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=135624eef03e1f1101b9ba9ac9b5fffd"
 
-SRC_URI = "git://github.com/leethomason/tinyxml2.git"
+SRC_URI = "git://github.com/leethomason/tinyxml2.git;branch=master;protocol=https"
 
 SRCREV = "1dee28e51f9175a31955b9791c74c430fe13dc82"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/liburing/liburing/0001-examples-ucontext-cp.c-Do-not-use-SIGSTKSZ.patch b/meta-openembedded/meta-oe/recipes-support/liburing/liburing/0001-examples-ucontext-cp.c-Do-not-use-SIGSTKSZ.patch
deleted file mode 100644
index a2ba66c..0000000
--- a/meta-openembedded/meta-oe/recipes-support/liburing/liburing/0001-examples-ucontext-cp.c-Do-not-use-SIGSTKSZ.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From a30d62dfb9ea30af58ef331fae1e6f727d0558c0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 4 May 2021 10:32:08 -0700
-Subject: [PATCH] examples/ucontext-cp.c: Do not use SIGSTKSZ
-
-glibc 2.34 has removed SIGSTKSZ therefore we replace it
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- examples/ucontext-cp.c | 6 +-----
- 1 file changed, 1 insertion(+), 5 deletions(-)
-
---- a/examples/ucontext-cp.c
-+++ b/examples/ucontext-cp.c
-@@ -3,6 +3,7 @@
-  * gcc -Wall -O2 -D_GNU_SOURCE -o ucontext-cp ucontext-cp.c -luring
-  */
- #define _POSIX_C_SOURCE 199309L
-+#include <stddef.h>
- #include <stdio.h>
- #include <fcntl.h>
- #include <string.h>
-@@ -22,13 +23,9 @@
- #define QD	64
- #define BS	1024
- 
--#ifndef SIGSTKSZ
--#define SIGSTKSZ 8192
--#endif
--
- typedef struct {
- 	struct io_uring *ring;
--	unsigned char stack_buf[SIGSTKSZ];
-+	max_align_t stack_buf[(8 * 1024 + sizeof (max_align_t) - 1) / sizeof (max_align_t)];
- 	ucontext_t ctx_main, ctx_fnew;
- } async_context;
- 
diff --git a/meta-openembedded/meta-oe/recipes-support/liburing/liburing/0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch b/meta-openembedded/meta-oe/recipes-support/liburing/liburing/0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch
new file mode 100644
index 0000000..2777a94
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/liburing/liburing/0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch
@@ -0,0 +1,59 @@
+From cb350a8989adbd65db574325d9a86d5437d800da Mon Sep 17 00:00:00 2001
+From: Guillem Jover <guillem@hadrons.org>
+Date: Mon, 13 Sep 2021 23:56:08 +0200
+Subject: [PATCH] test: Use syscall wrappers instead of using syscall(2) directly
+
+Some of these syscalls have different entry points depending on the
+architecture. Use the wrappers to avoid having to reimplement them
+portably.
+
+Fixes build failures on Debian armel and armhf builds.
+
+Upstream-Status: Backport [https://github.com/kraj/liburing/commit/cb350a8989adbd65db574325d9a86d5437d800da]
+Signed-off-by: Guillem Jover <guillem@hadrons.org>
+---
+ test/sqpoll-cancel-hang.c | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/test/sqpoll-cancel-hang.c b/test/sqpoll-cancel-hang.c
+index c9032c8..e561478 100644
+--- a/test/sqpoll-cancel-hang.c
++++ b/test/sqpoll-cancel-hang.c
+@@ -4,7 +4,6 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/mman.h>
+-#include <sys/syscall.h>
+ #include <sys/wait.h>
+ #include <time.h>
+ #include <unistd.h>
+@@ -29,8 +28,6 @@ static uint64_t current_time_ms(void)
+ 
+ #define IORING_OFF_SQES 0x10000000ULL
+ 
+-#define sys_io_uring_setup 425
+-
+ static void kill_and_wait(int pid, int* status)
+ {
+     kill(-pid, SIGKILL);
+@@ -53,7 +50,7 @@ a5)
+     void* vma2 = (void*)a3;
+     void** ring_ptr_out = (void**)a4;
+     void** sqes_ptr_out = (void**)a5;
+-    uint32_t fd_io_uring = syscall(sys_io_uring_setup, entries, setup_params);
++    uint32_t fd_io_uring = __sys_io_uring_setup(entries, setup_params);
+     uint32_t sq_ring_sz = setup_params->sq_off.array +
+ setup_params->sq_entries * sizeof(uint32_t);
+     uint32_t cq_ring_sz = setup_params->cq_off.cqes +
+@@ -135,7 +132,7 @@ void trigger_bug(void)
+ }
+ int main(void)
+ {
+-    syscall(__NR_mmap, 0x20000000ul, 0x1000000ul, 7ul, 0x32ul, -1, 0ul);
++    mmap((void *)0x20000000ul, 0x1000000ul, 7ul, 0x32ul, -1, 0ul);
+     int pid = fork();
+     if (pid < 0)
+         exit(1);
+-- 
+2.33.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/liburing/liburing/0001-tests-fix-portability-issue-when-using-__NR_mmap-sys.patch b/meta-openembedded/meta-oe/recipes-support/liburing/liburing/0001-tests-fix-portability-issue-when-using-__NR_mmap-sys.patch
deleted file mode 100644
index f2f03c1..0000000
--- a/meta-openembedded/meta-oe/recipes-support/liburing/liburing/0001-tests-fix-portability-issue-when-using-__NR_mmap-sys.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 2d3940163e14d183fddc4d8b24cc1d3865bba0b3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 5 May 2021 09:36:36 -0700
-Subject: [PATCH] tests: fix portability issue when using __NR_mmap syscall
-
-On some architectures e.g. ARM and RISCV32, __NR_mmap does not exist and
-libc will then use NR_mmap2 to implement mmap() API, therefore use
-system C library mmap() API instead of calling the syscall directly
-
-Upstream-Status: Partial Backport [https://github.com/axboe/liburing/commit/808b6c72ab753bda0c300b5683cfd31750d1d49b]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- test/double-poll-crash.c   | 6 +++---
- test/sqpoll-disable-exit.c | 6 +++---
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/test/double-poll-crash.c b/test/double-poll-crash.c
-index 1a219c7..6e08285 100644
---- a/test/double-poll-crash.c
-+++ b/test/double-poll-crash.c
-@@ -150,9 +150,9 @@ int main(int argc, char *argv[])
-   if (argc > 1)
-     return 0;
- 
--  syscall(__NR_mmap, 0x1ffff000ul, 0x1000ul, 0ul, 0x32ul, -1, 0ul);
--  syscall(__NR_mmap, 0x20000000ul, 0x1000000ul, 7ul, 0x32ul, -1, 0ul);
--  syscall(__NR_mmap, 0x21000000ul, 0x1000ul, 0ul, 0x32ul, -1, 0ul);
-+  mmap((void *) 0x1ffff000, (size_t) 0x1000, PROT_NONE, MAP_FIXED | MAP_ANONYMOUS, -1, 0);
-+  mmap((void *) 0x20000000, (size_t) 0x1000000,  PROT_READ | PROT_WRITE | PROT_EXEC, MAP_FIXED | MAP_ANONYMOUS, -1, 0);
-+  mmap((void *) 0x21000000, (size_t) 0x1000, PROT_NONE, MAP_FIXED | MAP_ANONYMOUS, -1, 0);
-   intptr_t res = 0;
-   *(uint32_t*)0x20000484 = 0;
-   *(uint32_t*)0x20000488 = 0;
-diff --git a/test/sqpoll-disable-exit.c b/test/sqpoll-disable-exit.c
-index d4e17f8..a0d00cc 100644
---- a/test/sqpoll-disable-exit.c
-+++ b/test/sqpoll-disable-exit.c
-@@ -223,9 +223,9 @@ void execute_one(void)
- }
- int main(void)
- {
--  syscall(__NR_mmap, 0x1ffff000ul, 0x1000ul, 0ul, 0x32ul, -1, 0ul);
--  syscall(__NR_mmap, 0x20000000ul, 0x1000000ul, 7ul, 0x32ul, -1, 0ul);
--  syscall(__NR_mmap, 0x21000000ul, 0x1000ul, 0ul, 0x32ul, -1, 0ul);
-+  mmap((void *) 0x1ffff000, (size_t) 0x1000, PROT_NONE, MAP_FIXED | MAP_ANONYMOUS, -1, 0);
-+  mmap((void *) 0x20000000, (size_t) 0x1000000,  PROT_READ | PROT_WRITE | PROT_EXEC, MAP_FIXED | MAP_ANONYMOUS, -1, 0);
-+  mmap((void *) 0x21000000, (size_t) 0x1000, PROT_NONE, MAP_FIXED | MAP_ANONYMOUS, -1, 0);
-   loop();
-   return 0;
- }
--- 
-2.31.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/liburing/liburing_2.0.bb b/meta-openembedded/meta-oe/recipes-support/liburing/liburing_2.0.bb
deleted file mode 100644
index 7a903e5..0000000
--- a/meta-openembedded/meta-oe/recipes-support/liburing/liburing_2.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "This is the io_uring library, liburing."
-DESCRIPTION = "liburing provides helpers to setup and teardown io_uring \
-instances, and also a simplified interface for applications that don't need \
-(or want) to deal with the full kernel side implementation."
-HOMEPAGE = "https://github.com/axboe/liburing"
-BUGTRACKER = "https://github.com/axboe/liburing/issues"
-SECTION = "libs"
-
-LICENSE = "LGPLv2.1 | MIT"
-LIC_FILES_CHKSUM = "file://README;beginline=41;endline=44;md5=d51b5805e2a675685e6a66ca50904cf9"
-
-SRC_URI = "git://github.com/axboe/liburing.git;branch=master;protocol=https \
-           file://0001-examples-ucontext-cp.c-Do-not-use-SIGSTKSZ.patch \
-           file://0001-tests-fix-portability-issue-when-using-__NR_mmap-sys.patch \
-           "
-SRC_URI:append:libc-musl:riscv64 = " file://0001-do-not-build-examples.patch "
-SRC_URI:append:libc-musl:riscv32 = " file://0001-do-not-build-examples.patch "
-
-SRCREV = "b013dfd5a5f65116373d5e0f0bdfb73db9d8816e"
-S = "${WORKDIR}/git"
-
-DEPENDS:append:libc-musl = " libucontext"
-XCFLAGS = "-pthread"
-XCFLAGS:append:libc-musl = " -lucontext"
-
-EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'LDFLAGS=${LDFLAGS}' 'XCFLAGS=${XCFLAGS}' 'BUILDDIR=${S}'"
-do_configure() {
-    ${S}/configure --prefix=${prefix}
-}
-do_install () {
-    oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir}
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/liburing/liburing_2.1.bb b/meta-openembedded/meta-oe/recipes-support/liburing/liburing_2.1.bb
new file mode 100644
index 0000000..f519bf2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/liburing/liburing_2.1.bb
@@ -0,0 +1,31 @@
+SUMMARY = "This is the io_uring library, liburing."
+DESCRIPTION = "liburing provides helpers to setup and teardown io_uring \
+instances, and also a simplified interface for applications that don't need \
+(or want) to deal with the full kernel side implementation."
+HOMEPAGE = "https://github.com/axboe/liburing"
+BUGTRACKER = "https://github.com/axboe/liburing/issues"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1 | MIT"
+LIC_FILES_CHKSUM = "file://README;beginline=41;endline=44;md5=d51b5805e2a675685e6a66ca50904cf9"
+
+SRC_URI = "git://github.com/axboe/liburing.git;branch=master;protocol=https \
+           file://0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch \
+           "
+SRC_URI:append:libc-musl:riscv64 = " file://0001-do-not-build-examples.patch "
+SRC_URI:append:libc-musl:riscv32 = " file://0001-do-not-build-examples.patch "
+SRCREV = "41a61c97c2e3df4475c93fdf5026d575ce3f1377"
+
+S = "${WORKDIR}/git"
+
+DEPENDS:append:libc-musl = " libucontext"
+XCFLAGS = "-pthread"
+XCFLAGS:append:libc-musl = " -lucontext"
+
+EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'LDFLAGS=${LDFLAGS}' 'XCFLAGS=${XCFLAGS}' 'BUILDDIR=${S}'"
+do_configure() {
+    ${S}/configure --prefix=${prefix}
+}
+do_install () {
+    oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat_0.1.7.bb b/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat_0.1.7.bb
index 8c33373..94d833a 100644
--- a/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat_0.1.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat_0.1.7.bb
@@ -19,7 +19,7 @@
 PE = "1"
 
 SRC_URI = " \
-    git://github.com/libusb/libusb-compat-0.1.git;protocol=https \
+    git://github.com/libusb/libusb-compat-0.1.git;protocol=https;branch=master \
     file://0001-usb.h-Include-sys-types.h.patch \
 "
 SRCREV = "4a27760ec5954ec8605e052a3207afbe0979eeef"
diff --git a/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb b/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb
index 94399a0..3330e03 100644
--- a/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb
@@ -8,7 +8,7 @@
 
 PV = "0.1.0"
 SRCREV = "a826d136e0e8fa53815f1ba05893e6dd74208c15"
-SRC_URI = "git://github.com/libusbg/libusbg.git \
+SRC_URI = "git://github.com/libusbg/libusbg.git;branch=master;protocol=https \
            file://0001-Fix-out-of-tree-builds.patch \
           "
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
index dc0d5c0..d4bb9bf 100644
--- a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
@@ -11,7 +11,7 @@
 SRCREV = "45c14ef4d5d7ced0fbf984208de44ced6d5ed898"
 SRCBRANCH = "master"
 SRC_URI = " \
-    git://github.com/libusbgx/libusbgx.git;branch=${SRCBRANCH} \
+    git://github.com/libusbgx/libusbgx.git;branch=${SRCBRANCH};protocol=https \
     file://gadget-start \
     file://usbgx.initd \
     file://usbgx.service \
diff --git a/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb b/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb
index 68a8ad3..b178a92 100644
--- a/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb
@@ -10,7 +10,7 @@
 SRCREV = "3ef74fff310f09e2601e241b9f042cd39d591018"
 PV = "1.1.6-alt2+git${SRCPV}"
 
-SRC_URI = "git://git.altlinux.org/people/ldv/packages/libutempter.git \
+SRC_URI = "git://git.altlinux.org/people/ldv/packages/libutempter.git;branch=master \
            file://0001-Fix-macro-error.patch \
            file://0002-Proper-macro-path-generation.patch \
            file://libutempter-remove-glibc-assumption.patch \
diff --git a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
index 7d7c67b..108d652 100644
--- a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
@@ -6,7 +6,7 @@
 
 PV = "4.1+git${SRCPV}"
 
-SRC_URI = "git://github.com/Datera/lio-utils.git \
+SRC_URI = "git://github.com/Datera/lio-utils.git;branch=master;protocol=https \
            file://0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch \
            "
 SRCREV = "0ac9091c1ff7a52d5435a4f4449e82637142e06e"
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
index 43356c9..cccc041 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
@@ -21,6 +21,8 @@
 SRCREV = "3e8bd8d1bd70691f09a170785836aeb4f83154e6"
 S = "${WORKDIR}/git"
 
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\_\d+)+)"
+
 inherit autotools-brokensep pkgconfig systemd
 
 LVM2_PACKAGECONFIG = "dmeventd"
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.11.bb b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.11.bb
index 3988d54..a729324 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.11.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.11.bb
@@ -17,13 +17,16 @@
     install -d ${D}${sysconfdir}/lvm
     install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf
     sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf
-    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-        oe_runmake 'DESTDIR=${D}' install install_systemd_units
-        sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service
-    else
-        oe_runmake 'DESTDIR=${D}' install install_initscripts
-        mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d
-        rm -rf ${D}${sysconfdir}/rc.d
+    # We don't want init scripts/systemd units for native SDK utilities
+    if [ "${PN}" != "nativesdk-lvm2" ]; then
+        if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+            oe_runmake 'DESTDIR=${D}' install install_systemd_units
+            sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service
+        else
+            oe_runmake 'DESTDIR=${D}' install install_initscripts
+            mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d
+            rm -rf ${D}${sysconfdir}/rc.d
+        fi
     fi
 }
 
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb
index cc33cba..8241bd2 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb
@@ -4,7 +4,7 @@
 validation of the kernel machine check handler."
 SECTION = "System Environment/Base"
 
-SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git"
+SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git;branch=master"
 
 SRCREV = "4cbe46321b4a81365ff3aafafe63967264dbfec5"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb
index 328f7c9..cfceaa1 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb
@@ -10,7 +10,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
 
-SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git;protocol=git \
+SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git;protocol=git;branch=master \
            file://makefile-remove-ldflags.patch \
            file://0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch \
           "
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_175.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_175.bb
index b777094..c66dd0f 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_175.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_175.bb
@@ -5,7 +5,7 @@
 HOMEPAGE = "http://mcelog.org/"
 SECTION = "System Environment/Base"
 
-SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http; \
+SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http;;branch=master \
     file://0001-test-avoid-the-pfa-test-hang.patch \
     file://run-ptest \
 "
diff --git a/meta-openembedded/meta-oe/recipes-support/mg/mg_20210609.bb b/meta-openembedded/meta-oe/recipes-support/mg/mg_20210609.bb
index 797e91e..5deb5c6 100644
--- a/meta-openembedded/meta-oe/recipes-support/mg/mg_20210609.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mg/mg_20210609.bb
@@ -6,7 +6,7 @@
 SECTION = "console/editors"
 
 SRCREV = "688f49cd67ab30dfa6482c74815e117cbf7af63a"
-SRC_URI = "git://github.com/hboetes/mg \
+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/monit/monit_5.29.0.bb b/meta-openembedded/meta-oe/recipes-support/monit/monit_5.29.0.bb
deleted file mode 100644
index 9528fe7..0000000
--- a/meta-openembedded/meta-oe/recipes-support/monit/monit_5.29.0.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-DESCRIPTION = "Monit is a free open source utility for managing and monitoring, \
-processes, programs, files, directories and filesystems on a UNIX system. \
-Monit conducts automatic maintenance and repair and can execute meaningful \
-causal actions in error situations."
-
-HOMEPAGE = "http://mmonit.com/monit/"
-
-LICENSE = "AGPL-3.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ea116a7defaf0e93b3bb73b2a34a3f51 \
-                    file://libmonit/COPYING;md5=2405f1c59ed1bf3714cebdb40162ce92"
-
-SRC_URI = " \
-	https://mmonit.com/monit/dist/monit-${PV}.tar.gz \
-	file://monit \
-	file://monitrc \
-"
-
-SRC_URI[sha256sum] = "f665e6dd1f26a74b5682899a877934167de2b2582e048652ecf036318477885f"
-
-DEPENDS = "zlib bison-native libnsl2 flex-native openssl virtual/crypt"
-
-inherit autotools-brokensep systemd update-rc.d
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
-PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
-
-EXTRA_OECONF = "\
-    libmonit_cv_setjmp_available=no \
-    libmonit_cv_vsnprintf_c99_conformant=no \
-    --with-ssl-lib-dir=${STAGING_LIBDIR} \
-    --with-ssl-incl-dir=${STAGING_INCDIR} \
-"
-
-SYSTEMD_SERVICE:${PN} = "monit.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME:${PN} = "monit"
-INITSCRIPT_PARAMS:${PN} = "defaults 89"
-
-do_install:append() {
-
-    # Configuration file
-    install -Dm 0600 ${WORKDIR}/monitrc ${D}${sysconfdir}/monitrc
-
-    # SystemD
-    install -Dm 0644 ${S}/system/startup/monit.service.in ${D}${systemd_system_unitdir}/monit.service
-    sed -i -e 's,@prefix@,${exec_prefix},g' ${D}${systemd_unitdir}/system/monit.service
-
-    # SysV
-    install -Dm 0755 ${WORKDIR}/monit ${D}${sysconfdir}/init.d/monit
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/monit/monit_5.30.0.bb b/meta-openembedded/meta-oe/recipes-support/monit/monit_5.30.0.bb
new file mode 100644
index 0000000..1496243
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/monit/monit_5.30.0.bb
@@ -0,0 +1,52 @@
+DESCRIPTION = "Monit is a free open source utility for managing and monitoring, \
+processes, programs, files, directories and filesystems on a UNIX system. \
+Monit conducts automatic maintenance and repair and can execute meaningful \
+causal actions in error situations."
+
+HOMEPAGE = "http://mmonit.com/monit/"
+
+LICENSE = "AGPL-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ea116a7defaf0e93b3bb73b2a34a3f51 \
+                    file://libmonit/COPYING;md5=2405f1c59ed1bf3714cebdb40162ce92"
+
+SRC_URI = " \
+	https://mmonit.com/monit/dist/monit-${PV}.tar.gz \
+	file://monit \
+	file://monitrc \
+"
+
+SRC_URI[sha256sum] = "e85649dfa8586f4fcdd34a0295c55ddd69b0eda6cfbdac47105a2673d10b1008"
+
+DEPENDS = "zlib bison-native libnsl2 flex-native openssl virtual/crypt"
+
+inherit autotools-brokensep systemd update-rc.d
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
+
+EXTRA_OECONF = "\
+    libmonit_cv_setjmp_available=no \
+    libmonit_cv_vsnprintf_c99_conformant=no \
+    --with-ssl-lib-dir=${STAGING_LIBDIR} \
+    --with-ssl-incl-dir=${STAGING_INCDIR} \
+"
+
+SYSTEMD_SERVICE:${PN} = "monit.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${PN} = "monit"
+INITSCRIPT_PARAMS:${PN} = "defaults 89"
+
+do_install:append() {
+
+    # Configuration file
+    install -Dm 0600 ${WORKDIR}/monitrc ${D}${sysconfdir}/monitrc
+
+    # SystemD
+    install -Dm 0644 ${S}/system/startup/monit.service.in ${D}${systemd_system_unitdir}/monit.service
+    sed -i -e 's,@prefix@,${exec_prefix},g' ${D}${systemd_unitdir}/system/monit.service
+
+    # SysV
+    install -Dm 0755 ${WORKDIR}/monit ${D}${sysconfdir}/init.d/monit
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.4.bb b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.4.bb
index d4d6c6b..69fd9df 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.4.bb
@@ -29,7 +29,7 @@
 
 LICENSE = "GPLv2"
 
-SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \
+SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http;branch=master \
            file://multipathd.oe \
            file://multipath.conf.example \
            file://0021-RH-fixup-udev-rules-for-redhat.patch \
diff --git a/meta-openembedded/meta-oe/recipes-support/nano/nano_5.9.bb b/meta-openembedded/meta-oe/recipes-support/nano/nano_5.9.bb
deleted file mode 100644
index 85c81fb..0000000
--- a/meta-openembedded/meta-oe/recipes-support/nano/nano_5.9.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Small and friendly console text editor"
-DESCRIPTION = "GNU nano (Nano's ANOther editor, or \
-Not ANOther editor) is an enhanced clone of the \
-Pico text editor."
-HOMEPAGE = "http://www.nano-editor.org/"
-SECTION = "console/utils"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
-
-DEPENDS = "ncurses file"
-RDEPENDS:${PN} = "ncurses-terminfo-base"
-
-PV_MAJOR = "${@d.getVar('PV').split('.')[0]}"
-
-SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
-SRC_URI[sha256sum] = "757db8cda4bb2873599e47783af463e3b547a627b0cabb30ea7bf71fb4c24937"
-
-UPSTREAM_CHECK_URI = "https://ftp.gnu.org/gnu/nano"
-
-inherit autotools gettext pkgconfig
-
-PACKAGECONFIG[tiny] = "--enable-tiny,"
diff --git a/meta-openembedded/meta-oe/recipes-support/nano/nano_6.0.bb b/meta-openembedded/meta-oe/recipes-support/nano/nano_6.0.bb
new file mode 100644
index 0000000..7255864
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nano/nano_6.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Small and friendly console text editor"
+DESCRIPTION = "GNU nano (Nano's ANOther editor, or \
+Not ANOther editor) is an enhanced clone of the \
+Pico text editor."
+HOMEPAGE = "http://www.nano-editor.org/"
+SECTION = "console/utils"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
+
+DEPENDS = "ncurses file"
+RDEPENDS:${PN} = "ncurses-terminfo-base"
+
+PV_MAJOR = "${@d.getVar('PV').split('.')[0]}"
+
+SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
+SRC_URI[sha256sum] = "93ac8cb68b4ad10e0aaeb80a2dd15c5bb89eb665a4844f7ad01c67efcb169ea2"
+
+UPSTREAM_CHECK_URI = "https://ftp.gnu.org/gnu/nano"
+
+inherit autotools gettext pkgconfig
+
+PACKAGECONFIG[tiny] = "--enable-tiny,"
diff --git a/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb b/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
index 295628c..0e16b15 100644
--- a/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e7fe20c9be97be5579e3ab5d92d3a218"
 SECTION = "libs"
 
-SRC_URI = "git://github.com/projectNe10/Ne10.git \
+SRC_URI = "git://github.com/projectNe10/Ne10.git;branch=master;protocol=https \
            file://0001-CMakeLists.txt-Remove-mthumb-interwork.patch \
            file://0001-Dont-specify-march-explicitly.patch \
            "
diff --git a/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-Fix-a-lot-of-Werror-format-security-errors-with-mvpr.patch b/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-Fix-a-lot-of-Werror-format-security-errors-with-mvpr.patch
new file mode 100644
index 0000000..af79efe
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-Fix-a-lot-of-Werror-format-security-errors-with-mvpr.patch
@@ -0,0 +1,175 @@
+From eba852316735daec27d4ff11483018ca596312d0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Oct 2021 02:11:49 -0700
+Subject: [PATCH] Fix a lot of -Werror=format-security errors with
+ mvprintw/mvwprintw
+
+In all these places a non-constant is used as a format string which
+compiler complains about. Fix by using "%s" as format.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lmon16m.c | 86 +++++++++++++++++++++++++++----------------------------
+ 1 file changed, 43 insertions(+), 43 deletions(-)
+
+diff --git a/lmon16m.c b/lmon16m.c
+index 7e46642..1d53367 100644
+--- a/lmon16m.c
++++ b/lmon16m.c
+@@ -5475,20 +5475,20 @@ int main(int argc, char **argv)
+ 		    /*
+ 		     *mvwprintw(padsmp,2, 0, "CPU  User%%  Sys%% Wait%% Idle|0          |25         |50          |75       100|");
+ 		     */
+-		    mvwprintw(padsmp, 1, 0, cpu_line);
+-		    mvwprintw(padsmp, 2, 0, "CPU  ");
++		    mvwprintw(padsmp, 1, 0, "%s", cpu_line);
++		    mvwprintw(padsmp, 2, 0, "%s", "CPU  ");
+ 		    COLOUR wattrset(padsmp, COLOR_PAIR(2));	/* Green */
+-		    mvwprintw(padsmp, 2, 4, "User%%");
++		    mvwprintw(padsmp, 2, 4, "%s", "User%%");
+ 		    COLOUR wattrset(padsmp, COLOR_PAIR(1));	/* Red */
+-		    mvwprintw(padsmp, 2, 9, "  Sys%%");
++		    mvwprintw(padsmp, 2, 9, "%s", "  Sys%%");
+ 		    COLOUR wattrset(padsmp, COLOR_PAIR(4));	/* Blue */
+-		    mvwprintw(padsmp, 2, 15, " Wait%%");
++		    mvwprintw(padsmp, 2, 15, "%s", " Wait%%");
+ 		    if (p->cpu_total.steal != q->cpu_total.steal) {
+ 			COLOUR wattrset(padsmp, COLOR_PAIR(5));
+-			mvwprintw(padsmp, 2, 22, "Steal");
++			mvwprintw(padsmp, 2, 22, "%s", "Steal");
+ 		    } else {
+ 			COLOUR wattrset(padsmp, COLOR_PAIR(0));
+-			mvwprintw(padsmp, 2, 22, " Idle");
++			mvwprintw(padsmp, 2, 22, "%s", " Idle");
+ 		    }
+ 		    COLOUR wattrset(padsmp, COLOR_PAIR(0));
+ 		    mvwprintw(padsmp, 2, 27,
+@@ -5579,8 +5579,8 @@ int main(int argc, char **argv)
+ 			/* lparcfg gathered above */
+ 			if (lparcfg.smt_mode > 1
+ 			    && i % lparcfg.smt_mode == 0) {
+-			    mvwprintw(padsmp, 3 + i, 27, "*");
+-			    mvwprintw(padsmp, 3 + i, 77, "*");
++			    mvwprintw(padsmp, 3 + i, 27, "%s", "*");
++			    mvwprintw(padsmp, 3 + i, 77, "%s", "*");
+ 			}
+ #endif
+ 
+@@ -5597,7 +5597,7 @@ int main(int argc, char **argv)
+ 				    100.0);
+ 		    }
+ 		}		/* for (i = 0; i < cpus; i++) */
+-		CURSE mvwprintw(padsmp, i + 3, 0, cpu_line);
++		CURSE mvwprintw(padsmp, i + 3, 0, "%s", cpu_line);
+ #ifdef POWER
+ 		/* proc_lparcfg called above in previous ifdef
+ 		 */
+@@ -5673,7 +5673,7 @@ int main(int argc, char **argv)
+ 				 100.0);
+ 		    }
+ 
+-		    CURSE mvwprintw(padsmp, i + 5, 0, cpu_line);
++		    CURSE mvwprintw(padsmp, i + 5, 0, "%s", cpu_line);
+ 		    i = i + 2;
+ 		}		/* if (cpus > 1 || !cursed) */
+ 		smp_first_time = 0;
+@@ -5704,16 +5704,16 @@ int main(int argc, char **argv)
+ 		    char *wide10 =
+ 			" 10%%-|                                                                |-10%%";
+ 
+-		    mvwprintw(padwide, 1, 0, wide1);
+-		    mvwprintw(padwide, 2, 0, wide2);
+-		    mvwprintw(padwide, 3, 0, wide3);
+-		    mvwprintw(padwide, 4, 0, wide4);
+-		    mvwprintw(padwide, 5, 0, wide5);
+-		    mvwprintw(padwide, 6, 0, wide6);
+-		    mvwprintw(padwide, 7, 0, wide7);
+-		    mvwprintw(padwide, 8, 0, wide8);
+-		    mvwprintw(padwide, 9, 0, wide9);
+-		    mvwprintw(padwide, 10, 0, wide10);
++		    mvwprintw(padwide, 1, 0, "%s", wide1);
++		    mvwprintw(padwide, 2, 0, "%s", wide2);
++		    mvwprintw(padwide, 3, 0, "%s", wide3);
++		    mvwprintw(padwide, 4, 0, "%s", wide4);
++		    mvwprintw(padwide, 5, 0, "%s", wide5);
++		    mvwprintw(padwide, 6, 0, "%s", wide6);
++		    mvwprintw(padwide, 7, 0, "%s", wide7);
++		    mvwprintw(padwide, 8, 0, "%s", wide8);
++		    mvwprintw(padwide, 9, 0, "%s", wide9);
++		    mvwprintw(padwide, 10, 0, "%s", wide10);
+ 		    mvwprintw(padwide, 11, 0,
+ 			      " CPU +1--------+10-------+20-------+30-------+40-------+50-------+60--+--0%%");
+ 		    mvwprintw(padwide, 1, 6, "CPU(s)=%d", cpus);
+@@ -5755,16 +5755,16 @@ int main(int argc, char **argv)
+ 			rows = 12;
+ 		    }
+ 		    if (cpus > 63) {
+-			mvwprintw(padwide, rows + 0, 0, wide1);
+-			mvwprintw(padwide, rows + 1, 0, wide2);
+-			mvwprintw(padwide, rows + 2, 0, wide3);
+-			mvwprintw(padwide, rows + 3, 0, wide4);
+-			mvwprintw(padwide, rows + 4, 0, wide5);
+-			mvwprintw(padwide, rows + 5, 0, wide6);
+-			mvwprintw(padwide, rows + 6, 0, wide7);
+-			mvwprintw(padwide, rows + 7, 0, wide8);
+-			mvwprintw(padwide, rows + 8, 0, wide9);
+-			mvwprintw(padwide, rows + 9, 0, wide10);
++			mvwprintw(padwide, rows + 0, 0, "%s", wide1);
++			mvwprintw(padwide, rows + 1, 0, "%s", wide2);
++			mvwprintw(padwide, rows + 2, 0, "%s", wide3);
++			mvwprintw(padwide, rows + 3, 0, "%s", wide4);
++			mvwprintw(padwide, rows + 4, 0, "%s", wide5);
++			mvwprintw(padwide, rows + 5, 0, "%s", wide6);
++			mvwprintw(padwide, rows + 6, 0, "%s", wide7);
++			mvwprintw(padwide, rows + 7, 0, "%s", wide8);
++			mvwprintw(padwide, rows + 8, 0, "%s", wide9);
++			mvwprintw(padwide, rows + 9, 0, "%s", wide10);
+ 			mvwprintw(padwide, rows + 10, 0,
+ 				  " CPU +65---+70-------+80-------+90-------+100------+110------+120-----+--0%%");
+ 			if (wide_first_time) {
+@@ -5813,16 +5813,16 @@ int main(int argc, char **argv)
+ 			rows = 23;
+ 		    }
+ 		    if (cpus > 127) {
+-			mvwprintw(padwide, rows + 0, 0, wide1);
+-			mvwprintw(padwide, rows + 1, 0, wide2);
+-			mvwprintw(padwide, rows + 2, 0, wide3);
+-			mvwprintw(padwide, rows + 3, 0, wide4);
+-			mvwprintw(padwide, rows + 4, 0, wide5);
+-			mvwprintw(padwide, rows + 5, 0, wide6);
+-			mvwprintw(padwide, rows + 6, 0, wide7);
+-			mvwprintw(padwide, rows + 7, 0, wide8);
+-			mvwprintw(padwide, rows + 8, 0, wide9);
+-			mvwprintw(padwide, rows + 9, 0, wide10);
++			mvwprintw(padwide, rows + 0, 0, "%s", wide1);
++			mvwprintw(padwide, rows + 1, 0, "%s", wide2);
++			mvwprintw(padwide, rows + 2, 0, "%s", wide3);
++			mvwprintw(padwide, rows + 3, 0, "%s", wide4);
++			mvwprintw(padwide, rows + 4, 0, "%s", wide5);
++			mvwprintw(padwide, rows + 5, 0, "%s", wide6);
++			mvwprintw(padwide, rows + 6, 0, "%s", wide7);
++			mvwprintw(padwide, rows + 7, 0, "%s", wide8);
++			mvwprintw(padwide, rows + 8, 0, "%s", wide9);
++			mvwprintw(padwide, rows + 9, 0, "%s", wide10);
+ 			mvwprintw(padwide, rows + 10, 0,
+ 				  " CPU +129--------+140------+150------+160------+170------+180------+190--0%%");
+ 			if (wide_first_time) {
+@@ -8274,7 +8274,7 @@ I/F Name Recv=KB/s Trans=KB/s packin packout insize outsize Peak->Recv Trans
+ 			    formatstring =
+ 				"  PID    %%CPU  Size   Res   Res   Res   Res Shared   Faults  Command";
+ 		    }
+-		    CURSE mvwprintw(padtop, 1, y, formatstring);
++		    CURSE mvwprintw(padtop, 1, y, "%s", formatstring);
+ 
+ 		    if (show_args == ARGS_ONLY) {
+ 			formatstring =
+@@ -8294,7 +8294,7 @@ I/F Name Recv=KB/s Trans=KB/s packin packout insize outsize Peak->Recv Trans
+ 			    formatstring =
+ 				"         Used    KB   Set  Text  Data   Lib    KB  Min  Maj ";
+ 		    }
+-		    CURSE mvwprintw(padtop, 2, 1, formatstring);
++		    CURSE mvwprintw(padtop, 2, 1, "%s", formatstring);
+ 		    for (j = 0; j < max_sorted; j++) {
+ 			i = topper[j].index;
+ 			if (!show_all) {
diff --git a/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch b/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch
index e8debe5..5a8b046 100644
--- a/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch
+++ b/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch
@@ -9,13 +9,13 @@
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
- lmon16g.c | 4 ++--
+ lmon16m.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/lmon16g.c b/lmon16g.c
+diff --git a/lmon16m.c b/lmon16m.c
 index cb27e09..d2a11c5 100644
---- a/lmon16g.c
-+++ b/lmon16g.c
+--- a/lmon16m.c
++++ b/lmon16m.c
 @@ -63,7 +63,7 @@ static char *SccsId = "nmon " VERSION;
  #include <fcntl.h>
  #include <math.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16g.bb b/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16g.bb
deleted file mode 100644
index 32b60fe..0000000
--- a/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16g.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "nmon performance monitor"
-HOMEPAGE = "http://nmon.sf.net"
-SECTION = "console/utils"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a"
-DEPENDS = "ncurses"
-DEPENDS:append:libc-musl = " bsd-headers"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon${PV}.c;name=lmon \
-           ${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc \
-           file://0001-lmon16g.c-Adjust-system-headers.patch \
-"
-SRC_URI[lmon.md5sum] = "246ccfc74d5af55d992601fc4d3d4a72"
-SRC_URI[lmon.sha256sum] = "da82dd693b503b062854dfe7dbb5d36b347872ab44a4aa05b97e9d577747f688"
-SRC_URI[doc.md5sum] = "dbb13658cf55d687c4f2ff771a696d4a"
-SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278"
-
-CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM"
-LDFLAGS += "-ltinfo -lncursesw -lm"
-ASNEEDED:pn-nmon = ""
-
-S = "${WORKDIR}"
-
-do_compile() {
-    ${CC} ${CFLAGS} ${LDFLAGS} lmon${PV}.c -o nmon
-}
-
-do_install() {
-    install -d ${D}${bindir}
-    install -m 0755 nmon ${D}${bindir}
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16m.bb b/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16m.bb
new file mode 100644
index 0000000..723da85
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16m.bb
@@ -0,0 +1,30 @@
+SUMMARY = "nmon performance monitor"
+HOMEPAGE = "http://nmon.sf.net"
+SECTION = "console/utils"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a"
+DEPENDS = "ncurses"
+DEPENDS:append:libc-musl = " bsd-headers"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon${PV}.c;name=lmon \
+           ${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc \
+           file://0001-lmon16g.c-Adjust-system-headers.patch \
+           file://0001-Fix-a-lot-of-Werror-format-security-errors-with-mvpr.patch \
+           "
+SRC_URI[lmon.sha256sum] = "2bed4d45fdfdf1d1387ec91e139c04975d5f838e3e0d53c0fe2d803a707e5fc1"
+SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278"
+
+CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM"
+LDFLAGS += "-ltinfo -lncursesw -lm"
+ASNEEDED:pn-nmon = ""
+
+S = "${WORKDIR}"
+
+do_compile() {
+    ${CC} ${CFLAGS} ${LDFLAGS} lmon${PV}.c -o nmon
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 nmon ${D}${bindir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
index 65e1500..72ee1ee 100644
--- a/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
@@ -1,4 +1,4 @@
-From 8b67c22b057e158f61c9fdd5b01f37195c6f5ca4 Mon Sep 17 00:00:00 2001
+From 9937e89c22eb2f2db9a936e7bc4442857b4192f5 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Wed, 18 Dec 2019 12:29:50 +0100
 Subject: [PATCH] freebl: add a configure option to disable ARM HW crypto
@@ -15,19 +15,19 @@
  2 files changed, 5 insertions(+)
 
 diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile
-index fe8c526..922f67c 100644
+index b38889f..4616aac 100644
 --- a/nss/lib/freebl/Makefile
 +++ b/nss/lib/freebl/Makefile
-@@ -125,6 +125,8 @@ else
-         DEFINES += -DNSS_X86
- endif
+@@ -139,6 +139,8 @@ endif
+         endif
+     endif
  endif
 +ifdef NSS_USE_ARM_HW_CRYPTO
 +    DEFINES += -DNSS_USE_ARM_HW_CRYPTO
  ifeq ($(CPU_ARCH),aarch64)
      ifdef CC_IS_CLANG
          DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2
-@@ -166,6 +168,7 @@ endif
+@@ -180,6 +182,7 @@ endif
          endif
      endif
  endif
@@ -36,7 +36,7 @@
  ifeq ($(OS_TARGET),OSF1)
      DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD
 diff --git a/nss/lib/freebl/gcm.c b/nss/lib/freebl/gcm.c
-index c2cc18d..b77f573 100644
+index ac461b4..04cb180 100644
 --- a/nss/lib/freebl/gcm.c
 +++ b/nss/lib/freebl/gcm.c
 @@ -18,6 +18,7 @@
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
index 3d90e2d..eb6174a 100644
--- a/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
@@ -1,4 +1,4 @@
-From 8cea16e7550ae14494fbb3a8fe9f5452e6bd1407 Mon Sep 17 00:00:00 2001
+From 919fc5d674fae99fe21ba1351d98b75e466f425f Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Wed, 22 Feb 2017 11:36:11 +0200
 Subject: [PATCH] nss: fix support cross compiling
@@ -15,7 +15,7 @@
  2 files changed, 7 insertions(+), 1 deletion(-)
 
 diff --git a/nss/coreconf/arch.mk b/nss/coreconf/arch.mk
-index 790372d..2563134 100644
+index 2012d18..78fca62 100644
 --- a/nss/coreconf/arch.mk
 +++ b/nss/coreconf/arch.mk
 @@ -30,7 +30,7 @@ OS_TEST := $(shell uname -m)
@@ -28,7 +28,7 @@
  
  #
 diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile
-index 52d827c..f99f769 100644
+index 0b8c6f4..b38889f 100644
 --- a/nss/lib/freebl/Makefile
 +++ b/nss/lib/freebl/Makefile
 @@ -36,6 +36,12 @@ ifdef USE_64
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
index e87dc9f..4c9bea3 100644
--- a/meta-openembedded/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
@@ -1,4 +1,4 @@
-From c5b2c6327f3692ed07bf8d212123e0bf08485722 Mon Sep 17 00:00:00 2001
+From f613c9a9107435a40d91329f33f12cfb16927f07 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 7 Mar 2020 08:34:02 -0800
 Subject: [PATCH] nss,nspr: Add recipes
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
index 6f02dbc..735b06b 100644
--- a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
@@ -1,4 +1,4 @@
-From 028ec9c7e9f7a6f083eec987f3ad7e7623398d9d Mon Sep 17 00:00:00 2001
+From 2ce67b1f4b1f582d556ae058da10698bbaa0edc1 Mon Sep 17 00:00:00 2001
 From: Ovidiu Panait <ovidiu.panait@windriver.com>
 Date: Mon, 13 Jul 2020 12:12:31 +0300
 Subject: [PATCH] nss: fix incorrect shebang of perl
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
index 224a5d2..a1897f8 100644
--- a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
@@ -1,4 +1,4 @@
-From 2701905e689cf7c1ee7ca2d116f20b5bbc146431 Mon Sep 17 00:00:00 2001
+From f9b2b1c738576a17460aebd005f511f427aa1974 Mon Sep 17 00:00:00 2001
 From: Wenzong Fan <wenzong.fan@windriver.com>
 Date: Sat, 7 Mar 2020 08:34:02 -0800
 Subject: [PATCH] Fix nss multilib build on openSUSE 11.x 32bit
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
index 7dbc1a3..8c715cc 100644
--- a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
@@ -1,4 +1,4 @@
-From dc51214895bcd63fc8eb8d1fe7941cd3e5500620 Mon Sep 17 00:00:00 2001
+From 73edfbdf33fe4e41724e7e947033d8caeec8f3d0 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Sat, 7 Mar 2020 08:34:02 -0800
 Subject: [PATCH] nss:no rpath for cross compiling
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch
index 5505ae3..589b4d5 100644
--- a/meta-openembedded/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch
@@ -1,4 +1,4 @@
-From a550bdf458f11dff46ebddbac94cf48c27d3471e Mon Sep 17 00:00:00 2001
+From cbd367160338847b28fc801a12c74f1c8b5b03ee Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 7 Mar 2020 08:34:02 -0800
 Subject: [PATCH] nss does not build on mips with clang because wrong types are
@@ -16,7 +16,7 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/nss/lib/freebl/pqg.c b/nss/lib/freebl/pqg.c
-index 626b2fb..052ad36 100644
+index 1b03278..ad895b7 100644
 --- a/nss/lib/freebl/pqg.c
 +++ b/nss/lib/freebl/pqg.c
 @@ -326,8 +326,8 @@ generate_h_candidate(SECItem *hit, mp_int *H)
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss_3.64.bb b/meta-openembedded/meta-oe/recipes-support/nss/nss_3.64.bb
deleted file mode 100644
index c935c6a..0000000
--- a/meta-openembedded/meta-oe/recipes-support/nss/nss_3.64.bb
+++ /dev/null
@@ -1,284 +0,0 @@
-SUMMARY = "Mozilla's SSL and TLS implementation"
-DESCRIPTION = "Network Security Services (NSS) is a set of libraries \
-designed to support cross-platform development of \
-security-enabled client and server applications. \
-Applications built with NSS can support SSL v2 and v3, \
-TLS, PKCS 5, PKCS 7, PKCS 11, PKCS 12, S/MIME, X.509 \
-v3 certificates, and other security standards."
-HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/"
-SECTION = "libs"
-
-DEPENDS = "sqlite3 nspr zlib nss-native"
-DEPENDS:class-native = "sqlite3-native nspr-native zlib-native"
-
-LICENSE = "(MPL-2.0 & MIT) | (MPL-2.0 & GPL-2.0+ & MIT) | (MPL-2.0 & LGPL-2.1+ & MIT)"
-
-LIC_FILES_CHKSUM = "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \
-                    file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \
-                    file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132 \
-                    file://nss/lib/freebl/verified/Hacl_Poly1305_256.c;beginline=1;endline=22;md5=d4096c1e4421ee56e9e0f441a8161f78"
-
-VERSION_DIR = "${@d.getVar('BP').upper().replace('-', '_').replace('.', '_') + '_RTM'}"
-
-SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz \
-           file://nss.pc.in \
-           file://0001-nss-fix-support-cross-compiling.patch \
-           file://nss-no-rpath-for-cross-compiling.patch \
-           file://nss-fix-incorrect-shebang-of-perl.patch \
-           file://disable-Wvarargs-with-clang.patch \
-           file://pqg.c-ULL_addend.patch \
-           file://blank-cert9.db \
-           file://blank-key4.db \
-           file://system-pkcs11.txt \
-           file://nss-fix-nsinstall-build.patch \
-           file://0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch \
-           "
-SRC_URI[sha256sum] = "d3175427172e9c3a6f1ebc74452cb791590f28191c6a1a443dbc0d87c9df1126"
-
-UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases"
-UPSTREAM_CHECK_REGEX = "NSS_(?P<pver>.+)_release_notes"
-
-inherit siteinfo
-
-TD = "${S}/tentative-dist"
-TDS = "${S}/tentative-dist-staging"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-CFLAGS:append:class-native = " -D_XOPEN_SOURCE "
-
-do_configure:prepend:libc-musl () {
-    sed -i -e '/-DHAVE_SYS_CDEFS_H/d' ${S}/nss/lib/dbm/config/config.mk
-}
-
-do_configure:prepend:powerpc64le:toolchain-clang () {
-    sed -i -e 's/\-std=c99/\-std=gnu99/g' ${S}/nss/coreconf/command.mk
-}
-
-do_configure:prepend:powerpc64:toolchain-clang () {
-    sed -i -e 's/\-std=c99/\-std=gnu99/g' ${S}/nss/coreconf/command.mk
-}
-
-do_compile:prepend:class-native() {
-    export NSPR_INCLUDE_DIR=${STAGING_INCDIR_NATIVE}/nspr
-    export NSPR_LIB_DIR=${STAGING_LIBDIR_NATIVE}
-}
-
-do_compile:prepend:class-nativesdk() {
-    export LDFLAGS=""
-}
-
-do_compile:prepend:class-native() {
-    # Need to set RPATH so that chrpath will do its job correctly
-    RPATH="-Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE}"
-}
-
-do_compile() {
-    export NSPR_INCLUDE_DIR=${STAGING_INCDIR}/nspr
-
-    export CROSS_COMPILE=1
-    export NATIVE_CC="${BUILD_CC}"
-    # Additional defines needed on Centos 7
-    export NATIVE_FLAGS="${BUILD_CFLAGS} -DLINUX -Dlinux"
-    export BUILD_OPT=1
-
-    # POSIX.1-2001 states that the behaviour of getcwd() when passing a null
-    # pointer as the buf argument, is unspecified.
-    export NATIVE_FLAGS="${NATIVE_FLAGS} -DGETCWD_CANT_MALLOC"
-
-    export FREEBL_NO_DEPEND=1
-    export FREEBL_LOWHASH=1
-
-    export LIBDIR=${libdir}
-    export MOZILLA_CLIENT=1
-    export NS_USE_GCC=1
-    export NSS_USE_SYSTEM_SQLITE=1
-    export NSS_ENABLE_ECC=1
-    export NSS_ENABLE_WERROR=0
-
-    ${@bb.utils.contains("TUNE_FEATURES", "crypto", "export NSS_USE_ARM_HW_CRYPTO=1", "", d)}
-
-    export OS_RELEASE=3.4
-    export OS_TARGET=Linux
-    export OS_ARCH=Linux
-
-    if [ "${TARGET_ARCH}" = "powerpc" ]; then
-        OS_TEST=ppc
-    elif [ "${TARGET_ARCH}" = "powerpc64" -o "${TARGET_ARCH}" = "powerpc64le" ]; then
-        OS_TEST=ppc64
-    elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
-        OS_TEST=mips
-    elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
-        OS_TEST="aarch64"
-    else
-        OS_TEST="${TARGET_ARCH}"
-    fi
-
-    if [ "${SITEINFO_BITS}" = "64" ]; then
-        export USE_64=1
-    elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
-        export USE_X32=1
-    fi
-
-    export NSS_DISABLE_GTESTS=1
-    # We can modify CC in the environment, but if we set it via an
-    # argument to make, nsinstall, a host program, will also build with it!
-    #
-    # nss pretty much does its own thing with CFLAGS, so we put them into CC.
-    # Optimization will get clobbered, but most of the stuff will survive.
-    # The motivation for this is to point to the correct place for debug
-    # source files and CFLAGS does that.  Nothing uses CCC.
-    #
-    export CC="${CC} ${CFLAGS}"
-    make -C ./nss CCC="${CXX} -g" \
-        OS_TEST=${OS_TEST} \
-        RPATH="${RPATH}" \
-        autobuild
-}
-
-do_compile[vardepsexclude] += "SITEINFO_BITS"
-
-do_install:prepend:class-nativesdk() {
-    export LDFLAGS=""
-}
-
-do_install() {
-    export CROSS_COMPILE=1
-    export NATIVE_CC="${BUILD_CC}"
-    export BUILD_OPT=1
-
-    export FREEBL_NO_DEPEND=1
-
-    export LIBDIR=${libdir}
-    export MOZILLA_CLIENT=1
-    export NS_USE_GCC=1
-    export NSS_USE_SYSTEM_SQLITE=1
-    export NSS_ENABLE_ECC=1
-
-    export OS_RELEASE=3.4
-    export OS_TARGET=Linux
-    export OS_ARCH=Linux
-
-    if [ "${TARGET_ARCH}" = "powerpc" ]; then
-        OS_TEST=ppc
-    elif [ "${TARGET_ARCH}" = "powerpc64" -o "${TARGET_ARCH}" = "powerpc64le" ]; then
-        OS_TEST=ppc64
-    elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
-        OS_TEST=mips
-    elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
-        CPU_ARCH=aarch64
-        OS_TEST="aarch64"
-    else
-        OS_TEST="${TARGET_ARCH}"
-    fi
-    if [ "${SITEINFO_BITS}" = "64" ]; then
-        export USE_64=1
-    elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
-        export USE_X32=1
-    fi
-
-    export NSS_DISABLE_GTESTS=1
-
-    make -C ./nss \
-        CCC="${CXX}" \
-        OS_TEST=${OS_TEST} \
-        SOURCE_LIB_DIR="${TD}/${libdir}" \
-        SOURCE_BIN_DIR="${TD}/${bindir}" \
-        install
-
-    install -d ${D}/${libdir}/
-    for file in ${S}/dist/*.OBJ/lib/*.so; do
-        echo "Installing `basename $file`..."
-        cp $file  ${D}/${libdir}/
-    done
-
-    for shared_lib in ${TD}/${libdir}/*.so.*; do
-        if [ -f $shared_lib ]; then
-            cp $shared_lib ${D}/${libdir}
-            ln -sf $(basename $shared_lib) ${D}/${libdir}/$(basename $shared_lib .1oe)
-        fi
-    done
-    for shared_lib in ${TD}/${libdir}/*.so; do
-        if [ -f $shared_lib -a ! -e ${D}/${libdir}/$shared_lib ]; then
-            cp $shared_lib ${D}/${libdir}
-        fi
-    done
-
-    install -d ${D}/${includedir}/nss3
-    install -m 644 -t ${D}/${includedir}/nss3 dist/public/nss/*
-
-    install -d ${D}/${bindir}
-    for binary in ${TD}/${bindir}/*; do
-        install -m 755 -t ${D}/${bindir} $binary
-    done
-}
-
-do_install[vardepsexclude] += "SITEINFO_BITS"
-
-do_install:append() {
-    # Create empty .chk files for the NSS libraries at build time. They could
-    # be regenerated at target's boot time.
-    for file in libsoftokn3.chk libfreebl3.chk libnssdbm3.chk; do
-        touch ${D}/${libdir}/$file
-        chmod 755 ${D}/${libdir}/$file
-    done
-
-    install -d ${D}${libdir}/pkgconfig/
-    sed 's/%NSS_VERSION%/${PV}/' ${WORKDIR}/nss.pc.in | sed 's/%NSPR_VERSION%/4.9.2/' > ${D}${libdir}/pkgconfig/nss.pc
-    sed -i s:OEPREFIX:${prefix}:g ${D}${libdir}/pkgconfig/nss.pc
-    sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nss.pc
-    sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nss.pc
-    sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc
-}
-
-do_install:append:class-target() {
-    # It used to call certutil to create a blank certificate with empty password at
-    # build time, but the checksum of key4.db changes every time when certutil is called.
-    # It causes non-determinism issue, so provide databases with a blank certificate
-    # which are originally from output of nss in qemux86-64 build. You can get these
-    # databases by:
-    # certutil -N -d sql:/database/path/ --empty-password
-    install -d ${D}${sysconfdir}/pki/nssdb/
-    install -m 0644 ${WORKDIR}/blank-cert9.db ${D}${sysconfdir}/pki/nssdb/cert9.db
-    install -m 0644 ${WORKDIR}/blank-key4.db ${D}${sysconfdir}/pki/nssdb/key4.db
-    install -m 0644 ${WORKDIR}/system-pkcs11.txt ${D}${sysconfdir}/pki/nssdb/pkcs11.txt
-}
-
-PACKAGE_WRITE_DEPS += "nss-native"
-
-pkg_postinst:${PN} () {
-    for I in $D${libdir}/lib*.chk; do
-        DN=`dirname $I`
-        BN=`basename $I .chk`
-        FN=$DN/$BN.so
-        shlibsign -i $FN
-        if [ $? -ne 0 ]; then
-            echo "shlibsign -i $FN failed"
-        fi
-    done
-}
-
-PACKAGES =+ "${PN}-smime"
-FILES:${PN}-smime = "\
-    ${bindir}/smime \
-"
-
-FILES:${PN} = "\
-    ${sysconfdir} \
-    ${bindir} \
-    ${libdir}/lib*.chk \
-    ${libdir}/lib*.so \
-    "
-
-FILES:${PN}-dev = "\
-    ${libdir}/nss \
-    ${libdir}/pkgconfig/* \
-    ${includedir}/* \
-    "
-
-RDEPENDS:${PN}-smime = "perl"
-
-BBCLASSEXTEND = "native nativesdk"
-
-# CVE-2006-5201 affects only Sun Solaris
-CVE_CHECK_WHITELIST += "CVE-2006-5201"
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss_3.73.1.bb b/meta-openembedded/meta-oe/recipes-support/nss/nss_3.73.1.bb
new file mode 100644
index 0000000..274e85d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss_3.73.1.bb
@@ -0,0 +1,284 @@
+SUMMARY = "Mozilla's SSL and TLS implementation"
+DESCRIPTION = "Network Security Services (NSS) is a set of libraries \
+designed to support cross-platform development of \
+security-enabled client and server applications. \
+Applications built with NSS can support SSL v2 and v3, \
+TLS, PKCS 5, PKCS 7, PKCS 11, PKCS 12, S/MIME, X.509 \
+v3 certificates, and other security standards."
+HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/"
+SECTION = "libs"
+
+DEPENDS = "sqlite3 nspr zlib nss-native"
+DEPENDS:class-native = "sqlite3-native nspr-native zlib-native"
+
+LICENSE = "(MPL-2.0 & MIT) | (MPL-2.0 & GPL-2.0+ & MIT) | (MPL-2.0 & LGPL-2.1+ & MIT)"
+
+LIC_FILES_CHKSUM = "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \
+                    file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \
+                    file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132 \
+                    file://nss/lib/freebl/verified/Hacl_Poly1305_256.c;beginline=1;endline=22;md5=d4096c1e4421ee56e9e0f441a8161f78"
+
+VERSION_DIR = "${@d.getVar('BP').upper().replace('-', '_').replace('.', '_') + '_RTM'}"
+
+SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz \
+           file://nss.pc.in \
+           file://0001-nss-fix-support-cross-compiling.patch \
+           file://nss-no-rpath-for-cross-compiling.patch \
+           file://nss-fix-incorrect-shebang-of-perl.patch \
+           file://disable-Wvarargs-with-clang.patch \
+           file://pqg.c-ULL_addend.patch \
+           file://blank-cert9.db \
+           file://blank-key4.db \
+           file://system-pkcs11.txt \
+           file://nss-fix-nsinstall-build.patch \
+           file://0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch \
+           "
+SRC_URI[sha256sum] = "c768f9fe3129e8bcc2e9679456d7edd9453a225784a8fc7dc4501806f1fe9abe"
+
+UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases"
+UPSTREAM_CHECK_REGEX = "NSS_(?P<pver>.+)_release_notes"
+
+inherit siteinfo
+
+TD = "${S}/tentative-dist"
+TDS = "${S}/tentative-dist-staging"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+CFLAGS:append:class-native = " -D_XOPEN_SOURCE "
+
+do_configure:prepend:libc-musl () {
+    sed -i -e '/-DHAVE_SYS_CDEFS_H/d' ${S}/nss/lib/dbm/config/config.mk
+}
+
+do_configure:prepend:powerpc64le:toolchain-clang () {
+    sed -i -e 's/\-std=c99/\-std=gnu99/g' ${S}/nss/coreconf/command.mk
+}
+
+do_configure:prepend:powerpc64:toolchain-clang () {
+    sed -i -e 's/\-std=c99/\-std=gnu99/g' ${S}/nss/coreconf/command.mk
+}
+
+do_compile:prepend:class-native() {
+    export NSPR_INCLUDE_DIR=${STAGING_INCDIR_NATIVE}/nspr
+    export NSPR_LIB_DIR=${STAGING_LIBDIR_NATIVE}
+}
+
+do_compile:prepend:class-nativesdk() {
+    export LDFLAGS=""
+}
+
+do_compile:prepend:class-native() {
+    # Need to set RPATH so that chrpath will do its job correctly
+    RPATH="-Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE}"
+}
+
+do_compile() {
+    export NSPR_INCLUDE_DIR=${STAGING_INCDIR}/nspr
+
+    export CROSS_COMPILE=1
+    export NATIVE_CC="${BUILD_CC}"
+    # Additional defines needed on Centos 7
+    export NATIVE_FLAGS="${BUILD_CFLAGS} -DLINUX -Dlinux"
+    export BUILD_OPT=1
+
+    # POSIX.1-2001 states that the behaviour of getcwd() when passing a null
+    # pointer as the buf argument, is unspecified.
+    export NATIVE_FLAGS="${NATIVE_FLAGS} -DGETCWD_CANT_MALLOC"
+
+    export FREEBL_NO_DEPEND=1
+    export FREEBL_LOWHASH=1
+
+    export LIBDIR=${libdir}
+    export MOZILLA_CLIENT=1
+    export NS_USE_GCC=1
+    export NSS_USE_SYSTEM_SQLITE=1
+    export NSS_ENABLE_ECC=1
+    export NSS_ENABLE_WERROR=0
+
+    ${@bb.utils.contains("TUNE_FEATURES", "crypto", "export NSS_USE_ARM_HW_CRYPTO=1", "", d)}
+
+    export OS_RELEASE=3.4
+    export OS_TARGET=Linux
+    export OS_ARCH=Linux
+
+    if [ "${TARGET_ARCH}" = "powerpc" ]; then
+        OS_TEST=ppc
+    elif [ "${TARGET_ARCH}" = "powerpc64" -o "${TARGET_ARCH}" = "powerpc64le" ]; then
+        OS_TEST=ppc64
+    elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
+        OS_TEST=mips
+    elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
+        OS_TEST="aarch64"
+    else
+        OS_TEST="${TARGET_ARCH}"
+    fi
+
+    if [ "${SITEINFO_BITS}" = "64" ]; then
+        export USE_64=1
+    elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
+        export USE_X32=1
+    fi
+
+    export NSS_DISABLE_GTESTS=1
+    # We can modify CC in the environment, but if we set it via an
+    # argument to make, nsinstall, a host program, will also build with it!
+    #
+    # nss pretty much does its own thing with CFLAGS, so we put them into CC.
+    # Optimization will get clobbered, but most of the stuff will survive.
+    # The motivation for this is to point to the correct place for debug
+    # source files and CFLAGS does that.  Nothing uses CCC.
+    #
+    export CC="${CC} ${CFLAGS}"
+    make -C ./nss CCC="${CXX} -g" \
+        OS_TEST=${OS_TEST} \
+        RPATH="${RPATH}" \
+        autobuild
+}
+
+do_compile[vardepsexclude] += "SITEINFO_BITS"
+
+do_install:prepend:class-nativesdk() {
+    export LDFLAGS=""
+}
+
+do_install() {
+    export CROSS_COMPILE=1
+    export NATIVE_CC="${BUILD_CC}"
+    export BUILD_OPT=1
+
+    export FREEBL_NO_DEPEND=1
+
+    export LIBDIR=${libdir}
+    export MOZILLA_CLIENT=1
+    export NS_USE_GCC=1
+    export NSS_USE_SYSTEM_SQLITE=1
+    export NSS_ENABLE_ECC=1
+
+    export OS_RELEASE=3.4
+    export OS_TARGET=Linux
+    export OS_ARCH=Linux
+
+    if [ "${TARGET_ARCH}" = "powerpc" ]; then
+        OS_TEST=ppc
+    elif [ "${TARGET_ARCH}" = "powerpc64" -o "${TARGET_ARCH}" = "powerpc64le" ]; then
+        OS_TEST=ppc64
+    elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
+        OS_TEST=mips
+    elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
+        CPU_ARCH=aarch64
+        OS_TEST="aarch64"
+    else
+        OS_TEST="${TARGET_ARCH}"
+    fi
+    if [ "${SITEINFO_BITS}" = "64" ]; then
+        export USE_64=1
+    elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
+        export USE_X32=1
+    fi
+
+    export NSS_DISABLE_GTESTS=1
+
+    make -C ./nss \
+        CCC="${CXX}" \
+        OS_TEST=${OS_TEST} \
+        SOURCE_LIB_DIR="${TD}/${libdir}" \
+        SOURCE_BIN_DIR="${TD}/${bindir}" \
+        install
+
+    install -d ${D}/${libdir}/
+    for file in ${S}/dist/*.OBJ/lib/*.so; do
+        echo "Installing `basename $file`..."
+        cp $file  ${D}/${libdir}/
+    done
+
+    for shared_lib in ${TD}/${libdir}/*.so.*; do
+        if [ -f $shared_lib ]; then
+            cp $shared_lib ${D}/${libdir}
+            ln -sf $(basename $shared_lib) ${D}/${libdir}/$(basename $shared_lib .1oe)
+        fi
+    done
+    for shared_lib in ${TD}/${libdir}/*.so; do
+        if [ -f $shared_lib -a ! -e ${D}/${libdir}/$shared_lib ]; then
+            cp $shared_lib ${D}/${libdir}
+        fi
+    done
+
+    install -d ${D}/${includedir}/nss3
+    install -m 644 -t ${D}/${includedir}/nss3 dist/public/nss/*
+
+    install -d ${D}/${bindir}
+    for binary in ${TD}/${bindir}/*; do
+        install -m 755 -t ${D}/${bindir} $binary
+    done
+}
+
+do_install[vardepsexclude] += "SITEINFO_BITS"
+
+do_install:append() {
+    # Create empty .chk files for the NSS libraries at build time. They could
+    # be regenerated at target's boot time.
+    for file in libsoftokn3.chk libfreebl3.chk libnssdbm3.chk; do
+        touch ${D}/${libdir}/$file
+        chmod 755 ${D}/${libdir}/$file
+    done
+
+    install -d ${D}${libdir}/pkgconfig/
+    sed 's/%NSS_VERSION%/${PV}/' ${WORKDIR}/nss.pc.in | sed 's/%NSPR_VERSION%/4.9.2/' > ${D}${libdir}/pkgconfig/nss.pc
+    sed -i s:OEPREFIX:${prefix}:g ${D}${libdir}/pkgconfig/nss.pc
+    sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nss.pc
+    sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nss.pc
+    sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc
+}
+
+do_install:append:class-target() {
+    # It used to call certutil to create a blank certificate with empty password at
+    # build time, but the checksum of key4.db changes every time when certutil is called.
+    # It causes non-determinism issue, so provide databases with a blank certificate
+    # which are originally from output of nss in qemux86-64 build. You can get these
+    # databases by:
+    # certutil -N -d sql:/database/path/ --empty-password
+    install -d ${D}${sysconfdir}/pki/nssdb/
+    install -m 0644 ${WORKDIR}/blank-cert9.db ${D}${sysconfdir}/pki/nssdb/cert9.db
+    install -m 0644 ${WORKDIR}/blank-key4.db ${D}${sysconfdir}/pki/nssdb/key4.db
+    install -m 0644 ${WORKDIR}/system-pkcs11.txt ${D}${sysconfdir}/pki/nssdb/pkcs11.txt
+}
+
+PACKAGE_WRITE_DEPS += "nss-native"
+
+pkg_postinst:${PN} () {
+    for I in $D${libdir}/lib*.chk; do
+        DN=`dirname $I`
+        BN=`basename $I .chk`
+        FN=$DN/$BN.so
+        shlibsign -i $FN
+        if [ $? -ne 0 ]; then
+            echo "shlibsign -i $FN failed"
+        fi
+    done
+}
+
+PACKAGES =+ "${PN}-smime"
+FILES:${PN}-smime = "\
+    ${bindir}/smime \
+"
+
+FILES:${PN} = "\
+    ${sysconfdir} \
+    ${bindir} \
+    ${libdir}/lib*.chk \
+    ${libdir}/lib*.so \
+    "
+
+FILES:${PN}-dev = "\
+    ${libdir}/nss \
+    ${libdir}/pkgconfig/* \
+    ${includedir}/* \
+    "
+
+RDEPENDS:${PN}-smime = "perl"
+
+BBCLASSEXTEND = "native nativesdk"
+
+# CVE-2006-5201 affects only Sun Solaris
+CVE_CHECK_WHITELIST += "CVE-2006-5201"
diff --git a/meta-openembedded/meta-oe/recipes-support/opencl/clinfo_2.2.18.04.06.bb b/meta-openembedded/meta-oe/recipes-support/opencl/clinfo_2.2.18.04.06.bb
index 9fd88ce..831b15a 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencl/clinfo_2.2.18.04.06.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opencl/clinfo_2.2.18.04.06.bb
@@ -7,7 +7,7 @@
 LICENSE = "CC0-1.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=fd8857f774dfb0eefe1e80c8f9240a7e"
 
-SRC_URI = "git://github.com/Oblomov/clinfo.git;protocol=https"
+SRC_URI = "git://github.com/Oblomov/clinfo.git;protocol=https;branch=master"
 
 SRCREV = "59d0daf898e48d76ccbb788acbba258fa0a8ba7c"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/ade_0.1.1f.bb b/meta-openembedded/meta-oe/recipes-support/opencv/ade_0.1.1f.bb
index 12b7122..48a4514 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/ade_0.1.1f.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/ade_0.1.1f.bb
@@ -4,7 +4,7 @@
 organizing data flow processing and execution."
 HOMEPAGE = "https://github.com/opencv/ade"
 
-SRC_URI = "git://github.com/opencv/ade.git \
+SRC_URI = "git://github.com/opencv/ade.git;branch=master;protocol=https \
            file://0001-use-GNUInstallDirs-for-detecting-install-paths.patch \
            "
 
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.5.2.bb b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.5.2.bb
index 8d557e0..2f2a505 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.5.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.5.2.bb
@@ -38,13 +38,13 @@
 IPP_MD5 = "${@ipp_md5sum(d)}"
 
 SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg"
-SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \
-           git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \
-           git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20191018;destsuffix=ipp;name=ipp \
-           git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \
-           git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \
-           git://github.com/opencv/opencv_3rdparty.git;branch=contrib_face_alignment_20170818;destsuffix=face;name=face \
-           git://github.com/WeChatCV/opencv_3rdparty.git;branch=wechat_qrcode;destsuffix=wechat_qrcode;name=wechat-qrcode \
+SRC_URI = "git://github.com/opencv/opencv.git;name=opencv;branch=master;protocol=https \
+           git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib;branch=master;protocol=https \
+           git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20191018;destsuffix=ipp;name=ipp;protocol=https \
+           git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc;protocol=https \
+           git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg;protocol=https \
+           git://github.com/opencv/opencv_3rdparty.git;branch=contrib_face_alignment_20170818;destsuffix=face;name=face;protocol=https \
+           git://github.com/WeChatCV/opencv_3rdparty.git;branch=wechat_qrcode;destsuffix=wechat_qrcode;name=wechat-qrcode;protocol=https \
            file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
            file://0003-To-fix-errors-as-following.patch \
            file://0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch \
@@ -141,7 +141,7 @@
 
 inherit pkgconfig cmake
 
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'distutils3-base', '', d)}
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'setuptools3-base', '', d)}
 inherit ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'distutils-base', '', d)}
 
 export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/0001-build-top.mk-unset-STRIP_OPTS.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/0001-build-top.mk-unset-STRIP_OPTS.patch
new file mode 100644
index 0000000..9d25f2c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/0001-build-top.mk-unset-STRIP_OPTS.patch
@@ -0,0 +1,38 @@
+From 321839cbd1d57f12d3d6695254d2003473d8dd1a Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 8 Dec 2021 16:58:55 +0800
+Subject: [PATCH] build/top.mk: unset STRIP_OPTS
+
+Unset STRIP_OPTS to disable strip to fix QA errors:
+
+ERROR: openldap-2.5.9-r0 do_package: QA Issue: File
+'/usr/bin/ldapcompare' from openldap was already stripped, this will
+prevent future debugging! [already-stripped]
+
+ERROR: openldap-2.5.9-r0 do_package: QA Issue: File
+'/usr/bin/ldapdelete' from openldap was already stripped, this will
+prevent future debugging! [already-stripped]
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ build/top.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/top.mk b/build/top.mk
+index 38ce146..6e9fe1f 100644
+--- a/build/top.mk
++++ b/build/top.mk
+@@ -60,7 +60,7 @@ INSTALL_PROGRAM = $(INSTALL)
+ INSTALL_DATA = $(INSTALL) -m 644
+ INSTALL_SCRIPT = $(INSTALL)
+ 
+-STRIP_OPTS = -s
++STRIP_OPTS =
+ 
+ LINT = lint
+ 5LINT = 5lint
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/0001-ldif-filter-fix-parallel-build-failure.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/0001-ldif-filter-fix-parallel-build-failure.patch
new file mode 100644
index 0000000..b42bd97
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/0001-ldif-filter-fix-parallel-build-failure.patch
@@ -0,0 +1,32 @@
+From 9e4ccd1e78ceac8de1ab66ee62ee216f1fbd4956 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Thu, 2 Dec 2021 11:38:15 +0800
+Subject: [PATCH] ldif-filter: fix parallel build failure
+
+Add slapd-common.o as dependency for ldif-filter to fix the parallel
+build failure:
+  ld: cannot find slapd-common.o: No such file or directory
+
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ tests/progs/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/progs/Makefile.in b/tests/progs/Makefile.in
+index 13f1e8be2..e4f4ccf98 100644
+--- a/tests/progs/Makefile.in
++++ b/tests/progs/Makefile.in
+@@ -56,7 +56,7 @@ slapd-modify: slapd-modify.o $(OBJS) $(XLIBS)
+ slapd-bind: slapd-bind.o $(OBJS) $(XLIBS)
+ 	$(LTLINK) -o $@ slapd-bind.o $(OBJS) $(LIBS)
+ 
+-ldif-filter: ldif-filter.o $(XLIBS)
++ldif-filter: ldif-filter.o $(OBJS) $(XLIBS)
+ 	$(LTLINK) -o $@ ldif-filter.o $(OBJS) $(LIBS)
+ 
+ slapd-mtread: slapd-mtread.o $(OBJS) $(XLIBS)
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/0001-libraries-Makefile.in-ignore-the-mkdir-errors.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/0001-libraries-Makefile.in-ignore-the-mkdir-errors.patch
new file mode 100644
index 0000000..552726b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/0001-libraries-Makefile.in-ignore-the-mkdir-errors.patch
@@ -0,0 +1,33 @@
+From 690f69791eb6cd0d7e94b4d73219ee864de27f62 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Mon, 10 Jan 2022 10:13:51 +0800
+Subject: [PATCH] libraries/Makefile.in: ignore the mkdir errors
+
+Ignore the mkdir errors to fix the parallel build failure:
+
+../../build/shtool mkdir -p TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-wrs-linux-gnueabi/openldap/2.5.9-r0/image/usr/lib
+mkdir: cannot create directory 'TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-wrs-linux-gnueabi/openldap/2.5.9-r0/image/usr/lib': File exists
+
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ libraries/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libraries/Makefile.in b/libraries/Makefile.in
+index d9cb2ff..c6b251f 100644
+--- a/libraries/Makefile.in
++++ b/libraries/Makefile.in
+@@ -24,7 +24,7 @@ PKGCONFIG_DIR=$(DESTDIR)$(libdir)/pkgconfig
+ PKGCONFIG_SRCDIRS=liblber libldap
+ 
+ install-local:
+-	@$(MKDIR) $(PKGCONFIG_DIR)
++	@-$(MKDIR) $(PKGCONFIG_DIR)
+ 	@for i in $(PKGCONFIG_SRCDIRS); do \
+ 	    $(INSTALL_DATA) $$i/*.pc $(PKGCONFIG_DIR); \
+ 	done
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch
deleted file mode 100644
index b59db39..0000000
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-# This patch ensures that the install operations which strip
-# programs and libraries (LTINSTALL) work in a cross build
-# environment.
-
-Upstream-Status: Pending
-
---- a/build/top.mk
-+++ b/build/top.mk
-@@ -121,7 +121,7 @@ LTCOMPILE_MOD = $(LIBTOOL) $(LTONLY_MOD)
- LTLINK_MOD = $(LIBTOOL) $(LTONLY_MOD) --mode=link \
- 	$(CC) $(LT_CFLAGS) $(LDFLAGS) $(LTFLAGS_MOD)
- 
--LTINSTALL = $(LIBTOOL) --mode=install $(INSTALL) 
-+LTINSTALL = STRIPPROG="" $(LIBTOOL) --mode=install $(top_srcdir)/contrib/ldapc++/install-sh -c
- LTFINISH = $(LIBTOOL) --mode=finish
- 
- # Misc UNIX commands used in build environment
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
index 91bcc04..8cfd003 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
@@ -1,14 +1,12 @@
 From http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-nds/openldap/files/
 
-Upstream-status: Pending
+Upstream-Status: Pending
 
---
-
---- a/configure.in
-+++ b/configure.in
-@@ -1227,7 +1227,7 @@ if test $ol_link_tls = no ; then
- 				ol_with_tls=gnutls
+--- a/configure.ac
++++ b/configure.ac
+@@ -1263,7 +1263,7 @@ if test $ol_link_tls = no ; then
  				ol_link_tls=yes
+ 				WITH_TLS_TYPE=gnutls
  
 -				TLS_LIBS="-lgnutls"
 +				TLS_LIBS="-lgnutls -lgcrypt"
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
deleted file mode 100644
index ab5c4de..0000000
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-openldap CVE-2015-3276
-
-the patch comes from:
-https://bugzilla.redhat.com/show_bug.cgi?id=1238322
-https://bugzilla.redhat.com/attachment.cgi?id=1055640
-
-The nss_parse_ciphers function in libraries/libldap/tls_m.c in
-OpenLDAP does not properly parse OpenSSL-style multi-keyword mode
-cipher strings, which might cause a weaker than intended cipher to
-be used and allow remote attackers to have unspecified impact via
-unknown vectors.
-
-Upstream-Status: Pending
-
-CVE: CVE-2015-3276
-
-Signed-off-by: Li Wang <li.wang@windriver.com>
----
- libraries/libldap/tls_m.c |   27 ++++++++++++++++-----------
- 1 file changed, 16 insertions(+), 11 deletions(-)
-
---- a/libraries/libldap/tls_m.c
-+++ b/libraries/libldap/tls_m.c
-@@ -620,18 +620,23 @@ nss_parse_ciphers(const char *cipherstr,
- 			 */
- 			if (mask || strength || protocol) {
- 				for (i=0; i<ciphernum; i++) {
--					if (((ciphers_def[i].attr & mask) ||
--						 (ciphers_def[i].strength & strength) ||
--						 (ciphers_def[i].version & protocol)) &&
--						(cipher_list[i] != -1)) {
--						/* Enable the NULL ciphers only if explicity
--						 * requested */
--						if (ciphers_def[i].attr & SSL_eNULL) {
--							if (mask & SSL_eNULL)
--								cipher_list[i] = action;
--						} else
-+					/* if more than one mask is provided
-+					 * then AND logic applies (to match openssl)
-+					 */
-+					if ( cipher_list[i] == -1) )
-+						continue;
-+					if ( mask && ! (ciphers_def[i].attr & mask) )
-+						continue;
-+					if ( strength && ! (ciphers_def[i].strength & strength) )
-+						continue;
-+					if ( protocol && ! (ciphers_def[i].version & protocol) )
-+						continue;
-+					/* Enable the NULL ciphers only if explicity requested */
-+					if (ciphers_def[i].attr & SSL_eNULL) {
-+						if (mask & SSL_eNULL)
- 							cipher_list[i] = action;
--					}
-+					} else
-+						cipher_list[i] = action;
- 				}
- 			} else {
- 				for (i=0; i<ciphernum; i++) {
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
deleted file mode 100644
index 4d1fda9..0000000
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Upstream-Status: Pending
-
---- a/build/openldap.m4
-+++ b/build/openldap.m4
-@@ -651,7 +651,7 @@ AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[[
- ]])
- 
- AC_DEFUN([OL_PTHREAD_TEST_PROGRAM],
--AC_LANG_SOURCE([OL_PTHREAD_TEST_INCLUDES
-+[AC_LANG_SOURCE([[OL_PTHREAD_TEST_INCLUDES
- 
- int main(argc, argv)
- 	int argc;
-@@ -659,7 +659,7 @@ int main(argc, argv)
- {
- OL_PTHREAD_TEST_FUNCTION
- }
--]))
-+]])])
- dnl --------------------------------------------------------------------
- AC_DEFUN([OL_PTHREAD_TRY], [# Pthread try link: $1 ($2)
- if test "$ol_link_threads" = no ; then
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/thread_stub.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/thread_stub.patch
deleted file mode 100644
index 540ba4a..0000000
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/thread_stub.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-openldap: set pointer
-
-When the function ldap_pvt_thread_pool_getkey() succeeds, it
-must set the value of *data since the caller may try to use it.
-
-Upstream-Status: pending
-
-Signed-off-by: Joe Slater <jslater@windriver.com>
-
-
---- a/libraries/libldap_r/thr_stub.c
-+++ b/libraries/libldap_r/thr_stub.c
-@@ -217,6 +217,7 @@ ldap_pvt_thread_pool_unidle ( ldap_pvt_t
- int ldap_pvt_thread_pool_getkey (
- 	void *ctx, void *key, void **data, ldap_pvt_thread_pool_keyfree_t **kfree )
- {
-+	if (data) *data = NULL;  /* avoid problems with uninitialized *data */
- 	return(0);
- }
- 
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/use-urandom.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/use-urandom.patch
index 96a0336..0b7e3a2 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/use-urandom.patch
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/use-urandom.patch
@@ -4,24 +4,21 @@
 that /dev/urandom exists.  We could change the source
 code to look for it, but this is the easy way out.
 
-Upstream-Status: pending
+Upstream-Status: Inappropriate [embedded specific]
 
 Signed-off-by: Joe Slater <jslater@windriver.com>
 
-
---- a/configure.in
-+++ b/configure.in
-@@ -2153,8 +2153,8 @@ fi
+--- a/configure.ac
++++ b/configure.ac
+@@ -2117,6 +2117,7 @@ AC_SUBST(systemdsystemunitdir)
  
  dnl ----------------------------------------------------------------
  dnl Check for entropy sources
 +dev=no
  if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
--	dev=no
+ 	dev=no
  	if test -r /dev/urandom ; then
- 		dev="/dev/urandom";
- 	elif test -r /idev/urandom ; then
-@@ -2167,9 +2167,11 @@ if test $cross_compiling != yes && test
+@@ -2131,9 +2132,11 @@ if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
  		dev="/idev/random";
  	fi
  
@@ -29,7 +26,7 @@
 -		AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
 -	fi
 +elif test $cross_compiling == yes ; then
-+	dev="/dev/urandom";
++       dev="/dev/urandom";
 +fi
 +if test $dev != no ; then
 +	AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.58.bb b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.58.bb
deleted file mode 100644
index f9dc58a..0000000
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.58.bb
+++ /dev/null
@@ -1,256 +0,0 @@
-SUMMARY = "OpenLDAP Directory Service"
-DESCRIPTION = "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol."
-HOMEPAGE = "http://www.OpenLDAP.org/license.html"
-# The OpenLDAP Public License - see the HOMEPAGE - defines
-# the license.  www.openldap.org claims this is Open Source
-# (see http://www.openldap.org), the license appears to be
-# basically BSD.  opensource.org does not record this license
-# at present (so it is apparently not OSI certified).
-LICENSE = "OpenLDAP"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=b6dea6c170362fc46381fe3690c722cb \
-                    file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
-                    "
-SECTION = "libs"
-
-LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
-
-SRC_URI = "http://www.openldap.org/software/download/OpenLDAP/openldap-release/${BP}.tgz \
-    file://openldap-m4-pthread.patch \
-    file://openldap-2.4.28-gnutls-gcrypt.patch \
-    file://use-urandom.patch \
-    file://initscript \
-    file://slapd.service \
-    file://thread_stub.patch \
-    file://openldap-CVE-2015-3276.patch \
-    file://remove-user-host-pwd-from-version.patch \
-"
-
-SRC_URI[md5sum] = "c203d735ba69976e5b28dc39006f29b5"
-SRC_URI[sha256sum] = "57b59254be15d0bf6a9ab3d514c1c05777b02123291533134a87c94468f8f47b"
-
-DEPENDS = "util-linux groff-native"
-
-# The original top.mk used INSTALL, not INSTALL_STRIP_PROGRAM when
-# installing .so and executables, this fails in cross compilation
-# environments
-SRC_URI += "file://install-strip.patch"
-
-inherit autotools-brokensep update-rc.d systemd
-
-# CV SETTINGS
-# Required to work round AC_FUNC_MEMCMP which gets the wrong answer
-# when cross compiling (should be in site?)
-EXTRA_OECONF += "ac_cv_func_memcmp_working=yes"
-
-# CONFIG DEFINITIONS
-# The following is necessary because it cannot be determined for a
-# cross compile automagically.  Select should yield fine on all OE
-# systems...
-EXTRA_OECONF += "--with-yielding-select=yes"
-# Shared libraries are nice...
-EXTRA_OECONF += "--enable-dynamic"
-
-PACKAGECONFIG ??= "gnutls modules \
-                   mdb ldap meta monitor null passwd shell proxycache dnssrv \
-                   ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
-"
-#--with-tls              with TLS/SSL support auto|openssl|gnutls [auto]
-PACKAGECONFIG[gnutls] = "--with-tls=gnutls,,gnutls libgcrypt"
-PACKAGECONFIG[openssl] = "--with-tls=openssl,,openssl"
-
-PACKAGECONFIG[sasl] = "--with-cyrus-sasl,--without-cyrus-sasl,cyrus-sasl"
-PACKAGECONFIG[modules] = "lt_cv_dlopen_self=yes --enable-modules,--disable-modules,libtool"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6"
-
-# SLAPD options
-#
-# UNIX crypt(3) passwd support:
-EXTRA_OECONF += "--enable-crypt"
-
-# SLAPD BACKEND
-#
-# The backend must be set by the configuration.  This controls the
-# required database.
-#
-# Backends="bdb dnssrv hdb ldap mdb meta monitor ndb null passwd perl relay shell sock sql"
-#
-# Note that multiple backends can be built.  The ldbm backend requires a
-# build-time choice of database API.  The bdb backend forces this to be
-# DB4.  To use the gdbm (or other) API the Berkely database module must
-# be removed from the build.
-md = "${libexecdir}/openldap"
-#
-#--enable-bdb          enable Berkeley DB backend no|yes|mod yes
-# The Berkely DB is the standard choice.  This version of OpenLDAP requires
-# the version 4 implementation or better.
-PACKAGECONFIG[bdb] = "--enable-bdb=yes,--enable-bdb=no,db"
-
-#--enable-dnssrv       enable dnssrv backend no|yes|mod no
-PACKAGECONFIG[dnssrv] = "--enable-dnssrv=mod,--enable-dnssrv=no"
-
-#--enable-hdb          enable Hierarchical DB backend no|yes|mod no
-PACKAGECONFIG[hdb] = "--enable-hdb=yes,--enable-hdb=no,db"
-
-#--enable-ldap         enable ldap backend no|yes|mod no
-PACKAGECONFIG[ldap] = "--enable-ldap=mod,--enable-ldap=no,"
-
-#--enable-mdb          enable mdb database backend no|yes|mod [yes]
-PACKAGECONFIG[mdb] = "--enable-mdb=yes,--enable-mdb=no,"
-
-#--enable-meta         enable metadirectory backend no|yes|mod no
-PACKAGECONFIG[meta] = "--enable-meta=mod,--enable-meta=no,"
-
-#--enable-monitor      enable monitor backend no|yes|mod yes
-PACKAGECONFIG[monitor] = "--enable-monitor=mod,--enable-monitor=no,"
-
-#--enable-ndb          enable MySQL NDB Cluster backend no|yes|mod [no]
-PACKAGECONFIG[ndb] = "--enable-ndb=mod,--enable-ndb=no,"
-
-#--enable-null         enable null backend no|yes|mod no
-PACKAGECONFIG[null] = "--enable-null=mod,--enable-null=no,"
-
-#--enable-passwd       enable passwd backend no|yes|mod no
-PACKAGECONFIG[passwd] = "--enable-passwd=mod,--enable-passwd=no,"
-
-#--enable-perl         enable perl backend no|yes|mod no
-#  This requires a loadable perl dynamic library, if enabled without
-#  doing something appropriate (building perl?) the build will pick
-#  up the build machine perl - not good (inherit perlnative?)
-PACKAGECONFIG[perl] = "--enable-perl=mod,--enable-perl=no,perl"
-
-#--enable-relay        enable relay backend no|yes|mod [yes]
-PACKAGECONFIG[relay] = "--enable-relay=mod,--enable-relay=no,"
-
-#--enable-shell        enable shell backend no|yes|mod no
-# configure: WARNING: Use of --without-threads is recommended with back-shell
-PACKAGECONFIG[shell] = "--enable-shell=mod --without-threads,--enable-shell=no,"
-
-#--enable-sock         enable sock backend no|yes|mod [no]
-PACKAGECONFIG[sock] = "--enable-sock=mod,--enable-sock=no,"
-
-#--enable-sql          enable sql backend no|yes|mod no
-# sql requires some sql backend which provides sql.h, sqlite* provides
-# sqlite.h (which may be compatible but hasn't been tried.)
-PACKAGECONFIG[sql] = "--enable-sql=mod,--enable-sql=no,sqlite3"
-
-#--enable-dyngroup     Dynamic Group overlay no|yes|mod no
-#  This is a demo, Proxy Cache defines init_module which conflicts with the
-#  same symbol in dyngroup
-PACKAGECONFIG[dyngroup] = "--enable-dyngroup=mod,--enable-dyngroup=no,"
-
-#--enable-proxycache   Proxy Cache overlay no|yes|mod no
-PACKAGECONFIG[proxycache] = "--enable-proxycache=mod,--enable-proxycache=no,"
-FILES:${PN}-overlay-proxycache = "${md}/pcache-*.so.*"
-PACKAGES += "${PN}-overlay-proxycache"
-
-# Append URANDOM_DEVICE='/dev/urandom' to CPPFLAGS:
-# This allows tls to obtain random bits from /dev/urandom, by default
-# it was disabled for cross-compiling.
-CPPFLAGS:append = " -D_GNU_SOURCE -DURANDOM_DEVICE=\'/dev/urandom\' -fPIC"
-
-LDFLAGS:append = " -pthread"
-
-do_configure() {
-    rm -f ${S}/libtool
-    aclocal
-    libtoolize --force --copy
-    gnu-configize
-    cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/ltmain.sh ${S}/build
-    cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/missing ${S}/build
-    cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/compile ${S}/build
-    autoconf
-    oe_runconf
-}
-
-LEAD_SONAME = "libldap-${LDAP_VER}.so.*"
-
-# The executables go in a separate package.  This allows the
-# installation of the libraries with no daemon support.
-# Each module also has its own package - see above.
-PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin"
-
-# Package contents - shift most standard contents to -bin
-FILES:${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data"
-FILES:${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \
-    ${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \
-    ${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*"
-FILES:${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp"
-FILES:${PN}-bin = "${bindir}"
-FILES:${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libexecdir}/openldap/*.a ${libexecdir}/openldap/*.la ${libexecdir}/openldap/*.so"
-FILES:${PN}-dbg += "${libexecdir}/openldap/.debug"
-
-do_install:append() {
-    install -d ${D}${sysconfdir}/init.d
-    cat ${WORKDIR}/initscript > ${D}${sysconfdir}/init.d/openldap
-    chmod 755 ${D}${sysconfdir}/init.d/openldap
-    # This is duplicated in /etc/openldap and is for slapd
-    rm -f ${D}${localstatedir}/openldap-data/DB_CONFIG.example
-
-    # Installing slapd under ${sbin} is more FHS and LSB compliance
-    mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd
-    rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
-    SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema"
-    cd ${D}/${sbindir}/
-    rm -f ${SLAPTOOLS}
-    for i in ${SLAPTOOLS}; do ln -sf slapd $i; done
-
-    rmdir "${D}${localstatedir}/run"
-    rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
-
-    install -d ${D}${systemd_unitdir}/system/
-    install -m 0644 ${WORKDIR}/slapd.service ${D}${systemd_unitdir}/system/
-    sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/*.service
-
-    # Uses mdm as the database
-    #  and localstatedir as data directory ...
-    sed -e 's/# modulepath/modulepath/' \
-        -e 's/# moduleload\s*back_bdb.*/moduleload    back_mdb/' \
-        -e 's/database\s*bdb/database        mdb/' \
-        -e 's%^directory\s*.*%directory   ${localstatedir}/${BPN}/data/%' \
-        -i ${D}${sysconfdir}/openldap/slapd.conf
-
-    mkdir -p ${D}${localstatedir}/${BPN}/data
-
-
-}
-
-INITSCRIPT_PACKAGES = "${PN}-slapd"
-INITSCRIPT_NAME:${PN}-slapd = "openldap"
-INITSCRIPT_PARAMS:${PN}-slapd = "defaults"
-SYSTEMD_SERVICE:${PN}-slapd = "hostapd.service"
-SYSTEMD_AUTO_ENABLE:${PN}-slapd ?= "disable"
-
-
-PACKAGES_DYNAMIC += "^${PN}-backends.* ^${PN}-backend-.*"
-
-# The modules require their .so to be dynamicaly loaded
-INSANE_SKIP:${PN}-backend-dnssrv  += "dev-so"
-INSANE_SKIP:${PN}-backend-ldap    += "dev-so"
-INSANE_SKIP:${PN}-backend-meta    += "dev-so"
-INSANE_SKIP:${PN}-backend-mdb     += "dev-so"
-INSANE_SKIP:${PN}-backend-monitor += "dev-so"
-INSANE_SKIP:${PN}-backend-null    += "dev-so"
-INSANE_SKIP:${PN}-backend-passwd  += "dev-so"
-INSANE_SKIP:${PN}-backend-shell   += "dev-so"
-
-
-python populate_packages:prepend () {
-    backend_dir    = d.expand('${libexecdir}/openldap')
-    do_split_packages(d, backend_dir, 'back_([a-z]*)\.so$', 'openldap-backend-%s', 'OpenLDAP %s backend', prepend=True, extra_depends='', allow_links=True)
-    do_split_packages(d, backend_dir, 'back_([a-z]*)\-.*\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True)
-
-    metapkg = "${PN}-backends"
-    d.setVar('ALLOW_EMPTY:' + metapkg, "1")
-    d.setVar('FILES:' + metapkg, "")
-    metapkg_rdepends = []
-    packages = d.getVar('PACKAGES').split()
-    for pkg in packages[1:]:
-        if pkg.count("openldap-backend-") and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale"):
-            metapkg_rdepends.append(pkg)
-    d.setVar('RDEPENDS:' + metapkg, ' '.join(metapkg_rdepends))
-    d.setVar('DESCRIPTION:' + metapkg, 'OpenLDAP backends meta package')
-    packages.append(metapkg)
-    d.setVar('PACKAGES', ' '.join(packages))
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.9.bb b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.9.bb
new file mode 100644
index 0000000..f3b8c6c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.9.bb
@@ -0,0 +1,238 @@
+SUMMARY = "OpenLDAP Directory Service"
+DESCRIPTION = "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol."
+HOMEPAGE = "http://www.OpenLDAP.org/license.html"
+# The OpenLDAP Public License - see the HOMEPAGE - defines
+# the license.  www.openldap.org claims this is Open Source
+# (see http://www.openldap.org), the license appears to be
+# basically BSD.  opensource.org does not record this license
+# at present (so it is apparently not OSI certified).
+LICENSE = "OpenLDAP"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=5cc6ef74da4ad25d707c4f5903d64975 \
+                    file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
+                    "
+SECTION = "libs"
+
+LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
+
+SRC_URI = "http://www.openldap.org/software/download/OpenLDAP/openldap-release/${BP}.tgz \
+    file://openldap-2.4.28-gnutls-gcrypt.patch \
+    file://use-urandom.patch \
+    file://initscript \
+    file://slapd.service \
+    file://remove-user-host-pwd-from-version.patch \
+    file://0001-ldif-filter-fix-parallel-build-failure.patch \
+    file://0001-build-top.mk-unset-STRIP_OPTS.patch \
+    file://0001-libraries-Makefile.in-ignore-the-mkdir-errors.patch \
+"
+
+SRC_URI[md5sum] = "237fc2d881c27f8dd5d9f396e2865c11"
+SRC_URI[sha256sum] = "c08e12f4ca5803d5d9f9948c70ad3491282cda3c17ec8b655dcbcb2364e6fb9e"
+
+DEPENDS = "util-linux groff-native"
+
+inherit autotools-brokensep update-rc.d systemd pkgconfig
+
+# CV SETTINGS
+# Required to work round AC_FUNC_MEMCMP which gets the wrong answer
+# when cross compiling (should be in site?)
+EXTRA_OECONF += "ac_cv_func_memcmp_working=yes"
+
+# CONFIG DEFINITIONS
+# The following is necessary because it cannot be determined for a
+# cross compile automagically.  Select should yield fine on all OE
+# systems...
+EXTRA_OECONF += "--with-yielding-select=yes"
+# Shared libraries are nice...
+EXTRA_OECONF += "--enable-dynamic"
+
+PACKAGECONFIG ??= "asyncmeta gnutls modules \
+                   mdb ldap meta null passwd proxycache dnssrv \
+                   ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+"
+#--with-tls              with TLS/SSL support auto|openssl|gnutls [auto]
+PACKAGECONFIG[gnutls] = "--with-tls=gnutls,,gnutls libgcrypt"
+PACKAGECONFIG[openssl] = "--with-tls=openssl,,openssl"
+
+PACKAGECONFIG[sasl] = "--with-cyrus-sasl,--without-cyrus-sasl,cyrus-sasl"
+PACKAGECONFIG[modules] = "lt_cv_dlopen_self=yes --enable-modules,--disable-modules,libtool"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6"
+
+# SLAPD options
+#
+# UNIX crypt(3) passwd support:
+EXTRA_OECONF += "--enable-crypt"
+
+# SLAPD BACKEND
+#
+# The backend must be set by the configuration.  This controls the
+# required database.
+#
+# Backends="asyncmeta dnssrv ldap mdb meta ndb null passwd perl relay sock sql wt"
+#
+# Note that multiple backends can be built.  The ldbm backend requires a
+# build-time choice of database API. To use the gdbm (or other) API the 
+# Berkely database module must be removed from the build.
+md = "${libexecdir}/openldap"
+#
+
+#--enable-asyncmeta    enable asyncmeta backend no|yes|mod no
+PACKAGECONFIG[asyncmeta] = "--enable-asyncmeta=mod,--enable-asyncmeta=no"
+
+#--enable-dnssrv       enable dnssrv backend no|yes|mod no
+PACKAGECONFIG[dnssrv] = "--enable-dnssrv=mod,--enable-dnssrv=no"
+
+#--enable-ldap         enable ldap backend no|yes|mod no
+PACKAGECONFIG[ldap] = "--enable-ldap=mod,--enable-ldap=no,"
+
+#--enable-mdb          enable mdb database backend no|yes|mod [yes]
+PACKAGECONFIG[mdb] = "--enable-mdb=yes,--enable-mdb=no,"
+
+#--enable-meta         enable metadirectory backend no|yes|mod no
+PACKAGECONFIG[meta] = "--enable-meta=mod,--enable-meta=no,"
+
+#--enable-ndb          enable MySQL NDB Cluster backend no|yes|mod [no]
+PACKAGECONFIG[ndb] = "--enable-ndb=mod,--enable-ndb=no,"
+
+#--enable-null         enable null backend no|yes|mod no
+PACKAGECONFIG[null] = "--enable-null=mod,--enable-null=no,"
+
+#--enable-passwd       enable passwd backend no|yes|mod no
+PACKAGECONFIG[passwd] = "--enable-passwd=mod,--enable-passwd=no,"
+
+#--enable-perl         enable perl backend no|yes|mod no
+#  This requires a loadable perl dynamic library, if enabled without
+#  doing something appropriate (building perl?) the build will pick
+#  up the build machine perl - not good (inherit perlnative?)
+PACKAGECONFIG[perl] = "--enable-perl=mod,--enable-perl=no,perl"
+
+#--enable-relay        enable relay backend no|yes|mod [yes]
+PACKAGECONFIG[relay] = "--enable-relay=mod,--enable-relay=no,"
+
+#--enable-sock         enable sock backend no|yes|mod [no]
+PACKAGECONFIG[sock] = "--enable-sock=mod,--enable-sock=no,"
+
+#--enable-sql          enable sql backend no|yes|mod no
+# sql requires some sql backend which provides sql.h, sqlite* provides
+# sqlite.h (which may be compatible but hasn't been tried.)
+PACKAGECONFIG[sql] = "--enable-sql=mod,--enable-sql=no,sqlite3"
+
+#--enable-wt           enable wt backend no|yes|mod no
+# back-wt is marked currently as experimental
+PACKAGECONFIG[wt] = "--enable-wt=mod,--enable-wt=no"
+
+#--enable-dyngroup     Dynamic Group overlay no|yes|mod no
+#  This is a demo, Proxy Cache defines init_module which conflicts with the
+#  same symbol in dyngroup
+PACKAGECONFIG[dyngroup] = "--enable-dyngroup=mod,--enable-dyngroup=no,"
+
+#--enable-proxycache   Proxy Cache overlay no|yes|mod no
+PACKAGECONFIG[proxycache] = "--enable-proxycache=mod,--enable-proxycache=no,"
+FILES:${PN}-overlay-proxycache = "${md}/pcache-*.so.*"
+PACKAGES += "${PN}-overlay-proxycache"
+
+# Append URANDOM_DEVICE='/dev/urandom' to CPPFLAGS:
+# This allows tls to obtain random bits from /dev/urandom, by default
+# it was disabled for cross-compiling.
+CPPFLAGS:append = " -D_GNU_SOURCE -DURANDOM_DEVICE=\'/dev/urandom\' -fPIC"
+
+LDFLAGS:append = " -pthread"
+
+do_configure() {
+    rm -f ${S}/libtool
+    aclocal
+    libtoolize --force --copy
+    gnu-configize
+    cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/ltmain.sh ${S}/build
+    cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/missing ${S}/build
+    cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/compile ${S}/build
+    autoconf
+    oe_runconf
+}
+
+LEAD_SONAME = "libldap-${LDAP_VER}.so.*"
+
+# The executables go in a separate package.  This allows the
+# installation of the libraries with no daemon support.
+# Each module also has its own package - see above.
+PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin"
+
+# Package contents - shift most standard contents to -bin
+FILES:${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data"
+FILES:${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \
+    ${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \
+    ${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*"
+FILES:${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp"
+FILES:${PN}-bin = "${bindir}"
+FILES:${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libexecdir}/openldap/*.a ${libexecdir}/openldap/*.la ${libexecdir}/openldap/*.so ${libdir}/pkgconfig/*.pc"
+FILES:${PN}-dbg += "${libexecdir}/openldap/.debug"
+
+do_install:append() {
+    install -d ${D}${sysconfdir}/init.d
+    cat ${WORKDIR}/initscript > ${D}${sysconfdir}/init.d/openldap
+    chmod 755 ${D}${sysconfdir}/init.d/openldap
+    # This is duplicated in /etc/openldap and is for slapd
+    rm -f ${D}${localstatedir}/openldap-data/DB_CONFIG.example
+
+    # Installing slapd under ${sbin} is more FHS and LSB compliance
+    mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd
+    rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
+    SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema slapmodify"
+    cd ${D}/${sbindir}/
+    rm -f ${SLAPTOOLS}
+    for i in ${SLAPTOOLS}; do ln -sf slapd $i; done
+
+    rmdir "${D}${localstatedir}/run"
+    rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
+
+    install -d ${D}${systemd_unitdir}/system/
+    install -m 0644 ${WORKDIR}/slapd.service ${D}${systemd_unitdir}/system/
+    sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/*.service
+
+    # Uses mdm as the database
+    #  and localstatedir as data directory ...
+    sed -e 's/# modulepath/modulepath/' \
+        -e 's/# moduleload\s*back_bdb.*/moduleload    back_mdb/' \
+        -e 's/database\s*bdb/database        mdb/' \
+        -e 's%^directory\s*.*%directory   ${localstatedir}/${BPN}/data/%' \
+        -i ${D}${sysconfdir}/openldap/slapd.conf
+
+    mkdir -p ${D}${localstatedir}/${BPN}/data
+}
+
+INITSCRIPT_PACKAGES = "${PN}-slapd"
+INITSCRIPT_NAME:${PN}-slapd = "openldap"
+INITSCRIPT_PARAMS:${PN}-slapd = "defaults"
+SYSTEMD_SERVICE:${PN}-slapd = "hostapd.service"
+SYSTEMD_AUTO_ENABLE:${PN}-slapd ?= "disable"
+
+PACKAGES_DYNAMIC += "^${PN}-backends.* ^${PN}-backend-.*"
+
+# The modules require their .so to be dynamicaly loaded
+INSANE_SKIP:${PN}-backend-asyncmeta  += "dev-so"
+INSANE_SKIP:${PN}-backend-dnssrv     += "dev-so"
+INSANE_SKIP:${PN}-backend-ldap       += "dev-so"
+INSANE_SKIP:${PN}-backend-meta       += "dev-so"
+INSANE_SKIP:${PN}-backend-mdb        += "dev-so"
+INSANE_SKIP:${PN}-backend-null       += "dev-so"
+INSANE_SKIP:${PN}-backend-passwd     += "dev-so"
+
+python populate_packages:prepend () {
+    backend_dir    = d.expand('${libexecdir}/openldap')
+    do_split_packages(d, backend_dir, 'back_([a-z]*)\.so$', 'openldap-backend-%s', 'OpenLDAP %s backend', prepend=True, extra_depends='', allow_links=True)
+    do_split_packages(d, backend_dir, 'back_([a-z]*)\-.*\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True)
+
+    metapkg = "${PN}-backends"
+    d.setVar('ALLOW_EMPTY:' + metapkg, "1")
+    d.setVar('FILES:' + metapkg, "")
+    metapkg_rdepends = []
+    packages = d.getVar('PACKAGES').split()
+    for pkg in packages[1:]:
+        if pkg.count("openldap-backend-") and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale"):
+            metapkg_rdepends.append(pkg)
+    d.setVar('RDEPENDS:' + metapkg, ' '.join(metapkg_rdepends))
+    d.setVar('DESCRIPTION:' + metapkg, 'OpenLDAP backends meta package')
+    packages.append(metapkg)
+    d.setVar('PACKAGES', ' '.join(packages))
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.22.0.bb b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.22.0.bb
index 44a0dcc..f1ac7df 100644
--- a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.22.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.22.0.bb
@@ -13,7 +13,7 @@
 
 #v0.21.0
 SRCREV = "c902e1992195e00ada12d71beb1029287cd72037"
-SRC_URI = "git://github.com/OpenSC/OpenSC \
+SRC_URI = "git://github.com/OpenSC/OpenSC;branch=master;protocol=https \
           "
 DEPENDS = "virtual/libiconv openssl"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/pcp/pcp-native_5.3.5.bb b/meta-openembedded/meta-oe/recipes-support/pcp/pcp-native_5.3.5.bb
new file mode 100644
index 0000000..029a475
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pcp/pcp-native_5.3.5.bb
@@ -0,0 +1,49 @@
+require pcp.inc
+inherit python3native native 
+#autotools-brokensep 
+DEPENDS = "python3-native python3-setuptools-native flex-native bison-native"
+
+export PCP_DIR = "${D}"
+export PCP_TMP_DIR = "${D}/tmp"
+export PCP_BIN_DIR = "${D}/usr/bin"
+
+B = "${S}"
+
+do_configure:prepend() {
+    export SED=${TMPDIR}/hosttools/sed
+    export AR=${TMPDIR}/hosttools/ar
+#    export PYTHON=python3
+    
+    rm -rf ${S}/include/pcp/configsz.h
+    rm -rf ${S}/include/pcp/platformsz.h
+
+}
+do_compile:prepend() {
+    sed -i -e "s,#undef HAVE_64BIT_LONG,,g" \
+           -e "s,#undef HAVE_64BIT_PTR,,g" \
+           -e "s,#undef PM_SIZEOF_SUSECONDS_T,,g" \
+           -e "s,#undef PM_SIZEOF_TIME_T,,g" \
+           ${S}/src/include/pcp/config.h.in
+
+    export AR=${TMPDIR}/hosttools/ar
+#    export PYTHON=python3
+}
+
+do_compile() {
+        oe_runmake default_pcp
+}
+
+do_install () {
+    oe_runmake install \
+    PCP_ETC_DIR=${D}/${sysconfdir} \
+    PCP_SYSCONF_DIR=${D}/${sysconfdir} \
+    PCP_VAR_DIR=${D}/${localstatedir} \
+    PCP_SHARE_DIR=${D}/${datadir} \
+    PCP_BIN_DIR=${D}/${bindir} \
+    PCP_BINADM_DIR=${D}/${libexecdir}/pcp/bin \
+    PCP_LIBADM_DIR=${D}/${libdir} \
+    PCP_LIB_DIR=${D}/${libdir} \
+    PCP_MAN_DIR=${D}/${mandir} \
+    PCP_DOC_DIR=${D}/${docdir} 
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pcp/pcp.inc b/meta-openembedded/meta-oe/recipes-support/pcp/pcp.inc
new file mode 100644
index 0000000..37b6c45
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pcp/pcp.inc
@@ -0,0 +1,34 @@
+SUMMARY = "System-level performance monitoring and performance management"
+HOMEPAGE = "http://www.pcp.io"
+SECTION =  "Applications/System"
+
+LICENSE = "GPLv2+ & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=37ab75b580d5aad4ada04260efa3702f \
+                    "
+COMPATIBLE_HOST:libc-musl = "null"
+
+SRC_URI = "https://performancecopilot.jfrog.io/artifactory/pcp-source-release/pcp-5.3.5.src.tar.gz \
+	   file://config.linux \
+	   "
+
+SRC_URI[sha256sum] = "589a610f753a49af6d2015cede87e9d469bd07880ebef26fe1607b6ded375e97"
+
+inherit setuptools3-base pkgconfig autotools
+
+B = "${S}"
+
+# Specify any options you want to pass to the configure script using EXTRA_OECONF:
+CACHED_CONFIGUREVARS = "PACKAGE_DISTRIBUTION=arch"
+EXTRA_OECONF:append = " --with-dstat-symlink=yes --with-infiniband=no \
+                --with-pmdapodman=no --with-python=no --with-python3=yes --with-perl=no \
+		--with-pmdabcc=no --with-pmdajson=no  --with-perfevent=no \
+		--with-pmdabcc=yes \
+		--with-rundir=${localstatedir}/run \
+                --with-sysconfigdir=${sysconfdir} \
+                --with-logdir=${localstatedir}/log \
+                --with-docdir=${docdir} \
+                "
+
+PACKAGECONFIG[qt5] = "--with-qt=yes --with-qt3d=yes,--with-qt=no --with-qt3d=no,qtbase qt3d"
+
+PACKAGECONFIG ?= ""
diff --git a/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch
new file mode 100644
index 0000000..2924998
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch
@@ -0,0 +1,45 @@
+From db9e6a4b7a48dee62fccb662347dd638a2d286d5 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@fujitsu.com>
+Date: Thu, 2 Dec 2021 14:29:06 +0900
+Subject: [PATCH] Remove unsuitble part for cross-compile.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
+---
+ configure.ac               | 6 ------
+ src/libpcp/src/GNUmakefile | 1 -
+ 2 files changed, 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 5b25382..5d24714 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -623,12 +623,6 @@ fi
+ which=$WHICH
+ AC_SUBST(which)
+ 
+-if test -z "$AR"; then
+-    AC_PATH_PROGS(AR, [gcc-ar ar], /usr/bin/ar)
+-fi
+-if test ! -x "$AR"; then
+-    AC_MSG_ERROR([cannot find a valid 'ar' command.])
+-fi
+ ar=$AR
+ AC_SUBST(ar)
+ 
+diff --git a/src/libpcp/src/GNUmakefile b/src/libpcp/src/GNUmakefile
+index 3c4ccd6..d1eba19 100644
+--- a/src/libpcp/src/GNUmakefile
++++ b/src/libpcp/src/GNUmakefile
+@@ -176,7 +176,6 @@ exports:	exports.in mk.exports
+ # cases
+ #
+ check.done:	$(OBJECTS)
+-	./check-statics
+ 	touch check.done
+ 
+ ifneq ($(LIBTARGET),)
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pcp/pcp/config.linux b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/config.linux
new file mode 100644
index 0000000..191f87a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/config.linux
@@ -0,0 +1,13 @@
+sizeof_int=4
+sizeof_long=4
+sizeof_pointer=8
+sizeof_suseconds_t=8
+sizeof_time_t=8
+bit_field_scheme=2100
+enable_python3='yes'
+enable_python3='true'
+have_python_OrderedDict="true"
+have_python=python3
+printf_p_prefix=0x
+printf_fmt_int64=I64d
+strtoint64=strtoll
diff --git a/meta-openembedded/meta-oe/recipes-support/pcp/pcp/fix_parallel_make.patch b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/fix_parallel_make.patch
new file mode 100644
index 0000000..630f51a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/fix_parallel_make.patch
@@ -0,0 +1,11 @@
+--- a/qa/src/GNUlocaldefs
++++ b/qa/src/GNUlocaldefs
+@@ -728,7 +728,7 @@ scale.o:	localconfig.h
+ 779246.o:	libpcp.h
+ aggrstore.o:	libpcp.h
+ badmmv.o:	libpcp.h
+-chkacc1.o:	libpcp.h
++chkacc1.o:	libpcp.h localconfig.h
+ chkacc2.o:	libpcp.h
+ chkacc3.o:	libpcp.h
+ chkacc4.o:	libpcp.h
diff --git a/meta-openembedded/meta-oe/recipes-support/pcp/pcp/pass-options-to-AR.patch b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/pass-options-to-AR.patch
new file mode 100644
index 0000000..6fa864c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/pass-options-to-AR.patch
@@ -0,0 +1,29 @@
+Do not pass cr option
+
+These options are already coming from builddefs
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/src/include/builddefs.in
++++ b/src/include/builddefs.in
+@@ -167,7 +167,7 @@ OBJECTS = $(ASFILES:.s=.o) \
+ 
+ #NB: don't override $(MAKE); gnumake sets it well, propagating -j etc.
+ #MAKE	= @make@
+-AR	= @ar@
++AR	= @ar@ cqs
+ CC	= @cc@
+ CXX	= @cxx@
+ LD	= @ld@
+--- a/src/include/buildrules
++++ b/src/include/buildrules
+@@ -93,7 +93,7 @@ $(STATICLIBTARGET) : $(SUBDIRS) $(OBJECT
+ ifeq ($(TARGET_OS), darwin)
+ 	libtool -static -o $(STATICLIBTARGET) $?
+ else
+-	$(AR) cr $(STATICLIBTARGET) $?
++	$(AR) $(STATICLIBTARGET) $?
+ endif
+ endif
+ 
diff --git a/meta-openembedded/meta-oe/recipes-support/pcp/pcp_5.3.5.bb b/meta-openembedded/meta-oe/recipes-support/pcp/pcp_5.3.5.bb
new file mode 100644
index 0000000..290dbaa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pcp/pcp_5.3.5.bb
@@ -0,0 +1,221 @@
+require pcp.inc
+#inherit perlnative
+
+# NOTE: the following prog dependencies are unknown, ignoring: gtar gzip pkgmk xmlto lzma qshape md5sum pod2man publican git makedepend qmake-qt4 xconfirm true gmake xz dblatex hdiutil rpm bzip2 which mkinstallp dtrace seinfo qmake-qt5 gawk dlltool rpmbuild dpkg makepkg qmake echo
+# NOTE: unable to map the following pkg-config dependencies: libmicrohttpd libsystemd-journal
+#       (this is based on recipes that have previously been built and packaged)
+# NOTE: the following library dependencies are unknown, ignoring: nspr gen ibumad regex sasl2 pfm nss papi ibmad
+#       (this is based on recipes that have previously been built and packaged)
+DEPENDS += "perl-native bison-native flex-native python3-native python3-setuptools python3 \
+	pcp-native cairo zlib ncurses readline libx11 avahi openssl"
+
+
+SRC_URI += "file://0001-Remove-unsuitble-part-for-cross-compile.patch \
+            file://pass-options-to-AR.patch \
+            file://fix_parallel_make.patch \
+           "
+
+export PCP_DIR="${RECIPE_SYSROOT_NATIVE}"
+#export PCP_RUN_DIR="${RECIPE_SYSROOT_NATIVE}"
+EXTRA_OEMAKE = "CC="${CC}" LD="${LD}""
+inherit useradd systemd 
+
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
+SYSTEMD_SERVICE:${PN} = "pmcd.service pmcd.service pmie_check.service pmie_farm_check.service \
+                         pmlogger_daily.service pmlogger_farm_check.service pmfind.service \
+                         pmie_daily.service  pmlogger.service pmlogger_daily_report.service \
+                         pmproxy.service pmie.service pmie_farm.service pmlogger_check.service \
+                         pmlogger_farm.service"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --home ${localstatedir}/lib/pcp --no-create-home \
+                       --user-group pcp"
+
+USERADD_PACKAGES = "${PN}-testsuite"
+USERADD_PARAM:${PN}-testsuite = "--system --home ${localstatedir}/lib/pcp/testsuite --no-create-home \
+                       --user-group pcpqa"
+
+RDEPENDS:${PN} += "perl"
+RDEPENDS:${PN}-testsuite += "${PN} bash perl"
+RDEPENDS:python3-${PN} += "${PN} python3"
+
+do_configure:prepend () {
+    cp ${WORKDIR}/config.linux ${B}
+    rm -rf ${S}/include/pcp/configsz.h
+    rm -rf ${S}/include/pcp/platformsz.h
+    export SED=${TMPDIR}/hosttools/sed
+    export PYTHON=python3
+}
+
+do_compile:prepend() {
+	sed -i -e "s,#undef HAVE_64BIT_LONG,,g" \
+		-e "s,#undef HAVE_64BIT_PTR,,g" \
+		-e "s,#undef PM_SIZEOF_SUSECONDS_T,,g" \
+		-e "s,#undef PM_SIZEOF_TIME_T,,g" \
+		${S}/src/include/pcp/config.h.in
+	sed -i -e "s,HAVE_PYTHON_ORDEREDDICT = false,HAVE_PYTHON_ORDEREDDICT = true,g" \
+		${S}/src/include/builddefs
+	sed -i -e "s,TOPDIR)/python3-pcp.list,TOPDIR)/python3-pcp.list --install-lib=${PYTHON_SITEPACKAGES_DIR},g" ${S}/src/python/GNUmakefile
+	export PYTHON=python3
+	#export PYTHON3=${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN}
+}
+
+do_compile() {
+        oe_runmake default_pcp 
+}
+
+do_install () {
+	export NO_CHOWN=true
+	oe_runmake install DIST_ROOT=${D}\
+	install_pcp
+
+	rm -rf ${D}${localstatedir}/log
+	rm -rf ${D}${localstatedir}/lib/pcp/pmcd
+	rm -rf ${D}${localstatedir}/lib/pcp/tmp
+	rm -rf ${D}${localstatedir}/run
+	mv ${D}${docdir}/C* ${D}${docdir}/pcp-doc/
+	mv ${D}${docdir}/I* ${D}${docdir}/pcp-doc/
+	mv ${D}${docdir}/R* ${D}${docdir}/pcp-doc/
+	mv ${D}${docdir}/V* ${D}${docdir}/pcp-doc/
+	sed -i "s#PCP_AWK_PROG=.*#PCP_AWK_PROG=awk#" ${D}/${sysconfdir}/pcp.conf
+	sed -i "s#PCP_SORT_PROG=.*#PCP_SORT_PROG=sort#" ${D}/${sysconfdir}/pcp.conf
+	sed -i "s#PCP_ECHO_PROG=.*#PCP_ECHO_PROG=echo#" ${D}/${sysconfdir}/pcp.conf
+	sed -i "s#PCP_WHICH_PROG=.*#PCP_WHICH_PROG=which#" ${D}/${sysconfdir}/pcp.conf
+}
+
+PACKAGES += " ${PN}-export-zabbix-agent ${PN}-testsuite \
+	libpcp-gui2  libpcp-gui2-dev \
+	libpcp-import1 \
+	libpcp-mmv1 libpcp-mmv1-dev \
+	libpcp-pmda3 libpcp-pmda3-dev \
+	libpcp-trace2 libpcp-trace2-dev \
+	libpcp-web1 libpcp-web1-dev \
+	libpcp3 libpcp3-dev python3-${PN}\
+"
+FILES:libpcp-gui2 = "${libdir}/libpcp_gui.so.2 \
+"	
+FILES:libpcp-gui2-dev = " \
+	${libdir}/libpcp_gui.so \
+	${libdir}/libpcp_gui.a \
+	${includedir}/pmafm.h \
+	${includedir}/pmtime.h \
+"
+FILES:libpcp-mmv1 = " \
+	${libdir}/libpcp_mmv.so.1 \
+"
+FILES:libpcp-mmv1-dev = " \
+	${libdir}/libpcp_mmv.a \
+	${libdir}/libpcp_mmv.so \
+	${libdir}/libpcp_mmv.so \
+	${includedir}/mmv_stats.h \
+	${includedir}/mmv_dev.h \
+	${datadir}/man/man3/mmv_* \
+	${datadir}/man/man5/mmv.5.gz \
+"
+FILES:libpcp-import1 = " \
+	${libdir}/libpcp_import.so.1 \
+"
+FILES:libpcp-pmda3 = " \
+	${libdir}/libpcp_pmda.so.3 \
+"
+FILES:libpcp-pmda3-dev = " \
+	${includedir}/pmda.h \
+	${includedir}/pmdaroot.h \
+	${libdir}/libpcp_pmda.a \
+	${libdir}/libpcp_pmda.so \
+	${libdir}/pkgconfig/libpcp_pmda.pc \
+	${datadir}/man/man3/PMDA.3.gz \
+	${datadir}/man/man3/pmda* \
+"
+FILES:libpcp-trace2 = " \
+	${libdir}/libpcp_trace.so.2 \
+"
+FILES:libpcp-trace2-dev = " \
+	${includedir}/trace.h \
+	${includedir}/trace_dev.h \
+	${libdir}/libpcp_trace.a \
+	${libdir}/libpcp_trace.so \
+	${datadir}/man/man3/pmtrace* \
+"
+FILES:libpcp-web1 = " \
+	${libdir}/libpcp_web.so.1 \
+"
+FILES:libpcp-web1-dev = " \
+	${includedir}/pmhttp.h \
+	${includedir}/pmjson.h \
+	${libdir}/libpcp_web.a \
+	${libdir}/libpcp_web.so \
+	${datadir}/man/man3/pmhttp* \
+	${datadir}/man/man3/pmjson* \
+"
+FILES:libpcp3 = " \
+	${libdir}/libpcp.so.3 \
+"
+
+FILES:${PN} = " \
+	${sysconfdir}/pcp \
+	${sysconfdir}/cron.d \
+	${sysconfdir}/init.d \
+	${libexecdir} \
+	${bindir} \
+	${datadir}/bash-completion \
+	${datadir}/pcp-gui \
+	${datadir}/zsh \
+	${systemd_system_unitdir}/ \
+	${libdir}/pcp/ \
+	${datadir}/pcp \
+	${libdir}/*.sh \
+	${datadir}/man \
+	${libdir}/rc-proc.sh.minimal \
+	${sysconfdir}/p* \
+	${sysconfdir}/s* \
+	${localstatedir}/lib/pcp/config \
+	${localstatedir}/lib/pcp/pmdas/ \
+	${localstatedir}/lib/pcp/pmns \
+	${libdir}/libpcp_fault.so.3 \
+"
+
+FILES:${PN}-export-zabbix-agent += " \
+	${libdir}/zabbix \
+	${sysconfdir}/zabbix \
+	${mandir}/man3/zbxpcp.3.gz \
+	${libdir}/zabbix \
+"
+FILES:${PN}-testsuite = "${localstatedir}/lib/pcp/testsuite/"
+FILES:python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}"
+FILES:${PN}-dev += " \
+        ${includedir}/pcp \
+        ${libdir}/libpcp.a \
+        ${libdir}/libpcp.so \
+        ${localstatedir}/lib/pcp/pmdas/*/*.so \
+        ${libexecdir}/pcp/bin/install-sh \
+        ${libdir}/pkgconfig/libpcp.pc \
+        ${libdir}/zabbix/modules/*.so \
+        ${datadir}/man/man3/LOGIMPORT.3.gz \
+        ${datadir}/man/man3/P* \
+        ${datadir}/man/man3/Q* \
+        ${datadir}/man/man3/__pm* \
+        ${datadir}/man/man3/pmA* \
+        ${datadir}/man/man3/pmC* \
+        ${datadir}/man/man3/pmD* \
+        ${datadir}/man/man3/pmE* \
+        ${datadir}/man/man3/pmF* \
+        ${datadir}/man/man3/pmG* \
+        ${datadir}/man/man3/pmH* \
+        ${datadir}/man/man3/pmI* \
+        ${datadir}/man/man3/pmL* \
+        ${datadir}/man/man3/pmM* \
+        ${datadir}/man/man3/pmN* \
+        ${datadir}/man/man3/pmO* \
+        ${datadir}/man/man3/pmP* \
+        ${datadir}/man/man3/pmR* \
+        ${datadir}/man/man3/pmS* \
+        ${datadir}/man/man3/pmT* \
+        ${datadir}/man/man3/pmU* \
+        ${datadir}/man/man3/pmW* \
+        ${datadir}/man/man3/pmf* \
+        ${datadir}/man/man3/pmg* \
+        ${datadir}/man/man3/pmi* \
+        ${datadir}/man/man3/pms* \
+        ${datadir}/man/man3/pmt* \
+"
diff --git a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.9.0.bb b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.9.0.bb
index 93b18ba..d90dd43 100644
--- a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.9.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.9.0.bb
@@ -1,11 +1,11 @@
 SUMMARY = "PC/SC Lite smart card framework and applications"
 HOMEPAGE = "http://pcsclite.alioth.debian.org/"
-LICENSE = "BSD & GPLv3+"
-LICENSE:${PN} = "BSD"
-LICENSE:${PN}-lib = "BSD"
-LICENSE:${PN}-doc = "BSD"
-LICENSE:${PN}-dev = "BSD"
-LICENSE:${PN}-dbg = "BSD & GPLv3+"
+LICENSE = "BSD-3-Clause & GPLv3+"
+LICENSE:${PN} = "BSD-3-Clause"
+LICENSE:${PN}-lib = "BSD-3-Clause"
+LICENSE:${PN}-doc = "BSD-3-Clause"
+LICENSE:${PN}-dev = "BSD-3-Clause"
+LICENSE:${PN}-dbg = "BSD-3-Clause & GPLv3+"
 LICENSE:${PN}-spy = "GPLv3+"
 LICENSE:${PN}-spy-dev = "GPLv3+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=628c01ba985ecfa21677f5ee2d5202f6"
diff --git a/meta-openembedded/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.5.7.bb b/meta-openembedded/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.5.7.bb
deleted file mode 100644
index a5825d5..0000000
--- a/meta-openembedded/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.5.7.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Some tools to be used with smart cards and PC/SC"
-HOMEPAGE = "http://ludovic.rousseau.free.fr/softwares/pcsc-tools"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SRC_URI = "git://github.com/LudovicRousseau/pcsc-tools;protocol=https"
-
-SRCREV = "34ac207adbba0d1a951b314c1676610a1d0bba01"
-
-inherit autotools pkgconfig
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "pcsc-lite"
-
-FILES:${PN} += "${datadir}/pcsc/smartcard_list.txt"
diff --git a/meta-openembedded/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.5.8.bb b/meta-openembedded/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.5.8.bb
new file mode 100644
index 0000000..19654f1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.5.8.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Some tools to be used with smart cards and PC/SC"
+HOMEPAGE = "http://ludovic.rousseau.free.fr/softwares/pcsc-tools"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "git://github.com/LudovicRousseau/pcsc-tools;protocol=https;branch=master"
+
+SRCREV = "53923ef8e98062c478f99e3bfcc8eb4654996c27"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "pcsc-lite"
+
+FILES:${PN} += "${datadir}/pcsc/smartcard_list.txt"
diff --git a/meta-openembedded/meta-oe/recipes-support/picocom/picocom_git.bb b/meta-openembedded/meta-oe/recipes-support/picocom/picocom_git.bb
index 3d26b93..801300e 100644
--- a/meta-openembedded/meta-oe/recipes-support/picocom/picocom_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/picocom/picocom_git.bb
@@ -9,7 +9,7 @@
 
 SRCREV = "90385aabe2b51f39fa130627d46b377569f82d4a"
 
-SRC_URI = "git://github.com/npat-efault/picocom \
+SRC_URI = "git://github.com/npat-efault/picocom;branch=master;protocol=https \
            file://0001-Fix-building-with-musl.patch \
            "
 
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/funyahoo-plusplus_git.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/funyahoo-plusplus_git.bb
index 89d4636..6c7802e 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/funyahoo-plusplus_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/funyahoo-plusplus_git.bb
@@ -7,7 +7,7 @@
 
 inherit pkgconfig
 
-SRC_URI = "git://github.com/EionRobb/funyahoo-plusplus;branch=master;protocol=git"
+SRC_URI = "git://github.com/EionRobb/funyahoo-plusplus;branch=master;protocol=https"
 SRCREV = "fbbd9c591100aa00a0487738ec7b6acd3d924b3f"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/icyque_git.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/icyque_git.bb
index 02cd12b..2f415de 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/icyque_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/icyque_git.bb
@@ -9,7 +9,7 @@
 
 inherit pkgconfig
 
-SRC_URI = "git://github.com/EionRobb/icyque"
+SRC_URI = "git://github.com/EionRobb/icyque;branch=master;protocol=https"
 SRCREV = "513fc162d5d1a201c2b044e2b42941436d1069d5"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb
index 1a82495..a29a445 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb
@@ -7,7 +7,7 @@
 
 inherit pkgconfig
 
-SRC_URI = "git://github.com/EionRobb/skype4pidgin;branch=master;protocol=git"
+SRC_URI = "git://github.com/EionRobb/skype4pidgin;branch=master;protocol=https"
 SRCREV = "b226d1c457d73900ae89b8a7469247fbe33677a6"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.11.0.bb b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.11.0.bb
index 5f63910..c364f72 100644
--- a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.11.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.11.0.bb
@@ -9,7 +9,7 @@
 DEPENDS = "libpcre zlib"
 
 SRC_URI = " \
-    git://github.com/pocoproject/poco.git;branch=master \
+    git://github.com/pocoproject/poco.git;branch=master;protocol=https \
     file://0001-fix-missing-expat-definition.patch \
     file://run-ptest \
    "
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_21.10.0.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_21.10.0.bb
deleted file mode 100644
index 164a348..0000000
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_21.10.0.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base"
-HOMEPAGE = "https://poppler.freedesktop.org/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.xz \
-           file://0001-Do-not-overwrite-all-our-build-flags.patch \
-           file://basename-include.patch \
-           "
-SRC_URI[sha256sum] = "964b5b16290fbec3fae57c2a5bcdea49bb0736bd750c3a3711c47995c9efc394"
-
-DEPENDS = "fontconfig zlib cairo lcms glib-2.0"
-
-inherit cmake pkgconfig gobject-introspection
-
-PACKAGECONFIG ??= "jpeg openjpeg png tiff nss splash"
-PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON -DENABLE_DCTDECODER=libjpeg,-DWITH_JPEG=OFF -DENABLE_DCTDECODER=none,jpeg"
-PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng"
-PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff"
-PACKAGECONFIG[curl] = "-DENABLE_LIBCURL=ON,-DENABLE_LIBCURL=OFF,curl"
-PACKAGECONFIG[openjpeg] = "-DENABLE_LIBOPENJPEG=openjpeg2,-DENABLE_LIBOPENJPEG=none,openjpeg"
-PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF,qtbase qttools-native"
-PACKAGECONFIG[nss] = "-DWITH_NSS3=ON,-DWITH_NSS3=OFF,nss"
-PACKAGECONFIG[splash] = "-DENABLE_SPLASH=ON -DENABLE_BOOST=ON,-DENABLE_SPLASH=OFF -DENABLE_BOOST=OFF,boost"
-
-# surprise - did not expect this to work :)
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
-
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
-
-EXTRA_OECMAKE += " \
-    -DENABLE_CMS=lcms2 \
-    -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
-    -DBUILD_GTK_TESTS=OFF \
-    -DENABLE_ZLIB=ON \
-    -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}' \
-    ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_GOBJECT_INTROSPECTION=ON', '-DENABLE_GOBJECT_INTROSPECTION=OFF', d)} \
-"
-
-do_configure:append() {
-    # poppler macro uses pkg-config to check for g-ir runtimes. Something
-    # makes them point to /usr/bin. Align them to sysroot - that's where the
-    # gir-wrappers are:
-    sed -i 's: ${bindir}/g-ir: ${STAGING_BINDIR}/g-ir:' ${B}/build.ninja
-}
-
-PACKAGES =+ "libpoppler libpoppler-glib"
-FILES:libpoppler = "${libdir}/libpoppler.so.*"
-FILES:libpoppler-glib = "${libdir}/libpoppler-glib.so.*"
-
-RDEPENDS:libpoppler = "poppler-data"
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_22.01.0.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_22.01.0.bb
new file mode 100644
index 0000000..02df6d2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_22.01.0.bb
@@ -0,0 +1,51 @@
+SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base"
+HOMEPAGE = "https://poppler.freedesktop.org/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.xz \
+           file://0001-Do-not-overwrite-all-our-build-flags.patch \
+           file://basename-include.patch \
+           "
+SRC_URI[sha256sum] = "7d3493056b5b86413e5c693c2cae02c5c06cd8e618d14c2c31e2c84b67b2313e"
+
+DEPENDS = "fontconfig zlib cairo lcms glib-2.0"
+
+inherit cmake pkgconfig gobject-introspection
+
+PACKAGECONFIG ??= "jpeg openjpeg png tiff nss splash"
+PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON -DENABLE_DCTDECODER=libjpeg,-DWITH_JPEG=OFF -DENABLE_DCTDECODER=none,jpeg"
+PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng"
+PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff"
+PACKAGECONFIG[curl] = "-DENABLE_LIBCURL=ON,-DENABLE_LIBCURL=OFF,curl"
+PACKAGECONFIG[openjpeg] = "-DENABLE_LIBOPENJPEG=openjpeg2,-DENABLE_LIBOPENJPEG=none,openjpeg"
+PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF,qtbase qttools-native"
+PACKAGECONFIG[nss] = "-DWITH_NSS3=ON,-DWITH_NSS3=OFF,nss"
+PACKAGECONFIG[splash] = "-DENABLE_SPLASH=ON -DENABLE_BOOST=ON,-DENABLE_SPLASH=OFF -DENABLE_BOOST=OFF,boost"
+
+# surprise - did not expect this to work :)
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
+
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
+
+EXTRA_OECMAKE += " \
+    -DENABLE_CMS=lcms2 \
+    -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
+    -DBUILD_GTK_TESTS=OFF \
+    -DENABLE_ZLIB=ON \
+    -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}' \
+    ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_GOBJECT_INTROSPECTION=ON', '-DENABLE_GOBJECT_INTROSPECTION=OFF', d)} \
+"
+
+do_configure:append() {
+    # poppler macro uses pkg-config to check for g-ir runtimes. Something
+    # makes them point to /usr/bin. Align them to sysroot - that's where the
+    # gir-wrappers are:
+    sed -i 's: ${bindir}/g-ir: ${STAGING_BINDIR}/g-ir:' ${B}/build.ninja
+}
+
+PACKAGES =+ "libpoppler libpoppler-glib"
+FILES:libpoppler = "${libdir}/libpoppler.so.*"
+FILES:libpoppler-glib = "${libdir}/libpoppler-glib.so.*"
+
+RDEPENDS:libpoppler = "poppler-data"
diff --git a/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb b/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb
index ac36065..f34912e 100644
--- a/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb
@@ -6,7 +6,7 @@
 PV = "v190700"
 
 SRC_URI = " \
-    git://github.com/PortAudio/portaudio.git \
+    git://github.com/PortAudio/portaudio.git;branch=master;protocol=https \
     file://0001-Find-jack.patch \
     file://0001-cmake-Use-GNUInstallDirs.patch \
 "
diff --git a/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_1.0.2.bb b/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_1.0.2.bb
deleted file mode 100644
index 262f05f..0000000
--- a/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_1.0.2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "User-space tools for LinuxPPS"
-HOMEPAGE = "http://linuxpps.org"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRCREV = "cb48b7ecf7079ceba7081c78d4e61e507b0e8d2d"
-SRC_URI = "git://github.com/ago/pps-tools.git"
-
-S = "${WORKDIR}/git"
-
-RDEPENDS:${PN} = "bash"
-
-do_install() {
-        install -d ${D}${bindir} ${D}${includedir} \
-                   ${D}${includedir}/sys
-        oe_runmake 'DESTDIR=${D}' install
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_1.0.3.bb b/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_1.0.3.bb
new file mode 100644
index 0000000..344dbca
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_1.0.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "User-space tools for LinuxPPS"
+HOMEPAGE = "http://linuxpps.org"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRCREV = "c50cb7183e252b47308fa22f420e0a877277aa29"
+SRC_URI = "git://github.com/ago/pps-tools.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+RDEPENDS:${PN} = "bash"
+
+do_install() {
+        install -d ${D}${bindir} ${D}${includedir} \
+                   ${D}${includedir}/sys
+        oe_runmake 'DESTDIR=${D}' install
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/re2/re2_2020.11.01.bb b/meta-openembedded/meta-oe/recipes-support/re2/re2_2020.11.01.bb
index a289d96..698fe7e 100644
--- a/meta-openembedded/meta-oe/recipes-support/re2/re2_2020.11.01.bb
+++ b/meta-openembedded/meta-oe/recipes-support/re2/re2_2020.11.01.bb
@@ -5,7 +5,7 @@
 
 SRCREV = "166dbbeb3b0ab7e733b278e8f42a84f6882b8a25"
 
-SRC_URI = "git://github.com/google/re2.git;branch=master"
+SRC_URI = "git://github.com/google/re2.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.18.bb b/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.18.bb
index 5a915c4..996d854 100644
--- a/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.18.bb
+++ b/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.18.bb
@@ -26,7 +26,7 @@
 LDFLAGS:append:libc-musl = " -lexecinfo"
 
 SRCREV = "045862cc7d7dd986b349c68131df2f86b9b1cd9c"
-SRC_URI = "git://gitlab.com/Remmina/Remmina;protocol=https"
+SRC_URI = "git://gitlab.com/Remmina/Remmina;protocol=https;branch=master"
 S = "${WORKDIR}/git"
 
 inherit cmake features_check mime mime-xdg gtk-icon-cache pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb b/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
index 3cdf782..2887f4d 100644
--- a/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
@@ -25,7 +25,7 @@
 SRCREV = "4dc82bfe6be3f83fcfa94946dcf6accfd6a18031"
 PV = "1.4.4+git${SRCPV}"
 
-SRC_URI = "git://github.com/DrHyde/${BPN};branch=master;protocol=git \
+SRC_URI = "git://github.com/DrHyde/${BPN};branch=master;protocol=https \
            file://configure-fix-cmd_rsync.patch \
           "
 
diff --git a/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb b/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb
index bc2ec80..4d709fc 100644
--- a/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb
@@ -5,7 +5,7 @@
 
 inherit autotools
 
-SRC_URI = "git://github.com/sass/libsass.git;branch=master"
+SRC_URI = "git://github.com/sass/libsass.git;branch=master;protocol=https"
 SRCREV = "f6afdbb9288d20d1257122e71d88e53348a53af3"
 PV = "3.6.5"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb b/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb
index 407cbbd..9bb8c76 100644
--- a/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb
@@ -6,7 +6,7 @@
 
 inherit autotools pkgconfig
 
-SRC_URI = "git://github.com/sass/sassc.git"
+SRC_URI = "git://github.com/sass/sassc.git;branch=master;protocol=https"
 SRCREV = "66f0ef37e7f0ad3a65d2f481eff09d09408f42d0"
 S = "${WORKDIR}/git"
 PV = "3.6.2"
diff --git a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.38.bb b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.38.bb
deleted file mode 100644
index 4c0845a..0000000
--- a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.38.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-DESCRIPTION = "Satyr is a collection of low-level algorithms for program \
-failure processing, analysis, and reporting supporting kernel space, user \
-space, Python, and Java programs"
-
-HOMEPAGE = "https://github.com/abrt/satyr"
-LICENSE = "GPLv2"
-
-inherit autotools-brokensep python3native pkgconfig
-
-SRC_URI = "git://github.com/abrt/satyr.git \
-           file://0002-fix-compile-failure-against-musl-C-library.patch \
-"
-SRCREV = "ad0030f071b7ce7eb748eca3c31cb381038e2b21"
-S = "${WORKDIR}/git"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS += " \
-    gdb \
-    gperf-native \
-    json-c \
-    nettle \
-    glib-2.0 \
-"
-
-PACKAGES += "python3-${BPN}"
-FILES:python3-${BPN} = "${PYTHON_SITEPACKAGES_DIR}/${BPN}"
-
-PACKAGECONFIG ??= "python3 rpm"
-PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
-PACKAGECONFIG[rpm] = "--with-rpm, --without-rpm, rpm"
-
-do_configure:prepend() {
-    ${S}/gen-version
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.39.bb b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.39.bb
new file mode 100644
index 0000000..732a144
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.39.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Satyr is a collection of low-level algorithms for program \
+failure processing, analysis, and reporting supporting kernel space, user \
+space, Python, and Java programs"
+
+HOMEPAGE = "https://github.com/abrt/satyr"
+LICENSE = "GPLv2"
+
+inherit autotools-brokensep python3native pkgconfig
+
+SRC_URI = "git://github.com/abrt/satyr.git;branch=master;protocol=https \
+           file://0002-fix-compile-failure-against-musl-C-library.patch \
+"
+SRCREV = "f8a0dbfe7fcc6e44f03d66ca5c81363aea318380"
+S = "${WORKDIR}/git"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS += " \
+    gdb \
+    gperf-native \
+    json-c \
+    nettle \
+    glib-2.0 \
+"
+
+PACKAGES += "python3-${BPN}"
+FILES:python3-${BPN} = "${PYTHON_SITEPACKAGES_DIR}/${BPN}"
+
+PACKAGECONFIG ??= "python3 rpm"
+PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
+PACKAGECONFIG[rpm] = "--with-rpm, --without-rpm, rpm"
+
+do_configure:prepend() {
+    ${S}/gen-version
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb b/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
index 7f59b3e..87d9c52 100644
--- a/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
+++ b/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
@@ -6,7 +6,7 @@
 SRCREV = "00dbec2636ae0385ad028587e20e446272ff97ec"
 PV = "1.1+gitr${SRCPV}"
 
-SRC_URI = "git://github.com/freesmartphone/cornucopia.git;protocol=https"
+SRC_URI = "git://github.com/freesmartphone/cornucopia.git;protocol=https;branch=master"
 S = "${WORKDIR}/git/tools/serial_forward"
 
 inherit autotools native
diff --git a/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb b/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
index 0ef8298..dcad8f7 100644
--- a/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
@@ -6,7 +6,7 @@
 SRCREV = "07c6fdede0870edc37a8d51d033b6e7e29aa7c91"
 PV = "1.1+gitr${SRCPV}"
 
-SRC_URI = "git://github.com/freesmartphone/cornucopia.git \
+SRC_URI = "git://github.com/freesmartphone/cornucopia.git;branch=master;protocol=https \
            file://0001-serial_forward-Disable-default-static-linking.patch;striplevel=3 \
           "
 S = "${WORKDIR}/git/tools/serial_forward"
diff --git a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb
index 43ee19a..3d07c01 100644
--- a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb
@@ -5,7 +5,7 @@
 HOMEPAGE = "http://sg.danny.cz/sg/sg3_utils.html"
 SECTION = "console/admin"
 
-LICENSE = "GPLv2+ & BSD"
+LICENSE = "GPLv2+ & BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=f90da7fc52172599dbf082d7620f18ca"
 
 SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz \
diff --git a/meta-openembedded/meta-oe/recipes-support/smarty/smarty_3.1.39.bb b/meta-openembedded/meta-oe/recipes-support/smarty/smarty_3.1.39.bb
index 50d9958..c5b09a0 100644
--- a/meta-openembedded/meta-oe/recipes-support/smarty/smarty_3.1.39.bb
+++ b/meta-openembedded/meta-oe/recipes-support/smarty/smarty_3.1.39.bb
@@ -7,7 +7,7 @@
 
 DEPENDS = "php"
 
-SRC_URI = "git://github.com/smarty-php/smarty.git;protocol=https;tag=v${PV}"
+SRC_URI = "git://github.com/smarty-php/smarty.git;protocol=https;tag=v${PV};branch=master"
 
 FILES:${PN} = "${datadir}/php/smarty3/"
 
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 0079cf7..0d9a8c9 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
@@ -3,7 +3,7 @@
 LICENSE = "BSL-1.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
 
-SRC_URI += "git://github.com/martinmoene/span-lite"
+SRC_URI += "git://github.com/martinmoene/span-lite;branch=master;protocol=https"
 SRCREV = "cbb9c3c5162a0d7018c7b3e053153a04d4fbbbb9"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.9.2.bb b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.9.2.bb
index c103c34..ba6bbcc 100644
--- a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.9.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.9.2.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
 SRCREV = "eb3220622e73a4889eee355ffa37972b3cac3df5"
-SRC_URI = "git://github.com/gabime/spdlog.git;protocol=git;branch=v1.x; \
+SRC_URI = "git://github.com/gabime/spdlog.git;protocol=https;branch=v1.x; \
            file://0001-Enable-use-of-external-fmt-library.patch"
 
 DEPENDS += "fmt"
diff --git a/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb b/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
index bb41a33..8302576 100644
--- a/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
@@ -5,12 +5,12 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381"
 
 BPV = "1.0.0"
-PV = "${BPV}"
-SRCREV = "f5d87954bd9e13689481700105efe2f42199d364"
+PV = "1.0.1"
+SRCREV = "87da3bfc03f3088e2e880b6b48195bb225fafeac"
 
 S = "${WORKDIR}/git"
 
-SRC_URI = "git://github.com/cpb-/spi-tools.git;protocol=git"
+SRC_URI = "git://github.com/cpb-/spi-tools.git;protocol=https;branch=master"
 
 
 inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/srecord/files/libtool.patch b/meta-openembedded/meta-oe/recipes-support/srecord/files/libtool.patch
new file mode 100644
index 0000000..95063ce
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/srecord/files/libtool.patch
@@ -0,0 +1,67 @@
+Instead of just looking for a libtool binary, actually configure libtool.
+
+As the build doesn't use automake we need to manually set top_builddir in the Makefile.
+
+Upstream-Status: Inactive-Upstream [2014]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/Makefile.in b/Makefile.in
+index a2b5494..aa0b8ca 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -36,6 +36,7 @@
+ #
+ srcdir = @srcdir@
+ VPATH = @srcdir@
++top_builddir = @srcdir@
+
+ #
+ # the name of the install program to use
+diff --git a/etc/configure.ac b/etc/configure.ac
+index e444543..b137443 100644
+--- a/etc/configure.ac
++++ b/etc/configure.ac
+@@ -161,42 +161,7 @@ AS_IF([test "x$with_gcrypt" != xno], AC_GCRYPT_SETUP())
+ dnl!
+ dnl!  Now look for libtool.
+ dnl!
+-AC_CHECK_PROGS(LIBTOOL, libtool)
+-if test -z "$LIBTOOL"
+-then
+-  AC_MSG_RESULT([
+-        You must have GNU Libtool installed to build srecord.
+-        Homepage: http://www.gnu.org/software/libtool/])
+-  OK=no
+-  if apt-get --version > /dev/null 2> /dev/null; then
+-    AC_MSG_RESULT([
+-        The following command may be used to install it:
+-        sudo apt-get install libtool
+-    ])
+-    OK=yes
+-  fi
+-  if yum --version > /dev/null 2> /dev/null; then
+-    AC_MSG_RESULT([
+-        The following command may be used to install it:
+-        sudo yum install libtool
+-    ])
+-    OK=yes
+-  fi
+-  if pkg_info -a > /dev/null 2> /dev/null; then
+-    AC_MSG_RESULT([
+-        The following command may be used to install it:
+-        sudo pkg_add -r libtool
+-    ])
+-    OK=yes
+-  fi
+-  if test "$OK" != "yes"; then
+-    AC_MSG_RESULT([
+-        If you are using a package based install, you will need the
+-        libtool package.
+-    ])
+-  fi
+-  exit 1
+-fi
++LT_INIT
+
+ dnl
+ dnl     If the soelim program exists, and understands the -I option,
diff --git a/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb b/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb
index 4c34fa1..6f9418b 100644
--- a/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb
+++ b/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb
@@ -6,6 +6,7 @@
 SRC_URI = " \
     http://srecord.sourceforge.net/srecord-${PV}.tar.gz \
     file://add-option-to-remove-docs.patch \
+    file://libtool.patch \
 "
 
 SRC_URI[md5sum] = "4de4a7497472d7972645c2af91313769"
@@ -13,11 +14,18 @@
 
 UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/srecord/files/releases"
 
-DEPENDS = "libtool-native boost groff-native"
+DEPENDS = "boost groff-native"
 
 inherit autotools-brokensep
 
-EXTRA_OECONF = "--without-gcrypt LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
+do_configure:prepend() {
+    # To autoreconf we need the script in ${S}, we can't tell autotools to use
+    # etc/ because then it can't find the Makefile.in
+    ln -s ${S}/etc/configure.ac ${S}
+}
+
+PACKAGECONFIG ??= "gcrypt"
+PACKAGECONFIG[gcrypt] = "--with-gcrypt,--without-gcrypt,libgcrypt"
 
 # Set variable WITHOUT_DOC=0 to enable documentation generation
 EXTRA_OEMAKE = "WITHOUT_DOC=1"
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
index 0e1d094..7334800 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
@@ -38,7 +38,7 @@
 -CONTROL_FILE=/var/run/syslog-ng.ctl
 -PID_FILE=/var/run/syslog-ng.pid
 +PERSIST_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.persist
-+CONTROL_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.ctl
++CONTROL_FILE=@LOCALSTATEDIR@/run/syslog-ng/syslog-ng.ctl
 +PID_FILE=@LOCALSTATEDIR@/run/syslog-ng.pid
  OTHER_OPTIONS="--enable-core"
 -- 
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-CMakeLists.txt-exclude-riscv64-riscv32.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-CMakeLists.txt-exclude-riscv64-riscv32.patch
index ff61548..b347627 100644
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-CMakeLists.txt-exclude-riscv64-riscv32.patch
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-CMakeLists.txt-exclude-riscv64-riscv32.patch
@@ -11,32 +11,25 @@
  src/tbbmalloc/CMakeLists.txt | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/src/tbb/CMakeLists.txt b/src/tbb/CMakeLists.txt
-index a6edb6ad..4f261813 100644
 --- a/src/tbb/CMakeLists.txt
 +++ b/src/tbb/CMakeLists.txt
-@@ -55,7 +55,7 @@ target_compile_definitions(tbb
-                            PRIVATE
-                            __TBB_BUILD)
+@@ -58,7 +58,7 @@ target_compile_definitions(tbb
+                            $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:__TBB_DYNAMIC_LOAD_ENABLED=0>
+                            $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:__TBB_SOURCE_DIRECTLY_INCLUDED=1>)
  
 -if (NOT ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(armv7-a|aarch64|mips|arm64)" OR
 +if (NOT ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(armv7-a|aarch64|mips|arm64|riscv64|riscv32)" OR
           "${CMAKE_OSX_ARCHITECTURES}" MATCHES "arm64" OR
           WINDOWS_STORE OR
           TBB_WINDOWS_DRIVER))
-diff --git a/src/tbbmalloc/CMakeLists.txt b/src/tbbmalloc/CMakeLists.txt
-index de7ca7ea..31e854fe 100644
 --- a/src/tbbmalloc/CMakeLists.txt
 +++ b/src/tbbmalloc/CMakeLists.txt
-@@ -28,7 +28,7 @@ target_compile_definitions(tbbmalloc
-                            PRIVATE
-                            __TBBMALLOC_BUILD)
+@@ -30,7 +30,7 @@ target_compile_definitions(tbbmalloc
+                            $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:__TBB_DYNAMIC_LOAD_ENABLED=0>
+                            $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:__TBB_SOURCE_DIRECTLY_INCLUDED=1>)
  
 -if (NOT ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(armv7-a|aarch64|mips|arm64)" OR
 +if (NOT ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(armv7-a|aarch64|mips|arm64|riscv64|riscv32)" OR
           "${CMAKE_OSX_ARCHITECTURES}" MATCHES "arm64" OR
           WINDOWS_STORE OR
-          TBB_WINDOWS_DRIVER))
--- 
-2.17.1
-
+          TBB_WINDOWS_DRIVER OR
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-Disable-LTO-on-clang-riscv32.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-Disable-LTO-on-clang-riscv32.patch
new file mode 100644
index 0000000..6620656
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-Disable-LTO-on-clang-riscv32.patch
@@ -0,0 +1,29 @@
+From 95a5c97122b7c5bdeba61f2e890bae9a961dd4bf Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 8 Dec 2021 10:01:22 -0800
+Subject: [PATCH] Disable LTO on clang/riscv
+
+With clang in OE LTO does not work as it does not seem to carry right
+target info and mixes ABIs
+
+| Hard-float 'd' ABI can't be used for a target that doesn't support the D instruction set extension (ignoring target-abi)
+| /mnt/b/yoe/master/build/tmp/work/riscv32-yoe-linux/tbb/1_2021.4.0-r0/recipe-sysroot-native/usr/bin/riscv32-yoe-linux/riscv32-yoe-linux-ld: /tmp/lto-llvm-3fb1bf.o: can't link soft-float modules with double-float modules
+| /mnt/b/yoe/master/build/tmp/work/riscv32-yoe-linux/tbb/1_2021.4.0-r0/recipe-sysroot-native/usr/bin/riscv32-yoe-linux/riscv32-yoe-linux-ld: failed to merge target specific data of file /tmp/lto-llvm-3fb1bf.o
+
+Upstream-Status: Inappropriate [ OE-Specific ]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cmake/compilers/Clang.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/cmake/compilers/Clang.cmake
++++ b/cmake/compilers/Clang.cmake
+@@ -60,7 +60,7 @@ endif()
+ 
+ # Enabling LTO on Android causes the NDK bug.
+ # NDK throws the warning: "argument unused during compilation: '-Wa,--noexecstack'"
+-if (NOT ANDROID_PLATFORM AND BUILD_SHARED_LIBS)
++if (NOT ANDROID_PLATFORM AND BUILD_SHARED_LIBS AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES "(riscv32|riscv64|arm)")
+     set(TBB_IPO_COMPILE_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
+     set(TBB_IPO_LINK_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
+ endif()
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-Disable-use-of-_tpause-instruction.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-Disable-use-of-_tpause-instruction.patch
index 7a4cc3e..78051d7 100644
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-Disable-use-of-_tpause-instruction.patch
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-Disable-use-of-_tpause-instruction.patch
@@ -16,19 +16,14 @@
  src/tbb/scheduler_common.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/src/tbb/scheduler_common.h b/src/tbb/scheduler_common.h
-index ee13dbf9..49052001 100644
 --- a/src/tbb/scheduler_common.h
 +++ b/src/tbb/scheduler_common.h
-@@ -219,7 +219,7 @@ inline void prolonged_pause_impl() {
+@@ -220,7 +220,7 @@ inline void prolonged_pause_impl() {
  #endif
  
  inline void prolonged_pause() {
--#if __TBB_WAITPKG_INTRINSICS_PRESENT && (_WIN32 || _WIN64 || __linux__) && (__TBB_x86_32 || __TBB_x86_64)
+-#if __TBB_WAITPKG_INTRINSICS_PRESENT && (_WIN32 || _WIN64 || __unix__) && (__TBB_x86_32 || __TBB_x86_64)
 +#if 0
      if (governor::wait_package_enabled()) {
          std::uint64_t time_stamp = machine_time_stamp();
          // _tpause function directs the processor to enter an implementation-dependent optimized state
--- 
-2.29.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-Musl-linux-can-not-use-RTLD_DEEPBIND.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-Musl-linux-can-not-use-RTLD_DEEPBIND.patch
new file mode 100644
index 0000000..355cf2e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-Musl-linux-can-not-use-RTLD_DEEPBIND.patch
@@ -0,0 +1,33 @@
+From a7289eeff4ac9e3ca2d2289672c923518433124c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 8 Dec 2021 09:26:58 -0800
+Subject: [PATCH] Musl/linux can not use RTLD_DEEPBIND
+
+Exclude non-glibc linux systems along with android
+Fixes
+src/tbb/dynamic_link.cpp:417:29: error: use
+ of undeclared identifier 'RTLD_DEEPBIND'                                                                                    |             flags = flags | RTLD_DEEPBIND;
+|                             ^
+
+Upstream-Status: Submitted [https://github.com/oneapi-src/oneTBB/pull/684]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/tbb/dynamic_link.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/tbb/dynamic_link.cpp b/src/tbb/dynamic_link.cpp
+index 12f35cfd..942c1c64 100644
+--- a/src/tbb/dynamic_link.cpp
++++ b/src/tbb/dynamic_link.cpp
+@@ -413,7 +413,7 @@ namespace r1 {
+         int flags = RTLD_NOW;
+         if (local_binding) {
+             flags = flags | RTLD_LOCAL;
+-#if __linux__ && !__ANDROID__ && !__TBB_USE_SANITIZERS
++#if (__linux__ && __GLIBC__) && !__TBB_USE_SANITIZERS
+             flags = flags | RTLD_DEEPBIND;
+ #endif
+         } else {
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-arena-Remove-dead-code.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-arena-Remove-dead-code.patch
deleted file mode 100644
index 8a603ff..0000000
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-arena-Remove-dead-code.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From b94a1e3d6b5c733ba24cfa0d35450d8659d48289 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 4 Jun 2021 13:07:28 -0700
-Subject: [PATCH] arena: Remove dead code
-
-Fixes clang warning
-arena.cpp:226:19: error: variable 'drained' set b
-ut not used [-Werror,-Wunused-but-set-variable]
-|     std::intptr_t drained = 0;
-|                   ^
-
-Upstream-Status: Submitted [https://github.com/oneapi-src/oneTBB/pull/429]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/tbb/arena.cpp | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/src/tbb/arena.cpp b/src/tbb/arena.cpp
-index 4a9c0f8a..c8ed4999 100644
---- a/src/tbb/arena.cpp
-+++ b/src/tbb/arena.cpp
-@@ -232,14 +232,13 @@ void arena::free_arena () {
-     __TBB_ASSERT( !my_global_concurrency_mode, NULL );
- #endif
-     poison_value( my_guard );
--    std::intptr_t drained = 0;
-     for ( unsigned i = 0; i < my_num_slots; ++i ) {
-         // __TBB_ASSERT( !my_slots[i].my_scheduler, "arena slot is not empty" );
-         // TODO: understand the assertion and modify
-         // __TBB_ASSERT( my_slots[i].task_pool == EmptyTaskPool, NULL );
-         __TBB_ASSERT( my_slots[i].head == my_slots[i].tail, NULL ); // TODO: replace by is_quiescent_local_task_pool_empty
-         my_slots[i].free_task_pool();
--        drained += mailbox(i).drain();
-+        mailbox(i).drain();
-         my_slots[i].my_default_task_dispatcher->~task_dispatcher();
-     }
-     __TBB_ASSERT(my_fifo_task_stream.empty(), "Not all enqueued tasks were executed");
--- 
-2.31.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch
index 4932544..9af37eb 100644
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch
@@ -13,11 +13,9 @@
  src/tbbmalloc_proxy/proxy.cpp | 2 ++
  1 file changed, 2 insertions(+)
 
-diff --git a/src/tbbmalloc_proxy/proxy.cpp b/src/tbbmalloc_proxy/proxy.cpp
-index f9942bf1..fe0dad89 100644
 --- a/src/tbbmalloc_proxy/proxy.cpp
 +++ b/src/tbbmalloc_proxy/proxy.cpp
-@@ -253,6 +253,7 @@ int mallopt(int /*param*/, int /*value*/) __THROW
+@@ -260,6 +260,7 @@ int mallopt(int /*param*/, int /*value*/
      return 1;
  }
  
@@ -25,7 +23,7 @@
  struct mallinfo mallinfo() __THROW
  {
      struct mallinfo m;
-@@ -260,6 +261,7 @@ struct mallinfo mallinfo() __THROW
+@@ -267,6 +268,7 @@ struct mallinfo mallinfo() __THROW
  
      return m;
  }
@@ -33,6 +31,3 @@
  
  #if __ANDROID__
  // Android doesn't have malloc_usable_size, provide it to be compatible
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-set_my_tls_end_of_input-Use-an-arbitrary-but-valid-p.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-set_my_tls_end_of_input-Use-an-arbitrary-but-valid-p.patch
deleted file mode 100644
index caa68e6..0000000
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-set_my_tls_end_of_input-Use-an-arbitrary-but-valid-p.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From a996fd451bbd7be93cff5f466bff7282ae972fe1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 11 May 2021 10:52:51 -0700
-Subject: [PATCH] set_my_tls_end_of_input: Use an arbitrary but valid pointer
- as value
-
-Pass a valid pointer to pthread_setspecific to avoid GCC 11 warning.
-Fixes
-
-src/tbb/tls.h:44:46: error: 'int pthread_setspecific(pthread_key_t, const void*)' expecting 1 byte in a region of size 0 [-Werror=stringop-overread]
-|    44 |     void set( T value ) { pthread_setspecific(my_key, (void*)value); }
-|       |                           ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
-| compilation terminated due to -Wfatal-errors.
-
-Upstream-Status: Submitted [https://github.com/oneapi-src/oneTBB/pull/394]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/tbb/parallel_pipeline.cpp | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/tbb/parallel_pipeline.cpp b/src/tbb/parallel_pipeline.cpp
-index b7655c6b..ca518b5b 100644
---- a/src/tbb/parallel_pipeline.cpp
-+++ b/src/tbb/parallel_pipeline.cpp
-@@ -243,7 +243,8 @@ public:
-         return end_of_input_tls.get() != 0;
-     }
-     void set_my_tls_end_of_input() {
--        end_of_input_tls.set(1);
-+	// Use an arbitrary but valid pointer as value.
-+        end_of_input_tls.set(array_size);
-     }
- };
- 
--- 
-2.31.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/GLIBC-PREREQ-is-not-defined-on-musl.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/GLIBC-PREREQ-is-not-defined-on-musl.patch
deleted file mode 100644
index fb10684..0000000
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/GLIBC-PREREQ-is-not-defined-on-musl.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 5cac8b5fffa4ebf5f0090456c9e0cbf43827242a Mon Sep 17 00:00:00 2001
-From: Naveen Saini <naveen.kumar.saini@intel.com>
-Date: Wed, 7 Apr 2021 11:32:52 +0800
-Subject: [PATCH] src/tbbmalloc/proxy.cpp: __GLIBC_PREREQ is not defined on 
- musl
-
-Do not call __GLIBC_PREREQ if it is not defined otherwise build will
-fail on musl
-
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-
-Upstream-Status: Submitted [https://github.com/oneapi-src/oneTBB/pull/203]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
----
- src/tbbmalloc_proxy/proxy.cpp | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/src/tbbmalloc_proxy/proxy.cpp b/src/tbbmalloc_proxy/proxy.cpp
-index fe0dad89..93e68049 100644
---- a/src/tbbmalloc_proxy/proxy.cpp
-+++ b/src/tbbmalloc_proxy/proxy.cpp
-@@ -24,7 +24,8 @@
- // of aligned_alloc as required by new C++ standard, this makes it hard to
- // redefine aligned_alloc here. However, running on systems with new libc
- // version, it still needs it to be redefined, thus tricking system headers
--#if defined(__GLIBC_PREREQ) && !__GLIBC_PREREQ(2, 16) && _GLIBCXX_HAVE_ALIGNED_ALLOC
-+#if defined(__GLIBC_PREREQ)
-+#if !__GLIBC_PREREQ(2, 16) && _GLIBCXX_HAVE_ALIGNED_ALLOC
- // tell <cstdlib> that there is no aligned_alloc
- #undef _GLIBCXX_HAVE_ALIGNED_ALLOC
- // trick <stdlib.h> to define another symbol instead
-@@ -32,7 +33,8 @@
- // Fix the state and undefine the trick
- #include <cstdlib>
- #undef aligned_alloc
--#endif // defined(__GLIBC_PREREQ)&&!__GLIBC_PREREQ(2, 16)&&_GLIBCXX_HAVE_ALIGNED_ALLOC
-+#endif // defined(__GLIBC_PREREQ)
-+#endif // !__GLIBC_PREREQ(2, 16)&&_GLIBCXX_HAVE_ALIGNED_ALLOC
- #endif // __linux__ && !__ANDROID__
- 
- #include "proxy.h"
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2021.2.0.bb b/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2021.2.0.bb
deleted file mode 100644
index c726bef..0000000
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2021.2.0.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-DESCRIPTION = "Parallelism library for C++ - runtime files \
-    TBB is a library that helps you leverage multi-core processor \
-    performance without having to be a threading expert. It represents a \
-    higher-level, task-based parallelism that abstracts platform details \
-    and threading mechanism for performance and scalability."
-HOMEPAGE = "https://software.intel.com/en-us/tbb"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327"
-
-DEPENDS:append:libc-musl = " libucontext"
-
-PE = "1"
-
-BRANCH = "onetbb_2021"
-SRCREV = "2dba2072869a189b9fdab3ffa431d3ea49059a19"
-SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \
-            file://0001-mallinfo-is-glibc-specific-API-mark-it-so.patch \
-            file://GLIBC-PREREQ-is-not-defined-on-musl.patch \
-            file://0001-CMakeLists.txt-exclude-riscv64-riscv32.patch \
-            file://0001-Disable-use-of-_tpause-instruction.patch \
-            file://0001-set_my_tls_end_of_input-Use-an-arbitrary-but-valid-p.patch \
-            file://0001-arena-Remove-dead-code.patch \
-"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-# test build fails, error: 'mallinfo mallinfo()' is deprecated
-EXTRA_OECMAKE += " \
-                    -DTBB_TEST=OFF \
-                    -DCMAKE_BUILD_TYPE=Release \
-                "
-
-
-# fails with thumb enabled:
-# | arm-oe-linux-gnueabi-g++  -march=armv7-a -mthumb -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a9 -mcpu=cortex-a9 -D__ARM__ -D__LINUX_ARM_ARCH__=7 -funwind-tables -mvectorize-with-neon-quad -rdynamic --sysroot=/OE/sysroots/m14tv -c -MMD -DTBB_USE_DEBUG  -g -O0 -DUSE_PTHREAD -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -O2 -pipe -g -feliminate-unused-debug-types -fpermissive -fvisibility-inlines-hidden   -I../../src -I../../src/rml/include -I../../include ../../src/tbb/concurrent_queue.cpp
-# | {standard input}: Assembler messages:
-# | {standard input}:250: Error: thumb conditional instruction should be in IT block -- `strexeq r2,r3,[r4]'
-# ...
-# | make[1]: *** [concurrent_queue.o] Error 1
-ARM_INSTRUCTION_SET = "arm"
-
-ASNEEDED = ""
-
-LDFLAGS:append:mips = " -latomic"
-LDFLAGS:append:mipsel = " -latomic"
-LDFLAGS:append:riscv32:toolchain-clang = " -latomic"
-
-LDFLAGS:append:libc-musl = " -lucontext"
-
-# The latest version of oneTBB does not support PPC
-COMPATIBLE_MACHINE:powerpc = "(!.*ppc).*"
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2021.5.0.bb b/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2021.5.0.bb
new file mode 100644
index 0000000..0d108f2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2021.5.0.bb
@@ -0,0 +1,54 @@
+DESCRIPTION = "Parallelism library for C++ - runtime files \
+    TBB is a library that helps you leverage multi-core processor \
+    performance without having to be a threading expert. It represents a \
+    higher-level, task-based parallelism that abstracts platform details \
+    and threading mechanism for performance and scalability."
+HOMEPAGE = "https://software.intel.com/en-us/tbb"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327"
+
+DEPENDS:append:libc-musl = " libucontext"
+
+PE = "1"
+
+BRANCH = "onetbb_2021"
+SRCREV = "3df08fe234f23e732a122809b40eb129ae22733f"
+SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \
+            file://0001-mallinfo-is-glibc-specific-API-mark-it-so.patch \
+            file://0001-CMakeLists.txt-exclude-riscv64-riscv32.patch \
+            file://0001-Disable-use-of-_tpause-instruction.patch \
+            file://0001-Musl-linux-can-not-use-RTLD_DEEPBIND.patch \
+            file://0001-Disable-LTO-on-clang-riscv32.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+# test build fails, error: 'mallinfo mallinfo()' is deprecated
+EXTRA_OECMAKE += " \
+                    -DTBB_TEST=OFF \
+                    -DCMAKE_BUILD_TYPE=Release \
+                "
+
+
+# fails with thumb enabled:
+# | arm-oe-linux-gnueabi-g++  -march=armv7-a -mthumb -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a9 -mcpu=cortex-a9 -D__ARM__ -D__LINUX_ARM_ARCH__=7 -funwind-tables -mvectorize-with-neon-quad -rdynamic --sysroot=/OE/sysroots/m14tv -c -MMD -DTBB_USE_DEBUG  -g -O0 -DUSE_PTHREAD -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -O2 -pipe -g -feliminate-unused-debug-types -fpermissive -fvisibility-inlines-hidden   -I../../src -I../../src/rml/include -I../../include ../../src/tbb/concurrent_queue.cpp
+# | {standard input}: Assembler messages:
+# | {standard input}:250: Error: thumb conditional instruction should be in IT block -- `strexeq r2,r3,[r4]'
+# ...
+# | make[1]: *** [concurrent_queue.o] Error 1
+ARM_INSTRUCTION_SET = "arm"
+
+ASNEEDED = ""
+
+LDFLAGS:append:mips = " -latomic"
+LDFLAGS:append:mipsel = " -latomic"
+LDFLAGS:append:riscv32:toolchain-clang = " -latomic"
+
+LDFLAGS:append:libc-musl = " -lucontext"
+
+# The latest version of oneTBB does not support PPC
+COMPATIBLE_MACHINE:powerpc = "(!.*ppc).*"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.8.5.bb b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.8.5.bb
deleted file mode 100644
index 3f82734..0000000
--- a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.8.5.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Tools of dm-thin device-mapper"
-DESCRIPTION = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target."
-HOMEPAGE = "https://github.com/jthornber/thin-provisioning-tools"
-LICENSE = "GPLv3"
-SECTION = "devel"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://github.com/jthornber/thin-provisioning-tools;branch=main \
-           file://0001-do-not-strip-pdata_tools-at-do_install.patch \
-           file://use-sh-on-path.patch \
-"
-
-SRCREV = "5e5409f48b5403d2c6dffd9919b35ad77d6fb7b4"
-
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
-
-DEPENDS += "expat libaio boost"
-
-inherit autotools-brokensep
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.9.0.bb b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.9.0.bb
new file mode 100644
index 0000000..0588e9b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.9.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Tools of dm-thin device-mapper"
+DESCRIPTION = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target."
+HOMEPAGE = "https://github.com/jthornber/thin-provisioning-tools"
+LICENSE = "GPLv3"
+SECTION = "devel"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://github.com/jthornber/thin-provisioning-tools;branch=main;protocol=https \
+           file://0001-do-not-strip-pdata_tools-at-do_install.patch \
+           file://use-sh-on-path.patch \
+"
+
+SRCREV = "d6d93c3157631b242a13a81d30f75453e576c55a"
+
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+DEPENDS += "expat libaio boost"
+
+inherit autotools-brokensep
diff --git a/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb b/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
index 3aecc6a..efc2795 100644
--- a/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
@@ -7,7 +7,7 @@
 
 # 0.2 version
 SRCREV = "8586d617aed19fc75f5ae1e07270752c1b2f9a30"
-SRC_URI = "git://github.com/OSSystems/toscoterm.git"
+SRC_URI = "git://github.com/OSSystems/toscoterm.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/tree/tree_1.8.0.bb b/meta-openembedded/meta-oe/recipes-support/tree/tree_1.8.0.bb
deleted file mode 100644
index 01b1ac3..0000000
--- a/meta-openembedded/meta-oe/recipes-support/tree/tree_1.8.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A recursive directory listing command"
-HOMEPAGE = "http://mama.indstate.edu/users/ice/tree/"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
-
-SRC_URI = "http://mama.indstate.edu/users/ice/tree/src/${BP}.tgz"
-SRC_URI[md5sum] = "715191c7f369be377fc7cc8ce0ccd835"
-SRC_URI[sha256sum] = "715d5d4b434321ce74706d0dd067505bb60c5ea83b5f0b3655dae40aa6f9b7c2"
-
-# tree's default CFLAGS for Linux
-CFLAGS += "-Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
-
-EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
-
-do_configure[noexec] = "1"
-
-do_install() {
-    install -d ${D}${bindir}
-    install -m 0755 ${S}/${BPN} ${D}${bindir}/
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/tree/tree_2.0.1.bb b/meta-openembedded/meta-oe/recipes-support/tree/tree_2.0.1.bb
new file mode 100644
index 0000000..9e1e787
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/tree/tree_2.0.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A recursive directory listing command"
+HOMEPAGE = "http://mama.indstate.edu/users/ice/tree/"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
+
+SRC_URI = "http://mama.indstate.edu/users/ice/tree/src/${BP}.tgz"
+SRC_URI[sha256sum] = "e3339c5a194cf6b4080f15ec59faa3679f02d5a793b2147912fbfcfb4cdf2239"
+
+# tree's default CFLAGS for Linux
+CFLAGS += "-Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
+
+EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
+
+do_configure[noexec] = "1"
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 ${S}/${BPN} ${D}${bindir}/
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.9.3.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.9.3.bb
deleted file mode 100644
index de8249e..0000000
--- a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.9.3.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "udisks provides dbus interfaces for disks and storage devices"
-LICENSE = "GPLv2+ & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dd79f6dbbffdbc8e86b086a8f0c0ef43"
-
-DEPENDS = " \
-    glib-2.0-native \
-    libxslt-native \
-    acl \
-    libatasmart \
-    polkit \
-    libgudev \
-    glib-2.0 \
-    dbus-glib \
-    libblockdev \
-"
-DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-
-RDEPENDS:${PN} = "acl"
-
-SRC_URI = "git://github.com/storaged-project/udisks.git;branch=2.9.x-branch"
-SRCREV = "c430dd9a27e158693cc783e9ee91bf6e5b2a8819"
-S = "${WORKDIR}/git"
-
-CVE_PRODUCT = "udisks"
-
-inherit autotools-brokensep systemd gtk-doc gobject-introspection gettext features_check
-
-REQUIRED_DISTRO_FEATURES = "polkit"
-
-EXTRA_OECONF = "--disable-man --disable-gtk-doc"
-
-do_configure:prepend() {
-    # | configure.ac:656: error: required file 'build-aux/config.rpath' not found
-    mkdir -p ${S}/build-aux
-    touch ${S}/build-aux/config.rpath
-}
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1/ \
-    ${datadir}/polkit-1 \
-    ${datadir}/bash-completion \
-    ${libdir}/polkit-1/extensions/*.so \
-    ${nonarch_base_libdir}/udev/* \
-    ${exec_prefix}${nonarch_base_libdir}/udisks2/* \
-    ${systemd_system_unitdir} \
-"
-
-PACKAGES =+ "${PN}-libs"
-FILES:${PN}-libs = "${libdir}/lib*${SOLIBS}"
-FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
-
-SYSTEMD_SERVICE:${PN} = "${BPN}.service"
-SYSTEMD_AUTO_ENABLE = "disable"
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
new file mode 100644
index 0000000..ec13cfa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.9.4.bb
@@ -0,0 +1,53 @@
+SUMMARY = "udisks provides dbus interfaces for disks and storage devices"
+LICENSE = "GPLv2+ & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dd79f6dbbffdbc8e86b086a8f0c0ef43"
+
+DEPENDS = " \
+    glib-2.0-native \
+    libxslt-native \
+    acl \
+    libatasmart \
+    polkit \
+    libgudev \
+    glib-2.0 \
+    dbus-glib \
+    libblockdev \
+"
+DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+RDEPENDS:${PN} = "acl"
+
+SRC_URI = "git://github.com/storaged-project/udisks.git;branch=2.9.x-branch;protocol=https"
+SRCREV = "001c486e6d099ed33e2de4f5c73c03e3ee180f81"
+S = "${WORKDIR}/git"
+
+CVE_PRODUCT = "udisks"
+
+inherit autotools-brokensep systemd gtk-doc gobject-introspection gettext features_check
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+EXTRA_OECONF = "--disable-man --disable-gtk-doc"
+
+do_configure:prepend() {
+    # | configure.ac:656: error: required file 'build-aux/config.rpath' not found
+    mkdir -p ${S}/build-aux
+    touch ${S}/build-aux/config.rpath
+}
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1/ \
+    ${datadir}/polkit-1 \
+    ${datadir}/bash-completion \
+    ${libdir}/polkit-1/extensions/*.so \
+    ${nonarch_base_libdir}/udev/* \
+    ${exec_prefix}${nonarch_base_libdir}/udisks2/* \
+    ${systemd_system_unitdir} \
+"
+
+PACKAGES =+ "${PN}-libs"
+FILES:${PN}-libs = "${libdir}/lib*${SOLIBS}"
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
+
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.4.0.bb b/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.4.0.bb
index 44aeaed..e8587ea 100644
--- a/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.4.0.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 SRCREV = "014b55ac5d1d7fb46a8f1eefe9fc3b87ea65a75f"
-SRC_URI = "git://github.com/mvp/${BPN}"
+SRC_URI = "git://github.com/mvp/${BPN};branch=master;protocol=https"
 S = "${WORKDIR}/git"
 
 # uhubctl gets its program version from "git describe". As we use the source
diff --git a/meta-openembedded/meta-oe/recipes-support/unicode-ucd/unicode-ucd_14.0.0.bb b/meta-openembedded/meta-oe/recipes-support/unicode-ucd/unicode-ucd_14.0.0.bb
index 2a01886..f0f3a66 100644
--- a/meta-openembedded/meta-oe/recipes-support/unicode-ucd/unicode-ucd_14.0.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/unicode-ucd/unicode-ucd_14.0.0.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://${WORKDIR}/license.html;beginline=43;endline=83;md5=cf6c4777b109bcee78b6083a21be6192"
 
 SRC_URI = " \
-    https://www.unicode.org/Public/zipped/${PV}/UCD.zip;name=ucd;subdir=ucd \
+    https://www.unicode.org/Public/zipped/${PV}/UCD.zip;name=ucd;subdir=ucd;downloadfilename=unicode-ucd-${PV}.zip \
     https://www.unicode.org/license.html;name=license \
 "
 SRC_URI[ucd.sha256sum] = "033a5276b5d7af8844589f8e3482f3977a8385e71d107d375055465178c23600"
diff --git a/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.11.bb b/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.11.bb
deleted file mode 100644
index ad302a0..0000000
--- a/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.11.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-DESCRIPTION = "UPower is an abstraction for enumerating power devices, listening to device events and querying history and statistics. "
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0de8fbf1d97a140d1d93b9f14dcfbf08"
-
-DEPENDS = "intltool-native libusb1 libgudev glib-2.0 dbus-glib"
-
-SRC_URI = " \
-    http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
-"
-SRC_URI[md5sum] = "abe6acb617f11f2e8dbd9846fcf86e24"
-SRC_URI[sha256sum] = "64b5ffbfccd5bdb15d925777979a4dbee1a957f9eaeb158dc76175267eddbdef"
-
-inherit autotools pkgconfig gettext gobject-introspection systemd
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[idevice] = "--with-idevice,--without-idevice,libimobiledevice libplist"
-PACKAGECONFIG[systemd] = "--with-systemdutildir=${systemd_unitdir} --with-systemdsystemunitdir=${systemd_system_unitdir}, \
-                          --without-systemdutildir --without-systemdsystemunitdir,systemd"
-
-EXTRA_OECONF = " --with-backend=linux"
-
-SYSTEMD_SERVICE:${PN} = "upower.service"
-# don't start on boot by default - dbus does that on demand
-SYSTEMD_AUTO_ENABLE = "disable"
-
-do_configure:prepend() {
-    sed -i -e s:-nonet:\:g ${S}/doc/man/Makefile.am
-    sed -i -e 's: doc : :g' ${S}/Makefile.am
-}
-
-RDEPENDS:${PN} += "dbus"
-RRECOMMENDS:${PN} += "pm-utils"
-FILES:${PN} += "${datadir}/dbus-1/ \
-                ${base_libdir}/udev/* \
-"
diff --git a/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.13.bb b/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.13.bb
new file mode 100644
index 0000000..1059763
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.13.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "UPower is an abstraction for enumerating power devices, listening to device events and querying history and statistics. "
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0de8fbf1d97a140d1d93b9f14dcfbf08"
+
+DEPENDS = "intltool-native libusb1 libgudev glib-2.0 dbus-glib"
+
+SRC_URI = "git://gitlab.freedesktop.org/upower/upower.git;protocol=https;branch=master"
+SRCREV = "0f6cc0a10be22d7ddd684e1cd851e4364a440494"
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_GITTAGREGEX = "UPOWER_(?P<pver>\d+(\_\d+)+)"
+
+inherit autotools pkgconfig gtk-doc gettext gobject-introspection systemd
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[idevice] = "--with-idevice,--without-idevice,libimobiledevice libplist"
+PACKAGECONFIG[systemd] = "--with-systemdutildir=${systemd_unitdir} --with-systemdsystemunitdir=${systemd_system_unitdir}, \
+                          --without-systemdutildir --without-systemdsystemunitdir,systemd"
+
+EXTRA_OECONF = " --with-backend=linux"
+
+SYSTEMD_SERVICE:${PN} = "upower.service"
+# don't start on boot by default - dbus does that on demand
+SYSTEMD_AUTO_ENABLE = "disable"
+
+do_configure:prepend() {
+    touch ${S}/ABOUT-NLS
+    mkdir -p ${S}/build-aux
+    touch ${S}/build-aux/config.rpath
+    sed -i -e s:-nonet:\:g ${S}/doc/man/Makefile.am
+    sed -i -e 's: doc : :g' ${S}/Makefile.am
+}
+
+RDEPENDS:${PN} += "dbus"
+RRECOMMENDS:${PN} += "pm-utils"
+FILES:${PN} += "${datadir}/dbus-1/ \
+                ${base_libdir}/udev/* \
+"
diff --git a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.5.bb b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.5.bb
deleted file mode 100644
index f506223..0000000
--- a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.5.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "RFC 3986 compliant URI parsing library"
-HOMEPAGE = "https://uriparser.github.io"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fcc5a53146c2401f4b4f6a3bdf3f0168"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${BP}/${BP}.tar.gz"
-SRC_URI[sha256sum] = "1987466a798becb5441a491d29e762ab1a4817a525f82ef239e3d38f85605a77"
-
-UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
-
-inherit cmake
-
-EXTRA_OECMAKE += "-DURIPARSER_BUILD_DOCS:BOOL=OFF -DURIPARSER_BUILD_TESTS:BOOL=OFF"
-
-BBCLASSEXTEND += "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.6.bb b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.6.bb
new file mode 100644
index 0000000..0d45a15
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.6.bb
@@ -0,0 +1,16 @@
+SUMMARY = "RFC 3986 compliant URI parsing library"
+HOMEPAGE = "https://uriparser.github.io"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fcc5a53146c2401f4b4f6a3bdf3f0168"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${BP}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "10e6f90d359c1087c45f907f95e527a8aca84422251081d1533231e031a084ff"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DURIPARSER_BUILD_DOCS:BOOL=OFF -DURIPARSER_BUILD_TESTS:BOOL=OFF"
+
+BBCLASSEXTEND += "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.3.0.bb b/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.3.0.bb
index b512f8c..ef15613 100644
--- a/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.3.0.bb
@@ -12,7 +12,7 @@
 SRCREV = "e493aa90a2833b4655927598f169c31cfcdf7861"
 
 SRC_URI = "\
-    git://github.com/troydhanson/${BPN}.git \
+    git://github.com/troydhanson/${BPN}.git;branch=master;protocol=https \
     file://run-ptest \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
index a5a881d..d06f670 100644
--- a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
@@ -7,7 +7,7 @@
 
 inherit autotools
 
-SRC_URI = "git://bitmath.org/git/evemu.git;protocol=http \
+SRC_URI = "git://bitmath.org/git/evemu.git;protocol=http;branch=master \
            file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \
            "
 SRCREV = "9752b50e922572e4cd214ac45ed95e4ee410fe24"
diff --git a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb
index ca74d91..12231f6 100644
--- a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb
@@ -9,7 +9,7 @@
 
 inherit autotools pkgconfig
 
-SRC_URI = "git://bitmath.org/git/frame.git;protocol=http \
+SRC_URI = "git://bitmath.org/git/frame.git;protocol=http;branch=master \
            file://remove-man-page-creation.patch \
            file://0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch \
            file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \
diff --git a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
index 04d1f3f..b4322ab 100644
--- a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
@@ -9,7 +9,7 @@
 # depends on virtual/libx11
 REQUIRED_DISTRO_FEATURES = "x11"
 
-SRC_URI = "git://bitmath.org/git/mtview.git;protocol=http"
+SRC_URI = "git://bitmath.org/git/mtview.git;protocol=http;branch=master"
 SRCREV = "ad437c38dc111cf3990a03abf14efe1b5d89604b"
 
 DEPENDS += "mtdev utouch-frame utouch-evemu libx11"
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-utils-fix-build-against-5.15-libc-headers-headers.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-utils-fix-build-against-5.15-libc-headers-headers.patch
new file mode 100644
index 0000000..6c11f1d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-utils-fix-build-against-5.15-libc-headers-headers.patch
@@ -0,0 +1,62 @@
+From 7213a5bfa3bd9f360d6be01e6dbd59d91095a0fd Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Thu, 4 Nov 2021 14:53:46 -0400
+Subject: [PATCH] utils: fix build against 5.15 libc-headers headers
+
+In kernel v5.15+ stdarg.h is part of the kernel source, and the
+upstream project has a change to prefer that stdarg.h to the
+c-library variant and hence includes it as <linux/stdarg.h>, which
+leads to the following build error:
+
+   | In file included from ../vboxsf/include/iprt/types.h:34,
+   |                  from ../vboxsf/include/iprt/string.h:33,
+   |                  from mount.vboxsf.c:53:
+   | ../vboxsf/include/iprt/stdarg.h:49:13: fatal error: linux/stdarg.h: No such file or directory
+   |    49 | #   include <linux/stdarg.h>
+   |       |             ^~~~~~~~~~~~~~~~
+
+If we modify our build of the vboxdrivers to have the kernel source
+directory on the include path (to find linux/stdarg.h, that leads
+to the following errors:
+
+   In file included from build/tmp/work/qemux86_64-poky-linux/vboxguestdrivers/6.1.28-r0/recipe-sysroot/usr/include/stdlib.h:394,
+   |                  from mount.vboxsf.c:36:
+   | build/tmp/work/qemux86_64-poky-linux/vboxguestdrivers/6.1.28-r0/recipe-sysroot/usr/include/sys/types.h:192:20: note: previous declaration of 'blkcnt_t' with type 'blkcnt_t' {aka 'long int'}
+   |   192 | typedef __blkcnt_t blkcnt_t;     /* Type to count number of disk blocks.  */
+   |       |                    ^~~~~~~~
+   | In file included from build/tmp/work-shared/qemux86-64/kernel-source/include/linux/time.h:5,
+   |                  from poky/build/tmp/work-shared/qemux86-64/kernel-source/include/linux/stat.h:19,
+   |                  from build/tmp/work/qemux86_64-poky-linux/vboxguestdrivers/6.1.28-r0/recipe-sysroot/usr/include/bits/statx.h:31,
+
+Our libc-headers are safe and don't lead to the potential conflicing
+information that the upstream commit is guarding against. The easiest
+solution is to revert the upstream change and trust our headers.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ vboxsf/include/iprt/stdarg.h | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/include/iprt/stdarg.h b/include/iprt/stdarg.h
+index c73093c..7bffde5 100644
+--- a/include/iprt/stdarg.h
++++ b/include/iprt/stdarg.h
+@@ -44,12 +44,7 @@
+ #   define __builtin_stdarg_start __builtin_va_start
+ #  endif
+ # elif defined(RT_OS_LINUX) && defined(IN_RING0)
+-#  include "linux/version.h"
+-#  if RTLNX_VER_MIN(5,15,0)
+-#   include <linux/stdarg.h>
+-#  else
+-#   include <stdarg.h>
+-#  endif
++#  include <stdarg.h>
+ # else
+ #  include <stdarg.h>
+ # endif
+-- 
+2.19.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.28.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.28.bb
deleted file mode 100644
index 0265e38..0000000
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.28.bb
+++ /dev/null
@@ -1,83 +0,0 @@
-SUMMARY = "VirtualBox Linux Guest Drivers"
-SECTION = "core"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660"
-
-DEPENDS = "virtual/kernel"
-
-inherit module kernel-module-split
-
-COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
-
-VBOX_NAME = "VirtualBox-${PV}"
-
-SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
-    file://Makefile.utils \
-"
-
-SRC_URI[md5sum] = "c6efae8dc115b90c6124e13126794c4f"
-SRC_URI[sha256sum] = "8d34993d8e9c0cf35e7bd44dd26c8c757f17a3b7d5a64052f945d00fd798ebfe"
-
-S ?= "${WORKDIR}/vbox_module"
-S:task-patch = "${WORKDIR}/${VBOX_NAME}"
-
-export BUILD_TARGET_ARCH="${ARCH}"
-export BUILD_TARGET_ARCH:x86-64="amd64"
-
-EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build' KBUILD_VERBOSE=1"
-
-# otherwise 5.2.22 builds just vboxguest
-MAKE_TARGETS = "all"
-
-addtask export_sources after do_patch before do_configure
-
-do_export_sources() {
-    mkdir -p "${S}"
-    ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules.sh ${T}/vbox_modules.tar.gz
-    tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
-
-    # add a mount utility to use shared folder from VBox Addition Source Code
-    mkdir -p "${S}/utils"
-    install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils
-    install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils
-    install ${S}/../Makefile.utils ${S}/utils/Makefile
-
-}
-
-do_configure:prepend() {
-    # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:99: *** The variable KERN_DIR must be a kernel build folder and end with /build without a trailing slash, or KERN_VER must be set.  Stop.
-    # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:108: *** The kernel build folder path must end in <version>/build, or the variable KERN_VER must be set.  Stop.
-    mkdir -p ${WORKDIR}/${KERNEL_VERSION}
-    ln -snf ${STAGING_KERNEL_DIR} ${WORKDIR}/${KERNEL_VERSION}/build
-}
-
-# compile and install mount utility
-do_compile() {
-    oe_runmake all
-    oe_runmake 'LD=${CC}' 'EXTRA_CFLAGS=-I${STAGING_KERNEL_BUILDDIR}/include/' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils
-    if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then
-        echo "ERROR: One of vbox*.ko modules wasn't built"
-        exit 1
-    fi
-}
-
-module_do_install() {
-    MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc
-    install -d $MODULE_DIR
-    install -m 644 vboxguest.ko $MODULE_DIR
-    install -m 644 vboxsf.ko $MODULE_DIR
-    install -m 644 vboxvideo.ko $MODULE_DIR
-}
-
-do_install:append() {
-    install -d ${D}${base_sbindir}
-    install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir}
-}
-
-PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
-RRECOMMENDS:${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
-
-FILES:${PN} = "${base_sbindir}"
-
-# autoload if installed
-KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo"
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.30.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.30.bb
new file mode 100644
index 0000000..099d82a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.30.bb
@@ -0,0 +1,83 @@
+SUMMARY = "VirtualBox Linux Guest Drivers"
+SECTION = "core"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660"
+
+DEPENDS = "virtual/kernel"
+
+inherit module kernel-module-split
+
+COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
+
+VBOX_NAME = "VirtualBox-${PV}"
+
+SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
+    file://Makefile.utils \
+    file://0001-utils-fix-build-against-5.15-libc-headers-headers.patch \
+"
+
+SRC_URI[sha256sum] = "3c60a29375549ffc148aaebe859be91b27c19d6fa2deefde1373c4f6da8f18ef"
+
+S ?= "${WORKDIR}/vbox_module"
+S:task-patch = "${WORKDIR}/${VBOX_NAME}"
+
+export BUILD_TARGET_ARCH="${ARCH}"
+export BUILD_TARGET_ARCH:x86-64="amd64"
+
+EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build' KBUILD_VERBOSE=1"
+
+# otherwise 5.2.22 builds just vboxguest
+MAKE_TARGETS = "all"
+
+addtask export_sources after do_patch before do_configure
+
+do_export_sources() {
+    mkdir -p "${S}"
+    ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules.sh ${T}/vbox_modules.tar.gz
+    tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
+
+    # add a mount utility to use shared folder from VBox Addition Source Code
+    mkdir -p "${S}/utils"
+    install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils
+    install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils
+    install ${S}/../Makefile.utils ${S}/utils/Makefile
+
+}
+
+do_configure:prepend() {
+    # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:99: *** The variable KERN_DIR must be a kernel build folder and end with /build without a trailing slash, or KERN_VER must be set.  Stop.
+    # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:108: *** The kernel build folder path must end in <version>/build, or the variable KERN_VER must be set.  Stop.
+    mkdir -p ${WORKDIR}/${KERNEL_VERSION}
+    ln -snf ${STAGING_KERNEL_DIR} ${WORKDIR}/${KERNEL_VERSION}/build
+}
+
+# compile and install mount utility
+do_compile() {
+    oe_runmake all
+    oe_runmake 'LD=${CC}' 'EXTRA_CFLAGS=-I${STAGING_KERNEL_BUILDDIR}/include/' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils
+    if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then
+        echo "ERROR: One of vbox*.ko modules wasn't built"
+        exit 1
+    fi
+}
+
+module_do_install() {
+    MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc
+    install -d $MODULE_DIR
+    install -m 644 vboxguest.ko $MODULE_DIR
+    install -m 644 vboxsf.ko $MODULE_DIR
+    install -m 644 vboxvideo.ko $MODULE_DIR
+}
+
+do_install:append() {
+    install -d ${D}${base_sbindir}
+    install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir}
+}
+
+PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
+RRECOMMENDS:${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
+
+FILES:${PN} = "${base_sbindir}"
+
+# autoload if installed
+KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo"
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb
index 4237801..a6f2186 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb
@@ -6,7 +6,7 @@
 
 DEPENDS = " ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'openssl boost zlib', '', d)} "
 
-SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https \
+SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https;branch=master \
            file://0001-cmake-Use-GNUInstallDirs.patch \
            file://855.patch \
            file://857.patch \
diff --git a/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.1.0.bb b/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.1.0.bb
index d100030..c161781 100644
--- a/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.1.0.bb
@@ -7,7 +7,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
 
-SRC_URI = "git://github.com/jmacd/xdelta.git;branch=release3_1_apl"
+SRC_URI = "git://github.com/jmacd/xdelta.git;branch=release3_1_apl;protocol=https"
 SRCREV = "4b4aed71a959fe11852e45242bb6524be85d3709"
 S = "${WORKDIR}/git/xdelta3"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.32.bb b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.32.bb
deleted file mode 100644
index 15da5aa..0000000
--- a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.32.bb
+++ /dev/null
@@ -1,65 +0,0 @@
-SUMMARY = "XML Security Library is a C library based on LibXML2"
-DESCRIPTION = "\
-    XML Security Library is a C library based on \
-    LibXML2 and OpenSSL. The library was created with a goal to support major \
-    XML security standards "XML Digital Signature" and "XML Encryption". \
-    "
-HOMEPAGE = "http://www.aleksey.com/xmlsec/"
-DEPENDS = "libtool libxml2 libxslt zlib"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=352791d62092ea8104f085042de7f4d0"
-
-SECTION = "libs"
-
-SRC_URI = "http://www.aleksey.com/xmlsec/download/${BP}.tar.gz \
-    file://fix-ltmain.sh.patch \
-    file://change-finding-path-of-nss.patch \
-    file://makefile-ptest.patch \
-    file://xmlsec1-examples-allow-build-in-separate-dir.patch \
-    file://0001-nss-nspr-fix-for-multilib.patch \
-    file://run-ptest \
-    file://ensure-search-path-non-host.patch \
-    "
-
-SRC_URI[sha256sum] = "e383702853236004e5b08e424b8afe9b53fe9f31aaa7a5382f39d9533eb7c043"
-
-inherit autotools-brokensep ptest pkgconfig
-
-#CFLAGS += "-I${STAGING_INCDIR}/nss3"
-#CPPFLAGS += "-I${STAGING_INCDIR}/nss3"
-
-PACKAGECONFIG ??= "gnutls libgcrypt nss openssl des"
-PACKAGECONFIG[gnutls] = ",,gnutls"
-PACKAGECONFIG[libgcrypt] = ",,libgcrypt"
-PACKAGECONFIG[nss] = "--with-nss=${STAGING_DIR_HOST} --with-nspr=${STAGING_DIR_HOST},--with-nss=no --with-nspr=no,nss nspr"
-PACKAGECONFIG[openssl] = ",,openssl"
-PACKAGECONFIG[des] = ",--disable-des,,"
-
-# these can be dynamically loaded with xmlSecCryptoDLLoadLibrary()
-FILES_SOLIBSDEV = "${libdir}/libxmlsec1.so"
-FILES:${PN} += "${libdir}/libxmlsec1-*.so"
-INSANE_SKIP:${PN} = "dev-so"
-
-FILES:${PN}-dev += "${libdir}/xmlsec1Conf.sh"
-FILES:${PN}-dbg += "${PTEST_PATH}/.debug/*"
-
-RDEPENDS:${PN}-ptest += "${PN}-dev"
-INSANE_SKIP:${PN}-ptest += "dev-deps"
-
-PTEST_EXTRA_ARGS = "top_srcdir=${S} top_builddir=${B}"
-
-do_compile_ptest () {
-    oe_runmake -C ${S}/examples ${PTEST_EXTRA_ARGS} all
-}
-
-do_install:append() {
-    for i in ${bindir}/xmlsec1-config ${libdir}/xmlsec1Conf.sh \
-        ${libdir}/pkgconfig/xmlsec1-openssl.pc; do
-        sed -i -e "s@${RECIPE_SYSROOT}@@g" ${D}$i
-    done
-}
-
-do_install_ptest () {
-    oe_runmake -C ${S}/examples DESTDIR=${D}${PTEST_PATH} ${PTEST_EXTRA_ARGS} install-ptest
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.33.bb b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.33.bb
new file mode 100644
index 0000000..0cca2fe
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.33.bb
@@ -0,0 +1,67 @@
+SUMMARY = "XML Security Library is a C library based on LibXML2"
+DESCRIPTION = "\
+    XML Security Library is a C library based on \
+    LibXML2 and OpenSSL. The library was created with a goal to support major \
+    XML security standards "XML Digital Signature" and "XML Encryption". \
+    "
+HOMEPAGE = "http://www.aleksey.com/xmlsec/"
+DEPENDS = "libtool libxml2 libxslt zlib"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=352791d62092ea8104f085042de7f4d0"
+
+SECTION = "libs"
+
+SRC_URI = "http://www.aleksey.com/xmlsec/download/${BP}.tar.gz \
+    file://fix-ltmain.sh.patch \
+    file://change-finding-path-of-nss.patch \
+    file://makefile-ptest.patch \
+    file://xmlsec1-examples-allow-build-in-separate-dir.patch \
+    file://0001-nss-nspr-fix-for-multilib.patch \
+    file://run-ptest \
+    file://ensure-search-path-non-host.patch \
+    "
+
+SRC_URI[sha256sum] = "26041d35a20a245ed5a2fb9ee075f10825664d274220cb5190340fa87a4d0931"
+
+inherit autotools-brokensep ptest pkgconfig
+
+#CFLAGS += "-I${STAGING_INCDIR}/nss3"
+#CPPFLAGS += "-I${STAGING_INCDIR}/nss3"
+
+PACKAGECONFIG ??= "gnutls libgcrypt nss openssl des"
+PACKAGECONFIG[gnutls] = ",,gnutls"
+PACKAGECONFIG[libgcrypt] = ",,libgcrypt"
+PACKAGECONFIG[nss] = "--with-nss=${STAGING_DIR_HOST} --with-nspr=${STAGING_DIR_HOST},--with-nss=no --with-nspr=no,nss nspr"
+PACKAGECONFIG[openssl] = ",,openssl"
+PACKAGECONFIG[des] = ",--disable-des,,"
+
+# these can be dynamically loaded with xmlSecCryptoDLLoadLibrary()
+FILES_SOLIBSDEV = "${libdir}/libxmlsec1.so"
+FILES:${PN} += "${libdir}/libxmlsec1-*.so"
+INSANE_SKIP:${PN} = "dev-so"
+
+FILES:${PN}-dev += "${libdir}/xmlsec1Conf.sh"
+FILES:${PN}-dbg += "${PTEST_PATH}/.debug/*"
+
+RDEPENDS:${PN}-ptest += "${PN}-dev"
+INSANE_SKIP:${PN}-ptest += "dev-deps"
+
+PTEST_EXTRA_ARGS = "top_srcdir=${S} top_builddir=${B}"
+
+do_compile_ptest () {
+    oe_runmake -C ${S}/examples ${PTEST_EXTRA_ARGS} all
+}
+
+do_install:append() {
+    for i in ${bindir}/xmlsec1-config ${libdir}/xmlsec1Conf.sh \
+        ${libdir}/pkgconfig/xmlsec1-openssl.pc; do
+        sed -i -e "s@${RECIPE_SYSROOT}@@g" ${D}$i
+    done
+}
+
+do_install_ptest () {
+    oe_runmake -C ${S}/examples DESTDIR=${D}${PTEST_PATH} ${PTEST_EXTRA_ARGS} install-ptest
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.18.bb b/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.18.bb
new file mode 100644
index 0000000..eadf8c1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.18.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Xorg drivers for xrdp."
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a2523660329fdca3d954c0a87390e007"
+
+inherit autotools pkgconfig 
+
+DEPENDS = "virtual/libx11 xserver-xorg xrdp nasm-native"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "x11 pam"
+
+SRC_URI = "git://github.com/neutrinolabs/xorgxrdp.git;branch=devel;protocol=https"
+
+SRCREV = "752b7659773a11ca6d4600645547c06fdb8a23d9"
+
+PV = "0.2.18"
+
+S = "${WORKDIR}/git"
+
+FILES:${PN} += "${libdir}/xorg/modules/*"
+
+INSANE_SKIP:${PN} += "xorg-driver-abi"
diff --git a/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb b/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb
deleted file mode 100644
index 25dbe13..0000000
--- a/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Xorg drivers for xrdp."
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a2523660329fdca3d954c0a87390e007"
-
-inherit autotools pkgconfig 
-
-DEPENDS = "virtual/libx11 xserver-xorg xrdp nasm-native"
-
-inherit features_check
-REQUIRED_DISTRO_FEATURES = "x11 pam"
-
-SRC_URI = "git://github.com/neutrinolabs/xorgxrdp.git"
-
-SRCREV = "c122544f184d4031bbae1ad80fbab554c34a9427"
-
-PV = "0.2.5"
-
-S = "${WORKDIR}/git"
-
-FILES:${PN} += "${libdir}/xorg/modules/*"
-
-INSANE_SKIP:${PN} += "xorg-driver-abi"
-
-PNBLACKLIST[xorgxrdp] ?= "Depends on xrdp which needs porting to openssl 3.x"
diff --git a/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.17.bb b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.17.bb
deleted file mode 100644
index e933c66..0000000
--- a/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.17.bb
+++ /dev/null
@@ -1,95 +0,0 @@
-SUMMARY = "An open source remote desktop protocol(rdp) server."
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=72cfbe4e7bd33a0a1de9630c91195c21 \
-"
-
-inherit features_check autotools pkgconfig useradd systemd
-
-DEPENDS = "openssl virtual/libx11 libxfixes libxrandr libpam nasm-native"
-
-REQUIRED_DISTRO_FEATURES = "x11 pam"
-
-SRC_URI = "git://github.com/neutrinolabs/xrdp.git;branch=devel \
-           file://xrdp.sysconfig \
-           file://0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch \
-           file://0001-Fix-the-compile-error.patch \
-           file://0001-arch-Define-NO_NEED_ALIGN-on-ppc64.patch \
-           "
-SRCREV = "58088324956d94fd2eb5e7694a318cccec6990f1"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[fuse] = " --enable-fuse, --disable-fuse, fuse"
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM:${PN} = "--system xrdp"
-USERADD_PARAM:${PN}  = "--system --home /var/run/xrdp -g xrdp \
-                        --no-create-home --shell /bin/false xrdp"
-
-FILES:${PN} += "${datadir}/dbus-1/services/*.service \
-                ${datadir}/dbus-1/accessibility-services/*.service "
-
-FILES:${PN}-dev += "${libdir}/xrdp/libcommon.so \
-                    ${libdir}/xrdp/libxrdp.so \
-                    ${libdir}/xrdp/libscp.so \
-                    ${libdir}/xrdp/libxrdpapi.so "
-
-EXTRA_OECONF = "--enable-pam-config=suse"
-
-do_configure:prepend() {
-    cd ${S}
-    ./bootstrap
-    cd -
-}
-
-do_compile:prepend() {
-    sed -i 's/(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am/(MAKE) $(AM_MAKEFLAGS) install-exec-am/g' ${S}/keygen/Makefile.in
-}
-
-
-do_install:append() {
-	install -d ${D}${sysconfdir}
-	install -d ${D}${sysconfdir}/xrdp
-	install -d ${D}${sysconfdir}/xrdp/pam.d
-	install -d ${D}${sysconfdir}/sysconfig/xrdp
-
-	# deal with systemd unit files
-	install -d ${D}${systemd_unitdir}/system
-	install -m 0644 ${S}/instfiles/xrdp.service.in ${D}${systemd_unitdir}/system/xrdp.service
-	install -m 0644 ${S}/instfiles/xrdp-sesman.service.in ${D}${systemd_unitdir}/system/xrdp-sesman.service
-	sed -i -e 's,@localstatedir@,${localstatedir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
-	sed -i -e 's,@sysconfdir@,${sysconfdir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
-	sed -i -e 's,@sbindir@,${sbindir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
-
-	install -m 0644 ${S}/instfiles/*.ini ${D}${sysconfdir}/xrdp/
-	install -m 0644 ${S}/sesman/sesman.ini.in ${D}${sysconfdir}/xrdp/
-	install -m 0644 ${S}/sesman/startwm.sh ${D}${sysconfdir}/xrdp/
-	install -m 0644 ${S}/xrdp/xrdp.ini.in ${D}${sysconfdir}/xrdp/
-	install -m 0644 ${S}/xrdp/xrdp_keyboard.ini ${D}${sysconfdir}/xrdp/
-	install -m 0644 ${S}/keygen/openssl.conf ${D}${sysconfdir}/xrdp/
-	install -m 0644 ${WORKDIR}/xrdp.sysconfig ${D}${sysconfdir}/sysconfig/xrdp/
-	chown xrdp:xrdp ${D}${sysconfdir}/xrdp
-}
-
-SYSTEMD_SERVICE:${PN} = "xrdp.service xrdp-sesman.service"
-
-pkg_postinst:${PN}() {
-	if test -z "$D"
-	then
-		if test -x ${bindir}/xrdp-keygen
-		then
-			${bindir}/xrdp-keygen xrdp ${sysconfdir}/xrdp/rsakeys.ini >/dev/null
-                fi
-		if test ! -s ${sysconfdir}/xrdp/cert.pem
-		then
-			openssl req -x509 -newkey rsa:2048 -sha256 -nodes -days 3652 \
-			-keyout ${sysconfdir}/xrdp/key.pem \
-			-out ${sysconfdir}/xrdp/cert.pem \
-			-config ${sysconfdir}/xrdp/openssl.conf >/dev/null 2>&1
-			chmod 400 ${sysconfdir}/xrdp/key.pem
-		fi
-        fi
-}
-PNBLACKLIST[xrdp] ?= "Needs porting to openssl 3.x"
diff --git a/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.18.bb b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.18.bb
new file mode 100644
index 0000000..7ec6ae1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.18.bb
@@ -0,0 +1,89 @@
+SUMMARY = "An open source remote desktop protocol(rdp) server."
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=72cfbe4e7bd33a0a1de9630c91195c21 \
+"
+
+inherit features_check autotools pkgconfig useradd systemd
+
+DEPENDS = "openssl virtual/libx11 libxfixes libxrandr libpam nasm-native imlib2 pixman libsm"
+
+REQUIRED_DISTRO_FEATURES = "x11 pam"
+
+SRC_URI = "https://github.com/neutrinolabs/${BPN}/releases/download/v${PV}/${BPN}-${PV}.tar.gz \
+           file://xrdp.sysconfig \
+           file://0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch \
+           file://0001-Fix-the-compile-error.patch \
+           file://0001-arch-Define-NO_NEED_ALIGN-on-ppc64.patch \
+           "
+
+SRC_URI[sha256sum] = "c5eea0af055fac90c632e44fb667f1a25c55de2e34b37127e4cb0aabaef90a0f"
+
+CFLAGS += " -Wno-deprecated-declarations"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[fuse] = " --enable-fuse, --disable-fuse, fuse"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "--system xrdp"
+USERADD_PARAM:${PN}  = "--system --home /var/run/xrdp -g xrdp \
+                        --no-create-home --shell /bin/false xrdp"
+
+FILES:${PN} += "${datadir}/dbus-1/services/*.service \
+                ${datadir}/dbus-1/accessibility-services/*.service "
+
+FILES:${PN}-dev += "${libdir}/xrdp/libcommon.so \
+                    ${libdir}/xrdp/libxrdp.so \
+                    ${libdir}/xrdp/libscp.so \
+                    ${libdir}/xrdp/libxrdpapi.so "
+
+EXTRA_OECONF = "--enable-pam-config=suse --enable-fuse \
+                --enable-pixman --enable-painter --enable-vsock \
+                --enable-ipv6 --with-imlib2 --with-socketdir=${localstatedir}/run/${PN}"
+
+do_configure:prepend() {
+    cd ${S}
+    ./bootstrap
+    cd -
+}
+
+do_compile:prepend() {
+    sed -i 's/(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am/(MAKE) $(AM_MAKEFLAGS) install-exec-am/g' ${S}/keygen/Makefile.in
+}
+
+do_install:append() {
+
+	# deal with systemd unit files
+	install -d ${D}${systemd_unitdir}/system
+	install -m 0644 ${S}/instfiles/xrdp.service.in ${D}${systemd_unitdir}/system/xrdp.service
+	install -m 0644 ${S}/instfiles/xrdp-sesman.service.in ${D}${systemd_unitdir}/system/xrdp-sesman.service
+	sed -i -e 's,@localstatedir@,${localstatedir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
+	sed -i -e 's,@sysconfdir@,${sysconfdir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
+	sed -i -e 's,@sbindir@,${sbindir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
+
+	install -d ${D}${sysconfdir}/sysconfig/xrdp
+	install -m 0644 ${S}/instfiles/*.ini ${D}${sysconfdir}/xrdp/
+	install -m 0644 ${S}/keygen/openssl.conf ${D}${sysconfdir}/xrdp/
+	install -m 0644 ${WORKDIR}/xrdp.sysconfig ${D}${sysconfdir}/sysconfig/xrdp/
+	chown xrdp:xrdp ${D}${sysconfdir}/xrdp
+}
+
+SYSTEMD_SERVICE:${PN} = "xrdp.service xrdp-sesman.service"
+
+pkg_postinst:${PN}() {
+	if test -z "$D"
+	then
+		if test -x ${bindir}/xrdp-keygen
+		then
+			${bindir}/xrdp-keygen xrdp ${sysconfdir}/xrdp/rsakeys.ini >/dev/null
+                fi
+		if test ! -s ${sysconfdir}/xrdp/cert.pem
+		then
+			openssl req -x509 -newkey rsa:2048 -sha256 -nodes -days 3652 \
+			-keyout ${sysconfdir}/xrdp/key.pem \
+			-out ${sysconfdir}/xrdp/cert.pem \
+			-config ${sysconfdir}/xrdp/openssl.conf >/dev/null 2>&1
+			chmod 400 ${sysconfdir}/xrdp/key.pem
+		fi
+        fi
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.6.3.bb b/meta-openembedded/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.6.3.bb
index 9d359d6..e383037 100644
--- a/meta-openembedded/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.6.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.6.3.bb
@@ -7,7 +7,7 @@
 
 # yaml-cpp releases are stored as archive files in github.
 # download the exact revision of release
-SRC_URI = "git://github.com/jbeder/yaml-cpp.git"
+SRC_URI = "git://github.com/jbeder/yaml-cpp.git;branch=master;protocol=https"
 SRCREV = "9a3624205e8774953ef18f57067b3426c1c5ada6"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/zbar/zbar_git.bb b/meta-openembedded/meta-oe/recipes-support/zbar/zbar_git.bb
index 39d3894..d956a84 100644
--- a/meta-openembedded/meta-oe/recipes-support/zbar/zbar_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/zbar/zbar_git.bb
@@ -9,7 +9,7 @@
 LICENSE = "LGPL-2.1"
 LIC_FILES_CHKSUM = "file://LICENSE.md;md5=5e9ee833a2118adc7d8b5ea38e5b1cef"
 
-SRC_URI = "git://github.com/mchehab/zbar.git;branch=master \
+SRC_URI = "git://github.com/mchehab/zbar.git;branch=master;protocol=https \
     file://0001-qt-Create-subdir-in-Makefile.patch \
     file://0002-zbarcam-Create-subdir-in-Makefile.patch \
 "
diff --git a/meta-openembedded/meta-oe/recipes-test/bats/bats_1.4.1.bb b/meta-openembedded/meta-oe/recipes-test/bats/bats_1.4.1.bb
deleted file mode 100644
index 30e8345..0000000
--- a/meta-openembedded/meta-oe/recipes-test/bats/bats_1.4.1.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Bash Automated Testing System"
-DESCRIPTION = "Bats is a TAP-compliant testing framework for Bash. It \
-provides a simple way to verify that the UNIX programs you write behave as expected."
-AUTHOR = "Sam Stephenson & bats-core organization"
-HOMEPAGE = "https://github.com/bats-core/bats-core"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=2970203aedf9e829edb96a137a4fe81b"
-
-SRC_URI = "git://github.com/bats-core/bats-core.git \
-           file://0001-install.sh-consider-multilib.patch \
-          "
-# v1.4.1
-SRCREV = "54e965fa9d269c2b3ff9036d81f32bac3df0edea"
-
-S = "${WORKDIR}/git"
-
-do_configure:prepend() {
-	sed -i 's:\$BATS_ROOT/lib:\$BATS_ROOT/${baselib}:g' ${S}/libexec/bats-core/bats
-	sed -i 's:\$BATS_ROOT/lib:\$BATS_ROOT/${baselib}:g' ${S}/libexec/bats-core/bats-exec-file
-	sed -i 's:\$BATS_ROOT/lib:\$BATS_ROOT/${baselib}:g' ${S}/libexec/bats-core/bats-exec-test
-}
-
-do_install() {
-	# Just a bunch of bash scripts to install
-	${S}/install.sh ${D}${prefix} ${baselib}
-}
-
-RDEPENDS:${PN} = "bash"
-FILES:${PN} += "${libdir}/bats-core/*"
-
-PACKAGECONFIG ??= "pretty"
-PACKAGECONFIG[pretty] = ",,,ncurses"
diff --git a/meta-openembedded/meta-oe/recipes-test/bats/bats_1.5.0.bb b/meta-openembedded/meta-oe/recipes-test/bats/bats_1.5.0.bb
new file mode 100644
index 0000000..ffbb37c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-test/bats/bats_1.5.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Bash Automated Testing System"
+DESCRIPTION = "Bats is a TAP-compliant testing framework for Bash. It \
+provides a simple way to verify that the UNIX programs you write behave as expected."
+AUTHOR = "Sam Stephenson & bats-core organization"
+HOMEPAGE = "https://github.com/bats-core/bats-core"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=2970203aedf9e829edb96a137a4fe81b"
+
+SRC_URI = "git://github.com/bats-core/bats-core.git;branch=master;protocol=https"
+# v1.4.1
+SRCREV = "99d64eb017abcd6a766dd0d354e625526da69cb3"
+
+S = "${WORKDIR}/git"
+
+do_configure:prepend() {
+	sed -i 's:\$BATS_ROOT/lib:\$BATS_ROOT/${baselib}:g' ${S}/libexec/bats-core/bats
+	sed -i 's:\$BATS_ROOT/lib:\$BATS_ROOT/${baselib}:g' ${S}/libexec/bats-core/bats-exec-file
+	sed -i 's:\$BATS_ROOT/lib:\$BATS_ROOT/${baselib}:g' ${S}/libexec/bats-core/bats-exec-test
+}
+
+do_install() {
+	# Just a bunch of bash scripts to install
+	${S}/install.sh ${D}${prefix} ${baselib}
+}
+
+RDEPENDS:${PN} = "bash"
+FILES:${PN} += "${libdir}/bats-core/*"
+
+PACKAGECONFIG ??= "pretty"
+PACKAGECONFIG[pretty] = ",,,ncurses"
diff --git a/meta-openembedded/meta-oe/recipes-test/bats/files/0001-install.sh-consider-multilib.patch b/meta-openembedded/meta-oe/recipes-test/bats/files/0001-install.sh-consider-multilib.patch
deleted file mode 100644
index c7393ca..0000000
--- a/meta-openembedded/meta-oe/recipes-test/bats/files/0001-install.sh-consider-multilib.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 6e3d01f1ff199383b78a7504858c374fbce05f4e Mon Sep 17 00:00:00 2001
-From: Kai Kang <kai.kang@windriver.com>
-Date: Thu, 10 Jun 2021 11:11:07 +0800
-Subject: [PATCH] install.sh: consider multilib
-
-It may install files to /usr/lib64 when multilib is enabled. Add an
-optional parameter for install.sh to support it.
-
-Upstream-Status: Submitted [https://github.com/bats-core/bats-core/pull/452]
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
- install.sh | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/install.sh b/install.sh
-index e660866..d91159e 100755
---- a/install.sh
-+++ b/install.sh
-@@ -4,6 +4,7 @@ set -e
- 
- BATS_ROOT="${0%/*}"
- PREFIX="$1"
-+BASELIB="${2:-lib}"
- 
- if [[ -z "$PREFIX" ]]; then
-   printf '%s\n' \
-@@ -12,10 +13,10 @@ if [[ -z "$PREFIX" ]]; then
-   exit 1
- fi
- 
--install -d -m 755 "$PREFIX"/{bin,libexec/bats-core,lib/bats-core,share/man/man{1,7}}
-+install -d -m 755 "$PREFIX"/{bin,libexec/bats-core,${BASELIB}/bats-core,share/man/man{1,7}}
- install -m 755 "$BATS_ROOT/bin"/* "$PREFIX/bin"
- install -m 755 "$BATS_ROOT/libexec/bats-core"/* "$PREFIX/libexec/bats-core"
--install -m 755 "$BATS_ROOT/lib/bats-core"/* "$PREFIX/lib/bats-core"
-+install -m 755 "$BATS_ROOT/lib/bats-core"/* "$PREFIX/${BASELIB}/bats-core"
- install -m 644 "$BATS_ROOT/man/bats.1" "$PREFIX/share/man/man1"
- install -m 644 "$BATS_ROOT/man/bats.7" "$PREFIX/share/man/man7"
- 
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.13.7.bb b/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.13.7.bb
index 3eda96c..ed50f65 100644
--- a/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.13.7.bb
+++ b/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.13.7.bb
@@ -5,7 +5,7 @@
 LICENSE = "BSL-1.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
 
-SRC_URI = "git://github.com/catchorg/Catch2.git;branch=v2.x"
+SRC_URI = "git://github.com/catchorg/Catch2.git;branch=v2.x;protocol=https"
 SRCREV = "c4e3767e265808590986d5db6ca1b5532a7f3d13"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-test/cmocka/cmocka_1.1.5.bb b/meta-openembedded/meta-oe/recipes-test/cmocka/cmocka_1.1.5.bb
index 59626df..554d582 100644
--- a/meta-openembedded/meta-oe/recipes-test/cmocka/cmocka_1.1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-test/cmocka/cmocka_1.1.5.bb
@@ -8,7 +8,7 @@
 
 SRCREV = "a4fc3dd7705c277e3a57432895e9852ea105dac9"
 PV .= "+git${SRCPV}"
-SRC_URI = "git://git.cryptomilk.org/projects/cmocka.git \
+SRC_URI = "git://git.cryptomilk.org/projects/cmocka.git;protocol=https;branch=master \
            file://run-ptest \
           "
 
diff --git a/meta-openembedded/meta-oe/recipes-test/cpputest/cpputest_4.0.bb b/meta-openembedded/meta-oe/recipes-test/cpputest/cpputest_4.0.bb
index e84e03c..921143a 100644
--- a/meta-openembedded/meta-oe/recipes-test/cpputest/cpputest_4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-test/cpputest/cpputest_4.0.bb
@@ -5,7 +5,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=ce5d5f1fe02bcd1343ced64a06fd4177"
 
-SRC_URI = "git://github.com/cpputest/cpputest.git;protocol=https"
+SRC_URI = "git://github.com/cpputest/cpputest.git;protocol=https;branch=master"
 SRCREV = "67d2dfd41e13f09ff218aa08e2d35f1c32f032a1"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb b/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb
index b760690..65b54ed 100644
--- a/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb
+++ b/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb
@@ -2,21 +2,22 @@
 HOMEPAGE = "http://cxxtest.com/"
 SECTION = "devel"
 LICENSE = "LGPL-2.0"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/cxxtest-${PV}/COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
 
-SRC_URI = "http://downloads.sourceforge.net/project/cxxtest/cxxtest/${PV}/cxxtest-${PV}.tar.gz"
+SRC_URI = "http://downloads.sourceforge.net/project/cxxtest/cxxtest/${PV}/${BP}.tar.gz"
 SRC_URI[md5sum] = "c3cc3355e2ac64e34c215f28e44cfcec"
 SRC_URI[sha256sum] = "1c154fef91c65dbf1cd4519af7ade70a61d85a923b6e0c0b007dc7f4895cf7d8"
 
-S = "${WORKDIR}/cxxtest-${PV}/python"
+inherit setuptools3
 
-inherit distutils3
+SETUPTOOLS_SETUP_PATH = "${S}/python"
 
 do_install:append() {
     install -d ${D}${includedir}
-    cp -a ../cxxtest ${D}${includedir}
+    cp -a ${S}/cxxtest/ ${D}${includedir}
+    # Fix the interpretter as otherwise this points to the build host python
     sed '1c\
-#!/usr/bin/env python' -i ${D}${bindir}/cxxtestgen
+#!/usr/bin/env python3' -i ${D}${bindir}/cxxtestgen
 }
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-test/evtest/evtest_1.34.bb b/meta-openembedded/meta-oe/recipes-test/evtest/evtest_1.34.bb
index a3a23c8..eb6a34f 100644
--- a/meta-openembedded/meta-oe/recipes-test/evtest/evtest_1.34.bb
+++ b/meta-openembedded/meta-oe/recipes-test/evtest/evtest_1.34.bb
@@ -8,7 +8,7 @@
 DEPENDS = "libxml2"
 
 SRCREV = "16e5104127a620686bdddc4a9ad62881134d6c69"
-SRC_URI = "git://gitlab.freedesktop.org/libevdev/evtest.git;protocol=https \
+SRC_URI = "git://gitlab.freedesktop.org/libevdev/evtest.git;protocol=https;branch=master \
            file://add_missing_limits_h_include.patch \
            file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \
            "
diff --git a/meta-openembedded/meta-oe/recipes-test/fbtest/fb-test_1.1.0.bb b/meta-openembedded/meta-oe/recipes-test/fbtest/fb-test_1.1.0.bb
new file mode 100644
index 0000000..14ab41b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-test/fbtest/fb-test_1.1.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Test suite for Linux framebuffer"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
+
+SRCREV = "063ec650960c2d79ac51f5c5f026cb05343a33e2"
+SRC_URI = "git://github.com//ponty/fb-test-app.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 fb-test ${D}${bindir}
+    # avoid collisions with perf (perf) and mesa-demos (offset)
+    for prog in perf rect offset ; do
+        install -m 0755 $prog ${D}${bindir}/fb-$prog
+    done
+}
diff --git a/meta-openembedded/meta-oe/recipes-test/fbtest/fb-test_git.bb b/meta-openembedded/meta-oe/recipes-test/fbtest/fb-test_git.bb
deleted file mode 100644
index 6a9d4b2..0000000
--- a/meta-openembedded/meta-oe/recipes-test/fbtest/fb-test_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Test suite for Linux framebuffer"
-
-PV = "1.1.0"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
-
-SRCREV = "063ec650960c2d79ac51f5c5f026cb05343a33e2"
-SRC_URI = "git://github.com/prpplague/fb-test-app.git"
-
-S = "${WORKDIR}/git"
-
-do_install() {
-    install -d ${D}${bindir}
-    install -m 0755 fb-test ${D}${bindir}
-    # avoid collisions with perf (perf) and mesa-demos (offset)
-    for prog in perf rect offset ; do
-        install -m 0755 $prog ${D}${bindir}/fb-$prog
-    done
-}
diff --git a/meta-openembedded/meta-oe/recipes-test/fwts/fwts_21.06.00.bb b/meta-openembedded/meta-oe/recipes-test/fwts/fwts_21.06.00.bb
index d33000b..0480adb 100644
--- a/meta-openembedded/meta-oe/recipes-test/fwts/fwts_21.06.00.bb
+++ b/meta-openembedded/meta-oe/recipes-test/fwts/fwts_21.06.00.bb
@@ -20,8 +20,7 @@
 DEPENDS = "libpcre glib-2.0 dtc bison-native libbsd"
 DEPENDS:append:libc-musl = " libexecinfo"
 
-# Use brokensep for now (https://github.com/ColinIanKing/fwts/issues/2)
-inherit autotools-brokensep bash-completion pkgconfig
+inherit autotools bash-completion pkgconfig
 
 LDFLAGS:append:libc-musl = " -lexecinfo"
 
diff --git a/meta-openembedded/meta-oe/recipes-test/googletest/googletest_git.bb b/meta-openembedded/meta-oe/recipes-test/googletest/googletest_git.bb
index ff8cecc..ff8191e 100644
--- a/meta-openembedded/meta-oe/recipes-test/googletest/googletest_git.bb
+++ b/meta-openembedded/meta-oe/recipes-test/googletest/googletest_git.bb
@@ -10,7 +10,7 @@
 
 S = "${WORKDIR}/git"
 SRCREV = "e2239ee6043f73722e7aa812a459f54a28552929"
-SRC_URI = "git://github.com/google/googletest.git"
+SRC_URI = "git://github.com/google/googletest.git;branch=main;protocol=https"
 
 inherit cmake
 
diff --git a/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess-perl_0.13.bb b/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess-perl_0.13.bb
deleted file mode 100644
index 7bce621..0000000
--- a/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess-perl_0.13.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Guess OpenSSL include path"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ea914cc2718e8d53bd7744d96e66c03c"
-
-SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-Guess-${PV}.tar.gz "
-
-SRC_URI[sha256sum] = "87c1dd7f0f80fcd3d1396bce9fd9962e7791e748dc0584802f8d10cc9585e743"
-
-DEPENDS += "openssl"
-
-RDEPENDS:${PN} = "\
-    perl-module-config \
-    perl-module-exporter \
-    perl-module-extutils-mm \
-    perl-module-extutils-mm-unix \
-    perl-module-file-spec \
-    perl-module-symbol \
-    perl-module-strict \
-    perl-module-warnings \
-"
-
-EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -lssl -L${STAGING_DIR_TARGET}${base_libdir} -lcrypto'"
-
-S = "${WORKDIR}/Crypt-OpenSSL-Guess-${PV}"
-
-inherit cpan ptest-perl
-
-BBCLASSEXTEND = "native"
-
-# for backwards compatibility
-PROVIDES_${PN} += "libcrypt-openssl-guess"
-
-RDEPENDS:${PN}-ptest += "\
-    perl-module-test-more \
-"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess-perl_0.14.bb b/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess-perl_0.14.bb
new file mode 100644
index 0000000..1bf5b20
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess-perl_0.14.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Guess OpenSSL include path"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ea914cc2718e8d53bd7744d96e66c03c"
+
+SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-Guess-${PV}.tar.gz "
+
+SRC_URI[sha256sum] = "e4331977e1512a3ba51d7fa2d642d3e79d479dc23483246ebfaaef80ea8573df"
+
+DEPENDS += "openssl"
+
+RDEPENDS:${PN} = "\
+    perl-module-config \
+    perl-module-exporter \
+    perl-module-extutils-mm \
+    perl-module-extutils-mm-unix \
+    perl-module-file-spec \
+    perl-module-symbol \
+    perl-module-strict \
+    perl-module-warnings \
+"
+
+EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -lssl -L${STAGING_DIR_TARGET}${base_libdir} -lcrypto'"
+
+S = "${WORKDIR}/Crypt-OpenSSL-Guess-${PV}"
+
+inherit cpan ptest-perl
+
+BBCLASSEXTEND = "native"
+
+# for backwards compatibility
+PROVIDES_${PN} += "libcrypt-openssl-guess"
+
+RDEPENDS:${PN}-ptest += "\
+    perl-module-test-more \
+"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb b/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb
deleted file mode 100644
index 4a2cb73..0000000
--- a/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "A simple, sane and efficient module to slurp a file"
-DESCRIPTION = "This module provides functions for fast and correct slurping and spewing. \
-All functions are optionally exported. All functions throw exceptions on \
-errors, write functions don't return any meaningful value."
-
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-
-HOMEPAGE=       "https://metacpan.org/release/File-Slurper"
-
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
-file://${COMMON_LICENSE_DIR}/GPL-1.0-or-later;md5=30c0b8a5048cc2f4be5ff15ef0d8cf61"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/File-Slurper-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "5742c63096392dfee50b8db314bcca18"
-SRC_URI[sha256sum] = "4efb2ea416b110a1bda6f8133549cc6ea3676402e3caf7529fce0313250aa578"
-RDEPENDS:${PN} = " \
-    perl-module-carp \
-    perl-module-encode \
-    perl-module-exporter \
-    perl-module-perlio \
-    perl-module-perlio-encoding \
-    perl-module-strict \
-    perl-module-warnings \
-"
-
-RDEPENDS:${PN}-ptest += "libtest-warnings-perl \
-    perl-module-test-more \
-    "
-
-S = "${WORKDIR}/File-Slurper-${PV}"
-
-inherit cpan ptest-perl
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.013.bb b/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.013.bb
new file mode 100644
index 0000000..c7e5c56
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.013.bb
@@ -0,0 +1,35 @@
+SUMMARY = "A simple, sane and efficient module to slurp a file"
+DESCRIPTION = "This module provides functions for fast and correct slurping and spewing. \
+All functions are optionally exported. All functions throw exceptions on \
+errors, write functions don't return any meaningful value."
+
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+
+HOMEPAGE=       "https://metacpan.org/release/File-Slurper"
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
+file://${COMMON_LICENSE_DIR}/GPL-1.0-or-later;md5=30c0b8a5048cc2f4be5ff15ef0d8cf61"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/File-Slurper-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "e2f6a4029a6a242d50054044f1fb86770b9b5cc4daeb1a967f91ffb42716a8c5"
+RDEPENDS:${PN} = " \
+    perl-module-carp \
+    perl-module-encode \
+    perl-module-exporter \
+    perl-module-perlio \
+    perl-module-perlio-encoding \
+    perl-module-strict \
+    perl-module-warnings \
+"
+
+RDEPENDS:${PN}-ptest += "libtest-warnings-perl \
+    perl-module-test-more \
+    "
+
+S = "${WORKDIR}/File-Slurper-${PV}"
+
+inherit cpan ptest-perl
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libio/compress-raw-bzip2-perl_2.096.bb b/meta-openembedded/meta-perl/recipes-perl/libio/compress-raw-bzip2-perl_2.096.bb
new file mode 100644
index 0000000..272f7c5
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libio/compress-raw-bzip2-perl_2.096.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = ""Compress::Raw::Bzip2" provides an interface to the in-memory \
+compression/uncompression functions from the bzip2 compression library."
+
+SECTION = "libs"
+LICENSE = "Artisticv1 | GPLv1+"
+
+MAINTAINER=	"Poky <poky@yoctoproject.org>"
+HOMEPAGE=	"https://metacpan.org/release/Compress-Raw-Bzip2"
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
+file://${COMMON_LICENSE_DIR}/GPL-1.0-only;md5=e9e36a9de734199567a4d769498f743d"
+
+SRC_URI = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-2.096.tar.gz"
+
+SRC_URI[md5sum] = "4fdb7ea5071e4b774c52c37331386355"
+SRC_URI[sha256sum] = "a564e7634eca7740c5487d01effe1461e9e51b8909e69b3d8f5be98997958cbe"
+
+DEPENDS += "bzip2"
+
+S = "${WORKDIR}/Compress-Raw-Bzip2-${PV}"
+
+inherit cpan
+
+export BUILD_BZIP2="0"
+export BZIP2_INCLUDE="-I${STAGING_DIR_HOST}${includedir}"
+
+do_compile() {
+	export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+	cpan_do_compile
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libio/compress-raw-lzma-perl_2.096.bb b/meta-openembedded/meta-perl/recipes-perl/libio/compress-raw-lzma-perl_2.096.bb
new file mode 100644
index 0000000..3865589
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libio/compress-raw-lzma-perl_2.096.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = ""Compress::Raw::Lzma" provides an interface to the in-memory \
+compression/uncompression functions from the lzma compression library."
+
+SECTION = "libs"
+LICENSE = "Artisticv1 | GPLv1+"
+
+MAINTAINER=	"Poky <poky@yoctoproject.org>"
+HOMEPAGE=	"https://metacpan.org/release/Compress-Raw-Lzma"
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
+file://${COMMON_LICENSE_DIR}/GPL-1.0-only;md5=e9e36a9de734199567a4d769498f743d"
+
+SRC_URI = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/Compress-Raw-Lzma-2.096.tar.gz"
+
+SRC_URI[md5sum] = "b5079bb43712fcd1e74b80777fa376ed"
+SRC_URI[sha256sum] = "f3afb267b1303b0f125976e9e4a70c6a4a205e35e7c99b408911f5e5c6578217"
+
+DEPENDS += "xz"
+
+S = "${WORKDIR}/Compress-Raw-Lzma-${PV}"
+
+inherit cpan
+
+export LIBLZMA_INCLUDE="-I${STAGING_DIR_HOST}${includedir}"
+export LIBLZMA_LIB="-I${STAGING_DIR_HOST}${libdir}"
+
+do_compile() {
+	export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+	cpan_do_compile
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libio/compress-raw-zlib-perl_2.096.bb b/meta-openembedded/meta-perl/recipes-perl/libio/compress-raw-zlib-perl_2.096.bb
new file mode 100644
index 0000000..8b2ab14
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libio/compress-raw-zlib-perl_2.096.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "The *Compress::Raw::Zlib* module provides a Perl interface to the *zlib* \
+compression library (see "AUTHOR" for details about where to get *zlib*)."
+
+SECTION = "libs"
+LICENSE = "Artisticv1 | GPLv1+"
+
+MAINTAINER=	"Poky <poky@yoctoproject.org>"
+HOMEPAGE=	"https://metacpan.org/release/Compress-Raw-Zlib"
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
+file://${COMMON_LICENSE_DIR}/GPL-1.0-only;md5=e9e36a9de734199567a4d769498f743d"
+
+SRC_URI = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/Compress-Raw-Zlib-2.096.tar.gz"
+
+SRC_URI[md5sum] = "4144ecdd901231553447998cf8035e4a"
+SRC_URI[sha256sum] = "cd4cba20c159a7748b8bc91278524a7da70573d9531fde62298609a5f1c65912"
+
+DEPENDS += "zlib"
+
+S = "${WORKDIR}/Compress-Raw-Zlib-${PV}"
+
+inherit cpan
+
+export BUILD_ZLIB="0"
+
+do_compile() {
+	export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+	cpan_do_compile
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libio/io-compress-lzma-perl_2.096.bb b/meta-openembedded/meta-perl/recipes-perl/libio/io-compress-lzma-perl_2.096.bb
new file mode 100644
index 0000000..a5c7735
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libio/io-compress-lzma-perl_2.096.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "This module provides a Perl interface that allows writing lzma compressed \
+data to files or buffer."
+
+SECTION = "libs"
+LICENSE = "Artisticv1 | GPLv1+"
+
+MAINTAINER=	"Poky <poky@yoctoproject.org>"
+HOMEPAGE=	"https://metacpan.org/release/IO-Compress-Lzma"
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
+file://${COMMON_LICENSE_DIR}/GPL-1.0-only;md5=e9e36a9de734199567a4d769498f743d"
+
+SRC_URI = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/IO-Compress-Lzma-2.096.tar.gz"
+
+SRC_URI[md5sum] = "6c1b70740605b8073e4fbb5ba1e7bbdb"
+SRC_URI[sha256sum] = "2f29125f19bb41d29c4b5a2467e3560b7bce5d428176a046b7c8a51609dce6e8"
+RDEPENDS:${PN} += "compress-raw-lzma-perl"
+RDEPENDS:${PN} += "io-compress-perl"
+
+S = "${WORKDIR}/IO-Compress-Lzma-${PV}"
+
+inherit cpan allarch
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libio/io-compress-perl_2.096.bb b/meta-openembedded/meta-perl/recipes-perl/libio/io-compress-perl_2.096.bb
new file mode 100644
index 0000000..01580db
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libio/io-compress-perl_2.096.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "This module is not intended for direct use in application code. Its sole \
+purpose is to be sub-classed by IO::Compress modules."
+
+SECTION = "libs"
+LICENSE = "Artisticv1 | GPLv1+"
+
+MAINTAINER=	"Poky <poky@yoctoproject.org>"
+HOMEPAGE=	"https://metacpan.org/release/IO-Compress"
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
+file://${COMMON_LICENSE_DIR}/GPL-1.0-only;md5=e9e36a9de734199567a4d769498f743d"
+
+SRC_URI = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/IO-Compress-2.096.tar.gz"
+
+SRC_URI[md5sum] = "18ad197cad5ca87bc3a7d2538998e017"
+SRC_URI[sha256sum] = "9d219fd5df4b490b5d2f847921e3cb1c3392758fa0bae9b05a8992b3620ba572"
+RDEPENDS:${PN} += "compress-raw-bzip2-perl"
+RDEPENDS:${PN} += "compress-raw-zlib-perl"
+
+S = "${WORKDIR}/IO-Compress-${PV}"
+
+inherit cpan allarch
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.072.bb b/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.072.bb
deleted file mode 100644
index d49b2cd..0000000
--- a/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.072.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "Perl library for transparent SSL"
-DESCRIPTION = "This module is a true drop-in replacement for IO::Socket::INET that \
-uses SSL to encrypt data before it is transferred to a remote server \
-or client. IO::Socket::SSL supports all the extra features that one \
-needs to write a full-featured SSL client or server application: \
-multiple SSL contexts, cipher selection, certificate verification, and \
-SSL version selection. As an extra bonus, it works perfectly with \
-mod_perl."
-HOMEPAGE = "http://search.cpan.org/dist/IO-Socket-SSL/"
-SECTION = "libs"
-
-LICENSE = "Artistic-1.0|GPLv1+"
-LIC_FILES_CHKSUM = "file://META.yml;beginline=12;endline=12;md5=963ce28228347875ace682de56eef8e8"
-
-RDEPENDS:${PN} += "\
-    libnet-ssleay-perl \
-    perl-module-autoloader \
-    perl-module-scalar-util \
-    perl-module-io-socket \
-"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SU/SULLR/IO-Socket-SSL-${PV}.tar.gz \
-           file://run-ptest \
-          "
-SRC_URI[sha256sum] = "b5bee81db3905a9069340a450a48e1e1b32dec4ede0064f5703bafb9a707b89d"
-
-S = "${WORKDIR}/IO-Socket-SSL-${PV}"
-
-inherit cpan ptest
-
-do_install:append () {
-    mkdir -p ${D}${docdir}/${PN}/
-    cp ${S}/BUGS ${D}${docdir}/${PN}/
-    cp ${S}/Changes ${D}${docdir}/${PN}/
-    cp ${S}/README ${D}${docdir}/${PN}/
-    cp -pRP ${S}/docs ${D}${docdir}/${PN}/
-    cp -pRP ${S}/certs ${D}${docdir}/${PN}/
-    cp -pRP ${S}/example ${D}${docdir}/${PN}/
-}
-
-do_install_ptest () {
-    cp -r ${B}/t ${D}${PTEST_PATH}
-    cp -r ${B}/certs ${D}${PTEST_PATH}
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.073.bb b/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.073.bb
new file mode 100644
index 0000000..ef7fd08
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.073.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Perl library for transparent SSL"
+DESCRIPTION = "This module is a true drop-in replacement for IO::Socket::INET that \
+uses SSL to encrypt data before it is transferred to a remote server \
+or client. IO::Socket::SSL supports all the extra features that one \
+needs to write a full-featured SSL client or server application: \
+multiple SSL contexts, cipher selection, certificate verification, and \
+SSL version selection. As an extra bonus, it works perfectly with \
+mod_perl."
+HOMEPAGE = "http://search.cpan.org/dist/IO-Socket-SSL/"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0|GPLv1+"
+LIC_FILES_CHKSUM = "file://META.yml;beginline=12;endline=12;md5=963ce28228347875ace682de56eef8e8"
+
+RDEPENDS:${PN} += "\
+    libnet-ssleay-perl \
+    perl-module-autoloader \
+    perl-module-scalar-util \
+    perl-module-io-socket \
+"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SU/SULLR/IO-Socket-SSL-${PV}.tar.gz \
+           file://run-ptest \
+          "
+SRC_URI[sha256sum] = "b2c0b34df97cb1aa816221cee2454a1efd89b86ccbda810389a30e0d08cf57c8"
+
+S = "${WORKDIR}/IO-Socket-SSL-${PV}"
+
+inherit cpan ptest
+
+do_install:append () {
+    mkdir -p ${D}${docdir}/${PN}/
+    cp ${S}/BUGS ${D}${docdir}/${PN}/
+    cp ${S}/Changes ${D}${docdir}/${PN}/
+    cp ${S}/README ${D}${docdir}/${PN}/
+    cp -pRP ${S}/docs ${D}${docdir}/${PN}/
+    cp -pRP ${S}/certs ${D}${docdir}/${PN}/
+    cp -pRP ${S}/example ${D}${docdir}/${PN}/
+}
+
+do_install_ptest () {
+    cp -r ${B}/t ${D}${PTEST_PATH}
+    cp -r ${B}/certs ${D}${PTEST_PATH}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.32.bb b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.32.bb
deleted file mode 100644
index 7e485be..0000000
--- a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.32.bb
+++ /dev/null
@@ -1,65 +0,0 @@
-DESCRIPTION = "This package contains the DNS.pm module with friends."
-HOMEPAGE = "http://www.net-dns.org/"
-SECTION = "libs"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://README;beginline=252;endline=269;md5=27db37b42cd1a5173a53922d67072bcb"
-
-DEPENDS += "perl"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz"
-
-SRC_URI[sha256sum] = "b890a7b44d573f27cc713caadf1e12eaaa4478a6504d1157194df614316b5b50"
-
-UPSTREAM_CHECK_REGEX = "Net\-DNS\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
-
-S = "${WORKDIR}/Net-DNS-${PV}"
-
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
-inherit cpan ptest-perl
-
-RDEPENDS:${PN} = " \
-    libdigest-hmac-perl \
-    perl-module-base \
-    perl-module-constant \
-    perl-module-digest-md5 \
-    perl-module-digest-sha \
-    perl-module-file-spec \
-    perl-module-integer \
-    perl-module-io-file \
-    perl-module-io-select \
-    perl-module-io-socket \
-    perl-module-io-socket-ip \
-    perl-module-mime-base64 \
-    perl-module-scalar-util \
-    perl-module-test-more \
-    perl-module-time-local \
-"
-
-RRECOMMENDS:${PN} += " \
-    libnet-dns-sec-perl \
-"
-
-RDEPENDS:${PN}-ptest += " \
-    perl-module-encode \
-    perl-module-encode-byte \
-    perl-module-extutils-mm \
-    perl-module-extutils-mm-unix \
-    perl-module-overload \
-"
-
-python __anonymous () {
-    # rather than use "find" to determine libc-*.so,
-    # statically export the known paths for glibc and musl
-    import os
-    if d.getVar('TCLIBC') == "glibc":
-        os.environ["LIBC"] = "${STAGING_BASELIBDIR}/libc.so.6"
-    elif d.getVar('TCLIBC') == "musl":
-        os.environ["LIBC"] = "${STAGING_LIBDIR}/libc.so"
-    else:
-       raise bb.parse.SkipRecipe("incompatible with %s C library" %
-                                   d.getVar('TCLIBC'))
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.33.bb b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.33.bb
new file mode 100644
index 0000000..2c7d793
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.33.bb
@@ -0,0 +1,65 @@
+DESCRIPTION = "This package contains the DNS.pm module with friends."
+HOMEPAGE = "http://www.net-dns.org/"
+SECTION = "libs"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://README;beginline=252;endline=269;md5=de95b6a896d5f861d724ea854d316a0b"
+
+DEPENDS += "perl"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "5a40e7cf524e4bd2c33cf03b82b47d5308b712083aa5ee180b0b5af54c71fbd2"
+
+UPSTREAM_CHECK_REGEX = "Net\-DNS\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
+
+S = "${WORKDIR}/Net-DNS-${PV}"
+
+EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN} = " \
+    libdigest-hmac-perl \
+    perl-module-base \
+    perl-module-constant \
+    perl-module-digest-md5 \
+    perl-module-digest-sha \
+    perl-module-file-spec \
+    perl-module-integer \
+    perl-module-io-file \
+    perl-module-io-select \
+    perl-module-io-socket \
+    perl-module-io-socket-ip \
+    perl-module-mime-base64 \
+    perl-module-scalar-util \
+    perl-module-test-more \
+    perl-module-time-local \
+"
+
+RRECOMMENDS:${PN} += " \
+    libnet-dns-sec-perl \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    perl-module-encode \
+    perl-module-encode-byte \
+    perl-module-extutils-mm \
+    perl-module-extutils-mm-unix \
+    perl-module-overload \
+"
+
+python __anonymous () {
+    # rather than use "find" to determine libc-*.so,
+    # statically export the known paths for glibc and musl
+    import os
+    if d.getVar('TCLIBC') == "glibc":
+        os.environ["LIBC"] = "${STAGING_BASELIBDIR}/libc.so.6"
+    elif d.getVar('TCLIBC') == "musl":
+        os.environ["LIBC"] = "${STAGING_LIBDIR}/libc.so"
+    else:
+       raise bb.parse.SkipRecipe("incompatible with %s C library" %
+                                   d.getVar('TCLIBC'))
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb b/meta-openembedded/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb
index 7af7f92..c2b6d4a 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb
@@ -33,6 +33,8 @@
 
 S = "${WORKDIR}/Unix-Statgrab-${PV}"
 
+export LD = "${CCLD}"
+
 inherit cpan pkgconfig ptest-perl
 
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb b/meta-openembedded/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb
index 05dc16b..918c21d 100644
--- a/meta-openembedded/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb
@@ -11,6 +11,11 @@
 
 RDEPENDS:packagegroup-meta-perl = "\
     adduser \
+    compress-raw-bzip2-perl \
+    compress-raw-lzma-perl \
+    compress-raw-zlib-perl \
+    io-compress-perl \
+    io-compress-lzma-perl \
     libalgorithm-diff-perl \
     libauthen-sasl-perl \
     libauthen-radius-perl \
diff --git a/meta-openembedded/meta-perl/recipes-perl/po4a/po4a_0.49.bb b/meta-openembedded/meta-perl/recipes-perl/po4a/po4a_0.49.bb
index e13eac6..d7a97dd 100644
--- a/meta-openembedded/meta-perl/recipes-perl/po4a/po4a_0.49.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/po4a/po4a_0.49.bb
@@ -6,7 +6,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=a96fc9b4cc36d80659e694ea109f0325"
 
-SRC_URI = "git://github.com/mquinson/po4a.git;protocol=https"
+SRC_URI = "git://github.com/mquinson/po4a.git;protocol=https;branch=master"
 
 # v0.49
 SRCREV = "79ed87a577a543538fe39c7b60079981f5997072"
diff --git a/meta-openembedded/meta-python/README b/meta-openembedded/meta-python/README
index 194bac3..8b62ad3 100644
--- a/meta-openembedded/meta-python/README
+++ b/meta-openembedded/meta-python/README
@@ -41,7 +41,7 @@
 Maintenance
 -------------------------
 
-Layer Maintainers:
+Layer maintainers:
         Tim "moto-timo" Orling <TicoTimo@gmail.com>
         Derek Straka <derek@asterius.io>
         Trevor Gamblin <trevor.gamblin@windriver.com>
diff --git a/meta-openembedded/meta-python/classes/pyo3.bbclass b/meta-openembedded/meta-python/classes/pyo3.bbclass
new file mode 100644
index 0000000..6ce2132
--- /dev/null
+++ b/meta-openembedded/meta-python/classes/pyo3.bbclass
@@ -0,0 +1,30 @@
+#
+# This class helps make sure that Python extensions built with PyO3
+# and setuptools_rust properly set up the environment for cross compilation
+#
+
+inherit cargo python3-dir siteinfo
+
+export PYO3_CROSS="1"
+export PYO3_CROSS_PYTHON_VERSION="${PYTHON_BASEVERSION}"
+export PYO3_CROSS_LIB_DIR="${STAGING_LIBDIR}"
+export CARGO_BUILD_TARGET="${HOST_SYS}"
+export RUSTFLAGS
+export PYO3_PYTHON="${PYTHON}"
+export PYO3_CONFIG_FILE="${WORKDIR}/pyo3.config"
+
+pyo3_do_configure () {
+    cat > ${WORKDIR}/pyo3.config << EOF
+implementation=CPython
+version=${PYTHON_BASEVERSION}
+shared=true
+abi3=false
+lib_name=${PYTHON_DIR}
+lib_dir=${STAGING_LIBDIR}
+pointer_width=${SITEINFO_BITS}
+build_flags=WITH_THREAD
+suppress_build_script_link_lines=false
+EOF
+}
+
+EXPORT_FUNCTIONS do_configure
diff --git a/meta-openembedded/meta-python/classes/setuptools3_rust.bbclass b/meta-openembedded/meta-python/classes/setuptools3_rust.bbclass
new file mode 100644
index 0000000..fb11f08
--- /dev/null
+++ b/meta-openembedded/meta-python/classes/setuptools3_rust.bbclass
@@ -0,0 +1,11 @@
+inherit pyo3 setuptools3
+
+DEPENDS += "python3-setuptools-rust-native"
+
+setuptools3_rust_do_configure() {
+    pyo3_do_configure
+    cargo_common_do_configure
+    setuptools3_do_configure
+}
+
+EXPORT_FUNCTIONS do_configure
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.81.bb b/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.81.bb
deleted file mode 100644
index b05ce34..0000000
--- a/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.81.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Python Remote Objects"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=cd13dafd4eeb0802bb6efea6b4a4bdbc"
-
-SRC_URI[sha256sum] = "e130da06478b813173b959f7013d134865e07fbf58cc5f1a2598f99479cdac5f"
-
-PYPI_PACKAGE = "Pyro4"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-logging \
-    ${PYTHON_PN}-serpent \
-    ${PYTHON_PN}-threading \
-    "
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.82.bb b/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.82.bb
new file mode 100644
index 0000000..a7ed75f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.82.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Python Remote Objects"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cd13dafd4eeb0802bb6efea6b4a4bdbc"
+
+SRC_URI[sha256sum] = "511f5b0804e92dd77dc33adf9c947787e3f9e9c5a96b12162f0557a7c4ce21fb"
+
+PYPI_PACKAGE = "Pyro4"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-logging \
+    ${PYTHON_PN}-serpent \
+    ${PYTHON_PN}-threading \
+    "
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb b/meta-openembedded/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb
index e235682..7910fcd 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb
@@ -6,7 +6,7 @@
 
 DEPENDS = "python3-twisted python3-six python3-vcversioner python3-six-native python3-vcversioner-native"
 
-SRC_URI = "git://github.com/MostAwesomeDude/txWS.git"
+SRC_URI = "git://github.com/MostAwesomeDude/txWS.git;branch=master;protocol=https"
 SRCREV= "88cf6d9b9b685ffa1720644bd53c742afb10a414"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
index f0159f8..8b574bd 100644
--- a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
+++ b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -22,6 +22,7 @@
     python3-aiohttp \
     python3-aiohttp-jinja2 \
     python3-aiohue \
+    python3-aiosignal \
     python3-alembic \
     python3-ansi2html \
     python3-ansicolors \
@@ -65,10 +66,12 @@
     python3-cantools \
     python3-cassandra-driver \
     python3-cbor2 \
+    python3-cchardet \
     python3-cerberus \
     python3-certifi \
     python3-cffi \
     python3-chardet \
+    python3-charset-normalizer \
     python3-cheetah \
     python3-click \
     python3-click-repl \
@@ -77,6 +80,7 @@
     python3-colorama \
     python3-coloredlogs \
     python3-colorlog \
+    python3-colorzero \
     python3-configargparse \
     python3-configobj \
     python3-configparser \
@@ -113,6 +117,7 @@
     python3-dynamic-dispatch \
     python3-ecdsa \
     python3-editor \
+    python3-email-validator \
     python3-engineio \
     python3-et-xmlfile \
     python3-evdev \
@@ -144,7 +149,9 @@
     python3-flask-wtf \
     python3-flask-xstatic \
     python3-future \
+    python3-frozenlist \
     python3-gast \
+    python3-gcovr \
     python3-geojson \
     python3-geomet \
     python3-gevent \
@@ -164,7 +171,6 @@
     python3-h2 \
     python3-h5py \
     python3-haversine \
-    python3-hexdump \
     python3-hpack \
     python3-html2text \
     python3-html5lib \
@@ -180,6 +186,7 @@
     python3-idna-ssl \
     python3-ifaddr \
     python3-imageio \
+    python3-imgtool \
     python3-incremental \
     python3-inflection \
     python3-intelhex \
@@ -307,7 +314,6 @@
     python3-pycodestyle \
     python3-pyconnman \
     python3-pycparser \
-    python3-pycrypto \
     python3-pycurl \
     python3-pydbus \
     python3-pydbus-manager \
@@ -325,6 +331,7 @@
     python3-pykwalify \
     python3-pylint \
     python3-pylyrics \
+    python3-pymetno \
     python3-pymisp \
     python3-pymongo \
     python3-pymysql \
@@ -359,6 +366,7 @@
     python3-pytoml \
     python3-pytun \
     python3-pytz \
+    python3-pytz-deprecation-shim \
     python3-pyudev \
     python3-pyusb \
     python3-pywbem \
diff --git a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
index 73329ce..38906de 100644
--- a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=ab828cb8ce4c62ee82945a11247b6bbd"
 SECTION = "devel"
 
-SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https \
+SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https;branch=master \
            file://0001-Fix-for-Python-3.10-compatibility.patch \
            "
 SRCREV = "caa60026e223fc501e8b337fd5086ece4028b1c6"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-gevent/libev-conf.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-gevent/libev-conf.patch
deleted file mode 100644
index 79c1867..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-gevent/libev-conf.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 2294734ef9d5e2efb05820e9759a1635799bdea9 Mon Sep 17 00:00:00 2001
-From: Andrej Rode <andrej.rode@ettus.com>
-Date: Mon, 10 Apr 2017 19:25:18 -0700
-Subject: [PATCH] libev: make configure crosscompile compatible
-
-Signed-off-by: Andrej Rode <andrej.rode@ettus.com>
----
- deps/libev/configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/deps/libev/configure b/deps/libev/configure
-index 743817e..96c2366 100755
---- a/deps/libev/configure
-+++ b/deps/libev/configure
-@@ -2208,7 +2208,7 @@ fi
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_link='$CC -static -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- 
- 
--- 
-2.10.2
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.15.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.15.0.bb
deleted file mode 100644
index f25201d..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.15.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Abseil Python Common Libraries"
-HOMEPAGE = "https://github.com/abseil/abseil-py"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI[sha256sum] = "72d782fbeafba66ba3e525d46bccac949b9a174dbf66233e50ece09ee688dc81"
-
-PYPI_PACKAGE = "absl-py"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_1.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_1.0.0.bb
new file mode 100644
index 0000000..736e6a9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_1.0.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Abseil Python Common Libraries"
+HOMEPAGE = "https://github.com/abseil/abseil-py"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "ac511215c01ee9ae47b19716599e8ccfa746f2e18de72bdf641b79b22afa27ea"
+
+PYPI_PACKAGE = "absl-py"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.0.bb
deleted file mode 100644
index 999fd5a..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Advanced Enumerations library"
-HOMEPAGE = "https://pypi.org/project/aenum/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://aenum/LICENSE;md5=c6a85477543f8b8591b9c1f82abebbe9"
-
-SRC_URI[sha256sum] = "87f0e9ef4f828578ab06af30e4d7944043bf4ecd3f4b7bd1cbe37e2173cde94a"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.6.bb
new file mode 100644
index 0000000..1d9bd32
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.6.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Advanced Enumerations library"
+HOMEPAGE = "https://pypi.org/project/aenum/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://aenum/LICENSE;md5=c6a85477543f8b8591b9c1f82abebbe9"
+
+SRC_URI[sha256sum] = "3ba2c25dd03fbf3992353595be18152e2fb6042f47b526ea66cd5838bb9f1fb6"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+	${PYTHON_PN}-pprint \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.7.0.bb
deleted file mode 100644
index 55e5545..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.7.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "File support for asyncio"
-DESCRIPTION = "Asynchronous local file IO library for asyncio and Python"
-HOMEPAGE = "https://github.com/aio-libs/aiohttp"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
-
-SRC_URI[sha256sum] = "a1c4fc9b2ff81568c83e21392a82f344ea9d23da906e4f6a52662764545e19d4"
-
-PYPI_PACKAGE = "aiofiles"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
-    ${PYTHON_PN}-asyncio \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.8.0.bb
new file mode 100644
index 0000000..f7a75ec
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.8.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "File support for asyncio"
+DESCRIPTION = "Asynchronous local file IO library for asyncio and Python"
+HOMEPAGE = "https://github.com/aio-libs/aiohttp"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
+
+SRC_URI[sha256sum] = "8334f23235248a3b2e83b2c3a78a22674f39969b96397126cc93664d9a901e59"
+
+PYPI_PACKAGE = "aiofiles"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-asyncio \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.7.4.post0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.7.4.post0.bb
deleted file mode 100644
index ea47ad2..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.7.4.post0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Async http client/server framework"
-DESCRIPTION = "Asynchronous HTTP client/server framework for asyncio and Python"
-HOMEPAGE = "https://github.com/aio-libs/aiohttp"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3bf3d48554bdca1ea7fdb48de378c2ca"
-
-SRC_URI[sha256sum] = "493d3299ebe5f5a7c66b9819eacdcfbbaaf1a8e84911ddffcdc48888497afecf"
-
-PYPI_PACKAGE = "aiohttp"
-inherit setuptools3 pypi
-RDEPENDS:${PN} = "\
-    ${PYTHON_PN}-async-timeout \
-    ${PYTHON_PN}-attrs \
-    ${PYTHON_PN}-chardet \
-    ${PYTHON_PN}-html \
-    ${PYTHON_PN}-idna-ssl \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-misc \
-    ${PYTHON_PN}-multidict \
-    ${PYTHON_PN}-netserver \
-    ${PYTHON_PN}-typing-extensions \
-    ${PYTHON_PN}-yarl \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.1.bb
new file mode 100644
index 0000000..1d8434e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Async http client/server framework"
+DESCRIPTION = "Asynchronous HTTP client/server framework for asyncio and Python"
+HOMEPAGE = "https://github.com/aio-libs/aiohttp"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8074d6c6e217873b2a018a4522243ea3"
+
+SRC_URI[sha256sum] = "fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578"
+
+PYPI_PACKAGE = "aiohttp"
+inherit setuptools3 pypi
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-async-timeout \
+    ${PYTHON_PN}-attrs \
+    ${PYTHON_PN}-chardet \
+    ${PYTHON_PN}-html \
+    ${PYTHON_PN}-idna-ssl \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-misc \
+    ${PYTHON_PN}-multidict \
+    ${PYTHON_PN}-netserver \
+    ${PYTHON_PN}-typing-extensions \
+    ${PYTHON_PN}-yarl \
+    ${PYTHON_PN}-cchardet \
+    ${PYTHON_PN}-charset-normalizer \
+    ${PYTHON_PN}-aiosignal \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.6.3.bb
deleted file mode 100644
index e9cbde8..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.6.3.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "Asynchronous library to control Philips Hue"
-HOMEPAGE = "https://pypi.org/project/aiohue/"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dab31a1d28183826937f4b152143a33f"
-
-SRC_URI[sha256sum] = "ce9c240ca3eb1394c56503b403589f4d0ee7f93445a578b78da8b7879a65c863"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "${PYTHON_PN}-aiohttp"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_3.0.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_3.0.11.bb
new file mode 100644
index 0000000..47d9964
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_3.0.11.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Asynchronous library to control Philips Hue"
+HOMEPAGE = "https://pypi.org/project/aiohue/"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dab31a1d28183826937f4b152143a33f"
+
+SRC_URI[sha256sum] = "31c0b90d7dc2b62f5e1a93e78b2c0d6360ef6c0a87485c217a4f394c937fce7d"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+	${PYTHON_PN}-aiohttp \
+	${PYTHON_PN}-asyncio-throttle \
+	${PYTHON_PN}-profile \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiosignal_1.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiosignal_1.2.0.bb
new file mode 100644
index 0000000..efd94f7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiosignal_1.2.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A list of registered asynchronous callbacks"
+HOMEPAGE = "https://github.com/aio-libs/aiosignal"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cf056e8e7a0a5477451af18b7b5aa98c"
+
+SRC_URI[sha256sum] = "78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} = "\
+	${PYTHON_PN}-frozenlist \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.4.bb
deleted file mode 100644
index 17e9e53..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "A database migration tool for SQLAlchemy"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c4ece55266dcdd02ce165b1ee0e490bb"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "9d33f3ff1488c4bfab1e1a6dfebbf085e8a8e1a3e047a43ad29ad1f67f012a1d"
-
-PYPI_PACKAGE = "alembic"
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-dateutil \
-    ${PYTHON_PN}-editor \
-    ${PYTHON_PN}-mako \
-    ${PYTHON_PN}-sqlalchemy \
-    ${PYTHON_PN}-misc \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.5.bb
new file mode 100644
index 0000000..131d5d4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.5.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "A database migration tool for SQLAlchemy"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c4ece55266dcdd02ce165b1ee0e490bb"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "7c328694a2e68f03ee971e63c3bd885846470373a5b532cf2c9f1601c413b153"
+
+PYPI_PACKAGE = "alembic"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-dateutil \
+    ${PYTHON_PN}-editor \
+    ${PYTHON_PN}-mako \
+    ${PYTHON_PN}-sqlalchemy \
+    ${PYTHON_PN}-misc \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_1.12.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_1.12.3.bb
deleted file mode 100644
index aff0c97..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_1.12.3.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Argcomplete provides easy, extensible command line tab completion of arguments for your Python script."
-HOMEPAGE = "https://github.com/kislyuk/argcomplete"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2ee41112a44fe7014dce33e26468ba93"
-
-SRC_URI[sha256sum] = "2c7dbffd8c045ea534921e63b0be6fe65e88599990d8dc408ac8c542b72a5445"
-
-PYPI_PACKAGE = "argcomplete"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-core \
-    ${PYTHON_PN}-io \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_2.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_2.0.0.bb
new file mode 100644
index 0000000..4eab34f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_2.0.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Argcomplete provides easy, extensible command line tab completion of arguments for your Python script."
+HOMEPAGE = "https://github.com/kislyuk/argcomplete"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2ee41112a44fe7014dce33e26468ba93"
+
+SRC_URI[sha256sum] = "6372ad78c89d662035101418ae253668445b391755cfe94ea52f1b9d22425b20"
+
+PYPI_PACKAGE = "argcomplete"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-core \
+    ${PYTHON_PN}-io \
+"
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
index 5048e5b..bc3315f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=561205fdabc3ec52cae2d30815b8ade7"
 
-SRC_URI = "git://github.com/berkerpeksag/astor.git \
+SRC_URI = "git://github.com/berkerpeksag/astor.git;branch=master;protocol=https \
            file://0001-rtrip.py-convert-to-python3.patch \
 "
 SRCREV ?= "c7553c79f9222e20783fe9bd8a553f932e918072"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.8.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.8.2.bb
deleted file mode 100644
index f465ba9..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.8.2.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "An abstract syntax tree for Python with inference support."
-HOMEPAGE = "https://pypi.python.org/pypi/astroid"
-SECTION = "devel/python"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
-
-SRC_URI[sha256sum] = "304e99c129794f2cfda584a12b71fde85205da950e2f330f4be09150525ae949"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-pytest-runner-native"
-
-PACKAGES =+ "${PN}-tests"
-
-FILES:${PN}-tests += " \
-    ${PYTHON_SITEPACKAGES_DIR}/astroid/test* \
-    ${PYTHON_SITEPACKAGES_DIR}/astroid/__pycache__/test* \
-"
-
-RDEPENDS:${PN}:class-target += "\
-    ${PYTHON_PN}-distutils \
-    ${PYTHON_PN}-lazy-object-proxy \
-    ${PYTHON_PN}-logging \
-    ${PYTHON_PN}-six \
-    ${PYTHON_PN}-wrapt \
-    ${PYTHON_PN}-setuptools \
-"
-
-RDEPENDS:${PN}-tests:class-target += "\
-    ${PYTHON_PN}-unittest \
-    ${PYTHON_PN}-xml \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.9.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.9.3.bb
new file mode 100644
index 0000000..7bc93bf
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.9.3.bb
@@ -0,0 +1,32 @@
+SUMMARY = "An abstract syntax tree for Python with inference support."
+HOMEPAGE = "https://pypi.python.org/pypi/astroid"
+SECTION = "devel/python"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
+
+SRC_URI[sha256sum] = "1efdf4e867d4d8ba4a9f6cf9ce07cd182c4c41de77f23814feb27ca93ca9d877"
+
+inherit pypi setuptools3
+
+DEPENDS += "${PYTHON_PN}-pytest-runner-native"
+
+PACKAGES =+ "${PN}-tests"
+
+FILES:${PN}-tests += " \
+    ${PYTHON_SITEPACKAGES_DIR}/astroid/test* \
+    ${PYTHON_SITEPACKAGES_DIR}/astroid/__pycache__/test* \
+"
+
+RDEPENDS:${PN}:class-target += "\
+    ${PYTHON_PN}-distutils \
+    ${PYTHON_PN}-lazy-object-proxy \
+    ${PYTHON_PN}-logging \
+    ${PYTHON_PN}-six \
+    ${PYTHON_PN}-wrapt \
+    ${PYTHON_PN}-setuptools \
+"
+
+RDEPENDS:${PN}-tests:class-target += "\
+    ${PYTHON_PN}-unittest \
+    ${PYTHON_PN}-xml \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_3.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_3.0.1.bb
deleted file mode 100644
index b8ec023..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_3.0.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "asyncio-compatible timeout context manager"
-DESCRIPTION = "\
-The context manager is useful in cases when you want to apply \
-timeout logic around block of code or in cases when asyncio.wait_for() \
-is not suitable. Also it's much faster than asyncio.wait_for() because \
-timeout doesn't create a new task."
-HOMEPAGE = "https://github.com/aio-libs/async-timeout"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
-
-SRC_URI[md5sum] = "305c4fa529f2485c403d0dbe14390175"
-SRC_URI[sha256sum] = "0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f"
-
-PYPI_PACKAGE = "async-timeout"
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
-    ${PYTHON_PN}-asyncio \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.0.bb
new file mode 100644
index 0000000..ca61490
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "asyncio-compatible timeout context manager"
+DESCRIPTION = "\
+The context manager is useful in cases when you want to apply \
+timeout logic around block of code or in cases when asyncio.wait_for() \
+is not suitable. Also it's much faster than asyncio.wait_for() because \
+timeout doesn't create a new task."
+HOMEPAGE = "https://github.com/aio-libs/async-timeout"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4fa41f15bb5f23b6d3560c5845eb8d57"
+
+SRC_URI[sha256sum] = "7d87a4e8adba8ededb52e579ce6bc8276985888913620c935094c2276fd83382"
+
+PYPI_PACKAGE = "async-timeout"
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-asyncio \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.2.bb
new file mode 100644
index 0000000..7355f00
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.2.bb
@@ -0,0 +1,18 @@
+SUMMARY = "asyncio-compatible timeout context manager"
+DESCRIPTION = "\
+The context manager is useful in cases when you want to apply \
+timeout logic around block of code or in cases when asyncio.wait_for() \
+is not suitable. Also it's much faster than asyncio.wait_for() because \
+timeout doesn't create a new task."
+HOMEPAGE = "https://github.com/aio-libs/async-timeout"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4fa41f15bb5f23b6d3560c5845eb8d57"
+
+SRC_URI[sha256sum] = "2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"
+
+PYPI_PACKAGE = "async-timeout"
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-asyncio \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncio-throttle_1.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncio-throttle_1.0.2.bb
new file mode 100644
index 0000000..1f90751
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncio-throttle_1.0.2.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "Simple, easy-to-use throttler for asyncio."
+HOMEPAGE = "https://github.com/hallazzang/asyncio-throttle"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c7906e56b70808e1ade6ca05e0bb48d5"
+
+SRC_URI[sha256sum] = "2675282e99d9129ecc446f917e174bc205c65e36c602aa18603b4948567fcbd4"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_21.11.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_21.11.1.bb
new file mode 100644
index 0000000..857862d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_21.11.1.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "WebSocket client & server library, WAMP real-time framework"
+HOMEPAGE = "http://crossbar.io/autobahn"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=97c0bda20ad1d845c6369c0e47a1cd98"
+
+SRC_URI[sha256sum] = "bd6f46315419ca0a5be4109f737410208ad5f19718f67ca6a4a674cc66ca9b18"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-twisted \
+    ${PYTHON_PN}-zopeinterface \
+    ${PYTHON_PN}-py-ubjson \
+    ${PYTHON_PN}-cbor2 \
+    ${PYTHON_PN}-u-msgpack-python \
+    ${PYTHON_PN}-lz4 \
+    ${PYTHON_PN}-snappy \
+    ${PYTHON_PN}-pyopenssl \
+    ${PYTHON_PN}-txaio \
+    ${PYTHON_PN}-six \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_21.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_21.3.1.bb
deleted file mode 100644
index d11c70e..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_21.3.1.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "WebSocket client & server library, WAMP real-time framework"
-HOMEPAGE = "http://crossbar.io/autobahn"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=97c0bda20ad1d845c6369c0e47a1cd98"
-
-SRC_URI[sha256sum] = "e126c1f583e872fb59e79d36977cfa1f2d0a8a79f90ae31f406faae7664b8e03"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-twisted \
-    ${PYTHON_PN}-zopeinterface \
-    ${PYTHON_PN}-py-ubjson \
-    ${PYTHON_PN}-cbor2 \
-    ${PYTHON_PN}-u-msgpack-python \
-    ${PYTHON_PN}-lz4 \
-    ${PYTHON_PN}-snappy \
-    ${PYTHON_PN}-pyopenssl \
-    ${PYTHON_PN}-txaio \
-    ${PYTHON_PN}-six \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.0.bb
deleted file mode 100644
index 18989c6..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Security oriented static analyser for python code."
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
-
-SRC_URI[md5sum] = "24965f102dc62129d3fafe4fe596a3b8"
-SRC_URI[sha256sum] = "8a4c7415254d75df8ff3c3b15cfe9042ecee628a1e40b44c15a98890fbfc2608"
-
-DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
-
-inherit setuptools3 pypi
-
-RDEPENDS:${PN} += "python3-modules python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.1.bb
new file mode 100644
index 0000000..ad6df1b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.1.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Security oriented static analyser for python code."
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
+
+SRC_URI[sha256sum] = "a81b00b5436e6880fa8ad6799bc830e02032047713cbb143a12939ac67eb756c"
+
+DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
+
+inherit setuptools3 pypi
+
+RDEPENDS:${PN} += "python3-modules python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb
index 89bf29f..1dcc7d2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb
@@ -5,7 +5,7 @@
 
 PV .= "+git${SRCREV}"
 SRCREV = "9520119376046aeff73804b5f1ea05d87a63f370"
-SRC_URI += "git://github.com/behave/behave;branch=master"
+SRC_URI += "git://github.com/behave/behave;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bidict_0.21.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bidict_0.21.2.bb
deleted file mode 100644
index 237bd2a..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bidict_0.21.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "The bidirectional mapping library for Python."
-DESCRIPTION = "The bidirectional mapping library for Python."
-HOMEPAGE = "https://bidict.readthedocs.io/"
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9741c346eef56131163e13b9db1241b3"
-
-SRC_URI[sha256sum] = "4fa46f7ff96dc244abfc437383d987404ae861df797e2fd5b190e233c302be09"
-
-inherit pypi setuptools3
-
-DEPENDS += "python3-setuptools-scm-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bidict_0.21.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bidict_0.21.4.bb
new file mode 100644
index 0000000..266dc60
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bidict_0.21.4.bb
@@ -0,0 +1,11 @@
+SUMMARY = "The bidirectional mapping library for Python."
+DESCRIPTION = "The bidirectional mapping library for Python."
+HOMEPAGE = "https://bidict.readthedocs.io/"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9741c346eef56131163e13b9db1241b3"
+
+SRC_URI[sha256sum] = "42c84ffbe6f8de898af6073b4be9ea7ccedcd78d3474aa844c54e49d5a079f6f"
+
+inherit pypi setuptools3
+
+DEPENDS += "python3-setuptools-scm-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.3.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.3.4.bb
deleted file mode 100644
index 5a674f0..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.3.4.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "A high-level Python efficient arrays of booleans -- C extension"
-HOMEPAGE = "https://github.com/ilanschnell/bitarray"
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d"
-
-SRC_URI[sha256sum] = "f19c62425576d3d1821ed711b94d1a4e5ede8f05ca121e99b6d978ed49c7a765"
-
-inherit setuptools3 pypi
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.3.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.3.5.bb
new file mode 100644
index 0000000..37fcfa1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.3.5.bb
@@ -0,0 +1,10 @@
+SUMMARY = "A high-level Python efficient arrays of booleans -- C extension"
+HOMEPAGE = "https://github.com/ilanschnell/bitarray"
+LICENSE = "PSF"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d"
+
+SRC_URI[sha256sum] = "60285184cb02fdba5e1cc8605ac84e150a50f940e9383ab43564e5258d1f47bb"
+
+inherit setuptools3 pypi
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.11.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.11.1.bb
deleted file mode 100644
index 49b3197..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.11.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "This module performs conversions between Python values and C bit field structs represented as Python byte strings."
-HOMEPAGE = "https://github.com/eerimoq/bitstruct"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
-
-SRC_URI[sha256sum] = "4e7b8769c0f09fee403d0a5f637f8b575b191a79a92e140811aa109ce7461f0c"
-
-PYPI_PACKAGE = "bitstruct"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.12.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.12.1.bb
new file mode 100644
index 0000000..f53f84f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.12.1.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "This module performs conversions between Python values and C bit field structs represented as Python byte strings."
+HOMEPAGE = "https://github.com/eerimoq/bitstruct"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
+
+SRC_URI[sha256sum] = "45b2b932ce6681f5c6ce8cba39abdd423b579b0568c76fa48b1e09c88368ede7"
+
+PYPI_PACKAGE = "bitstruct"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.10.bb
new file mode 100644
index 0000000..58c157b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.10.bb
@@ -0,0 +1,29 @@
+SUMMARY = "httplib2 caching for requests"
+HOMEPAGE = "https://pypi.org/project/CacheControl/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=12;endline=12;md5=62d6ee40749ec0b76d8a1200a1562369"
+
+# On PyPi, this is "CacheControl", rather than "cachecontrol", so we need to
+# override PYPI_PACKAGE so fetch succeeds.
+PYPI_PACKAGE = "CacheControl"
+
+SRC_URI[sha256sum] = "d8aca75b82eec92d84b5d6eb8c8f66ea16f09d2adb09dbca27fe2d5fc8d3732d"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    python3-crypt \
+    python3-datetime \
+    python3-email \
+    python3-lockfile \
+    python3-json \
+    python3-logging \
+    python3-msgpack \
+    python3-netclient \
+    python3-pickle \
+    python3-requests \
+    python3-urllib3 \
+    python3-mmap \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.6.bb
deleted file mode 100644
index e07fa98..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.6.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "httplib2 caching for requests"
-HOMEPAGE = "https://pypi.org/project/CacheControl/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=6dc7e1b428eda03d850209fdbd6c71f1"
-
-# On PyPi, this is "CacheControl", rather than "cachecontrol", so we need to
-# override PYPI_PACKAGE so fetch succeeds.
-PYPI_PACKAGE = "CacheControl"
-
-SRC_URI[md5sum] = "5890b797f9b48b2b4cd1448cca89e396"
-SRC_URI[sha256sum] = "be9aa45477a134aee56c8fac518627e1154df063e85f67d4f83ce0ccc23688e8"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    python3-crypt \
-    python3-datetime \
-    python3-email \
-    python3-lockfile \
-    python3-json \
-    python3-logging \
-    python3-msgpack \
-    python3-netclient \
-    python3-pickle \
-    python3-requests \
-    python3-urllib3 \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_36.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_36.4.0.bb
deleted file mode 100644
index ec7d4b8..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_36.4.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "CAN BUS tools in Python 3."
-HOMEPAGE = "https://github.com/eerimoq/cantools"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
-
-SRC_URI[sha256sum] = "8de959fe61bd1d5c30e91aded237f4273c13fafe5fee4d1d78a15a84c8fd9691"
-
-PYPI_PACKAGE = "cantools"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_37.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_37.0.1.bb
new file mode 100644
index 0000000..9642bc5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_37.0.1.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "CAN BUS tools in Python 3."
+HOMEPAGE = "https://github.com/eerimoq/cantools"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
+
+SRC_URI[sha256sum] = "5852ad9fd17ddd7b1a1ce87b21b000e7f5716b358cdac4fdaca13b3e292f4c99"
+
+PYPI_PACKAGE = "cantools"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+	${PYTHON_PN}-can \
+	${PYTHON_PN}-bitstruct \
+	${PYTHON_PN}-core \
+	${PYTHON_PN}-textparser \
+"
+
+CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb
new file mode 100644
index 0000000..8fa9797
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Universal character encoding detector"
+HOMEPAGE = "https://github.com/PyYoshi/cChardet"
+LICENSE = "MPLv1.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ecda54f6f525388d71d6b3cd92f7474"
+
+SRC_URI[sha256sum] = "c428b6336545053c2589f6caf24ea32276c6664cb86db817e03a94c60afa0eaf"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_2.0.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_2.0.10.bb
new file mode 100644
index 0000000..3c1e680
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_2.0.10.bb
@@ -0,0 +1,15 @@
+SUMMARY = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
+HOMEPAGE = "https://github.com/ousret/charset_normalizer"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0974a390827087287db39928f7c524b5"
+
+SRC_URI[sha256sum] = "876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+	${PYTHON_PN}-core \
+	${PYTHON_PN}-logging \
+	${PYTHON_PN}-codecs \
+	${PYTHON_PN}-json \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.2.0.bb
deleted file mode 100644
index 2632ce1..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.2.0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Extra features for standard library's cmd module"
-HOMEPAGE = "https://github.com/python-cmd2/cmd2"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4c527bcb481233ebcb803de975f42701"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-SRC_URI[sha256sum] = "34cd12424d9e2835eff125146af3d9f4a4c2931c6bc5a3cea9790bd4f55756d9"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-attrs \
-    ${PYTHON_PN}-colorama \
-    ${PYTHON_PN}-pyperclip \
-    ${PYTHON_PN}-wcwidth \
-    ${PYTHON_PN}-compression \
-    ${PYTHON_PN}-pydoc \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-numbers \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.3.3.bb
new file mode 100644
index 0000000..d8a4fb5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.3.3.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Extra features for standard library's cmd module"
+HOMEPAGE = "https://github.com/python-cmd2/cmd2"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4c527bcb481233ebcb803de975f42701"
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
+SRC_URI[sha256sum] = "750d7eb04d55c3bc2a413e191bc177856f388102de47d11f2210a35266543640"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-attrs \
+    ${PYTHON_PN}-colorama \
+    ${PYTHON_PN}-pyperclip \
+    ${PYTHON_PN}-wcwidth \
+    ${PYTHON_PN}-compression \
+    ${PYTHON_PN}-pydoc \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-numbers \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb
index 8777036..9eafbaa 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb
@@ -20,4 +20,4 @@
     ${PYTHON_PN}-humanfriendly \
 "
 
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-colorlog_6.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-colorlog_6.5.0.bb
deleted file mode 100644
index bd90083..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-colorlog_6.5.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-DESCRIPTION = "A colored formatter for the python logging module"
-HOMEPAGE = "https://github.com/borntyping/python-colorlog"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5c3c6ebdec7792ae12df8d1c0a46b26a"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "colorlog"
-
-SRC_URI[sha256sum] = "cf62a8e389d5660d0d22be17937b25b9abef9497ddc940197d1773aa1f604339"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-colorlog_6.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-colorlog_6.6.0.bb
new file mode 100644
index 0000000..2f8a0e5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-colorlog_6.6.0.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "A colored formatter for the python logging module"
+HOMEPAGE = "https://github.com/borntyping/python-colorlog"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5c3c6ebdec7792ae12df8d1c0a46b26a"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "colorlog"
+
+SRC_URI[sha256sum] = "344f73204009e4c83c5b6beb00b3c45dc70fcdae3c80db919e0a4171d006fde8"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-colorzero_2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-colorzero_2.0.bb
new file mode 100644
index 0000000..1a331d1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-colorzero_2.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "colorzero is a color manipulation library for Python"
+DESCRIPTION = "colorzero is a color manipulation library for Python \
+(yes, another one) which aims to be reasonably simple to use and \
+"pythonic" in nature."
+HOMEPAGE = " https://github.com/waveform80/colorzero "
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ae6c62710c0646f3c60d1ad812ea9bf9"
+
+RDEPENDS:${PN} = "python3-image"
+
+SRC_URI[sha256sum] = "e7d5a5c26cd0dc37b164ebefc609f388de24f8593b659191e12d85f8f9d5eb58"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "colorzero"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_5.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_5.0.2.bb
deleted file mode 100644
index 87cdd09..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_5.0.2.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "This module provides the ConfigParser class which implements a basic configuration language which provides a structure similar to what's found in Microsoft Windows INI files."
-SECTION = "devel/python"
-HOMEPAGE = "https://docs.python.org/3/library/configparser.html"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=10;endline=10;md5=23f9ad5cad3d8cc0336e2a5d8a87e1fa"
-
-SRC_URI[sha256sum] = "85d5de102cfe6d14a5172676f09d19c465ce63d6019cf0a4ef13385fc535e828"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-toml-native"
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_5.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_5.2.0.bb
new file mode 100644
index 0000000..e629331
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_5.2.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "This module provides the ConfigParser class which implements a basic configuration language which provides a structure similar to what's found in Microsoft Windows INI files."
+SECTION = "devel/python"
+HOMEPAGE = "https://docs.python.org/3/library/configparser.html"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=10;endline=10;md5=23f9ad5cad3d8cc0336e2a5d8a87e1fa"
+
+SRC_URI[sha256sum] = "1b35798fdf1713f1c3139016cfcbc461f09edbf099d1fb658d4b7479fcaa3daa"
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-toml-native"
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.post1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.post1.bb
deleted file mode 100644
index 2eac0ad..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.post1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "Backports and enhancements for the contextlib module"
-HOMEPAGE = "http://contextlib2.readthedocs.org/"
-SECTION = "devel/python"
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=43d1c7827e8fad6454b553caf0e1d734"
-
-SRC_URI[sha256sum] = "01f490098c18b19d2bd5bb5dc445b2054d2fa97f09a4280ba2c5f3c394c8162e"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_21.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_21.6.0.bb
new file mode 100644
index 0000000..f9900b1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_21.6.0.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "Backports and enhancements for the contextlib module"
+HOMEPAGE = "http://contextlib2.readthedocs.org/"
+SECTION = "devel/python"
+LICENSE = "PSF & Apache-2"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d2b6be100f1002194122ec9bfee7b8b4"
+
+SRC_URI[sha256sum] = "ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_6.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_6.0.2.bb
deleted file mode 100644
index 67b3a5e..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_6.0.2.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Code coverage measurement for Python"
-HOMEPAGE = "https://coverage.readthedocs.io"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93"
-
-SRC_URI[sha256sum] = "6807947a09510dc31fa86f43595bf3a14017cd60bf633cc746d52141bfa6b149"
-
-inherit pypi setuptools3
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_6.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_6.2.bb
new file mode 100644
index 0000000..6e080b0
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_6.2.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Code coverage measurement for Python"
+HOMEPAGE = "https://coverage.readthedocs.io"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93"
+
+SRC_URI[sha256sum] = "e2cad8093172b7d1595b4ad66f24270808658e11acf43a8f95b41276162eb5b8"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+	${PYTHON_PN}-sqlite3 \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.0.15.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.0.15.bb
deleted file mode 100644
index e4058ca..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.0.15.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "croniter provides iteration for datetime object with cron like format"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=b8ee59850b882cbf623188489ea748e2"
-
-PYPI_PACKAGE = "croniter"
-
-SRC_URI[sha256sum] = "a70dfc9d52de9fc1a886128b9148c89dd9e76b67d55f46516ca94d2d73d58219"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " python3-dateutil python3-natsort"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.2.0.bb
new file mode 100644
index 0000000..13dbf15
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.2.0.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "croniter provides iteration for datetime object with cron like format"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=b8ee59850b882cbf623188489ea748e2"
+
+PYPI_PACKAGE = "croniter"
+
+SRC_URI[sha256sum] = "094422f6aeb9ed646714393503fa388afe4f846e110e1997fea5794e2085c2d7"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " python3-dateutil python3-natsort"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_35.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_35.0.0.bb
deleted file mode 100644
index 474eb82..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_35.0.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Test vectors for the cryptography package."
-HOMEPAGE = "https://cryptography.io/"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0 | BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4"
-
-SRC_URI[sha256sum] = "978ad96822c0e007a0a3d8187eb0eafbd9eb1d67b50cfac70277175e74957bfc"
-
-PYPI_PACKAGE = "cryptography_vectors"
-
-inherit pypi setuptools3
-
-DEPENDS += " \
-    ${PYTHON_PN}-cryptography \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
-UPSTREAM_CHECK_REGEX = ""
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_36.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_36.0.1.bb
new file mode 100644
index 0000000..b9e6b81
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_36.0.1.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Test vectors for the cryptography package."
+HOMEPAGE = "https://cryptography.io/"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4 \
+                    file://LICENSE.APACHE;md5=4e168cce331e5c827d4c2b68a6200e1b \
+                    file://LICENSE.BSD;md5=5ae30ba4123bc4f2fa49aa0b0dce887b"
+
+# NOTE: Make sure to keep this recipe at the same version as python3-cryptography
+#       Upgrade both recipes at the same time
+
+SRC_URI[sha256sum] = "fc8490afd5424342b868215435bd174dcd76ab396b4ea9435498be5721dcd598"
+
+PYPI_PACKAGE = "cryptography_vectors"
+
+inherit pypi setuptools3
+
+DEPENDS += " \
+    ${PYTHON_PN}-cryptography \
+"
+
+BBCLASSEXTEND = "native nativesdk"
+
+UPSTREAM_CHECK_REGEX = ""
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0001-Cargo.toml-specify-pem-version.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0001-Cargo.toml-specify-pem-version.patch
new file mode 100644
index 0000000..d7ab757
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0001-Cargo.toml-specify-pem-version.patch
@@ -0,0 +1,31 @@
+From ec8d3f3c61280c8140b34ed1479baef5e706f064 Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Fri, 14 Jan 2022 22:02:25 -0800
+Subject: [PATCH] Cargo.toml: specify pem version
+
+pem = "1.0" is not resolving, specify the current
+pem = { version: "1.0.2"}
+
+Upstream-Status: Pending
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ src/rust/Cargo.toml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/rust/Cargo.toml b/src/rust/Cargo.toml
+index 617167d0..174eaa80 100644
+--- a/src/rust/Cargo.toml
++++ b/src/rust/Cargo.toml
+@@ -9,7 +9,7 @@ publish = false
+ lazy_static = "1"
+ pyo3 = { version = "0.15.1" }
+ asn1 = { version = "0.8.7", default-features = false, features = ["derive"] }
+-pem = "1.0"
++pem = { version = "1.0.2" }
+ chrono = { version = "0.4", default-features = false, features = ["alloc", "clock"] }
+ ouroboros = "0.13"
+ 
+-- 
+2.30.2
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0002-Cargo.toml-edition-2018-2021.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0002-Cargo.toml-edition-2018-2021.patch
new file mode 100644
index 0000000..366e3a4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0002-Cargo.toml-edition-2018-2021.patch
@@ -0,0 +1,28 @@
+From 4b73298b214a5b69ea6edf3c2e21dd82b2b29708 Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Fri, 14 Jan 2022 22:34:59 -0800
+Subject: [PATCH 2/2] Cargo.toml: edition 2018 -> 2021
+
+Upstream-Status: Pending
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ src/rust/Cargo.toml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/rust/Cargo.toml b/src/rust/Cargo.toml
+index 174eaa80..7ad053d9 100644
+--- a/src/rust/Cargo.toml
++++ b/src/rust/Cargo.toml
+@@ -2,7 +2,7 @@
+ name = "cryptography-rust"
+ version = "0.1.0"
+ authors = ["The cryptography developers <cryptography-dev@python.org>"]
+-edition = "2018"
++edition = "2021"
+ publish = false
+ 
+ [dependencies]
+-- 
+2.30.2
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/check-memfree.py b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/check-memfree.py
new file mode 100755
index 0000000..c111a90
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/check-memfree.py
@@ -0,0 +1,10 @@
+#!/usr/bin/env python3
+# https://stackoverflow.com/questions/22102999/get-total-physical-memory-in-python/28161352
+import sys
+meminfo = dict((i.split()[0].rstrip(':'),int(i.split()[1])) for i in open('/proc/meminfo').readlines())
+mem_free = meminfo['MemTotal']/1024./1024.
+if mem_free < 2.:
+    raise RuntimeError("Insufficient free memory({:.3f}): requires > 2 GB".format(mem_free))
+    sys.exit(1)
+else:
+    print("Free memory: {:.3f} GB".format(mem_free))
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/h-test.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/h-test.patch
deleted file mode 100644
index 9f07c73..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/h-test.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/tests/hypothesis/__init__.py
-+++ b/tests/hypothesis/__init__.py
-@@ -3,3 +3,7 @@
- # for complete details.
- 
- from __future__ import absolute_import, division, print_function
-+
-+import pytest
-+hypothesis = pytest.importorskip("hypothesis")
-+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/run-ptest
index 0ba239c..1e97dda 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/run-ptest
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/run-ptest
@@ -1,2 +1,4 @@
 #!/bin/sh
-py.test
+if ./check-memfree.py; then
+    pytest -vvvv tests/
+fi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_3.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_3.3.2.bb
deleted file mode 100644
index baec105..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_3.3.2.bb
+++ /dev/null
@@ -1,65 +0,0 @@
-SUMMARY = "Provides cryptographic recipes and primitives to python developers"
-HOMEPAGE = "https://cryptography.io/"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0 | BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bf405a8056a6647e7d077b0e7bc36aba"
-
-LDSHARED += "-pthread"
-
-SRC_URI[sha256sum] = "5a60d3780149e13b7a6ff7ad6526b38846354d11a15e21068e57073e29e19bed"
-
-SRC_URI += " \
-    file://run-ptest \
-    file://h-test.patch \
-"
-
-inherit pypi setuptools3
-
-DEPENDS += " \
-    ${PYTHON_PN}-cffi \
-    ${PYTHON_PN}-cffi-native \
-    ${PYTHON_PN}-asn1crypto \
-    ${PYTHON_PN}-six \
-"
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-cffi \
-    ${PYTHON_PN}-idna \
-    ${PYTHON_PN}-asn1crypto \
-    ${PYTHON_PN}-setuptools \
-    ${PYTHON_PN}-six \
-"
-
-RDEPENDS:${PN}:class-target += " \
-    ${PYTHON_PN}-cffi \
-    ${PYTHON_PN}-idna \
-    ${PYTHON_PN}-numbers \
-    ${PYTHON_PN}-asn1crypto \
-    ${PYTHON_PN}-setuptools \
-    ${PYTHON_PN}-six \
-    ${PYTHON_PN}-threading \
-"
-
-RDEPENDS:${PN}-ptest += " \
-    ${PN} \
-    ${PYTHON_PN}-cryptography-vectors \
-    ${PYTHON_PN}-iso8601 \
-    ${PYTHON_PN}-pretend \
-    ${PYTHON_PN}-pytest \
-    ${PYTHON_PN}-pytz \
-"
-
-inherit ptest
-
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
-    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-    install -d ${D}${PTEST_PATH}/tests/hazmat
-    cp -rf ${S}/tests/hazmat/* ${D}${PTEST_PATH}/tests/hazmat/
-}
-
-FILES:${PN}-dbg += " \
-    ${libdir}/${PYTHON_PN}2.7/site-packages/${SRCNAME}/hazmat/bindings/.debug \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_36.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_36.0.1.bb
new file mode 100644
index 0000000..abb1538
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_36.0.1.bb
@@ -0,0 +1,121 @@
+SUMMARY = "Provides cryptographic recipes and primitives to python developers"
+HOMEPAGE = "https://cryptography.io/"
+SECTION = "devel/python"
+LICENSE = "( Apache-2.0 | BSD-3-Clause ) & PSF-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bf405a8056a6647e7d077b0e7bc36aba \
+                    file://LICENSE.APACHE;md5=4e168cce331e5c827d4c2b68a6200e1b \
+                    file://LICENSE.BSD;md5=5ae30ba4123bc4f2fa49aa0b0dce887b \
+                    file://LICENSE.PSF;md5=43c37d21e1dbad10cddcd150ba2c0595 \
+                   "
+LDSHARED += "-pthread"
+
+SRC_URI[sha256sum] = "53e5c1dc3d7a953de055d77bef2ff607ceef7a2aac0353b5d630ab67f7423638"
+
+SRC_URI += " \
+    file://run-ptest \
+    file://check-memfree.py \
+    file://0001-Cargo.toml-specify-pem-version.patch \
+    file://0002-Cargo.toml-edition-2018-2021.patch \
+"
+
+inherit pypi setuptools3_rust
+
+DEPENDS += " \
+    ${PYTHON_PN}-asn1crypto-native \
+    ${PYTHON_PN}-cffi-native \
+    ${PYTHON_PN}-setuptools-rust-native \
+    ${PYTHON_PN}-six-native \
+"
+
+SRC_URI += " \
+    crate://crates.io/Inflector/0.11.4 \
+    crate://crates.io/aliasable/0.1.3 \
+    crate://crates.io/asn1/0.8.7 \
+    crate://crates.io/asn1_derive/0.8.7 \
+    crate://crates.io/autocfg/1.0.1 \
+    crate://crates.io/base64/0.13.0 \
+    crate://crates.io/bitflags/1.3.2 \
+    crate://crates.io/cfg-if/1.0.0 \
+    crate://crates.io/chrono/0.4.19 \
+    crate://crates.io/indoc-impl/0.3.6 \
+    crate://crates.io/indoc/0.3.6 \
+    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/lock_api/0.4.5 \
+    crate://crates.io/num-integer/0.1.44 \
+    crate://crates.io/num-traits/0.2.14 \
+    crate://crates.io/once_cell/1.9.0 \
+    crate://crates.io/ouroboros/0.13.0 \
+    crate://crates.io/ouroboros_macro/0.13.0 \
+    crate://crates.io/parking_lot/0.11.2 \
+    crate://crates.io/parking_lot_core/0.8.5 \
+    crate://crates.io/paste-impl/0.1.18 \
+    crate://crates.io/paste/0.1.18 \
+    crate://crates.io/pem/1.0.2 \
+    crate://crates.io/proc-macro-error-attr/1.0.4 \
+    crate://crates.io/proc-macro-error/1.0.4 \
+    crate://crates.io/proc-macro-hack/0.5.19 \
+    crate://crates.io/proc-macro2/1.0.36 \
+    crate://crates.io/pyo3-build-config/0.15.1 \
+    crate://crates.io/pyo3-macros-backend/0.15.1 \
+    crate://crates.io/pyo3-macros/0.15.1 \
+    crate://crates.io/pyo3/0.15.1 \
+    crate://crates.io/quote/1.0.14 \
+    crate://crates.io/redox_syscall/0.2.10 \
+    crate://crates.io/scopeguard/1.1.0 \
+    crate://crates.io/smallvec/1.7.0 \
+    crate://crates.io/stable_deref_trait/1.2.0 \
+    crate://crates.io/syn/1.0.85 \
+    crate://crates.io/unicode-xid/0.2.2 \
+    crate://crates.io/unindent/0.1.7 \
+    crate://crates.io/version_check/0.9.4 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+    crate://crates.io/winapi/0.3.9 \
+"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-asn1crypto \
+    ${PYTHON_PN}-cffi \
+    ${PYTHON_PN}-idna \
+    ${PYTHON_PN}-setuptools \
+    ${PYTHON_PN}-six \
+"
+
+RDEPENDS:${PN}:append:class-target = " \
+    ${PYTHON_PN}-numbers \
+    ${PYTHON_PN}-threading \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    ${PYTHON_PN}-bcrypt \
+    ${PYTHON_PN}-cryptography-vectors \
+    ${PYTHON_PN}-hypothesis \
+    ${PYTHON_PN}-iso8601 \
+    ${PYTHON_PN}-pretend \
+    ${PYTHON_PN}-psutil \
+    ${PYTHON_PN}-pytest \
+    ${PYTHON_PN}-pytest-subtests \
+    ${PYTHON_PN}-pytz \
+"
+
+inherit ptest
+
+do_install_ptest() {
+    install -D ${WORKDIR}/check-memfree.py ${D}${PTEST_PATH}/
+    install -d ${D}${PTEST_PATH}/tests
+    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+    install -d ${D}${PTEST_PATH}/tests/hazmat
+    cp -rf ${S}/tests/hazmat/* ${D}${PTEST_PATH}/tests/hazmat/
+    cp -r ${S}/pyproject.toml ${D}${PTEST_PATH}/
+}
+
+FILES:${PN}-ptest += " \
+    ${PTEST_PATH}/check-memfree.py \
+"
+FILES:${PN}-dbg += " \
+    ${PYTHON_SITEPACKAGES_DIR}/${SRCNAME}/hazmat/bindings/.debug \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
index 3f35149..1bcf18a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
@@ -3,7 +3,7 @@
 LICENSE = "GPL-3.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=ba1a8a73d8ebea5c47a1173aaf476ddd"
 
-SRC_URI = "git://github.com/cvxopt/cvxopt;protocol=https"
+SRC_URI = "git://github.com/cvxopt/cvxopt;protocol=https;branch=master"
 
 SRCREV = "d5a21cf1da62e4269176384b1ff62edac5579f94"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cycler_0.10.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cycler_0.10.0.bb
deleted file mode 100644
index edf3246..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cycler_0.10.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Composable style cycles"
-HOMEPAGE = "http://github.com/matplotlib/cycler"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7713fe42cd766b15c710e19392bfa811"
-
-SRC_URI[md5sum] = "4cb42917ac5007d1cdff6cccfe2d016b"
-SRC_URI[sha256sum] = "cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    python3-core \
-    python3-six \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cycler_0.11.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cycler_0.11.0.bb
new file mode 100644
index 0000000..59492e8
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cycler_0.11.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Composable style cycles"
+HOMEPAGE = "http://github.com/matplotlib/cycler"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7713fe42cd766b15c710e19392bfa811"
+
+SRC_URI[sha256sum] = "9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    python3-core \
+    python3-six \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy/setuptools.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy/setuptools.patch
new file mode 100644
index 0000000..3506f76
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy/setuptools.patch
@@ -0,0 +1,56 @@
+Port setup.py to setuptools.
+
+Upstream-Status: Submitted [https://github.com/ldo/dbussy/pull/53]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/setup.py b/setup.py
+index 4b9411e..da7ee7e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -8,33 +8,9 @@
+ # Written by Lawrence D'Oliveiro <ldo@geek-central.gen.nz>.
+ #-
+ 
+-import sys
+-import distutils.core
+-from distutils.command.build import \
+-    build as std_build
++import setuptools
+ 
+-class my_build(std_build) :
+-    "customization of build to perform additional validation."
+-
+-    def run(self) :
+-        try :
+-            exec \
+-              (
+-                "async def dummy() :\n"
+-                "    pass\n"
+-                "#end dummy\n"
+-              )
+-        except SyntaxError :
+-            sys.stderr.write("This module requires Python 3.5 or later.\n")
+-            sys.exit(-1)
+-        #end try
+-        super().run()
+-    #end run
+-
+-#end my_build
+-
+-distutils.core.setup \
+-  (
++setuptools.setup(
+     name = "DBussy",
+     version = "1.3",
+     description = "language bindings for libdbus, for Python 3.5 or later",
+@@ -43,9 +19,5 @@ distutils.core.setup \
+     author_email = "ldo@geek-central.gen.nz",
+     url = "https://github.com/ldo/dbussy",
+     license = "LGPL v2.1+",
+     py_modules = ["dbussy", "ravel"],
+-    cmdclass =
+-        {
+-            "build" : my_build,
+-        },
+-  )
++)
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
index e69c9b4..0cf9dc8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
@@ -3,13 +3,14 @@
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
 
-SRC_URI = "git://github.com/ldo/dbussy.git"
+SRC_URI = "git://github.com/ldo/dbussy.git;branch=master;protocol=https \
+           file://setuptools.patch"
 
 SRCREV = "37ede4242b48def73ada46c2747a4c5cae6abf45"
 
 S = "${WORKDIR}/git"
 
-inherit distutils3
+inherit setuptools3
 
 RDEPENDS:${PN} += "\
     python3-asyncio \
@@ -19,4 +20,3 @@
 "
 
 BBCLASSEXTEND = "native nativesdk"
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_5.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_5.1.0.bb
deleted file mode 100644
index 2e44c3d..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_5.1.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Python decorator utilities"
-DESCRIPTION = "\
-The aim of the decorator module it to simplify the usage of decorators \
-for the average programmer, and to popularize decorators by showing \
-various non-trivial examples. Of course, as all techniques, decorators \
-can be abused and you should not try to solve every problem with a \
-decorator, just because you can."
-
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=be2fd2007972bf96c08af3293d728b22"
-
-SRC_URI[sha256sum] = "e59913af105b9860aa2c8d3272d9de5a56a4e608db9a2f167a8480b323d529a7"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-stringold \
-    "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_5.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_5.1.1.bb
new file mode 100644
index 0000000..c9c6f9a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_5.1.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Python decorator utilities"
+DESCRIPTION = "\
+The aim of the decorator module it to simplify the usage of decorators \
+for the average programmer, and to popularize decorators by showing \
+various non-trivial examples. Of course, as all techniques, decorators \
+can be abused and you should not try to solve every problem with a \
+decorator, just because you can."
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=be2fd2007972bf96c08af3293d728b22"
+
+SRC_URI[sha256sum] = "637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-stringold \
+    "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-deprecated_1.2.12.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-deprecated_1.2.12.bb
deleted file mode 100644
index 4651a8a..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-deprecated_1.2.12.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Python @deprecated decorator to deprecate old python classes, functions or methods."
-HOMEPAGE = "https://deprecated.readthedocs.io/en/latest/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=44288e26f4896bdab14072d4fa35ff01"
-
-PYPI_PACKAGE = "Deprecated"
-SRC_URI[sha256sum] = "6d2de2de7931a968874481ef30208fd4e08da39177d61d3d4ebdf4366e7dbca1"
-
-inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-deprecated_1.2.13.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-deprecated_1.2.13.bb
new file mode 100644
index 0000000..6ea47f4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-deprecated_1.2.13.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Python @deprecated decorator to deprecate old python classes, functions or methods."
+HOMEPAGE = "https://deprecated.readthedocs.io/en/latest/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=44288e26f4896bdab14072d4fa35ff01"
+
+PYPI_PACKAGE = "Deprecated"
+SRC_URI[sha256sum] = "43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+	${PYTHON_PN}-wrapt \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_5.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_5.2.1.bb
deleted file mode 100644
index 4a028d7..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_5.2.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "Disk Cache -- Disk and file backed persistent cache."
-HOMEPAGE = "http://www.grantjenks.com/docs/diskcache/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a3e7dd5bc8f0053fee7c5fe9692b932d"
-
-SRC_URI[sha256sum] = "1805acd5868ac10ad547208951a1190a0ab7bbff4e70f9a07cde4dbdfaa69f64"
-
-PYPI_PACKAGE = "diskcache"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
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.4.0.bb
new file mode 100644
index 0000000..84d42e5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_5.4.0.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Disk Cache -- Disk and file backed persistent cache."
+HOMEPAGE = "http://www.grantjenks.com/docs/diskcache/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c60ef82f0f40155453f6d5f2c94b6e8e"
+
+SRC_URI[sha256sum] = "8879eb8c9b4a2509a5e633d2008634fb2b0b35c2b36192d89655dbde02419644"
+
+PYPI_PACKAGE = "diskcache"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-pickle \
+    ${PYTHON_PN}-sqlite3 \
+    ${PYTHON_PN}-core \
+    ${PYTHON_PN}-io \
+    ${PYTHON_PN}-compression \
+    ${PYTHON_PN}-threading \
+"
+
+CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.24.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.24.bb
deleted file mode 100644
index 982362b..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.24.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require python-django.inc
-
-# Pin to 2.2.x LTS releases ONLY for this recipe
-UPSTREAM_CHECK_REGEX = "/${PYPI_PACKAGE}/(?P<pver>(2\.2\.\d*)+)/"
-
-inherit setuptools3
-
-SRC_URI[md5sum] = "ebf3bbb7716a7b11029e860475b9a122"
-SRC_URI[sha256sum] = "3339ff0e03dee13045aef6ae7b523edff75b6d726adf7a7a48f53d5a501f7db7"
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-sqlparse \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.26.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.26.bb
new file mode 100644
index 0000000..523f0e0
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.26.bb
@@ -0,0 +1,12 @@
+require python-django.inc
+
+# Pin to 2.2.x LTS releases ONLY for this recipe
+UPSTREAM_CHECK_REGEX = "/${PYPI_PACKAGE}/(?P<pver>(2\.2\.\d*)+)/"
+
+inherit setuptools3
+
+SRC_URI[sha256sum] = "dfa537267d52c6243a62b32855a744ca83c37c70600aacffbfd98bc5d6d8518f"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-sqlparse \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.11.bb
new file mode 100644
index 0000000..6b97ef4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.11.bb
@@ -0,0 +1,13 @@
+require python-django.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "69c94abe5d6b1b088bf475e09b7b74403f943e34da107e798465d2045da27e75"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-sqlparse \
+"
+
+# Set DEFAULT_PREFERENCE so that the LTS version of django is built by
+# default. To build the 3.x branch, 
+# PREFERRED_VERSION_python3-django = "3.2.2" can be added to local.conf
+DEFAULT_PREFERENCE = "-1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.5.bb
deleted file mode 100644
index c10212c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.5.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require python-django.inc
-inherit setuptools3
-
-SRC_URI[sha256sum] = "3da05fea54fdec2315b54a563d5b59f3b4e2b1e69c3a5841dda35019c01855cd"
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-sqlparse \
-"
-
-# Set DEFAULT_PREFERENCE so that the LTS version of django is built by
-# default. To build the 3.x branch, 
-# PREFERRED_VERSION_python3-django = "3.2.2" can be added to local.conf
-DEFAULT_PREFERENCE = "-1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.0.1.bb
new file mode 100644
index 0000000..6cf8cad
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.0.1.bb
@@ -0,0 +1,13 @@
+require python-django.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "2485eea3cc4c3bae13080dee866ebf90ba9f98d1afe8fda89bfb0eb2e218ef86"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-sqlparse \
+"
+
+# Set DEFAULT_PREFERENCE so that the LTS version of django is built by
+# default. To build the 4.x branch, 
+# PREFERRED_VERSION_python3-django = "4.0.2" can be added to local.conf
+DEFAULT_PREFERENCE = "-1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.12.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.12.4.bb
deleted file mode 100644
index b05a8d8..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.12.4.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY =  "djangorestframework"
-DESCRIPTION = "pip3 install djangorestframework"
-HOMEPAGE = "https://pypi.python.org/pypi/djangorestframework"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=7879a5a716147a784f7e524c9cf103c1"
-
-SRC_URI[sha256sum] = "f747949a8ddac876e879190df194b925c177cdeb725a099db1460872f7c0a7f2"
-
-PYPI_PACKAGE = "djangorestframework"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-django \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.13.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.13.1.bb
new file mode 100644
index 0000000..be85827
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.13.1.bb
@@ -0,0 +1,16 @@
+SUMMARY =  "djangorestframework"
+DESCRIPTION = "pip3 install djangorestframework"
+HOMEPAGE = "https://pypi.python.org/pypi/djangorestframework"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=7879a5a716147a784f7e524c9cf103c1"
+
+SRC_URI[sha256sum] = "0c33407ce23acc68eca2a6e46424b008c9c02eceb8cf18581921d0092bc1f2ee"
+
+PYPI_PACKAGE = "djangorestframework"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-django \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.1.0.bb
deleted file mode 100644
index 5466b40..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.1.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-DESCRIPTION = "DNS toolkit for Python"
-HOMEPAGE = "http://www.dnspython.org/"
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5af50906b5929837f667dfe31052bd34"
-
-SRC_URI[sha256sum] = "e4a87f0b573201a0f3727fa18a516b055fd1107e0e5477cded4a2de497df1dd4"
-
-PYPI_PACKAGE_EXT = "zip"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
-	file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-	${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/tests
-	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-crypt \
-    ${PYTHON_PN}-io \
-    ${PYTHON_PN}-math \
-    ${PYTHON_PN}-netclient \
-    ${PYTHON_PN}-numbers \
-    ${PYTHON_PN}-threading \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.2.0.bb
new file mode 100644
index 0000000..ee670af
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.2.0.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "DNS toolkit for Python"
+HOMEPAGE = "http://www.dnspython.org/"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5af50906b5929837f667dfe31052bd34"
+
+SRC_URI[sha256sum] = "e79351e032d0b606b98d38a4b0e6e2275b31a5b85c873e587cc11b73aca026d6"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+	file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+	${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+	install -d ${D}${PTEST_PATH}/tests
+	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+DEPENDS += "\
+    ${PYTHON_PN}-wheel-native \
+    ${PYTHON_PN}-setuptools-scm-native \
+"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-crypt \
+    ${PYTHON_PN}-io \
+    ${PYTHON_PN}-math \
+    ${PYTHON_PN}-netclient \
+    ${PYTHON_PN}-numbers \
+    ${PYTHON_PN}-threading \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dt-schema_git.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dt-schema_git.bb
index 663fe77..305cfa6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dt-schema_git.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dt-schema_git.bb
@@ -6,7 +6,7 @@
 
 inherit setuptools3
 
-SRC_URI = "git://github.com/robherring/dt-schema.git"
+SRC_URI = "git://github.com/robherring/dt-schema.git;branch=master;protocol=https"
 SRCREV = "5009e47c1c76e48871f5988e08dad61f3c91196b"
 PV = "0.1+git${SRCPV}"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.3.2.bb
deleted file mode 100644
index 4c94d93..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.3.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "Provide XPath 1.0 and 2.0 selectors for Python's ElementTree XML data structures, both for the standard ElementTree library and for the lxml.etree library."
-HOMEPAGE = "https://github.com/sissaschool/elementpath"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5dbb7fb7d72da3921202dd7b995d3ecf"
-
-SRC_URI[sha256sum] = "392f32a5efdf15c14f3f56ef8422364f8b0a74a12f51a66d9c903c172fe3594b"
-
-PYPI_PACKAGE = "elementpath"
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-xml \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.4.0.bb
new file mode 100644
index 0000000..ed55077
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.4.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Provide XPath 1.0 and 2.0 selectors for Python's ElementTree XML data structures, both for the standard ElementTree library and for the lxml.etree library."
+HOMEPAGE = "https://github.com/sissaschool/elementpath"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5dbb7fb7d72da3921202dd7b995d3ecf"
+
+SRC_URI[sha256sum] = "5b6801b3be94d48d213beb7b8ebad96addb35c95fc6a9c062c80e033b4a32fe8"
+
+PYPI_PACKAGE = "elementpath"
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-xml \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-email-validator_1.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-email-validator_1.1.3.bb
new file mode 100644
index 0000000..b81e39a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-email-validator_1.1.3.bb
@@ -0,0 +1,13 @@
+SUMMARY = "A robust email address syntax and deliverability validation library."
+SECTION = "devel/python"
+LICENSE = "CC0-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=65d3616852dbf7b1a6d4b53b00626032"
+
+SRC_URI[md5sum] = "25582cf3d415c7fdd44b980a095e0d53"
+SRC_URI[sha256sum] = "aa237a65f6f4da067119b7df3f13e89c25c051327b2b5b66dc075f33d62480d7"
+
+PYPI_PACKAGE = "email_validator"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-dnspython python3-idna"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.2.1.bb
deleted file mode 100644
index 2eb82e8..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.2.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Engine.IO server"
-HOMEPAGE = "https://github.com/miguelgrinberg/python-engineio/"
-SECTION = "devel/python"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=42d0a9e728978f0eeb759c3be91536b8"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "python-engineio"
-
-RDEPENDS:${PN} += " \
-	python3-netclient \
-	python3-json \
-	python3-logging \
-	python3-compression \
-	python3-asyncio \
-"
-
-SRC_URI[sha256sum] = "d510329b6d8ed5662547862f58bc73659ae62defa66b66d745ba021de112fa62"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb
new file mode 100644
index 0000000..a16306e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Engine.IO server"
+HOMEPAGE = "https://github.com/miguelgrinberg/python-engineio/"
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=42d0a9e728978f0eeb759c3be91536b8"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "python-engineio"
+
+RDEPENDS:${PN} += " \
+	python3-netclient \
+	python3-json \
+	python3-logging \
+	python3-compression \
+	python3-asyncio \
+"
+
+SRC_URI[sha256sum] = "6e1d26977ffefe3b7da1b5df7a8750aedc7686da8201cd90daf36693db122489"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.32.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.32.0.bb
deleted file mode 100644
index 3848150..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.32.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "Highly concurrent networking library"
-HOMEPAGE = "http://pypi.python.org/pypi/eventlet"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=56472ad6de4caf50e05332a34b66e778"
-
-SRC_URI[sha256sum] = "2f0bb8ed0dc0ab21d683975d5d8ab3c054d588ce61def9faf7a465ee363e839b"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "${PYTHON_PN}-dnspython"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.33.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.33.0.bb
new file mode 100644
index 0000000..6a4449c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.33.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Highly concurrent networking library"
+HOMEPAGE = "http://pypi.python.org/pypi/eventlet"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=56472ad6de4caf50e05332a34b66e778"
+
+SRC_URI[sha256sum] = "80144f489c1bb273a51b6f96ff9785a382d2866b9bab1f5bd748385019f4141f"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+	${PYTHON_PN}-dnspython \
+	${PYTHON_PN}-six \
+	${PYTHON_PN}-distutils \
+	${PYTHON_PN}-greenlet \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb
index 73bdd70..ea17e84 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb
@@ -6,7 +6,10 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=772fcdaca14b378878d05c7d857e6c3e"
 
-DEPENDS += "python3-pip-native"
+DEPENDS += "\
+    python3-pip-native \
+    python3-setuptools-scm-native \
+"
 
 SRC_URI += "file://run-ptest \
            "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.16.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.16.3.bb
deleted file mode 100644
index 26549c1..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.16.3.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "A python package that provides useful locks."
-HOMEPAGE = "https://github.com/harlowja/fasteners"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4476c4be31402271e101d9a4a3430d52"
-
-SRC_URI[sha256sum] = "b1ab4e5adfbc28681ce44b3024421c4f567e705cc3963c732bf1cba3348307de"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-logging \
-    ${PYTHON_PN}-fcntl \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.17.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.17.2.bb
new file mode 100644
index 0000000..5e84749
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.17.2.bb
@@ -0,0 +1,18 @@
+SUMMARY = "A python package that provides useful locks."
+HOMEPAGE = "https://github.com/harlowja/fasteners"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4476c4be31402271e101d9a4a3430d52"
+
+SRC_URI[sha256sum] = "2aceacb2bd618ce8526676f7a3e84ea25d0165ef10abb574a45b4a9c07292d2e"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+	${PYTHON_PN}-logging \
+	${PYTHON_PN}-fcntl \
+"
+
+do_compile:prepend() {
+	echo "from setuptools import setup" > ${S}/setup.py
+	echo "setup()" >> ${S}/setup.py
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.15.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.15.1.bb
deleted file mode 100644
index a8bc0c1..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.15.1.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Fastest Python implementation of JSON schema"
-HOMEPAGE = "https://github.com/seznam/python-fastjsonschema"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=18950e8362b69c0c617b42b8bd8e7532"
-
-SRCREV = "1e214911fe83dbaeea3d50dfb3a539118de8a442"
-PYPI_SRC_URI = "git://github.com/horejsek/python-fastjsonschema;protocol=https;branch=master"
-
-SRC_URI += "file://run-ptest"
-
-inherit ptest pypi setuptools3
-
-S = "${WORKDIR}/git"
-
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/tests
-	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN}-ptest += "\
-    python3-colorama \
-    python3-jsonschema \
-    python3-pylint \
-    python3-pytest \
-    python3-pytest-benchmark \
-    python3-pytest-cache \
-"
-RDEPENDS:${PN} += "\
-    python3-core \
-    python3-urllib3 \
-    python3-numbers \
-    python3-pickle \
-    "
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.15.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.15.3.bb
new file mode 100644
index 0000000..a2821c1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.15.3.bb
@@ -0,0 +1,38 @@
+# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Fastest Python implementation of JSON schema"
+HOMEPAGE = "https://github.com/seznam/python-fastjsonschema"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=18950e8362b69c0c617b42b8bd8e7532"
+
+SRCREV = "d03f3835da4899bdeb597a9d3f30a709e7c3254f"
+PYPI_SRC_URI = "git://github.com/horejsek/python-fastjsonschema;protocol=https;branch=master"
+
+SRC_URI += "file://run-ptest"
+
+inherit ptest pypi setuptools3
+
+S = "${WORKDIR}/git"
+
+do_install_ptest() {
+	install -d ${D}${PTEST_PATH}/tests
+	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN}-ptest += "\
+    python3-colorama \
+    python3-jsonschema \
+    python3-pylint \
+    python3-pytest \
+    python3-pytest-benchmark \
+    python3-pytest-cache \
+"
+RDEPENDS:${PN} += "\
+    python3-core \
+    python3-urllib3 \
+    python3-numbers \
+    python3-pickle \
+    "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastnumbers_3.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastnumbers_3.1.0.bb
deleted file mode 100644
index 5c913ff..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastnumbers_3.1.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Super-fast and clean conversions to numbers."
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6a96e5ad780a0eea866ecccec4463517"
-
-PYPI_PACKAGE = "fastnumbers"
-
-SRC_URI[sha256sum] = "7cc4f96981ccd3cf212b6ea7b84ef621620b62da8b454f420aa2e81c8529e68f"
-
-inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastnumbers_3.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastnumbers_3.2.1.bb
new file mode 100644
index 0000000..0db3305
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastnumbers_3.2.1.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Super-fast and clean conversions to numbers."
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6a96e5ad780a0eea866ecccec4463517"
+
+PYPI_PACKAGE = "fastnumbers"
+
+SRC_URI[sha256sum] = "44f92b42e7e9f2ed77ba5cb7d664f05c17e43d4586718ed6cd3b3fffa0e67f33"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb
index f57727b..6932b3b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=258e3f39e2383fbd011035d04311008d"
 
-SRC_URI = "git://github.com/marianoguerra/feedformatter.git"
+SRC_URI = "git://github.com/marianoguerra/feedformatter.git;branch=master;protocol=https"
 SRCREV = "7391193c83e10420b5a2d8ef846d23fc368c6d85"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.3.0.bb
new file mode 100644
index 0000000..e3a932f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.3.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "A list-like structure which implements collections.abc.MutableSequence, and which can be made immutable."
+HOMEPAGE = "https://github.com/aio-libs/frozenlist"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cf056e8e7a0a5477451af18b7b5aa98c"
+
+SRC_URI[sha256sum] = "ce6f2ba0edb7b0c1d8976565298ad2deba6f8064d2bebb6ffce2ca896eb35b0b"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.5.2.bb
deleted file mode 100644
index d318973..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.5.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "A generic AST to represent Python2 and Python3's Abstract Syntax Tree(AST)."
-HOMEPAGE = "https://github.com/serge-sans-paille/gast"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a3ad9b6802e713fc5e307e1230f1ea90"
-
-SRC_URI[sha256sum] = "f81fcefa8b982624a31c9e4ec7761325a88a0eba60d36d1da90e47f8fe3c67f7"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.5.3.bb
new file mode 100644
index 0000000..7fd4945
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.5.3.bb
@@ -0,0 +1,11 @@
+SUMMARY = "A generic AST to represent Python2 and Python3's Abstract Syntax Tree(AST)."
+HOMEPAGE = "https://github.com/serge-sans-paille/gast"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a3ad9b6802e713fc5e307e1230f1ea90"
+
+SRC_URI[sha256sum] = "cfbea25820e653af9c7d1807f659ce0a0a9c64f2439421a7bba4f0983f532dea"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_5.0.bb
new file mode 100644
index 0000000..330831a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_5.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "generate GCC code coverage reports"
+HOMEPAGE = "https://gcovr.com"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=08208c66520e8d69d5367483186d94ed"
+
+SRC_URI = "git://github.com/gcovr/gcovr.git;branch=master;protocol=https"
+SRCREV = "2b50284e8a6792b4ddcba14e2050c5c05f15deb6"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+RDEPENDS:${PN} += "${PYTHON_PN}-jinja2 ${PYTHON_PN}-lxml ${PYTHON_PN}-setuptools ${PYTHON_PN}-pygments"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_21.12.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_21.12.0.bb
new file mode 100644
index 0000000..9efeec4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_21.12.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "A coroutine-based Python networking library"
+DESCRIPTION = "gevent is a coroutine-based Python networking library that uses greenlet to provide \
+a high-level synchronous API on top of the libevent event loop."
+HOMEPAGE = "http://www.gevent.org"
+LICENSE = "MIT & Python-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4de99aac27b470c29c6c309e0c279b65"
+DEPENDS += "${PYTHON_PN}-greenlet libev c-ares"
+
+RDEPENDS:${PN} = "${PYTHON_PN}-greenlet \
+		  ${PYTHON_PN}-mime \
+		  ${PYTHON_PN}-pprint \
+		 "
+
+SRC_URI[sha256sum] = "f48b64578c367b91fa793bf8eaaaf4995cb93c8bc45860e473bf868070ad094e"
+
+inherit pypi setuptools3
+
+# Don't embed libraries, link to the system instead
+export GEVENTSETUP_EMBED = "0"
+
+# Delete the embedded copies of libraries so we can't accidentally link to them
+do_configure:append() {
+	rm -rf ${S}/deps
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_21.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_21.8.0.bb
deleted file mode 100644
index 74ae6cf..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_21.8.0.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "A coroutine-based Python networking library"
-DESCRIPTION = "gevent is a coroutine-based Python networking library that uses greenlet to provide \
-a high-level synchronous API on top of the libevent event loop."
-HOMEPAGE = "http://www.gevent.org"
-LICENSE = "MIT & Python-2.0 & BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4de99aac27b470c29c6c309e0c279b65 \
-                    file://NOTICE;md5=18108df3583462cafd457f024b9b09b5 \
-                    file://deps/libev/LICENSE;md5=d6ad416afd040c90698edcdf1cbee347 \
-                    "
-DEPENDS += "libevent"
-DEPENDS += "${PYTHON_PN}-greenlet"
-RDEPENDS:${PN} = "${PYTHON_PN}-greenlet \
-		  ${PYTHON_PN}-mime \
-		  ${PYTHON_PN}-pprint \
-		 "
-
-FILESEXTRAPATHS:prepend := "${THISDIR}/python-gevent:"
-
-SRC_URI:append = " \
-    file://libev-conf.patch;patch=1;pnum=1 \
-"
-
-SRC_URI[sha256sum] = "43e93e1a4738c922a2416baf33f0afb0a20b22d3dba886720bc037cd02a98575"
-
-# The python-gevent has no autoreconf ability
-# and the logic for detecting a cross compile is flawed
-# so always force a cross compile
-do_configure:append() {
-	sed -i -e 's/^cross_compiling=no/cross_compiling=yes/' ${S}/deps/libev/configure
-	sed -i -e 's/^cross_compiling=no/cross_compiling=yes/' ${S}/deps/c-ares/configure
-}
-
-inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.0rc1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.0rc1.bb
deleted file mode 100644
index d3150d6..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.0rc1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x"
-SECTION = "devel/python"
-LICENSE = "GPL-3.0 | LGPL-3.0+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
-                    file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
-
-DEPENDS += "gmp mpfr libmpc"
-
-PYPI_PACKAGE = "gmpy2"
-SRC_URI[sha256sum] = "86cb6d8e5837560c32c706d48d6ed25676be6b3c79e6aa5d245965b9e99231b9"
-
-inherit pypi setuptools3 python3native
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.2.bb
new file mode 100644
index 0000000..d064ba5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x"
+SECTION = "devel/python"
+LICENSE = "GPL-3.0 | LGPL-3.0+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+DEPENDS += "gmp mpfr libmpc"
+
+PYPI_PACKAGE = "gmpy2"
+SRC_URI[sha256sum] = "da75140bca128ece795895477e53b43773e3748aa90ba6170eae7ca2c74b82d1"
+
+inherit pypi setuptools3 python3native
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.7.bb
deleted file mode 100644
index 83ee579..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.7.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "A wrapper for the Gnu Privacy Guard (GPG or GnuPG)"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b0b7ac63b60085b23fa9f7e1951daa1d"
-
-PYPI_PACKAGE = "python-gnupg"
-SRC_URI[sha256sum] = "2061f56b1942c29b92727bf9aecbd3cea3893acc9cccbdc7eb4604285efe4ac7"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} +=  " \
-	gnupg-gpg \
-	python3-logging \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.8.bb
new file mode 100644
index 0000000..b42225b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.8.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A wrapper for the Gnu Privacy Guard (GPG or GnuPG)"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b0b7ac63b60085b23fa9f7e1951daa1d"
+
+PYPI_PACKAGE = "python-gnupg"
+SRC_URI[sha256sum] = "b64de1ae5cedf872b437201a566fa2c62ce0c95ea2e30177eb53aee1258507d7"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} +=  " \
+	gnupg-gpg \
+	python3-logging \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.1.1.bb
deleted file mode 100644
index 34489af..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.1.1.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-DESCRIPTION = "Google API client core library"
-HOMEPAGE = "https://github.com/googleapis/python-api-core"
-AUTHOR = "Google LLC"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "646d9399c3c478fe475cfe523e84572ab31a340814ea977fb2774eca5a6549a2"
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-asyncio \
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-logging \
-    ${PYTHON_PN}-math \
-"
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-googleapis-common-protos \
-    ${PYTHON_PN}-google-auth \
-    ${PYTHON_PN}-grpcio \
-    ${PYTHON_PN}-protobuf \
-    ${PYTHON_PN}-pytz \
-    ${PYTHON_PN}-requests \
-    ${PYTHON_PN}-six \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.3.2.bb
new file mode 100644
index 0000000..c43fa4c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.3.2.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Google API client core library"
+HOMEPAGE = "https://github.com/googleapis/python-api-core"
+AUTHOR = "Google LLC"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "c8889f45cf58deca522888ae1d39b2a25e93e7d1b019ae8cee6456d5c726a40c"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-asyncio \
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-logging \
+    ${PYTHON_PN}-math \
+"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-googleapis-common-protos \
+    ${PYTHON_PN}-google-auth \
+    ${PYTHON_PN}-grpcio \
+    ${PYTHON_PN}-protobuf \
+    ${PYTHON_PN}-pytz \
+    ${PYTHON_PN}-requests \
+    ${PYTHON_PN}-six \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.27.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.27.0.bb
deleted file mode 100644
index 41ab48c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.27.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "The Google API Client for Python is a client library for accessing the Plus, \
-Moderator, and many other Google APIs."
-HOMEPAGE = "https://github.com/googleapis/google-api-python-client"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-SRC_URI[sha256sum] = "659e9955f0f1e02fcce5dec85622eb5af1807572ef0f09c49d68d8426da670e7"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-logging \
-    ${PYTHON_PN}-six \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-core \
-    ${PYTHON_PN}-netclient \
-    ${PYTHON_PN}-httplib2 \
-    ${PYTHON_PN}-uritemplate \
-    ${PYTHON_PN}-google-api-core \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.36.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.36.0.bb
new file mode 100644
index 0000000..502ebad
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.36.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "The Google API Client for Python is a client library for accessing the Plus, \
+Moderator, and many other Google APIs."
+HOMEPAGE = "https://github.com/googleapis/google-api-python-client"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI[sha256sum] = "533c69e8ddce6630a2ce5b98348f6a58a23df49cb92040a0086315df979404af"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-logging \
+    ${PYTHON_PN}-six \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-core \
+    ${PYTHON_PN}-netclient \
+    ${PYTHON_PN}-httplib2 \
+    ${PYTHON_PN}-uritemplate \
+    ${PYTHON_PN}-google-api-core \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.53.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.53.0.bb
deleted file mode 100644
index 58d35f3..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.53.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "Common protobufs used in Google APIs"
-HOMEPAGE = "https://github.com/googleapis/python-api-common-protos"
-AUTHOR = "Google LLC"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "a88ee8903aa0a81f6c3cec2d5cf62d3c8aa67c06439b0496b49048fb1854ebf4"
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-grpcio \
-    ${PYTHON_PN}-protobuf \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.54.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.54.0.bb
new file mode 100644
index 0000000..afc6dcb
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.54.0.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Common protobufs used in Google APIs"
+HOMEPAGE = "https://github.com/googleapis/python-api-common-protos"
+AUTHOR = "Google LLC"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "a4031d6ec6c2b1b6dc3e0be7e10a1bd72fb0b18b07ef9be7b51f2c1004ce2437"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-grpcio \
+    ${PYTHON_PN}-protobuf \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.17.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.17.bb
deleted file mode 100644
index 017a1d0..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.17.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Graphviz protocol implementation"
-HOMEPAGE = "https://graphviz.readthedocs.io/en/stable/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=87cd8818b7e63c6a9c580034e80d7521"
-
-SRC_URI[sha256sum] = "ef6e2c5deb9cdcc0c7eece1d89625fd07b0f2208ea2bcb483520907ddf8b4e12"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE_EXT = "zip"
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-logging \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.19.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.19.1.bb
new file mode 100644
index 0000000..f1246b4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.19.1.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Graphviz protocol implementation"
+HOMEPAGE = "https://graphviz.readthedocs.io/en/stable/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=87cd8818b7e63c6a9c580034e80d7521"
+
+SRC_URI[sha256sum] = "09ed0cde452d015fe77c4845a210eb642f28d245f5bc250d4b97808cb8f49078"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE_EXT = "zip"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-logging \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.2.bb
index 07c1436..4a5b1d2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.2.bb
@@ -6,4 +6,4 @@
 
 SRC_URI[sha256sum] = "e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a"
 
-inherit pypi distutils3 setuptools3
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.41.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.41.0.bb
deleted file mode 100644
index 55b8890..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.41.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "Google gRPC tools"
-HOMEPAGE = "http://www.grpc.io/"
-SECTION = "devel/python"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-grpcio"
-
-SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch"
-
-SRC_URI[sha256sum] = "3891b1df82369acbc8451d4952cd20755f49a82398dce62437511ad17b47290e"
-
-RDEPENDS:${PN} = "${PYTHON_PN}-grpcio"
-
-BBCLASSEXTEND = "native nativesdk"
-
-# Needs abseil-cpp which does not build for ppc64le/musl
-COMPATIBLE_HOST:libc-musl:powerpc64le = "null"
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.41.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.41.1.bb
new file mode 100644
index 0000000..fdc4ad9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.41.1.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Google gRPC tools"
+HOMEPAGE = "http://www.grpc.io/"
+SECTION = "devel/python"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515"
+
+inherit pypi setuptools3
+
+DEPENDS += "${PYTHON_PN}-grpcio"
+
+SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch"
+
+SRC_URI[sha256sum] = "f16e4c63996ca8fe0af1eb9c4a07e5207874c4a69f890ccb824cd858521d981f"
+
+RDEPENDS:${PN} = "${PYTHON_PN}-grpcio"
+
+BBCLASSEXTEND = "native nativesdk"
+
+# Needs abseil-cpp which does not build for ppc64le/musl
+COMPATIBLE_HOST:libc-musl:powerpc64le = "null"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.41.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.41.0.bb
deleted file mode 100644
index fb6f1a3..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.41.0.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-DESCRIPTION = "Google gRPC"
-HOMEPAGE = "http://www.grpc.io/"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-DEPENDS += "${PYTHON_PN}-protobuf"
-
-SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch"
-SRC_URI:append:class-target = " file://ppc-boringssl-support.patch \
-                                file://boring_ssl.patch \
-                                file://mips_bigendian.patch \
-                                file://0001-absl-always-use-asm-sgidefs.h.patch \
-"
-SRC_URI[sha256sum] = "15c04d695833c739dbb25c88eaf6abd9a461ec0dbd32f44bc8769335a495cf5a"
-
-RDEPENDS:${PN} = "${PYTHON_PN}-protobuf \
-                  ${PYTHON_PN}-setuptools \
-                  ${PYTHON_PN}-six \
-"
-
-inherit setuptools3
-inherit pypi
-
-export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY = "1"
-
-BORING_SSL_PLATFORM:arm = "linux-arm"
-BORING_SSL_PLATFORM:x86-64 = "linux-x86_64"
-BORING_SSL_PLATFORM ?= "unsupported"
-export GRPC_BORING_SSL_PLATFORM = "${BORING_SSL_PLATFORM}"
-
-BORING_SSL:x86-64 = "1"
-BORING_SSL:arm = "1"
-BORING_SSL ?= "0"
-export GRPC_BUILD_WITH_BORING_SSL_ASM = "${BORING_SSL}"
-
-GRPC_CFLAGS ?= ""
-GRPC_CFLAGS:append:toolchain-clang = " -fvisibility=hidden -fno-wrapv -fno-exceptions"
-export GRPC_PYTHON_CFLAGS = "${GRPC_CFLAGS}"
-
-CLEANBROKEN = "1"
-
-BBCLASSEXTEND = "native nativesdk"
-
-CCACHE_DISABLE = "1"
-
-# needs vdso support
-COMPATIBLE_HOST:libc-musl:powerpc64le = "null"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.43.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.43.0.bb
new file mode 100644
index 0000000..6d76967
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.43.0.bb
@@ -0,0 +1,48 @@
+DESCRIPTION = "Google gRPC"
+HOMEPAGE = "http://www.grpc.io/"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0 & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6e4cf218112648d22420a84281b68b88"
+
+DEPENDS += "${PYTHON_PN}-protobuf"
+
+SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch"
+SRC_URI:append:class-target = " file://ppc-boringssl-support.patch \
+                                file://boring_ssl.patch \
+                                file://mips_bigendian.patch \
+                                file://0001-absl-always-use-asm-sgidefs.h.patch \
+"
+SRC_URI[sha256sum] = "735d9a437c262ab039d02defddcb9f8f545d7009ae61c0114e19dda3843febe5"
+
+RDEPENDS:${PN} = "${PYTHON_PN}-protobuf \
+                  ${PYTHON_PN}-setuptools \
+                  ${PYTHON_PN}-six \
+"
+
+inherit setuptools3
+inherit pypi
+
+export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY = "1"
+
+BORING_SSL_PLATFORM:arm = "linux-arm"
+BORING_SSL_PLATFORM:x86-64 = "linux-x86_64"
+BORING_SSL_PLATFORM ?= "unsupported"
+export GRPC_BORING_SSL_PLATFORM = "${BORING_SSL_PLATFORM}"
+
+BORING_SSL:x86-64 = "1"
+BORING_SSL:arm = "1"
+BORING_SSL ?= "0"
+export GRPC_BUILD_WITH_BORING_SSL_ASM = "${BORING_SSL}"
+
+GRPC_CFLAGS ?= ""
+GRPC_CFLAGS:append:toolchain-clang = " -fvisibility=hidden -fno-wrapv -fno-exceptions"
+export GRPC_PYTHON_CFLAGS = "${GRPC_CFLAGS}"
+
+CLEANBROKEN = "1"
+
+BBCLASSEXTEND = "native nativesdk"
+
+CCACHE_DISABLE = "1"
+
+# needs vdso support
+COMPATIBLE_HOST:libc-musl:powerpc64le = "null"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-hexdump_3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-hexdump_3.3.bb
deleted file mode 100644
index 64aa6b3..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-hexdump_3.3.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "view/edit your binary with any text editor"
-
-# The homepage listed on pypi is [1] but the repository has been removed.
-# Instead, set the homepage to pypi.
-#
-# [1] https://bitbucket.org/techtonik/hexdump/
-HOMEPAGE = "https://pypi.org/project/hexdump/"
-
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/PD;md5=b3597d12946881e13cb3b548d1173851"
-
-PYPI_PACKAGE_EXT = "zip"
-
-inherit pypi distutils3
-
-SRC_URI[sha256sum] = "d781a43b0c16ace3f9366aade73e8ad3a7bd5137d58f0b45ab2d3f54876f20db"
-
-S = "${WORKDIR}"
-
-BBCLASSEXTEND = "native nativesdk"
-
-do_install:append() {
-    rm ${D}${datadir}/data/hexfile.bin
-    rmdir ${D}${datadir}/data ${D}${datadir}
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.1.bb
deleted file mode 100644
index 8a0b6c9..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A comprehensive HTTP client library, httplib2 supports many features left out of other HTTP libraries."
-HOMEPAGE = "https://github.com/httplib2/httplib2"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=56e5e931172b6164b62dc7c4aba6c8cf"
-
-SRC_URI[sha256sum] = "0efbcb8bfbfbc11578130d87d8afcc65c2274c6eb446e59fc674e4d7c972d327"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-compression \
-    ${PYTHON_PN}-netclient \
-    ${PYTHON_PN}-pyparsing \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.2.bb
new file mode 100644
index 0000000..bda1d1f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A comprehensive HTTP client library, httplib2 supports many features left out of other HTTP libraries."
+HOMEPAGE = "https://github.com/httplib2/httplib2"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=56e5e931172b6164b62dc7c4aba6c8cf"
+
+SRC_URI[sha256sum] = "e404681d2fbcec7506bcb52c503f2b021e95bee0ef7d01e5c221468a2406d8dc"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-compression \
+    ${PYTHON_PN}-netclient \
+    ${PYTHON_PN}-pyparsing \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-huey_2.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-huey_2.4.1.bb
deleted file mode 100644
index 64bd888..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-huey_2.4.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "a little task queue for python"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5cac039fcc82f01141cc170b48f315d4"
-
-PYPI_PACKAGE = "huey"
-
-SRC_URI[sha256sum] = "bd55e90746cec16e7a61d6dc60d4591c74cba59000dca96c387a4d4eee1395f6"
-
-RDEPENDS:${PN} += " \
-	python3-datetime \
-	python3-logging \
-	python3-multiprocessing \
-	python3-json \
-"
-
-inherit pypi setuptools3
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-huey_2.4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-huey_2.4.3.bb
new file mode 100644
index 0000000..f8f4062
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-huey_2.4.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "a little task queue for python"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5cac039fcc82f01141cc170b48f315d4"
+
+PYPI_PACKAGE = "huey"
+
+SRC_URI[sha256sum] = "4fa2f6055d581778c3bcf93fc8c9ce87aecc2a345d5ff35bd955da152c02ef37"
+
+RDEPENDS:${PN} += " \
+	python3-datetime \
+	python3-logging \
+	python3-multiprocessing \
+	python3-json \
+"
+
+inherit pypi setuptools3
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.12.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.12.0.bb
deleted file mode 100644
index 1aecc5a..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.12.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Python humanize utilities"
-HOMEPAGE = "http://github.com/jmoiron/humanize"
-SECTION = "devel/python"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=4ecc42519e84f6f3e23529464df7bd1d"
-
-SRC_URI[sha256sum] = "5ec1a66e230a3e31fb3f184aab9436ea13d4e37c168e0ffc345ae5bb57e58be6"
-
-inherit pypi setuptools3
-
-DEPENDS += "\
-    ${PYTHON_PN}-setuptools-scm-native \
-"
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-setuptools \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.13.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.13.1.bb
new file mode 100644
index 0000000..2c601b5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.13.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Python humanize utilities"
+HOMEPAGE = "http://github.com/jmoiron/humanize"
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=4ecc42519e84f6f3e23529464df7bd1d"
+
+SRC_URI[sha256sum] = "12f113f2e369dac7f35d3823f49262934f4a22a53a6d3d4c86b736f50db88c7b"
+
+inherit pypi setuptools3
+
+DEPENDS += "\
+    ${PYTHON_PN}-setuptools-scm-native \
+"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-setuptools \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.7.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.7.2.bb
deleted file mode 100644
index 2433a8c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.7.2.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Python extension wrapping the ICU C++ API"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://setup.py;beginline=244;endline=252;md5=3e00c41c6d04310707992b93307a224f"
-
-DEPENDS += "icu"
-
-PYPI_PACKAGE = "PyICU"
-SRC_URI[sha256sum] = "1382869b22d91cc99274f9b525fa7d9199b44d9007ff0036a09747839a01e9dc"
-
-SRC_URI += "file://0001-Fix-host-contamination-of-include-files.patch"
-
-inherit pkgconfig pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.8.bb
new file mode 100644
index 0000000..f3dd7a4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.8.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Python extension wrapping the ICU C++ API"
+HOMEPAGE = "https://gitlab.pyicu.org/main/pyicu"
+BUGTRACKER = "https://gitlab.pyicu.org/main/pyicu/-/issues"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c7c4bfd81a21e3b6368bdcced992bf59"
+
+DEPENDS += "icu"
+
+PYPI_PACKAGE = "PyICU"
+SRC_URI[sha256sum] = "3d80de47045a8163db5aebc947c42b4d429eeea4f0c32af4f40b33981fa872b9"
+
+SRC_URI += "file://0001-Fix-host-contamination-of-include-files.patch"
+
+inherit pkgconfig pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.3.bb
deleted file mode 100644
index a0e6b79..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.3.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Internationalised Domain Names in Applications"
-HOMEPAGE = "https://github.com/kjd/idna"
-LICENSE = "BSD-3-Clause & Python-2.0 & Unicode"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=239668a7c6066d9e0c5382e9c8c6c0e1"
-
-SRC_URI[sha256sum] = "9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
-
-inherit pypi setuptools3
-
-# Remove bundled egg-info
-do_compile:prepend() {
-    rm -rf ${S}/idna.egg-info
-}
-
-RDEPENDS:${PN}:class-target = "\
-    ${PYTHON_PN}-codecs \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.14.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.14.0.bb
new file mode 100644
index 0000000..f0ac370
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.14.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Python library that provides an easy interface to read and \
+write a wide range of image data, including animated images, video, \
+volumetric data, and scientific formats."
+SECTION = "devel/python"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7b9bbbb543b6af3e6b53f9b7fb68f71d"
+
+SRC_URI[sha256sum] = "1a612b46c24805115701ed7c4e1f2d7feb53bb615d52bfef9713a6836e997bb1"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "python3-numpy python3-pillow"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.9.0.bb
deleted file mode 100644
index 2783669..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.9.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Python library that provides an easy interface to read and \
-write a wide range of image data, including animated images, video, \
-volumetric data, and scientific formats."
-SECTION = "devel/python"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7b9bbbb543b6af3e6b53f9b7fb68f71d"
-
-
-SRC_URI[md5sum] = "d22757338542e3742a335cea6210e419"
-SRC_URI[sha256sum] = "52ddbaeca2dccf53ba2d6dec5676ca7bc3b2403ef8b37f7da78b7654bb3e10f0"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "python3-numpy python3-pillow"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-imgtool/cbor2.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-imgtool/cbor2.patch
new file mode 100644
index 0000000..3e8c202
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-imgtool/cbor2.patch
@@ -0,0 +1,67 @@
+Upstream-Status: Submitted [https://github.com/mcu-tools/mcuboot/pull/1190]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From f9c6f31b936d34df9a6551609cb16ed9c348be88 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Tue, 2 Nov 2021 11:12:04 +0000
+Subject: [PATCH] imgtool: prefer cbor2 over cbor
+
+The cbor module is unmaintained, with the last release in 2016[1]. The
+cbor2 module however is under active development and was last released
+just last month[2].
+
+As the APIs are identical, we can import cbor2 and if that fails fall
+back to cbor.
+
+[1] https://pypi.org/project/cbor/#history
+[2] https://pypi.org/project/cbor2/#history
+
+Closes #1189
+
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ scripts/imgtool.nix            | 2 +-
+ scripts/imgtool/boot_record.py | 7 +++++--
+ scripts/requirements.txt       | 2 +-
+ scripts/setup.py               | 2 +-
+ 4 files changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/scripts/imgtool/boot_record.py b/scripts/imgtool/boot_record.py
+index ac433aa..6f0045e 100644
+--- a/scripts/imgtool/boot_record.py
++++ b/scripts/imgtool/boot_record.py
+@@ -16,8 +16,11 @@
+ # limitations under the License.
+ 
+ from enum import Enum
+-import cbor
+ 
++try:
++    from cbor2 import dumps
++except ImportError:
++    from cbor import dumps
+ 
+ class SwComponent(int, Enum):
+     """
+@@ -46,4 +49,4 @@ def create_sw_component_data(sw_type, sw_version, sw_measurement_description,
+     #       list because later it will be modified by the bootloader.
+     properties[SwComponent.MEASUREMENT_VALUE] = sw_measurement_value
+ 
+-    return cbor.dumps(properties)
++    return dumps(properties)
+diff --git a/scripts/setup.py b/scripts/setup.py
+index a228ea3..692cfb7 100644
+--- a/scripts/setup.py
++++ b/scripts/setup.py
+@@ -17,7 +17,7 @@ setuptools.setup(
+         'cryptography>=2.4.2',
+         'intelhex>=2.2.1',
+         'click',
+-        'cbor>=1.0.0',
++        'cbor2',
+     ],
+     entry_points={
+         "console_scripts": ["imgtool=imgtool.main:imgtool"]
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-imgtool_1.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-imgtool_1.8.0.bb
new file mode 100644
index 0000000..c957fce
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-imgtool_1.8.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "MCUboot's image signing and key management tool"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://imgtool/main.py;beginline=3;endline=18;md5=9965f09ae52c04886a1f04e13ccdce57"
+
+SRC_URI += "file://cbor2.patch;striplevel=2"
+
+SRC_URI[sha256sum] = "4858f5c5f48cfa4a0bb99e60d00aa291172a7ecc2afe4fb77ed96121f59b6e2f"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "python3-cbor2 python3-click python3-cryptography python3-intelhex"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.28.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.28.0.bb
deleted file mode 100644
index c5d05a8..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.28.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "IPython: Productive Interactive Computing"
-HOMEPAGE = "https://ipython.org"
-AUTHOR = "The IPython Development Team <ipython-dev@python.org>"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING.rst;md5=59b20262b8663cdd094005bddf47af5f"
-
-PYPI_PACKAGE = "ipython"
-
-SRC_URI[sha256sum] = "2097be5c814d1b974aea57673176a924c4c8c9583890e7a5f082f547b9975b11"
-
-RDEPENDS:${PN} = "\
-    ${PYTHON_PN}-setuptools \
-    ${PYTHON_PN}-jedi \
-    ${PYTHON_PN}-decorator \
-    ${PYTHON_PN}-pickleshare \
-    ${PYTHON_PN}-traitlets \
-    ${PYTHON_PN}-prompt-toolkit \
-    ${PYTHON_PN}-pygments \
-    ${PYTHON_PN}-backcall \
-    ${PYTHON_PN}-pydoc \
-    ${PYTHON_PN}-debugger \
-    ${PYTHON_PN}-pexpect \
-    ${PYTHON_PN}-unixadmin \
-    ${PYTHON_PN}-misc \
-    ${PYTHON_PN}-sqlite3 \
-"
-
-inherit setuptools3 pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.30.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.30.1.bb
new file mode 100644
index 0000000..6b82981
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.30.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "IPython: Productive Interactive Computing"
+HOMEPAGE = "https://ipython.org"
+AUTHOR = "The IPython Development Team <ipython-dev@python.org>"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING.rst;md5=59b20262b8663cdd094005bddf47af5f"
+
+PYPI_PACKAGE = "ipython"
+
+SRC_URI[sha256sum] = "cb6aef731bf708a7727ab6cde8df87f0281b1427d41e65d62d4b68934fa54e97"
+
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-setuptools \
+    ${PYTHON_PN}-jedi \
+    ${PYTHON_PN}-decorator \
+    ${PYTHON_PN}-pickleshare \
+    ${PYTHON_PN}-traitlets \
+    ${PYTHON_PN}-prompt-toolkit \
+    ${PYTHON_PN}-pygments \
+    ${PYTHON_PN}-backcall \
+    ${PYTHON_PN}-pydoc \
+    ${PYTHON_PN}-debugger \
+    ${PYTHON_PN}-pexpect \
+    ${PYTHON_PN}-unixadmin \
+    ${PYTHON_PN}-misc \
+    ${PYTHON_PN}-sqlite3 \
+"
+
+inherit setuptools3 pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_0.1.16.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_0.1.16.bb
deleted file mode 100644
index 2923647..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_0.1.16.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Simple module to parse ISO 8601 dates"
-HOMEPAGE = "http://pyiso8601.readthedocs.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b05625f2336fa024e8d57e65c6595844"
-
-SRC_URI[sha256sum] = "36532f77cc800594e8f16641edae7f1baf7932f05d8e508545b95fc53c6dc85b"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-numbers \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_1.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_1.0.2.bb
new file mode 100644
index 0000000..474c2a8
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_1.0.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Simple module to parse ISO 8601 dates"
+HOMEPAGE = "http://pyiso8601.readthedocs.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b05625f2336fa024e8d57e65c6595844"
+
+SRC_URI[sha256sum] = "27f503220e6845d9db954fb212b95b0362d8b7e6c1b2326a87061c3de93594b1"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-numbers \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-isodate_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-isodate_0.6.0.bb
deleted file mode 100644
index dd39541..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-isodate_0.6.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "ISO 8601 date/time parser"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
-
-SRC_URI[md5sum] = "0e1203fce27ce65e2d01c5f21c4d428f"
-SRC_URI[sha256sum] = "2e364a3d5759479cdb2d37cce6b9376ea504db2ff90252a2e5b7cc89cc9ff2d8"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-six \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-isodate_0.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-isodate_0.6.1.bb
new file mode 100644
index 0000000..2a5dcfc
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-isodate_0.6.1.bb
@@ -0,0 +1,13 @@
+SUMMARY = "ISO 8601 date/time parser"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
+
+SRC_URI[sha256sum] = "48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-six \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.10.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.10.1.bb
new file mode 100644
index 0000000..5cb41c5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.10.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A Python utility / library to sort Python imports."
+HOMEPAGE = "https://pypi.python.org/pypi/isort"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=8227180126797a0148f94f483f3e1489"
+
+SRC_URI[sha256sum] = "e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-shell \
+    ${PYTHON_PN}-profile \
+    ${PYTHON_PN}-numbers \
+    ${PYTHON_PN}-pprint \
+    ${PYTHON_PN}-difflib \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.9.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.9.3.bb
deleted file mode 100644
index 44a51db..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.9.3.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "A Python utility / library to sort Python imports."
-HOMEPAGE = "https://pypi.python.org/pypi/isort"
-LICENSE = "MIT"
-SECTION = "devel/python"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=8227180126797a0148f94f483f3e1489"
-
-SRC_URI[sha256sum] = "9c2ea1e62d871267b78307fe511c0838ba0da28698c5732d54e2790bf3ba9899"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-shell \
-    ${PYTHON_PN}-profile \
-    ${PYTHON_PN}-numbers \
-    ${PYTHON_PN}-pprint \
-    ${PYTHON_PN}-difflib \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_3.6.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_3.6.4.bb
deleted file mode 100644
index ad1ca42..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_3.6.4.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "Jalali implementation of Python's datetime module"
-HOMEPAGE = "https://github.com/slashmili/python-jalali"
-LICENSE = "Python-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=f6890b2f685363312aff7f520831cdef"
-
-SRC_URI[sha256sum] = "39d0be41076b3a3850c3bfa90817e7ed459edc0e9cadce37dc7229b11f121c7e"
-
-PYPI_PACKAGE = "jdatetime"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
-RDEPENDS:${PN} += " \
-        ${PYTHON_PN}-modules \
-"
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_3.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_3.8.1.bb
new file mode 100644
index 0000000..37c99e6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_3.8.1.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Jalali implementation of Python's datetime module"
+HOMEPAGE = "https://github.com/slashmili/python-jalali"
+LICENSE = "Python-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c80be45b33471b4a23cf53d06a8172be"
+
+SRC_URI[sha256sum] = "db57ee517356b1bfc1603ef412f5da61eae92241ba0bcaf0851028cae424780c"
+
+PYPI_PACKAGE = "jdatetime"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
+RDEPENDS:${PN} += " \
+        ${PYTHON_PN}-modules \
+"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jedi_0.18.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jedi_0.18.0.bb
deleted file mode 100644
index 0ea5b46..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jedi_0.18.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "An autocompletion tool for Python that can be used for text editors."
-HOMEPAGE = "https://github.com/davidhalter/jedi"
-AUTHOR = "David Halter <davidhalter88@gmail.com>"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5ed06eebfcb244cd66ebf6cef9c23ab4"
-
-PYPI_PACKAGE = "jedi"
-
-SRC_URI[sha256sum] = "92550a404bad8afed881a137ec9a461fed49eca661414be45059329614ed0707"
-
-RDEPENDS:${PN} = "${PYTHON_PN}-parso"
-
-inherit setuptools3 pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jedi_0.18.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jedi_0.18.1.bb
new file mode 100644
index 0000000..fb582c5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jedi_0.18.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "An autocompletion tool for Python that can be used for text editors."
+HOMEPAGE = "https://github.com/davidhalter/jedi"
+AUTHOR = "David Halter <davidhalter88@gmail.com>"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5ed06eebfcb244cd66ebf6cef9c23ab4"
+
+PYPI_PACKAGE = "jedi"
+
+SRC_URI[sha256sum] = "74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab"
+
+RDEPENDS:${PN} = " \
+	${PYTHON_PN}-parso \
+	${PYTHON_PN}-core \
+	${PYTHON_PN}-compression \
+	${PYTHON_PN}-pydoc \
+	${PYTHON_PN}-compile \
+	${PYTHON_PN}-json \
+"
+
+inherit setuptools3 pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin_3.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin_3.0.0.bb
deleted file mode 100644
index 733c963..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin_3.0.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "JavaScript minifier."
-HOMEPAGE = "https://github.com/tikitu/jsmin/"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3a3301ce2ad647e172f4a1016c67324d"
-
-inherit setuptools3 pypi ptest
-SRC_URI[sha256sum] = "88fc1bd6033a47c5911dbcada7d279c7a8b7ad0841909590f6a742c20c4d2e08"
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
-	file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-	${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
-	cp -f ${S}/jsmin/test.py ${D}${PTEST_PATH}/
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin_3.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin_3.0.1.bb
new file mode 100644
index 0000000..51b1706
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin_3.0.1.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "JavaScript minifier."
+HOMEPAGE = "https://github.com/tikitu/jsmin/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3a3301ce2ad647e172f4a1016c67324d"
+
+inherit setuptools3 pypi ptest
+SRC_URI[sha256sum] = "c0959a121ef94542e807a674142606f7e90214a2b3d1eb17300244bbb5cc2bfc"
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+	file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+	${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+	cp -f ${S}/jsmin/test.py ${D}${PTEST_PATH}/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpointer_2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpointer_2.1.bb
deleted file mode 100644
index fb3d9e0..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpointer_2.1.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Resolve JSON Pointers in Python"
-HOMEPAGE = "https://github.com/stefankoegl/python-json-pointer"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=32b15c843b7a329130f4e266a281ebb3"
-
-inherit pypi ptest setuptools3
-
-SRC_URI[sha256sum] = "5a34b698db1eb79ceac454159d3f7c12a451a91f6334a4f638454327b7a89962"
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-json \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
-	file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-	${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
-	cp -f ${S}/tests.py ${D}${PTEST_PATH}/
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
index c8c0f7d..11ab8b0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=366e2fd3c9714f162d3663b6f97cfe41"
 
-SRC_URI = "git://github.com/keras-team/keras-applications.git"
+SRC_URI = "git://github.com/keras-team/keras-applications.git;branch=master;protocol=https"
 SRCREV ?= "3b180cb10eda683dda7913ecee2e6487288d292d"
 
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.0.0.bb
index a4ec626..3daf134 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.0.0.bb
@@ -7,7 +7,7 @@
 inherit setuptools3 pkgconfig features_check
 
 SRC_URI = "\
-    git://github.com/kivy/kivy.git;protocol=git;\
+    git://github.com/kivy/kivy.git;protocol=https;branch=master \
 "
 
 # Kivy's setup files only look for GLES libraries for Android, iOS, RPi,
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.6.0.bb
deleted file mode 100644
index 60eb2a6..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.6.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "A fast and thorough lazy object proxy"
-HOMEPAGE = "https://python-lazy-object-proxy.readthedocs.io/"
-LICENSE = "BSD-2-Clause"
-SECTION = "devel/python"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9c5c2c74370826468065c5702b8a1fcf"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-pip-native"
-
-SRC_URI[sha256sum] = "489000d368377571c6f982fba6497f2aa13c6d1facc40660963da62f5c379726"
-
-inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.7.1.bb
new file mode 100644
index 0000000..4c20fcc
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.7.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "A fast and thorough lazy object proxy"
+HOMEPAGE = "https://python-lazy-object-proxy.readthedocs.io/"
+LICENSE = "BSD-2-Clause"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9c5c2c74370826468065c5702b8a1fcf"
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-pip-native"
+
+SRC_URI[sha256sum] = "d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml/0001-setupinfo.py-check-the-return-value.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml/0001-setupinfo.py-check-the-return-value.patch
new file mode 100644
index 0000000..7d91218
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml/0001-setupinfo.py-check-the-return-value.patch
@@ -0,0 +1,46 @@
+From 057872fa40e061100d61117cee5c3413ef2e40fc Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 20 Jan 2022 15:18:20 +0800
+Subject: [PATCH] setupinfo.py: check the return value
+
+Use the return value altogether to check the subprocess execute
+successfully or not as in some case it will print some noise
+message though run successfully as below.
+
+ # python
+ Python 3.8.10 (default, Nov 26 2021, 20:14:08)
+ [GCC 9.3.0] on linux
+ Type "help", "copyright", "credits" or "license" for more information.
+ >>> import subprocess
+ >>> cmd = "pkg-config --modversion libxml-2.0"
+ >>> p = subprocess.Popen(cmd, shell=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ >>> stdout_data, errors = p.communicate()
+ >>> print(stdout_data)
+ b'2.9.12\n'
+ >>> print(errors)
+ b'do_ypcall: clnt_call: RPC: Unable to send; errno = Network is unreachable\n'
+ >>>
+
+Upstream-Status: Submitted [https://github.com/lxml/lxml/pull/336]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ setupinfo.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setupinfo.py b/setupinfo.py
+index 8c2a36fb..c1247c6d 100644
+--- a/setupinfo.py
++++ b/setupinfo.py
+@@ -365,7 +365,7 @@ def run_command(cmd, *args):
+                          stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+     stdout_data, errors = p.communicate()
+ 
+-    if errors:
++    if p.returncode != 0 and errors:
+         return ''
+     return decode_input(stdout_data).strip()
+ 
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.6.3.bb
deleted file mode 100644
index 669c2ea..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.6.3.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
-DESCRIPTION = "lxml is a Pythonic, mature binding for the libxml2 and \
-libxslt libraries. It provides safe and convenient access to these \
-libraries using the ElementTree API. It extends the ElementTree API \
-significantly to offer support for XPath, RelaxNG, XML Schema, XSLT, \
-C14N and much more."
-HOMEPAGE = "http://codespeak.net/lxml"
-SECTION = "devel/python"
-LICENSE = "BSD & GPLv2 & MIT & PSF"
-LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=e4c045ebad958ead4b48008f70838403 \
-                    file://doc/licenses/elementtree.txt;md5=eb34d036a6e3d56314ee49a6852ac891 \
-                    file://doc/licenses/BSD.txt;md5=700a1fc17f4797d4f2d34970c8ee694b \
-                    file://doc/licenses/GPL.txt;md5=94d55d512a9ba36caa9b7df079bae19f \
-                    file://src/lxml/isoschematron/resources/rng/iso-schematron.rng;beginline=2;endline=7;md5=fc85684a8dd5fa272c086bceb0d99e10 \
-                    file://src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl;beginline=2;endline=24;md5=cc86b7b2bbc678e13f58ea403eb9929b \
-                    file://src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl;beginline=2;endline=7;md5=5b03236d293dc3784205542b409d2f53 \
-                    "
-
-DEPENDS += "libxml2 libxslt"
-
-SRC_URI[sha256sum] = "39b78571b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468"
-
-inherit pkgconfig pypi setuptools3
-
-# {standard input}: Assembler messages:
-# {standard input}:1488805: Error: branch out of range
-DEBUG_OPTIMIZATION:remove:mips = " -Og"
-DEBUG_OPTIMIZATION:append:mips = " -O"
-BUILD_OPTIMIZATION:remove:mips = " -Og"
-BUILD_OPTIMIZATION:append:mips = " -O"
-
-DEBUG_OPTIMIZATION:remove:mipsel = " -Og"
-DEBUG_OPTIMIZATION:append:mipsel = " -O"
-BUILD_OPTIMIZATION:remove:mipsel = " -Og"
-BUILD_OPTIMIZATION:append:mipsel = " -O"
-
-BBCLASSEXTEND = "native nativesdk"
-
-RDEPENDS:${PN} += "libxml2 libxslt ${PYTHON_PN}-compression"
-
-CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.7.1.bb
new file mode 100644
index 0000000..43f0712
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.7.1.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
+DESCRIPTION = "lxml is a Pythonic, mature binding for the libxml2 and \
+libxslt libraries. It provides safe and convenient access to these \
+libraries using the ElementTree API. It extends the ElementTree API \
+significantly to offer support for XPath, RelaxNG, XML Schema, XSLT, \
+C14N and much more."
+HOMEPAGE = "https://lxml.de/"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause & GPLv2 & MIT & PSF"
+LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=e4c045ebad958ead4b48008f70838403 \
+                    file://doc/licenses/elementtree.txt;md5=eb34d036a6e3d56314ee49a6852ac891 \
+                    file://doc/licenses/BSD.txt;md5=700a1fc17f4797d4f2d34970c8ee694b \
+                    file://doc/licenses/GPL.txt;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://src/lxml/isoschematron/resources/rng/iso-schematron.rng;beginline=2;endline=7;md5=fc85684a8dd5fa272c086bceb0d99e10 \
+                    file://src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl;beginline=2;endline=24;md5=cc86b7b2bbc678e13f58ea403eb9929b \
+                    file://src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl;beginline=2;endline=7;md5=5b03236d293dc3784205542b409d2f53 \
+                    "
+
+DEPENDS += "libxml2 libxslt"
+
+SRC_URI[sha256sum] = "a1613838aa6b89af4ba10a0f3a972836128801ed008078f8c1244e65958f1b24"
+
+SRC_URI += " \
+           file://0001-setupinfo.py-check-the-return-value.patch \
+"
+inherit pkgconfig pypi setuptools3
+
+# {standard input}: Assembler messages:
+# {standard input}:1488805: Error: branch out of range
+DEBUG_OPTIMIZATION:remove:mips = " -Og"
+DEBUG_OPTIMIZATION:append:mips = " -O"
+BUILD_OPTIMIZATION:remove:mips = " -Og"
+BUILD_OPTIMIZATION:append:mips = " -O"
+
+DEBUG_OPTIMIZATION:remove:mipsel = " -Og"
+DEBUG_OPTIMIZATION:append:mipsel = " -O"
+BUILD_OPTIMIZATION:remove:mipsel = " -Og"
+BUILD_OPTIMIZATION:append:mipsel = " -O"
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += "libxml2 libxslt ${PYTHON_PN}-compression"
+
+CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_3.1.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_3.1.10.bb
new file mode 100644
index 0000000..b557529
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_3.1.10.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "python bindings for the lz4 compression library by Yann Collet"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6231efa4dd4811e62407314d90a57573"
+
+DEPENDS += " \
+    ${PYTHON_PN}-setuptools-scm-native \
+    ${PYTHON_PN}-pkgconfig-native \
+"
+
+SRC_URI[sha256sum] = "439e575ecfa9ecffcbd63cfed99baefbe422ab9645b1e82278024d8a21d9720b"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_3.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_3.1.3.bb
deleted file mode 100644
index b14484b..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_3.1.3.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "python bindings for the lz4 compression library by Yann Collet"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6231efa4dd4811e62407314d90a57573"
-
-DEPENDS += " \
-    ${PYTHON_PN}-setuptools-scm-native \
-    ${PYTHON_PN}-pkgconfig-native \
-"
-
-SRC_URI[sha256sum] = "081ef0a3b5941cb03127f314229a1c78bd70c9c220bb3f4dd80033e707feaa18"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.14.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.14.1.bb
new file mode 100644
index 0000000..ddfe4b9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.14.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Simplified object serialization in python"
+DESCRIPTION = "Marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes."
+AUTHOR = "Marius Kriegerowski <mk@quakesaver.net>"
+HOMEPAGE = "https://github.com/marshmallow-code/marshmallow"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "\
+                    file://LICENSE;md5=5bccd400dedfa74364481e56aacc0b4a \
+                    file://docs/license.rst;md5=13da439ad060419fb7cf364523017cfb"
+
+SRC_URI = "git://github.com/marshmallow-code/marshmallow.git;protocol=https;branch=dev"
+
+SRCREV = "41afdefd93afd1b95f48f45fd284ff8add3e91b7"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+RDEPENDS:${PN} += "python3-core"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib/matplotlib-disable-download.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib/matplotlib-disable-download.patch
new file mode 100644
index 0000000..42ffeb8
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib/matplotlib-disable-download.patch
@@ -0,0 +1,60 @@
+Disable automatic downloading of components!
+
+Upstream-Status: Inappropriate [disable feature]
+
+Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
+
+--- a/setup.py
++++ b/setup.py
+@@ -317,7 +317,6 @@ setup(  # Finally, pass this all along t
+         "certifi>=2020.06.20",
+         "numpy>=1.17",
+         "setuptools_scm>=4",
+-        "setuptools_scm_git_archive",
+     ],
+     install_requires=[
+         "cycler>=0.10",
+--- a/setupext.py
++++ b/setupext.py
+@@ -64,40 +64,7 @@ def get_from_cache_or_download(url, sha)
+     BytesIO
+         The file loaded into memory.
+     """
+-    cache_dir = _get_xdg_cache_dir()
+-
+-    if cache_dir is not None:  # Try to read from cache.
+-        try:
+-            data = (cache_dir / sha).read_bytes()
+-        except IOError:
+-            pass
+-        else:
+-            if _get_hash(data) == sha:
+-                return BytesIO(data)
+-
+-    # jQueryUI's website blocks direct downloads from urllib.request's
+-    # default User-Agent, but not (for example) wget; so I don't feel too
+-    # bad passing in an empty User-Agent.
+-    with urllib.request.urlopen(
+-            urllib.request.Request(url, headers={"User-Agent": ""}),
+-            context=_get_ssl_context()) as req:
+-        data = req.read()
+-
+-    file_sha = _get_hash(data)
+-    if file_sha != sha:
+-        raise Exception(
+-            f"The downloaded file does not match the expected sha.  {url} was "
+-            f"expected to have {sha} but it had {file_sha}")
+-
+-    if cache_dir is not None:  # Try to cache the downloaded file.
+-        try:
+-            cache_dir.mkdir(parents=True, exist_ok=True)
+-            with open(cache_dir / sha, "xb") as fout:
+-                fout.write(data)
+-        except IOError:
+-            pass
+-
+-    return BytesIO(data)
++    raise IOError(f"Automatic downloading is disabled.")
+ 
+ 
+ def get_and_extract_tarball(urls, sha, dirname):
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.4.1.bb
deleted file mode 100644
index 9e933f5..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.4.1.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-SUMMARY = "matplotlib: plotting with Python"
-DESCRIPTION = "\
-Matplotlib is a Python 2D plotting library which produces \
-publication-quality figures in a variety of hardcopy formats \
-and interactive environments across platforms."
-HOMEPAGE = "https://github.com/matplotlib/matplotlib"
-SECTION = "devel/python"
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "\
-    file://setup.py;beginline=282;endline=282;md5=20e7ab4d2b2b1395a0e4ab800181eb96 \
-    file://LICENSE/LICENSE;md5=afec61498aa5f0c45936687da9a53d74 \
-"
-DEPENDS = "\
-    freetype \
-    libpng \
-    python3-numpy-native \
-    python3-dateutil-native \
-    python3-pytz-native \
-    python3-certifi-native \
-"
-
-SRC_URI[sha256sum] = "84d4c4f650f356678a5d658a43ca21a41fca13f9b8b00169c0b76e6a6a948908"
-
-inherit pypi setuptools3 pkgconfig
-
-# LTO with clang needs lld
-LDFLAGS:append:toolchain-clang = " -fuse-ld=lld"
-LDFLAGS:remove:toolchain-clang:mips = "-fuse-ld=lld"
-
-RDEPENDS:${PN} = "\
-    freetype \
-    libpng \
-    python3-numpy \
-    python3-pyparsing \
-    python3-cycler \
-    python3-dateutil \
-    python3-kiwisolver \
-    python3-pytz \
-"
-
-ENABLELTO:toolchain-clang:riscv64 = "echo enable_lto = False >> ${S}/setup.cfg"
-ENABLELTO:toolchain-clang:riscv32 = "echo enable_lto = False >> ${S}/setup.cfg"
-ENABLELTO:toolchain-clang:mips = "echo enable_lto = False >> ${S}/setup.cfg"
-do_compile:prepend() {
-    echo [libs] > ${S}/setup.cfg
-    echo system_freetype = true >> ${S}/setup.cfg
-    ${ENABLELTO}
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.5.1.bb
new file mode 100644
index 0000000..84bec0b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.5.1.bb
@@ -0,0 +1,64 @@
+SUMMARY = "matplotlib: plotting with Python"
+DESCRIPTION = "\
+Matplotlib is a Python 2D plotting library which produces \
+publication-quality figures in a variety of hardcopy formats \
+and interactive environments across platforms."
+HOMEPAGE = "https://github.com/matplotlib/matplotlib"
+SECTION = "devel/python"
+LICENSE = "PSF"
+LIC_FILES_CHKSUM = "\
+    file://setup.py;beginline=296;endline=296;md5=20e7ab4d2b2b1395a0e4ab800181eb96 \
+    file://LICENSE/LICENSE;md5=afec61498aa5f0c45936687da9a53d74 \
+"
+
+DEPENDS = "\
+    freetype \
+    libpng \
+    ${PYTHON_PN}-numpy-native \
+    ${PYTHON_PN}-pip-native \
+    ${PYTHON_PN}-dateutil-native \
+    ${PYTHON_PN}-pytz-native \
+    ${PYTHON_PN}-certifi-native \
+"
+
+SRC_URI[sha256sum] = "b2e9810e09c3a47b73ce9cab5a72243a1258f61e7900969097a817232246ce1c"
+
+inherit pypi setuptools3 pkgconfig
+
+# Stop the component from attempting to download when it detects a missing
+# dependency
+SRC_URI += "file://matplotlib-disable-download.patch"
+
+# This python module requires a full copy of freetype-2.6.1
+SRC_URI += "https://downloads.sourceforge.net/project/freetype/freetype2/2.6.1/freetype-2.6.1.tar.gz;name=freetype;subdir=matplotlib-${PV}/build"
+SRC_URI[freetype.sha256sum] = "0a3c7dfbda6da1e8fce29232e8e96d987ababbbf71ebc8c75659e4132c367014"
+
+# This python module requires a full copy of 'qhull-2020'
+SRC_URI += "http://www.qhull.org/download/qhull-2020-src-8.0.2.tgz;name=qhull;subdir=matplotlib-${PV}/build"
+SRC_URI[qhull.sha256sum] = "b5c2d7eb833278881b952c8a52d20179eab87766b00b865000469a45c1838b7e"
+
+# LTO with clang needs lld
+LDFLAGS:append:toolchain-clang = " -fuse-ld=lld"
+LDFLAGS:remove:toolchain-clang:mips = "-fuse-ld=lld"
+
+RDEPENDS:${PN} = "\
+    freetype \
+    libpng \
+    ${PYTHON_PN}-numpy \
+    ${PYTHON_PN}-pyparsing \
+    ${PYTHON_PN}-cycler \
+    ${PYTHON_PN}-dateutil \
+    ${PYTHON_PN}-kiwisolver \
+    ${PYTHON_PN}-pytz \
+"
+
+ENABLELTO:toolchain-clang:riscv64 = "echo enable_lto = False >> ${S}/mplsetup.cfg"
+ENABLELTO:toolchain-clang:riscv32 = "echo enable_lto = False >> ${S}/mplsetup.cfg"
+ENABLELTO:toolchain-clang:mips = "echo enable_lto = False >> ${S}/mplsetup.cfg"
+do_compile:prepend() {
+    echo [libs] > ${S}/mplsetup.cfg
+    echo system_freetype = True >> ${S}/mplsetup.cfg
+    ${ENABLELTO}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
index 080c41e..aacc32a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
 
 SRCREV = "80681f6604e136e513550342f977edb98f5fc5ad"
-SRC_URI = "git://github.com/atdt/monotonic.git"
+SRC_URI = "git://github.com/atdt/monotonic.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_1.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_1.0.2.bb
deleted file mode 100644
index 19c9caa..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_1.0.2.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "MessagePack (de)serializer"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751"
-
-PYPI_PACKAGE = "msgpack"
-inherit pypi setuptools3 ptest
-
-SRC_URI[sha256sum] = "fae04496f5bc150eefad4e9571d1a76c55d021325dcd484ce45065ebbdd00984"
-
-RDEPENDS:${PN}:class-target += "\
-    ${PYTHON_PN}-io \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
-	file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-	${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/test
-	cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_1.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_1.0.3.bb
new file mode 100644
index 0000000..9299925
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_1.0.3.bb
@@ -0,0 +1,27 @@
+SUMMARY = "MessagePack (de)serializer"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751"
+
+PYPI_PACKAGE = "msgpack"
+inherit pypi setuptools3 ptest
+
+SRC_URI[sha256sum] = "51fdc7fb93615286428ee7758cecc2f374d5ff363bdd884c7ea622a7a327a81e"
+
+RDEPENDS:${PN}:class-target += "\
+    ${PYTHON_PN}-io \
+"
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+	file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+	${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+	install -d ${D}${PTEST_PATH}/test
+	cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-natsort_7.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-natsort_7.1.1.bb
deleted file mode 100644
index ee8d900..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-natsort_7.1.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Simple yet flexible natural sorting in Python."
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6a96e5ad780a0eea866ecccec4463517"
-
-PYPI_PACKAGE = "natsort"
-SRC_URI[sha256sum] = "00c603a42365830c4722a2eb7663a25919551217ec09a243d3399fa8dd4ac403"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "python3-fastnumbers python3-icu"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-natsort_8.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-natsort_8.0.2.bb
new file mode 100644
index 0000000..1a54fcb
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-natsort_8.0.2.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Simple yet flexible natural sorting in Python."
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=58db8ac9e152dd9b700f4d39ff40a31a"
+
+PYPI_PACKAGE = "natsort"
+SRC_URI[sha256sum] = "feb87e0ce1dc1f8f3f21e18a85216c790e746d76a5ff6889563394605f504a2b"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "python3-fastnumbers python3-icu"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.6.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.6.2.bb
deleted file mode 100644
index e7676a7..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.6.2.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Python package for creating and manipulating graphs and networks"
-HOMEPAGE = "http://networkx.github.io/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5cfa4d8f5881e0d053bb497130b9c73a"
-
-SRC_URI[sha256sum] = "2306f1950ce772c5a59a57f5486d59bb9cab98497c45fc49cbc45ac0dec119bb"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-                   ${PYTHON_PN}-decorator \
-                   ${PYTHON_PN}-netclient \
-                   ${PYTHON_PN}-compression \
-                   ${PYTHON_PN}-numbers \
-                   ${PYTHON_PN}-pickle \
-                   ${PYTHON_PN}-html \
-                   ${PYTHON_PN}-xml \
-                   ${PYTHON_PN}-json \
-                   "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.6.3.bb
new file mode 100644
index 0000000..1608e03
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.6.3.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Python package for creating and manipulating graphs and networks"
+HOMEPAGE = "http://networkx.github.io/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5cfa4d8f5881e0d053bb497130b9c73a"
+
+SRC_URI[sha256sum] = "c0946ed31d71f1b732b5aaa6da5a0388a345019af232ce2f49c766e2d6795c51"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+                   ${PYTHON_PN}-decorator \
+                   ${PYTHON_PN}-netclient \
+                   ${PYTHON_PN}-compression \
+                   ${PYTHON_PN}-numbers \
+                   ${PYTHON_PN}-pickle \
+                   ${PYTHON_PN}-html \
+                   ${PYTHON_PN}-xml \
+                   ${PYTHON_PN}-json \
+                   "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb
index d117cc3..e8620b1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://ntplib.py;beginline=1;endline=23;md5=afa07338a9595257e94c205c3e72224d"
 
-SRC_URI = "git://github.com/cf-natali/ntplib.git"
+SRC_URI = "git://github.com/cf-natali/ntplib.git;branch=master;protocol=https"
 SRCREV ?= "b9c11c5906bc802a20a2dab390e57c50be558808"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.4.bb
deleted file mode 100644
index cde4318..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.4.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY  = "pandas library for high-performance data analysis tools"
-DESCRIPTION = "pandas is an open source, BSD-licensed library providing \
-high-performance, easy-to-use data structures and data analysis tools for \
-the Python programming language."
-HOMEPAGE = "http://pandas.pydata.org/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3f23c5c092b74d245d48eeef72bc3fd2"
-
-SRC_URI[sha256sum] = "a2aa18d3f0b7d538e21932f637fbfe8518d085238b429e4790a35e1e44a96ffc"
-
-inherit pypi setuptools3
-
-DEPENDS += " \
-    ${PYTHON_PN}-numpy-native ${PYTHON_PN}-cython-native \
-"
-
-CFLAGS:append:toolchain-clang = " -Wno-error=deprecated-declarations"
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-numpy \
-    ${PYTHON_PN}-dateutil \
-    ${PYTHON_PN}-dateutil-zoneinfo \
-    ${PYTHON_PN}-pytz \
-    ${PYTHON_PN}-profile \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.5.bb
new file mode 100644
index 0000000..2547875
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.5.bb
@@ -0,0 +1,26 @@
+SUMMARY  = "pandas library for high-performance data analysis tools"
+DESCRIPTION = "pandas is an open source, BSD-licensed library providing \
+high-performance, easy-to-use data structures and data analysis tools for \
+the Python programming language."
+HOMEPAGE = "http://pandas.pydata.org/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3f23c5c092b74d245d48eeef72bc3fd2"
+
+SRC_URI[sha256sum] = "1e4285f5de1012de20ca46b188ccf33521bff61ba5c5ebd78b4fb28e5416a9f1"
+
+inherit pypi setuptools3
+
+DEPENDS += " \
+    ${PYTHON_PN}-numpy-native ${PYTHON_PN}-cython-native \
+"
+
+CFLAGS:append:toolchain-clang = " -Wno-error=deprecated-declarations"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-numpy \
+    ${PYTHON_PN}-dateutil \
+    ${PYTHON_PN}-dateutil-zoneinfo \
+    ${PYTHON_PN}-pytz \
+    ${PYTHON_PN}-profile \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.8.0.bb
deleted file mode 100644
index 1942a1d..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.8.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "The leading native Python SSHv2 protocol library."
-HOMEPAGE = "https://github.com/paramiko/paramiko/"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fd0120fc2e9f841c73ac707a30389af5"
-
-SRC_URI[sha256sum] = "e673b10ee0f1c80d46182d3af7751d033d9b573dd7054d2d0aa46be186c3c1d2"
-
-PYPI_PACKAGE = "paramiko"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-bcrypt \
-    ${PYTHON_PN}-cryptography \
-    ${PYTHON_PN}-pynacl \
-    ${PYTHON_PN}-unixadmin \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.9.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.9.2.bb
new file mode 100644
index 0000000..0a54efd
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.9.2.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "The leading native Python SSHv2 protocol library."
+HOMEPAGE = "https://github.com/paramiko/paramiko/"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fd0120fc2e9f841c73ac707a30389af5"
+
+SRC_URI[sha256sum] = "944a9e5dbdd413ab6c7951ea46b0ab40713235a9c4c5ca81cfe45c6f14fa677b"
+
+PYPI_PACKAGE = "paramiko"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-bcrypt \
+    ${PYTHON_PN}-cryptography \
+    ${PYTHON_PN}-pynacl \
+    ${PYTHON_PN}-unixadmin \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-parso_0.8.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-parso_0.8.2.bb
deleted file mode 100644
index afcfabb..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-parso_0.8.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "A Python Parser"
-HOMEPAGE = "https://github.com/davidhalter/parso"
-AUTHOR = "David Halter <davidhalter88@gmail.com>"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cbaa2675b2424d771451332a7a69503f"
-
-PYPI_PACKAGE = "parso"
-
-SRC_URI[sha256sum] = "12b83492c6239ce32ff5eed6d3639d6a536170723c6f3f1506869f1ace413398"
-
-inherit setuptools3 pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-parso_0.8.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-parso_0.8.3.bb
new file mode 100644
index 0000000..e14f28a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-parso_0.8.3.bb
@@ -0,0 +1,17 @@
+SUMMARY = "A Python Parser"
+HOMEPAGE = "https://github.com/davidhalter/parso"
+AUTHOR = "David Halter <davidhalter88@gmail.com>"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cbaa2675b2424d771451332a7a69503f"
+
+PYPI_PACKAGE = "parso"
+
+SRC_URI[sha256sum] = "8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"
+
+inherit setuptools3 pypi
+
+RDEPENDS:${PN} = " \
+	${PYTHON_PN}-crypt \
+	${PYTHON_PN}-difflib \
+	${PYTHON_PN}-logging \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_8.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_8.3.2.bb
deleted file mode 100644
index 68b80a7..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_8.3.2.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "Python Imaging Library (Fork). Pillow is the friendly PIL fork by Alex \
-Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and \
-Contributors."
-HOMEPAGE = "https://pillow.readthedocs.io"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0337b116233da4616ae9fdb130bf6f1a"
-
-SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=8.3.x \
-           file://0001-support-cross-compiling.patch \
-           file://0001-explicitly-set-compile-options.patch \
-"
-SRCREV ?= "8013f130a5077b238a4346b73e149432b180a8ea"
-
-inherit setuptools3
-
-DEPENDS += " \
-    zlib \
-    jpeg \
-    tiff \
-    freetype \
-    lcms \
-    openjpeg \
-"
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-misc \
-    ${PYTHON_PN}-logging \
-    ${PYTHON_PN}-numbers \
-"
-
-CVE_PRODUCT = "pillow"
-
-S = "${WORKDIR}/git"
-
-RPROVIDES:${PN} += "python3-imaging"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.0.0.bb
new file mode 100644
index 0000000..de3c92c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.0.0.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Python Imaging Library (Fork). Pillow is the friendly PIL fork by Alex \
+Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and \
+Contributors."
+HOMEPAGE = "https://pillow.readthedocs.io"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ad081a0aede51e89f8da13333a8fb849"
+
+SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=9.0.x;protocol=https \
+           file://0001-support-cross-compiling.patch \
+           file://0001-explicitly-set-compile-options.patch \
+"
+SRCREV ?= "82541b6dec8452cb612067fcebba1c5a1a2bfdc8"
+
+inherit setuptools3
+
+DEPENDS += " \
+    zlib \
+    jpeg \
+    tiff \
+    freetype \
+    lcms \
+    openjpeg \
+"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-misc \
+    ${PYTHON_PN}-logging \
+    ${PYTHON_PN}-numbers \
+"
+
+CVE_PRODUCT = "pillow"
+
+S = "${WORKDIR}/git"
+
+RPROVIDES:${PN} += "python3-imaging"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.17.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.17.bb
deleted file mode 100644
index 6642f4b..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.17.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Physical quantities module"
-DESCRIPTION = "Physical quantities Python module"
-HOMEPAGE = "https://github.com/hgrecco/pint"
-SECTION = "devel/python"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bccf824202692270a1e0829a62e3f47b"
-
-PYPI_PACKAGE := "Pint"
-
-inherit pypi ptest setuptools3
-
-SRC_URI[sha256sum] = "f4d0caa713239e6847a7c6eefe2427358566451fe56497d533f21fb590a3f313"
-
-DEPENDS += "python3-setuptools-scm-native"
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
-	file://run-ptest \
-"
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-setuptools \
-    ${PYTHON_PN}-packaging \
-"
-
-RDEPENDS:${PN}-ptest += " \
-	${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/testsuite
-	cp -rf ${S}/pint/testsuite/* ${D}${PTEST_PATH}/testsuite/
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.18.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.18.bb
new file mode 100644
index 0000000..a7a1384
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.18.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Physical quantities module"
+DESCRIPTION = "Physical quantities Python module"
+HOMEPAGE = "https://github.com/hgrecco/pint"
+SECTION = "devel/python"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bccf824202692270a1e0829a62e3f47b"
+
+PYPI_PACKAGE := "Pint"
+
+inherit pypi ptest setuptools3
+
+SRC_URI[sha256sum] = "8c4bce884c269051feb7abc69dbfd18403c0c764abc83da132e8a7222f8ba801"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+	file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-setuptools \
+    ${PYTHON_PN}-packaging \
+"
+
+RDEPENDS:${PN}-ptest += " \
+	${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+	install -d ${D}${PTEST_PATH}/testsuite
+	cp -rf ${S}/pint/testsuite/* ${D}${PTEST_PATH}/testsuite/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb
index 2377bd5..d66ef0e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb
@@ -1,7 +1,7 @@
 DESCRIPTION = "POSIX IPC primitives (semaphores, shared memory and message queues) for Python"
 HOMEPAGE = "http://semanchuk.com/philip/posix_ipc/"
 SECTION = "devel/python"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=dc089fb2f37e90799a54c19a20c9880f"
 
 PYPI_PACKAGE = "posix_ipc"
@@ -13,13 +13,3 @@
 SRC_URI[sha256sum] = "6cddb1ce2cf4aae383f2a0079c26c69bee257fe2720f372201ef047f8ceb8b97"
 
 inherit setuptools3 pypi
-
-# DEPENDS_default: python-pip
-
-DEPENDS += " \
-        ${PYTHON_PN}-pip \
-        "
-
-# RDEPENDS:default:
-RDEPENDS:${PN} += " \
-        "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
index b87a470..8426e48 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
@@ -13,7 +13,7 @@
 SRCREV = "5e12e398eb5c4e30d7b29b02458c76d2cc780700"
 PV = "1.8.1+git${SRCPV}"
 
-SRC_URI = "git://github.com/seveas/python-prctl;branch=main\
+SRC_URI = "git://github.com/seveas/python-prctl;protocol=https;branch=main \
            file://0001-support-cross-complication.patch \
 "
 inherit setuptools3 python3native
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.2.1.bb
deleted file mode 100644
index b9050cc..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.2.1.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Python library for displaying tabular data in a ASCII table format"
-HOMEPAGE = "http://code.google.com/p/prettytable"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c9a6829fcd174d9535b46211917c7671"
-
-SRC_URI[sha256sum] = "6d465005573a5c058d4ca343449a5b28c21252b86afcdfa168cdc6a440f0b24c"
-
-do_install:append() {
-    perm_files=`find "${D}${PYTHON_SITEPACKAGES_DIR}/" -name "*.txt" -o -name "PKG-INFO"`
-    for f in $perm_files; do
-        chmod 644 "${f}"
-    done
-}
-
-UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/PrettyTable/"
-UPSTREAM_CHECK_REGEX = "/PrettyTable/(?P<pver>(\d+[\.\-_]*)+)"
-
-BBCLASSEXTEND = "native nativesdk"
-inherit pypi ptest setuptools3
-
-SRC_URI += " \
-	file://run-ptest \
-"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-RDEPENDS:${PN} += " \
-	${PYTHON_PN}-math \
-	${PYTHON_PN}-html \
-	${PYTHON_PN}-wcwidth \
-	${PYTHON_PN}-json \
-	${PYTHON_PN}-compression \
-	${PYTHON_PN}-importlib-metadata \
-"
-
-RDEPENDS:${PN}-ptest += " \
-    ${PYTHON_PN}-pytest \
-    ${PYTHON_PN}-sqlite3 \
-"
-
-do_install_ptest() {
-	cp -f ${S}/tests/test_prettytable.py ${D}${PTEST_PATH}/
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.4.0.bb
new file mode 100644
index 0000000..8f5eb42
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.4.0.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Python library for displaying tabular data in a ASCII table format"
+HOMEPAGE = "http://code.google.com/p/prettytable"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c9a6829fcd174d9535b46211917c7671"
+
+SRC_URI[sha256sum] = "18e56447f636b447096977d468849c1e2d3cfa0af8e7b5acfcf83a64790c0aca"
+
+do_install:append() {
+    perm_files=`find "${D}${PYTHON_SITEPACKAGES_DIR}/" -name "*.txt" -o -name "PKG-INFO"`
+    for f in $perm_files; do
+        chmod 644 "${f}"
+    done
+}
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/PrettyTable/"
+UPSTREAM_CHECK_REGEX = "/PrettyTable/(?P<pver>(\d+[\.\-_]*)+)"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi ptest setuptools3
+
+SRC_URI += " \
+	file://run-ptest \
+"
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
+RDEPENDS:${PN} += " \
+	${PYTHON_PN}-math \
+	${PYTHON_PN}-html \
+	${PYTHON_PN}-wcwidth \
+	${PYTHON_PN}-json \
+	${PYTHON_PN}-compression \
+	${PYTHON_PN}-importlib-metadata \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    ${PYTHON_PN}-pytest \
+    ${PYTHON_PN}-sqlite3 \
+"
+
+do_install_ptest() {
+	cp -f ${S}/tests/test_prettytable.py ${D}${PTEST_PATH}/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.21.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.21.bb
deleted file mode 100644
index e0d379d0..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.21.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Library for building powerful interactive command lines in Python"
-HOMEPAGE = "https://python-prompt-toolkit.readthedocs.io/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b2cde7da89f0c1f3e49bf968d00d554f"
-
-SRC_URI[sha256sum] = "27f13ff4e4850fe8f860b77414c7880f67c6158076a7b099062cc8570f1562e5"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "prompt_toolkit"
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-core \
-    ${PYTHON_PN}-six \
-    ${PYTHON_PN}-terminal \
-    ${PYTHON_PN}-threading \
-    ${PYTHON_PN}-wcwidth \
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-shell \
-    ${PYTHON_PN}-image \
-    ${PYTHON_PN}-asyncio \
-    ${PYTHON_PN}-xml \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.24.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.24.bb
new file mode 100644
index 0000000..9a6798a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.24.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Library for building powerful interactive command lines in Python"
+HOMEPAGE = "https://python-prompt-toolkit.readthedocs.io/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b2cde7da89f0c1f3e49bf968d00d554f"
+
+SRC_URI[sha256sum] = "1bb05628c7d87b645974a1bad3f17612be0c29fa39af9f7688030163f680bad6"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "prompt_toolkit"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-core \
+    ${PYTHON_PN}-six \
+    ${PYTHON_PN}-terminal \
+    ${PYTHON_PN}-threading \
+    ${PYTHON_PN}-wcwidth \
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-shell \
+    ${PYTHON_PN}-image \
+    ${PYTHON_PN}-asyncio \
+    ${PYTHON_PN}-xml \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.18.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.18.1.bb
deleted file mode 100644
index 8ecb3ab..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.18.1.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-DESCRIPTION = "Protocol Buffers"
-HOMEPAGE = "https://developers.google.com/protocol-buffers/"
-SECTION = "devel/python"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=19e8f490f9526b1de84f8d949cfcfd4e"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "1c9bb40503751087300dd12ce2e90899d68628977905c76effc48e66d089391e"
-
-# http://errors.yoctoproject.org/Errors/Details/184715/
-# Can't find required file: ../src/google/protobuf/descriptor.proto
-CLEANBROKEN = "1"
-
-UPSTREAM_CHECK_REGEX = "protobuf/(?P<pver>\d+(\.\d+)+)/"
-
-DEPENDS += "protobuf"
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-logging \
-    ${PYTHON_PN}-netclient \
-    ${PYTHON_PN}-numbers \
-    ${PYTHON_PN}-pkgutil \
-    ${PYTHON_PN}-six \
-    ${PYTHON_PN}-unittest \
-"
-
-# For usage in other recipies when compiling protobuf files (e.g. by grpcio-tools)
-BBCLASSEXTEND = "native nativesdk"
-
-DISTUTILS_BUILD_ARGS += "--cpp_implementation"
-DISTUTILS_INSTALL_ARGS += "--cpp_implementation"
-
-do_compile:prepend:class-native () {
-    export KOKORO_BUILD_NUMBER="1"
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.19.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.19.3.bb
new file mode 100644
index 0000000..5e0ee7c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.19.3.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "Protocol Buffers"
+HOMEPAGE = "https://developers.google.com/protocol-buffers/"
+SECTION = "devel/python"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=19e8f490f9526b1de84f8d949cfcfd4e"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "d975a6314fbf5c524d4981e24294739216b5fb81ef3c14b86fb4b045d6690907"
+
+# http://errors.yoctoproject.org/Errors/Details/184715/
+# Can't find required file: ../src/google/protobuf/descriptor.proto
+CLEANBROKEN = "1"
+
+UPSTREAM_CHECK_REGEX = "protobuf/(?P<pver>\d+(\.\d+)+)/"
+
+DEPENDS += "protobuf"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-logging \
+    ${PYTHON_PN}-netclient \
+    ${PYTHON_PN}-numbers \
+    ${PYTHON_PN}-pkgutil \
+    ${PYTHON_PN}-six \
+    ${PYTHON_PN}-unittest \
+"
+
+# For usage in other recipies when compiling protobuf files (e.g. by grpcio-tools)
+BBCLASSEXTEND = "native nativesdk"
+
+DISTUTILS_BUILD_ARGS += "--cpp_implementation"
+DISTUTILS_INSTALL_ARGS += "--cpp_implementation"
+
+do_compile:prepend:class-native () {
+    export KOKORO_BUILD_NUMBER="1"
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.8.0.bb
deleted file mode 100644
index 7186d3c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.8.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "A cross-platform process and system utilities module for Python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e35fd9f271d19d5f742f20a9d1f8bb8b"
-
-SRC_URI[sha256sum] = "0c9ccb99ab76025f2f0bbecf341d4656e9c1351db8cc8a03ccd62e318ab4b5c6"
-
-inherit pypi setuptools3
-
-PACKAGES =+ "${PN}-tests"
-
-FILES:${PN}-tests += " \
-    ${PYTHON_SITEPACKAGES_DIR}/psutil/test* \
-    ${PYTHON_SITEPACKAGES_DIR}/psutil/__pycache__/test* \
-"
-
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-shell \
-    ${PYTHON_PN}-threading \
-    ${PYTHON_PN}-xml \
-    ${PYTHON_PN}-netclient \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.9.0.bb
new file mode 100644
index 0000000..cf3e0b3
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.9.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "A cross-platform process and system utilities module for Python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e35fd9f271d19d5f742f20a9d1f8bb8b"
+
+SRC_URI[sha256sum] = "869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25"
+
+inherit pypi setuptools3
+
+PACKAGES =+ "${PN}-tests"
+
+FILES:${PN}-tests += " \
+    ${PYTHON_SITEPACKAGES_DIR}/psutil/test* \
+    ${PYTHON_SITEPACKAGES_DIR}/psutil/__pycache__/test* \
+"
+
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-shell \
+    ${PYTHON_PN}-threading \
+    ${PYTHON_PN}-xml \
+    ${PYTHON_PN}-netclient \
+    ${PYTHON_PN}-ctypes \
+    ${PYTHON_PN}-resource \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.1.bb
deleted file mode 100644
index 8ae9ac9..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Python bindings for DBus AT-SPI2 accessibility"
-DESCRIPTION = "AT-SPI2 is a protocol over DBus, toolkit widgets use to provide content to screen readers such as Orca"
-SECTION = "devel/python"
-HOMEPAGE = "https://www.freedesktop.org/wiki/Accessibility/AT-SPI2/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=db29218e6ba3794c56df7d4987dc7e4d \
-                    file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS = "python3-dbus-native glib-2.0 dbus-glib libxml2 atk gtk+ python3-pygobject"
-
-SRC_URI = "git://github.com/GNOME/pyatspi2.git;protocol=https;branch=master"
-SRCREV = "6d5f47ee8e8a36140b52bf52fe954a131a0aa5dd"
-
-S = "${WORKDIR}/git" 
-
-# Same restriction as gtk+
-inherit features_check
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-
-inherit pkgconfig autotools python3native
-
-FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}/pyatspi/*"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.2.bb
new file mode 100644
index 0000000..d67975b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Python bindings for DBus AT-SPI2 accessibility"
+DESCRIPTION = "AT-SPI2 is a protocol over DBus, toolkit widgets use to provide content to screen readers such as Orca"
+SECTION = "devel/python"
+HOMEPAGE = "https://www.freedesktop.org/wiki/Accessibility/AT-SPI2/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=db29218e6ba3794c56df7d4987dc7e4d \
+                    file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
+DEPENDS = "python3-dbus-native glib-2.0 dbus-glib libxml2 atk gtk+ python3-pygobject"
+
+SRC_URI = "git://github.com/GNOME/pyatspi2.git;protocol=https;branch=master"
+SRCREV = "141a53029b3e16bfa5f100ae54a77234a9bf3426"
+
+S = "${WORKDIR}/git" 
+
+# Same restriction as gtk+
+inherit features_check setuptools3
+ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
+
+inherit pkgconfig autotools python3native
+
+FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}/pyatspi/*"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.11.bb
index 8384471..e06579a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.11.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.11.bb
@@ -3,7 +3,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0e25ff0ec476d06d366439e1120cce98"
 
 SRCREV = "0fbbe3bbb27bd07a5ec7d71cbb1f17eaf4d37702"
-SRC_URI = "git://github.com/pybind/pybind11_json"
+SRC_URI = "git://github.com/pybind/pybind11_json;branch=master;protocol=https"
 
 DEPENDS += "nlohmann-json python3-pybind11"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.7.0.bb
deleted file mode 100644
index 348af6e..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.7.0.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Seamless operability between C++11 and Python"
-HOMEPAGE = "https://github.com/wjakob/pybind11"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=774f65abd8a7fe3124be2cdf766cd06f"
-
-DEPENDS = "boost"
-
-SRC_URI = "git://github.com/pybind/pybind11.git \
-           file://0001-Do-not-strip-binaries.patch \
-           file://0001-Do-not-check-pointer-size-when-cross-compiling.patch \
-"
-SRCREV = "65e95ea8675ea34bdd566d6461330f25c651e5a8"
-
-S = "${WORKDIR}/git"
-
-BBCLASSEXTEND = "native"
-
-EXTRA_OECMAKE =  "-DPYBIND11_TEST=OFF"
-
-inherit cmake setuptools3 python3native
-
-do_configure() {
-	cmake_do_configure
-}
-
-do_compile() {
-	distutils3_do_compile
-	cmake_do_compile
-}
-
-do_install() {
-	distutils3_do_install
-	cmake_do_install
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.8.1.bb
new file mode 100644
index 0000000..dfacb41
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.8.1.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Seamless operability between C++11 and Python"
+HOMEPAGE = "https://github.com/wjakob/pybind11"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=774f65abd8a7fe3124be2cdf766cd06f"
+
+DEPENDS = "boost"
+
+SRC_URI = "git://github.com/pybind/pybind11.git;branch=master;protocol=https \
+           file://0001-Do-not-strip-binaries.patch \
+           file://0001-Do-not-check-pointer-size-when-cross-compiling.patch \
+"
+SRCREV = "f7b499615e14d70ab098a20deb0cdb3889998a1a"
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
+
+EXTRA_OECMAKE =  "-DPYBIND11_TEST=OFF"
+
+inherit cmake setuptools3 python3native
+
+do_configure() {
+	cmake_do_configure
+}
+
+do_compile() {
+	setuptools3_do_compile
+	cmake_do_compile
+}
+
+do_install() {
+	setuptools3_do_install
+	cmake_do_install
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_10.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_10.2.3.bb
new file mode 100644
index 0000000..9bd0379
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_10.2.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Library for Python 3.6+ to communicate with the Google Chromecast."
+HOMEPAGE = "https://github.com/balloob/pychromecast"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5"
+
+SRC_URI[sha256sum] = "ddb86c5acdc13e8bdadd2b7f5738fda36b32c1750548f7b629ca8d178f05e0da"
+
+PYPI_PACKAGE = "PyChromecast"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-logging \
+    ${PYTHON_PN}-zeroconf \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-requests \
+    ${PYTHON_PN}-protobuf \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.3.1.bb
deleted file mode 100644
index 77b032a..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.3.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Library for Python 3.6+ to communicate with the Google Chromecast."
-HOMEPAGE = "https://github.com/balloob/pychromecast"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5"
-
-SRC_URI[sha256sum] = "a1d6807ae0fc455aaeecd2def87c31bb86679a2920cacfa7910db9c9db5085d4"
-
-PYPI_PACKAGE = "PyChromecast"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-logging \
-    ${PYTHON_PN}-zeroconf \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-requests \
-    ${PYTHON_PN}-protobuf \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycocotools_2.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycocotools_2.0.2.bb
deleted file mode 100644
index d47b7b5..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycocotools_2.0.2.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "COCO is a large image dataset designed for object detection, segmentation, \
-           person keypoints detection, stuff segmentation, and caption generation."
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://pycocotools/coco.py;beginline=45;endline=45;md5=12cb539683cf245df8b6ce782d78f647"
-
-inherit setuptools3 pypi
-
-SRC_URI[md5sum] = "33858f23c8b99ce8116b70c32f6b6dd9"
-SRC_URI[sha256sum] = "24717a12799b4471c2e54aa210d642e6cd4028826a1d49fcc2b0e3497e041f1a"
-
-DEPENDS = "python3-cython-native python3-numpy-native virtual/crypt"
-RDEPENDS:${PN} = "python3-matplotlib python3-pillow python3-profile"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycocotools_2.0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycocotools_2.0.4.bb
new file mode 100644
index 0000000..ec8585e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycocotools_2.0.4.bb
@@ -0,0 +1,11 @@
+SUMMARY = "COCO is a large image dataset designed for object detection, segmentation, \
+           person keypoints detection, stuff segmentation, and caption generation."
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://pycocotools/coco.py;beginline=45;endline=45;md5=12cb539683cf245df8b6ce782d78f647"
+
+inherit setuptools3 pypi
+
+SRC_URI[sha256sum] = "2ab586aa389b9657b6d73c2b9a827a3681f8d00f36490c2e8ab05902e3fd9e93"
+
+DEPENDS = "python3-cython-native python3-numpy-native virtual/crypt"
+RDEPENDS:${PN} = "python3-matplotlib python3-pillow python3-profile"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.20.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.20.bb
deleted file mode 100644
index 845a9fa..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.20.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Parser of the C language, written in pure Python"
-HOMEPAGE = "https://github.com/eliben/pycparser"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86f1cedb4e6410a88ce8e30b91079169"
-
-SRC_URI[md5sum] = "b8f88de737db8c346ee8d31c07c7a25a"
-SRC_URI[sha256sum] = "2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
-
-RDEPENDS:${PN}:class-target += "\
-    ${PYTHON_PN}-netclient \
-    ${PYTHON_PN}-ply \
-    ${PYTHON_PN}-pprint \
-    cpp \
-    cpp-symlinks \
-    "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.21.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.21.bb
new file mode 100644
index 0000000..53b7367
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.21.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Parser of the C language, written in pure Python"
+HOMEPAGE = "https://github.com/eliben/pycparser"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2c28cdeabcb88f5843d934381b4b4fea"
+
+SRC_URI[sha256sum] = "e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN}:class-target += "\
+    ${PYTHON_PN}-netclient \
+    ${PYTHON_PN}-ply \
+    ${PYTHON_PN}-pprint \
+    "
+
+RSUGGESTS:${PN}:class-target += "\
+    cpp \
+    cpp-symlinks \
+    "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycrypto/0001-Replace-time.clock-with-time.process_time.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycrypto/0001-Replace-time.clock-with-time.process_time.patch
deleted file mode 100644
index 282fdd3..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycrypto/0001-Replace-time.clock-with-time.process_time.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 1d90727ff2368012d6e2f91b1a3198f626495b7f Mon Sep 17 00:00:00 2001
-From: Ming Liu <liu.ming50@gmail.com>
-Date: Sat, 25 Jan 2020 14:36:16 +0100
-Subject: [PATCH] Replace time.clock() with time.process_time()
-
-The use of time.clock() is deprecated in python 3.8, change to use
-time.process_time().
-
-Reference:
-https://docs.python.org/3.3/library/time.html#time.clock
-
-Upstream-Status: Pending
-
-Signed-off-by: Ming Liu <liu.ming50@gmail.com>
----
- lib/Crypto/Random/_UserFriendlyRNG.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/Crypto/Random/_UserFriendlyRNG.py b/lib/Crypto/Random/_UserFriendlyRNG.py
-index 957e006..d2a0259 100644
---- a/lib/Crypto/Random/_UserFriendlyRNG.py
-+++ b/lib/Crypto/Random/_UserFriendlyRNG.py
-@@ -74,7 +74,7 @@ class _EntropyCollector(object):
-         self._time_es.feed(struct.pack("@I", int(2**30 * (t - floor(t)))))
- 
-         # Add the fractional part of time.clock()
--        t = time.clock()
-+        t = time.process_time()
-         self._clock_es.feed(struct.pack("@I", int(2**30 * (t - floor(t)))))
- 
- 
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycrypto/CVE-2013-7459.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycrypto/CVE-2013-7459.patch
deleted file mode 100644
index 9006c5c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycrypto/CVE-2013-7459.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 8dbe0dc3eea5c689d4f76b37b93fe216cf1f00d4 Mon Sep 17 00:00:00 2001
-From: Legrandin <helderijs@gmail.com>
-Date: Sun, 22 Dec 2013 22:24:46 +0100
-Subject: [PATCH] Throw exception when IV is used with ECB or CTR
-
-The IV parameter is currently ignored when initializing
-a cipher in ECB or CTR mode.
-
-For CTR mode, it is confusing: it takes some time to see
-that a different parameter is needed (the counter).
-
-For ECB mode, it is outright dangerous.
-
-This patch forces an exception to be raised.
-
-Upstream-Status: Backport
-[https://github.com/dlitz/pycrypto/commit/8dbe0dc3eea5c689d4f76b37b93fe216cf1f00d4]
-
-CVE: CVE-2013-7459
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- lib/Crypto/SelfTest/Cipher/common.py | 31 +++++++++++++++++++++++--------
- src/block_template.c                 | 11 +++++++++++
- 2 files changed, 34 insertions(+), 8 deletions(-)
-
-diff --git a/lib/Crypto/SelfTest/Cipher/common.py b/lib/Crypto/SelfTest/Cipher/common.py
-index 8bebed9..91ec743 100644
---- a/lib/Crypto/SelfTest/Cipher/common.py
-+++ b/lib/Crypto/SelfTest/Cipher/common.py
-@@ -239,19 +239,34 @@ class RoundtripTest(unittest.TestCase):
-         return """%s .decrypt() output of .encrypt() should not be garbled""" % (self.module_name,)
- 
-     def runTest(self):
--        for mode in (self.module.MODE_ECB, self.module.MODE_CBC, self.module.MODE_CFB, self.module.MODE_OFB, self.module.MODE_OPENPGP):
-+
-+        ## ECB mode
-+        mode = self.module.MODE_ECB
-+        encryption_cipher = self.module.new(a2b_hex(self.key), mode)
-+        ciphertext = encryption_cipher.encrypt(self.plaintext)
-+        decryption_cipher = self.module.new(a2b_hex(self.key), mode)
-+        decrypted_plaintext = decryption_cipher.decrypt(ciphertext)
-+        self.assertEqual(self.plaintext, decrypted_plaintext)
-+
-+        ## OPENPGP mode
-+        mode = self.module.MODE_OPENPGP
-+        encryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
-+        eiv_ciphertext = encryption_cipher.encrypt(self.plaintext)
-+        eiv = eiv_ciphertext[:self.module.block_size+2]
-+        ciphertext = eiv_ciphertext[self.module.block_size+2:]
-+        decryption_cipher = self.module.new(a2b_hex(self.key), mode, eiv)
-+        decrypted_plaintext = decryption_cipher.decrypt(ciphertext)
-+        self.assertEqual(self.plaintext, decrypted_plaintext)
-+
-+        ## All other non-AEAD modes (but CTR)
-+        for mode in (self.module.MODE_CBC, self.module.MODE_CFB, self.module.MODE_OFB):
-             encryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
-             ciphertext = encryption_cipher.encrypt(self.plaintext)
--            
--            if mode != self.module.MODE_OPENPGP:
--                decryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
--            else:
--                eiv = ciphertext[:self.module.block_size+2]
--                ciphertext = ciphertext[self.module.block_size+2:]
--                decryption_cipher = self.module.new(a2b_hex(self.key), mode, eiv)
-+            decryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
-             decrypted_plaintext = decryption_cipher.decrypt(ciphertext)
-             self.assertEqual(self.plaintext, decrypted_plaintext)
- 
-+
- class PGPTest(unittest.TestCase):
-     def __init__(self, module, params):
-         unittest.TestCase.__init__(self)
-diff --git a/src/block_template.c b/src/block_template.c
-index c36b316..8746948 100644
---- a/src/block_template.c
-+++ b/src/block_template.c
-@@ -170,6 +170,17 @@ ALGnew(PyObject *self, PyObject *args, PyObject *kwdict)
- 				"Key cannot be the null string");
- 		return NULL;
- 	}
-+	if (IVlen != 0 && mode == MODE_ECB)
-+	{
-+		PyErr_Format(PyExc_ValueError, "ECB mode does not use IV");
-+		return NULL;
-+	}
-+	if (IVlen != 0 && mode == MODE_CTR)
-+	{
-+		PyErr_Format(PyExc_ValueError,
-+			"CTR mode needs counter parameter, not IV");
-+		return NULL;
-+	}
- 	if (IVlen != BLOCK_SIZE && mode != MODE_ECB && mode != MODE_CTR)
- 	{
- 		PyErr_Format(PyExc_ValueError,
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycrypto/cross-compiling.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycrypto/cross-compiling.patch
deleted file mode 100644
index 712f3e8..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycrypto/cross-compiling.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Index: pycrypto-2.6/setup.py
-===================================================================
---- pycrypto-2.6.orig/setup.py
-+++ pycrypto-2.6/setup.py
-@@ -271,7 +271,8 @@ class PCTBuildConfigure(Command):
-         if not os.path.exists("config.status"):
-             if os.system("chmod 0755 configure") != 0:
-                 raise RuntimeError("chmod error")
--            cmd = "sh configure"    # we use "sh" here so that it'll work on mingw32 with standard python.org binaries
-+            host = os.environ.get("HOST_SYS")
-+            cmd = "ac_cv_func_malloc_0_nonnull=yes sh configure --host " + host   # we use "sh" here so that it'll work on mingw32 with standard python.org binaries
-             if self.verbose < 1:
-                 cmd += " -q"
-             if os.system(cmd) != 0:
-@@ -370,7 +371,7 @@ kw = {'name':"pycrypto",
-       'ext_modules': plat_ext + [
-             # _fastmath (uses GNU mp library)
-             Extension("Crypto.PublicKey._fastmath",
--                      include_dirs=['src/','/usr/include/'],
-+                      include_dirs=['src/'],
-                       libraries=['gmp'],
-                       sources=["src/_fastmath.c"]),
- 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycrypto_2.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycrypto_2.6.1.bb
deleted file mode 100644
index 78a1ef2..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycrypto_2.6.1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-DESCRIPTION = "Cryptographic modules for Python."
-HOMEPAGE = "http://www.pycrypto.org/"
-LICENSE = "PSFv2"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=35f354d199e8cb7667b059a23578e63d"
-
-DEPENDS += " gmp"
-
-export HOST_SYS
-
-inherit pypi autotools-brokensep distutils3
-
-SRC_URI += "file://cross-compiling.patch \
-            file://CVE-2013-7459.patch \
-            file://0001-Replace-time.clock-with-time.process_time.patch \
-           "
-
-SRC_URI[md5sum] = "55a61a054aa66812daf5161a0d5d7eda"
-SRC_URI[sha256sum] = "f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c"
-
-do_compile[noexec] = "1"
-
-# We explicitly call distutils_do_install, since we want it to run, but
-# *don't* want the autotools install to run, since this package doesn't
-# provide a "make install" target.
-do_install() {
-       distutils3_do_install
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus-manager_git.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus-manager_git.bb
index 526d622..796f721 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus-manager_git.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus-manager_git.bb
@@ -6,7 +6,7 @@
 
 inherit setuptools3
 
-SRC_URI = "git://github.com/seebz/pydbus-manager.git"
+SRC_URI = "git://github.com/seebz/pydbus-manager.git;branch=master;protocol=https"
 SRCREV = "6b576b969cbda50521dca62a7df929167207f9fc"
 PV = "git${SRCPV}"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydicti_1.1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydicti_1.1.4.bb
deleted file mode 100644
index 29ad30e..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydicti_1.1.4.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Case insensitive derivable dictionary"
-HOMEPAGE = "https://github.com/coldfix/pydicti"
-LICENSE = "WTFPL"
-LIC_FILES_CHKSUM = "file://COPYING;md5=389a9e29629d1f05e115f8f05c283df5"
-
-SRC_URI[md5sum] = "c8925e333a78766cb469c1626880bd35"
-SRC_URI[sha256sum] = "dcea4d1892fc68ca62aba835b1ed444a1eb48bd0cca0b4599efd45cbb6272b5c"
-
-inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydicti_1.1.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydicti_1.1.6.bb
new file mode 100644
index 0000000..17c5288
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydicti_1.1.6.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Case insensitive derivable dictionary"
+HOMEPAGE = "https://github.com/coldfix/pydicti"
+LICENSE = "WTFPL"
+LIC_FILES_CHKSUM = "file://COPYING;md5=389a9e29629d1f05e115f8f05c283df5"
+
+SRC_URI[sha256sum] = "32eb329de2023c92158ac6c2d67837adf96195f188ba8d768b3248a0218b5a65"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.2.bb
deleted file mode 100644
index 056ecb5..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.2.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Hamcrest framework for matcher objects"
-HOMEPAGE = "https://github.com/hamcrest/PyHamcrest"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=79391bf1501c898472d043f36e960612"
-
-PYPI_PACKAGE = "PyHamcrest"
-
-SRC_URI[md5sum] = "7a086f0b067f8d38958ec32f054559b4"
-SRC_URI[sha256sum] = "412e00137858f04bde0729913874a48485665f2d36fe9ee449f26be864af9316"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "${PYTHON_PN}-six"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.3.bb
new file mode 100644
index 0000000..7c0824c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.3.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Hamcrest framework for matcher objects"
+HOMEPAGE = "https://github.com/hamcrest/PyHamcrest"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=79391bf1501c898472d043f36e960612"
+
+PYPI_PACKAGE = "PyHamcrest"
+
+SRC_URI[sha256sum] = "dfb19cf6d71743e086fbb761ed7faea5aacbc8ec10c17a08b93ecde39192a3db"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "${PYTHON_PN}-six"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.9.0.bb
new file mode 100644
index 0000000..02e8935
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.9.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Python library to talk to the met.no api"
+HOMEPAGE = "https://github.com/Danielhiversen/pyMetno"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5d503272f52c35147ec960cb56a03bf4"
+
+SRC_URI = "git://github.com/Danielhiversen/pyMetno.git;protocol=https;branch=master"
+SRCREV = "3b18971fb882deaaebb9aa511627c5fc6fb97526"
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+RDEPENDS:${PN} = "\
+	${PYTHON_PN}-aiohttp (>=3.6.1) \
+	${PYTHON_PN}-async-timeout (>=3.0.1) \
+	${PYTHON_PN}-pytz (>=2019.3) \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.148.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.148.bb
deleted file mode 100644
index e091e87..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.148.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "Python API for MISP"
-HOMEPAGE = "https://github.com/MISP/PyMISP"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
-
-SRC_URI = "git://github.com/MISP/PyMISP.git;protocol=https;branch=main"
-SRCREV = "6f7157cf26a6b4ec102021c8f1197a40380b12e3"
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-dateutil \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-jsonschema \
-    ${PYTHON_PN}-requests \
-    ${PYTHON_PN}-six \
-    ${PYTHON_PN}-deprecated \
-    ${PYTHON_PN}-wrapt \
-"
-
-# Fixes: python3-pymisp requires /bin/bash, but no
-# providers found in RDEPENDS:python3-pymisp? [file-rdep]
-RDEPENDS:${PN} += "bash"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.152.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.152.bb
new file mode 100644
index 0000000..254330b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.152.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Python API for MISP"
+HOMEPAGE = "https://github.com/MISP/PyMISP"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
+
+SRC_URI = "git://github.com/MISP/PyMISP.git;protocol=https;branch=main"
+SRCREV = "d991e53f9a9641f454e116e83d2913edf405a53f"
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-dateutil \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-jsonschema \
+    ${PYTHON_PN}-requests \
+    ${PYTHON_PN}-six \
+    ${PYTHON_PN}-deprecated \
+    ${PYTHON_PN}-wrapt \
+"
+
+# Fixes: python3-pymisp requires /bin/bash, but no
+# providers found in RDEPENDS:python3-pymisp? [file-rdep]
+RDEPENDS:${PN} += "bash"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.12.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.12.0.bb
deleted file mode 100644
index 17975ff..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.12.0.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Python driver for MongoDB <http://www.mongodb.org>"
-DESCRIPTION = "\
-The PyMongo distribution contains tools for interacting with MongoDB \
-database from Python. The bson package is an implementation of the BSON \
-format for Python. The pymongo package is a native Python driver for \
-MongoDB. The gridfs package is a gridfs implementation on top of pymongo."
-HOMEPAGE = "http://github.com/mongodb/mongo-python-driver"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-SRC_URI[sha256sum] = "b88d1742159bc93a078733f9789f563cef26f5e370eba810476a71aa98e5fbc2"
-
-inherit pypi setuptools3
-
-PACKAGES =+ "${PYTHON_PN}-bson"
-
-FILES:${PYTHON_PN}-bson = "${PYTHON_SITEPACKAGES_DIR}/bson/*"
-
-RDEPENDS:${PYTHON_PN}-bson += " \
-     ${PYTHON_PN}-datetime \
-     ${PYTHON_PN}-json \
-     ${PYTHON_PN}-netclient \
-     ${PYTHON_PN}-numbers \
-     ${PYTHON_PN}-threading \
-"
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-bson \
-    ${PYTHON_PN}-pprint \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.0.1.bb
new file mode 100644
index 0000000..8eb0833
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.0.1.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Python driver for MongoDB <http://www.mongodb.org>"
+DESCRIPTION = "\
+The PyMongo distribution contains tools for interacting with MongoDB \
+database from Python. The bson package is an implementation of the BSON \
+format for Python. The pymongo package is a native Python driver for \
+MongoDB. The gridfs package is a gridfs implementation on top of pymongo."
+HOMEPAGE = "http://github.com/mongodb/mongo-python-driver"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI[sha256sum] = "13d0624c13a91da71fa0d960205d93b3d98344481be865ee7cc238c972d41d73"
+
+inherit pypi setuptools3
+
+PACKAGES =+ "${PYTHON_PN}-bson"
+
+FILES:${PYTHON_PN}-bson = "${PYTHON_SITEPACKAGES_DIR}/bson/*"
+
+RDEPENDS:${PYTHON_PN}-bson += " \
+     ${PYTHON_PN}-datetime \
+     ${PYTHON_PN}-json \
+     ${PYTHON_PN}-netclient \
+     ${PYTHON_PN}-numbers \
+     ${PYTHON_PN}-threading \
+"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-bson \
+    ${PYTHON_PN}-pprint \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pynacl_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pynacl_1.4.0.bb
deleted file mode 100644
index b4a6b7a..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pynacl_1.4.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Python binding to the Networking and Cryptography (NaCl) library"
-DESCRIPTION = "Python binding to the Networking and Cryptography (NaCl) library"
-HOMEPAGE = "https://github.com/pyca/pynacl"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8cc789b082b3d97e1ccc5261f8594d3f"
-
-SRC_URI[md5sum] = "8c6c57893327a694c72510fb620e4744"
-SRC_URI[sha256sum] = "54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505"
-
-PYPI_PACKAGE = "PyNaCl"
-
-inherit pypi setuptools3
-
-DEPENDS += "\
-    ${PYTHON_PN}-wheel-native \
-    ${PYTHON_PN}-cffi-native \
-    libsodium \
-"
-
-RDEPENDS:${PN} = "\
-    ${PYTHON_PN}-six \
-    ${PYTHON_PN}-cffi \
-    libsodium \
-"
-
-do_compile:prepend() {
-    export SODIUM_INSTALL=system
-}
-
-do_install:prepend() {
-    export SODIUM_INSTALL=system
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb
new file mode 100644
index 0000000..10f624b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Python binding to the Networking and Cryptography (NaCl) library"
+DESCRIPTION = "Python binding to the Networking and Cryptography (NaCl) library"
+HOMEPAGE = "https://github.com/pyca/pynacl"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8cc789b082b3d97e1ccc5261f8594d3f"
+
+SRC_URI[sha256sum] = "8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba"
+
+PYPI_PACKAGE = "PyNaCl"
+
+inherit pypi setuptools3
+
+DEPENDS += "\
+    ${PYTHON_PN}-wheel-native \
+    ${PYTHON_PN}-cffi-native \
+    libsodium \
+"
+
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-six \
+    ${PYTHON_PN}-cffi \
+    libsodium \
+"
+
+do_compile:prepend() {
+    export SODIUM_INSTALL=system
+}
+
+do_install:prepend() {
+    export SODIUM_INSTALL=system
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.18.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.18.0.bb
deleted file mode 100644
index 0b4d256..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.18.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Persistent/Immutable/Functional data structures for Python"
-HOMEPAGE = "https://github.com/tobgu/pyrsistent"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.mit;md5=a4b94c2b800b582a8d3925a9939cbf44"
-
-SRC_URI[sha256sum] = "773c781216f8c2900b42a7b638d5b517bb134ae1acbebe4d1e8f1f41ea60eb4b"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-numbers \
-"
-
-BBCLASSEXTEND = "native nativesdk"
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.1.2.bb
new file mode 100644
index 0000000..dad18b7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb
@@ -0,0 +1,127 @@
+SUMMARY = "WSGI server implemented in Rust."
+DESCRIPTION = "Pyruvate is a reasonably fast, multithreaded, non-blocking \
+WSGI server implemented in Rust."
+HOMEPAGE = "https://gitlab.com/tschorr/pyruvate"
+BUGTRACKER = "https://gitlab.com/tschorr/pyruvate/-/issues"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=051b48e640a6e2d795eac75542d9417c \
+                    file://LICENSE.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI[sha256sum] = "10befedd97e73fc18b902d02aa3b24e8978aa162242c1b664849c886c0675899"
+
+S = "${WORKDIR}/pyruvate-${PV}"
+
+inherit pypi setuptools3_rust
+
+# crossbeam-* -> std::sync::atomic AtomicI64, AtomicU64
+# not supported on mips/powerpc with 32-bit pointers
+# https://doc.rust-lang.org/std/sync/atomic/#portability
+RUSTFLAGS:append:mips = " --cfg crossbeam_no_atomic_64"
+RUSTFLAGS:append:mipsel = " --cfg crossbeam_no_atomic_64"
+RUSTFLAGS:append:powerpc = " --cfg crossbeam_no_atomic_64"
+RUSTFLAGS:append:riscv32 = " --cfg crossbeam_no_atomic_64"
+
+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/bitflags/1.3.2 \
+    crate://crates.io/block-buffer/0.9.0 \
+    crate://crates.io/cc/1.0.72 \
+    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-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/crossbeam/0.8.1 \
+    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/encoding-index-japanese/1.20141219.5 \
+    crate://crates.io/encoding-index-korean/1.20141219.5 \
+    crate://crates.io/encoding-index-simpchinese/1.20141219.5 \
+    crate://crates.io/encoding-index-singlebyte/1.20141219.5 \
+    crate://crates.io/encoding-index-tradchinese/1.20141219.5 \
+    crate://crates.io/encoding/0.2.33 \
+    crate://crates.io/encoding_index_tests/0.1.4 \
+    crate://crates.io/env_logger/0.9.0 \
+    crate://crates.io/errno-dragonfly/0.1.2 \
+    crate://crates.io/errno/0.2.8 \
+    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/hermit-abi/0.1.19 \
+    crate://crates.io/hmac/0.11.0 \
+    crate://crates.io/httparse/1.5.1 \
+    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/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/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-syntax/0.6.25 \
+    crate://crates.io/regex/1.5.4 \
+    crate://crates.io/remove_dir_all/0.5.3 \
+    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/spmc/0.3.0 \
+    crate://crates.io/subtle/2.4.1 \
+    crate://crates.io/syn/1.0.85 \
+    crate://crates.io/tempfile/3.3.0 \
+    crate://crates.io/termcolor/1.1.2 \
+    crate://crates.io/thiserror-impl/1.0.30 \
+    crate://crates.io/thiserror/1.0.30 \
+    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/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/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 \
+"
+
+# The following configs & dependencies are from setuptools extras_require.
+# These dependencies are optional, hence can be controlled via PACKAGECONFIG.
+# The upstream names may not correspond exactly to bitbake package names.
+#
+# Uncomment this line to enable all the optional features.
+#PACKAGECONFIG ?= "test"
+PACKAGECONFIG[test] = ",,,python3-pytest python3-requests"
+
+# WARNING: the following rdepends are determined through basic analysis of the
+# python sources, and might not be 100% accurate.
+RDEPENDS:${PN} += "python3-core"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.1.bb
deleted file mode 100644
index 9769cd6..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Python project template generator with batteries included"
-DESCRIPTION = "PyScaffold package helps to setup a new Python project. \
-After installation, it provides a new command [putup], which could be \
-used to create template Projects."
-
-HOMEPAGE = "https://github.com/pyscaffold/pyscaffold"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "PyScaffold"
-
-SRC_URI[sha256sum] = "8972252fda90d1020a93f1e99db370c002d18f52ff2fca9c3cc2a0aee74d07ad"
-
-BBCLASSEXTEND = "native nativesdk"
-
-RDEPENDS:${PN} += " \
-	python3-email \
-	python3-compression \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.4.bb
new file mode 100644
index 0000000..7e5599e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.4.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Python project template generator with batteries included"
+DESCRIPTION = "PyScaffold package helps to setup a new Python project. \
+After installation, it provides a new command [putup], which could be \
+used to create template Projects."
+
+HOMEPAGE = "https://github.com/pyscaffold/pyscaffold"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "PyScaffold"
+
+SRC_URI[sha256sum] = "46a2bbdf255ba2efc6c56ae1428249b61d56c4a3e54ef3db0d05fa97792011a5"
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += " \
+	python3-email \
+	python3-compression \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.4.29.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.4.29.bb
index c1f9f96..0ee1bd6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.4.29.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.4.29.bb
@@ -8,6 +8,11 @@
 
 inherit pypi setuptools3
 
+# Workaround for network access issue during compile step
+# this needs to be fixed in the recipes buildsystem to move
+# this such that it can be accomplished during do_fetch task
+do_compile[network] = "1"
+
 DEPENDS += "\
     ${PYTHON_PN}-wheel-native \
     ${PYTHON_PN}-pip-native \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-subtests_0.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-subtests_0.5.0.bb
deleted file mode 100644
index 2e03512..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-subtests_0.5.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "unittest subTest() support and subtests fixture."
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=242b4e17fa287dcf7aef372f6bc3dcb1"
-
-SRC_URI[sha256sum] = "5bd1e4bf0eda4c89a6cd42b0ee28e1d2ca0848de3fd67ad8cdd6d559ed00f120"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-pytest \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-subtests_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-subtests_0.6.0.bb
new file mode 100644
index 0000000..5e4847b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-subtests_0.6.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "unittest subTest() support and subtests fixture."
+DESCRIPTION = "Adds support for TestCase.subTest.\
+New subtests fixture, providing similar functionality for pure pytest tests."
+HOMEPAGE = "https://github.com/pytest-dev/pytest-subtests"
+BUGTRACKER = "https://github.com/pytest-dev/pytest-subtests/issues"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=242b4e17fa287dcf7aef372f6bc3dcb1"
+
+SRC_URI[sha256sum] = "3ebd306a8dcf75133f1742f288c82f36426ebcf8a132d4ee89782d20e84fc13a"
+
+inherit pypi setuptools3
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-pytest \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.0.1.bb
deleted file mode 100644
index a790a65..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.0.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "py.test plugin to abort hanging tests"
-HOMEPAGE = "https://github.com/pytest-dev/pytest-timeout/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d8048cd156eda3df2e7f111b0ae9ceff"
-
-PYPI_PACKAGE = "pytest-timeout"
-
-SRC_URI[sha256sum] = "a5ec4eceddb8ea726911848593d668594107e797621e97f93a1d1dbc6fbb9080"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "${PYTHON_PN}-pytest"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.0.2.bb
new file mode 100644
index 0000000..7c77e4a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.0.2.bb
@@ -0,0 +1,12 @@
+SUMMARY = "py.test plugin to abort hanging tests"
+HOMEPAGE = "https://github.com/pytest-dev/pytest-timeout/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d8048cd156eda3df2e7f111b0ae9ceff"
+
+PYPI_PACKAGE = "pytest-timeout"
+
+SRC_URI[sha256sum] = "e6f98b54dafde8d70e4088467ff621260b641eb64895c4195b6e5c8f45638112"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "${PYTHON_PN}-pytest"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.1.0.bb
deleted file mode 100644
index 55e642c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.1.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "PythonPing is simple way to ping in Python."
-HOMEPAGE = "https://pypi.org/project/pythonping/"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://setup.py;beginline=12;endline=12;md5=2d33c00f47720c7e35e1fdb4b9fab027"
-
-SRC_URI[sha256sum] = "71199bdeee942ba1258b65f88ca5624278e63b31e7643ee8ca7292d2f5f77e99"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "python3-io"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.1.1.bb
new file mode 100644
index 0000000..75cef50
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.1.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "PythonPing is simple way to ping in Python."
+HOMEPAGE = "https://pypi.org/project/pythonping/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=12;endline=12;md5=2d33c00f47720c7e35e1fdb4b9fab027"
+
+SRC_URI[sha256sum] = "0022f6cbe52762e9d596316e3bccb8a3b794355a49c0d788f7228d90f9461cfc"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-io"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb
new file mode 100644
index 0000000..76487c8
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Shims to help you safely remove pytz"
+HOMEPAGE = "https://github.com/pganssle/pytz-deprecation-shim"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fca9fd5c15a28eb874ba38577a585d48"
+
+SRC_URI[sha256sum] = "af097bae1b616dde5c5744441e2ddc69e74dfdcb0c263129610d85b87445a59d"
+
+PYPI_PACKAGE = "pytz_deprecation_shim"
+PYPI_SRC_URI = "https://files.pythonhosted.org/packages/94/f0/909f94fea74759654390a3e1a9e4e185b6cd9aa810e533e3586f39da3097/${PYPI_PACKAGE}-${PV}.tar.gz"
+
+inherit pypi setuptools3
+
+do_compile:prepend() {
+	echo "from setuptools import setup" > ${S}/setup.py
+	echo "setup()" >> ${S}/setup.py
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb
index 3c91eee..87605c2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb
@@ -1,6 +1,6 @@
 SUMMARY = "Pyzmq provides Zero message queue access for the Python language"
 HOMEPAGE = "http://zeromq.org/bindings:python"
-LICENSE = "BSD & LGPL-3.0"
+LICENSE = "BSD-3-Clause & LGPL-3.0"
 LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=11c65680f637c3df7f58bbc8d133e96e \
                     file://COPYING.LESSER;md5=12c592fa0bcfff3fb0977b066e9cb69e"
 DEPENDS = "zeromq"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_7.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_7.3.1.bb
new file mode 100644
index 0000000..f6de60e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_7.3.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "QR Code image generator"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4b802d2a65df4626623c79757f486af9"
+
+PYPI_PACKAGE = "qrcode"
+SRC_URI[sha256sum] = "375a6ff240ca9bd41adc070428b5dfc1dcfbb0f2507f1ac848f6cded38956578"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "python3-six python3-pillow"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_7.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_7.3.bb
deleted file mode 100644
index f195f47..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_7.3.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "QR Code image generator"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4b802d2a65df4626623c79757f486af9"
-
-PYPI_PACKAGE = "qrcode"
-SRC_URI[sha256sum] = "d72861b65e26b611609f0547f0febe58aed8ae229d6bf4e675834f40742915b3"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "python3-six python3-pillow"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_6.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_6.0.0.bb
deleted file mode 100644
index 589e663..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_6.0.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "RDFLib is a pure Python package for working with RDF"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=89aa9a14f80a6ac70e1d5da763a309ed"
-
-SRC_URI[sha256sum] = "7ce4d757eb26f4dd43205ec340d8c097f29e5adfe45d6ea20238c731dc679879"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-isodate \
-    ${PYTHON_PN}-pyparsing \
-    ${PYTHON_PN}-logging \
-    ${PYTHON_PN}-numbers \
-    ${PYTHON_PN}-xml \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_6.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_6.1.1.bb
new file mode 100644
index 0000000..27f65dc
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_6.1.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "RDFLib is a pure Python package for working with RDF"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b6cde159c801514e0e45a40cf0a9d3d9"
+
+SRC_URI[sha256sum] = "8dbfa0af2990b98471dacbc936d6494c997ede92fd8ed693fb84ee700ef6f754"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-isodate \
+    ${PYTHON_PN}-pyparsing \
+    ${PYTHON_PN}-logging \
+    ${PYTHON_PN}-numbers \
+    ${PYTHON_PN}-xml \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_3.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_3.5.3.bb
deleted file mode 100644
index 92f6e3e..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_3.5.3.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Python client for Redis key-value store"
-DESCRIPTION = "The Python interface to the Redis key-value store."
-HOMEPAGE = "http://github.com/andymccurdy/redis-py"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=51d9ad56299ab60ba7be65a621004f27"
-
-SRC_URI[md5sum] = "7a00d4540374f34e152a33faa1fcee5f"
-SRC_URI[sha256sum] = "0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-cryptography \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.0.2.bb
new file mode 100644
index 0000000..f39a72c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.0.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Python client for Redis key-value store"
+DESCRIPTION = "The Python interface to the Redis key-value store."
+HOMEPAGE = "http://github.com/andymccurdy/redis-py"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=51d9ad56299ab60ba7be65a621004f27"
+
+SRC_URI[sha256sum] = "ccf692811f2c1fc7a92b466aa2599e4a6d2d73d5f736a2c70be600657c0da34a"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-cryptography \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.10.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.10.8.bb
deleted file mode 100644
index e797897..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.10.8.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Alternative regular expression module, to replace re."
-HOMEPAGE = "https://bitbucket.org/mrabarnett/mrab-regex/src"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=f0a3e4a2554ebb89c046c93d45d8e4bc"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "26895d7c9bbda5c52b3635ce5991caa90fbb1ddfac9c9ff1c7ce505e2282fb2a"
-
-RDEPENDS:${PN} += " \
-	python3-stringold \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.11.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.11.10.bb
new file mode 100644
index 0000000..dce232b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.11.10.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Alternative regular expression module, to replace re."
+HOMEPAGE = "https://bitbucket.org/mrabarnett/mrab-regex/src"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7b5751ddd6b643203c31ff873051d069"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "f341ee2df0999bfdf7a95e448075effe0db212a59387de1a70690e4acb03d4c6"
+
+RDEPENDS:${PN} += " \
+	python3-stringold \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.26.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.26.0.bb
deleted file mode 100644
index 406e42a..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.26.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "Python HTTP for Humans."
-HOMEPAGE = "http://python-requests.org"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
-
-SRC_URI[sha256sum] = "b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-email \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-ndg-httpsclient \
-    ${PYTHON_PN}-netserver \
-    ${PYTHON_PN}-pyasn1 \
-    ${PYTHON_PN}-pyopenssl \
-    ${PYTHON_PN}-pysocks \
-    ${PYTHON_PN}-urllib3 \
-    ${PYTHON_PN}-chardet \
-    ${PYTHON_PN}-idna \
-"
-
-CVE_PRODUCT = "requests"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.27.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.27.1.bb
new file mode 100644
index 0000000..af52b7c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.27.1.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Python HTTP for Humans."
+HOMEPAGE = "http://python-requests.org"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
+
+SRC_URI[sha256sum] = "68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-email \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-ndg-httpsclient \
+    ${PYTHON_PN}-netserver \
+    ${PYTHON_PN}-pyasn1 \
+    ${PYTHON_PN}-pyopenssl \
+    ${PYTHON_PN}-pysocks \
+    ${PYTHON_PN}-urllib3 \
+    ${PYTHON_PN}-chardet \
+    ${PYTHON_PN}-idna \
+"
+
+CVE_PRODUCT = "requests"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3339-validator_0.1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3339-validator_0.1.4.bb
deleted file mode 100644
index 7f1bbaf..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3339-validator_0.1.4.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "A pure python RFC3339 validator"
-HOMEPAGE = "https://github.com/naimetti/rfc3339-validator"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a21b13b5a996f08f7e0b088aa38ce9c6"
-
-FILESEXTRAPATHS:prepend := "${THISDIR}/python-rfc3339-validator:"
-
-SRC_URI[sha256sum] = "138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"
-
-PYPI_PACKAGE = "rfc3339_validator"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-core \
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-six \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb
deleted file mode 100644
index 68b3db1..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Pure python rfc3986 validator"
-HOMEPAGE = "https://github.com/naimetti/rfc3986-validator"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a21b13b5a996f08f7e0b088aa38ce9c6"
-
-FILESEXTRAPATHS:prepend := "${THISDIR}/python-rfc3986-validator:"
-
-SRC_URI[md5sum] = "47f7657b790aaf6011a1ab3d86c6be95"
-SRC_URI[sha256sum] = "3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"
-
-PYPI_PACKAGE = "rfc3986_validator"
-
-inherit pypi setuptools3
-
-SRC_URI:append = " \
-    file://0001-setup.py-move-pytest-runner-to-test_requirements.patch \
-"
-
-RDEPENDS:${PN} += "\
-    python3-core \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3987_1.3.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3987_1.3.8.bb
deleted file mode 100644
index 80e2aa5..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3987_1.3.8.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)"
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=9;md5=2b723edf67b2f3088bc5e339b1ceda2d"
-
-SRC_URI[md5sum] = "b6c4028acdc788a9ba697e1c1d6b896c"
-SRC_URI[sha256sum] = "d3c4d257a560d544e9826b38bc81db676890c79ab9d7ac92b39c7a253d5ca733"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.2.bb
deleted file mode 100644
index 0c3de5d..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.2.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "A Python generic test automation framework"
-DESCRIPTION = "Generic open source test atomation framework for acceptance\
-testing and acceptance test-driven development (ATDD). It has easy-to-use\
-tabular test data syntax and it utilizes the keyword-driven testing approach.\
-Its testing capabilities can be extended by test libraries implemented either\
-with Python or Java, and users can create new higher-level keywords from\
-existing ones using the same syntax that is used for creating test cases."
-HOMEPAGE = "http://robotframework.org"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE_EXT = "zip"
-
-SRC_URI[sha256sum] = "7ea2454b847cfcb211e2906743c5c4a868ab096ab4ce1547ab102d91fb224443"
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-shell \
-    ${PYTHON_PN}-pprint \
-    ${PYTHON_PN}-xml \
-    ${PYTHON_PN}-difflib \
-    ${PYTHON_PN}-threading \
-    ${PYTHON_PN}-html \
-    ${PYTHON_PN}-docutils \
-    ${PYTHON_PN}-ctypes \
-    ${PYTHON_PN}-logging \
-    ${PYTHON_PN}-numbers \
-    ${PYTHON_PN}-profile \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.3.bb
new file mode 100644
index 0000000..a40d047
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.3.bb
@@ -0,0 +1,30 @@
+SUMMARY = "A Python generic test automation framework"
+DESCRIPTION = "Generic open source test atomation framework for acceptance\
+testing and acceptance test-driven development (ATDD). It has easy-to-use\
+tabular test data syntax and it utilizes the keyword-driven testing approach.\
+Its testing capabilities can be extended by test libraries implemented either\
+with Python or Java, and users can create new higher-level keywords from\
+existing ones using the same syntax that is used for creating test cases."
+HOMEPAGE = "http://robotframework.org"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE_EXT = "zip"
+
+SRC_URI[sha256sum] = "d2675cbe3e5a4c90be3ddb61be3b88cc0d6ff503c298ad8f8a78aad14e71e886"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-shell \
+    ${PYTHON_PN}-pprint \
+    ${PYTHON_PN}-xml \
+    ${PYTHON_PN}-difflib \
+    ${PYTHON_PN}-threading \
+    ${PYTHON_PN}-html \
+    ${PYTHON_PN}-docutils \
+    ${PYTHON_PN}-ctypes \
+    ${PYTHON_PN}-logging \
+    ${PYTHON_PN}-numbers \
+    ${PYTHON_PN}-profile \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.7.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.7.2.bb
deleted file mode 100644
index 4a9b9a9..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.7.2.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Pure-Python RSA implementation"
-SECTION = "devel/python"
-AUTHOR = "Sybren A. Stuvel"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c403f6882d4f97a9cd927df987d55634"
-
-SRC_URI[sha256sum] = "9d689e6ca1b3038bc82bf8d23e944b6b6037bc02301a574935b2dd946e0353b9"
-
-inherit pypi setuptools3 update-alternatives
-
-ALTERNATIVE:${PN} = "\
-    pyrsa-decrypt \
-    pyrsa-encrypt \
-    pyrsa-keygen \
-    pyrsa-priv2pub \
-    pyrsa-sign \
-    pyrsa-verify \
-"
-
-ALTERNATIVE_LINK_NAME[pyrsa-decrypt] = "${bindir}/pyrsa-decrypt"
-ALTERNATIVE_LINK_NAME[pyrsa-encrypt] = "${bindir}/pyrsa-encrypt"
-ALTERNATIVE_LINK_NAME[pyrsa-keygen] = "${bindir}/pyrsa-keygen"
-ALTERNATIVE_LINK_NAME[pyrsa-priv2pub] = "${bindir}/pyrsa-priv2pub"
-ALTERNATIVE_LINK_NAME[pyrsa-sign] = "${bindir}/pyrsa-sign"
-ALTERNATIVE_LINK_NAME[pyrsa-verify] = "${bindir}/pyrsa-verify"
-ALTERNATIVE_PRIORITY = "30"
-
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-compression \
-    ${PYTHON_PN}-crypt \
-    ${PYTHON_PN}-doctest \
-    ${PYTHON_PN}-logging \
-    ${PYTHON_PN}-math \
-    ${PYTHON_PN}-multiprocessing \
-    ${PYTHON_PN}-netclient \
-    ${PYTHON_PN}-pickle \
-"
-
-RDEPENDS:${PN} += "${PYTHON_PN}-pyasn1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.8.bb
new file mode 100644
index 0000000..d0a18f9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.8.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Pure-Python RSA implementation"
+SECTION = "devel/python"
+AUTHOR = "Sybren A. Stuvel"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c403f6882d4f97a9cd927df987d55634"
+
+SRC_URI[sha256sum] = "5c6bd9dc7a543b7fe4304a631f8a8a3b674e2bbfc49c2ae96200cdbe55df6b17"
+
+inherit pypi setuptools3 update-alternatives
+
+ALTERNATIVE:${PN} = "\
+    pyrsa-decrypt \
+    pyrsa-encrypt \
+    pyrsa-keygen \
+    pyrsa-priv2pub \
+    pyrsa-sign \
+    pyrsa-verify \
+"
+
+ALTERNATIVE_LINK_NAME[pyrsa-decrypt] = "${bindir}/pyrsa-decrypt"
+ALTERNATIVE_LINK_NAME[pyrsa-encrypt] = "${bindir}/pyrsa-encrypt"
+ALTERNATIVE_LINK_NAME[pyrsa-keygen] = "${bindir}/pyrsa-keygen"
+ALTERNATIVE_LINK_NAME[pyrsa-priv2pub] = "${bindir}/pyrsa-priv2pub"
+ALTERNATIVE_LINK_NAME[pyrsa-sign] = "${bindir}/pyrsa-sign"
+ALTERNATIVE_LINK_NAME[pyrsa-verify] = "${bindir}/pyrsa-verify"
+ALTERNATIVE_PRIORITY = "30"
+
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-compression \
+    ${PYTHON_PN}-crypt \
+    ${PYTHON_PN}-doctest \
+    ${PYTHON_PN}-logging \
+    ${PYTHON_PN}-math \
+    ${PYTHON_PN}-multiprocessing \
+    ${PYTHON_PN}-netclient \
+    ${PYTHON_PN}-pickle \
+"
+
+RDEPENDS:${PN} += "${PYTHON_PN}-pyasn1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.17.16.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.17.16.bb
deleted file mode 100644
index e64f196..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.17.16.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order."
-AUTHOR = "Anthon van der Neut"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fa0a51dfb461e2f803969e0f3fa71dfe"
-
-PYPI_PACKAGE = "ruamel.yaml"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "1a771fc92d3823682b7f0893ad56cb5a5c87c48e62b5399d6f42c8759a583b33"
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-shell \
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-netclient \
-"
-
-do_install:prepend() {
-    export RUAMEL_NO_PIP_INSTALL_CHECK=1
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.18.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.18.bb
deleted file mode 100644
index 691742d..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.18.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "Bindings for the scrypt key derivation function library"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2ddf47d0ff1849bce3257ccbc1fd275c"
-HOMEPAGE="https://github.com/holgern/py-scrypt"
-
-SRC_URI += "file://0001-py-scrypt-remove-the-hard-coded-include-paths.patch"
-
-SRC_URI[sha256sum] = "bcf04257af12e6d52974d177a7b08e314b66f350a73f9b6f7b232d69a6a1e041"
-
-inherit pypi ptest setuptools3 dos2unix
-
-SRC_URI += " \
-    file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-    ${PYTHON_PN}-pytest \
-"
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-ctypes \
-"
-
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
-    cp -rf ${S}/scrypt/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.19.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.19.bb
new file mode 100644
index 0000000..f0a9e16
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.19.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Bindings for the scrypt key derivation function library"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=05b5ac2824a7ae7489193b0f6a6f2cd1"
+HOMEPAGE="https://github.com/holgern/py-scrypt"
+
+SRC_URI += "file://0001-py-scrypt-remove-the-hard-coded-include-paths.patch"
+
+SRC_URI[sha256sum] = "ad143035ae0cf5e97c4b399f4e4686adf442c5f0f06f9f198a0cc6c091335fb7"
+
+inherit pypi ptest setuptools3 dos2unix
+
+SRC_URI += " \
+    file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    ${PYTHON_PN}-pytest \
+"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-ctypes \
+"
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests
+    cp -rf ${S}/scrypt/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.4.3.bb
deleted file mode 100644
index c5614a3..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.4.3.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "The new Python SDK for Sentry.io"
-DESCRIPTION = "This is the next line of the Python SDK \
-for Sentry, intended to replace the raven package on PyPI."
-HOMEPAGE = "https://github.com/getsentry/sentry-python"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0c79f8d3c91fc847350efd28bfe0a341"
-
-RDEPENDS:${PN} += "python3-urllib3"
-
-SRC_URI[sha256sum] = "b9844751e40710e84a457c5bc29b21c383ccb2b63d76eeaad72f7f1c808c8828"
-
-PYPI_PACKAGE = "sentry-sdk"
-
-inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.3.bb
new file mode 100644
index 0000000..9822b41
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.3.bb
@@ -0,0 +1,14 @@
+SUMMARY = "The new Python SDK for Sentry.io"
+DESCRIPTION = "This is the next line of the Python SDK \
+for Sentry, intended to replace the raven package on PyPI."
+HOMEPAGE = "https://github.com/getsentry/sentry-python"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0c79f8d3c91fc847350efd28bfe0a341"
+
+RDEPENDS:${PN} += "python3-urllib3"
+
+SRC_URI[sha256sum] = "141da032f0fa4c56f9af6b361fda57360af1789576285bd1944561f9c274f9c0"
+
+PYPI_PACKAGE = "sentry-sdk"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-rust-native_1.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-rust-native_1.1.2.bb
new file mode 100644
index 0000000..34ff912
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-rust-native_1.1.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Setuptools Rust extension plugin"
+DESCRIPTION = "setuptools-rust is a plugin for setuptools to build Rust \
+Python extensions implemented with PyO3 or rust-cpython.\
+\
+Compile and distribute Python extensions written in Rust as easily as if they were written in C."
+HOMEPAGE = "https://github.com/PyO3/setuptools-rust"
+BUGTRACKER = "https://github.com/PyO3/setuptools-rust/issues"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=011cd92e702dd9e6b1a26157b6fd53f5"
+
+SRC_URI = "https://files.pythonhosted.org/packages/67/08/e1aa2c582c62ac76e4d60f8e454bd3bba933781a06a88b4e38797445822a/setuptools-rust-${PV}.tar.gz"
+SRC_URI[sha256sum] = "a0adb9b503c0ffc4e8fe80b7c617898cefa78049983aaaea7f747e153a3e65d1"
+
+inherit cargo pypi setuptools3 native
+
+DEPENDS += "python3-setuptools-scm-native python3-wheel-native"
+
+RDEPENDS:${PN}:class-native += " \
+    python3-semantic-version-native \
+    python3-setuptools-native \
+    python3-setuptools-scm-native \
+    python3-toml-native \
+    python3-typing-extensions-native \
+    python3-wheel-native \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.10.bb
deleted file mode 100644
index 36512cb..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.10.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "A simple, safe single expression evaluator library"
-HOMEPAGE = "https://pypi.org/project/simpleeval/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=dc9277482effe59b734b004cbcc1fee7"
-
-SRC_URI[md5sum] = "f175fc12d408487ca26fa3905e0a6691"
-SRC_URI[sha256sum] = "692055488c2864637f6c2edb5fa48175978a2a07318009e7cf03c9790ca17bea"
-
-inherit pypi setuptools3 ptest
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
-	file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-	${PYTHON_PN}-pytest \
-"
-do_configure:prepend() {
-	sed -i -e "/use_2to3=True,/d" ${S}/setup.py
-}
-do_install_ptest() {
-	cp -f ${S}/test_simpleeval.py ${D}${PTEST_PATH}/
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb
new file mode 100644
index 0000000..8ad6acc
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb
@@ -0,0 +1,30 @@
+SUMMARY = "A simple, safe single expression evaluator library"
+HOMEPAGE = "https://pypi.org/project/simpleeval/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=dc9277482effe59b734b004cbcc1fee7"
+
+SRC_URI[sha256sum] = "3e0be507486d4e21cf9d08847c7e57dd61a1603950399985f7c5a0be7fd33e36"
+
+inherit pypi setuptools3 ptest
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+	file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+	${PYTHON_PN}-math \
+"
+
+RDEPENDS:${PN}-ptest += " \
+	${PYTHON_PN}-pytest \
+"
+
+do_configure:prepend() {
+	sed -i -e "/use_2to3=True,/d" ${S}/setup.py
+}
+
+do_install_ptest() {
+	cp -f ${S}/test_simpleeval.py ${D}${PTEST_PATH}/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.17.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.17.5.bb
deleted file mode 100644
index 7c92761..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.17.5.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Simple, fast, extensible JSON encoder/decoder for Python"
-HOMEPAGE = "http://cheeseshop.python.org/pypi/simplejson"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c6338d7abd321c0b50a2a547e441c52e"
-
-SRC_URI[sha256sum] = "91cfb43fb91ff6d1e4258be04eee84b51a4ef40a28d899679b9ea2556322fb50"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-io \
-    ${PYTHON_PN}-netserver \
-    ${PYTHON_PN}-numbers \
-"
-
-PACKAGES =+ "${PN}-tests"
-RDEPENDS:${PN}-tests = "${PN} ${PYTHON_PN}-unittest"
-FILES:${PN}-tests+= " \
-    ${PYTHON_SITEPACKAGES_DIR}/simplejson/tests \
-    ${PYTHON_SITEPACKAGES_DIR}/simplejson/tool.py* \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.17.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.17.6.bb
new file mode 100644
index 0000000..b836f97
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.17.6.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Simple, fast, extensible JSON encoder/decoder for Python"
+HOMEPAGE = "http://cheeseshop.python.org/pypi/simplejson"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c6338d7abd321c0b50a2a547e441c52e"
+
+SRC_URI[sha256sum] = "cf98038d2abf63a1ada5730e91e84c642ba6c225b0198c3684151b1f80c5f8a6"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-io \
+    ${PYTHON_PN}-netserver \
+    ${PYTHON_PN}-numbers \
+"
+
+PACKAGES =+ "${PN}-tests"
+RDEPENDS:${PN}-tests = "${PN} ${PYTHON_PN}-unittest"
+FILES:${PN}-tests+= " \
+    ${PYTHON_SITEPACKAGES_DIR}/simplejson/tests \
+    ${PYTHON_SITEPACKAGES_DIR}/simplejson/tool.py* \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus/0001-Use-setuptools-as-distutils-is-deprecated.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus/0001-Use-setuptools-as-distutils-is-deprecated.patch
new file mode 100644
index 0000000..6aafd6a9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus/0001-Use-setuptools-as-distutils-is-deprecated.patch
@@ -0,0 +1,25 @@
+Upstream-Status: Submitted [https://lore.kernel.org/linux-i2c/20220114134910.3994688-1-ross.burton@arm.com/T/#u]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From fa522a9a390b1857a58ec1f55da1465c542fd106 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Fri, 14 Jan 2022 13:38:34 +0000
+Subject: [PATCH] Use setuptools as distutils is deprecated
+
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ py-smbus/setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/py-smbus/setup.py b/py-smbus/setup.py
+index 28a4500..26db33a 100644
+--- a/py-smbus/setup.py
++++ b/py-smbus/setup.py
+@@ -1,6 +1,6 @@
+ #!/usr/bin/env python
+ 
+-from distutils.core import setup, Extension
++from setuptools import setup, Extension
+ 
+ setup(	name="smbus",
+ 	version="1.1",
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.3.bb
index e2fd20f..ecdff3a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.3.bb
@@ -1,11 +1,16 @@
 SUMMARY = "Set of i2c tools for linux - Python module"
 LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://smbusmodule.c;beginline=1;endline=18;md5=46e424fb045901ab25e0f92c28c80055"
+LIC_FILES_CHKSUM = "file://py-smbus/smbusmodule.c;beginline=1;endline=18;md5=46e424fb045901ab25e0f92c28c80055"
 
-SRC_URI = "${KERNELORG_MIRROR}/software/utils/i2c-tools/i2c-tools-${PV}.tar.gz "
+SRC_URI = "${KERNELORG_MIRROR}/software/utils/i2c-tools/i2c-tools-${PV}.tar.gz \
+           file://0001-Use-setuptools-as-distutils-is-deprecated.patch \
+           "
 SRC_URI[sha256sum] = "eec464e42301d93586cbeca3845ed61bff40f560670e5b35baec57301d438148"
 
 DEPENDS += "i2c-tools"
 
-S = "${WORKDIR}/i2c-tools-${PV}/py-smbus"
-inherit distutils3
+S = "${WORKDIR}/i2c-tools-${PV}"
+
+inherit setuptools3
+
+SETUPTOOLS_SETUP_PATH = "${S}/py-smbus"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-smpplib_2.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-smpplib_2.1.0.bb
deleted file mode 100644
index 56d8f9e..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-smpplib_2.1.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "SMPP library for python"
-SECTION = "devel/python"
-LICENSE = "GPLv3.0"
-LIC_FILES_CHKSUM = "file://README.md;md5=56a03d0ce7e492d4b9487b8aae957efe"
-
-PYPI_PACKAGE = "smpplib"
-SRC_URI[sha256sum] = "df4139a279b35fbb42a58f2a254a9c6daf362b04a7f94e208dc120e0b8a3fd4b"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
-        file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-        ${PYTHON_PN}-pytest \
-        ${PYTHON_PN}-unittest \
-"
-
-do_install_ptest() {
-        install -d ${D}${PTEST_PATH}/tests
-        cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-	sed -i 's/mock/unittest.mock/g' ${D}${PTEST_PATH}/tests/*
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-smpplib_2.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-smpplib_2.2.1.bb
new file mode 100644
index 0000000..7401e03
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-smpplib_2.2.1.bb
@@ -0,0 +1,30 @@
+SUMMARY = "SMPP library for python"
+SECTION = "devel/python"
+LICENSE = "GPLv3.0"
+LIC_FILES_CHKSUM = "file://README.md;md5=8b4e2ac8cf248f7b991784f88b630852"
+
+PYPI_PACKAGE = "smpplib"
+SRC_URI[sha256sum] = "c0b01947b47e404f42ccb59e906b6e4eb507963c971d59b44350db0f29c76166"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+        ${PYTHON_PN}-logging \
+        ${PYTHON_PN}-six \
+"
+
+RDEPENDS:${PN}-ptest += " \
+        ${PYTHON_PN}-pytest \
+        ${PYTHON_PN}-unittest \
+        ${PYTHON_PN}-profile \
+        ${PYTHON_PN}-mock \
+"
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}/tests
+        cp -rf ${S}/smpplib/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.4.1.bb
deleted file mode 100644
index bf8ce4c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.4.1.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Socket.IO server"
-HOMEPAGE = "https://github.com/miguelgrinberg/python-socketio/"
-SECTION = "devel/python"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=42d0a9e728978f0eeb759c3be91536b8"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "python-socketio"
-
-SRC_URI[sha256sum] = "ef4e273ddfebb421144a228cbab1e7e27ffe8d372514fa561e57d590ea6627b0"
-
-PACKAGECONFIG ?= "asyncio_client client"
-PACKAGECONFIG[asyncio_client] = ",,,${PYTHON_PN}-aiohttp ${PYTHON_PN}-websockets"
-PACKAGECONFIG[client] = ",,,${PYTHON_PN}-requests ${PYTHON_PN}-websocket-client"
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-engineio \
-    ${PYTHON_PN}-logging \
-    ${PYTHON_PN}-math \
-    ${PYTHON_PN}-pickle \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-threading \
-    ${PYTHON_PN}-six \
-    ${PYTHON_PN}-attrs \
-    ${PYTHON_PN}-bidict \
-    "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.1.bb
new file mode 100644
index 0000000..ebbb5c0
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Socket.IO server"
+HOMEPAGE = "https://github.com/miguelgrinberg/python-socketio/"
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=42d0a9e728978f0eeb759c3be91536b8"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "python-socketio"
+
+SRC_URI[sha256sum] = "ac8e64d59a15d1c31a4fe8434f4ff16d0f640c824ba517dce7ca99e95f0cd36a"
+
+PACKAGECONFIG ?= "asyncio_client client"
+PACKAGECONFIG[asyncio_client] = ",,,${PYTHON_PN}-aiohttp ${PYTHON_PN}-websockets"
+PACKAGECONFIG[client] = ",,,${PYTHON_PN}-requests ${PYTHON_PN}-websocket-client"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-engineio \
+    ${PYTHON_PN}-logging \
+    ${PYTHON_PN}-math \
+    ${PYTHON_PN}-pickle \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-threading \
+    ${PYTHON_PN}-six \
+    ${PYTHON_PN}-attrs \
+    ${PYTHON_PN}-bidict \
+    "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.2.1.bb
deleted file mode 100644
index a656af6..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.2.1.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "CSS selector library for python-beautifulsoup4"
-HOMEPAGE = "https://github.com/facelessuser/soupsieve"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=33c3a77def9b3ad83e01c65bdcc1af67"
-
-SRC_URI[sha256sum] = "052774848f448cf19c7e959adf5566904d525f33a3f8b6ba6f6f8f26ec7de0cc"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
-        file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-        ${PYTHON_PN}-pytest \
-        ${PYTHON_PN}-beautifulsoup4 \
-"
-
-do_install_ptest() {
-        install -d ${D}${PTEST_PATH}/tests
-        cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.3.1.bb
new file mode 100644
index 0000000..f4cf93d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.3.1.bb
@@ -0,0 +1,29 @@
+SUMMARY = "CSS selector library for python-beautifulsoup4"
+HOMEPAGE = "https://github.com/facelessuser/soupsieve"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=33c3a77def9b3ad83e01c65bdcc1af67"
+
+SRC_URI[sha256sum] = "b8d49b1cd4f037c7082a9683dfa1801aa2597fb11c3a1155b7a5b94829b4f1f9"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN} += "\
+        ${PYTHON_PN}-beautifulsoup4 \
+"
+
+RDEPENDS:${PN}-ptest += " \
+        ${PYTHON_PN}-pytest \
+        ${PYTHON_PN}-beautifulsoup4 \
+"
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}/tests
+        cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.26.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.26.bb
deleted file mode 100644
index e000156..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.26.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives \
-application developers the full power and flexibility of SQL"
-HOMEPAGE = "http://www.sqlalchemy.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3359ed561ac16aaa25b6c6eff84df595"
-
-SRC_URI[sha256sum] = "6bc7f9d7d90ef55e8c6db1308a8619cd8f40e24a34f759119b95e7284dca351a"
-
-PYPI_PACKAGE = "SQLAlchemy"
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-pickle \
-    ${PYTHON_PN}-logging \
-    ${PYTHON_PN}-netclient \
-    ${PYTHON_PN}-numbers \
-    ${PYTHON_PN}-threading \
-    ${PYTHON_PN}-compression \
-    ${PYTHON_PN}-profile \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.29.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.29.bb
new file mode 100644
index 0000000..b535951
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.29.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives \
+application developers the full power and flexibility of SQL"
+HOMEPAGE = "http://www.sqlalchemy.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3359ed561ac16aaa25b6c6eff84df595"
+
+SRC_URI[sha256sum] = "fa2bad14e1474ba649cfc969c1d2ec915dd3e79677f346bbfe08e93ef9020b39"
+
+PYPI_PACKAGE = "SQLAlchemy"
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-pickle \
+    ${PYTHON_PN}-logging \
+    ${PYTHON_PN}-netclient \
+    ${PYTHON_PN}-numbers \
+    ${PYTHON_PN}-threading \
+    ${PYTHON_PN}-compression \
+    ${PYTHON_PN}-profile \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-strict-rfc3339_0.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-strict-rfc3339_0.7.bb
deleted file mode 100644
index 52ae9eb..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-strict-rfc3339_0.7.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Strict, simple, lightweight RFC3339 function.s"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8f0e2cd40e05189ec81232da84bd6e1a"
-
-SRC_URI[md5sum] = "4d9b635b4df885bc37bc1189d66c9abc"
-SRC_URI[sha256sum] = "5cad17bedfc3af57b399db0fed32771f18fc54bbd917e85546088607ac5e1277"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.2.2.bb
deleted file mode 100644
index f89c206..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.2.2.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Supervisor: A Process Control System"
-DESCRIPTION = "\
-Supervisor is a client/server system that allows its users \
-to monitorand control a number of processes on UNIX-like \
-operating systems."
-HOMEPAGE = "https://github.com/Supervisor/supervisor"
-LICENSE = "BSD-4-Clause"
-LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=5b4e3a2172bba4c47cded5885e7e507e"
-
-SRC_URI[sha256sum] = "5b2b8882ec8a3c3733cce6965cc098b6d80b417f21229ab90b18fe551d619f90"
-
-PYPI_PACKAGE = "supervisor"
-inherit pypi systemd setuptools3
-RDEPENDS:${PN} = "\
-    ${PYTHON_PN}-meld3 \
-"
-
-SRC_URI += "file://supervisord.conf \
-	    file://supervisor.service \
-	"
-SYSTEMD_SERVICE:${PN} = "supervisor.service"
-
-do_install:append() {
-	install -d ${D}${sysconfdir}/supervisor
-	install -d ${D}${systemd_system_unitdir}
-
-	install -m 0644 ${WORKDIR}/supervisord.conf ${D}${sysconfdir}/supervisor
-	install -m 0644 ${WORKDIR}/supervisor.service ${D}${systemd_system_unitdir}
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.2.4.bb
new file mode 100644
index 0000000..fdd8a76
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.2.4.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Supervisor: A Process Control System"
+DESCRIPTION = "\
+Supervisor is a client/server system that allows its users \
+to monitorand control a number of processes on UNIX-like \
+operating systems."
+HOMEPAGE = "https://github.com/Supervisor/supervisor"
+LICENSE = "BSD-4-Clause"
+LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=5b4e3a2172bba4c47cded5885e7e507e"
+
+SRC_URI[sha256sum] = "40dc582ce1eec631c3df79420b187a6da276bbd68a4ec0a8f1f123ea616b97a2"
+
+PYPI_PACKAGE = "supervisor"
+inherit pypi systemd setuptools3
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-meld3 \
+"
+
+SRC_URI += "file://supervisord.conf \
+	    file://supervisor.service \
+	"
+SYSTEMD_SERVICE:${PN} = "supervisor.service"
+
+do_install:append() {
+	install -d ${D}${sysconfdir}/supervisor
+	install -d ${D}${systemd_system_unitdir}
+
+	install -m 0644 ${WORKDIR}/supervisord.conf ${D}${sysconfdir}/supervisor
+	install -m 0644 ${WORKDIR}/supervisor.service ${D}${systemd_system_unitdir}
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twine_3.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twine_3.4.1.bb
deleted file mode 100644
index 111366d..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-twine_3.4.1.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "Utilities for interacting with PyPI"
-HOMEPAGE = "https://twine.readthedocs.io/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a3d1106b253a8d50dd82a4202a045b4c"
-
-SRC_URI[sha256sum] = "a56c985264b991dc8a8f4234eb80c5af87fa8080d0c224ad8f2cd05a2c22e83b"
-
-inherit pypi setuptools3
-
-DEPENDS += "\
-    ${PYTHON_PN}-setuptools-scm-native \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twine_3.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twine_3.7.1.bb
new file mode 100644
index 0000000..bcc881e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twine_3.7.1.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Utilities for interacting with PyPI"
+HOMEPAGE = "https://twine.readthedocs.io/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a3d1106b253a8d50dd82a4202a045b4c"
+
+SRC_URI[sha256sum] = "28460a3db6b4532bde6a5db6755cf2dce6c5020bada8a641bb2c5c7a9b1f35b8"
+
+inherit pypi setuptools3
+
+DEPENDS += "\
+	${PYTHON_PN}-setuptools-scm-native \
+"
+
+RDEPENDS:${PN} += " \
+	${PYTHON_PN}-importlib-metadata \
+"
+
+do_compile:prepend() {
+	echo "from setuptools import setup" > ${S}/setup.py
+	echo "setup()" >> ${S}/setup.py
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_4.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_4.1.0.bb
deleted file mode 100644
index ac1dab8..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_4.1.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Twitter for Python"
-DESCRIPTION = "Python module to support twitter API"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
-
-SRC_URI[sha256sum] = "88e2938de5ac7043c9ba8b8358996fbc5806059d63c96269d22527a40ca7d511"
-
-PYPI_PACKAGE = "tweepy"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-pip \
-    ${PYTHON_PN}-pysocks \
-    ${PYTHON_PN}-requests \
-    ${PYTHON_PN}-six \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_4.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_4.4.0.bb
new file mode 100644
index 0000000..2305e89
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_4.4.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Twitter for Python"
+DESCRIPTION = "Python module to support twitter API"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
+
+SRC_URI[sha256sum] = "8d4b4520271b796fa7efc4c5d5ef3228af4d79f6a4d3ace3900b2778ed8f6f1c"
+
+PYPI_PACKAGE = "tweepy"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-pip \
+    ${PYTHON_PN}-pysocks \
+    ${PYTHON_PN}-requests \
+    ${PYTHON_PN}-six \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.0.bb
deleted file mode 100644
index 564f98e..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.0.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Run-time type checker for Python"
-HOMEPAGE = "https://pypi.org/project/typeguard/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f0e423eea5c91e7aa21bdb70184b3e53"
-
-SRC_URI[sha256sum] = "04e38f92eb59410c9375d3be23df65e0a7643f2e8bcbd421423d808d2f9e99df"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
-        file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-        ${PYTHON_PN}-pytest \
-        ${PYTHON_PN}-typing-extensions \
-        ${PYTHON_PN}-unixadmin \
-"
-
-do_install_ptest() {
-        install -d ${D}${PTEST_PATH}/tests
-        cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-DEPENDS += "\
-    python3-distutils-extra-native \
-    python3-setuptools-scm-native \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.3.bb
new file mode 100644
index 0000000..21ca439
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.3.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Run-time type checker for Python"
+HOMEPAGE = "https://pypi.org/project/typeguard/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f0e423eea5c91e7aa21bdb70184b3e53"
+
+SRC_URI[sha256sum] = "00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+        ${PYTHON_PN}-pytest \
+        ${PYTHON_PN}-typing-extensions \
+        ${PYTHON_PN}-unixadmin \
+"
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}/tests
+        cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+DEPENDS += "\
+    python3-distutils-extra-native \
+    python3-setuptools-scm-native \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.0.1.bb
deleted file mode 100644
index f8339bb..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.0.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "Library to return tzinfo with the local timezone information"
-HOMEPAGE = "https://pypi.org/project/tzlocal/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=57e0bd61643d81d05683cdce65b11d10"
-
-SRC_URI[sha256sum] = "8560aabba61b5d2a5e1697bb781f682e6eaa3ce386cee85a09a458cc0003f836"
-
-inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.1.bb
new file mode 100644
index 0000000..29a69f8
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.1.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Library to return tzinfo with the local timezone information"
+HOMEPAGE = "https://pypi.org/project/tzlocal/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=57e0bd61643d81d05683cdce65b11d10"
+
+SRC_URI[sha256sum] = "0f28015ac68a5c067210400a9197fc5d36ba9bc3f8eaf1da3cbd59acdfed9e09"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+	${PYTHON_PN}-pytz-deprecation-shim \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson/0001-setup.py-Do-not-strip-debugging-symbols.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson/0001-setup.py-Do-not-strip-debugging-symbols.patch
new file mode 100644
index 0000000..47da2b8
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson/0001-setup.py-Do-not-strip-debugging-symbols.patch
@@ -0,0 +1,29 @@
+From aec3b64b0aaea0178b44ea65a204d76696e6a45e Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Mon, 10 Jan 2022 14:04:28 +0200
+Subject: [PATCH] setup.py: Do not strip debugging symbols
+
+Do not strip debugging symbols from Linux binaries to avoid
+bitbake build errors related to already-stripped.
+
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 453dc31..962c507 100644
+--- a/setup.py
++++ b/setup.py
+@@ -6,7 +6,7 @@ from setuptools import Extension, setup
+ dconv_source_files = glob("./deps/double-conversion/double-conversion/*.cc")
+ dconv_source_files.append("./lib/dconv_wrapper.cc")
+ 
+-strip_flags = ["-Wl,--strip-all"] if platform.system() == "Linux" else []
++strip_flags = []
+ 
+ module1 = Extension(
+     "ujson",
+-- 
+2.30.2
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_4.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_4.2.0.bb
deleted file mode 100644
index 3dbfe44..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_4.2.0.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY  = "Ultra fast JSON encoder and decoder for Python"
-DESCRIPTION = "UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 2.5+ and 3."
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=10fa10456417c0252bcb8a498e498ffe"
-
-SRC_URI[sha256sum] = "fffe509f556861c7343c6cba57ed05fe7bcf4b48a934a5b946ccb45428cf8883"
-
-inherit pypi ptest setuptools3
-
-SRC_URI += " \
-    file://run-ptest \
-"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-numbers \
-"
-
-RDEPENDS:${PN}-ptest += " \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-pytest \
-    ${PYTHON_PN}-pytz \
-"
-
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
-    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_5.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_5.1.0.bb
new file mode 100644
index 0000000..6c1bf7e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_5.1.0.bb
@@ -0,0 +1,34 @@
+SUMMARY  = "Ultra fast JSON encoder and decoder for Python"
+DESCRIPTION = "UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 2.5+ and 3."
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=10fa10456417c0252bcb8a498e498ffe"
+
+SRC_URI[sha256sum] = "a88944d2f99db71a3ca0c63d81f37e55b660edde0b07216fb65a3e46403ef004"
+
+inherit pypi ptest setuptools3
+
+SRC_URI += " \
+    file://run-ptest \
+    file://0001-setup.py-Do-not-strip-debugging-symbols.patch \
+"
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-numbers \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-pytest \
+    ${PYTHON_PN}-pytz \
+"
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests
+    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.7.bb
deleted file mode 100644
index 7269674..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.7.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more"
-HOMEPAGE = "https://github.com/shazow/urllib3"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c2823cb995439c984fd62a973d79815c"
-
-SRC_URI[sha256sum] = "4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-certifi \
-    ${PYTHON_PN}-cryptography \
-    ${PYTHON_PN}-email \
-    ${PYTHON_PN}-idna \
-    ${PYTHON_PN}-netclient \
-    ${PYTHON_PN}-pyopenssl \
-    ${PYTHON_PN}-threading \
-"
-
-CVE_PRODUCT = "urllib3"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.8.bb
new file mode 100644
index 0000000..c2a51b9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.8.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more"
+HOMEPAGE = "https://github.com/shazow/urllib3"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c2823cb995439c984fd62a973d79815c"
+
+SRC_URI[sha256sum] = "0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-certifi \
+    ${PYTHON_PN}-cryptography \
+    ${PYTHON_PN}-email \
+    ${PYTHON_PN}-idna \
+    ${PYTHON_PN}-netclient \
+    ${PYTHON_PN}-pyopenssl \
+    ${PYTHON_PN}-threading \
+"
+
+CVE_PRODUCT = "urllib3"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-webcolors_1.11.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-webcolors_1.11.1.bb
deleted file mode 100644
index 2ec036e..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-webcolors_1.11.1.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Simple Python module for working with HTML/CSS color definitions."
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=25b90379a52351261c51272e7923d240"
-
-SRC_URI[md5sum] = "54d28a7c80b3e4d974ec2fee86768be9"
-SRC_URI[sha256sum] = "76f360636957d1c976db7466bc71dcb713bb95ac8911944dffc55c01cb516de6"
-
-inherit pypi setuptools3 ptest
-
-RDEPENDS:${PN}:class-target = "\
-    ${PYTHON_PN}-stringold \
-"
-
-SRC_URI += " \
-    file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-    ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
-    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.2.1.bb
deleted file mode 100644
index b632853..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.2.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "websocket client for python"
-DESCRIPTION = "\
-websocket-client module is WebSocket client for python. \
-This provide the low level APIs for WebSocket. All APIs \
-are the synchronous functions."
-HOMEPAGE = "https://github.com/websocket-client/websocket-client"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b1e01b26bacfc2232046c90a330332b3"
-
-SRC_URI[sha256sum] = "8dfb715d8a992f5712fff8c843adae94e22b22a99b2c5e6b0ec4a1a981cc4e0d"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
-    ${PYTHON_PN}-six \
-    ${PYTHON_PN}-logging \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.2.3.bb
new file mode 100644
index 0000000..f85657a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.2.3.bb
@@ -0,0 +1,17 @@
+SUMMARY = "websocket client for python"
+DESCRIPTION = "\
+websocket-client module is WebSocket client for python. \
+This provide the low level APIs for WebSocket. All APIs \
+are the synchronous functions."
+HOMEPAGE = "https://github.com/websocket-client/websocket-client"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e401d789b93b47e65e852f16f2907aab"
+
+SRC_URI[sha256sum] = "1315816c0acc508997eb3ae03b9d3ff619c9d12d544c9a9b553704b1cc4f6af5"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-six \
+    ${PYTHON_PN}-logging \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.0.bb
deleted file mode 100644
index 004d3be..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "An implementation of the WebSocket Protocol (RFC 6455)"
-HOMEPAGE = "https://github.com/aaugustin/websockets"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=78c2cc91e172ca96d6f8e4a76c739ec6"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "c4fc9a1d242317892590abe5b61a9127f1a61740477bfb121743f290b8054002"
-
-BBCLASSEXTEND = "native nativesdk"
-
-RDEPENDS:${PN} = "\
-    ${PYTHON_PN}-asyncio \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.1.bb
new file mode 100644
index 0000000..6dd29a9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "An implementation of the WebSocket Protocol (RFC 6455)"
+HOMEPAGE = "https://github.com/aaugustin/websockets"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=78c2cc91e172ca96d6f8e4a76c739ec6"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "181d2b25de5a437b36aefedaf006ecb6fa3aa1328ec0236cdde15f32f9d3ff6d"
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-asyncio \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.37.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.37.0.bb
deleted file mode 100644
index aae4903..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.37.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "The official binary distribution format for Python "
-HOMEPAGE = "https://github.com/pypa/wheel"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=10;endline=10;md5=8227180126797a0148f94f483f3e1489"
-
-SRC_URI[sha256sum] = "e2ef7239991699e3355d54f8e968a21bb940a1dbf34a4d226741e64462516fad"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native"
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.37.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.37.1.bb
new file mode 100644
index 0000000..6c7a31d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.37.1.bb
@@ -0,0 +1,12 @@
+SUMMARY = "The official binary distribution format for Python "
+HOMEPAGE = "https://github.com/pypa/wheel"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=10;endline=10;md5=8227180126797a0148f94f483f3e1489"
+
+SRC_URI[sha256sum] = "e9a504e793efbca1b8e0e9cb979a249cf4a0a7b5b8c9e8b65a5e39d49529c1c4"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.13.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.13.2.bb
deleted file mode 100644
index b1710fc..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.13.2.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "A Python module for decorators, wrappers and monkey patching."
-HOMEPAGE = "http://wrapt.readthedocs.org/"
-LICENSE = "BSD-2-Clause"
-SECTION = "devel/python"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fdfc019b57affbe1d7a32e3d34e83db4"
-
-SRC_URI[sha256sum] = "dca56cc5963a5fd7c2aa8607017753f534ee514e09103a6c55d2db70b50e7447"
-
-inherit pypi setuptools3 
-
-RDEPENDS:${PN}:class-target += "\
-    ${PYTHON_PN}-stringold \
-    ${PYTHON_PN}-threading \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.13.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.13.3.bb
new file mode 100644
index 0000000..05ee4c6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.13.3.bb
@@ -0,0 +1,16 @@
+SUMMARY = "A Python module for decorators, wrappers and monkey patching."
+HOMEPAGE = "http://wrapt.readthedocs.org/"
+LICENSE = "BSD-2-Clause"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fdfc019b57affbe1d7a32e3d34e83db4"
+
+SRC_URI[sha256sum] = "1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185"
+
+inherit pypi setuptools3 
+
+RDEPENDS:${PN}:class-target += "\
+    ${PYTHON_PN}-stringold \
+    ${PYTHON_PN}-threading \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_2.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_2.3.3.bb
deleted file mode 100644
index 6a9e464..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_2.3.3.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "A flexible forms validation and rendering library for python web development."
-HOMEPAGE = "https://pypi.python.org/pypi/WTForms"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=53dbfa56f61b90215a9f8f0d527c043d"
-
-SRC_URI[md5sum] = "2b6ea167a71c6becf20f0934417fd06c"
-SRC_URI[sha256sum] = "81195de0ac94fbc8368abbaf9197b88c4f3ffd6c2719b5bf5fc9da744f3d829c"
-
-PYPI_PACKAGE = "WTForms"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-netserver \
-    ${PYTHON_PN}-numbers \
-    "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.0.1.bb
new file mode 100644
index 0000000..36a0191
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.0.1.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "A flexible forms validation and rendering library for python web development."
+HOMEPAGE = "https://pypi.python.org/pypi/WTForms"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=53dbfa56f61b90215a9f8f0d527c043d"
+
+SRC_URI[sha256sum] = "6b351bbb12dd58af57ffef05bc78425d08d1914e0fd68ee14143b7ade023c5bc"
+
+PYPI_PACKAGE = "WTForms"
+
+inherit pypi setuptools3
+
+DEPENDS += "\
+    ${PYTHON_PN}-pip-native \
+    ${PYTHON_PN}-babel-native \
+    "
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-netserver \
+    ${PYTHON_PN}-numbers \
+    ${PYTHON_PN}-markupsafe \
+    "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
index fdbf494..bd6853e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
@@ -9,7 +9,7 @@
 SRC_URI[sha256sum] = "f72f148f54442c6b056bf931dbc34f986fd0c3b0b6b5a58d013c9aef274d0c88"
 
 
-SRC_URI = "git://github.com/python-excel/xlrd.git \
+SRC_URI = "git://github.com/python-excel/xlrd.git;branch=master;protocol=https \
            file://run-ptest \
 "
 SRCREV = "b8d573e11ec149da695d695c81a156232b89a949"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.1.bb
deleted file mode 100644
index aeb27ce..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Python 2 and 3 compatibility library"
-HOMEPAGE = "https://xlsxwriter.readthedocs.io"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4e95e368cd6cb090815046688e92d11e"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "XlsxWriter"
-
-RDEPENDS:${PN} += " \
-	python3-crypt \
-	python3-datetime \
-	python3-compression \
-	python3-numbers \
-	python3-io \
-"
-
-SRC_URI[sha256sum] = "3f39bf581c55f3ad1438bc170d7f4c4649cee8b6b7a80d21f79508118eeea52a"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.2.bb
new file mode 100644
index 0000000..04f2553
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Python 2 and 3 compatibility library"
+HOMEPAGE = "https://xlsxwriter.readthedocs.io"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e5c795ec8cf90514a6d844b1d3cc3224"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "XlsxWriter"
+
+RDEPENDS:${PN} += " \
+	python3-crypt \
+	python3-datetime \
+	python3-compression \
+	python3-numbers \
+	python3-io \
+"
+
+SRC_URI[sha256sum] = "53005f03e8eb58f061ebf41d5767c7495ee0772c2396fe26b7e0ca22fa9c2570"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi/python310.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi/python310.patch
deleted file mode 100644
index 6dd58ae..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi/python310.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From d40bc0e8230dd35e05222f5761e3d7f7a75fd46e Mon Sep 17 00:00:00 2001
-From: Alexander Shadchin <shadchin@yandex-team.ru>
-Date: Tue, 1 Jun 2021 02:31:12 +0300
-Subject: [PATCH] Adapt to Python 3.10 beta 1
-
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- yappi/_yappi.c | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/yappi/_yappi.c b/yappi/_yappi.c
-index 1721280..343130d 100644
---- a/yappi/_yappi.c
-+++ b/yappi/_yappi.c
-@@ -1258,7 +1258,11 @@ _resume_greenlet_ctx(_ctx *ctx)
- static _ctx *
- _bootstrap_thread(PyThreadState *ts)
- {
-+#if PY_VERSION_HEX < 0x030a00b1
-     ts->use_tracing = 1;
-+#else
-+    ts->cframe->use_tracing = 1;
-+#endif
-     ts->c_profilefunc = _yapp_callback;
-     return NULL;
- }
-@@ -1289,7 +1293,11 @@ _profile_thread(PyThreadState *ts)
-         ctx = (_ctx *)it->val;
-     }
-     
-+#if PY_VERSION_HEX < 0x030a00b1
-     ts->use_tracing = 1;
-+#else
-+    ts->cframe->use_tracing = 1;
-+#endif
-     ts->c_profilefunc = _yapp_callback;
-     ctx->id = ctx_id;
-     ctx->tid = ts->thread_id;
-@@ -1306,7 +1314,11 @@ _profile_thread(PyThreadState *ts)
- static _ctx*
- _unprofile_thread(PyThreadState *ts)
- {
-+#if PY_VERSION_HEX < 0x030a00b1
-     ts->use_tracing = 0;
-+#else
-+    ts->cframe->use_tracing = 0;
-+#endif
-     ts->c_profilefunc = NULL;
- 
-     return NULL; //dummy return for enum_threads() func. prototype
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.2.bb
deleted file mode 100644
index 7cfc84e..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.2.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY  = "Yet Another Python Profiler"
-HOMEPAGE = "https://github.com/sumerc/yappi"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=71c208c9a4fd864385eb69ad4caa3bee"
-
-SRC_URI[sha256sum] = "a51d3e6e5563cc74b5bb82ed6e7bd44a9c1a7eae3d97e4d52e9465edb3a8da8d"
-
-SRC_URI += " \
-    file://run-ptest \
-    file://0001-Fix-imports-for-ptests.patch \
-    file://python310.patch \
-"
-
-inherit pypi setuptools3 ptest
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-pickle \
-    ${PYTHON_PN}-threading \
-"
-
-RDEPENDS:${PN}-ptest += " \
-    ${PYTHON_PN}-gevent \
-    ${PYTHON_PN}-multiprocessing \
-    ${PYTHON_PN}-pytest \
-    ${PYTHON_PN}-profile \
-    ${PYTHON_PN}-zopeinterface \
-"
-
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
-    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-    cp -f ${S}/yappi/yappi.py ${D}/${PTEST_PATH}/
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.3.bb
new file mode 100644
index 0000000..45a5f05
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.3.bb
@@ -0,0 +1,34 @@
+SUMMARY  = "Yet Another Python Profiler"
+HOMEPAGE = "https://github.com/sumerc/yappi"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=71c208c9a4fd864385eb69ad4caa3bee"
+
+SRC_URI[sha256sum] = "855890cd9a90d833dd2df632d648de8ccd0a4c3131f1edc8abd004db0625b5e8"
+
+SRC_URI += " \
+    file://run-ptest \
+    file://0001-Fix-imports-for-ptests.patch \
+"
+
+inherit pypi setuptools3 ptest
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-pickle \
+    ${PYTHON_PN}-threading \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    ${PYTHON_PN}-gevent \
+    ${PYTHON_PN}-multiprocessing \
+    ${PYTHON_PN}-pytest \
+    ${PYTHON_PN}-profile \
+    ${PYTHON_PN}-zopeinterface \
+"
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests
+    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+    cp -f ${S}/yappi/yappi.py ${D}/${PTEST_PATH}/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.7.0.bb
deleted file mode 100644
index acb4b4a..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.7.0.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "The module provides handy URL class for url parsing and changing"
-HOMEPAGE = "https://github.com/aio-libs/yarl/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e581798a7b985311f29fa3e163ea27ae"
-
-SRC_URI[sha256sum] = "8e7ebaf62e19c2feb097ffb7c94deb0f0c9fab52590784c8cd679d30ab009162"
-
-SRC_URI += "file://run-ptest"
-
-PYPI_PACKAGE = "yarl"
-
-inherit pypi ptest setuptools3
-
-RDEPENDS:${PN} = "\
-    ${PYTHON_PN}-multidict \
-    ${PYTHON_PN}-idna \
-"
-
-RDEPENDS:${PN}-ptest += " \
-    ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
-    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.7.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.7.2.bb
new file mode 100644
index 0000000..0867d1c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.7.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "The module provides handy URL class for url parsing and changing"
+HOMEPAGE = "https://github.com/aio-libs/yarl/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e581798a7b985311f29fa3e163ea27ae"
+
+SRC_URI[sha256sum] = "45399b46d60c253327a460e99856752009fcee5f5d3c80b2f7c0cae1c38d56dd"
+
+SRC_URI += "file://run-ptest"
+
+PYPI_PACKAGE = "yarl"
+
+inherit pypi ptest setuptools3
+
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-multidict \
+    ${PYTHON_PN}-idna \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    ${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests
+    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.36.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.36.9.bb
deleted file mode 100644
index 8258ddd..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.36.9.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi compatible)"
-HOMEPAGE = "https://github.com/jstasiak/python-zeroconf"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bb705b228ea4a14ea2728215b780d80"
-
-SRC_URI[sha256sum] = "023ebc58b765537edcb0395367b732e5271e2659760b1d5c6119aaacaeb7b390"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-ifaddr \
-    ${PYTHON_PN}-asyncio \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.38.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.38.1.bb
new file mode 100644
index 0000000..c49782e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.38.1.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi compatible)"
+HOMEPAGE = "https://github.com/jstasiak/python-zeroconf"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bb705b228ea4a14ea2728215b780d80"
+
+SRC_URI[sha256sum] = "10c501b25d8881b656e56c34674d98fe6bc752240a572e74f918bc849c93ba9c"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-ifaddr \
+    ${PYTHON_PN}-asyncio \
+"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.0.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.0.bb
index d3373f4..85f80b8 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.0.bb
@@ -9,7 +9,7 @@
 B = "${S}"
 
 SRCREV = "f7d9027e4fdad11187980e73726cd75a2dc962c2"
-SRC_URI = "git://github.com/storaged-project/blivet.git;branch=3.4-release \
+SRC_URI = "git://github.com/storaged-project/blivet.git;branch=3.4-release;protocol=https \
            file://0002-run_program-support-timeout.patch \
            file://0003-support-infinit-timeout.patch \
            file://0004-fix-new.roots-object-is-not-iterable.patch \
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.2.1.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.2.1.bb
index ad3c073..632b313 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.2.1.bb
@@ -9,7 +9,7 @@
 B = "${S}"
 
 SRCREV = "adb6bd69fb3cfa709265db66ddcee04c0b5e070f"
-SRC_URI = "git://github.com/storaged-project/blivet-gui.git"
+SRC_URI = "git://github.com/storaged-project/blivet-gui.git;branch=master;protocol=https"
 
 inherit features_check
 REQUIRED_DISTRO_FEATURES = "x11 systemd"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-cson/python3-cson_git.bb b/meta-openembedded/meta-python/recipes-extended/python-cson/python3-cson_git.bb
index 7bc61f0..5d696b3 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-cson/python3-cson_git.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-cson/python3-cson_git.bb
@@ -8,7 +8,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=7709d2635e63ab96973055a23c2a4cac"
 
 SRCREV = "f3f2898c44bb16b951d3e9f2fbf6d1c4158edda2"
-SRC_URI = "git://github.com/gt3389b/python-cson.git"
+SRC_URI = "git://github.com/gt3389b/python-cson.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.50.1.bb b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.50.1.bb
new file mode 100644
index 0000000..bf0df02
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.50.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "A python library for handling exceptions"
+DESCRIPTION = "The python-meh package is a python library for handling, saving, and reporting \
+exceptions."
+HOMEPAGE = "http://git.fedorahosted.org/git/?p=python-meh.git"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit setuptools3
+
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=rhel9-branch"
+SRCREV = "c321ce22950aff76611a3c6beffa02b5ea3adbed"
+
+FILES:${PN} += "${datadir}/*"
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.50.bb b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.50.bb
deleted file mode 100644
index 372b3a0..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.50.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "A python library for handling exceptions"
-DESCRIPTION = "The python-meh package is a python library for handling, saving, and reporting \
-exceptions."
-HOMEPAGE = "http://git.fedorahosted.org/git/?p=python-meh.git"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit setuptools3
-
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=master \
-"
-SRCREV = "11980776c5ad757401ea1d12fd1f331d96428105"
-
-FILES:${PN} += "${datadir}/*"
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.1.bb b/meta-openembedded/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.1.bb
new file mode 100644
index 0000000..ec3cde8
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "PyEphem astronomical calculations"
+HOMEPAGE = "http://rhodesmill.org/pyephem/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9c930b395b435b00bb13ec83b0c99f40"
+
+SRC_URI[sha256sum] = "dba9e05c78ce910ae75a06351a5592479191a8dc570ac0cd6d18a77e98138873"
+
+PYPI_PACKAGE = "ephem"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-math \
+    "
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.bb b/meta-openembedded/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.bb
deleted file mode 100644
index add4458..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "PyEphem astronomical calculations"
-HOMEPAGE = "http://rhodesmill.org/pyephem/"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9c930b395b435b00bb13ec83b0c99f40"
-
-SRC_URI[sha256sum] = "c076794a511a34b5b91871c1cf6374dbc323ec69fca3f50eb718f20b171259d6"
-
-PYPI_PACKAGE = "ephem"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-math \
-    "
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pyparted/files/setuptools.patch b/meta-openembedded/meta-python/recipes-extended/python-pyparted/files/setuptools.patch
new file mode 100644
index 0000000..51fe8c7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-pyparted/files/setuptools.patch
@@ -0,0 +1,82 @@
+Upstream-Status: Submitted [https://github.com/dcantrell/pyparted/pull/85]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From 3f5ca7eb6f57d8bcaa3b333497aba6e53d847450 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Fri, 14 Jan 2022 16:06:31 +0000
+Subject: [PATCH] setup.py: port to setuptools
+
+Python 3.10 has deprecated distutils[1], and it will be removed entirely
+in Python 3.12.
+
+As the setuptools API is identical, moving to setuptools is trivial by
+changing the import.
+
+Remove check_mod_version, a version specifier can be passed directly
+to pkg-config.
+
+Remove unused imports.
+
+[1] https://docs.python.org/3/whatsnew/3.10.html#distutils-deprecated
+
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ setup.py | 29 +++++++++--------------------
+ 1 file changed, 9 insertions(+), 20 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index da71d9c..1e9e367 100644
+--- a/setup.py
++++ b/setup.py
+@@ -25,12 +25,7 @@ import glob
+ import os
+ import platform
+ import sys
+-from distutils.ccompiler import new_compiler
+-from distutils.errors import CompileError
+-from distutils.errors import LinkError
+-from distutils.core import setup
+-from distutils.core import Extension
+-from distutils.version import LooseVersion
++from setuptools import setup, Extension
+ 
+ pyparted_version = '3.11.7'
+ python_version = sys.version_info
+@@ -45,19 +40,13 @@ if python_version < need_python_version:
+ # http://code.activestate.com/recipes/502261-python-distutils-pkg-config/
+ def pkgconfig(*packages, **kwargs):
+     flag_map = {'-I': 'include_dirs', '-L': 'library_dirs', '-l': 'libraries'}
+-    for token in subprocess.check_output(["pkg-config", "--libs", "--cflags"] + list(packages)).decode('utf-8').split():
+-
+-        kwargs.setdefault(flag_map.get(token[:2]), []).append(token[2:])
+-    return kwargs
+-
+-def check_mod_version(module, version):
+-    modversion = subprocess.check_output(["pkg-config", "--modversion", module]).decode('utf-8').split()[0]
+-    if not LooseVersion(modversion) >= LooseVersion(version):
+-        sys.stderr.write("*** Minimum required %s version: %s, found: %s\n" % (module, version, modversion,))
+-        sys.exit(1)
+-    return
+-
+-check_mod_version('libparted', need_libparted_version)
++    try:
++        for token in subprocess.check_output(["pkg-config", "--libs", "--cflags"] + list(packages),
++                                            universal_newlines=True).split():
++            kwargs.setdefault(flag_map.get(token[:2]), []).append(token[2:])
++        return kwargs
++    except subprocess.CalledProcessError as e:
++        sys.exit("Cannot find pkg-config dependencies:\n" + e.output)
+ 
+ # This list is in the format necessary for the define_macros parameter
+ # for an Extension() module definition.  See:
+@@ -77,6 +66,6 @@ setup(name='pyparted',
+       ext_modules=[Extension('_ped',
+                              sorted(glob.glob(os.path.join('src', '*.c'))),
+                              define_macros=features,
+-                             **pkgconfig('libparted',
++                             **pkgconfig('libparted >= %s' % need_libparted_version,
+                                          include_dirs=['include']))
+                   ])
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.7.bb b/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.7.bb
index ef04024..66cd27d 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.7.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.7.bb
@@ -9,10 +9,12 @@
     file://src/_pedmodule.c;beginline=10;endline=22;md5=9e53304db812b80d0939e11bb69dcab2 \
 "
 
+SRC_URI += "file://setuptools.patch"
+
 SRC_URI[md5sum] = "69284f943982f54ded76960c92098a02"
 SRC_URI[sha256sum] = "61cde7b096bccd69ddc75c85b17f8baed45c3687d404706d91403a319453b903"
 
-inherit pkgconfig pypi distutils3
+inherit pkgconfig pypi setuptools3
 
 DEPENDS += "parted"
 
diff --git a/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.2.0.bb b/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.2.0.bb
deleted file mode 100644
index a6ca4d5..0000000
--- a/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.2.0.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "Python WBEM Client and Provider Interface"
-DESCRIPTION = "\
-A Python library for making CIM (Common Information Model) operations over \
-HTTP using the WBEM CIM-XML protocol. It is based on the idea that a good \
-WBEM client should be easy to use and not necessarily require a large amount \
-of programming knowledge. It is suitable for a large range of tasks from \
-simply poking around to writing web and GUI applications. \
-\
-WBEM, or Web Based Enterprise Management is a manageability protocol, like \
-SNMP, standardised by the Distributed Management Task Force (DMTF) available \
-at http://www.dmtf.org/standards/wbem. \
-\
-It also provides a Python provider interface, and is the fastest and easiest \
-way to write providers on the planet."
-HOMEPAGE = "http://pywbem.github.io"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fbc093901857fcd118f065f900982c24"
-
-SRC_URI[sha256sum] = "8ef48185e0adbaeb9bd5181c4c5de951f6d58d54e2e1d7e87a9834e10eabe957"
-
-inherit pypi setuptools3 update-alternatives
-
-DEPENDS += " \
-    ${PYTHON_PN}-ply-native \
-    ${PYTHON_PN}-pyyaml-native \
-    ${PYTHON_PN}-six-native \
-    ${PYTHON_PN}-wheel-native \
-"
-
-RDEPENDS:${PN}:class-target += "\
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-io \
-    ${PYTHON_PN}-netclient \
-    ${PYTHON_PN}-ply \
-    ${PYTHON_PN}-pyyaml \
-    ${PYTHON_PN}-six \
-    ${PYTHON_PN}-stringold \
-    ${PYTHON_PN}-threading \
-    ${PYTHON_PN}-unixadmin \
-    ${PYTHON_PN}-xml \
-    ${PYTHON_PN}-nocasedict \
-    ${PYTHON_PN}-nocaselist \
-    ${PYTHON_PN}-yamlloader \
-"
-
-ALTERNATIVE:${PN} = "mof_compiler"
-ALTERNATIVE_TARGET[mof_compiler] = "${bindir}/mof_compiler"
-
-ALTERNATIVE_PRIORITY = "60"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.3.0.bb b/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.3.0.bb
new file mode 100644
index 0000000..2675842
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.3.0.bb
@@ -0,0 +1,51 @@
+SUMMARY = "Python WBEM Client and Provider Interface"
+DESCRIPTION = "\
+A Python library for making CIM (Common Information Model) operations over \
+HTTP using the WBEM CIM-XML protocol. It is based on the idea that a good \
+WBEM client should be easy to use and not necessarily require a large amount \
+of programming knowledge. It is suitable for a large range of tasks from \
+simply poking around to writing web and GUI applications. \
+\
+WBEM, or Web Based Enterprise Management is a manageability protocol, like \
+SNMP, standardised by the Distributed Management Task Force (DMTF) available \
+at http://www.dmtf.org/standards/wbem. \
+\
+It also provides a Python provider interface, and is the fastest and easiest \
+way to write providers on the planet."
+HOMEPAGE = "http://pywbem.github.io"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fbc093901857fcd118f065f900982c24"
+
+SRC_URI[sha256sum] = "5df0af28f81891a3914a12f3a30b11b1981f7b30e09c5a42c011797e7fce9b6a"
+
+inherit pypi setuptools3 update-alternatives
+
+DEPENDS += " \
+    ${PYTHON_PN}-ply-native \
+    ${PYTHON_PN}-pyyaml-native \
+    ${PYTHON_PN}-six-native \
+    ${PYTHON_PN}-wheel-native \
+"
+
+RDEPENDS:${PN}:class-target += "\
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-io \
+    ${PYTHON_PN}-netclient \
+    ${PYTHON_PN}-ply \
+    ${PYTHON_PN}-pyyaml \
+    ${PYTHON_PN}-six \
+    ${PYTHON_PN}-stringold \
+    ${PYTHON_PN}-threading \
+    ${PYTHON_PN}-unixadmin \
+    ${PYTHON_PN}-xml \
+    ${PYTHON_PN}-nocasedict \
+    ${PYTHON_PN}-nocaselist \
+    ${PYTHON_PN}-yamlloader \
+"
+
+ALTERNATIVE:${PN} = "mof_compiler"
+ALTERNATIVE_TARGET[mof_compiler] = "${bindir}/mof_compiler"
+
+ALTERNATIVE_PRIORITY = "60"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb b/meta-openembedded/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb
index 884d467..0407886 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb
@@ -11,7 +11,7 @@
 
 # Original (github.com/disconnect/apache-websocket) is dead since 2012, the
 # fork contains patches from the modules ML and fixes CVE compliance issues
-SRC_URI = "git://github.com/jchampio/apache-websocket.git"
+SRC_URI = "git://github.com/jchampio/apache-websocket.git;branch=master;protocol=https"
 
 SRCREV = "0ee34c77fc78ff08fd548706300b80a7bc7874e4"
 
@@ -21,8 +21,7 @@
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
 
-EXTRA_OECONF = "APACHECTL=${STAGING_DIR_TARGET}${sbindir}/apachectl \
-                LIBTOOL=${STAGING_DIR_TARGET}${bindir_crossscripts}/${HOST_SYS}-libtool"
+EXTRA_OECONF = "APACHECTL=${STAGING_DIR_TARGET}${sbindir}/apachectl"
 
 do_install() {
     install -d ${D}${libexecdir}/apache2/modules
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.51.bb b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.51.bb
deleted file mode 100644
index 4b36c50..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.51.bb
+++ /dev/null
@@ -1,225 +0,0 @@
-DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \
-extensible web server."
-SUMMARY = "Apache HTTP Server"
-HOMEPAGE = "http://httpd.apache.org/"
-SECTION = "net"
-LICENSE = "Apache-2.0"
-
-SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \
-           file://0001-configure-use-pkg-config-for-PCRE-detection.patch \
-           file://0002-apache2-bump-up-the-core-size-limit-if-CoreDumpDirec.patch \
-           file://0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch \
-           file://0004-apache2-log-the-SELinux-context-at-startup.patch \
-           file://0005-replace-lynx-to-curl-in-apachectl-script.patch \
-           file://0006-apache2-fix-the-race-issue-of-parallel-installation.patch \
-           file://0007-apache2-allow-to-disable-selinux-support.patch \
-           file://apache-configure_perlbin.patch \
-           file://0001-support-apxs.in-force-destdir-to-be-empty-string.patch \
-          "
-
-SRC_URI:append:class-target = " \
-           file://0008-apache2-do-not-use-relative-path-for-gen_test_char.patch \
-           file://init \
-           file://apache2-volatile.conf \
-           file://apache2.service \
-           file://volatiles.04_apache2 \
-           "
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bddeddfac80b2c9a882241d008bb41c3"
-SRC_URI[sha256sum] = "20e01d81fecf077690a4439e3969a9b22a09a8d43c525356e863407741b838f4"
-
-S = "${WORKDIR}/httpd-${PV}"
-
-inherit autotools update-rc.d pkgconfig systemd update-alternatives
-
-DEPENDS = "openssl expat pcre apr apr-util apache2-native "
-
-CVE_PRODUCT = "http_server"
-
-SSTATE_SCAN_FILES += "apxs config_vars.mk config.nice"
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
-PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux"
-PACKAGECONFIG[openldap] = "--enable-ldap --enable-authnz-ldap,--disable-ldap --disable-authnz-ldap,openldap"
-PACKAGECONFIG[zlib] = "--enable-deflate,,zlib,zlib"
-
-CFLAGS:append = " -DPATH_MAX=4096"
-
-EXTRA_OECONF:class-target = "\
-    --enable-layout=Debian \
-    --prefix=${base_prefix} \
-    --exec_prefix=${exec_prefix} \
-    --includedir=${includedir}/${BPN} \
-    --sysconfdir=${sysconfdir}/${BPN} \
-    --datadir=${datadir}/${BPN} \
-    --libdir=${libdir} \
-    --libexecdir=${libexecdir}/${BPN}/modules \
-    --localstatedir=${localstatedir} \
-    --enable-ssl \
-    --with-dbm=sdbm \
-    --with-gdbm=no \
-    --with-ndbm=no \
-    --with-berkeley-db=no \
-    --enable-info \
-    --enable-rewrite \
-    --enable-mpms-shared \
-    ap_cv_void_ptr_lt_long=no \
-    ac_cv_have_threadsafe_pollset=no \
-    "
-
-EXTRA_OECONF:class-native = "\
-    --prefix=${prefix} \
-    --includedir=${includedir}/${BPN} \
-    --sysconfdir=${sysconfdir}/${BPN} \
-    --datadir=${datadir}/${BPN} \
-    --libdir=${libdir} \
-    --libexecdir=${libdir}/${BPN}/modules \
-    --localstatedir=${localstatedir} \
-    "
-
-do_configure:prepend() {
-    sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libexecdir}/cgi-bin:g' ${S}/config.layout
-}
-
-do_install:append:class-target() {
-    install -d ${D}/${sysconfdir}/init.d
-
-    cat ${WORKDIR}/init | \
-        sed -e 's,/usr/sbin/,${sbindir}/,g' \
-            -e 's,/usr/bin/,${bindir}/,g' \
-            -e 's,/usr/lib/,${libdir}/,g' \
-            -e 's,/etc/,${sysconfdir}/,g' \
-            -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${BPN}
-
-    chmod 755 ${D}/${sysconfdir}/init.d/${BPN}
-
-    # Remove the goofy original files...
-    rm -rf ${D}/${sysconfdir}/${BPN}/original
-
-    install -d ${D}${sysconfdir}/${BPN}/conf.d
-    install -d ${D}${sysconfdir}/${BPN}/modules.d
-
-    # Ensure configuration file pulls in conf.d and modules.d
-    printf "\nIncludeOptional ${sysconfdir}/${BPN}/conf.d/*.conf" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
-    printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.load" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
-    printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.conf\n\n" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
-
-    # Match with that is in init script
-    printf "\nPidFile /run/httpd.pid" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
-
-    # Set 'ServerName' to fix error messages when restart apache service
-    sed -i 's/^#ServerName www.example.com/ServerName localhost/' ${D}/${sysconfdir}/${BPN}/httpd.conf
-
-    sed -i 's/^ServerRoot/#ServerRoot/' ${D}/${sysconfdir}/${BPN}/httpd.conf
-
-    sed -i -e 's,${STAGING_DIR_TARGET},,g' \
-           -e 's,${DEBUG_PREFIX_MAP},,g' \
-           -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-ffile-prefix-map[^ ]*,,g' \
-           -e 's,${HOSTTOOLS_DIR}/,,g' \
-           -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
-           -e 's,APU_CONFIG = .*,APU_CONFIG = ,g' ${D}${datadir}/apache2/build/config_vars.mk
-
-    sed -i -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
-           -e 's,${DEBUG_PREFIX_MAP},,g' \
-           -e 's,${RECIPE_SYSROOT},,g' \
-           -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g' \
-           -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
-           -e 's,".*/configure","configure",g' ${D}${datadir}/apache2/build/config.nice
-
-    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
-        install -d ${D}${sysconfdir}/tmpfiles.d/
-        install -m 0644 ${WORKDIR}/apache2-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
-
-        install -d ${D}${systemd_unitdir}/system
-        install -m 0644 ${WORKDIR}/apache2.service ${D}${systemd_unitdir}/system
-        sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/apache2.service
-        sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/apache2.service
-    elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
-        install -d ${D}${sysconfdir}/default/volatiles
-        install -m 0644 ${WORKDIR}/volatiles.04_apache2 ${D}${sysconfdir}/default/volatiles/04_apache2
-    fi
-
-    rm -rf ${D}${localstatedir} ${D}${sbindir}/envvars*
-    chown -R root:root ${D}
-}
-
-do_install:append:class-native() {
-    install -d ${D}${bindir} ${D}${libdir}
-    install -m 755 server/gen_test_char ${D}${bindir}
-}
-
-SYSROOT_PREPROCESS_FUNCS:append:class-target = " apache_sysroot_preprocess"
-
-apache_sysroot_preprocess() {
-    install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}
-    install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts}
-    install -d ${SYSROOT_DESTDIR}${sbindir}
-    install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir}
-    sed -i 's!my $installbuilddir = .*!my $installbuilddir = "${STAGING_DIR_HOST}/${datadir}/${BPN}/build";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs
-    sed -i 's!my $libtool = .*!my $libtool = "${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs
-
-    sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
-    sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
-    sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
-    sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
-    sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
-    sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I. -I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
-    sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
-}
-
-# Implications - used by update-rc.d scripts
-INITSCRIPT_NAME = "apache2"
-INITSCRIPT_PARAMS = "defaults 91 20"
-
-SYSTEMD_SERVICE:${PN} = "apache2.service"
-SYSTEMD_AUTO_ENABLE:${PN} = "enable"
-
-ALTERNATIVE:${PN}-doc = "htpasswd.1"
-ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1"
-
-PACKAGES = "${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}"
-
-CONFFILES:${PN} = "${sysconfdir}/${BPN}/httpd.conf \
-                   ${sysconfdir}/${BPN}/magic \
-                   ${sysconfdir}/${BPN}/mime.types \
-                   ${sysconfdir}/${BPN}/extra/*"
-
-# We override here rather than append so that .so links are
-# included in the runtime package rather than here (-dev)
-# and to get build, icons, error into the -dev package
-FILES:${PN}-dev = "${datadir}/${BPN}/build \
-                   ${datadir}/${BPN}/icons \
-                   ${datadir}/${BPN}/error \
-                   ${includedir}/${BPN} \
-                   ${bindir}/apxs \
-                  "
-
-# Add the manual to -doc
-FILES:${PN}-doc += " ${datadir}/${BPN}/manual"
-
-FILES:${PN}-scripts += "${bindir}/dbmmanage"
-
-# Override this too - here is the default, less datadir
-FILES:${PN} =  "${bindir} ${sbindir} ${libexecdir} ${libdir} \
-                ${sysconfdir} ${libdir}/${BPN}"
-
-# We want htdocs and cgi-bin to go with the binary
-FILES:${PN} += "${datadir}/${BPN}/ ${libdir}/cgi-bin"
-
-FILES:${PN}-dbg += "${libdir}/${BPN}/modules/.debug"
-
-RDEPENDS:${PN} += "openssl libgcc"
-RDEPENDS:${PN}-scripts += "perl ${PN}"
-RDEPENDS:${PN}-dev = "perl"
-
-BBCLASSEXTEND = "native"
-
-pkg_postinst:${PN}() {
-    if [ -z "$D" ]; then
-        if type systemd-tmpfiles >/dev/null; then
-            systemd-tmpfiles --create
-        elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
-            ${sysconfdir}/init.d/populate-volatile.sh update
-        fi
-    fi
-}
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.52.bb b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.52.bb
new file mode 100644
index 0000000..39407b8
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.52.bb
@@ -0,0 +1,224 @@
+DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \
+extensible web server."
+SUMMARY = "Apache HTTP Server"
+HOMEPAGE = "http://httpd.apache.org/"
+SECTION = "net"
+LICENSE = "Apache-2.0"
+
+SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \
+           file://0001-configure-use-pkg-config-for-PCRE-detection.patch \
+           file://0002-apache2-bump-up-the-core-size-limit-if-CoreDumpDirec.patch \
+           file://0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch \
+           file://0004-apache2-log-the-SELinux-context-at-startup.patch \
+           file://0005-replace-lynx-to-curl-in-apachectl-script.patch \
+           file://0006-apache2-fix-the-race-issue-of-parallel-installation.patch \
+           file://0007-apache2-allow-to-disable-selinux-support.patch \
+           file://apache-configure_perlbin.patch \
+           file://0001-support-apxs.in-force-destdir-to-be-empty-string.patch \
+          "
+
+SRC_URI:append:class-target = " \
+           file://0008-apache2-do-not-use-relative-path-for-gen_test_char.patch \
+           file://init \
+           file://apache2-volatile.conf \
+           file://apache2.service \
+           file://volatiles.04_apache2 \
+           "
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bddeddfac80b2c9a882241d008bb41c3"
+SRC_URI[sha256sum] = "0127f7dc497e9983e9c51474bed75e45607f2f870a7675a86dc90af6d572f5c9"
+
+S = "${WORKDIR}/httpd-${PV}"
+
+inherit autotools update-rc.d pkgconfig systemd update-alternatives
+
+DEPENDS = "openssl expat pcre apr apr-util apache2-native "
+
+CVE_PRODUCT = "http_server"
+
+SSTATE_SCAN_FILES += "apxs config_vars.mk config.nice"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux"
+PACKAGECONFIG[openldap] = "--enable-ldap --enable-authnz-ldap,--disable-ldap --disable-authnz-ldap,openldap"
+PACKAGECONFIG[zlib] = "--enable-deflate,,zlib,zlib"
+
+CFLAGS:append = " -DPATH_MAX=4096"
+
+EXTRA_OECONF:class-target = "\
+    --enable-layout=Debian \
+    --prefix=${base_prefix} \
+    --exec_prefix=${exec_prefix} \
+    --includedir=${includedir}/${BPN} \
+    --sysconfdir=${sysconfdir}/${BPN} \
+    --datadir=${datadir}/${BPN} \
+    --libdir=${libdir} \
+    --libexecdir=${libexecdir}/${BPN}/modules \
+    --localstatedir=${localstatedir} \
+    --enable-ssl \
+    --with-dbm=sdbm \
+    --with-gdbm=no \
+    --with-ndbm=no \
+    --with-berkeley-db=no \
+    --enable-info \
+    --enable-rewrite \
+    --enable-mpms-shared \
+    ap_cv_void_ptr_lt_long=no \
+    ac_cv_have_threadsafe_pollset=no \
+    "
+
+EXTRA_OECONF:class-native = "\
+    --prefix=${prefix} \
+    --includedir=${includedir}/${BPN} \
+    --sysconfdir=${sysconfdir}/${BPN} \
+    --datadir=${datadir}/${BPN} \
+    --libdir=${libdir} \
+    --libexecdir=${libdir}/${BPN}/modules \
+    --localstatedir=${localstatedir} \
+    "
+
+do_configure:prepend() {
+    sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libexecdir}/cgi-bin:g' ${S}/config.layout
+}
+
+do_install:append:class-target() {
+    install -d ${D}/${sysconfdir}/init.d
+
+    cat ${WORKDIR}/init | \
+        sed -e 's,/usr/sbin/,${sbindir}/,g' \
+            -e 's,/usr/bin/,${bindir}/,g' \
+            -e 's,/usr/lib/,${libdir}/,g' \
+            -e 's,/etc/,${sysconfdir}/,g' \
+            -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${BPN}
+
+    chmod 755 ${D}/${sysconfdir}/init.d/${BPN}
+
+    # Remove the goofy original files...
+    rm -rf ${D}/${sysconfdir}/${BPN}/original
+
+    install -d ${D}${sysconfdir}/${BPN}/conf.d
+    install -d ${D}${sysconfdir}/${BPN}/modules.d
+
+    # Ensure configuration file pulls in conf.d and modules.d
+    printf "\nIncludeOptional ${sysconfdir}/${BPN}/conf.d/*.conf" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
+    printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.load" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
+    printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.conf\n\n" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
+
+    # Match with that is in init script
+    printf "\nPidFile /run/httpd.pid" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
+
+    # Set 'ServerName' to fix error messages when restart apache service
+    sed -i 's/^#ServerName www.example.com/ServerName localhost/' ${D}/${sysconfdir}/${BPN}/httpd.conf
+
+    sed -i 's/^ServerRoot/#ServerRoot/' ${D}/${sysconfdir}/${BPN}/httpd.conf
+
+    sed -i -e 's,${STAGING_DIR_TARGET},,g' \
+           -e 's,${DEBUG_PREFIX_MAP},,g' \
+           -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-ffile-prefix-map[^ ]*,,g' \
+           -e 's,${HOSTTOOLS_DIR}/,,g' \
+           -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
+           -e 's,APU_CONFIG = .*,APU_CONFIG = ,g' ${D}${datadir}/apache2/build/config_vars.mk
+
+    sed -i -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
+           -e 's,${DEBUG_PREFIX_MAP},,g' \
+           -e 's,${RECIPE_SYSROOT},,g' \
+           -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g' \
+           -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
+           -e 's,".*/configure","configure",g' ${D}${datadir}/apache2/build/config.nice
+
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+        install -d ${D}${sysconfdir}/tmpfiles.d/
+        install -m 0644 ${WORKDIR}/apache2-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
+
+        install -d ${D}${systemd_unitdir}/system
+        install -m 0644 ${WORKDIR}/apache2.service ${D}${systemd_unitdir}/system
+        sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/apache2.service
+        sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/apache2.service
+    elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+        install -d ${D}${sysconfdir}/default/volatiles
+        install -m 0644 ${WORKDIR}/volatiles.04_apache2 ${D}${sysconfdir}/default/volatiles/04_apache2
+    fi
+
+    rm -rf ${D}${localstatedir} ${D}${sbindir}/envvars*
+    chown -R root:root ${D}
+}
+
+do_install:append:class-native() {
+    install -d ${D}${bindir} ${D}${libdir}
+    install -m 755 server/gen_test_char ${D}${bindir}
+}
+
+SYSROOT_PREPROCESS_FUNCS:append:class-target = " apache_sysroot_preprocess"
+
+apache_sysroot_preprocess() {
+    install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}
+    install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts}
+    install -d ${SYSROOT_DESTDIR}${sbindir}
+    install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir}
+    sed -i 's!my $installbuilddir = .*!my $installbuilddir = "${STAGING_DIR_HOST}/${datadir}/${BPN}/build";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs
+
+    sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+    sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+    sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+    sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+    sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+    sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I. -I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+    sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+}
+
+# Implications - used by update-rc.d scripts
+INITSCRIPT_NAME = "apache2"
+INITSCRIPT_PARAMS = "defaults 91 20"
+
+SYSTEMD_SERVICE:${PN} = "apache2.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
+
+ALTERNATIVE:${PN}-doc = "htpasswd.1"
+ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1"
+
+PACKAGES = "${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}"
+
+CONFFILES:${PN} = "${sysconfdir}/${BPN}/httpd.conf \
+                   ${sysconfdir}/${BPN}/magic \
+                   ${sysconfdir}/${BPN}/mime.types \
+                   ${sysconfdir}/${BPN}/extra/*"
+
+# We override here rather than append so that .so links are
+# included in the runtime package rather than here (-dev)
+# and to get build, icons, error into the -dev package
+FILES:${PN}-dev = "${datadir}/${BPN}/build \
+                   ${datadir}/${BPN}/icons \
+                   ${datadir}/${BPN}/error \
+                   ${includedir}/${BPN} \
+                   ${bindir}/apxs \
+                  "
+
+# Add the manual to -doc
+FILES:${PN}-doc += " ${datadir}/${BPN}/manual"
+
+FILES:${PN}-scripts += "${bindir}/dbmmanage"
+
+# Override this too - here is the default, less datadir
+FILES:${PN} =  "${bindir} ${sbindir} ${libexecdir} ${libdir} \
+                ${sysconfdir} ${libdir}/${BPN}"
+
+# We want htdocs and cgi-bin to go with the binary
+FILES:${PN} += "${datadir}/${BPN}/ ${libdir}/cgi-bin"
+
+FILES:${PN}-dbg += "${libdir}/${BPN}/modules/.debug"
+
+RDEPENDS:${PN} += "openssl libgcc"
+RDEPENDS:${PN}-scripts += "perl ${PN}"
+RDEPENDS:${PN}-dev = "perl"
+
+BBCLASSEXTEND = "native"
+
+pkg_postinst:${PN}() {
+    if [ -z "$D" ]; then
+        if type systemd-tmpfiles >/dev/null; then
+            systemd-tmpfiles --create
+        elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+            ${sysconfdir}/init.d/populate-volatile.sh update
+        fi
+    fi
+}
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb b/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
index 7077d76..16733c6 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
@@ -9,7 +9,7 @@
 
 SRCREV = "9a75e65b876bcc376cb6b379dca1f7ce4a055c59"
 PV = "1.2.104+git${SRCPV}"
-SRC_URI = "git://github.com/cherokee/webserver \
+SRC_URI = "git://github.com/cherokee/webserver;branch=master;protocol=https \
            file://cherokee.init \
            file://cherokee.service \
            file://cherokee-install-configured.py-once.patch \
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.12.bb b/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.12.bb
index f66ec7d..f13f144 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.12.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.12.bb
@@ -50,7 +50,23 @@
         install -m 644 ${WORKDIR}/hiawatha.service ${D}/${systemd_unitdir}/system
     fi
 
-    rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" "${D}${localstatedir}/run"
+    # /var/log/hiawatha and /var/lib/hiawatha needs to be created in runtime.
+    # Use rmdir to catch if upstream stops creating these dirs, or adds
+    # something else in /var/log.
+    rmdir ${D}${localstatedir}/log/${BPN} ${D}${localstatedir}/log
+    rmdir ${D}${localstatedir}/run
+    rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
+
+    # Create /var/log/hiawatha at runtime.
+    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
+        install -d ${D}${nonarch_libdir}/tmpfiles.d
+        echo "d ${localstatedir}/log/${BPN} - - - -" > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
+    fi
+    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then
+        install -d ${D}${sysconfdir}/default/volatiles
+        echo "d root root 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
+    fi
+
 }
 
 CONFFILES:${PN} = " \
@@ -61,4 +77,5 @@
     ${sysconfdir}/hiawatha/php-fcgi.conf \
 "
 
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
 FILES:${PN}-dev = "${libdir}/hiawatha/*${SOLIBSDEV}"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb b/meta-openembedded/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb
index 1386770..fff406a 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb
@@ -17,7 +17,7 @@
 UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+).tar.gz"
 
 EXTRA_OECMAKE = "-DINSTALL_LOGDIR=${localstatedir}/log/monkey/ \
-                 -DPID_FILE=${localstatedir}/run/monkey.pid \
+                 -DPID_FILE=/run/monkey.pid \
                  -DINSTALL_SYSCONFDIR=${sysconfdir}/monkey/ \
                  -DWITH_PLUGINS=* \
                  -DWITHOUT_PLUGINS=mbedtls \
@@ -38,10 +38,18 @@
 OECMAKE_GENERATOR = "Unix Makefiles"
 
 do_install:append() {
-    rm -rf ${D}/run
-    rm -rf ${D}${localstatedir}/run
+    rmdir ${D}${localstatedir}/log/${BPN} ${D}${localstatedir}/run ${D}${localstatedir}/log
+    rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
     install -Dm 0755 ${WORKDIR}/monkey.init ${D}${sysconfdir}/init.d/monkey
-
+    # Create /var/log/monkey in runtime.
+    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
+        install -d ${D}${nonarch_libdir}/tmpfiles.d
+        echo "d ${localstatedir}/log/${BPN} 0755 ${BPN} ${BPN} -" > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
+    fi
+    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then
+        install -d ${D}${sysconfdir}/default/volatiles
+        echo "d ${BPN} ${BPN} 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
+    fi
     if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
         install -Dm 644 ${WORKDIR}/monkey.service ${D}/${systemd_unitdir}/system/monkey.service
     fi
@@ -56,8 +64,7 @@
 
 FILES:${PN}-plugins = "${libdir}/monkey-*.so"
 
-FILES:${PN} += "${localstatedir}/www/monkey/ /run"
-
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
 
 CONFFILES:${PN} = "${sysconfdir}/monkey/monkey.conf \
                    ${sysconfdir}/monkey/sites/default \
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
index 7637002..b99e29e 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
@@ -94,7 +94,7 @@
             >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
     fi
     install -d ${D}${sysconfdir}/${BPN}
-    lnr ${D}${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run
+    ln -rs ${D}${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run
     install -d ${D}${NGINX_WWWDIR}
     mv ${D}${exec_prefix}/html ${D}${NGINX_WWWDIR}/
     chown ${NGINX_USER}:www-data -R ${D}${NGINX_WWWDIR}
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb b/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
index 8a30b74..4134a0e 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
@@ -7,7 +7,7 @@
 DEPENDS += "base-passwd virtual/crypt"
 
 SRCREV = "2845bf5bff2b820d2336c8c8061cbfc5f271e720"
-SRC_URI = "git://github.com/blueness/${BPN} \
+SRC_URI = "git://github.com/blueness/${BPN};branch=master;protocol=https \
            file://thttpd.service \
            file://thttpd.conf \
            file://init"
diff --git a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_git.bb b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_git.bb
index 6df58ad..61ef607 100644
--- a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_git.bb
+++ b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_git.bb
@@ -6,7 +6,7 @@
 SRCREV = "382aa2b0d53a87c27f2f647dfaf670375ba0b85f"
 PV = "2.4.2"
 
-SRC_URI = "git://github.com/FastCGI-Archives/fcgi2.git;protocol=https \
+SRC_URI = "git://github.com/FastCGI-Archives/fcgi2.git;protocol=https;branch=master \
           "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_1.22.1.bb b/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_1.22.1.bb
deleted file mode 100644
index fb4d272..0000000
--- a/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_1.22.1.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-HOMEPAGE = "https://github.com/netdata/netdata/"
-SUMMARY = "Real-time performance monitoring"
-DESCRIPTION = "Netdata is high-fidelity infrastructure monitoring and troubleshooting. \
-               Open-source, free, preconfigured, opinionated, and always real-time."
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fc9b848046ef54b5eaee6071947abd24"
-
-SRC_URI = "git://github.com/netdata/netdata.git;protocol=https"
-SRCREV = "1be9200ba8e11dc81a2101d85a2725137d43f766"
-
-# default netdata.conf for netdata configuration
-SRC_URI += "file://netdata.conf"
-
-# file for providing systemd service support
-SRC_URI += "file://netdata.service"
-
-S = "${WORKDIR}/git"
-
-DEPENDS += "zlib util-linux libuv"
-
-inherit pkgconfig autotools-brokensep useradd systemd
-
-LIBS:toolchain-clang:x86 = "-latomic"
-LIBS:riscv64 = "-latomic"
-LIBS:riscv32 = "-latomic"
-export LIBS
-
-#systemd
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE:${PN} = "netdata.service"
-SYSTEMD_AUTO_ENABLE:${PN} = "enable"
-
-#User specific
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --no-create-home --home-dir ${localstatedir}/run/netdata --user-group netdata"
-
-do_install:append() {
-    #set S UID for plugins
-    chmod 4755 ${D}${libexecdir}/netdata/plugins.d/apps.plugin
-
-    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-        # Install systemd unit files
-        install -d ${D}${systemd_unitdir}/system
-        install -m 0644 ${WORKDIR}/netdata.service ${D}${systemd_unitdir}/system
-        sed -i -e 's,@@datadir,${datadir_native},g' ${D}${systemd_unitdir}/system/netdata.service
-    fi
-
-    # Install default netdata.conf
-    install -d ${D}${sysconfdir}/netdata
-    install -m 0644 ${WORKDIR}/netdata.conf ${D}${sysconfdir}/netdata/
-    sed -i -e 's,@@sysconfdir,${sysconfdir},g' ${D}${sysconfdir}/netdata/netdata.conf
-    sed -i -e 's,@@libdir,${libexecdir},g' ${D}${sysconfdir}/netdata/netdata.conf
-    sed -i -e 's,@@datadir,${datadir},g' ${D}${sysconfdir}/netdata/netdata.conf
-
-    install --group netdata --owner netdata --directory ${D}${localstatedir}/cache/netdata
-    install --group netdata --owner netdata --directory ${D}${localstatedir}/lib/netdata
-
-    chown -R netdata:netdata ${D}${datadir}/netdata/web
-}
-
-FILES_${PN} += "${localstatedir}/cache/netdata/ ${localstatedir}/lib/netdata/"
-
-RDEPENDS:${PN} = "bash zlib"
diff --git a/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_1.32.1.bb b/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_1.32.1.bb
new file mode 100644
index 0000000..dbce1c4
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_1.32.1.bb
@@ -0,0 +1,76 @@
+HOMEPAGE = "https://github.com/netdata/netdata/"
+SUMMARY = "Real-time performance monitoring"
+DESCRIPTION = "Netdata is high-fidelity infrastructure monitoring and troubleshooting. \
+               Open-source, free, preconfigured, opinionated, and always real-time."
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fc9b848046ef54b5eaee6071947abd24"
+
+DEPENDS += "libuv openssl util-linux zlib "
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BPN}-v${PV}.tar.gz"
+SRC_URI[sha256sum] = "ac406513e86ad24976a66146702aeac960e43908abc51d70e4a073905275d13e"
+
+# default netdata.conf for netdata configuration
+SRC_URI += "file://netdata.conf"
+
+# file for providing systemd service support
+SRC_URI += "file://netdata.service"
+
+UPSTREAM_CHECK_URI = "https://github.com/netdata/netdata/releases"
+
+S = "${WORKDIR}/${BPN}-v${PV}"
+
+# Stop sending anonymous statistics to Google Analytics
+NETDATA_ANONYMOUS ??= "enabled"
+
+inherit pkgconfig autotools-brokensep useradd systemd
+
+LIBS:toolchain-clang:x86 = "-latomic"
+LIBS:riscv64 = "-latomic"
+LIBS:riscv32 = "-latomic"
+LIBS:mips = "-latomic"
+export LIBS
+
+#systemd
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "netdata.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
+
+#User specific
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --home-dir ${localstatedir}/run/netdata --user-group netdata"
+
+# ebpf doesn't compile (or detect) the cross compilation well
+EXTRA_OECONF += "--disable-ebpf"
+
+do_install:append() {
+    #set S UID for plugins
+    chmod 4755 ${D}${libexecdir}/netdata/plugins.d/apps.plugin
+
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        # Install systemd unit files
+        install -d ${D}${systemd_unitdir}/system
+        install -m 0644 ${WORKDIR}/netdata.service ${D}${systemd_unitdir}/system
+        sed -i -e 's,@@datadir,${datadir_native},g' ${D}${systemd_unitdir}/system/netdata.service
+    fi
+
+    # Install default netdata.conf
+    install -d ${D}${sysconfdir}/netdata
+    install -m 0644 ${WORKDIR}/netdata.conf ${D}${sysconfdir}/netdata/
+    sed -i -e 's,@@sysconfdir,${sysconfdir},g' ${D}${sysconfdir}/netdata/netdata.conf
+    sed -i -e 's,@@libdir,${libexecdir},g' ${D}${sysconfdir}/netdata/netdata.conf
+    sed -i -e 's,@@datadir,${datadir},g' ${D}${sysconfdir}/netdata/netdata.conf
+
+    if [ "${NETDATA_ANONYMOUS}" = "enabled" ]; then
+        touch ${D}${sysconfdir}/netdata/.opt-out-from-anonymous-statistics
+    fi
+
+    install --group netdata --owner netdata --directory ${D}${localstatedir}/cache/netdata
+    install --group netdata --owner netdata --directory ${D}${localstatedir}/lib/netdata
+
+    chown -R netdata:netdata ${D}${datadir}/netdata/web
+}
+
+FILES_${PN} += "${localstatedir}/cache/netdata/ ${localstatedir}/lib/netdata/"
+
+RDEPENDS:${PN} = "bash zlib"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_4.16.0.bb b/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_4.16.0.bb
deleted file mode 100644
index 8fbe01d..0000000
--- a/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_4.16.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Catfish is a handy file searching tool for linux and unix"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
-
-inherit xfce-app distutils3 gtk-icon-cache mime-xdg
-
-DEPENDS += "python3-distutils-extra-native"
-
-SRC_URI[sha256sum] = "1f6facee57a659af560f06024ca6f98aa4d638bf57a8bcfb613b4dc70fcc3b47"
-
-FILES:${PN} += "${datadir}/metainfo"
-
-RDEPENDS:${PN} += "python3-pygobject python3-dbus"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb b/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb
new file mode 100644
index 0000000..bf3d7ed
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Catfish is a handy file searching tool for linux and unix"
+SECTION = "x11/application"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
+
+inherit xfce-app setuptools3 gtk-icon-cache mime-xdg
+
+DEPENDS += "python3-distutils-extra-native"
+
+SRC_URI[sha256sum] = "e9a99a62d10981391508dd43f3cbfa2d50a69bd6b7d1eeef7d30ba4c673dcfda"
+
+FILES:${PN} += "${datadir}/metainfo"
+
+RDEPENDS:${PN} += "python3-pygobject python3-dbus"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.1.bb b/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.1.bb
deleted file mode 100644
index bb75e45..0000000
--- a/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.1.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-DESCRIPTION = "An advanced menu editor"
-HOMEPAGE = "https://launchpad.net/menulibre"
-SECTION = "x11/graphics"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = " \
-    python3-distutils-extra-native \
-    intltool-native \
-"
-
-inherit distutils3 gtk-icon-cache features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "https://launchpad.net/menulibre/2.2/${PV}/+download/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "8460ea844a5998c5f722bccb5ce8627a"
-SRC_URI[sha256sum] = "5b3ef8e6073d584f6accf282fa1eb649185ee42eb22fab70231491c7377d7e8f"
-
-do_compile() {
-}
-
-do_install:append() {
-    sed -i 's:${D}::g' ${D}${datadir}/applications/menulibre.desktop
-    sed -i 's:share/share:share:g' ${D}${PYTHON_SITEPACKAGES_DIR}/menulibre_lib/menulibreconfig.py
-}
-
-FILES:${PN} += " \
-    ${datadir}/applications \
-    ${datadir}/menulibre \
-    ${datadir}/icons \
-"
-
-RDEPENDS:${PN} += " \
-    gtk+3 \
-    gtksourceview3 \
-    python3-pygobject \
-    gnome-menus3 \
-    python3-unixadmin \
-    python3-psutil \
-"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.3.bb b/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.3.bb
new file mode 100644
index 0000000..3d0e55d
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.3.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "An advanced menu editor"
+HOMEPAGE = "https://bluesabre.org/menulibre/"
+SECTION = "x11/graphics"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = " \
+    python3-distutils-extra-native \
+    intltool-native \
+"
+
+inherit setuptools3 gtk-icon-cache features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "git://github.com/bluesabre/menulibre.git;protocol=https;branch=master"
+SRCREV = "86ee9ad7568128fe9555e54799933b2d3762331a"
+S = "${WORKDIR}/git"
+
+do_compile[noexec] = "1"
+
+do_install:append() {
+    sed -i 's:${D}::g' ${D}${datadir}/applications/menulibre.desktop
+    sed -i 's:share/share:share:g' ${D}${PYTHON_SITEPACKAGES_DIR}/menulibre_lib/menulibreconfig.py
+}
+
+FILES:${PN} += " \
+    ${datadir}/applications \
+    ${datadir}/metainfo \
+    ${datadir}/icons \
+"
+
+RDEPENDS:${PN} += " \
+    gtk+3 \
+    gtksourceview3 \
+    python3-pygobject \
+    gnome-menus \
+    python3-unixadmin \
+    python3-psutil \
+"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/mousepad/files/0001-Plugin-support-Properly-handle-plugin-settings.patch b/meta-openembedded/meta-xfce/recipes-apps/mousepad/files/0001-Plugin-support-Properly-handle-plugin-settings.patch
deleted file mode 100644
index 0ace907..0000000
--- a/meta-openembedded/meta-xfce/recipes-apps/mousepad/files/0001-Plugin-support-Properly-handle-plugin-settings.patch
+++ /dev/null
@@ -1,279 +0,0 @@
-From 6d1800a305698f801236a2d73ebe178fa2d1139d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <gael@xfce.org>
-Date: Sat, 12 Jun 2021 16:45:56 +0200
-Subject: [PATCH] Plugin support: Properly handle plugin settings
-
-What was done in !92 was strictly speaking only suitable for one plugin.
-This could be extended to several plugins by adding a `.gschema.xml`
-file in `plugins/`, intermediate between the one of the application and
-those of the plugins, or by refactoring the Makefiles with inclusions
-and a single call to `@GSETTINGS_RULES@`.
-
-But in any case, due to the relative rigidity of the `.gschema.xml` file
-format and the internal workings of `glib-compile-schemas`, this would
-only be suitable for plugins that are present at compile time, i.e.
-"fake plugins".
-
-Instead, this commit adds the plugin settings at load time, as is
-natural and as the `GSettingsSchema` documentation states. To do this,
-the setting store is extended to contain several roots: the application
-root and the plugin roots.
-
-For the latter, a unified naming convention is preserved, with the
-prefix `org.xfce.mousepad.plugins.`, but they are in fact completely
-independent of each other and independent of the application root.
-
-Fixes #136, related to !92.
-
-Upstream-Status: Backport [https://gitlab.xfce.org/apps/mousepad/-/commit/0d9d4f05aace800118d0a390e4e5dc5ebb940ca5]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- mousepad/mousepad-application.c               | 12 +++-
- mousepad/mousepad-settings-store.c            | 70 ++++++++++++-------
- mousepad/mousepad-settings-store.h            |  3 +
- mousepad/mousepad-settings.c                  | 14 +++-
- mousepad/mousepad-settings.h                  |  1 +
- mousepad/org.xfce.mousepad.gschema.xml        |  1 -
- ...g.xfce.mousepad.plugins.gspell.gschema.xml |  4 --
- 7 files changed, 71 insertions(+), 34 deletions(-)
-
-diff --git a/mousepad/mousepad-application.c b/mousepad/mousepad-application.c
-index d9a64ff..378d78e 100644
---- a/mousepad/mousepad-application.c
-+++ b/mousepad/mousepad-application.c
-@@ -721,7 +721,7 @@ mousepad_application_load_plugins (MousepadApplication *application)
-   GError                  *error = NULL;
-   GDir                    *dir;
-   const gchar             *basename;
--  gchar                   *provider_name;
-+  gchar                   *provider_name, *schema_id;
-   gchar                  **strs;
-   gsize                    n_strs;
- 
-@@ -775,6 +775,16 @@ mousepad_application_load_plugins (MousepadApplication *application)
-                                            application, G_CONNECT_SWAPPED);
-           g_action_map_add_action (G_ACTION_MAP (application), G_ACTION (action));
- 
-+          /* add its settings to the setting store */
-+          if (g_str_has_prefix (provider_name, "mousepad-plugin-"))
-+            schema_id = provider_name + 16;
-+          else
-+            schema_id = provider_name;
-+
-+          schema_id = g_strconcat (MOUSEPAD_ID, ".plugins.", schema_id, NULL);
-+          mousepad_settings_add_root (schema_id);
-+          g_free (schema_id);
-+
-           /* instantiate this provider types and initialize its action state */
-           if (g_strv_contains ((const gchar *const *) strs, provider_name))
-             {
-diff --git a/mousepad/mousepad-settings-store.c b/mousepad/mousepad-settings-store.c
-index de989bd..d117c53 100644
---- a/mousepad/mousepad-settings-store.c
-+++ b/mousepad/mousepad-settings-store.c
-@@ -29,9 +29,11 @@
- 
- struct MousepadSettingsStore_
- {
--  GObject     parent;
--  GSettings  *root;
--  GHashTable *keys;
-+  GObject parent;
-+
-+  GSettingsBackend *backend;
-+  GList            *roots;
-+  GHashTable       *keys;
- };
- 
- 
-@@ -76,8 +78,10 @@ mousepad_setting_key_new (const gchar *key_name,
- 
- 
- static void
--mousepad_setting_key_free (MousepadSettingKey *key)
-+mousepad_setting_key_free (gpointer data)
- {
-+  MousepadSettingKey *key = data;
-+
-   if (G_LIKELY (key != NULL))
-     {
-       g_object_unref (key->settings);
-@@ -138,16 +142,16 @@ mousepad_settings_store_class_init (MousepadSettingsStoreClass *klass)
- static void
- mousepad_settings_store_finalize (GObject *object)
- {
--  MousepadSettingsStore *self;
-+  MousepadSettingsStore *self = MOUSEPAD_SETTINGS_STORE (object);
- 
-   g_return_if_fail (MOUSEPAD_IS_SETTINGS_STORE (object));
- 
--  self = MOUSEPAD_SETTINGS_STORE (object);
-+  if (self->backend != NULL)
-+    g_object_unref (self->backend);
- 
-+  g_list_free_full (self->roots, g_object_unref);
-   g_hash_table_destroy (self->keys);
- 
--  g_object_unref (self->root);
--
-   G_OBJECT_CLASS (mousepad_settings_store_parent_class)->finalize (object);
- }
- 
-@@ -212,28 +216,19 @@ static void
- mousepad_settings_store_init (MousepadSettingsStore *self)
- {
- #ifdef MOUSEPAD_SETTINGS_KEYFILE_BACKEND
--  GSettingsBackend *backend;
--  gchar            *conf_file;
--  conf_file = g_build_filename (g_get_user_config_dir (),
--                                "Mousepad",
--                                "settings.conf",
--                                NULL);
--  backend = g_keyfile_settings_backend_new (conf_file, "/", NULL);
-+  gchar *conf_file;
-+
-+  conf_file = g_build_filename (g_get_user_config_dir (), "Mousepad", "settings.conf", NULL);
-+  self->backend = g_keyfile_settings_backend_new (conf_file, "/", NULL);
-   g_free (conf_file);
--  self->root = g_settings_new_with_backend (MOUSEPAD_ID, backend);
--  g_object_unref (backend);
- #else
--  self->root = g_settings_new (MOUSEPAD_ID);
-+  self->backend = NULL;
- #endif
- 
--  self->keys = g_hash_table_new_full (g_str_hash,
--                                      g_str_equal,
--                                      NULL,
--                                      (GDestroyNotify) mousepad_setting_key_free);
-+  self->roots = NULL;
-+  self->keys = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, mousepad_setting_key_free);
- 
--  mousepad_settings_store_add_settings (self, MOUSEPAD_ID,
--                                        g_settings_schema_source_get_default (),
--                                        self->root);
-+  mousepad_settings_store_add_root (self, MOUSEPAD_ID);
- }
- 
- 
-@@ -246,6 +241,31 @@ mousepad_settings_store_new (void)
- 
- 
- 
-+void
-+mousepad_settings_store_add_root (MousepadSettingsStore *self,
-+                                  const gchar           *schema_id)
-+{
-+  GSettingsSchemaSource *source;
-+  GSettingsSchema       *schema;
-+  GSettings             *root;
-+
-+  source = g_settings_schema_source_get_default ();
-+  schema = g_settings_schema_source_lookup (source, schema_id, TRUE);
-+
-+  /* exit silently if no schema is found: plugins may have settings or not */
-+  if (schema == NULL)
-+    return;
-+
-+  root = g_settings_new_full (schema, self->backend, NULL);
-+  g_settings_schema_unref (schema);
-+
-+  self->roots = g_list_prepend (self->roots, root);
-+
-+  mousepad_settings_store_add_settings (self, schema_id, source, root);
-+}
-+
-+
-+
- const gchar *
- mousepad_settings_store_lookup_key_name (MousepadSettingsStore *self,
-                                          const gchar           *setting)
-diff --git a/mousepad/mousepad-settings-store.h b/mousepad/mousepad-settings-store.h
-index 3f5cae1..4842036 100644
---- a/mousepad/mousepad-settings-store.h
-+++ b/mousepad/mousepad-settings-store.h
-@@ -38,6 +38,9 @@ GType                  mousepad_settings_store_get_type        (void);
- 
- MousepadSettingsStore *mousepad_settings_store_new             (void);
- 
-+void                   mousepad_settings_store_add_root        (MousepadSettingsStore  *store,
-+                                                                const gchar            *schema_id);
-+
- const gchar           *mousepad_settings_store_lookup_key_name (MousepadSettingsStore  *store,
-                                                                 const gchar            *setting);
- 
-diff --git a/mousepad/mousepad-settings.c b/mousepad/mousepad-settings.c
-index d071de6..66b338d 100644
---- a/mousepad/mousepad-settings.c
-+++ b/mousepad/mousepad-settings.c
-@@ -24,6 +24,15 @@ static MousepadSettingsStore *settings_store = NULL;
- 
- 
- 
-+void
-+mousepad_settings_init (void)
-+{
-+  if (settings_store == NULL)
-+    settings_store = mousepad_settings_store_new ();
-+}
-+
-+
-+
- void
- mousepad_settings_finalize (void)
- {
-@@ -39,10 +48,9 @@ mousepad_settings_finalize (void)
- 
- 
- void
--mousepad_settings_init (void)
-+mousepad_settings_add_root (const gchar *schema_id)
- {
--  if (settings_store == NULL)
--    settings_store = mousepad_settings_store_new ();
-+  mousepad_settings_store_add_root (settings_store, schema_id);
- }
- 
- 
-diff --git a/mousepad/mousepad-settings.h b/mousepad/mousepad-settings.h
-index bc63d11..615be51 100644
---- a/mousepad/mousepad-settings.h
-+++ b/mousepad/mousepad-settings.h
-@@ -87,6 +87,7 @@ G_BEGIN_DECLS
- 
- void       mousepad_settings_init          (void);
- void       mousepad_settings_finalize      (void);
-+void       mousepad_settings_add_root      (const gchar        *schema_id);
- 
- void       mousepad_setting_bind           (const gchar        *setting,
-                                             gpointer            object,
-diff --git a/mousepad/org.xfce.mousepad.gschema.xml b/mousepad/org.xfce.mousepad.gschema.xml
-index e802719..8509ee3 100644
---- a/mousepad/org.xfce.mousepad.gschema.xml
-+++ b/mousepad/org.xfce.mousepad.gschema.xml
-@@ -39,7 +39,6 @@
- 
-   <!-- generic schemas -->
-   <schema id="org.xfce.mousepad" path="/org/xfce/mousepad/" gettext-domain="mousepad">
--    <child name="plugins" schema="org.xfce.mousepad.plugins"/>
-     <child name="preferences" schema="org.xfce.mousepad.preferences"/>
-     <child name="state" schema="org.xfce.mousepad.state"/>
-   </schema>
-diff --git a/plugins/gspell-plugin/org.xfce.mousepad.plugins.gspell.gschema.xml b/plugins/gspell-plugin/org.xfce.mousepad.plugins.gspell.gschema.xml
-index 6db65b6..95295ba 100644
---- a/plugins/gspell-plugin/org.xfce.mousepad.plugins.gspell.gschema.xml
-+++ b/plugins/gspell-plugin/org.xfce.mousepad.plugins.gspell.gschema.xml
-@@ -1,9 +1,5 @@
- <schemalist>
- 
--  <schema id="org.xfce.mousepad.plugins" path="/org/xfce/mousepad/plugins/" gettext-domain="mousepad">
--    <child name="gspell" schema="org.xfce.mousepad.plugins.gspell"/>
--  </schema>
--
-   <schema id="org.xfce.mousepad.plugins.gspell" path="/org/xfce/mousepad/plugins/gspell/" gettext-domain="mousepad">
-     <child name="preferences" schema="org.xfce.mousepad.plugins.gspell.preferences"/>
-   </schema>
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.5.5.bb b/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.5.5.bb
deleted file mode 100644
index bab5642..0000000
--- a/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.5.5.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A simple text editor for Xfce"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-DEPENDS = "gtk+3 gtksourceview4 xfconf xfce4-dev-tools-native"
-
-inherit xfce-app gsettings mime-xdg
-
-SRC_URI += "file://0001-Plugin-support-Properly-handle-plugin-settings.patch"
-
-SRC_URI[sha256sum] = "40c35f00e0e10df50a59bd0dbba9007d2fb5574ed8a2aa73b0fc5ef40e64abe1"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[spell] = "--enable-plugin-gspell,--disable-plugin-gspell,gspell"
-
-FILES:${PN} += " \
-    ${datadir}/glib-2.0/schemas \
-    ${datadir}/metainfo \
-    ${datadir}/polkit-1 \
-"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.5.8.bb b/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.5.8.bb
new file mode 100644
index 0000000..0f847e4
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.5.8.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A simple text editor for Xfce"
+SECTION = "x11/application"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "gtk+3 gtksourceview4 xfconf xfce4-dev-tools-native"
+
+inherit xfce-app gsettings mime-xdg
+
+SRC_URI[sha256sum] = "921ebbcfdfd5e2e56f31a5177a2d26f46c758cc972595017bca9e0a6a3c3a721"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[spell] = "--enable-plugin-gspell,--disable-plugin-gspell,gspell"
+
+FILES:${PN} += " \
+    ${datadir}/glib-2.0/schemas \
+    ${datadir}/metainfo \
+    ${datadir}/polkit-1 \
+"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.11.0.bb b/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.11.0.bb
deleted file mode 100644
index 15717b9..0000000
--- a/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.11.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Tiny image-viewer"
-HOMEPAGE = "https://docs.xfce.org/apps/ristretto/start"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=35d145429ad3cbf5308d1dc93f66376b"
-
-DEPENDS = "exo libexif libxfce4ui libxfce4util xfconf cairo file"
-
-inherit xfce-app mime-xdg
-
-RRECOMMENDS:${PN} += "tumbler"
-
-SRC_URI[sha256sum] = "877e30d412c8cbfa9706f4ac0cab1a478f5829beafb773addc7722ca0cb78823"
-
-FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.12.1.bb b/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.12.1.bb
new file mode 100644
index 0000000..aeeb7e7
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.12.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Tiny image-viewer"
+HOMEPAGE = "https://docs.xfce.org/apps/ristretto/start"
+SECTION = "x11/application"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=35d145429ad3cbf5308d1dc93f66376b"
+
+DEPENDS = "exo libexif libxfce4ui libxfce4util xfconf cairo file"
+
+inherit xfce-app mime-xdg
+
+RRECOMMENDS:${PN} += "tumbler"
+
+SRC_URI[sha256sum] = "13853f9ca18466a8e4788e92c7bde3388a93e8340283568f5dee1a9396ffd7ee"
+
+FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb b/meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb
index 2d4ae7f..e56824e 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb
@@ -7,7 +7,7 @@
 
 DEPENDS = "gtk+3 glib-2.0 xfce4-dev-tools-native intltool-native"
 
-SRC_URI = "git://github.com/ib/xarchiver.git"
+SRC_URI = "git://github.com/ib/xarchiver.git;branch=master;protocol=https"
 SRCREV = "9ab958a4023b62b43972c55a3143ff0722bd88a6"
 PV = "0.5.4.14"
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb
index 2ef81f2..58e628d 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb
@@ -8,7 +8,7 @@
 REQUIRED_DISTRO_FEATURES = "polkit"
 
 SRC_URI = " \
-    git://github.com/ncopa/${BPN}.git \
+    git://github.com/ncopa/${BPN}.git;branch=master;protocol=https \
 "
 SRCREV = "6d3282cc1734c305850d48f5bf4b4d94e88885e9"
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb
index 92317c8..4ae83ce 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb
@@ -6,7 +6,7 @@
 
 DEPENDS = "glib-2.0-native libxfce4ui"
 
-SRC_URI = "git://github.com/schnitzeltony/xfce4-datetime-setter.git;protocol=https \
+SRC_URI = "git://github.com/schnitzeltony/xfce4-datetime-setter.git;protocol=https;branch=master \
            file://fix-inner-dependency.patch \
 "
 SRCREV = "5c7a73a3824b03b91719e05e2604b97c7a72d50f"
diff --git a/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings/imsettings-gcc10.patch b/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings/imsettings-gcc10.patch
index 5328058..35f1cfe 100644
--- a/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings/imsettings-gcc10.patch
+++ b/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings/imsettings-gcc10.patch
@@ -5,18 +5,6 @@
 Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 
-diff -pruN imsettings-1.8.2.orig/imsettings-daemon/imsettings-proc.c imsettings-1.8.2/imsettings-daemon/imsettings-proc.c
---- imsettings-1.8.2.orig/imsettings-daemon/imsettings-proc.c	2019-01-18 20:52:58.000000000 +0900
-+++ imsettings-1.8.2/imsettings-daemon/imsettings-proc.c	2020-01-29 13:33:07.051676780 +0900
-@@ -84,7 +84,7 @@ static gboolean _stop_process
- 
- G_DEFINE_TYPE_WITH_PRIVATE (IMSettingsProc, imsettings_proc, G_TYPE_OBJECT);
- 
--guint signals[LAST_SIGNAL] = { 0 };
-+static guint signals[LAST_SIGNAL] = { 0 };
- 
- /*< private >*/
- static gboolean
 diff -pruN imsettings-1.8.2.orig/imsettings-daemon/imsettings-server.c imsettings-1.8.2/imsettings-daemon/imsettings-server.c
 --- imsettings-1.8.2.orig/imsettings-daemon/imsettings-server.c	2019-11-14 14:08:03.000000000 +0900
 +++ imsettings-1.8.2/imsettings-daemon/imsettings-server.c	2020-01-29 13:32:50.827832726 +0900
diff --git a/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.2.bb b/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.2.bb
deleted file mode 100644
index bc7d1bc..0000000
--- a/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.2.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Delivery framework for general Input Method configuration"
-DESCRIPTION = "IMSettings is a framework that delivers Input Method \
-settings and applies the changes so they take effect \
-immediately without any need to restart applications \
-or the desktop. \
-This package contains the core DBus services and some utilities."
-HOMEPAGE = "http://code.google.com/p/imsettings/"
-SECTION = "Applications/System"
-
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-inherit autotools gtk-doc gobject-introspection gettext features_check
-
-DEPENDS = "gtk+3 libnotify"
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "https://bitbucket.org/tagoh/imsettings/downloads/${BPN}-${PV}.tar.bz2 \
-           file://imsettings-gcc10.patch \
-          "
-SRC_URI[sha256sum] = "412abf3165dbee3cbe03db0c296bab103569a49029429d038569c586ebe9efa9"
-
-EXTRA_OECONF = "--with-xinputsh=50-xinput.sh \
-                --disable-static \
-               "
-
-PACKAGECONFIG ??= "xfce"
-PACKAGECONFIG[xfce] = ",,xfconf"
-PACKAGECONFIG[xim] = ",,libgxim"
-
-RDEPENDS:${PN} += "bash"
-
-FILES:${PN} += "${datadir}/dbus-1/*"
diff --git a/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.3.bb b/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.3.bb
new file mode 100644
index 0000000..c94d5e8
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.3.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Delivery framework for general Input Method configuration"
+DESCRIPTION = "IMSettings is a framework that delivers Input Method \
+settings and applies the changes so they take effect \
+immediately without any need to restart applications \
+or the desktop. \
+This package contains the core DBus services and some utilities."
+HOMEPAGE = "http://code.google.com/p/imsettings/"
+SECTION = "Applications/System"
+
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+inherit autotools gtk-doc gobject-introspection gettext features_check
+
+DEPENDS = "gtk+3 libnotify"
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "https://bitbucket.org/tagoh/imsettings/downloads/${BPN}-${PV}.tar.bz2 \
+           file://imsettings-gcc10.patch \
+          "
+SRC_URI[sha256sum] = "45986b9ca1b87b760a5dbaecd9a2b77d080adc47868a0512826077175d5b3ee3"
+
+EXTRA_OECONF = "--with-xinputsh=50-xinput.sh \
+                --disable-static \
+               "
+
+PACKAGECONFIG ??= "xfce"
+PACKAGECONFIG[xfce] = ",,xfconf"
+PACKAGECONFIG[xim] = ",,libgxim"
+
+RDEPENDS:${PN} += "bash"
+
+FILES:${PN} += "${datadir}/dbus-1/*"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb
index 9d90420..67f4172 100644
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb
@@ -9,7 +9,7 @@
 
 PV = "4.16.0"
 
-SRC_URI = "git://github.com/schnitzeltony/xfce4-closebutton-plugin.git"
+SRC_URI = "git://github.com/schnitzeltony/xfce4-closebutton-plugin.git;branch=master;protocol=https"
 SRCREV = "538f9acfc5d5019f5cde734d056bcc0c95da9b4c"
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.3.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.3.bb
deleted file mode 100644
index 0895e72..0000000
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.3.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "Panel plugin with graphical representation of the cpu frequency"
-HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-cpugraph-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=415654f59d8fa70fe4eac2c3f86c8f5e"
-
-inherit xfce-panel-plugin
-
-SRC_URI[sha256sum] = "fb0cccd9a678136256edd0f04f945e611ab0aa912837f57413ef3bb0f515608c"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.5.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.5.bb
new file mode 100644
index 0000000..ad731e0
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.5.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Panel plugin with graphical representation of the cpu frequency"
+HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-cpugraph-plugin"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=415654f59d8fa70fe4eac2c3f86c8f5e"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "c2f6dbd7f83c79b63b83c98232c79d050e18640e82464b9ec8d3643a92c3a1b0"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin/0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch b/meta-openembedded/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin/0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch
index ac1d603..c4624c6 100644
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin/0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin/0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch
@@ -18,8 +18,8 @@
 index c281af9..60ba0c0 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -209,19 +209,9 @@ dnl Check for interface for /sys/class/power_supply to be used
- AC_ARG_ENABLE([sysfsacpi], [AC_HELP_STRING([--enable-sysfsacpi], [Use /sys/class/power_supply to read your battery value @<:@default=auto@:>@])],
+@@ -203,19 +203,9 @@ dnl Check for interface for /sys/class/power_supply to be used
+ AC_ARG_ENABLE([sysfsacpi], [AS_HELP_STRING([--enable-sysfsacpi], [Use /sys/class/power_supply to read your battery value @<:@default=auto@:>@])],
  [],
  [
 -    enable_sysfsacpi=auto
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.3.95.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.3.95.bb
deleted file mode 100644
index 39fe4b9..0000000
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.3.95.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Sensors plugin for the Xfce Panel"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b94789bed9aec03b9656a9cc5398c706"
-
-inherit xfce-panel-plugin
-
-SRC_URI[sha256sum] = "83c64ae4618dd592971cfa0bc285a9b47af801a3ed856835cdb2a4c533c7846c"
-SRC_URI += "file://0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch"
-
-EXTRA_OECONF = " \
-    --disable-procacpi \
-    --disable-xnvctrl \
-"
-
-do_configure:prepend() {
-    sed -i 's:LIBSENSORS_CFLAGS=.*:LIBSENSORS_CFLAGS=-I${STAGING_INCDIR}:g' ${S}/configure.ac
-}
-
-PACKAGECONFIG[libsensors] = "--enable-libsensors,--disable-libsensors, lmsensors"
-PACKAGECONFIG[hddtemp]    = "--enable-hddtemp,--disable-hddtemp, hddtemp"
-PACKAGECONFIG[netcat]     = "--enable-netcat,--disable-netcat, netcat"
-PACKAGECONFIG[libnotify]  = "--enable-notification,--disable-notification, libnotify"
-
-FILES_SOLIBSDEV = "${libdir}/xfce4/modules/lib*${SOLIBSDEV}"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.4.2.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.4.2.bb
new file mode 100644
index 0000000..c00ca6f
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.4.2.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Sensors plugin for the Xfce Panel"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b94789bed9aec03b9656a9cc5398c706"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "da90f12e6ae995bcd1c81be35479a7a9d32308c65ecd64e568ba8c9592d39fcb"
+SRC_URI += "file://0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch"
+
+EXTRA_OECONF = " \
+    --disable-procacpi \
+    --disable-xnvctrl \
+"
+
+do_configure:prepend() {
+    sed -i 's:LIBSENSORS_CFLAGS=.*:LIBSENSORS_CFLAGS=-I${STAGING_INCDIR}:g' ${S}/configure.ac
+}
+
+PACKAGECONFIG[libsensors] = "--enable-libsensors,--disable-libsensors, lmsensors"
+PACKAGECONFIG[hddtemp]    = "--enable-hddtemp,--disable-hddtemp, hddtemp"
+PACKAGECONFIG[netcat]     = "--enable-netcat,--disable-netcat, netcat"
+PACKAGECONFIG[libnotify]  = "--enable-notification,--disable-notification, libnotify"
+
+FILES_SOLIBSDEV = "${libdir}/xfce4/modules/lib*${SOLIBSDEV}"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.5.3.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.5.3.bb
deleted file mode 100644
index d24f65f..0000000
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.5.3.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "An alternate menu for the Xfce desktop environment"
-HOMEPAGE = "http://gottcode.org/xfce4-whiskermenu-plugin/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit xfce-panel-plugin cmake
-
-SRC_URI[sha256sum] = "39cc34c8a83381997c6faaacb6bf792339234303438a1fccd15c9a1770b87daf"
-
-RRECOMMENDS:${PN} += "menulibre"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.7.1.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.7.1.bb
new file mode 100644
index 0000000..cebe110
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.7.1.bb
@@ -0,0 +1,10 @@
+SUMMARY = "An alternate menu for the Xfce desktop environment"
+HOMEPAGE = "http://gottcode.org/xfce4-whiskermenu-plugin/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin cmake
+
+SRC_URI[sha256sum] = "04ae0c1764a0d5ec70f18a760d998a2109bb6724f048554d7d6999d9072ca63e"
+
+RRECOMMENDS:${PN} += "menulibre"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_4.16.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_4.16.1.bb
deleted file mode 100644
index 4b31af8..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_4.16.1.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "Application library for the Xfce desktop environment"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "gtk+3 libxfce4ui virtual/libx11 liburi-perl-native cairo"
-
-inherit xfce perlnative gtk-doc features_check mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-# SRC_URI must follow inherited one
-SRC_URI += " \
-    file://exo-no-tests-0.8.patch \
-    file://configure.patch \
-"
-
-SRC_URI[sha256sum] = "528dac256315ffc2a4a53b3b421979327962121989886e3cf920aeff9912b53b"
-
-# Note: python bindings did not work in oe-dev and are about to be moved to
-# pyxfce see http://comments.gmane.org/gmane.comp.desktop.xfce.devel.version4/19560
-FILES:${PN} += " \
-    ${datadir}/xfce4/ \
-    ${libdir}/xfce4/exo* \
-"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_4.16.3.bb b/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_4.16.3.bb
new file mode 100644
index 0000000..f27171d
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_4.16.3.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Application library for the Xfce desktop environment"
+SECTION = "x11"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "gtk+3 libxfce4ui virtual/libx11 liburi-perl-native cairo"
+
+inherit xfce perlnative gtk-doc features_check mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+# SRC_URI must follow inherited one
+SRC_URI += " \
+    file://exo-no-tests-0.8.patch \
+    file://configure.patch \
+"
+
+SRC_URI[sha256sum] = "722dff3c3fe23f0a65405e63889cf247c99d092d3f9fb16dec78d062cfb8fae6"
+
+# Note: python bindings did not work in oe-dev and are about to be moved to
+# pyxfce see http://comments.gmane.org/gmane.comp.desktop.xfce.devel.version4/19560
+FILES:${PN} += " \
+    ${datadir}/xfce4/ \
+    ${libdir}/xfce4/exo* \
+"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui/0002-Remove-GTK2-leftovers.patch b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui/0002-Remove-GTK2-leftovers.patch
deleted file mode 100644
index cd6ca32..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui/0002-Remove-GTK2-leftovers.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From fb7bd8511d55cf0d24f6f93768f51773cf434a59 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Fri, 8 Jan 2021 21:59:45 +0100
-Subject: [PATCH] Remove GTK2 leftovers
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It seems that these cause install performed twice causing natsy races -
-see [1] and search for 'TOPDIR/build/tmpfs/hosttools/install -c -m 644
-../../libxfce4ui-4.16.0/libxfce4ui/libxfce4ui.h'
-
-[1] https://errors.yoctoproject.org/Errors/Details/540832/
-
-Upstream-Status: Submitted [https://gitlab.xfce.org/xfce/libxfce4ui/-/merge_requests/29]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- libxfce4ui/Makefile.am | 9 ---------
- 1 file changed, 9 deletions(-)
-
-diff --git a/libxfce4ui/Makefile.am b/libxfce4ui/Makefile.am
-index 935eece..bc5afac 100644
---- a/libxfce4ui/Makefile.am
-+++ b/libxfce4ui/Makefile.am
-@@ -51,15 +51,6 @@ libxfce4ui_sources = \
- 	xfce-filename-input.c \
- 	xfce-titled-dialog.c
- 
--libxfce4ui_includedir = \
--	$(includedir)/xfce4/libxfce4ui-$(LIBXFCE4UI_VERSION_API)/libxfce4ui
--
--libxfce4ui_include_HEADERS = \
--	$(libxfce4ui_headers)
--
--
--
--
- ##
- ## GTK+ 3 support library
- ##
--- 
-2.26.2
-
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.16.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.16.0.bb
deleted file mode 100644
index 7b46c2a..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.16.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Xfce4 Widget library and X Window System interaction"
-SECTION = "x11/libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
-DEPENDS = "intltool-native perl-native gtk+3 libice libsm libxfce4util xfce4-dev-tools xfconf virtual/libx11"
-
-inherit xfce gtk-doc gobject-introspection features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-# TODO: Check if 0001-... can go
-SRC_URI += " \
-    file://0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch \
-    file://0002-Remove-GTK2-leftovers.patch \
-"
-SRC_URI[sha256sum] = "8b06c9e94f4be88a9d87c47592411b6cbc32073e7af9cbd64c7b2924ec90ceaa"
-
-EXTRA_OECONF += "--with-vendor-info=${DISTRO}"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gladeui2] = "--enable-gladeui2,--disable-gladeui2,glade"
-PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
-
-PACKAGES += "${PN}-glade"
-FILES:${PN}-glade = " \
-    ${libdir}/glade \
-    ${datadir}/glade \
-"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.16.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.16.1.bb
new file mode 100644
index 0000000..a8ede83
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.16.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Xfce4 Widget library and X Window System interaction"
+SECTION = "x11/libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
+DEPENDS = "intltool-native perl-native gtk+3 libice libsm libxfce4util xfce4-dev-tools xfconf virtual/libx11"
+
+inherit xfce gtk-doc gobject-introspection features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+# TODO: Check if 0001-... can go
+SRC_URI += "file://0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch"
+SRC_URI[sha256sum] = "d96946ae5af6bf078dda415419e0021909f763ee0020b42f3e26f603e51585f6"
+
+EXTRA_OECONF += "--with-vendor-info=${DISTRO}"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gladeui2] = "--enable-gladeui2,--disable-gladeui2,glade"
+PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
+
+PACKAGES += "${PN}-glade"
+FILES:${PN}-glade = " \
+    ${libdir}/glade \
+    ${datadir}/glade \
+"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb b/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb
index 9545ad1..c56af6f 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb
@@ -2,6 +2,9 @@
 SECTION = "x11/wm"
 PR = "r5"
 
+# librsvg-gtk gets debian renamed to librsvg-2-gtk
+PACKAGE_ARCH = "${TUNE_PKGARCH}"
+
 inherit packagegroup features_check
 
 REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_4.16.8.bb b/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_4.16.8.bb
deleted file mode 100644
index 41963b9..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_4.16.8.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "File manager for the Xfce Desktop Environment"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "exo gdk-pixbuf libxfce4ui libsm startup-notification libnotify xfce4-panel udev"
-
-inherit xfce gobject-introspection features_check mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[sha256sum] = "038ca228d220cd0ba1b7b76465d8a51f2433ad1f74648d1d291daa0a24cb3195"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre"
-
-FILES:${PN} += " \
-    ${libdir}/thunarx-3/* \
-    ${libdir}/xfce4/panel/plugins/* \
-    ${libdir}/Thunar/[Tt]hunar* \
-    ${systemd_user_unitdir} \
-    ${datadir}/dbus-1 \
-    ${datadir}/metainfo \
-    ${datadir}/polkit-1 \
-    ${datadir}/Thunar \
-    ${datadir}/xfce4/panel/plugins/* \
-"
-
-RRECOMMENDS:${PN} = "gvfs gvfsd-trash"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_4.16.9.bb b/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_4.16.9.bb
new file mode 100644
index 0000000..0872110
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_4.16.9.bb
@@ -0,0 +1,28 @@
+SUMMARY = "File manager for the Xfce Desktop Environment"
+SECTION = "x11"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = "libxml-parser-perl-native exo gdk-pixbuf libxfce4ui libsm startup-notification libnotify xfce4-panel udev"
+
+inherit xfce gobject-introspection features_check mime-xdg perlnative
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[sha256sum] = "520bf318eef8bc792db38ae4af343b648f87d4b8d66f5b5d6f092e15264ee5af"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre"
+
+FILES:${PN} += " \
+    ${libdir}/thunarx-3/* \
+    ${libdir}/xfce4/panel/plugins/* \
+    ${libdir}/Thunar/[Tt]hunar* \
+    ${systemd_user_unitdir} \
+    ${datadir}/dbus-1 \
+    ${datadir}/metainfo \
+    ${datadir}/polkit-1 \
+    ${datadir}/Thunar \
+    ${datadir}/xfce4/panel/plugins/* \
+"
+
+RRECOMMENDS:${PN} = "gvfs gvfsd-trash"
diff --git a/meta-raspberrypi/.readthedocs.yaml b/meta-raspberrypi/.readthedocs.yaml
new file mode 100644
index 0000000..454f385
--- /dev/null
+++ b/meta-raspberrypi/.readthedocs.yaml
@@ -0,0 +1,6 @@
+version: 2
+
+python:
+  version: "3.7"
+  install:
+    - requirements: docs/requirements.txt
diff --git a/meta-raspberrypi/README.md b/meta-raspberrypi/README.md
index 7e95cc4..c6d6392 100644
--- a/meta-raspberrypi/README.md
+++ b/meta-raspberrypi/README.md
@@ -2,22 +2,18 @@
 
 Yocto BSP layer for the Raspberry Pi boards - <http://www.raspberrypi.org/>.
 
-[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi1/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi1)
-[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi2/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi2)
-[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi3/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi3)
-[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi4/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi4)
 [![Documentation Status](https://readthedocs.org/projects/meta-raspberrypi/badge/?version=latest)](https://meta-raspberrypi.readthedocs.io/en/latest/?badge=latest)
-[![Matrix](https://img.shields.io/matrix/meta-raspberrypi:cub.icu.svg?server_fqdn=matrix.cub.icu)](https://matrix.to/#/#meta-raspberrypi:cub.icu)
+[![Matrix](https://img.shields.io/badge/chat-meta--raspberrypi-brightgreen)](https://matrix.to/#/#meta-raspberrypi:matrix.org)
 
-|                           |                                                           |
-|:-:                        | :-:                                                       |
-| Build server sponsored by | [![balena.io](./img/balena.png)](https://www.balena.io/). |
+|                           |                                        |
+|:-:                        | :-:                                    |
+| Build server sponsored by | [balena.io](https://www.balena.io/) |
 
 ## Quick links
 
 * Git repository web frontend:
   <https://github.com/agherzan/meta-raspberrypi>
-* Mailing list (yocto mailing list): <yocto@yoctoproject.org>
+* Mailing list (yocto mailing list): <yocto@lists.yoctoproject.org>
 * Issues management (Github Issues):
   <https://github.com/agherzan/meta-raspberrypi/issues>
 * Documentation: <http://meta-raspberrypi.readthedocs.io/en/latest/>
@@ -81,4 +77,4 @@
 
 ## Maintainers
 
-* Andrei Gherzan `<andrei at gherzan.ro>`
+* Andrei Gherzan `<andrei at gherzan.com>`
diff --git a/meta-raspberrypi/conf/machine/include/rpi-base.inc b/meta-raspberrypi/conf/machine/include/rpi-base.inc
index a4db938..0e65d00 100644
--- a/meta-raspberrypi/conf/machine/include/rpi-base.inc
+++ b/meta-raspberrypi/conf/machine/include/rpi-base.inc
@@ -22,6 +22,7 @@
     overlays/gpio-ir.dtbo \
     overlays/gpio-ir-tx.dtbo \
     overlays/gpio-key.dtbo \
+    overlays/gpio-poweroff.dtbo \
     overlays/hifiberry-amp.dtbo \
     overlays/hifiberry-dac.dtbo \
     overlays/hifiberry-dacplus.dtbo \
diff --git a/meta-raspberrypi/conf/machine/raspberrypi0-2w-64.conf b/meta-raspberrypi/conf/machine/raspberrypi0-2w-64.conf
new file mode 100644
index 0000000..8e4729a
--- /dev/null
+++ b/meta-raspberrypi/conf/machine/raspberrypi0-2w-64.conf
@@ -0,0 +1,17 @@
+#@TYPE: Machine
+#@NAME: RaspberryPi0 2 Wifi Development Board
+#@DESCRIPTION: Machine configuration for the RaspberryPi0 2 Wifi in 64 bits mode
+
+include conf/machine/raspberrypi3-64.conf
+
+MACHINEOVERRIDES := "${@'${MACHINEOVERRIDES}'.replace(':${MACHINE}',':raspberrypi3-64:${MACHINE}')}"
+
+MACHINE_EXTRA_RRECOMMENDS += "\
+    linux-firmware-rpidistro-bcm43436 \
+    linux-firmware-rpidistro-bcm43436s \
+    bluez-firmware-rpidistro-bcm43430b0-hcd \
+"
+
+RPI_KERNEL_DEVICETREE = " \
+    broadcom/bcm2710-rpi-zero-2.dtb \
+    "
diff --git a/meta-raspberrypi/conf/machine/raspberrypi4-64.conf b/meta-raspberrypi/conf/machine/raspberrypi4-64.conf
index 6032dc8..4255431 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi4-64.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi4-64.conf
@@ -8,6 +8,8 @@
 MACHINE_EXTRA_RRECOMMENDS += "\
     linux-firmware-rpidistro-bcm43455 \
     bluez-firmware-rpidistro-bcm4345c0-hcd \
+    linux-firmware-rpidistro-bcm43456 \
+    bluez-firmware-rpidistro-bcm4345c5-hcd \
 "
 
 require conf/machine/include/arm/armv8a/tune-cortexa72.inc
diff --git a/meta-raspberrypi/conf/machine/raspberrypi4.conf b/meta-raspberrypi/conf/machine/raspberrypi4.conf
index 535a575..86c57ed 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi4.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi4.conf
@@ -10,6 +10,8 @@
 MACHINE_EXTRA_RRECOMMENDS += "\
     linux-firmware-rpidistro-bcm43455 \
     bluez-firmware-rpidistro-bcm4345c0-hcd \
+    linux-firmware-rpidistro-bcm43456 \
+    bluez-firmware-rpidistro-bcm4345c5-hcd \
 "
 
 # 'l' stands for LPAE
diff --git a/meta-raspberrypi/docs/conf.py b/meta-raspberrypi/docs/conf.py
index fcebbf1..5c6ae4b 100644
--- a/meta-raspberrypi/docs/conf.py
+++ b/meta-raspberrypi/docs/conf.py
@@ -30,7 +30,7 @@
 # Add any Sphinx extension module names here, as strings. They can be
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 # ones.
-extensions = []
+extensions = ['myst_parser']
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
@@ -50,7 +50,7 @@
 
 # General information about the project.
 project = 'meta-raspberrypi'
-copyright = '2017, meta-raspberrypi contributors'
+copyright = '2021, meta-raspberrypi contributors'
 author = 'meta-raspberrypi contributors'
 
 # The version info for the project you're documenting, acts as replacement for
@@ -154,7 +154,7 @@
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
+#html_static_path = ['_static']
 
 # Add any extra paths that contain custom files (such as robots.txt or
 # .htaccess) here, relative to this directory. These files are copied
@@ -337,7 +337,3 @@
 # If true, do not generate a @detailmenu in the "Top" node's menu.
 #
 # texinfo_no_detailmenu = False
-
-source_parsers = {
-    '.md': 'recommonmark.parser.CommonMarkParser',
-}
diff --git a/meta-raspberrypi/docs/contributing.md b/meta-raspberrypi/docs/contributing.md
index 7d18400..5b712ae 100644
--- a/meta-raspberrypi/docs/contributing.md
+++ b/meta-raspberrypi/docs/contributing.md
@@ -4,8 +4,8 @@
 
 The main communication tool in use is the Yocto Project mailing list:
 
-* <yocto@yoctoproject.org>
-* <https://lists.yoctoproject.org/listinfo/yocto>
+* <yocto@lists.yoctoproject.org>
+* <https://lists.yoctoproject.org/g/yocto>
 
 Feel free to ask any kind of questions but please always prepend your email
 subject with `[meta-raspberrypi]` as this is the global *Yocto* mailing
@@ -84,7 +84,7 @@
 
 Then, for sending patches to the mailing list, you may use this command:
 
-    git send-email --to yocto@yoctoproject.org <generated patch>
+    git send-email --to yocto@lists.yoctoproject.org <generated patch>
 
 ## GitHub issues
 
diff --git a/meta-raspberrypi/docs/layer-contents.md b/meta-raspberrypi/docs/layer-contents.md
index 5483708..7383630 100644
--- a/meta-raspberrypi/docs/layer-contents.md
+++ b/meta-raspberrypi/docs/layer-contents.md
@@ -5,6 +5,7 @@
 * raspberrypi
 * raspberrypi0
 * raspberrypi0-wifi
+* raspberrypi0-2w-64
 * raspberrypi2
 * raspberrypi3
 * raspberrypi3-64 (64 bit kernel & userspace)
diff --git a/meta-raspberrypi/docs/requirements.txt b/meta-raspberrypi/docs/requirements.txt
new file mode 100644
index 0000000..9e4694f
--- /dev/null
+++ b/meta-raspberrypi/docs/requirements.txt
@@ -0,0 +1 @@
+myst_parser
diff --git a/meta-raspberrypi/lib/oeqa/runtime/cases/parselogs_rpi.py b/meta-raspberrypi/lib/oeqa/runtime/cases/parselogs_rpi.py
index 4a94310..49226ae 100644
--- a/meta-raspberrypi/lib/oeqa/runtime/cases/parselogs_rpi.py
+++ b/meta-raspberrypi/lib/oeqa/runtime/cases/parselogs_rpi.py
@@ -1,12 +1,6 @@
 from oeqa.runtime.cases.parselogs import *
 
 rpi_errors = [
-    'bcmgenet fd580000.genet: failed to get enet-eee clock',
-    'bcmgenet fd580000.genet: failed to get enet-wol clock',
-    'bcmgenet fd580000.genet: failed to get enet clock',
-    'bcmgenet fd580000.ethernet: failed to get enet-eee clock',
-    'bcmgenet fd580000.ethernet: failed to get enet-wol clock',
-    'bcmgenet fd580000.ethernet: failed to get enet clock',
 ]
 
 ignore_errors['raspberrypi4'] = rpi_errors + common_errors
diff --git a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
index 96453ef..f78c6d7 100644
--- a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
+++ b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
@@ -8,7 +8,7 @@
 COMPATIBLE_MACHINE = "^rpi$"
 
 SRCREV = "648ffc470824c43eb0d16c485f4c24816b32cd6f"
-SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=git;branch=master \
+SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=https;branch=master \
           "
 
 S = "${WORKDIR}/git"
@@ -30,6 +30,8 @@
 
 CAN_OSCILLATOR ?= "16000000"
 
+ENABLE_UART ??= ""
+
 WM8960="${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"
 
 inherit deploy nopackages
@@ -174,9 +176,11 @@
     fi
 
     # UART support
-    if [ "${ENABLE_UART}" = "1" ]; then
+    if [ "${ENABLE_UART}" = "1" ] || [ "${ENABLE_UART}" = "0" ] ; then
         echo "# Enable UART" >>$CONFIG
-        echo "enable_uart=1" >>$CONFIG
+        echo "enable_uart=${ENABLE_UART}" >>$CONFIG
+    elif [ -n "${ENABLE_UART}" ]; then
+        bbfatal "Invalid value for ENABLE_UART [${ENABLE_UART}]. The value for ENABLE_UART can be 0 or 1."
     fi
 
     # Infrared support
diff --git a/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc b/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc
index 3dcfb9d..dda6ae0 100644
--- a/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc
+++ b/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc
@@ -1,9 +1,9 @@
-RPIFW_DATE ?= "20210914"
-SRCREV ?= "d5d14f484cec739901a088a58eed62452b6dadeb"
+RPIFW_DATE ?= "20211007"
+SRCREV ?= "0c4fc71befd228419a225c84d316cabbda8633a7"
 RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/${SRCREV}.tar.gz;downloadfilename=raspberrypi-firmware-${SRCREV}.tar.gz"
 RPIFW_S ?= "${WORKDIR}/firmware-${SRCREV}"
 
 SRC_URI = "${RPIFW_SRC_URI}"
-SRC_URI[sha256sum] = "f5b3d9fa60afbc103b00bc7f5899ea49ef61d353b88624b42dbf7669446a44ac"
+SRC_URI[sha256sum] = "2502930165328be3b292389b1f7e25365c724000d6c404b63a5a0ba7af120aa7"
 
 PV = "${RPIFW_DATE}"
diff --git a/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.17.bb b/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.17.bb
index 75b581d..1c3daff 100644
--- a/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.17.bb
+++ b/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.17.bb
@@ -7,7 +7,7 @@
 "
 
 SRC_URI = "\
-    git://github.com/RPi-Distro/pi-bluetooth \
+    git://github.com/RPi-Distro/pi-bluetooth;branch=master;protocol=https \
     file://0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch \
 "
 SRCREV = "fd4775bf90e037551532fc214a958074830bb80d"
diff --git a/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb b/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb
index 4aa7427..1d21089 100644
--- a/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb
+++ b/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://README.md;beginline=268;endline=292;md5=86d10e4bcf4b4014d306dde7c1d2a80d"
 
-SRC_URI = "git://github.com/sarfata/pi-blaster \
+SRC_URI = "git://github.com/sarfata/pi-blaster;branch=master;protocol=https \
            file://remove-initscript-lsb-dependency.patch \
            "
 
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-blinka_6.2.2.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-blinka_6.2.2.bb
index 4659ad9..b9fb915 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-blinka_6.2.2.bb
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-blinka_6.2.2.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=660e614bc7efb0697cc793d8a22a55c2"
 
-SRC_URI = "git://github.com/adafruit/Adafruit_Blinka.git;branch=main"
+SRC_URI = "git://github.com/adafruit/Adafruit_Blinka.git;branch=main;protocol=https"
 SRCREV = "dc688f354fe779c9267c208b99f310af87e79272"
 
 S = "${WORKDIR}/git"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-busdevice_5.0.5.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-busdevice_5.0.5.bb
index 7cccd58..2cf8afd 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-busdevice_5.0.5.bb
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-busdevice_5.0.5.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec69d6e9e6c85adfb7799d7f8cf044e"
 
-SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_BusDevice.git;branch=main"
+SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_BusDevice.git;branch=main;protocol=https"
 SRCREV = "1bfe8005293205e2f7b2cc498ab5a946f1133b40"
 
 S = "${WORKDIR}/git"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motor_3.2.6.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motor_3.2.6.bb
index c5da4ac..d572cab 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motor_3.2.6.bb
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motor_3.2.6.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b72678307cc7c10910b5ef460216af07"
 
-SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Motor.git;branch=main"
+SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Motor.git;branch=main;protocol=https"
 SRCREV = "2251bfc0501d0acfb96c0a43f4f2b4c6a10ca14e"
 
 S = "${WORKDIR}/git"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motorkit_1.6.1.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motorkit_1.6.1.bb
index eacca3e..94eed3e 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motorkit_1.6.1.bb
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motorkit_1.6.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=6ad4a8854b39ad474755ef1aea813bac"
 
-SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_MotorKit.git;branch=main"
+SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_MotorKit.git;branch=main;protocol=https"
 SRCREV = "8c1462b4129b21f6db156d1517abb017bb74b982"
 
 S = "${WORKDIR}/git"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-pca9685_3.3.4.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-pca9685_3.3.4.bb
index 23cd786..8656d75 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-pca9685_3.3.4.bb
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-pca9685_3.3.4.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e7eb6b599fb0cfb06485c64cd4242f62"
 
-SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_PCA9685.git;branch=main"
+SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_PCA9685.git;branch=main;protocol=https"
 SRCREV = "2780c4102f4c23fbab252aa1198b61ba7e2d1b2c"
 
 S = "${WORKDIR}/git"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.4.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.4.bb
index ccf5eaa..1f745e7 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.4.bb
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.4.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec69d6e9e6c85adfb7799d7f8cf044e"
 
-SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Register.git;branch=main"
+SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Register.git;branch=main;protocol=https"
 
 S = "${WORKDIR}/git"
 SRCREV = "5fee6e0c3878110844bc51e16063eeae7d94c457"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.1.1.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.1.1.bb
index b88affa..170cd98 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.1.1.bb
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.1.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=fccd531dce4b989c05173925f0bbb76c"
 
-SRC_URI = "git://github.com/adafruit/Adafruit_Python_PlatformDetect.git;branch=main"
+SRC_URI = "git://github.com/adafruit/Adafruit_Python_PlatformDetect.git;branch=main;protocol=https"
 SRCREV = "e0fe1b012898fa824944d6805ca74be0fa027968"
 
 S = "${WORKDIR}/git"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-pureio_1.1.8.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-pureio_1.1.8.bb
index 63c7166..e38a483 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-pureio_1.1.8.bb
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-pureio_1.1.8.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=2a21fcca821a506d4c36f7bbecc0d009"
 
-SRC_URI = "git://github.com/adafruit/Adafruit_Python_PureIO.git;branch=main"
+SRC_URI = "git://github.com/adafruit/Adafruit_Python_PureIO.git;branch=main;protocol=https"
 SRCREV = "f4d0973da05b8b21905ff6bab69cdb652128f342"
 
 S = "${WORKDIR}/git"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-rtimu_git.bb b/meta-raspberrypi/recipes-devtools/python/python3-rtimu_git.bb
index 4f13a38..c9f1cec 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-rtimu_git.bb
+++ b/meta-raspberrypi/recipes-devtools/python/python3-rtimu_git.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://../../LICENSE;md5=96cdecb41125f498958e09b72faf318e"
 
-SRC_URI = "git://github.com/RPi-Distro/RTIMULib.git;protocol=http;branch=master \
+SRC_URI = "git://github.com/RPi-Distro/RTIMULib.git;protocol=http;branch=master;protocol=https \
            file://0001-include-asm-ioctl.h-for-ioctl-define.patch;patchdir=../.. \
           "
 SRCREV = "b949681af69b45f0f7f4bb53b6770037b5b02178"
diff --git a/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend b/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend
index 09c8db7..7000ead 100644
--- a/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend
+++ b/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend
@@ -2,5 +2,5 @@
 # With oe-core commit 8509e2e1a87578882b71948ccef3b50ccf1228b3 dri3 is set
 # as default. To state out clearly that Raspi needs dri3 and to avoid surprises
 # in case oe-core changes this default, we set dri3 explicitly.
-PACKAGECONFIG:append:rpi = " gallium vc4 v3d kmsro ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)}"
+PACKAGECONFIG:append:rpi = " gallium vc4 v3d kmsro ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)} ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'vulkan broadcom', '', d)}"
 DRIDRIVERS:class-target:rpi = ""
diff --git a/meta-raspberrypi/recipes-graphics/raspidmx/raspidmx_git.bb b/meta-raspberrypi/recipes-graphics/raspidmx/raspidmx_git.bb
index c81fb03..4729e8c 100644
--- a/meta-raspberrypi/recipes-graphics/raspidmx/raspidmx_git.bb
+++ b/meta-raspberrypi/recipes-graphics/raspidmx/raspidmx_git.bb
@@ -7,7 +7,7 @@
 COMPATIBLE_HOST = "null"
 COMPATIBLE_HOST:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'null', '(.*)', d)}"
 
-SRC_URI = "git://github.com/AndrewFromMelbourne/raspidmx;protocol=https \
+SRC_URI = "git://github.com/AndrewFromMelbourne/raspidmx;protocol=https;branch=master \
            file://0001-gitignore-add-archives-from-lib-directory.patch \
            file://0002-add-install-targets-to-Makefiles.patch \
            file://0003-switch-to-pkg-config.patch \
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland_git.bb b/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
index a2ae918..5676c31 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
+++ b/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
@@ -20,7 +20,7 @@
 PV = "20210623"
 
 SRC_URI = "\
-    git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \
+    git://github.com/${SRCFORK}/userland.git;protocol=https;branch=${SRCBRANCH} \
     file://0001-Allow-applications-to-set-next-resource-handle.patch \
     file://0002-wayland-Add-support-for-the-Wayland-winsys.patch \
     file://0003-wayland-Add-Wayland-example.patch \
diff --git a/meta-raspberrypi/recipes-graphics/wayland/weston-init.bbappend b/meta-raspberrypi/recipes-graphics/wayland/weston-init.bbappend
new file mode 100644
index 0000000..b6d6f2e
--- /dev/null
+++ b/meta-raspberrypi/recipes-graphics/wayland/weston-init.bbappend
@@ -0,0 +1,10 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+do_install:append:rpi() {
+    if [ -e ${D}/${sysconfdir}/init.d/weston ]; then
+        sed -i 's#weston-start --#weston-start -- --continue-without-input#' ${D}/${sysconfdir}/init.d/weston
+    fi
+    if [ -e ${D}${systemd_system_unitdir}/weston.service ]; then
+        sed -i 's#ExecStart=/usr/bin/weston#ExecStart=/usr/bin/weston --continue-without-input#' ${D}${systemd_system_unitdir}/weston.service
+    fi
+}
diff --git a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb
index ef8df32..2e3d1cc 100644
--- a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb
+++ b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb
@@ -23,7 +23,7 @@
 # so that the license files will be copied from fetched source
 NO_GENERIC_LICENSE[Firmware-cypress-rpidistro] = "LICENCE.cypress-rpidistro"
 
-SRC_URI = "git://github.com/RPi-Distro/bluez-firmware"
+SRC_URI = "git://github.com/RPi-Distro/bluez-firmware;branch=master;protocol=https"
 SRCREV = "e7fd166981ab4bb9a36c2d1500205a078a35714d"
 PV = "1.2-4+rpt8"
 
diff --git a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
index 4f242d3..95cd9c1 100644
--- a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
+++ b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
@@ -6,12 +6,12 @@
 SECTION = "kernel"
 
 # In maintained upstream linux-firmware:
-# * brcmfmac43430-sdio falls under LICENCE.cypress
-# * brcmfmac43455-sdio falls under LICENCE.broadcom_bcm43xx
-# * brcmfmac43456-sdio falls under LICENCE.broadcom_bcm43xx
+# * brcmfmac43430-sdio falls under LICENSE.cypress
+# * brcmfmac43455-sdio falls under LICENSE.broadcom_bcm43xx
+# * brcmfmac43456-sdio falls under LICENSE.broadcom_bcm43xx
 #
-# It is likely[^1] that both of these should be under LICENCE.cypress.
-# Further, at this time the text of LICENCE.broadcom_bcm43xx is the same
+# It is likely[^1] that both of these should be under LICENSE.cypress.
+# Further, at this time the text of LICENSE.broadcom_bcm43xx is the same
 # in linux-firmware and RPi-Distro/firmware-nonfree, but this may
 # change.
 #
@@ -22,22 +22,19 @@
 # [^1]: https://github.com/RPi-Distro/bluez-firmware/issues/1
 LICENSE = "\
     Firmware-broadcom_bcm43xx-rpidistro \
-    & WHENCE \
 "
 LIC_FILES_CHKSUM = "\
-    file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \
-    file://WHENCE;md5=7b12b2224438186e4c97c4c7f3a5cc28 \
+    file://debian/config/brcm80211/LICENSE;md5=8cba1397cda6386db37210439a0da3eb \
 "
 
 # These are not common licenses, set NO_GENERIC_LICENSE for them
 # so that the license files will be copied from fetched source
-NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx-rpidistro] = "LICENCE.broadcom_bcm43xx"
-NO_GENERIC_LICENSE[WHENCE] = "WHENCE"
+NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx-rpidistro] = "debian/config/brcm80211/LICENSE"
 
-SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree"
+SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree;branch=bullseye;protocol=https"
 
-SRCREV = "83938f78ca2d5a0ffe0c223bb96d72ccc7b71ca5"
-PV = "20190114-1+rpt11"
+SRCREV = "b3eec612566ca08913f0830d299f4df70297428f"
+PV = "20210315-3+rpt3"
 
 S = "${WORKDIR}/git"
 
@@ -50,23 +47,20 @@
 }
 
 do_install() {
-    install -d ${D}${nonarch_base_libdir}/firmware/brcm
+    install -d ${D}${nonarch_base_libdir}/firmware/brcm ${D}${nonarch_base_libdir}/firmware/cypress
 
-    cp ./LICENCE.broadcom_bcm43xx ${D}${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx-rpidistro
+    cp debian/config/brcm80211/LICENSE ${D}${nonarch_base_libdir}/firmware/LICENSE.broadcom_bcm43xx-rpidistro
 
     # Replace outdated linux-firmware files with updated ones from
     # raspbian firmware-nonfree. Raspbian adds blobs and nvram
     # definitions that are also necessary so copy those too.
-    for fw in brcmfmac43430-sdio brcmfmac43455-sdio brcmfmac43456-sdio ; do
-        install -m 0644 brcm/${fw}.* ${D}${nonarch_base_libdir}/firmware/brcm/
+    for fw in brcmfmac43430-sdio brcmfmac43436-sdio brcmfmac43436s-sdio brcmfmac43455-sdio brcmfmac43456-sdio ; do
+        cp -R --no-dereference --preserve=mode,links -v debian/config/brcm80211/brcm/${fw}.* ${D}${nonarch_base_libdir}/firmware/brcm/
     done
+    cp -R --no-dereference --preserve=mode,links -v debian/config/brcm80211/cypress/* ${D}${nonarch_base_libdir}/firmware/cypress/
     # add compat links. Fixes errors like
-    # brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt failed with error -2
-    ln -s brcmfmac43455-sdio.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt
+    # brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-compute-module.txt failed with error -2
     ln -s brcmfmac43455-sdio.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt
-    ln -s brcmfmac43455-sdio.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
-    ln -s brcmfmac43430-sdio.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt
-    ln -s brcmfmac43430-sdio.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt
 }
 
 PACKAGES = "\
@@ -74,27 +68,57 @@
     ${PN}-bcm43430 \
     ${PN}-bcm43455 \
     ${PN}-bcm43456 \
+    ${PN}-bcm43436 \
+    ${PN}-bcm43436s \
 "
 
 LICENSE:${PN}-bcm43430 = "Firmware-broadcom_bcm43xx-rpidistro"
+LICENSE:${PN}-bcm43436 = "Firmware-broadcom_bcm43xx-rpidistro"
+LICENSE:${PN}-bcm43436s = "Firmware-broadcom_bcm43xx-rpidistro"
 LICENSE:${PN}-bcm43455 = "Firmware-broadcom_bcm43xx-rpidistro"
 LICENSE:${PN}-bcm43456 = "Firmware-broadcom_bcm43xx-rpidistro"
 LICENSE:${PN}-broadcom-license = "Firmware-broadcom_bcm43xx-rpidistro"
-FILES:${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx-rpidistro"
-FILES:${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430*"
-FILES:${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455*"
+FILES:${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENSE.broadcom_bcm43xx-rpidistro"
+FILES:${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430* ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.bin"
+FILES:${PN}-bcm43436 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436-*"
+FILES:${PN}-bcm43436s = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436s*"
+FILES:${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455* ${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio.*"
 FILES:${PN}-bcm43456 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43456*"
 RDEPENDS:${PN}-bcm43430 += "${PN}-broadcom-license"
+RDEPENDS:${PN}-bcm43436 += "${PN}-broadcom-license"
+RDEPENDS:${PN}-bcm43436s += "${PN}-broadcom-license"
 RDEPENDS:${PN}-bcm43455 += "${PN}-broadcom-license"
 RDEPENDS:${PN}-bcm43456 += "${PN}-broadcom-license"
 RCONFLICTS:${PN}-bcm43430 = "\
     linux-firmware-bcm43430 \
     linux-firmware-raspbian-bcm43430 \
 "
+
 RREPLACES:${PN}-bcm43430 = "\
     linux-firmware-bcm43430 \
     linux-firmware-raspbian-bcm43430 \
 "
+
+RCONFLICTS:${PN}-bcm43436 = "\
+    linux-firmware-bcm43436 \
+    linux-firmware-raspbian-bcm43436 \
+"
+
+RREPLACES:${PN}-bcm43436 = "\
+    linux-firmware-bcm43436 \
+    linux-firmware-raspbian-bcm43436 \
+"
+
+RCONFLICTS:${PN}-bcm43436s = "\
+    linux-firmware-bcm43436s \
+    linux-firmware-raspbian-bcm43436s \
+"
+
+RREPLACES:${PN}-bcm43436s = "\
+    linux-firmware-bcm43436s \
+    linux-firmware-raspbian-bcm43436s \
+"
+
 RCONFLICTS:${PN}-bcm43455 = "\
     linux-firmware-bcm43455 \
     linux-firmware-raspbian-bcm43455 \
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
index 0dfa451..e0a4461 100644
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
@@ -20,7 +20,7 @@
 KMETA = "kernel-meta"
 
 SRC_URI = " \
-    git://github.com/raspberrypi/linux.git;name=machine;branch=${LINUX_RPI_BRANCH} \
+    git://github.com/raspberrypi/linux.git;name=machine;branch=${LINUX_RPI_BRANCH};protocol=https \
     git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=${LINUX_RPI_KMETA_BRANCH};destsuffix=${KMETA} \
     file://powersave.cfg \
     file://android-drivers.cfg \
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb
index 347c726..c28968c 100644
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb
@@ -1,14 +1,14 @@
-LINUX_VERSION ?= "5.10.63"
+LINUX_VERSION ?= "5.10.81"
 LINUX_RPI_BRANCH ?= "rpi-5.10.y"
 LINUX_RPI_KMETA_BRANCH ?= "yocto-5.10"
 
-SRCREV_machine = "4117cba235d24a7c4630dc38cb55cc80a04f5cf3"
-SRCREV_meta = "e0147386e9f3c4cabc6f6d256d457fd4e67eb221"
+SRCREV_machine = "f9bd396cd0f5f8c2026473f1e570deed3d08d350"
+SRCREV_meta = "e1979ceb171bc91ef2cb71cfcde548a101dab687"
 
 KMETA = "kernel-meta"
 
 SRC_URI = " \
-    git://github.com/raspberrypi/linux.git;name=machine;branch=${LINUX_RPI_BRANCH} \
+    git://github.com/raspberrypi/linux.git;name=machine;branch=${LINUX_RPI_BRANCH};protocol=https \
     git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=${LINUX_RPI_KMETA_BRANCH};destsuffix=${KMETA} \
     file://powersave.cfg \
     file://android-drivers.cfg \
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4.bb
deleted file mode 100644
index 3432283..0000000
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-LINUX_VERSION ?= "5.4.83"
-LINUX_RPI_BRANCH ?= "rpi-5.4.y"
-LINUX_RPI_KMETA_BRANCH ?= "yocto-5.4"
-
-SRCREV_machine = "08ae2dd9e7dc89c20bff823a3ef045de09bfd090"
-SRCREV_meta = "d676bf5ff7b7071e14f44498d2482c0a596f14cd"
-
-KMETA = "kernel-meta"
-
-SRC_URI = " \
-    git://github.com/raspberrypi/linux.git;name=machine;branch=${LINUX_RPI_BRANCH} \
-    git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=${LINUX_RPI_KMETA_BRANCH};destsuffix=${KMETA} \
-    file://0001-Revert-selftests-bpf-Skip-perf-hw-events-test-if-the.patch \
-    file://0002-Revert-selftests-bpf-Fix-perf_buffer-test-on-systems.patch \
-    file://powersave.cfg \
-    file://android-drivers.cfg \
-    "
-
-require linux-raspberrypi.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
-
-KERNEL_DTC_FLAGS += "-@ -H epapr"
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
index d294399..64233b3 100644
--- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
@@ -22,8 +22,8 @@
 # This SRCREV corresponds to the v4.0.3 release of ffmpeg.
 SRCREV_ffmpeg = "fcbd117df3077bad495e99e20f01cf93737bce76"
 
-SRC_URI = "git://github.com/popcornmix/omxplayer.git;protocol=git;branch=master \
-           git://github.com/FFmpeg/FFmpeg;branch=release/4.0;protocol=git;depth=1;name=ffmpeg;destsuffix=git/ffmpeg \
+SRC_URI = "git://github.com/popcornmix/omxplayer.git;protocol=https;branch=master \
+           git://github.com/FFmpeg/FFmpeg;branch=release/4.0;protocol=https;depth=1;name=ffmpeg;destsuffix=git/ffmpeg \
            file://0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch \
            file://0003-Remove-strip-step-in-Makefile.patch \
            file://0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch \
diff --git a/meta-raspberrypi/recipes-sato/libwpe_%.bbappend b/meta-raspberrypi/recipes-sato/libwpe_%.bbappend
new file mode 100644
index 0000000..fe1e59b
--- /dev/null
+++ b/meta-raspberrypi/recipes-sato/libwpe_%.bbappend
@@ -0,0 +1,2 @@
+# Workaround build issue with RPi userland EGL libraries.
+CFLAGS:append:rpi = " ${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '-D_GNU_SOURCE', d)}"
diff --git a/poky/README.OE-Core.md b/poky/README.OE-Core.md
index 521916c..2f2127f 100644
--- a/poky/README.OE-Core.md
+++ b/poky/README.OE-Core.md
@@ -6,24 +6,24 @@
 DISTRO = "nodistro") and contains only emulated machine support.
 
 For information about OpenEmbedded, see the OpenEmbedded website:
-    http://www.openembedded.org/
+    https://www.openembedded.org/
 
 The Yocto Project has extensive documentation about OE including a reference manual
 which can be found at:
-    http://yoctoproject.org/documentation
+    https://docs.yoctoproject.org/
 
 
 Contributing
 ------------
 
 Please refer to
-http://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded
+https://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded
 for guidelines on how to submit patches.
 
 Mailing list:
 
-    http://lists.openembedded.org/mailman/listinfo/openembedded-core
+    https://lists.openembedded.org/g/openembedded-core
 
 Source code:
 
-    http://git.openembedded.org/openembedded-core/
+    https://git.openembedded.org/openembedded-core/
diff --git a/poky/bitbake/bin/bitbake-diffsigs b/poky/bitbake/bin/bitbake-diffsigs
index 6646dcc..cf4cc70 100755
--- a/poky/bitbake/bin/bitbake-diffsigs
+++ b/poky/bitbake/bin/bitbake-diffsigs
@@ -60,7 +60,7 @@
 
     if sig1 and sig2:
         sigfiles = find_siginfo(bbhandler, pn, taskname, [sig1, sig2])
-        if len(sigfiles) == 0:
+        if not sigfiles:
             logger.error('No sigdata files found matching %s %s matching either %s or %s' % (pn, taskname, sig1, sig2))
             sys.exit(1)
         elif not sig1 in sigfiles:
@@ -86,7 +86,7 @@
     hashfiles = find_siginfo(tinfoil, key, None, hashes)
 
     recout = []
-    if len(hashfiles) == 0:
+    if not hashfiles:
         recout.append("Unable to find matching sigdata for %s with hashes %s or %s" % (key, hash1, hash2))
     elif not hash1 in hashfiles:
         recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash1))
diff --git a/poky/bitbake/bin/bitbake-worker b/poky/bitbake/bin/bitbake-worker
index bf96207..3aaf3c2 100755
--- a/poky/bitbake/bin/bitbake-worker
+++ b/poky/bitbake/bin/bitbake-worker
@@ -152,6 +152,10 @@
     fakeenv = {}
     umask = None
 
+    uid = os.getuid()
+    gid = os.getgid()
+
+
     taskdep = workerdata["taskdeps"][fn]
     if 'umask' in taskdep and taskname in taskdep['umask']:
         umask = taskdep['umask'][taskname]
@@ -257,6 +261,10 @@
 
                 bb.utils.set_process_name("%s:%s" % (the_data.getVar("PN"), taskname.replace("do_", "")))
 
+                if not the_data.getVarFlag(taskname, 'network', False):
+                    logger.debug("Attempting to disable network")
+                    bb.utils.disable_network(uid, gid)
+
                 # exported_vars() returns a generator which *cannot* be passed to os.environ.update() 
                 # successfully. We also need to unset anything from the environment which shouldn't be there 
                 exports = bb.data.exported_vars(the_data)
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
index a4b1efb..7b37f66 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
@@ -435,7 +435,7 @@
 executes the script. The generated shell script contains all the
 exported variables, and the shell functions with all variables expanded.
 Output from the shell script goes to the file
-``${T}/log.do_taskname.pid``. Looking at the expanded shell functions in
+``${``\ :term:`T`\ ``}/log.do_taskname.pid``. Looking at the expanded shell functions in
 the run file and the output in the log files is a useful debugging
 technique.
 
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
index 4396830..77384cf 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
@@ -84,18 +84,18 @@
 Here are some examples that show commonly used mirror definitions::
 
    PREMIRRORS ?= "\
-      bzr://.*/.\*  http://somemirror.org/sources/ \\n \
-      cvs://.*/.\*  http://somemirror.org/sources/ \\n \
-      git://.*/.\*  http://somemirror.org/sources/ \\n \
-      hg://.*/.\*   http://somemirror.org/sources/ \\n \
-      osc://.*/.\*  http://somemirror.org/sources/ \\n \
-      p4://.*/.\*   http://somemirror.org/sources/ \\n \
-     svn://.*/.\*   http://somemirror.org/sources/ \\n"
+      bzr://.*/.\*  http://somemirror.org/sources/ \
+      cvs://.*/.\*  http://somemirror.org/sources/ \
+      git://.*/.\*  http://somemirror.org/sources/ \
+      hg://.*/.\*   http://somemirror.org/sources/ \
+      osc://.*/.\*  http://somemirror.org/sources/ \
+      p4://.*/.\*   http://somemirror.org/sources/ \
+     svn://.*/.\*   http://somemirror.org/sources/"
 
    MIRRORS =+ "\
-      ftp://.*/.\*   http://somemirror.org/sources/ \\n \
-      http://.*/.\*  http://somemirror.org/sources/ \\n \
-      https://.*/.\* http://somemirror.org/sources/ \\n"
+      ftp://.*/.\*   http://somemirror.org/sources/ \
+      http://.*/.\*  http://somemirror.org/sources/ \
+      https://.*/.\* http://somemirror.org/sources/"
 
 It is useful to note that BitBake
 supports cross-URLs. It is possible to mirror a Git repository on an
@@ -167,6 +167,9 @@
 -  *dos:* Applies to ``.zip`` and ``.jar`` files and specifies whether
    to use DOS line ending conversion on text files.
 
+-  *striplevel:* Strip specified number of leading components (levels)
+   from file names on extraction
+
 -  *subdir:* Unpacks the specific URL to the specified subdirectory
    within the root directory.
 
@@ -226,6 +229,11 @@
 :term:`DL_DIR` when dealing with multiple files that
 have the same name.
 
+If a username and password are specified in the ``SRC_URI``, a Basic
+Authorization header will be added to each request, including across redirects.
+To instead limit the Authorization header to the first request, add
+"redirectauth=0" to the list of parameters.
+
 Some example URLs are as follows::
 
    SRC_URI = "http://oe.handhelds.org/not_there.aac"
@@ -388,6 +396,19 @@
    protocol is "file". You can also use "http", "https", "ssh" and
    "rsync".
 
+   .. note::
+
+     When ``protocol`` is "ssh", the URL expected in :term:`SRC_URI` differs
+     from the one that is typically passed to ``git clone`` command and provided
+     by the Git server to fetch from. For example, the URL returned by GitLab
+     server for ``mesa`` when cloning over SSH is
+     ``git@gitlab.freedesktop.org:mesa/mesa.git``, however the expected URL in
+     :term:`SRC_URI` is the following::
+
+       SRC_URI = "git://git@gitlab.freedesktop.org/mesa/mesa.git;protocol=ssh;..."
+
+     Note the ``:`` character changed for a ``/`` before the path to the project.
+
 -  *"nocheckout":* Tells the fetcher to not checkout source code when
    unpacking when set to "1". Set this option for the URL where there is
    a custom routine to checkout code. The default is "0".
@@ -438,6 +459,7 @@
 
    SRC_URI = "git://git.oe.handhelds.org/git/vip.git;tag=version-1"
    SRC_URI = "git://git.oe.handhelds.org/git/vip.git;protocol=http"
+   SRC_URI = "git://git@gitlab.freedesktop.org/mesa/mesa.git;protocol=ssh;..."
 
 .. note::
 
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst
index 42263ce..1c31c1f 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst
@@ -537,7 +537,7 @@
 -  ``pn-buildlist``: Shows a simple list of targets that are to be
    built.
 
-To stop depending on common depends, use the "-I" depend option and
+To stop depending on common depends, use the ``-I`` depend option and
 BitBake omits them from the graph. Leaving this information out can
 produce more readable graphs. This way, you can remove from the graph
 :term:`DEPENDS` from inherited classes such as ``base.bbclass``.
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 119720d..8496e1d 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
@@ -104,15 +104,15 @@
 
 Outside of :ref:`functions <bitbake-user-manual/bitbake-user-manual-metadata:functions>`,
 BitBake joins any line ending in
-a backslash character ("\") with the following line before parsing
-statements. The most common use for the "\" character is to split
+a backslash character ("\\") with the following line before parsing
+statements. The most common use for the "\\" character is to split
 variable assignments over multiple lines, as in the following example::
 
    FOO = "bar \
           baz \
           qaz"
 
-Both the "\" character and the newline
+Both the "\\" character and the newline
 character that follow it are removed when joining lines. Thus, no
 newline characters end up in the value of ``FOO``.
 
@@ -125,7 +125,7 @@
 
 .. note::
 
-   BitBake does not interpret escape sequences like "\n" in variable
+   BitBake does not interpret escape sequences like "\\n" in variable
    values. For these to have an effect, the value must be passed to some
    utility that interprets escape sequences, such as
    ``printf`` or ``echo -n``.
@@ -159,7 +159,7 @@
    C = "qux"
    *At this point, ${A} equals "qux bar baz"*
    B = "norf"
-   *At this point, ${A} equals "norf baz"\*
+   *At this point, ${A} equals "norf baz"*
 
 Contrast this behavior with the
 :ref:`bitbake-user-manual/bitbake-user-manual-metadata:immediate variable
@@ -894,7 +894,7 @@
 Shell Functions
 ---------------
 
-Functions written in shell script and executed either directly as
+Functions written in shell script are executed either directly as
 functions, tasks, or both. They can also be called by other shell
 functions. Here is an example shell function definition::
 
@@ -944,7 +944,7 @@
    Overrides and override-style operators can be applied to any shell
    function, not just :ref:`tasks <bitbake-user-manual/bitbake-user-manual-metadata:tasks>`.
 
-You can use the ``bitbake -e`` recipename command to view the final
+You can use the ``bitbake -e recipename`` command to view the final
 assembled function after all overrides have been applied.
 
 BitBake-Style Python Functions
@@ -996,7 +996,7 @@
    recipename do_foo: second
    recipename do_foo: third
 
-You can use the ``bitbake -e`` recipename command to view
+You can use the ``bitbake -e recipename`` command to view
 the final assembled function after all overrides have been applied.
 
 Python Functions
@@ -1921,12 +1921,6 @@
    Specifies a function BitBake calls that determines whether BitBake
    requires a setscene dependency to be met.
 
--  :term:`BB_STAMP_POLICY`: Defines the mode
-   for comparing timestamps of stamp files.
-
--  :term:`BB_STAMP_WHITELIST`: Lists stamp
-   files that are looked at when the stamp policy is "whitelist".
-
 -  :term:`BB_TASKHASH`: Within an executing task,
    this variable holds the hash of the task as returned by the currently
    enabled signature generator.
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 e955beb..1bb55fc 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
@@ -374,12 +374,35 @@
       Specifies the Hash Equivalence server to use.
 
       If set to ``auto``, BitBake automatically starts its own server
-      over a UNIX domain socket.
+      over a UNIX domain socket. An option is to connect this server
+      to an upstream one, by setting :term:`BB_HASHSERVE_UPSTREAM`.
 
-      If set to ``host:port``, BitBake will use a remote server on the
+      If set to ``unix://path``, BitBake will connect to an existing
+      hash server available over a UNIX domain socket.
+
+      If set to ``host:port``, BitBake will connect to a remote server on the
       specified host. This allows multiple clients to share the same
       hash equivalence data.
 
+      The remote server can be started manually through
+      the ``bin/bitbake-hashserv`` script provided by BitBake,
+      which supports UNIX domain sockets too. This script also allows
+      to start the server in read-only mode, to avoid accepting
+      equivalences that correspond to Share State caches that are
+      only available on specific clients.
+
+   :term:`BB_HASHSERVE_UPSTREAM`
+      Specifies an upstream Hash Equivalence server.
+
+      This optional setting is only useful when a local Hash Equivalence
+      server is started (setting :term:`BB_HASHSERVE` to ``auto``),
+      and you wish the local server to query an upstream server for
+      Hash Equivalence data.
+
+      Example usage::
+
+         BB_HASHSERVE_UPSTREAM = "typhoon.yocto.io:8687"
+
    :term:`BB_INVALIDCONF`
       Used in combination with the ``ConfigParsed`` event to trigger
       re-parsing the base metadata (i.e. all the recipes). The
@@ -526,29 +549,6 @@
       -  *clear* - Queries the source controls system every time. With this
          policy, there is no cache. The "clear" policy is the default.
 
-   :term:`BB_STAMP_POLICY`
-      Defines the mode used for how timestamps of stamp files are compared.
-      You can set the variable to one of the following modes:
-
-      -  *perfile* - Timestamp comparisons are only made between timestamps
-         of a specific recipe. This is the default mode.
-
-      -  *full* - Timestamp comparisons are made for all dependencies.
-
-      -  *whitelist* - Identical to "full" mode except timestamp
-         comparisons are made for recipes listed in the
-         :term:`BB_STAMP_WHITELIST` variable.
-
-      .. note::
-
-         Stamp policies are largely obsolete with the introduction of
-         setscene tasks.
-
-   :term:`BB_STAMP_WHITELIST`
-      Lists files whose stamp file timestamps are compared when the stamp
-      policy mode is set to "whitelist". For information on stamp policies,
-      see the :term:`BB_STAMP_POLICY` variable.
-
    :term:`BB_STRICT_CHECKSUM`
       Sets a more strict checksum mechanism for non-local URLs. Setting
       this variable to a value causes BitBake to report an error if it
@@ -1333,67 +1333,103 @@
       The list of source files - local or remote. This variable tells
       BitBake which bits to pull for the build and how to pull them. For
       example, if the recipe or append file needs to fetch a single tarball
-      from the Internet, the recipe or append file uses a :term:`SRC_URI` entry
-      that specifies that tarball. On the other hand, if the recipe or
-      append file needs to fetch a tarball and include a custom file, the
-      recipe or append file needs an :term:`SRC_URI` variable that specifies
-      all those sources.
+      from the Internet, the recipe or append file uses a :term:`SRC_URI`
+      entry that specifies that tarball. On the other hand, if the recipe or
+      append file needs to fetch a tarball, apply two patches, and include
+      a custom file, the recipe or append file needs an :term:`SRC_URI`
+      variable that specifies all those sources.
 
-      The following list explains the available URI protocols:
+      The following list explains the available URI protocols. URI
+      protocols are highly dependent on particular BitBake Fetcher
+      submodules. Depending on the fetcher BitBake uses, various URL
+      parameters are employed. For specifics on the supported Fetchers, see
+      the :ref:`bitbake-user-manual/bitbake-user-manual-fetching:fetchers`
+      section.
 
-      -  ``file://`` : Fetches files, which are usually files shipped
-         with the metadata, from the local machine. The path is relative to
-         the :term:`FILESPATH` variable.
+      -  ``az://`` : Fetches files from an Azure Storage account using HTTPS.
 
       -  ``bzr://`` : Fetches files from a Bazaar revision control
          repository.
 
-      -  ``git://`` : Fetches files from a Git revision control
+      -  ``ccrc://`` - Fetches files from a ClearCase repository.
+
+      -  ``cvs://`` : Fetches files from a CVS revision control
          repository.
 
-      -  ``osc://`` : Fetches files from an OSC (OpenSUSE Build service)
-         revision control repository.
+      -  ``file://`` - Fetches files, which are usually files shipped
+         with the Metadata, from the local machine.
+         The path is relative to the :term:`FILESPATH`
+         variable. Thus, the build system searches, in order, from the
+         following directories, which are assumed to be a subdirectories of
+         the directory in which the recipe file (``.bb``) or append file
+         (``.bbappend``) resides:
 
-      -  ``repo://`` : Fetches files from a repo (Git) repository.
+         -  ``${BPN}`` - The base recipe name without any special suffix
+            or version numbers.
 
-      -  ``http://`` : Fetches files from the Internet using HTTP.
+         -  ``${BP}`` - ``${BPN}-${PV}``. The base recipe name and
+            version but without any special package name suffix.
 
-      -  ``https://`` : Fetches files from the Internet using HTTPS.
+         -  *files -* Files within a directory, which is named ``files``
+            and is also alongside the recipe or append file.
 
       -  ``ftp://`` : Fetches files from the Internet using FTP.
 
-      -  ``cvs://`` : Fetches files from a CVS revision control
+      -  ``git://`` : Fetches files from a Git revision control
+         repository.
+
+      -  ``gitsm://`` : Fetches submodules from a Git revision control
          repository.
 
       -  ``hg://`` : Fetches files from a Mercurial (``hg``) revision
          control repository.
 
+      -  ``http://`` : Fetches files from the Internet using HTTP.
+
+      -  ``https://`` : Fetches files from the Internet using HTTPS.
+
+      -  ``npm://`` - Fetches JavaScript modules from a registry.
+
+      -  ``osc://`` : Fetches files from an OSC (OpenSUSE Build service)
+         revision control repository.
+
       -  ``p4://`` : Fetches files from a Perforce (``p4``) revision
          control repository.
 
+      -  ``repo://`` : Fetches files from a repo (Git) repository.
+
       -  ``ssh://`` : Fetches files from a secure shell.
 
       -  ``svn://`` : Fetches files from a Subversion (``svn``) revision
          control repository.
 
-      -  ``az://`` : Fetches files from an Azure Storage account using HTTPS.
-
       Here are some additional options worth mentioning:
 
-      -  ``unpack`` : Controls whether or not to unpack the file if it is
-         an archive. The default action is to unpack the file.
+      -  ``downloadfilename`` : Specifies the filename used when storing
+         the downloaded file.
+
+      -  ``name`` - Specifies a name to be used for association with
+         :term:`SRC_URI` checksums or :term:`SRCREV` when you have more than one
+         file or git repository specified in :term:`SRC_URI`. For example::
+
+            SRC_URI = "git://example.com/foo.git;name=first \
+                       git://example.com/bar.git;name=second \
+                       http://example.com/file.tar.gz;name=third"
+
+            SRCREV_first = "f1d2d2f924e986ac86fdf7b36c94bcdf32beec15"
+            SRCREV_second = "e242ed3bffccdf271b7fbaf34ed72d089537b42f"
+            SRC_URI[third.sha256sum] = "13550350a8681c84c861aac2e5b440161c2b33a3e4f302ac680ca5b686de48de"
 
       -  ``subdir`` : Places the file (or extracts its contents) into the
          specified subdirectory. This option is useful for unusual tarballs
          or other archives that do not have their files already in a
          subdirectory within the archive.
 
-      -  ``name`` : Specifies a name to be used for association with
-         :term:`SRC_URI` checksums when you have more than one file specified
-         in :term:`SRC_URI`.
+      -  ``subpath`` - Limits the checkout to a specific subpath of the
+         tree when using the Git fetcher is used.
 
-      -  ``downloadfilename`` : Specifies the filename used when storing
-         the downloaded file.
+      -  ``unpack`` : Controls whether or not to unpack the file if it is
+         an archive. The default action is to unpack the file.
 
    :term:`SRCDATE`
       The date of the source code used to build the package. This variable
diff --git a/poky/bitbake/lib/bb/build.py b/poky/bitbake/lib/bb/build.py
index d6418e4..65b7fc0 100644
--- a/poky/bitbake/lib/bb/build.py
+++ b/poky/bitbake/lib/bb/build.py
@@ -714,19 +714,23 @@
                 logger.debug2("Zero size logfn %s, removing", logfn)
                 bb.utils.remove(logfn)
                 bb.utils.remove(loglink)
-    except bb.BBHandledException:
-        event.fire(TaskFailed(task, fn, logfn, localdata, True), localdata)
-        return 1
     except (Exception, SystemExit) as exc:
+        handled = False
+        if isinstance(exc, bb.BBHandledException):
+            handled = True
+
         if quieterr:
+            if not handled:
+                logger.warning(repr(exc))
             event.fire(TaskFailedSilent(task, fn, logfn, localdata), localdata)
         else:
             errprinted = errchk.triggered
             # If the output is already on stdout, we've printed the information in the
             # logs once already so don't duplicate
-            if verboseStdoutLogging:
+            if verboseStdoutLogging or handled:
                 errprinted = True
-            logger.error(repr(exc))
+            if not handled:
+                logger.error(repr(exc))
             event.fire(TaskFailed(task, fn, logfn, localdata, errprinted), localdata)
         return 1
 
diff --git a/poky/bitbake/lib/bb/cache.py b/poky/bitbake/lib/bb/cache.py
index 4e08c10..fcb1579 100644
--- a/poky/bitbake/lib/bb/cache.py
+++ b/poky/bitbake/lib/bb/cache.py
@@ -284,36 +284,15 @@
     Parse a recipe
     """
 
-    chdir_back = False
-
     bb_data.setVar("__BBMULTICONFIG", mc)
 
-    # expand tmpdir to include this topdir
-    bb_data.setVar('TMPDIR', bb_data.getVar('TMPDIR') or "")
     bbfile_loc = os.path.abspath(os.path.dirname(bbfile))
-    oldpath = os.path.abspath(os.getcwd())
     bb.parse.cached_mtime_noerror(bbfile_loc)
 
-    # The ConfHandler first looks if there is a TOPDIR and if not
-    # then it would call getcwd().
-    # Previously, we chdir()ed to bbfile_loc, called the handler
-    # and finally chdir()ed back, a couple of thousand times. We now
-    # just fill in TOPDIR to point to bbfile_loc if there is no TOPDIR yet.
-    if not bb_data.getVar('TOPDIR', False):
-        chdir_back = True
-        bb_data.setVar('TOPDIR', bbfile_loc)
-    try:
-        if appends:
-            bb_data.setVar('__BBAPPEND', " ".join(appends))
-        bb_data = bb.parse.handle(bbfile, bb_data)
-        if chdir_back:
-            os.chdir(oldpath)
-        return bb_data
-    except:
-        if chdir_back:
-            os.chdir(oldpath)
-        raise
-
+    if appends:
+        bb_data.setVar('__BBAPPEND', " ".join(appends))
+    bb_data = bb.parse.handle(bbfile, bb_data)
+    return bb_data
 
 
 class NoCache(object):
diff --git a/poky/bitbake/lib/bb/checksum.py b/poky/bitbake/lib/bb/checksum.py
index 1d50a26..fb8a77f 100644
--- a/poky/bitbake/lib/bb/checksum.py
+++ b/poky/bitbake/lib/bb/checksum.py
@@ -50,6 +50,7 @@
         MultiProcessCache.__init__(self)
 
     def get_checksum(self, f):
+        f = os.path.normpath(f)
         entry = self.cachedata[0].get(f)
         cmtime = self.mtime_cache.cached_mtime(f)
         if entry:
@@ -84,15 +85,24 @@
                 return None
             return checksum
 
+        #
+        # Changing the format of file-checksums is problematic as both OE and Bitbake have
+        # knowledge of them. We need to encode a new piece of data, the portion of the path
+        # we care about from a checksum perspective. This means that files that change subdirectory
+        # are tracked by the task hashes. To do this, we do something horrible and put a "/./" into
+        # the path. The filesystem handles it but it gives us a marker to know which subsection
+        # of the path to cache.
+        #
         def checksum_dir(pth):
             # Handle directories recursively
             if pth == "/":
                 bb.fatal("Refusing to checksum /")
+            pth = pth.rstrip("/")
             dirchecksums = []
             for root, dirs, files in os.walk(pth, topdown=True):
                 [dirs.remove(d) for d in list(dirs) if d in localdirsexclude]
                 for name in files:
-                    fullpth = os.path.join(root, name)
+                    fullpth = os.path.join(root, name).replace(pth, os.path.join(pth, "."))
                     checksum = checksum_file(fullpth)
                     if checksum:
                         dirchecksums.append((fullpth, checksum))
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index af794b4..08e45e7 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -388,12 +388,22 @@
             # Create a new hash server bound to a unix domain socket
             if not self.hashserv:
                 dbfile = (self.data.getVar("PERSISTENT_DIR") or self.data.getVar("CACHE")) + "/hashserv.db"
+                upstream = self.data.getVar("BB_HASHSERVE_UPSTREAM") or None
+                if upstream:
+                    import socket
+                    try:
+                        sock = socket.create_connection(upstream.split(":"), 5)
+                        sock.close()
+                    except socket.error as e:
+                        bb.warn("BB_HASHSERVE_UPSTREAM is not valid, unable to connect hash equivalence server at '%s': %s" 
+                                 % (upstream, repr(e)))
+
                 self.hashservaddr = "unix://%s/hashserve.sock" % self.data.getVar("TOPDIR")
                 self.hashserv = hashserv.create_server(
                     self.hashservaddr,
                     dbfile,
                     sync=False,
-                    upstream=self.data.getVar("BB_HASHSERVE_UPSTREAM") or None,
+                    upstream=upstream,
                 )
                 self.hashserv.serve_as_process()
             self.data.setVar("BB_HASHSERVE", self.hashservaddr)
@@ -804,7 +814,9 @@
             for dep in rq.rqdata.runtaskentries[tid].depends:
                 (depmc, depfn, _, deptaskfn) = bb.runqueue.split_tid_mcfn(dep)
                 deppn = self.recipecaches[depmc].pkg_fn[deptaskfn]
-                depend_tree["tdepends"][dotname].append("%s.%s" % (deppn, bb.runqueue.taskname_from_tid(dep)))
+                if depmc:
+                    depmc = "mc:" + depmc + ":"
+                depend_tree["tdepends"][dotname].append("%s%s.%s" % (depmc, deppn, bb.runqueue.taskname_from_tid(dep)))
             if taskfn not in seen_fns:
                 seen_fns.append(taskfn)
                 packages = []
@@ -1656,7 +1668,7 @@
         # Return a copy, don't modify the original
         pkgs_to_build = pkgs_to_build[:]
 
-        if len(pkgs_to_build) == 0:
+        if not pkgs_to_build:
             raise NothingToBuild
 
         ignore = (self.data.getVar("ASSUME_PROVIDED") or "").split()
@@ -1795,10 +1807,10 @@
         files.sort( key=lambda fileitem: self.calc_bbfile_priority(fileitem)[0] )
         config.setVar("BBFILES_PRIORITIZED", " ".join(files))
 
-        if not len(files):
+        if not files:
             files = self.get_bbfiles()
 
-        if not len(files):
+        if not files:
             collectlog.error("no recipe files to build, check your BBPATH and BBFILES?")
             bb.event.fire(CookerExit(), eventdata)
 
@@ -2208,21 +2220,33 @@
             yield not cached, mc, infos
 
     def parse_generator(self):
-        while True:
+        empty = False
+        while self.processes or not empty:
+            for process in self.processes.copy():
+                if not process.is_alive():
+                    process.join()
+                    self.processes.remove(process)
+
             if self.parsed >= self.toparse:
                 break
 
             try:
                 result = self.result_queue.get(timeout=0.25)
             except queue.Empty:
+                empty = True
                 pass
             else:
+                empty = False
                 value = result[1]
                 if isinstance(value, BaseException):
                     raise value
                 else:
                     yield result
 
+        if not (self.parsed >= self.toparse):
+            raise bb.parse.ParseError("Not all recipes parsed, parser thread killed/died? Exiting.", None)
+
+
     def parse_next(self):
         result = []
         parsed = None
diff --git a/poky/bitbake/lib/bb/cookerdata.py b/poky/bitbake/lib/bb/cookerdata.py
index ba657c0..397b43d 100644
--- a/poky/bitbake/lib/bb/cookerdata.py
+++ b/poky/bitbake/lib/bb/cookerdata.py
@@ -86,7 +86,7 @@
                 action['msg'] = "Only one target can be used with the --environment option."
             elif self.options.buildfile and len(self.options.pkgs_to_build) > 0:
                 action['msg'] = "No target should be used with the --environment and --buildfile options."
-            elif len(self.options.pkgs_to_build) > 0:
+            elif self.options.pkgs_to_build:
                 action['action'] = ["showEnvironmentTarget", self.options.pkgs_to_build]
             else:
                 action['action'] = ["showEnvironment", self.options.buildfile]
@@ -210,7 +210,7 @@
 
 #
 # We search for a conf/bblayers.conf under an entry in BBPATH or in cwd working
-# up to /. If that fails, we search for a conf/bitbake.conf in BBPATH.
+# up to /. If that fails, bitbake would fall back to cwd.
 #
 
 def findTopdir():
@@ -223,11 +223,8 @@
     layerconf = findConfigFile("bblayers.conf", d)
     if layerconf:
         return os.path.dirname(os.path.dirname(layerconf))
-    if bbpath:
-        bitbakeconf = bb.utils.which(bbpath, "conf/bitbake.conf")
-        if bitbakeconf:
-            return os.path.dirname(os.path.dirname(bitbakeconf))
-    return None
+
+    return os.path.abspath(os.getcwd())
 
 class CookerDataBuilder(object):
 
@@ -417,6 +414,9 @@
                         " invoked bitbake from the wrong directory?")
             raise SystemExit(msg)
 
+        if not data.getVar("TOPDIR"):
+            data.setVar("TOPDIR", os.path.abspath(os.getcwd()))
+
         data = parse_config_file(os.path.join("conf", "bitbake.conf"), data)
 
         # Parse files for loading *after* bitbake.conf and any includes
diff --git a/poky/bitbake/lib/bb/daemonize.py b/poky/bitbake/lib/bb/daemonize.py
index c187fcf..40fabd0 100644
--- a/poky/bitbake/lib/bb/daemonize.py
+++ b/poky/bitbake/lib/bb/daemonize.py
@@ -74,26 +74,26 @@
     with open('/dev/null', 'r') as si:
         os.dup2(si.fileno(), sys.stdin.fileno())
 
-    try:
-        so = open(logfile, 'a+')
-        os.dup2(so.fileno(), sys.stdout.fileno())
-        os.dup2(so.fileno(), sys.stderr.fileno())
-    except io.UnsupportedOperation:
-        sys.stdout = open(logfile, 'a+')
+    with open(logfile, 'a+') as so:
+        try:
+            os.dup2(so.fileno(), sys.stdout.fileno())
+            os.dup2(so.fileno(), sys.stderr.fileno())
+        except io.UnsupportedOperation:
+            sys.stdout = so
 
-    # Have stdout and stderr be the same so log output matches chronologically
-    # and there aren't two seperate buffers
-    sys.stderr = sys.stdout
+        # Have stdout and stderr be the same so log output matches chronologically
+        # and there aren't two seperate buffers
+        sys.stderr = sys.stdout
 
-    try:
-        function()
-    except Exception as e:
-        traceback.print_exc()
-    finally:
-        bb.event.print_ui_queue()
-        # os._exit() doesn't flush open files like os.exit() does. Manually flush
-        # stdout and stderr so that any logging output will be seen, particularly
-        # exception tracebacks.
-        sys.stdout.flush()
-        sys.stderr.flush()
-        os._exit(0)
+        try:
+            function()
+        except Exception as e:
+            traceback.print_exc()
+        finally:
+            bb.event.print_ui_queue()
+            # os._exit() doesn't flush open files like os.exit() does. Manually flush
+            # stdout and stderr so that any logging output will be seen, particularly
+            # exception tracebacks.
+            sys.stdout.flush()
+            sys.stderr.flush()
+            os._exit(0)
diff --git a/poky/bitbake/lib/bb/data.py b/poky/bitbake/lib/bb/data.py
index 9d18b1e..ee5557a 100644
--- a/poky/bitbake/lib/bb/data.py
+++ b/poky/bitbake/lib/bb/data.py
@@ -285,21 +285,19 @@
         vardeps = varflags.get("vardeps")
 
         def handle_contains(value, contains, d):
-            newvalue = ""
+            newvalue = []
+            if value:
+                newvalue.append(str(value))
             for k in sorted(contains):
                 l = (d.getVar(k) or "").split()
                 for item in sorted(contains[k]):
                     for word in item.split():
                         if not word in l:
-                            newvalue += "\n%s{%s} = Unset" % (k, item)
+                            newvalue.append("\n%s{%s} = Unset" % (k, item))
                             break
                     else:
-                        newvalue += "\n%s{%s} = Set" % (k, item)
-            if not newvalue:
-                return value
-            if not value:
-                return newvalue
-            return value + newvalue
+                        newvalue.append("\n%s{%s} = Set" % (k, item))
+            return "".join(newvalue)
 
         def handle_remove(value, deps, removes, d):
             for r in sorted(removes):
@@ -406,7 +404,9 @@
 
         if data is None:
             bb.error("Task %s from %s seems to be empty?!" % (task, fn))
-            data = ''
+            data = []
+        else:
+            data = [data]
 
         gendeps[task] -= whitelist
         newdeps = gendeps[task]
@@ -424,12 +424,12 @@
 
         alldeps = sorted(seen)
         for dep in alldeps:
-            data = data + dep
+            data.append(dep)
             var = lookupcache[dep]
             if var is not None:
-                data = data + str(var)
+                data.append(str(var))
         k = fn + ":" + task
-        basehash[k] = hashlib.sha256(data.encode("utf-8")).hexdigest()
+        basehash[k] = hashlib.sha256("".join(data).encode("utf-8")).hexdigest()
         taskdeps[task] = alldeps
 
     return taskdeps, basehash
diff --git a/poky/bitbake/lib/bb/data_smart.py b/poky/bitbake/lib/bb/data_smart.py
index 8d235da..543372d 100644
--- a/poky/bitbake/lib/bb/data_smart.py
+++ b/poky/bitbake/lib/bb/data_smart.py
@@ -492,7 +492,7 @@
     def setVar(self, var, value, **loginfo):
         #print("var=" + str(var) + "  val=" + str(value))
 
-        if "_append" in var or "_prepend" in var or "_remove" in var:
+        if not var.startswith("__anon_") and ("_append" in var or "_prepend" in var or "_remove" in var):
             info = "%s" % var
             if "filename" in loginfo:
                 info += " file: %s" % loginfo[filename]
@@ -810,7 +810,7 @@
                     expanded_removes[r] = self.expand(r).split()
 
                 parser.removes = set()
-                val = ""
+                val = []
                 for v in __whitespace_split__.split(parser.value):
                     skip = False
                     for r in removes:
@@ -819,8 +819,8 @@
                             skip = True
                     if skip:
                         continue
-                    val = val + v
-                parser.value = val
+                    val.append(v)
+                parser.value = "".join(val)
                 if expand:
                     value = parser.value
 
diff --git a/poky/bitbake/lib/bb/fetch2/README b/poky/bitbake/lib/bb/fetch2/README
new file mode 100644
index 0000000..67b787e
--- /dev/null
+++ b/poky/bitbake/lib/bb/fetch2/README
@@ -0,0 +1,57 @@
+There are expectations of users of the fetcher code. This file attempts to document
+some of the constraints that are present. Some are obvious, some are less so. It is
+documented in the context of how OE uses it but the API calls are generic.
+
+a) network access for sources is only expected to happen in the do_fetch task.
+   This is not enforced or tested but is required so that we can:
+
+   i) audit the sources used (i.e. for license/manifest reasons) 
+   ii) support offline builds with a suitable cache
+   iii) allow work to continue even with downtime upstream
+   iv) allow for changes upstream in incompatible ways
+   v) allow rebuilding of the software in X years time
+
+b) network access is not expected in do_unpack task.
+
+c) you can take DL_DIR and use it as a mirror for offline builds.
+
+d) access to the network is only made when explicitly configured in recipes
+   (e.g. use of AUTOREV, or use of git tags which change revision).
+
+e) fetcher output is deterministic (i.e. if you fetch configuration XXX now it 
+   will match in future exactly in a clean build with a new DL_DIR).
+   One specific pain point example are git tags. They can be replaced and change
+   so the git fetcher has to resolve them with the network. We use git revisions
+   where possible to avoid this and ensure determinism.
+
+f) network access is expected to work with the standard linux proxy variables
+   so that access behind firewalls works (the fetcher sets these in the 
+   environment but only in the do_fetch tasks).
+
+g) access during parsing has to be minimal, a "git ls-remote" for an AUTOREV 
+   git recipe might be ok but you can't expect to checkout a git tree.
+
+h) we need to provide revision information during parsing such that a version
+   for the recipe can be constructed.
+
+i) versions are expected to be able to increase in a way which sorts allowing 
+   package feeds to operate (see PR server required for git revisions to sort).
+
+j) API to query for possible version upgrades of a url is highly desireable to 
+   allow our automated upgrage code to function (it is implied this does always 
+   have network access).
+
+k) Where fixes or changes to behaviour in the fetcher are made, we ask that 
+   test cases are added (run with "bitbake-selftest bb.tests.fetch"). We do 
+   have fairly extensive test coverage of the fetcher as it is the only way
+   to track all of its corner cases, it still doesn't give entire coverage 
+   though sadly.
+   
+l) If using tools during parse time, they will have to be in ASSUME_PROVIDED
+   in OE's context as we can't build git-native, then parse a recipe and use
+   git ls-remote.
+
+Not all fetchers support all features, autorev is optional and doesn't make
+sense for some. Upgrade detection means different things in different contexts
+too.
+
diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py
index 666cc13..d371741 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -402,24 +402,24 @@
 
     if not type:
         raise MissingParameterError('type', "encoded from the data %s" % str(decoded))
-    url = '%s://' % type
+    url = ['%s://' % type]
     if user and type != "file":
-        url += "%s" % user
+        url.append("%s" % user)
         if pswd:
-            url += ":%s" % pswd
-        url += "@"
+            url.append(":%s" % pswd)
+        url.append("@")
     if host and type != "file":
-        url += "%s" % host
+        url.append("%s" % host)
     if path:
         # Standardise path to ensure comparisons work
         while '//' in path:
             path = path.replace("//", "/")
-        url += "%s" % urllib.parse.quote(path)
+        url.append("%s" % urllib.parse.quote(path))
     if p:
         for parm in p:
-            url += ";%s=%s" % (parm, p[parm])
+            url.append(";%s=%s" % (parm, p[parm]))
 
-    return url
+    return "".join(url)
 
 def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
     if not ud.url or not uri_find or not uri_replace:
@@ -430,6 +430,7 @@
     uri_replace_decoded = list(decodeurl(uri_replace))
     logger.debug2("For url %s comparing %s to %s" % (uri_decoded, uri_find_decoded, uri_replace_decoded))
     result_decoded = ['', '', '', '', '', {}]
+    # 0 - type, 1 - host, 2 - path, 3 - user,  4- pswd, 5 - params
     for loc, i in enumerate(uri_find_decoded):
         result_decoded[loc] = uri_decoded[loc]
         regexp = i
@@ -449,6 +450,9 @@
                 for l in replacements:
                     uri_replace_decoded[loc][k] = uri_replace_decoded[loc][k].replace(l, replacements[l])
                 result_decoded[loc][k] = uri_replace_decoded[loc][k]
+        elif (loc == 3 or loc == 4) and uri_replace_decoded[loc]:
+            # User/password in the replacement is just a straight replacement
+            result_decoded[loc] = uri_replace_decoded[loc]
         elif (re.match(regexp, uri_decoded[loc])):
             if not uri_replace_decoded[loc]:
                 result_decoded[loc] = ""
@@ -466,9 +470,13 @@
                     # Kill parameters, they make no sense for mirror tarballs
                     uri_decoded[5] = {}
                 elif ud.localpath and ud.method.supports_checksum(ud):
-                    basename = os.path.basename(uri_decoded[loc])
-                if basename and not result_decoded[loc].endswith(basename):
-                    result_decoded[loc] = os.path.join(result_decoded[loc], basename)
+                    basename = os.path.basename(ud.localpath)
+                if basename:
+                    uri_basename = os.path.basename(uri_decoded[loc])
+                    if uri_basename and basename != uri_basename and result_decoded[loc].endswith(uri_basename):
+                        result_decoded[loc] = result_decoded[loc].replace(uri_basename, basename)
+                    elif not result_decoded[loc].endswith(basename):
+                        result_decoded[loc] = os.path.join(result_decoded[loc], basename)
         else:
             return None
     result = encodeurl(result_decoded)
@@ -766,7 +774,7 @@
         if urldata[u].method.supports_srcrev():
             scms.append(u)
 
-    if len(scms) == 0:
+    if not scms:
         raise FetchError("SRCREV was used yet no valid SCM was found in SRC_URI")
 
     if len(scms) == 1 and len(urldata[scms[0]].names) == 1:
@@ -1450,30 +1458,33 @@
         cmd = None
 
         if unpack:
+            tar_cmd = 'tar --extract --no-same-owner'
+            if 'striplevel' in urldata.parm:
+                tar_cmd += ' --strip-components=%s' %  urldata.parm['striplevel']
             if file.endswith('.tar'):
-                cmd = 'tar x --no-same-owner -f %s' % file
+                cmd = '%s -f %s' % (tar_cmd, file)
             elif file.endswith('.tgz') or file.endswith('.tar.gz') or file.endswith('.tar.Z'):
-                cmd = 'tar xz --no-same-owner -f %s' % file
+                cmd = '%s -z -f %s' % (tar_cmd, file)
             elif file.endswith('.tbz') or file.endswith('.tbz2') or file.endswith('.tar.bz2'):
-                cmd = 'bzip2 -dc %s | tar x --no-same-owner -f -' % file
+                cmd = 'bzip2 -dc %s | %s -f -' % (file, tar_cmd)
             elif file.endswith('.gz') or file.endswith('.Z') or file.endswith('.z'):
                 cmd = 'gzip -dc %s > %s' % (file, efile)
             elif file.endswith('.bz2'):
                 cmd = 'bzip2 -dc %s > %s' % (file, efile)
             elif file.endswith('.txz') or file.endswith('.tar.xz'):
-                cmd = 'xz -dc %s | tar x --no-same-owner -f -' % file
+                cmd = 'xz -dc %s | %s -f -' % (file, tar_cmd)
             elif file.endswith('.xz'):
                 cmd = 'xz -dc %s > %s' % (file, efile)
             elif file.endswith('.tar.lz'):
-                cmd = 'lzip -dc %s | tar x --no-same-owner -f -' % file
+                cmd = 'lzip -dc %s | %s -f -' % (file, tar_cmd)
             elif file.endswith('.lz'):
                 cmd = 'lzip -dc %s > %s' % (file, efile)
             elif file.endswith('.tar.7z'):
-                cmd = '7z x -so %s | tar x --no-same-owner -f -' % file
+                cmd = '7z x -so %s | %s -f -' % (file, tar_cmd)
             elif file.endswith('.7z'):
                 cmd = '7za x -y %s 1>/dev/null' % file
             elif file.endswith('.tzst') or file.endswith('.tar.zst'):
-                cmd = 'zstd --decompress --stdout %s | tar x --no-same-owner -f -' % file
+                cmd = 'zstd --decompress --stdout %s | %s -f -' % (file, tar_cmd)
             elif file.endswith('.zst'):
                 cmd = 'zstd --decompress --stdout %s > %s' % (file, efile)
             elif file.endswith('.zip') or file.endswith('.jar'):
@@ -1506,7 +1517,7 @@
                         raise UnpackError("Unable to unpack deb/ipk package - does not contain data.tar.* file", urldata.url)
                 else:
                     raise UnpackError("Unable to unpack deb/ipk package - could not list contents", urldata.url)
-                cmd = 'ar x %s %s && tar --no-same-owner -xpf %s && rm %s' % (file, datafile, datafile, datafile)
+                cmd = 'ar x %s %s && %s -p -f %s && rm %s' % (file, datafile, tar_cmd, datafile, datafile)
 
         # If 'subdir' param exists, create a dir and use it as destination for unpack cmd
         if 'subdir' in urldata.parm:
@@ -1632,7 +1643,7 @@
         if localonly and cache:
             raise Exception("bb.fetch2.Fetch.__init__: cannot set cache and localonly at same time")
 
-        if len(urls) == 0:
+        if not urls:
             urls = d.getVar("SRC_URI").split()
         self.urls = urls
         self.d = d
@@ -1931,6 +1942,7 @@
 from . import npm
 from . import npmsw
 from . import az
+from . import crate
 
 methods.append(local.Local())
 methods.append(wget.Wget())
@@ -1951,3 +1963,4 @@
 methods.append(npm.Npm())
 methods.append(npmsw.NpmShrinkWrap())
 methods.append(az.Az())
+methods.append(crate.Crate())
diff --git a/poky/bitbake/lib/bb/fetch2/crate.py b/poky/bitbake/lib/bb/fetch2/crate.py
new file mode 100644
index 0000000..f7e2354
--- /dev/null
+++ b/poky/bitbake/lib/bb/fetch2/crate.py
@@ -0,0 +1,137 @@
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+"""
+BitBake 'Fetch' implementation for crates.io
+"""
+
+# Copyright (C) 2016 Doug Goldstein
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Based on functions from the base bb module, Copyright 2003 Holger Schurig
+
+import hashlib
+import json
+import os
+import shutil
+import subprocess
+import bb
+from   bb.fetch2 import logger, subprocess_setup, UnpackError
+from   bb.fetch2.wget import Wget
+
+
+class Crate(Wget):
+
+    """Class to fetch crates via wget"""
+
+    def _cargo_bitbake_path(self, rootdir):
+        return os.path.join(rootdir, "cargo_home", "bitbake")
+
+    def supports(self, ud, d):
+        """
+        Check to see if a given url is for this fetcher
+        """
+        return ud.type in ['crate']
+
+    def recommends_checksum(self, urldata):
+        return False
+
+    def urldata_init(self, ud, d):
+        """
+        Sets up to download the respective crate from crates.io
+        """
+
+        if ud.type == 'crate':
+            self._crate_urldata_init(ud, d)
+
+        super(Crate, self).urldata_init(ud, d)
+
+    def _crate_urldata_init(self, ud, d):
+        """
+        Sets up the download for a crate
+        """
+
+        # URL syntax is: crate://NAME/VERSION
+        # break the URL apart by /
+        parts = ud.url.split('/')
+        if len(parts) < 5:
+            raise bb.fetch2.ParameterError("Invalid URL: Must be crate://HOST/NAME/VERSION", ud.url)
+
+        # last field is version
+        version = parts[len(parts) - 1]
+        # second to last field is name
+        name = parts[len(parts) - 2]
+        # host (this is to allow custom crate registries to be specified
+        host = '/'.join(parts[2:len(parts) - 2])
+
+        # if using upstream just fix it up nicely
+        if host == 'crates.io':
+            host = 'crates.io/api/v1/crates'
+
+        ud.url = "https://%s/%s/%s/download" % (host, name, version)
+        ud.parm['downloadfilename'] = "%s-%s.crate" % (name, version)
+        ud.parm['name'] = name
+
+        logger.debug(2, "Fetching %s to %s" % (ud.url, ud.parm['downloadfilename']))
+
+    def unpack(self, ud, rootdir, d):
+        """
+        Uses the crate to build the necessary paths for cargo to utilize it
+        """
+        if ud.type == 'crate':
+            return self._crate_unpack(ud, rootdir, d)
+        else:
+            super(Crate, self).unpack(ud, rootdir, d)
+
+    def _crate_unpack(self, ud, rootdir, d):
+        """
+        Unpacks a crate
+        """
+        thefile = ud.localpath
+
+        # possible metadata we need to write out
+        metadata = {}
+
+        # change to the rootdir to unpack but save the old working dir
+        save_cwd = os.getcwd()
+        os.chdir(rootdir)
+
+        pn = d.getVar('BPN')
+        if pn == ud.parm.get('name'):
+            cmd = "tar -xz --no-same-owner -f %s" % thefile
+        else:
+            cargo_bitbake = self._cargo_bitbake_path(rootdir)
+
+            cmd = "tar -xz --no-same-owner -f %s -C %s" % (thefile, cargo_bitbake)
+
+            # ensure we've got these paths made
+            bb.utils.mkdirhier(cargo_bitbake)
+
+            # generate metadata necessary
+            with open(thefile, 'rb') as f:
+                # get the SHA256 of the original tarball
+                tarhash = hashlib.sha256(f.read()).hexdigest()
+
+            metadata['files'] = {}
+            metadata['package'] = tarhash
+
+        path = d.getVar('PATH')
+        if path:
+            cmd = "PATH=\"%s\" %s" % (path, cmd)
+        bb.note("Unpacking %s to %s/" % (thefile, os.getcwd()))
+
+        ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True)
+
+        os.chdir(save_cwd)
+
+        if ret != 0:
+            raise UnpackError("Unpack command %s failed with return value %s" % (cmd, ret), ud.url)
+
+        # if we have metadata to write out..
+        if len(metadata) > 0:
+            cratepath = os.path.splitext(os.path.basename(thefile))[0]
+            bbpath = self._cargo_bitbake_path(rootdir)
+            mdfile = '.cargo-checksum.json'
+            mdpath = os.path.join(bbpath, cratepath, mdfile)
+            with open(mdpath, "w") as f:
+                json.dump(metadata, f)
diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py
index e8ddf2c..30da8e9 100644
--- a/poky/bitbake/lib/bb/fetch2/git.py
+++ b/poky/bitbake/lib/bb/fetch2/git.py
@@ -142,6 +142,11 @@
             ud.proto = 'file'
         else:
             ud.proto = "git"
+        if ud.host == "github.com" and ud.proto == "git":
+            # github stopped supporting git protocol
+            # https://github.blog/2021-09-01-improving-git-protocol-security-github/#no-more-unauthenticated-git
+            ud.proto = "https"
+            bb.warn("URL: %s uses git protocol which is no longer supported by github. Please change to ;protocol=https in the url." % ud.url)
 
         if not ud.proto in ('git', 'file', 'ssh', 'http', 'https', 'rsync'):
             raise bb.fetch2.ParameterError("Invalid protocol type", ud.url)
@@ -165,7 +170,10 @@
             ud.nocheckout = 1
   
         ud.unresolvedrev = {}
-        branches = ud.parm.get("branch", "master").split(',')
+        branches = ud.parm.get("branch", "").split(',')
+        if branches == [""] and not ud.nobranch:
+            bb.warn("URL: %s does not set any branch parameter. The future default branch used by tools and repositories is uncertain and we will therefore soon require this is set in all git urls." % ud.url)
+            branches = ["master"]
         if len(branches) != len(ud.names):
             raise bb.fetch2.ParameterError("The number of name and branch parameters is not balanced", ud.url)
 
@@ -516,13 +524,24 @@
     def unpack(self, ud, destdir, d):
         """ unpack the downloaded src to destdir"""
 
-        subdir = ud.parm.get("subpath", "")
-        if subdir != "":
-            readpathspec = ":%s" % subdir
-            def_destsuffix = "%s/" % os.path.basename(subdir.rstrip('/'))
-        else:
-            readpathspec = ""
-            def_destsuffix = "git/"
+        subdir = ud.parm.get("subdir")
+        subpath = ud.parm.get("subpath")
+        readpathspec = ""
+        def_destsuffix = "git/"
+
+        if subpath:
+            readpathspec = ":%s" % subpath
+            def_destsuffix = "%s/" % os.path.basename(subpath.rstrip('/'))
+
+        if subdir:
+            # If 'subdir' param exists, create a dir and use it as destination for unpack cmd
+            if os.path.isabs(subdir):
+                if not os.path.realpath(subdir).startswith(os.path.realpath(destdir)):
+                    raise bb.fetch2.UnpackError("subdir argument isn't a subdirectory of unpack root %s" % destdir, ud.url)
+                destdir = subdir
+            else:
+                destdir = os.path.join(destdir, subdir)
+            def_destsuffix = ""
 
         destsuffix = ud.parm.get("destsuffix", def_destsuffix)
         destdir = ud.destdir = os.path.join(destdir, destsuffix)
@@ -569,7 +588,7 @@
                 bb.note("Repository %s has LFS content but it is not being fetched" % (repourl))
 
         if not ud.nocheckout:
-            if subdir != "":
+            if subpath:
                 runfetchcmd("%s read-tree %s%s" % (ud.basecmd, ud.revisions[ud.names[0]], readpathspec), d,
                             workdir=destdir)
                 runfetchcmd("%s checkout-index -q -f -a" % ud.basecmd, d, workdir=destdir)
diff --git a/poky/bitbake/lib/bb/fetch2/gitsm.py b/poky/bitbake/lib/bb/fetch2/gitsm.py
index a7110a9..c5c23d52 100644
--- a/poky/bitbake/lib/bb/fetch2/gitsm.py
+++ b/poky/bitbake/lib/bb/fetch2/gitsm.py
@@ -163,7 +163,7 @@
         else:
             self.process_submodules(ud, ud.clonedir, need_update_submodule, d)
 
-        if len(need_update_list) > 0:
+        if need_update_list:
             logger.debug('gitsm: Submodules requiring update: %s' % (' '.join(need_update_list)))
             return True
 
diff --git a/poky/bitbake/lib/bb/fetch2/npm.py b/poky/bitbake/lib/bb/fetch2/npm.py
index 3c41cb2..b3a3a44 100644
--- a/poky/bitbake/lib/bb/fetch2/npm.py
+++ b/poky/bitbake/lib/bb/fetch2/npm.py
@@ -72,7 +72,7 @@
     cmd += " --delay-directory-restore"
     cmd += " --strip-components=1"
     runfetchcmd(cmd, d, workdir=destdir)
-    runfetchcmd("chmod -R +X %s" % (destdir), d, quiet=True, workdir=destdir)
+    runfetchcmd("chmod -R +X '%s'" % (destdir), d, quiet=True, workdir=destdir)
 
 class NpmEnvironment(object):
     """
diff --git a/poky/bitbake/lib/bb/fetch2/npmsw.py b/poky/bitbake/lib/bb/fetch2/npmsw.py
index 426a139..879ba5d 100644
--- a/poky/bitbake/lib/bb/fetch2/npmsw.py
+++ b/poky/bitbake/lib/bb/fetch2/npmsw.py
@@ -88,7 +88,11 @@
             version = params.get("version", None)
 
             # Handle registry sources
-            if is_semver(version) and resolved and integrity:
+            if is_semver(version) and integrity:
+                # Handle duplicate dependencies without url
+                if not resolved:
+                    return
+
                 localfile = npm_localfile(name, version)
 
                 uri = URI(resolved)
@@ -127,6 +131,8 @@
 
             # Handle git sources
             elif version.startswith("git"):
+                if version.startswith("github:"):
+                    version = "git+https://github.com/" + version[len("github:"):]
                 regex = re.compile(r"""
                     ^
                     git\+
diff --git a/poky/bitbake/lib/bb/fetch2/wget.py b/poky/bitbake/lib/bb/fetch2/wget.py
index 349891e..253cabc 100644
--- a/poky/bitbake/lib/bb/fetch2/wget.py
+++ b/poky/bitbake/lib/bb/fetch2/wget.py
@@ -112,7 +112,17 @@
             fetchcmd += " -O %s" % shlex.quote(localpath)
 
         if ud.user and ud.pswd:
-            fetchcmd += " --user=%s --password=%s --auth-no-challenge" % (ud.user, ud.pswd)
+            fetchcmd += " --auth-no-challenge"
+            if ud.parm.get("redirectauth", "1") == "1":
+                # An undocumented feature of wget is that if the
+                # username/password are specified on the URI, wget will only
+                # send the Authorization header to the first host and not to
+                # any hosts that it is redirected to.  With the increasing
+                # usage of temporary AWS URLs, this difference now matters as
+                # AWS will reject any request that has authentication both in
+                # the query parameters (from the redirect) and in the
+                # Authorization header.
+                fetchcmd += " --user=%s --password=%s" % (ud.user, ud.pswd)
 
         uri = ud.url.split(";")[0]
         if os.path.exists(ud.localpath):
@@ -356,7 +366,7 @@
                 except (TypeError, ImportError, IOError, netrc.NetrcParseError):
                     pass
 
-                with opener.open(r) as response:
+                with opener.open(r, timeout=30) as response:
                     pass
             except urllib.error.URLError as e:
                 if try_again:
@@ -583,7 +593,7 @@
 
         # src.rpm extension was added only for rpm package. Can be removed if the rpm
         # packaged will always be considered as having to be manually upgraded
-        psuffix_regex = r"(tar\.gz|tgz|tar\.bz2|zip|xz|tar\.lz|rpm|bz2|orig\.tar\.gz|tar\.xz|src\.tar\.gz|src\.tgz|svnr\d+\.tar\.bz2|stable\.tar\.gz|src\.rpm)"
+        psuffix_regex = r"(tar\.\w+|tgz|zip|xz|rpm|bz2|orig\.tar\.\w+|src\.tar\.\w+|src\.tgz|svnr\d+\.tar\.\w+|stable\.tar\.\w+|src\.rpm)"
 
         # match name, version and archive type of a package
         package_regex_comp = re.compile(r"(?P<name>%s?\.?v?)(?P<pver>%s)(?P<arch>%s)?[\.-](?P<type>%s$)"
diff --git a/poky/bitbake/lib/bb/parse/ast.py b/poky/bitbake/lib/bb/parse/ast.py
index 743ea0d..31bcc8e 100644
--- a/poky/bitbake/lib/bb/parse/ast.py
+++ b/poky/bitbake/lib/bb/parse/ast.py
@@ -130,6 +130,10 @@
         else:
             val = groupd["value"]
 
+        if ":append" in key or ":remove" in key or ":prepend" in key:
+            if op in ["append", "prepend", "postdot", "predot", "ques"]:
+                bb.warn(key + " " + groupd[op] + " is not a recommended operator combination, please replace it.")
+
         flag = None
         if 'flag' in groupd and groupd['flag'] is not None:
             flag = groupd['flag']
diff --git a/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
index 0834fe3..b895d5b 100644
--- a/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
+++ b/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
@@ -48,10 +48,7 @@
 __unset_flag_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/~]+)\[([a-zA-Z0-9\-_+.]+)\]$" )
 
 def init(data):
-    topdir = data.getVar('TOPDIR', False)
-    if not topdir:
-        data.setVar('TOPDIR', os.getcwd())
-
+    return
 
 def supports(fn, d):
     return fn[-5:] == ".conf"
diff --git a/poky/bitbake/lib/bb/process.py b/poky/bitbake/lib/bb/process.py
index d5a1775..af5d804 100644
--- a/poky/bitbake/lib/bb/process.py
+++ b/poky/bitbake/lib/bb/process.py
@@ -60,7 +60,7 @@
         "close_fds": True,
         "preexec_fn": subprocess_setup,
         "stdout": subprocess.PIPE,
-        "stderr": subprocess.STDOUT,
+        "stderr": subprocess.PIPE,
         "stdin": subprocess.PIPE,
         "shell": False,
     }
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index 10511a0..8ae3fe8 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -385,7 +385,6 @@
         self.rq = rq
         self.warn_multi_bb = False
 
-        self.stampwhitelist = cfgData.getVar("BB_STAMP_WHITELIST") or ""
         self.multi_provider_whitelist = (cfgData.getVar("MULTI_PROVIDER_WHITELIST") or "").split()
         self.setscenewhitelist = get_setscene_enforce_whitelist(cfgData, targets)
         self.setscenewhitelist_checked = False
@@ -547,7 +546,7 @@
                         next_points.append(revdep)
                         task_done[revdep] = True
             endpoints = next_points
-            if len(next_points) == 0:
+            if not next_points:
                 break
 
         # Circular dependency sanity check
@@ -589,7 +588,7 @@
 
         found = False
         for mc in self.taskData:
-            if len(taskData[mc].taskentries) > 0:
+            if taskData[mc].taskentries:
                 found = True
                 break
         if not found:
@@ -773,7 +772,7 @@
         # Find the dependency chain endpoints
         endpoints = set()
         for tid in self.runtaskentries:
-            if len(deps[tid]) == 0:
+            if not deps[tid]:
                 endpoints.add(tid)
         # Iterate the chains collating dependencies
         while endpoints:
@@ -784,11 +783,11 @@
                     cumulativedeps[dep].update(cumulativedeps[tid])
                     if tid in deps[dep]:
                         deps[dep].remove(tid)
-                    if len(deps[dep]) == 0:
+                    if not deps[dep]:
                         next.add(dep)
             endpoints = next
         #for tid in deps:
-        #    if len(deps[tid]) != 0:
+        #    if deps[tid]:
         #        bb.warn("Sanity test failure, dependencies left for %s (%s)" % (tid, deps[tid]))
 
         # Loop here since recrdeptasks can depend upon other recrdeptasks and we have to
@@ -926,39 +925,37 @@
         #
         # Once all active tasks are marked, prune the ones we don't need.
 
-        delcount = {}
-        for tid in list(self.runtaskentries.keys()):
-            if tid not in runq_build:
-                delcount[tid] = self.runtaskentries[tid]
-                del self.runtaskentries[tid]
-
         # Handle --runall
         if self.cooker.configuration.runall:
             # re-run the mark_active and then drop unused tasks from new list
+            reduced_tasklist = set(self.runtaskentries.keys())
+            for tid in list(self.runtaskentries.keys()):
+                if tid not in runq_build:
+                   reduced_tasklist.remove(tid)
             runq_build = {}
 
             for task in self.cooker.configuration.runall:
                 if not task.startswith("do_"):
                     task = "do_{0}".format(task)
                 runall_tids = set()
-                for tid in list(self.runtaskentries):
+                for tid in reduced_tasklist:
                     wanttid = "{0}:{1}".format(fn_from_tid(tid), task)
-                    if wanttid in delcount:
-                        self.runtaskentries[wanttid] = delcount[wanttid]
                     if wanttid in self.runtaskentries:
                         runall_tids.add(wanttid)
 
                 for tid in list(runall_tids):
-                    mark_active(tid,1)
+                    mark_active(tid, 1)
                     if self.cooker.configuration.force:
                         invalidate_task(tid, False)
 
-            for tid in list(self.runtaskentries.keys()):
-                if tid not in runq_build:
-                    delcount[tid] = self.runtaskentries[tid]
-                    del self.runtaskentries[tid]
+        delcount = set()
+        for tid in list(self.runtaskentries.keys()):
+            if tid not in runq_build:
+                delcount.add(tid)
+                del self.runtaskentries[tid]
 
-            if len(self.runtaskentries) == 0:
+        if self.cooker.configuration.runall:
+            if not self.runtaskentries:
                 bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the recipes of the taskgraphs of the targets %s" % (str(self.cooker.configuration.runall), str(self.targets)))
 
         self.init_progress_reporter.next_stage()
@@ -971,19 +968,19 @@
             for task in self.cooker.configuration.runonly:
                 if not task.startswith("do_"):
                     task = "do_{0}".format(task)
-                runonly_tids = { k: v for k, v in self.runtaskentries.items() if taskname_from_tid(k) == task }
+                runonly_tids = [k for k in self.runtaskentries.keys() if taskname_from_tid(k) == task]
 
-                for tid in list(runonly_tids):
-                    mark_active(tid,1)
+                for tid in runonly_tids:
+                    mark_active(tid, 1)
                     if self.cooker.configuration.force:
                         invalidate_task(tid, False)
 
             for tid in list(self.runtaskentries.keys()):
                 if tid not in runq_build:
-                    delcount[tid] = self.runtaskentries[tid]
+                    delcount.add(tid)
                     del self.runtaskentries[tid]
 
-            if len(self.runtaskentries) == 0:
+            if not self.runtaskentries:
                 bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the taskgraphs of the targets %s" % (str(self.cooker.configuration.runonly), str(self.targets)))
 
         #
@@ -991,7 +988,7 @@
         #
 
         # Check to make sure we still have tasks to run
-        if len(self.runtaskentries) == 0:
+        if not self.runtaskentries:
             if not taskData[''].abort:
                 bb.msg.fatal("RunQueue", "All buildable tasks have been run but the build is incomplete (--continue mode). Errors for the tasks that failed will have been printed above.")
             else:
@@ -1015,7 +1012,7 @@
         endpoints = []
         for tid in self.runtaskentries:
             revdeps = self.runtaskentries[tid].revdeps
-            if len(revdeps) == 0:
+            if not revdeps:
                 endpoints.append(tid)
             for dep in revdeps:
                 if dep in self.runtaskentries[tid].depends:
@@ -1061,12 +1058,12 @@
                         seen_pn.append(pn)
                     else:
                         bb.fatal("Multiple versions of %s are due to be built (%s). Only one version of a given PN should be built in any given build. You likely need to set PREFERRED_VERSION_%s to select the correct version or don't depend on multiple versions." % (pn, " ".join(prov_list[prov]), pn))
-                msg = "Multiple .bb files are due to be built which each provide %s:\n  %s" % (prov, "\n  ".join(prov_list[prov]))
+                msgs = ["Multiple .bb files are due to be built which each provide %s:\n  %s" % (prov, "\n  ".join(prov_list[prov]))]
                 #
                 # Construct a list of things which uniquely depend on each provider
                 # since this may help the user figure out which dependency is triggering this warning
                 #
-                msg += "\nA list of tasks depending on these providers is shown and may help explain where the dependency comes from."
+                msgs.append("\nA list of tasks depending on these providers is shown and may help explain where the dependency comes from.")
                 deplist = {}
                 commondeps = None
                 for provfn in prov_list[prov]:
@@ -1086,12 +1083,12 @@
                         commondeps &= deps
                     deplist[provfn] = deps
                 for provfn in deplist:
-                    msg += "\n%s has unique dependees:\n  %s" % (provfn, "\n  ".join(deplist[provfn] - commondeps))
+                    msgs.append("\n%s has unique dependees:\n  %s" % (provfn, "\n  ".join(deplist[provfn] - commondeps)))
                 #
                 # Construct a list of provides and runtime providers for each recipe
                 # (rprovides has to cover RPROVIDES, PACKAGES, PACKAGES_DYNAMIC)
                 #
-                msg += "\nIt could be that one recipe provides something the other doesn't and should. The following provider and runtime provider differences may be helpful."
+                msgs.append("\nIt could be that one recipe provides something the other doesn't and should. The following provider and runtime provider differences may be helpful.")
                 provide_results = {}
                 rprovide_results = {}
                 commonprovs = None
@@ -1118,29 +1115,18 @@
                     else:
                         commonrprovs &= rprovides
                     rprovide_results[provfn] = rprovides
-                #msg += "\nCommon provides:\n  %s" % ("\n  ".join(commonprovs))
-                #msg += "\nCommon rprovides:\n  %s" % ("\n  ".join(commonrprovs))
+                #msgs.append("\nCommon provides:\n  %s" % ("\n  ".join(commonprovs)))
+                #msgs.append("\nCommon rprovides:\n  %s" % ("\n  ".join(commonrprovs)))
                 for provfn in prov_list[prov]:
-                    msg += "\n%s has unique provides:\n  %s" % (provfn, "\n  ".join(provide_results[provfn] - commonprovs))
-                    msg += "\n%s has unique rprovides:\n  %s" % (provfn, "\n  ".join(rprovide_results[provfn] - commonrprovs))
+                    msgs.append("\n%s has unique provides:\n  %s" % (provfn, "\n  ".join(provide_results[provfn] - commonprovs)))
+                    msgs.append("\n%s has unique rprovides:\n  %s" % (provfn, "\n  ".join(rprovide_results[provfn] - commonrprovs)))
 
                 if self.warn_multi_bb:
-                    logger.verbnote(msg)
+                    logger.verbnote("".join(msgs))
                 else:
-                    logger.error(msg)
+                    logger.error("".join(msgs))
 
         self.init_progress_reporter.next_stage()
-
-        # Create a whitelist usable by the stamp checks
-        self.stampfnwhitelist = {}
-        for mc in self.taskData:
-            self.stampfnwhitelist[mc] = []
-            for entry in self.stampwhitelist.split():
-                if entry not in self.taskData[mc].build_targets:
-                    continue
-                fn = self.taskData.build_targets[entry][0]
-                self.stampfnwhitelist[mc].append(fn)
-
         self.init_progress_reporter.next_stage()
 
         # Iterate over the task list looking for tasks with a 'setscene' function
@@ -1188,9 +1174,9 @@
         # Iterate over the task list and call into the siggen code
         dealtwith = set()
         todeal = set(self.runtaskentries)
-        while len(todeal) > 0:
+        while todeal:
             for tid in todeal.copy():
-                if len(self.runtaskentries[tid].depends - dealtwith) == 0:
+                if not (self.runtaskentries[tid].depends - dealtwith):
                     dealtwith.add(tid)
                     todeal.remove(tid)
                     self.prepare_task_hash(tid)
@@ -1229,7 +1215,6 @@
         self.cfgData = cfgData
         self.rqdata = RunQueueData(self, cooker, cfgData, dataCaches, taskData, targets)
 
-        self.stamppolicy = cfgData.getVar("BB_STAMP_POLICY") or "perfile"
         self.hashvalidate = cfgData.getVar("BB_HASHCHECK_FUNCTION") or None
         self.depvalidate = cfgData.getVar("BB_SETSCENE_DEPVALID") or None
 
@@ -1358,14 +1343,6 @@
         if taskname is None:
             taskname = tn
 
-        if self.stamppolicy == "perfile":
-            fulldeptree = False
-        else:
-            fulldeptree = True
-            stampwhitelist = []
-            if self.stamppolicy == "whitelist":
-                stampwhitelist = self.rqdata.stampfnwhitelist[mc]
-
         stampfile = bb.build.stampfile(taskname, self.rqdata.dataCaches[mc], taskfn)
 
         # If the stamp is missing, it's not current
@@ -1397,7 +1374,7 @@
                     continue
                 if t3 and t3 > t2:
                     continue
-                if fn == fn2 or (fulldeptree and fn2 not in stampwhitelist):
+                if fn == fn2:
                     if not t2:
                         logger.debug2('Stampfile %s does not exist', stampfile2)
                         iscurrent = False
@@ -1500,10 +1477,10 @@
             self.rqexe = RunQueueExecute(self)
 
             # If we don't have any setscene functions, skip execution
-            if len(self.rqdata.runq_setscene_tids) == 0:
+            if not self.rqdata.runq_setscene_tids:
                 logger.info('No setscene tasks')
                 for tid in self.rqdata.runtaskentries:
-                    if len(self.rqdata.runtaskentries[tid].depends) == 0:
+                    if not self.rqdata.runtaskentries[tid].depends:
                         self.rqexe.setbuildable(tid)
                     self.rqexe.tasks_notcovered.add(tid)
                 self.rqexe.sqdone = True
@@ -1780,7 +1757,7 @@
             bb.fatal("Invalid scheduler '%s'.  Available schedulers: %s" %
                      (self.scheduler, ", ".join(obj.name for obj in schedulers)))
 
-        #if len(self.rqdata.runq_setscene_tids) > 0:
+        #if self.rqdata.runq_setscene_tids:
         self.sqdata = SQData()
         build_scenequeue_data(self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self)
 
@@ -1821,7 +1798,7 @@
                 # worker must have died?
                 pass
 
-        if len(self.failed_tids) != 0:
+        if self.failed_tids:
             self.rq.state = runQueueFailed
             return
 
@@ -1837,7 +1814,7 @@
             self.rq.read_workers()
             return self.rq.active_fds()
 
-        if len(self.failed_tids) != 0:
+        if self.failed_tids:
             self.rq.state = runQueueFailed
             return True
 
@@ -1935,7 +1912,7 @@
         self.stats.taskFailed()
         self.failed_tids.append(task)
 
-        fakeroot_log = ""
+        fakeroot_log = []
         if fakerootlog and os.path.exists(fakerootlog):
             with open(fakerootlog) as fakeroot_log_file:
                 fakeroot_failed = False
@@ -1945,12 +1922,12 @@
                             fakeroot_failed = True
                     if 'doing new pid setup and server start' in line:
                         break
-                    fakeroot_log = line + fakeroot_log
+                    fakeroot_log.append(line)
 
             if not fakeroot_failed:
-                fakeroot_log = None
+                fakeroot_log = []
 
-        bb.event.fire(runQueueTaskFailed(task, self.stats, exitcode, self.rq, fakeroot_log=fakeroot_log), self.cfgData)
+        bb.event.fire(runQueueTaskFailed(task, self.stats, exitcode, self.rq, fakeroot_log=("".join(fakeroot_log) or None)), self.cfgData)
 
         if self.rqdata.taskData[''].abort:
             self.rq.state = runQueueCleanUp
@@ -2001,7 +1978,7 @@
             if x not in self.tasks_scenequeue_done:
                 logger.error("Task %s was never processed by the setscene code" % x)
                 err = True
-            if len(self.rqdata.runtaskentries[x].depends) == 0 and x not in self.runq_buildable:
+            if not self.rqdata.runtaskentries[x].depends and x not in self.runq_buildable:
                 logger.error("Task %s was never marked as buildable by the setscene code" % x)
                 err = True
         return err
@@ -2025,7 +2002,7 @@
             # Find the next setscene to run
             for nexttask in self.sorted_setscene_tids:
                 if nexttask in self.sq_buildable and nexttask not in self.sq_running and self.sqdata.stamps[nexttask] not in self.build_stamps.values():
-                    if nexttask not in self.sqdata.unskippable and len(self.sqdata.sq_revdeps[nexttask]) > 0 and self.sqdata.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and self.check_dependencies(nexttask, self.sqdata.sq_revdeps[nexttask]):
+                    if nexttask not in self.sqdata.unskippable and self.sqdata.sq_revdeps[nexttask] and self.sqdata.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and self.check_dependencies(nexttask, self.sqdata.sq_revdeps[nexttask]):
                         if nexttask not in self.rqdata.target_tids:
                             logger.debug2("Skipping setscene for task %s" % nexttask)
                             self.sq_task_skip(nexttask)
@@ -2189,7 +2166,7 @@
             if self.can_start_task():
                 return True
 
-        if self.stats.active > 0 or len(self.sq_live) > 0:
+        if self.stats.active > 0 or self.sq_live:
             self.rq.read_workers()
             return self.rq.active_fds()
 
@@ -2201,7 +2178,7 @@
                 self.sq_task_failoutright(tid)
             return True
 
-        if len(self.failed_tids) != 0:
+        if self.failed_tids:
             self.rq.state = runQueueFailed
             return True
 
@@ -2280,7 +2257,7 @@
         covered.intersection_update(self.tasks_scenequeue_done)
 
         for tid in notcovered | covered:
-            if len(self.rqdata.runtaskentries[tid].depends) == 0:
+            if not self.rqdata.runtaskentries[tid].depends:
                 self.setbuildable(tid)
             elif self.rqdata.runtaskentries[tid].depends.issubset(self.runq_complete):
                  self.setbuildable(tid)
@@ -2339,7 +2316,7 @@
         # Now iterate those tasks in dependency order to regenerate their taskhash/unihash
         next = set()
         for p in total:
-            if len(self.rqdata.runtaskentries[p].depends) == 0:
+            if not self.rqdata.runtaskentries[p].depends:
                 next.add(p)
             elif self.rqdata.runtaskentries[p].depends.isdisjoint(total):
                 next.add(p)
@@ -2349,7 +2326,7 @@
             current = next.copy()
             next = set()
             for tid in current:
-                if len(self.rqdata.runtaskentries[p].depends) and not self.rqdata.runtaskentries[tid].depends.isdisjoint(total):
+                if self.rqdata.runtaskentries[p].depends and not self.rqdata.runtaskentries[tid].depends.isdisjoint(total):
                     continue
                 orighash = self.rqdata.runtaskentries[tid].hash
                 dc = bb.parse.siggen.get_data_caches(self.rqdata.dataCaches, mc_from_tid(tid))
@@ -2436,7 +2413,7 @@
             if not harddepfail and self.sqdata.sq_revdeps[tid].issubset(self.scenequeue_covered | self.scenequeue_notcovered):
                 if tid not in self.sq_buildable:
                     self.sq_buildable.add(tid)
-            if len(self.sqdata.sq_revdeps[tid]) == 0:
+            if not self.sqdata.sq_revdeps[tid]:
                 self.sq_buildable.add(tid)
 
             if tid in self.sqdata.outrightfail:
@@ -2608,12 +2585,13 @@
         pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn]
         if not check_setscene_enforce_whitelist(pn, taskname, self.rqdata.setscenewhitelist):
             if tid in self.rqdata.runq_setscene_tids:
-                msg = 'Task %s.%s attempted to execute unexpectedly and should have been setscened' % (pn, taskname)
+                msg = ['Task %s.%s attempted to execute unexpectedly and should have been setscened' % (pn, taskname)]
             else:
-                msg = 'Task %s.%s attempted to execute unexpectedly' % (pn, taskname)
+                msg = ['Task %s.%s attempted to execute unexpectedly' % (pn, taskname)]
             for t in self.scenequeue_notcovered:
-                msg = msg + "\nTask %s, unihash %s, taskhash %s" % (t, self.rqdata.runtaskentries[t].unihash, self.rqdata.runtaskentries[t].hash)
-            logger.error(msg + '\nThis is usually due to missing setscene tasks. Those missing in this build were: %s' % pprint.pformat(self.scenequeue_notcovered))
+                msg.append("\nTask %s, unihash %s, taskhash %s" % (t, self.rqdata.runtaskentries[t].unihash, self.rqdata.runtaskentries[t].hash))
+            msg.append('\nThis is usually due to missing setscene tasks. Those missing in this build were: %s' % pprint.pformat(self.scenequeue_notcovered))
+            logger.error("".join(msg))
             return True
         return False
 
@@ -2652,7 +2630,7 @@
     for tid in rqdata.runtaskentries:
         sq_revdeps[tid] = copy.copy(rqdata.runtaskentries[tid].revdeps)
         sq_revdeps_squash[tid] = set()
-        if (len(sq_revdeps[tid]) == 0) and tid not in rqdata.runq_setscene_tids:
+        if not sq_revdeps[tid] and tid not in rqdata.runq_setscene_tids:
             #bb.warn("Added endpoint %s" % (tid))
             endpoints[tid] = set()
 
@@ -2693,9 +2671,9 @@
                     sq_revdeps[dep].remove(point)
                 if tasks:
                     sq_revdeps_squash[dep] |= tasks
-                if len(sq_revdeps[dep]) == 0 and dep not in rqdata.runq_setscene_tids:
+                if not sq_revdeps[dep] and dep not in rqdata.runq_setscene_tids:
                     newendpoints[dep] = task
-        if len(newendpoints) != 0:
+        if newendpoints:
             process_endpoints(newendpoints)
 
     process_endpoints(endpoints)
@@ -2707,7 +2685,7 @@
     # Take the build endpoints (no revdeps) and find the sstate tasks they depend upon
     new = True
     for tid in rqdata.runtaskentries:
-        if len(rqdata.runtaskentries[tid].revdeps) == 0:
+        if not rqdata.runtaskentries[tid].revdeps:
             sqdata.unskippable.add(tid)
     sqdata.unskippable |= sqrq.cantskip
     while new:
@@ -2716,7 +2694,7 @@
         for tid in sorted(orig, reverse=True):
             if tid in rqdata.runq_setscene_tids:
                 continue
-            if len(rqdata.runtaskentries[tid].depends) == 0:
+            if not rqdata.runtaskentries[tid].depends:
                 # These are tasks which have no setscene tasks in their chain, need to mark as directly buildable
                 sqrq.setbuildable(tid)
             sqdata.unskippable |= rqdata.runtaskentries[tid].depends
@@ -2731,7 +2709,7 @@
     for taskcounter, tid in enumerate(rqdata.runtaskentries):
         if tid in rqdata.runq_setscene_tids:
             pass
-        elif len(sq_revdeps_squash[tid]) != 0:
+        elif sq_revdeps_squash[tid]:
             bb.msg.fatal("RunQueue", "Something went badly wrong during scenequeue generation, aborting. Please report this problem.")
         else:
             del sq_revdeps_squash[tid]
@@ -2796,7 +2774,7 @@
     sqdata.multiconfigs = set()
     for tid in sqdata.sq_revdeps:
         sqdata.multiconfigs.add(mc_from_tid(tid))
-        if len(sqdata.sq_revdeps[tid]) == 0:
+        if not sqdata.sq_revdeps[tid]:
             sqrq.sq_buildable.add(tid)
 
     rqdata.init_progress_reporter.finish()
@@ -3050,7 +3028,7 @@
                 raise
         end = len(self.queue)
         found = True
-        while found and len(self.queue):
+        while found and self.queue:
             found = False
             index = self.queue.find(b"</event>")
             while index != -1 and self.queue.startswith(b"<event>"):
@@ -3088,7 +3066,7 @@
     def close(self):
         while self.read():
             continue
-        if len(self.queue) > 0:
+        if self.queue:
             print("Warning, worker left partial message: %s" % self.queue)
         self.input.close()
 
diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py
index 8fdcc66..1636616 100644
--- a/poky/bitbake/lib/bb/server/process.py
+++ b/poky/bitbake/lib/bb/server/process.py
@@ -326,10 +326,10 @@
                         if e.errno != errno.ENOENT:
                             raise
 
-                msg = "Delaying shutdown due to active processes which appear to be holding bitbake.lock"
+                msg = ["Delaying shutdown due to active processes which appear to be holding bitbake.lock"]
                 if procs:
-                    msg += ":\n%s" % str(procs.decode("utf-8"))
-                serverlog(msg)
+                    msg.append(":\n%s" % str(procs.decode("utf-8")))
+                serverlog("".join(msg))
 
     def idle_commands(self, delay, fds=None):
         nextsleep = delay
diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py
index 578ba5d..e0ec736 100644
--- a/poky/bitbake/lib/bb/siggen.py
+++ b/poky/bitbake/lib/bb/siggen.py
@@ -328,6 +328,8 @@
 
         for (f, cs) in self.file_checksum_values[tid]:
             if cs:
+                if "/./" in f:
+                    data = data + "./" + f.split("/./")[1]
                 data = data + cs
 
         if tid in self.taints:
@@ -385,7 +387,12 @@
 
         if runtime and tid in self.taskhash:
             data['runtaskdeps'] = self.runtaskdeps[tid]
-            data['file_checksum_values'] = [(os.path.basename(f), cs) for f,cs in self.file_checksum_values[tid]]
+            data['file_checksum_values'] = []
+            for f,cs in self.file_checksum_values[tid]:
+                if "/./" in f:
+                    data['file_checksum_values'].append(("./" + f.split("/./")[1], cs))
+                else:
+                    data['file_checksum_values'].append((os.path.basename(f), cs))
             data['runtaskhashes'] = {}
             for dep in data['runtaskdeps']:
                 data['runtaskhashes'][dep] = self.get_unihash(dep)
@@ -1028,6 +1035,8 @@
 
     for c in sigdata['file_checksum_values']:
         if c[1]:
+            if "./" in c[0]:
+                data = data + c[0]
             data = data + c[1]
 
     if 'taint' in sigdata:
@@ -1045,28 +1054,28 @@
     with bb.compress.zstd.open(a, "rt", encoding="utf-8", num_threads=1) as f:
         a_data = json.load(f, object_hook=SetDecoder)
 
-    output.append("basewhitelist: %s" % (a_data['basewhitelist']))
+    output.append("basewhitelist: %s" % (sorted(a_data['basewhitelist'])))
 
-    output.append("taskwhitelist: %s" % (a_data['taskwhitelist']))
+    output.append("taskwhitelist: %s" % (sorted(a_data['taskwhitelist'] or [])))
 
     output.append("Task dependencies: %s" % (sorted(a_data['taskdeps'])))
 
     output.append("basehash: %s" % (a_data['basehash']))
 
-    for dep in a_data['gendeps']:
-        output.append("List of dependencies for variable %s is %s" % (dep, a_data['gendeps'][dep]))
+    for dep in sorted(a_data['gendeps']):
+        output.append("List of dependencies for variable %s is %s" % (dep, sorted(a_data['gendeps'][dep])))
 
-    for dep in a_data['varvals']:
+    for dep in sorted(a_data['varvals']):
         output.append("Variable %s value is %s" % (dep, a_data['varvals'][dep]))
 
     if 'runtaskdeps' in a_data:
-        output.append("Tasks this task depends on: %s" % (a_data['runtaskdeps']))
+        output.append("Tasks this task depends on: %s" % (sorted(a_data['runtaskdeps'])))
 
     if 'file_checksum_values' in a_data:
-        output.append("This task depends on the checksums of files: %s" % (a_data['file_checksum_values']))
+        output.append("This task depends on the checksums of files: %s" % (sorted(a_data['file_checksum_values'])))
 
     if 'runtaskhashes' in a_data:
-        for dep in a_data['runtaskhashes']:
+        for dep in sorted(a_data['runtaskhashes']):
             output.append("Hash for dependent task %s is %s" % (dep, a_data['runtaskhashes'][dep]))
 
     if 'taint' in a_data:
diff --git a/poky/bitbake/lib/bb/taskdata.py b/poky/bitbake/lib/bb/taskdata.py
index 47bad6d..7bfcdb8 100644
--- a/poky/bitbake/lib/bb/taskdata.py
+++ b/poky/bitbake/lib/bb/taskdata.py
@@ -451,12 +451,12 @@
         for target in self.build_targets:
             if fn in self.build_targets[target]:
                 self.build_targets[target].remove(fn)
-                if len(self.build_targets[target]) == 0:
+                if not self.build_targets[target]:
                     self.remove_buildtarget(target, missing_list)
         for target in self.run_targets:
             if fn in self.run_targets[target]:
                 self.run_targets[target].remove(fn)
-                if len(self.run_targets[target]) == 0:
+                if not self.run_targets[target]:
                     self.remove_runtarget(target, missing_list)
 
     def remove_buildtarget(self, target, missing_list=None):
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/debian/pool/main/m/minicom/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/debian/pool/main/m/minicom/index.html
new file mode 100644
index 0000000..4a1eb4d
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/debian/pool/main/m/minicom/index.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+  <title>Index of /debian/pool/main/m/minicom</title>
+ </head>
+ <body>
+<h1>Index of /debian/pool/main/m/minicom</h1>
+  <table>
+   <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th></tr>
+   <tr><th colspan="4"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/debian/pool/main/m/">Parent Directory</a></td><td>&nbsp;</td><td align="right">  - </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1+deb8u1.debian.tar.xz">minicom_2.7-1+deb8u1.debian.tar.xz</a></td><td align="right">2017-04-24 08:22  </td><td align="right"> 14K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1+deb8u1.dsc">minicom_2.7-1+deb8u1.dsc</a></td><td align="right">2017-04-24 08:22  </td><td align="right">1.9K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1+deb8u1_amd64.deb">minicom_2.7-1+deb8u1_amd64.deb</a></td><td align="right">2017-04-25 21:10  </td><td align="right">257K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1+deb8u1_armel.deb">minicom_2.7-1+deb8u1_armel.deb</a></td><td align="right">2017-04-26 00:58  </td><td align="right">246K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1+deb8u1_armhf.deb">minicom_2.7-1+deb8u1_armhf.deb</a></td><td align="right">2017-04-26 00:58  </td><td align="right">245K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1+deb8u1_i386.deb">minicom_2.7-1+deb8u1_i386.deb</a></td><td align="right">2017-04-25 21:41  </td><td align="right">258K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1.1.debian.tar.xz">minicom_2.7-1.1.debian.tar.xz</a></td><td align="right">2017-04-22 09:34  </td><td align="right"> 14K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1.1.dsc">minicom_2.7-1.1.dsc</a></td><td align="right">2017-04-22 09:34  </td><td align="right">1.9K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1.1_amd64.deb">minicom_2.7-1.1_amd64.deb</a></td><td align="right">2017-04-22 15:29  </td><td align="right">261K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1.1_arm64.deb">minicom_2.7-1.1_arm64.deb</a></td><td align="right">2017-04-22 15:29  </td><td align="right">250K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1.1_armel.deb">minicom_2.7-1.1_armel.deb</a></td><td align="right">2017-04-22 15:29  </td><td align="right">255K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1.1_armhf.deb">minicom_2.7-1.1_armhf.deb</a></td><td align="right">2017-04-22 15:29  </td><td align="right">254K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1.1_i386.deb">minicom_2.7-1.1_i386.deb</a></td><td align="right">2017-04-22 15:29  </td><td align="right">266K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1.1_mips.deb">minicom_2.7-1.1_mips.deb</a></td><td align="right">2017-04-22 15:29  </td><td align="right">258K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1.1_mips64el.deb">minicom_2.7-1.1_mips64el.deb</a></td><td align="right">2017-04-22 15:29  </td><td align="right">259K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1.1_mipsel.deb">minicom_2.7-1.1_mipsel.deb</a></td><td align="right">2017-04-22 15:29  </td><td align="right">259K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1.1_ppc64el.deb">minicom_2.7-1.1_ppc64el.deb</a></td><td align="right">2017-04-22 15:29  </td><td align="right">253K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7-1.1_s390x.deb">minicom_2.7-1.1_s390x.deb</a></td><td align="right">2017-04-22 15:29  </td><td align="right">261K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7.1-1+b1_amd64.deb">minicom_2.7.1-1+b1_amd64.deb</a></td><td align="right">2018-05-06 08:14  </td><td align="right">262K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7.1-1+b1_arm64.deb">minicom_2.7.1-1+b1_arm64.deb</a></td><td align="right">2018-05-06 07:58  </td><td align="right">250K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7.1-1+b1_armel.deb">minicom_2.7.1-1+b1_armel.deb</a></td><td align="right">2018-05-06 08:45  </td><td align="right">253K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7.1-1+b1_armhf.deb">minicom_2.7.1-1+b1_armhf.deb</a></td><td align="right">2018-05-06 10:42  </td><td align="right">253K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7.1-1+b1_i386.deb">minicom_2.7.1-1+b1_i386.deb</a></td><td align="right">2018-05-06 08:55  </td><td align="right">266K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7.1-1+b1_mips.deb">minicom_2.7.1-1+b1_mips.deb</a></td><td align="right">2018-05-06 08:14  </td><td align="right">258K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7.1-1+b1_mipsel.deb">minicom_2.7.1-1+b1_mipsel.deb</a></td><td align="right">2018-05-06 12:13  </td><td align="right">259K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7.1-1+b1_ppc64el.deb">minicom_2.7.1-1+b1_ppc64el.deb</a></td><td align="right">2018-05-06 09:10  </td><td align="right">260K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7.1-1+b1_s390x.deb">minicom_2.7.1-1+b1_s390x.deb</a></td><td align="right">2018-05-06 08:14  </td><td align="right">257K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7.1-1+b2_mips64el.deb">minicom_2.7.1-1+b2_mips64el.deb</a></td><td align="right">2018-05-06 09:41  </td><td align="right">260K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7.1-1.debian.tar.xz">minicom_2.7.1-1.debian.tar.xz</a></td><td align="right">2017-08-13 15:40  </td><td align="right"> 14K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.7.1-1.dsc">minicom_2.7.1-1.dsc</a></td><td align="right">2017-08-13 15:40  </td><td align="right">1.8K</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[   ]"></td><td><a href="minicom_2.7.1.orig.tar.gz">minicom_2.7.1.orig.tar.gz</a></td><td align="right">2017-08-13 15:40  </td><td align="right">855K</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[   ]"></td><td><a href="minicom_2.7.orig.tar.gz">minicom_2.7.orig.tar.gz</a></td><td align="right">2014-01-01 09:36  </td><td align="right">843K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.8-2.debian.tar.xz">minicom_2.8-2.debian.tar.xz</a></td><td align="right">2021-06-15 03:47  </td><td align="right"> 14K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.8-2.dsc">minicom_2.8-2.dsc</a></td><td align="right">2021-06-15 03:47  </td><td align="right">1.8K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.8-2_amd64.deb">minicom_2.8-2_amd64.deb</a></td><td align="right">2021-06-15 03:58  </td><td align="right">280K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.8-2_arm64.deb">minicom_2.8-2_arm64.deb</a></td><td align="right">2021-06-15 04:13  </td><td align="right">275K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.8-2_armel.deb">minicom_2.8-2_armel.deb</a></td><td align="right">2021-06-15 04:13  </td><td align="right">271K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.8-2_armhf.deb">minicom_2.8-2_armhf.deb</a></td><td align="right">2021-06-15 04:13  </td><td align="right">272K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.8-2_i386.deb">minicom_2.8-2_i386.deb</a></td><td align="right">2021-06-15 04:13  </td><td align="right">285K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.8-2_mips64el.deb">minicom_2.8-2_mips64el.deb</a></td><td align="right">2021-06-15 04:13  </td><td align="right">277K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.8-2_mipsel.deb">minicom_2.8-2_mipsel.deb</a></td><td align="right">2021-06-15 04:13  </td><td align="right">278K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.8-2_ppc64el.deb">minicom_2.8-2_ppc64el.deb</a></td><td align="right">2021-06-15 04:13  </td><td align="right">286K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.8-2_s390x.deb">minicom_2.8-2_s390x.deb</a></td><td align="right">2021-06-15 03:58  </td><td align="right">275K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="minicom_2.8.orig.tar.bz2">minicom_2.8.orig.tar.bz2</a></td><td align="right">2021-01-03 12:44  </td><td align="right">598K</td></tr>
+   <tr><th colspan="4"><hr></th></tr>
+</table>
+<address>Apache Server at ftp.debian.org Port 80</address>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index 8ad1c85..ec7d83c 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -430,6 +430,12 @@
             : "http://somewhere2.org/somefile_1.2.3.tar.gz",
         ("git://someserver.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master", "git://someserver.org/bitbake;branch=master", "git://git.openembedded.org/bitbake;protocol=http")
             : "git://git.openembedded.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master;protocol=http",
+        ("git://user1@someserver.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master", "git://someserver.org/bitbake;branch=master", "git://user2@git.openembedded.org/bitbake;protocol=http")
+            : "git://user2@git.openembedded.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master;protocol=http",
+        ("git://someserver.org/bitbake;tag=1234567890123456789012345678901234567890;protocol=git;branch=master", "git://someserver.org/bitbake", "git://someotherserver.org/bitbake;protocol=https")
+            : "git://someotherserver.org/bitbake;tag=1234567890123456789012345678901234567890;protocol=https;branch=master",
+
+        ("gitsm://git.qemu.org/git/seabios.git/;protocol=https;name=roms/seabios;subpath=roms/seabios;bareclone=1;nobranch=1;rev=1234567890123456789012345678901234567890", "gitsm://.*/.*", "http://petalinux.xilinx.com/sswreleases/rel-v${XILINX_VER_MAIN}/downloads") : "http://petalinux.xilinx.com/sswreleases/rel-v%24%7BXILINX_VER_MAIN%7D/downloads/git2_git.qemu.org.git.seabios.git..tar.gz",
 
         #Renaming files doesn't work
         #("http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz") : "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz"
@@ -491,7 +497,7 @@
         super(GitDownloadDirectoryNamingTest, self).setUp()
         self.recipe_url = "git://git.openembedded.org/bitbake"
         self.recipe_dir = "git.openembedded.org.bitbake"
-        self.mirror_url = "git://github.com/openembedded/bitbake.git"
+        self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https"
         self.mirror_dir = "github.com.openembedded.bitbake.git"
 
         self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40')
@@ -539,7 +545,7 @@
         super(TarballNamingTest, self).setUp()
         self.recipe_url = "git://git.openembedded.org/bitbake"
         self.recipe_tarball = "git2_git.openembedded.org.bitbake.tar.gz"
-        self.mirror_url = "git://github.com/openembedded/bitbake.git"
+        self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https"
         self.mirror_tarball = "git2_github.com.openembedded.bitbake.git.tar.gz"
 
         self.d.setVar('BB_GENERATE_MIRROR_TARBALLS', '1')
@@ -573,7 +579,7 @@
         super(GitShallowTarballNamingTest, self).setUp()
         self.recipe_url = "git://git.openembedded.org/bitbake"
         self.recipe_tarball = "gitshallow_git.openembedded.org.bitbake_82ea737-1_master.tar.gz"
-        self.mirror_url = "git://github.com/openembedded/bitbake.git"
+        self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https"
         self.mirror_tarball = "gitshallow_github.com.openembedded.bitbake.git_82ea737-1_master.tar.gz"
 
         self.d.setVar('BB_GIT_SHALLOW', '1')
@@ -620,6 +626,9 @@
         os.makedirs(os.path.join(self.localsrcdir, 'dir', 'subdir'))
         touch(os.path.join(self.localsrcdir, 'dir', 'subdir', 'e'))
         touch(os.path.join(self.localsrcdir, r'backslash\x2dsystemd-unit.device'))
+        bb.process.run('tar cf archive.tar -C dir .', cwd=self.localsrcdir)
+        bb.process.run('tar czf archive.tar.gz -C dir .', cwd=self.localsrcdir)
+        bb.process.run('tar cjf archive.tar.bz2 -C dir .', cwd=self.localsrcdir)
         self.d.setVar("FILESPATH", self.localsrcdir)
 
     def fetchUnpack(self, uris):
@@ -674,6 +683,18 @@
         with self.assertRaises(bb.fetch2.UnpackError):
             self.fetchUnpack(['file://a;subdir=/bin/sh'])
 
+    def test_local_striplevel(self):
+        tree = self.fetchUnpack(['file://archive.tar;subdir=bar;striplevel=1'])
+        self.assertEqual(tree, ['bar/c', 'bar/d', 'bar/subdir/e'])
+
+    def test_local_striplevel_gzip(self):
+        tree = self.fetchUnpack(['file://archive.tar.gz;subdir=bar;striplevel=1'])
+        self.assertEqual(tree, ['bar/c', 'bar/d', 'bar/subdir/e'])
+
+    def test_local_striplevel_bzip2(self):
+        tree = self.fetchUnpack(['file://archive.tar.bz2;subdir=bar;striplevel=1'])
+        self.assertEqual(tree, ['bar/c', 'bar/d', 'bar/subdir/e'])
+
     def dummyGitTest(self, suffix):
         # Create dummy local Git repo
         src_dir = tempfile.mkdtemp(dir=self.tempdir,
@@ -875,17 +896,25 @@
     @skipIfNoNetwork()
     def test_fetch_premirror_specify_downloadfilename_regex_uri(self):
         self.d.setVar("PREMIRRORS", "http://.*/.* https://downloads.yoctoproject.org/releases/bitbake/")
-        fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz;downloadfilename=bitbake-v1.0.0.tar.gz"], self.d)
+        fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/1.0.tar.gz;downloadfilename=bitbake-1.0.tar.gz"], self.d)
         fetcher.download()
-        self.assertEqual(os.path.getsize(self.dldir + "/bitbake-v1.0.0.tar.gz"), 57749)
+        self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
 
     @skipIfNoNetwork()
     # BZ13039
     def test_fetch_premirror_specify_downloadfilename_specific_uri(self):
         self.d.setVar("PREMIRRORS", "http://invalid.yoctoproject.org/releases/bitbake https://downloads.yoctoproject.org/releases/bitbake")
-        fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz;downloadfilename=bitbake-v1.0.0.tar.gz"], self.d)
+        fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/1.0.tar.gz;downloadfilename=bitbake-1.0.tar.gz"], self.d)
         fetcher.download()
-        self.assertEqual(os.path.getsize(self.dldir + "/bitbake-v1.0.0.tar.gz"), 57749)
+        self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
+
+    @skipIfNoNetwork()
+    def test_fetch_premirror_use_downloadfilename_to_fetch(self):
+        # Ensure downloadfilename is used when fetching from premirror.
+        self.d.setVar("PREMIRRORS", "http://.*/.* https://downloads.yoctoproject.org/releases/bitbake")
+        fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.1.tar.gz;downloadfilename=bitbake-1.0.tar.gz"], self.d)
+        fetcher.download()
+        self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
 
     @skipIfNoNetwork()
     def gitfetcher(self, url1, url2):
@@ -996,7 +1025,7 @@
     def test_git_submodule_dbus_broker(self):
         # The following external repositories have show failures in fetch and unpack operations
         # We want to avoid regressions!
-        url = "gitsm://github.com/bus1/dbus-broker;protocol=git;rev=fc874afa0992d0c75ec25acb43d344679f0ee7d2;branch=main"
+        url = "gitsm://github.com/bus1/dbus-broker;protocol=https;rev=fc874afa0992d0c75ec25acb43d344679f0ee7d2;branch=main"
         fetcher = bb.fetch.Fetch([url], self.d)
         fetcher.download()
         # Previous cwd has been deleted
@@ -1012,7 +1041,7 @@
 
     @skipIfNoNetwork()
     def test_git_submodule_CLI11(self):
-        url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=bd4dc911847d0cde7a6b41dfa626a85aab213baf;branch=main"
+        url = "gitsm://github.com/CLIUtils/CLI11;protocol=https;rev=bd4dc911847d0cde7a6b41dfa626a85aab213baf;branch=main"
         fetcher = bb.fetch.Fetch([url], self.d)
         fetcher.download()
         # Previous cwd has been deleted
@@ -1027,12 +1056,12 @@
     @skipIfNoNetwork()
     def test_git_submodule_update_CLI11(self):
         """ Prevent regression on update detection not finding missing submodule, or modules without needed commits """
-        url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=cf6a99fa69aaefe477cc52e3ef4a7d2d7fa40714;branch=main"
+        url = "gitsm://github.com/CLIUtils/CLI11;protocol=https;rev=cf6a99fa69aaefe477cc52e3ef4a7d2d7fa40714;branch=main"
         fetcher = bb.fetch.Fetch([url], self.d)
         fetcher.download()
 
         # CLI11 that pulls in a newer nlohmann-json
-        url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=49ac989a9527ee9bb496de9ded7b4872c2e0e5ca;branch=main"
+        url = "gitsm://github.com/CLIUtils/CLI11;protocol=https;rev=49ac989a9527ee9bb496de9ded7b4872c2e0e5ca;branch=main"
         fetcher = bb.fetch.Fetch([url], self.d)
         fetcher.download()
         # Previous cwd has been deleted
@@ -1046,7 +1075,7 @@
 
     @skipIfNoNetwork()
     def test_git_submodule_aktualizr(self):
-        url = "gitsm://github.com/advancedtelematic/aktualizr;branch=master;protocol=git;rev=d00d1a04cc2366d1a5f143b84b9f507f8bd32c44"
+        url = "gitsm://github.com/advancedtelematic/aktualizr;branch=master;protocol=https;rev=d00d1a04cc2366d1a5f143b84b9f507f8bd32c44"
         fetcher = bb.fetch.Fetch([url], self.d)
         fetcher.download()
         # Previous cwd has been deleted
@@ -1066,7 +1095,7 @@
         """ Prevent regression on deeply nested submodules not being checked out properly, even though they were fetched. """
 
         # This repository also has submodules where the module (name), path and url do not align
-        url = "gitsm://github.com/azure/iotedge.git;protocol=git;rev=d76e0316c6f324345d77c48a83ce836d09392699"
+        url = "gitsm://github.com/azure/iotedge.git;protocol=https;rev=d76e0316c6f324345d77c48a83ce836d09392699"
         fetcher = bb.fetch.Fetch([url], self.d)
         fetcher.download()
         # Previous cwd has been deleted
@@ -1124,7 +1153,7 @@
 
         bb.process.run("svn co %s svnfetch_co" % self.repo_url, cwd=self.tempdir)
         # Github will emulate SVN.  Use this to check if we're downloding...
-        bb.process.run("svn propset svn:externals 'bitbake svn://vcs.pcre.org/pcre2/code' .",
+        bb.process.run("svn propset svn:externals 'bitbake https://github.com/PhilipHazel/pcre2.git' .",
                        cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk'))
         bb.process.run("svn commit --non-interactive -m 'Add external'",
                        cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk'))
@@ -1242,7 +1271,7 @@
 
     test_git_uris = {
         # version pattern "X.Y.Z"
-        ("mx-1.0", "git://github.com/clutter-project/mx.git;branch=mx-1.4", "9b1db6b8060bd00b121a692f942404a24ae2960f", "")
+        ("mx-1.0", "git://github.com/clutter-project/mx.git;branch=mx-1.4;protocol=https", "9b1db6b8060bd00b121a692f942404a24ae2960f", "")
             : "1.99.4",
         # version pattern "vX.Y"
         # mirror of git.infradead.org since network issues interfered with testing
@@ -1269,9 +1298,9 @@
             : "0.4.3",
         ("build-appliance-image", "git://git.yoctoproject.org/poky", "b37dd451a52622d5b570183a81583cc34c2ff555", r"(?P<pver>(([0-9][\.|_]?)+[0-9]))")
             : "11.0.0",
-        ("chkconfig-alternatives-native", "git://github.com/kergoth/chkconfig;branch=sysroot", "cd437ecbd8986c894442f8fce1e0061e20f04dee", r"chkconfig\-(?P<pver>((\d+[\.\-_]*)+))")
+        ("chkconfig-alternatives-native", "git://github.com/kergoth/chkconfig;branch=sysroot;protocol=https", "cd437ecbd8986c894442f8fce1e0061e20f04dee", r"chkconfig\-(?P<pver>((\d+[\.\-_]*)+))")
             : "1.3.59",
-        ("remake", "git://github.com/rocky/remake.git", "f05508e521987c8494c92d9c2871aec46307d51d", r"(?P<pver>(\d+\.(\d+\.)*\d*(\+dbg\d+(\.\d+)*)*))")
+        ("remake", "git://github.com/rocky/remake.git;protocol=https", "f05508e521987c8494c92d9c2871aec46307d51d", r"(?P<pver>(\d+\.(\d+\.)*\d*(\+dbg\d+(\.\d+)*)*))")
             : "3.82+dbg0.9",
     }
 
@@ -1317,6 +1346,12 @@
         # http://ftp.debian.org/debian/pool/main/d/db5.3/
         ("db", "/berkeley-db/db-5.3.21.tar.gz", "/debian/pool/main/d/db5.3/", r"(?P<name>db5\.3_)(?P<pver>\d+(\.\d+)+).+\.orig\.tar\.xz")
             : "5.3.10",
+        #
+        # packages where the tarball compression changed in the new version
+        #
+        # http://ftp.debian.org/debian/pool/main/m/minicom/minicom_2.7.1.orig.tar.gz
+        ("minicom", "/debian/pool/main/m/minicom/minicom_2.7.1.orig.tar.gz", "", "")
+            : "2.8",
     }
 
     @skipIfNoNetwork()
@@ -1365,9 +1400,6 @@
                       "https://downloads.yoctoproject.org/releases/opkg/opkg-0.1.7.tar.gz",
                       "https://downloads.yoctoproject.org/releases/opkg/opkg-0.3.0.tar.gz",
                       "ftp://sourceware.org/pub/libffi/libffi-1.20.tar.gz",
-                      "http://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz",
-                      "https://ftp.gnu.org/gnu/chess/gnuchess-5.08.tar.gz",
-                      "https://ftp.gnu.org/gnu/gmp/gmp-4.0.tar.gz",
                       # GitHub releases are hosted on Amazon S3, which doesn't support HEAD
                       "https://github.com/kergoth/tslib/releases/download/1.1/tslib-1.1.tar.xz"
                       ]
@@ -2058,7 +2090,7 @@
 
     @skipIfNoNetwork()
     def test_bitbake(self):
-        self.git('remote add --mirror=fetch origin git://github.com/openembedded/bitbake', cwd=self.srcdir)
+        self.git('remote add --mirror=fetch origin https://github.com/openembedded/bitbake', cwd=self.srcdir)
         self.git('config core.bare true', cwd=self.srcdir)
         self.git('fetch', cwd=self.srcdir)
 
@@ -2149,7 +2181,7 @@
     def test_lfs_enabled(self):
         import shutil
 
-        uri = 'git://%s;protocol=file;subdir=${S};lfs=1' % self.srcdir
+        uri = 'git://%s;protocol=file;lfs=1' % self.srcdir
         self.d.setVar('SRC_URI', uri)
 
         # Careful: suppress initial attempt at downloading until
@@ -2174,7 +2206,7 @@
     def test_lfs_disabled(self):
         import shutil
 
-        uri = 'git://%s;protocol=file;subdir=${S};lfs=0' % self.srcdir
+        uri = 'git://%s;protocol=file;lfs=0' % self.srcdir
         self.d.setVar('SRC_URI', uri)
 
         # In contrast to test_lfs_enabled(), allow the implicit download
@@ -2228,6 +2260,41 @@
             self.assertEqual(ud.clonedir, os.path.join(self.dldir, "git2", ref['gitsrcname']))
             self.assertEqual(ud.fullmirror, os.path.join(self.dldir, "git2_" + ref['gitsrcname'] + '.tar.gz'))
 
+class CrateTest(FetcherTest):
+    def test_crate_url(self):
+
+        uri = "crate://crates.io/glob/0.2.11"
+        self.d.setVar('SRC_URI', uri)
+
+        uris = self.d.getVar('SRC_URI').split()
+        d = self.d
+
+        fetcher = bb.fetch2.Fetch(uris, self.d)
+        fetcher.download()
+        fetcher.unpack(self.tempdir)
+        self.assertEqual(sorted(os.listdir(self.tempdir)), ['cargo_home', 'download' , 'unpacked'])
+        self.assertEqual(sorted(os.listdir(self.tempdir + "/download")), ['glob-0.2.11.crate', 'glob-0.2.11.crate.done'])
+        self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/glob-0.2.11/.cargo-checksum.json"))
+        self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/glob-0.2.11/src/lib.rs"))
+
+    def test_crate_url_multi(self):
+
+        uri = "crate://crates.io/glob/0.2.11 crate://crates.io/time/0.1.35"
+        self.d.setVar('SRC_URI', uri)
+
+        uris = self.d.getVar('SRC_URI').split()
+        d = self.d
+
+        fetcher = bb.fetch2.Fetch(uris, self.d)
+        fetcher.download()
+        fetcher.unpack(self.tempdir)
+        self.assertEqual(sorted(os.listdir(self.tempdir)), ['cargo_home', 'download' , 'unpacked'])
+        self.assertEqual(sorted(os.listdir(self.tempdir + "/download")), ['glob-0.2.11.crate', 'glob-0.2.11.crate.done', 'time-0.1.35.crate', 'time-0.1.35.crate.done'])
+        self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/glob-0.2.11/.cargo-checksum.json"))
+        self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/glob-0.2.11/src/lib.rs"))
+        self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/time-0.1.35/.cargo-checksum.json"))
+        self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/time-0.1.35/src/lib.rs"))
+
 class NPMTest(FetcherTest):
     def skipIfNoNpm():
         import shutil
diff --git a/poky/bitbake/lib/bb/tests/runqueue.py b/poky/bitbake/lib/bb/tests/runqueue.py
index 5b6ada8..35d5a84 100644
--- a/poky/bitbake/lib/bb/tests/runqueue.py
+++ b/poky/bitbake/lib/bb/tests/runqueue.py
@@ -29,9 +29,10 @@
     def run_bitbakecmd(self, cmd, builddir, sstatevalid="", slowtasks="", extraenv=None, cleanup=False):
         env = os.environ.copy()
         env["BBPATH"] = os.path.realpath(os.path.join(os.path.dirname(__file__), "runqueue-tests"))
-        env["BB_ENV_EXTRAWHITE"] = "SSTATEVALID SLOWTASKS"
+        env["BB_ENV_EXTRAWHITE"] = "SSTATEVALID SLOWTASKS TOPDIR"
         env["SSTATEVALID"] = sstatevalid
         env["SLOWTASKS"] = slowtasks
+        env["TOPDIR"] = builddir
         if extraenv:
             for k in extraenv:
                 env[k] = extraenv[k]
@@ -58,6 +59,8 @@
             expected = ['a1:' + x for x in self.alltasks]
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_single_setscenevalid(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             cmd = ["bitbake", "a1"]
@@ -68,6 +71,8 @@
                         'a1:populate_sysroot', 'a1:build']
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_intermediate_setscenevalid(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             cmd = ["bitbake", "a1"]
@@ -77,6 +82,8 @@
                         'a1:populate_sysroot_setscene', 'a1:build']
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_intermediate_notcovered(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             cmd = ["bitbake", "a1"]
@@ -86,6 +93,8 @@
                         'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene']
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_all_setscenevalid(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             cmd = ["bitbake", "a1"]
@@ -95,6 +104,8 @@
                         'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene']
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_no_settasks(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             cmd = ["bitbake", "a1", "-c", "patch"]
@@ -103,6 +114,8 @@
             expected = ['a1:fetch', 'a1:unpack', 'a1:patch']
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_mix_covered_notcovered(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             cmd = ["bitbake", "a1:do_patch", "a1:do_populate_sysroot"]
@@ -111,6 +124,7 @@
             expected = ['a1:fetch', 'a1:unpack', 'a1:patch', 'a1:populate_sysroot_setscene']
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
 
     # Test targets with intermediate setscene tasks alongside a target with no intermediate setscene tasks
     def test_mixed_direct_tasks_setscene_tasks(self):
@@ -122,6 +136,8 @@
                         'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene']
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     # This test slows down the execution of do_package_setscene until after other real tasks have
     # started running which tests for a bug where tasks were being lost from the buildable list of real
     # tasks if they weren't in tasks_covered or tasks_notcovered
@@ -136,6 +152,8 @@
                         'a1:populate_sysroot', 'a1:build']
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_setscenewhitelist(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             cmd = ["bitbake", "a1"]
@@ -149,6 +167,8 @@
                         'a1:populate_sysroot_setscene', 'a1:package_setscene']
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     # Tests for problems with dependencies between setscene tasks
     def test_no_setscenevalid_harddeps(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
@@ -162,6 +182,8 @@
                         'd1:populate_sysroot', 'd1:build']
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_no_setscenevalid_withdeps(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             cmd = ["bitbake", "b1"]
@@ -172,6 +194,8 @@
             expected.remove('a1:package_qa')
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_single_a1_setscenevalid_withdeps(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             cmd = ["bitbake", "b1"]
@@ -182,6 +206,8 @@
                         'a1:populate_sysroot'] + ['b1:' + x for x in self.alltasks]
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_single_b1_setscenevalid_withdeps(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             cmd = ["bitbake", "b1"]
@@ -193,6 +219,8 @@
             expected.remove('b1:package')
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_intermediate_setscenevalid_withdeps(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             cmd = ["bitbake", "b1"]
@@ -203,6 +231,8 @@
             expected.remove('b1:package')
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_all_setscenevalid_withdeps(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             cmd = ["bitbake", "b1"]
@@ -213,6 +243,8 @@
                         'b1:packagedata_setscene', 'b1:package_qa_setscene', 'b1:populate_sysroot_setscene']
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_multiconfig_setscene_optimise(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             extraenv = {
@@ -232,6 +264,8 @@
                 expected.remove(x)
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_multiconfig_bbmask(self):
         # This test validates that multiconfigs can independently mask off
         # recipes they do not want with BBMASK. It works by having recipes
@@ -248,6 +282,8 @@
             cmd = ["bitbake", "mc:mc-1:fails-mc2", "mc:mc_2:fails-mc1"]
             self.run_bitbakecmd(cmd, tempdir, "", extraenv=extraenv)
 
+            self.shutdown(tempdir)
+
     def test_multiconfig_mcdepends(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             extraenv = {
@@ -278,6 +314,8 @@
                        ["mc_2:a1:%s" % t for t in rerun_tasks]
             self.assertEqual(set(tasks), set(expected))
 
+            self.shutdown(tempdir)
+
     def test_hashserv_single(self):
         with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
             extraenv = {
@@ -358,7 +396,6 @@
 
     def shutdown(self, tempdir):
         # Wait for the hashserve socket to disappear else we'll see races with the tempdir cleanup
-        while (os.path.exists(tempdir + "/hashserve.sock") or os.path.exists(tempdir + "cache/hashserv.db-wal")):
+        while (os.path.exists(tempdir + "/hashserve.sock") or os.path.exists(tempdir + "cache/hashserv.db-wal") or os.path.exists(tempdir + "/bitbake.lock")):
             time.sleep(0.5)
 
-
diff --git a/poky/bitbake/lib/bb/ui/buildinfohelper.py b/poky/bitbake/lib/bb/ui/buildinfohelper.py
index 43aa592..835e92c 100644
--- a/poky/bitbake/lib/bb/ui/buildinfohelper.py
+++ b/poky/bitbake/lib/bb/ui/buildinfohelper.py
@@ -483,11 +483,11 @@
 
             # we already created the root directory, so ignore any
             # entry for it
-            if len(path) == 0:
+            if not path:
                 continue
 
             parent_path = "/".join(path.split("/")[:len(path.split("/")) - 1])
-            if len(parent_path) == 0:
+            if not parent_path:
                 parent_path = "/"
             parent_obj = self._cached_get(Target_File, target = target_obj, path = parent_path, inodetype = Target_File.ITYPE_DIRECTORY)
             tf_obj = Target_File.objects.create(
@@ -571,7 +571,7 @@
         assert isinstance(build_obj, Build)
         assert isinstance(target_obj, Target)
 
-        errormsg = ""
+        errormsg = []
         for p in packagedict:
             # Search name swtiches round the installed name vs package name
             # by default installed name == package name
@@ -633,10 +633,10 @@
                         packagefile_objects.append(Package_File( package = packagedict[p]['object'],
                             path = targetpath,
                             size = targetfilesize))
-                    if len(packagefile_objects):
+                    if packagefile_objects:
                         Package_File.objects.bulk_create(packagefile_objects)
                 except KeyError as e:
-                    errormsg += "  stpi: Key error, package %s key %s \n" % ( p, e )
+                    errormsg.append("  stpi: Key error, package %s key %s \n" % (p, e))
 
             # save disk installed size
             packagedict[p]['object'].installed_size = packagedict[p]['size']
@@ -673,13 +673,13 @@
                     logger.warning("Could not add dependency to the package %s "
                                    "because %s is an unknown package", p, px)
 
-        if len(packagedeps_objs) > 0:
+        if packagedeps_objs:
             Package_Dependency.objects.bulk_create(packagedeps_objs)
         else:
             logger.info("No package dependencies created")
 
-        if len(errormsg) > 0:
-            logger.warning("buildinfohelper: target_package_info could not identify recipes: \n%s", errormsg)
+        if errormsg:
+            logger.warning("buildinfohelper: target_package_info could not identify recipes: \n%s", "".join(errormsg))
 
     def save_target_image_file_information(self, target_obj, file_name, file_size):
         Target_Image_File.objects.create(target=target_obj,
@@ -767,7 +767,7 @@
             packagefile_objects.append(Package_File( package = bp_object,
                                         path = path,
                                         size = package_info['FILES_INFO'][path] ))
-        if len(packagefile_objects):
+        if packagefile_objects:
             Package_File.objects.bulk_create(packagefile_objects)
 
         def _po_byname(p):
@@ -809,7 +809,7 @@
                 packagedeps_objs.append(Package_Dependency(  package = bp_object,
                     depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RCONFLICTS))
 
-        if len(packagedeps_objs) > 0:
+        if packagedeps_objs:
             Package_Dependency.objects.bulk_create(packagedeps_objs)
 
         return bp_object
@@ -826,7 +826,7 @@
                     desc = vardump[root_var]['doc']
             if desc is None:
                 desc = ''
-            if len(desc):
+            if desc:
                 HelpText.objects.get_or_create(build=build_obj,
                                                area=HelpText.VARIABLE,
                                                key=k, text=desc)
@@ -846,7 +846,7 @@
                                 file_name = vh['file'],
                                 line_number = vh['line'],
                                 operation = vh['op']))
-                if len(varhist_objects):
+                if varhist_objects:
                     VariableHistory.objects.bulk_create(varhist_objects)
 
 
@@ -1069,7 +1069,7 @@
         for t in self.internal_state['targets']:
             buildname = self.internal_state['build'].build_name
             pe, pv = task_object.recipe.version.split(":",1)
-            if len(pe) > 0:
+            if pe:
                 package = task_object.recipe.name + "-" + pe + "_" + pv
             else:
                 package = task_object.recipe.name + "-" + pv
@@ -1404,7 +1404,7 @@
         assert 'pn' in event._depgraph
         assert 'tdepends' in event._depgraph
 
-        errormsg = ""
+        errormsg = []
 
         # save layer version priorities
         if 'layer-priorities' in event._depgraph.keys():
@@ -1496,7 +1496,7 @@
                 elif dep in self.internal_state['recipes']:
                     dependency = self.internal_state['recipes'][dep]
                 else:
-                    errormsg += "  stpd: KeyError saving recipe dependency for %s, %s \n" % (recipe, dep)
+                    errormsg.append("  stpd: KeyError saving recipe dependency for %s, %s \n" % (recipe, dep))
                     continue
                 recipe_dep = Recipe_Dependency(recipe=target,
                                                depends_on=dependency,
@@ -1537,8 +1537,8 @@
                 taskdeps_objects.append(Task_Dependency( task = target, depends_on = dep ))
         Task_Dependency.objects.bulk_create(taskdeps_objects)
 
-        if len(errormsg) > 0:
-            logger.warning("buildinfohelper: dependency info not identify recipes: \n%s", errormsg)
+        if errormsg:
+            logger.warning("buildinfohelper: dependency info not identify recipes: \n%s", "".join(errormsg))
 
 
     def store_build_package_information(self, event):
@@ -1618,7 +1618,7 @@
 
         if 'backlog' in self.internal_state:
             # if we have a backlog of events, do our best to save them here
-            if len(self.internal_state['backlog']):
+            if self.internal_state['backlog']:
                 tempevent = self.internal_state['backlog'].pop()
                 logger.debug("buildinfohelper: Saving stored event %s "
                              % tempevent)
diff --git a/poky/bitbake/lib/bb/ui/uievent.py b/poky/bitbake/lib/bb/ui/uievent.py
index 8607d05..e19c770 100644
--- a/poky/bitbake/lib/bb/ui/uievent.py
+++ b/poky/bitbake/lib/bb/ui/uievent.py
@@ -73,13 +73,13 @@
 
         self.eventQueueLock.acquire()
 
-        if len(self.eventQueue) == 0:
+        if not self.eventQueue:
             self.eventQueueLock.release()
             return None
 
         item = self.eventQueue.pop(0)
 
-        if len(self.eventQueue) == 0:
+        if not self.eventQueue:
             self.eventQueueNotify.clear()
 
         self.eventQueueLock.release()
diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py
index 7063491..0312231 100644
--- a/poky/bitbake/lib/bb/utils.py
+++ b/poky/bitbake/lib/bb/utils.py
@@ -16,7 +16,8 @@
 import multiprocessing
 import fcntl
 import importlib
-from importlib import machinery
+import importlib.machinery
+import importlib.util
 import itertools
 import subprocess
 import glob
@@ -26,6 +27,7 @@
 import signal
 import collections
 import copy
+import ctypes
 from subprocess import getstatusoutput
 from contextlib import contextmanager
 from ctypes import cdll
@@ -451,6 +453,10 @@
     consider the possibility of sending a signal to the process to break
     out - at which point you want block=True rather than retry=True.
     """
+    if len(name) > 255:
+        root, ext = os.path.splitext(name)
+        name = root[:255 - len(ext)] + ext
+
     dirname = os.path.dirname(name)
     mkdirhier(dirname)
 
@@ -487,7 +493,7 @@
                     return lf
             lf.close()
         except OSError as e:
-            if e.errno == errno.EACCES:
+            if e.errno == errno.EACCES or e.errno == errno.ENAMETOOLONG:
                 logger.error("Unable to acquire lock '%s', %s",
                              e.strerror, name)
                 sys.exit(1)
@@ -1590,6 +1596,36 @@
     except:
         pass
 
+def disable_network(uid=None, gid=None):
+    """
+    Disable networking in the current process if the kernel supports it, else
+    just return after logging to debug. To do this we need to create a new user
+    namespace, then map back to the original uid/gid.
+    """
+    libc = ctypes.CDLL('libc.so.6')
+
+    # From sched.h
+    # New user namespace
+    CLONE_NEWUSER = 0x10000000
+    # New network namespace
+    CLONE_NEWNET = 0x40000000
+
+    if uid is None:
+        uid = os.getuid()
+    if gid is None:
+        gid = os.getgid()
+
+    ret = libc.unshare(CLONE_NEWNET | CLONE_NEWUSER)
+    if ret != 0:
+        logger.debug("System doesn't suport disabling network without admin privs")
+        return
+    with open("/proc/self/uid_map", "w") as f:
+        f.write("%s %s 1" % (uid, uid))
+    with open("/proc/self/setgroups", "w") as f:
+        f.write("deny")
+    with open("/proc/self/gid_map", "w") as f:
+        f.write("%s %s 1" % (gid, gid))
+
 def export_proxies(d):
     """ export common proxies variables from datastore to environment """
     import os
@@ -1616,7 +1652,9 @@
         logger.debug('Loading plugin %s' % name)
         spec = importlib.machinery.PathFinder.find_spec(name, path=[pluginpath] )
         if spec:
-            return spec.loader.load_module()
+            mod = importlib.util.module_from_spec(spec)
+            spec.loader.exec_module(mod)
+            return mod
 
     logger.debug('Loading plugins from %s...' % pluginpath)
 
diff --git a/poky/bitbake/lib/pyinotify.py b/poky/bitbake/lib/pyinotify.py
index 6ae40a2..8c94b3e 100644
--- a/poky/bitbake/lib/pyinotify.py
+++ b/poky/bitbake/lib/pyinotify.py
@@ -52,7 +52,6 @@
 from datetime import datetime, timedelta
 import time
 import re
-import asyncore
 import glob
 import locale
 import subprocess
@@ -1475,35 +1474,6 @@
         self.loop()
 
 
-class AsyncNotifier(asyncore.file_dispatcher, Notifier):
-    """
-    This notifier inherits from asyncore.file_dispatcher in order to be able to
-    use pyinotify along with the asyncore framework.
-
-    """
-    def __init__(self, watch_manager, default_proc_fun=None, read_freq=0,
-                 threshold=0, timeout=None, channel_map=None):
-        """
-        Initializes the async notifier. The only additional parameter is
-        'channel_map' which is the optional asyncore private map. See
-        Notifier class for the meaning of the others parameters.
-
-        """
-        Notifier.__init__(self, watch_manager, default_proc_fun, read_freq,
-                          threshold, timeout)
-        asyncore.file_dispatcher.__init__(self, self._fd, channel_map)
-
-    def handle_read(self):
-        """
-        When asyncore tells us we can read from the fd, we proceed processing
-        events. This method can be overridden for handling a notification
-        differently.
-
-        """
-        self.read_events()
-        self.process_events()
-
-
 class TornadoAsyncNotifier(Notifier):
     """
     Tornado ioloop adapter.
diff --git a/poky/documentation/README b/poky/documentation/README
index 2d9eb88..10b46de 100644
--- a/poky/documentation/README
+++ b/poky/documentation/README
@@ -56,9 +56,16 @@
 This file defines variables used for documentation production.  The variables
 are used to define release pathnames, URLs for the published manuals, etc.
 
-template
-========
-Contains various templates, fonts, and some old PNG files.
+standards.md
+============
+
+This file specifies some rules to follow when contributing to the documentation.
+
+template/
+=========
+
+Contains a template.svg, to make it easier to create consistent
+SVG diagrams.
 
 Sphinx
 ======
@@ -331,7 +338,7 @@
  - With a specific description instead of the section name:
   :ref:`Azure Storage fetcher (az://) <bitbake:bitbake-user-manual/bitbake-user-manual-fetching:fetchers>`
  - With the section name:
-  ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-intro:usage and syntax` option
+  :ref:`bitbake:bitbake-user-manual/bitbake-user-manual-intro:usage and syntax` option
  - Linking to the entire BitBake manual:
   :doc:`BitBake User Manual <bitbake:index>`
 
diff --git a/poky/documentation/brief-yoctoprojectqs/index.rst b/poky/documentation/brief-yoctoprojectqs/index.rst
index c041953..eaacde2 100644
--- a/poky/documentation/brief-yoctoprojectqs/index.rst
+++ b/poky/documentation/brief-yoctoprojectqs/index.rst
@@ -244,19 +244,24 @@
    .. tip::
 
       You can significantly speed up your build and guard against fetcher
-      failures by using mirrors. To use mirrors, add these lines to your
-      local.conf file in the Build directory::
+      failures by using :ref:`overview-manual/concepts:shared state cache`
+      mirrors and enabling :ref:`overview-manual/concepts:hash equivalence`.
+      This way, you can use pre-built artifacts rather than building them.
+      This is relevant only when your network and the server that you use
+      can download these artifacts faster than you would be able to build them.
 
-         SSTATE_MIRRORS = "\
-         file://.* http://sstate.yoctoproject.org/dev/PATH;downloadfilename=PATH \n \
-         file://.* http://sstate.yoctoproject.org/&YOCTO_DOC_VERSION_MINUS_ONE;/PATH;downloadfilename=PATH \n \
-         file://.* http://sstate.yoctoproject.org/&YOCTO_DOC_VERSION;/PATH;downloadfilename=PATH \n \
-         "
+      To use such mirrors, uncomment the below lines in your ``local.conf``
+      file in the :term:`Build Directory`::
 
+         BB_SIGNATURE_HANDLER = "OEEquivHash"
+         BB_HASHSERVE = "auto"
+         BB_HASHSERVE_UPSTREAM = "typhoon.yocto.io:8687"
+         SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/&YOCTO_DOC_VERSION;/PATH;downloadfilename=PATH"
 
-      The previous examples showed how to add sstate paths for Yocto Project
-      &YOCTO_DOC_VERSION_MINUS_ONE;, &YOCTO_DOC_VERSION;, and a development
-      area. For a complete index of sstate locations, see :yocto_sstate:`/`.
+      The above settings assumed the use of Yocto Project &YOCTO_DOC_VERSION;.
+      If you are using the development version instead, set :term:`SSTATE_MIRRORS` as follows::
+
+         SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/dev/PATH;downloadfilename=PATH"
 
 #. **Start the Build:** Continue with the following command to build an OS
    image for the target, which is ``core-image-sato`` in this example:
diff --git a/poky/documentation/bsp-guide/bsp.rst b/poky/documentation/bsp-guide/bsp.rst
index 65652ff..f8d38ca 100644
--- a/poky/documentation/bsp-guide/bsp.rst
+++ b/poky/documentation/bsp-guide/bsp.rst
@@ -1121,12 +1121,12 @@
    how to use these variables.
 
    If you build as you normally would, without specifying any recipes in
-   the :term:`LICENSE_FLAGS_WHITELIST`, the build stops and provides you
-   with the list of recipes that you have tried to include in the image
-   that need entries in the :term:`LICENSE_FLAGS_WHITELIST`. Once you enter
-   the appropriate license flags into the whitelist, restart the build
-   to continue where it left off. During the build, the prompt will not
-   appear again since you have satisfied the requirement.
+   the :term:`LICENSE_FLAGS_WHITELIST` variable, the build stops and provides
+   you with the list of recipes that you have tried to include in the image
+   that need entries in the :term:`LICENSE_FLAGS_WHITELIST` variable. Once you
+   enter the appropriate license flags into it, restart the build to continue
+   where it left off. During the build, the prompt will not appear again since
+   you have satisfied the requirement.
 
    Once the appropriate license flags are on the white list in the
    :term:`LICENSE_FLAGS_WHITELIST` variable, you can build the encumbered
diff --git a/poky/documentation/conf.py b/poky/documentation/conf.py
index 8e08479..1bea180 100644
--- a/poky/documentation/conf.py
+++ b/poky/documentation/conf.py
@@ -17,6 +17,7 @@
 import datetime
 
 current_version = "dev"
+bitbake_version = "" # Leave empty for development branch
 
 # String used in sidebar
 version = 'Version: ' + current_version
@@ -90,7 +91,7 @@
 
 # Intersphinx config to use cross reference with Bitbake user manual
 intersphinx_mapping = {
-    'bitbake': ('https://docs.yoctoproject.org/bitbake/', None)
+    'bitbake': ('https://docs.yoctoproject.org/bitbake/' + bitbake_version, None)
 }
 
 # Suppress "WARNING: unknown mimetype for ..."
diff --git a/poky/documentation/dev-manual/common-tasks.rst b/poky/documentation/dev-manual/common-tasks.rst
index 3eead14..ed6b144 100644
--- a/poky/documentation/dev-manual/common-tasks.rst
+++ b/poky/documentation/dev-manual/common-tasks.rst
@@ -24,15 +24,17 @@
 Creating Your Own Layer
 -----------------------
 
-It is very easy to create your own layers to use with the OpenEmbedded
-build system, as the Yocto Project ships with tools that speed up creating
-layers. This section describes the steps you perform by hand to create
-layers so that you can better understand them. For information about the
-layer-creation tools, see the
-":ref:`bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` script`"
-section in the Yocto Project Board Support Package (BSP) Developer's
-Guide and the ":ref:`dev-manual/common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
-section further down in this manual.
+.. note::
+
+   It is very easy to create your own layers to use with the OpenEmbedded
+   build system, as the Yocto Project ships with tools that speed up creating
+   layers. This section describes the steps you perform by hand to create
+   layers so that you can better understand them. For information about the
+   layer-creation tools, see the
+   ":ref:`bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` script`"
+   section in the Yocto Project Board Support Package (BSP) Developer's
+   Guide and the ":ref:`dev-manual/common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
+   section further down in this manual.
 
 Follow these general steps to create your layer without using tools:
 
@@ -234,11 +236,6 @@
 
          KERNEL_FEATURES:append:qemuall=" features/debug/printk.scc"
 
-      .. note::
-
-         Avoiding "+=" and "=+" and using machine-specific ``:append``
-         and ``:prepend`` operations is recommended as well.
-
    -  *Place Machine-Specific Files in Machine-Specific Locations:* When
       you have a base recipe, such as ``base-files.bb``, that contains a
       :term:`SRC_URI` statement to a
@@ -943,7 +940,8 @@
 :term:`Build Directory`.
 
 To understand how these features work, the best reference is
-``meta/classes/image.bbclass``. This class lists out the available
+:ref:`meta/classes/image.bbclass <ref-classes-image>`.
+This class lists out the available
 :term:`IMAGE_FEATURES` of which most map to package groups while some, such
 as ``debug-tweaks`` and ``read-only-rootfs``, resolve as general
 configuration settings.
@@ -2118,7 +2116,7 @@
 
    PROVIDES += "${@ "virtual/kernel" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else "" }"
 
-Any recipe that inherits the ``kernel`` class is
+Any recipe that inherits the :ref:`kernel <ref-classes-kernel>` class is
 going to utilize a :term:`PROVIDES` statement that identifies that recipe as
 being able to provide the ``virtual/kernel`` item.
 
@@ -2245,12 +2243,13 @@
 
 If you have recipes that use ``pkg_postinst`` function and they require
 the use of non-standard native tools that have dependencies during
-rootfs construction, you need to use the
+root filesystem construction, you need to use the
 :term:`PACKAGE_WRITE_DEPS`
 variable in your recipe to list these tools. If you do not use this
 variable, the tools might be missing and execution of the
 post-installation script is deferred until first boot. Deferring the
-script to first boot is undesirable and for read-only rootfs impossible.
+script to the first boot is undesirable and impossible for read-only
+root filesystems.
 
 .. note::
 
@@ -2464,7 +2463,7 @@
 The easiest solution is to create a recipe that uses the
 :ref:`bin_package <ref-classes-bin-package>` class
 and to be sure that you are using default locations for build artifacts.
-In most cases, the ``bin_package`` class handles "skipping" the
+In most cases, the :ref:`bin_package <ref-classes-bin-package>` class handles "skipping" the
 configure and compile steps as well as sets things up to grab packages
 from the appropriate area. In particular, this class sets ``noexec`` on
 both the :ref:`ref-tasks-configure`
@@ -2472,7 +2471,7 @@
 sets ``FILES:${PN}`` to "/" so that it picks up all files, and sets up a
 :ref:`ref-tasks-install` task, which
 effectively copies all files from ``${S}`` to ``${D}``. The
-``bin_package`` class works well when the files extracted into ``${S}``
+:ref:`bin_package <ref-classes-bin-package>` class works well when the files extracted into ``${S}``
 are already laid out in the way they should be laid out on the target.
 For more information on these variables, see the
 :term:`FILES`,
@@ -2497,7 +2496,7 @@
       section in the Yocto Project Overview and Concepts Manual for more
       information.
 
-If you cannot use the ``bin_package`` class, you need to be sure you are
+If you cannot use the :ref:`bin_package <ref-classes-bin-package>` class, you need to be sure you are
 doing the following:
 
 -  Create a recipe where the
@@ -2537,7 +2536,7 @@
 
 .. note::
 
-  If image prelinking is enabled (e.g. "image-prelink" is in :term:`USER_CLASSES`
+  If image prelinking is enabled (e.g. :ref:`image-prelink <ref-classes-image-prelink>` is in :term:`USER_CLASSES`
   which it is by default), prelink will change the binaries in the generated images
   and this often catches people out. Remove that class to ensure binaries are
   preserved exactly if that is necessary.
@@ -4459,19 +4458,16 @@
 directory:
 
 1. *Using Local Files Only:* Inside your ``local.conf`` file, add the
-   :term:`SOURCE_MIRROR_URL`
-   variable, inherit the
-   :ref:`own-mirrors <ref-classes-own-mirrors>`
-   class, and use the
-   :term:`BB_NO_NETWORK`
-   variable to your ``local.conf``.
+   :term:`SOURCE_MIRROR_URL` variable, inherit the
+   :ref:`own-mirrors <ref-classes-own-mirrors>` class, and use the
+   :term:`BB_NO_NETWORK` variable to your ``local.conf``.
    ::
 
       SOURCE_MIRROR_URL ?= "file:///home/your-download-dir/"
       INHERIT += "own-mirrors"
       BB_NO_NETWORK = "1"
 
-   The :term:`SOURCE_MIRROR_URL` and ``own-mirror``
+   The :term:`SOURCE_MIRROR_URL` and :ref:`own-mirrors <ref-classes-own-mirrors>`
    class set up the system to use the downloads directory as your "own
    mirror". Using the :term:`BB_NO_NETWORK` variable makes sure that
    BitBake's fetching process in step 3 stays local, which means files
@@ -4672,7 +4668,7 @@
 how the static library files are defined::
 
    PACKAGE_BEFORE_PN ?= ""
-   PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}"
+   PACKAGES = "${PN}-src ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}"
    PACKAGES_DYNAMIC = "^${PN}-locale-.*"
    FILES = ""
 
@@ -4680,7 +4676,8 @@
                ${sysconfdir} ${sharedstatedir} ${localstatedir} \
                ${base_bindir}/* ${base_sbindir}/* \
                ${base_libdir}/*${SOLIBS} \
-               ${base_prefix}/lib/udev/rules.d ${prefix}/lib/udev/rules.d \
+               ${base_prefix}/lib/udev ${prefix}/lib/udev \
+               ${base_libdir}/udev ${libdir}/udev \
                ${datadir}/${BPN} ${libdir}/${BPN}/* \
                ${datadir}/pixmaps ${datadir}/applications \
                ${datadir}/idl ${datadir}/omf ${datadir}/sounds \
@@ -4696,7 +4693,8 @@
    FILES:${PN}-dev = "${includedir} ${FILES_SOLIBSDEV} ${libdir}/*.la \
                    ${libdir}/*.o ${libdir}/pkgconfig ${datadir}/pkgconfig \
                    ${datadir}/aclocal ${base_libdir}/*.o \
-                   ${libdir}/${BPN}/*.la ${base_libdir}/*.la"
+                   ${libdir}/${BPN}/*.la ${base_libdir}/*.la \
+                   ${libdir}/cmake ${datadir}/cmake"
    SECTION:${PN}-dev = "devel"
    ALLOW_EMPTY:${PN}-dev = "1"
    RDEPENDS:${PN}-dev = "${PN} (= ${EXTENDPKGV})"
@@ -4730,11 +4728,14 @@
 There are several examples in the ``meta-skeleton`` layer found in the
 :term:`Source Directory`:
 
--  ``conf/multilib-example.conf`` configuration file
+-  :oe_git:`conf/multilib-example.conf </openembedded-core/tree/meta-skeleton/conf/multilib-example.conf>`
+   configuration file.
 
--  ``conf/multilib-example2.conf`` configuration file
+-  :oe_git:`conf/multilib-example2.conf </openembedded-core/tree/meta-skeleton/conf/multilib-example2.conf>`
+   configuration file.
 
--  ``recipes-multilib/images/core-image-multilib-example.bb`` recipe
+-  :oe_git:`recipes-multilib/images/core-image-multilib-example.bb </openembedded-core/tree/meta-skeleton/recipes-multilib/images/core-image-multilib-example.bb>`
+   recipe
 
 Preparing to Use Multilib
 ~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -4753,7 +4754,8 @@
 Eventually, all recipes will be covered and this list will not be
 needed.
 
-For the most part, the Multilib class extension works automatically to
+For the most part, the :ref:`Multilib <ref-classes-multilib*>`
+class extension works automatically to
 extend the package name from ``${PN}`` to ``${MLPREFIX}${PN}``, where
 :term:`MLPREFIX` is the particular multilib (e.g. "lib32-" or "lib64-").
 Standard variables such as
@@ -4765,8 +4767,7 @@
 :term:`PACKAGES_DYNAMIC` are
 automatically extended by the system. If you are extending any manual
 code in the recipe, you can use the ``${MLPREFIX}`` variable to ensure
-those names are extended correctly. This automatic extension code
-resides in ``multilib.bbclass``.
+those names are extended correctly.
 
 Using Multilib
 ~~~~~~~~~~~~~~
@@ -4948,8 +4949,7 @@
 Enabling GObject Introspection Support
 ======================================
 
-`GObject
-introspection <https://wiki.gnome.org/Projects/GObjectIntrospection>`__
+`GObject introspection <https://gi.readthedocs.io/en/latest/>`__
 is the standard mechanism for accessing GObject-based software from
 runtime environments. GObject is a feature of the GLib library that
 provides an object framework for the GNOME desktop and related software.
@@ -4961,7 +4961,7 @@
 
 This section describes the Yocto Project support for generating and
 packaging GObject introspection data. GObject introspection data is a
-description of the API provided by libraries built on top of GLib
+description of the API provided by libraries built on top of the GLib
 framework, and, in particular, that framework's GObject mechanism.
 GObject Introspection Repository (GIR) files go to ``-dev`` packages,
 ``typelib`` files go to main packages as they are packaged together with
@@ -5007,7 +5007,7 @@
    .. note::
 
       See recipes in the ``oe-core`` repository that use that
-      ``GIR_EXTRA_LIBS_PATH`` variable as an example.
+      :term:`GIR_EXTRA_LIBS_PATH` variable as an example.
 
 4. Look for any other errors, which probably mean that introspection
    support in a package is not entirely standard, and thus breaks down
@@ -5602,13 +5602,13 @@
      ./mkefidisk-201804191017-sda.direct
 
    The following build artifacts were used to create the image(s):
-     ROOTFS_DIR:                   /home/stephano/build/master/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/rootfs
-     BOOTIMG_DIR:                  /home/stephano/build/master/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/share
-     KERNEL_DIR:                   /home/stephano/build/master/build/tmp-glibc/deploy/images/qemux86
-     NATIVE_SYSROOT:               /home/stephano/build/master/build/tmp-glibc/work/i586-oe-linux/wic-tools/1.0-r0/recipe-sysroot-native
+     ROOTFS_DIR:                   /home/stephano/yocto/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/rootfs
+     BOOTIMG_DIR:                  /home/stephano/yocto/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/share
+     KERNEL_DIR:                   /home/stephano/yocto/build/tmp-glibc/deploy/images/qemux86
+     NATIVE_SYSROOT:               /home/stephano/yocto/build/tmp-glibc/work/i586-oe-linux/wic-tools/1.0-r0/recipe-sysroot-native
 
    INFO: The image(s) were created using OE kickstart file:
-     /home/stephano/build/master/openembedded-core/scripts/lib/wic/canned-wks/mkefidisk.wks
+     /home/stephano/yocto/openembedded-core/scripts/lib/wic/canned-wks/mkefidisk.wks
 
 The previous example shows the easiest way to create an image by running
 in cooked mode and supplying a kickstart file and the "-e" option to
@@ -5669,8 +5669,8 @@
 the lines that specify the target disk from which to boot.
 ::
 
-   $ cp /home/stephano/poky/scripts/lib/wic/canned-wks/directdisk-gpt.wks \
-        /home/stephano/poky/scripts/lib/wic/canned-wks/directdisksdb-gpt.wks
+   $ cp /home/stephano/yocto/poky/scripts/lib/wic/canned-wks/directdisk-gpt.wks \
+        /home/stephano/yocto/poky/scripts/lib/wic/canned-wks/directdisksdb-gpt.wks
 
 Next, the example modifies the ``directdisksdb-gpt.wks`` file and
 changes all instances of "``--ondisk sda``" to "``--ondisk sdb``". The
@@ -5702,13 +5702,13 @@
      ./directdisksdb-gpt-201710090938-sdb.direct
 
    The following build artifacts were used to create the image(s):
-     ROOTFS_DIR:                   /home/stephano/build/master/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/rootfs
-     BOOTIMG_DIR:                  /home/stephano/build/master/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/share
-     KERNEL_DIR:                   /home/stephano/build/master/build/tmp-glibc/deploy/images/qemux86
-     NATIVE_SYSROOT:               /home/stephano/build/master/build/tmp-glibc/work/i586-oe-linux/wic-tools/1.0-r0/recipe-sysroot-native
+     ROOTFS_DIR:                   /home/stephano/yocto/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/rootfs
+     BOOTIMG_DIR:                  /home/stephano/yocto/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/share
+     KERNEL_DIR:                   /home/stephano/yocto/build/tmp-glibc/deploy/images/qemux86
+     NATIVE_SYSROOT:               /home/stephano/yocto/build/tmp-glibc/work/i586-oe-linux/wic-tools/1.0-r0/recipe-sysroot-native
 
    INFO: The image(s) were created using OE kickstart file:
-     /home/stephano/poky/scripts/lib/wic/canned-wks/directdisksdb-gpt.wks
+     /home/stephano/yocto/poky/scripts/lib/wic/canned-wks/directdisksdb-gpt.wks
 
 Continuing with the example, you can now directly ``dd`` the image to a
 USB stick, or whatever media for which you built your image, and boot
@@ -5728,11 +5728,11 @@
 ``-o`` option to cause Wic to create the output somewhere other than the
 default output directory, which is the current directory::
 
-   $ wic create /home/stephano/my_yocto/test.wks -o /home/stephano/testwic \
-        --rootfs-dir /home/stephano/build/master/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/rootfs \
-        --bootimg-dir /home/stephano/build/master/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/share \
-        --kernel-dir /home/stephano/build/master/build/tmp/deploy/images/qemux86 \
-        --native-sysroot /home/stephano/build/master/build/tmp/work/i586-poky-linux/wic-tools/1.0-r0/recipe-sysroot-native
+   $ wic create test.wks -o /home/stephano/testwic \
+        --rootfs-dir /home/stephano/yocto/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/rootfs \
+        --bootimg-dir /home/stephano/yocto/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/share \
+        --kernel-dir /home/stephano/yocto/build/tmp/deploy/images/qemux86 \
+        --native-sysroot /home/stephano/yocto/build/tmp/work/i586-poky-linux/wic-tools/1.0-r0/recipe-sysroot-native
 
    INFO: Creating image(s)...
 
@@ -5740,13 +5740,13 @@
      /home/stephano/testwic/test-201710091445-sdb.direct
 
    The following build artifacts were used to create the image(s):
-     ROOTFS_DIR:                   /home/stephano/build/master/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/rootfs
-     BOOTIMG_DIR:                  /home/stephano/build/master/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/share
-     KERNEL_DIR:                   /home/stephano/build/master/build/tmp-glibc/deploy/images/qemux86
-     NATIVE_SYSROOT:               /home/stephano/build/master/build/tmp-glibc/work/i586-oe-linux/wic-tools/1.0-r0/recipe-sysroot-native
+     ROOTFS_DIR:                   /home/stephano/yocto/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/rootfs
+     BOOTIMG_DIR:                  /home/stephano/yocto/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/share
+     KERNEL_DIR:                   /home/stephano/yocto/build/tmp-glibc/deploy/images/qemux86
+     NATIVE_SYSROOT:               /home/stephano/yocto/build/tmp-glibc/work/i586-oe-linux/wic-tools/1.0-r0/recipe-sysroot-native
 
    INFO: The image(s) were created using OE kickstart file:
-     /home/stephano/my_yocto/test.wks
+     test.wks
 
 For this example,
 :term:`MACHINE` did not have to be
@@ -6242,8 +6242,11 @@
 ``conf-notes.txt`` in your custom template configuration directory and
 making sure you have ``TEMPLATECONF`` set to your directory.
 
+Conserving Disk Space
+=====================
+
 Conserving Disk Space During Builds
-===================================
+-----------------------------------
 
 To help conserve disk space during builds, you can add the following
 statement to your project's ``local.conf`` configuration file found in
@@ -6257,6 +6260,26 @@
 :ref:`rm_work <ref-classes-rm-work>` class in the
 Yocto Project Reference Manual.
 
+Purging Duplicate Shared State Cache Files
+-------------------------------------------
+
+After multiple build iterations, the Shared State (sstate) cache can contain
+duplicate cache files for a given package, while only the most recent one
+is likely to be reusable. The following command purges all but the
+newest sstate cache file for each package::
+
+   sstate-cache-management.sh --remove-duplicated --cache-dir=build/sstate-cache
+
+This command will ask you to confirm the deletions it identifies.
+
+Note::
+
+   The duplicated sstate cache files of one package must have the same
+   architecture, which means that sstate cache files with multiple
+   architectures are not considered as duplicate.
+
+Run ``sstate-cache-management.sh`` for more details about this script.
+
 Working with Packages
 =====================
 
@@ -7078,7 +7101,7 @@
 In order to add security to RPM packages used during a build, you can
 take steps to securely sign them. Once a signature is verified, the
 OpenEmbedded build system can use the package in the build. If security
-fails for a signed package, the build system aborts the build.
+fails for a signed package, the build system stops the build.
 
 This section describes how to sign RPM packages during a build and how
 to use signed package feeds (repositories) when doing a build.
@@ -8373,11 +8396,11 @@
 certain devices it can also deploy the image to be tested onto the
 device beforehand.
 
-For automated deployment, a "master image" is installed onto the
+For automated deployment, a "controller image" is installed onto the
 hardware once as part of setup. Then, each time tests are to be run, the
 following occurs:
 
-1. The master image is booted into and used to write the image to be
+1. The controller image is booted into and used to write the image to be
    tested to a second partition.
 
 2. The device is then rebooted using an external script that you need to
@@ -8446,15 +8469,15 @@
 ":ref:`dev-manual/common-tasks:running tests`" section.
 
 If you did set :term:`TEST_TARGET` to "SystemdbootTarget", you also need to
-perform a one-time setup of your master image by doing the following:
+perform a one-time setup of your controller image by doing the following:
 
 1. *Set EFI_PROVIDER:* Be sure that :term:`EFI_PROVIDER` is as follows::
 
       EFI_PROVIDER = "systemd-boot"
 
-2. *Build the master image:* Build the ``core-image-testmaster`` image.
+2. *Build the controller image:* Build the ``core-image-testmaster`` image.
    The ``core-image-testmaster`` recipe is provided as an example for a
-   "master" image and you can customize the image recipe as you would
+   "controller" image and you can customize the image recipe as you would
    any other recipe.
 
    Here are the image recipe requirements:
@@ -8466,14 +8489,14 @@
 
    -  Uses a custom Initial RAM Disk (initramfs) image with a custom
       installer. A normal image that you can install usually creates a
-      single rootfs partition. This image uses another installer that
+      single root filesystem partition. This image uses another installer that
       creates a specific partition layout. Not all Board Support
       Packages (BSPs) can use an installer. For such cases, you need to
       manually create the following partition layout on the target:
 
       -  First partition mounted under ``/boot``, labeled "boot".
 
-      -  The main rootfs partition where this image gets installed,
+      -  The main root filesystem partition where this image gets installed,
          which is mounted under ``/``.
 
       -  Another partition labeled "testrootfs" where test images get
@@ -9569,51 +9592,51 @@
    | /bin/mkdir -p include/near
    | /bin/mkdir -p include/near
    | /bin/mkdir -p include/near
-   | ln -s /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
+   | ln -s /home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
      0.14-r0/neard-0.14/include/types.h include/near/types.h
-   | ln -s /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
+   | ln -s /home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
      0.14-r0/neard-0.14/include/log.h include/near/log.h
-   | ln -s /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
+   | ln -s /home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
      0.14-r0/neard-0.14/include/plugin.h include/near/plugin.h
    | /bin/mkdir -p include/near
    | /bin/mkdir -p include/near
    | /bin/mkdir -p include/near
-   | ln -s /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
+   | ln -s /home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
      0.14-r0/neard-0.14/include/tag.h include/near/tag.h
    | /bin/mkdir -p include/near
-   | ln -s /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
+   | ln -s /home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
      0.14-r0/neard-0.14/include/adapter.h include/near/adapter.h
    | /bin/mkdir -p include/near
-   | ln -s /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
+   | ln -s /home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
      0.14-r0/neard-0.14/include/ndef.h include/near/ndef.h
-   | ln -s /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
+   | ln -s /home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
      0.14-r0/neard-0.14/include/tlv.h include/near/tlv.h
    | /bin/mkdir -p include/near
    | /bin/mkdir -p include/near
-   | ln -s /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
+   | ln -s /home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
      0.14-r0/neard-0.14/include/setting.h include/near/setting.h
    | /bin/mkdir -p include/near
    | /bin/mkdir -p include/near
    | /bin/mkdir -p include/near
-   | ln -s /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
+   | ln -s /home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
      0.14-r0/neard-0.14/include/device.h include/near/device.h
-   | ln -s /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
+   | ln -s /home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
      0.14-r0/neard-0.14/include/nfc_copy.h include/near/nfc_copy.h
-   | ln -s /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
+   | ln -s /home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
      0.14-r0/neard-0.14/include/snep.h include/near/snep.h
-   | ln -s /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
+   | ln -s /home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
      0.14-r0/neard-0.14/include/version.h include/near/version.h
-   | ln -s /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
+   | ln -s /home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/work/i586-poky-linux/neard/
      0.14-r0/neard-0.14/include/dbus.h include/near/dbus.h
    | ./src/genbuiltin nfctype1 nfctype2 nfctype3 nfctype4 p2p > src/builtin.h
-   | i586-poky-linux-gcc  -m32 -march=i586 --sysroot=/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/
+   | i586-poky-linux-gcc  -m32 -march=i586 --sysroot=/home/pokybuild/yocto-autobuilder/nightly-x86/
      build/build/tmp/sysroots/qemux86 -DHAVE_CONFIG_H -I. -I./include -I./src -I./gdbus  -I/home/pokybuild/
-     yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/sysroots/qemux86/usr/include/glib-2.0
-     -I/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/sysroots/qemux86/usr/
-     lib/glib-2.0/include  -I/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/
-     tmp/sysroots/qemux86/usr/include/dbus-1.0 -I/home/pokybuild/yocto-autobuilder/yocto-slave/
+     yocto-autobuilder/nightly-x86/build/build/tmp/sysroots/qemux86/usr/include/glib-2.0
+     -I/home/pokybuild/yocto-autobuilder/nightly-x86/build/build/tmp/sysroots/qemux86/usr/
+     lib/glib-2.0/include  -I/home/pokybuild/yocto-autobuilder/nightly-x86/build/build/
+     tmp/sysroots/qemux86/usr/include/dbus-1.0 -I/home/pokybuild/yocto-autobuilder/
      nightly-x86/build/build/tmp/sysroots/qemux86/usr/lib/dbus-1.0/include  -I/home/pokybuild/yocto-autobuilder/
-     yocto-slave/nightly-x86/build/build/tmp/sysroots/qemux86/usr/include/libnl3
+     nightly-x86/build/build/tmp/sysroots/qemux86/usr/include/libnl3
      -DNEAR_PLUGIN_BUILTIN -DPLUGINDIR=\""/usr/lib/near/plugins"\"
      -DCONFIGDIR=\""/etc/neard\"" -O2 -pipe -g -feliminate-unused-debug-types -c
      -o tools/snep-send.o tools/snep-send.c
@@ -10791,12 +10814,12 @@
    LICENSE_FLAGS_WHITELIST = "commercial_gst-plugins-ugly license_emgd_1.10"
 
 As a convenience, you do not need to specify the
-complete license string in the whitelist for every package. You can use
+complete license string for every package. You can use
 an abbreviated form, which consists of just the first portion or
 portions of the license string before the initial underscore character
 or characters. A partial string will match any license that contains the
 given string as the first portion of its license. For example, the
-following whitelist string will also match both of the packages
+following value will also match both of the packages
 previously mentioned as well as any other packages that have licenses
 starting with "commercial" or "license".
 ::
@@ -10809,8 +10832,8 @@
 License flag matching allows you to control what recipes the
 OpenEmbedded build system includes in the build. Fundamentally, the
 build system attempts to match :term:`LICENSE_FLAGS` strings found in
-recipes against :term:`LICENSE_FLAGS_WHITELIST` strings found in the
-whitelist. A match causes the build system to include a recipe in the
+recipes against strings found in :term:`LICENSE_FLAGS_WHITELIST`.
+A match causes the build system to include a recipe in the
 build, while failure to find a match causes the build system to exclude
 a recipe.
 
@@ -10818,18 +10841,19 @@
 concepts will help you correctly and effectively use matching.
 
 Before a flag defined by a particular recipe is tested against the
-contents of the whitelist, the expanded string ``_${PN}`` is appended to
-the flag. This expansion makes each :term:`LICENSE_FLAGS` value
-recipe-specific. After expansion, the string is then matched against the
-whitelist. Thus, specifying ``LICENSE_FLAGS = "commercial"`` in recipe
-"foo", for example, results in the string ``"commercial_foo"``. And, to
-create a match, that string must appear in the whitelist.
+entries of :term:`LICENSE_FLAGS_WHITELIST`, the expanded
+string ``_${PN}`` is appended to the flag. This expansion makes each
+:term:`LICENSE_FLAGS` value recipe-specific. After expansion, the
+string is then matched against the entries. Thus, specifying
+``LICENSE_FLAGS = "commercial"`` in recipe "foo", for example, results
+in the string ``"commercial_foo"``. And, to create a match, that string
+must appear among the entries of :term:`LICENSE_FLAGS_WHITELIST`.
 
 Judicious use of the :term:`LICENSE_FLAGS` strings and the contents of the
 :term:`LICENSE_FLAGS_WHITELIST` variable allows you a lot of flexibility for
 including or excluding recipes based on licensing. For example, you can
 broaden the matching capabilities by using license flags string subsets
-in the whitelist.
+in :term:`LICENSE_FLAGS_WHITELIST`.
 
 .. note::
 
@@ -10837,43 +10861,44 @@
    string that precedes the appended underscore character (e.g.
    ``usethispart_1.3``, ``usethispart_1.4``, and so forth).
 
-For example, simply specifying the string "commercial" in the whitelist
-matches any expanded :term:`LICENSE_FLAGS` definition that starts with the
-string "commercial" such as "commercial_foo" and "commercial_bar", which
+For example, simply specifying the string "commercial" in the
+:term:`LICENSE_FLAGS_WHITELIST` variable matches any expanded
+:term:`LICENSE_FLAGS` definition that starts with the string
+"commercial" such as "commercial_foo" and "commercial_bar", which
 are the strings the build system automatically generates for
 hypothetical recipes named "foo" and "bar" assuming those recipes simply
 specify the following::
 
    LICENSE_FLAGS = "commercial"
 
-Thus, you can choose
-to exhaustively enumerate each license flag in the whitelist and allow
-only specific recipes into the image, or you can use a string subset
-that causes a broader range of matches to allow a range of recipes into
-the image.
+Thus, you can choose to exhaustively enumerate each license flag in the
+list and allow only specific recipes into the image, or you can use a
+string subset that causes a broader range of matches to allow a range of
+recipes into the image.
 
 This scheme works even if the :term:`LICENSE_FLAGS` string already has
 ``_${PN}`` appended. For example, the build system turns the license
 flag "commercial_1.2_foo" into "commercial_1.2_foo_foo" and would match
 both the general "commercial" and the specific "commercial_1.2_foo"
-strings found in the whitelist, as expected.
+strings found in the :term:`LICENSE_FLAGS_WHITELIST` variable, as expected.
 
 Here are some other scenarios:
 
 -  You can specify a versioned string in the recipe such as
    "commercial_foo_1.2" in a "foo" recipe. The build system expands this
    string to "commercial_foo_1.2_foo". Combine this license flag with a
-   whitelist that has the string "commercial" and you match the flag
-   along with any other flag that starts with the string "commercial".
+   :term:`LICENSE_FLAGS_WHITELIST` variable that has the string
+   "commercial" and you match the flag along with any other flag that
+   starts with the string "commercial".
 
--  Under the same circumstances, you can use "commercial_foo" in the
-   whitelist and the build system not only matches "commercial_foo_1.2"
-   but also matches any license flag with the string "commercial_foo",
-   regardless of the version.
+-  Under the same circumstances, you can add "commercial_foo" in the
+   :term:`LICENSE_FLAGS_WHITELIST` variable and the build system not only
+   matches "commercial_foo_1.2" but also matches any license flag with
+   the string "commercial_foo", regardless of the version.
 
 -  You can be very specific and use both the package and version parts
-   in the whitelist (e.g. "commercial_foo_1.2") to specifically match a
-   versioned recipe.
+   in the :term:`LICENSE_FLAGS_WHITELIST` list (e.g.
+   "commercial_foo_1.2") to specifically match a versioned recipe.
 
 Other Variables Related to Commercial Licenses
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -10897,9 +10922,10 @@
    LICENSE_FLAGS_WHITELIST = "commercial_gst-plugins-ugly commercial_gst-plugins-bad commercial_qmmp"
 
 
-Of course, you could also create a matching whitelist for those
-components using the more general "commercial" in the whitelist, but
-that would also enable all the other packages with :term:`LICENSE_FLAGS`
+Of course, you could also create a matching list for those
+components using the more general "commercial" in the
+:term:`LICENSE_FLAGS_WHITELIST` variable, but that would also enable all
+the other packages with :term:`LICENSE_FLAGS`
 containing "commercial", which you may or may not want::
 
    LICENSE_FLAGS_WHITELIST = "commercial"
@@ -10972,7 +10998,7 @@
 an :ref:`archiver <ref-classes-archiver>` class to
 help avoid some of these concerns.
 
-Before you employ :term:`DL_DIR` or the ``archiver`` class, you need to
+Before you employ :term:`DL_DIR` or the :ref:`archiver <ref-classes-archiver>` class, you need to
 decide how you choose to provide source. The source ``archiver`` class
 can generate tarballs and SRPMs and can create them with various levels
 of compliance in mind.
diff --git a/poky/documentation/dev-manual/start.rst b/poky/documentation/dev-manual/start.rst
index 1ca2531..9c7dde8 100644
--- a/poky/documentation/dev-manual/start.rst
+++ b/poky/documentation/dev-manual/start.rst
@@ -666,32 +666,6 @@
    "DOWNLOADS" page, you can download tools or BSPs as well. Just scroll
    down the page and look for what you need.
 
-Accessing Nightly Builds
-------------------------
-
-Yocto Project maintains an area for nightly builds that contains tarball
-releases at https://autobuilder.yocto.io/pub/nightly/. These builds include Yocto
-Project releases ("poky"), toolchains, and builds for supported
-machines.
-
-Should you ever want to access a nightly build of a particular Yocto
-Project component, use the following procedure:
-
-1. *Locate the Index of Nightly Builds:* Open a browser and go to
-   https://autobuilder.yocto.io/pub/nightly/ to access the Nightly Builds.
-
-2. *Select a Date:* Click on the date in which you are interested. If
-   you want the latest builds, use "CURRENT".
-
-3. *Select a Build:* Choose the area in which you are interested. For
-   example, if you are looking for the most recent toolchains, select
-   the "toolchain" link.
-
-4. *Find the Tarball:* Drill down to find the associated tarball.
-
-5. *Download the Tarball:* Click the tarball to download and save a
-   snapshot of the given component.
-
 Cloning and Checking Out Branches
 =================================
 
diff --git a/poky/documentation/kernel-dev/advanced.rst b/poky/documentation/kernel-dev/advanced.rst
index 2dbcca6..b5290b6 100644
--- a/poky/documentation/kernel-dev/advanced.rst
+++ b/poky/documentation/kernel-dev/advanced.rst
@@ -688,12 +688,11 @@
 ---------------------
 
 When stored in recipe-space, the kernel Metadata files reside in a
-directory hierarchy below
-:term:`FILESEXTRAPATHS`. For
-a linux-yocto recipe or for a Linux kernel recipe derived by copying and
-modifying
-``oe-core/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb`` to
-a recipe in your layer, :term:`FILESEXTRAPATHS` is typically set to
+directory hierarchy below :term:`FILESEXTRAPATHS`. For
+a linux-yocto recipe or for a Linux kernel recipe derived by copying
+:oe_git:`meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb
+</openembedded-core/tree/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb>`
+into your layer and modifying it, :term:`FILESEXTRAPATHS` is typically set to
 ``${``\ :term:`THISDIR`\ ``}/${``\ :term:`PN`\ ``}``.
 See the ":ref:`kernel-dev/common:modifying an existing recipe`"
 section for more information.
@@ -764,7 +763,7 @@
 ======================
 
 Many recipes based on the ``linux-yocto-custom.bb`` recipe use Linux
-kernel sources that have only a single branch - "master". This type of
+kernel sources that have only a single branch. This type of
 repository structure is fine for linear development supporting a single
 machine and architecture. However, if you work with multiple boards and
 architectures, a kernel source repository with multiple branches is more
@@ -773,7 +772,7 @@
 fundamentally wrong, yet they are still necessary for specific boards.
 In these situations, you most likely do not want to include these
 patches in every kernel you build (i.e. have the patches as part of the
-lone "master" branch). It is situations like these that give rise to
+default branch). It is situations like these that give rise to
 multiple branches used within a Linux kernel sources Git repository.
 
 Here are repository organization strategies maximizing source reuse,
@@ -813,7 +812,7 @@
 When you have multiple machines and architectures to support, or you are
 actively working on board support, it is more efficient to create
 branches in the repository based on individual machines. Having machine
-branches allows common source to remain in the "master" branch with any
+branches allows common source to remain in the development branch with any
 features specific to a machine stored in the appropriate machine branch.
 This organization method frees you from continually reintegrating your
 patches into a feature.
diff --git a/poky/documentation/kernel-dev/common.rst b/poky/documentation/kernel-dev/common.rst
index d42ca5f..a5dd02c 100644
--- a/poky/documentation/kernel-dev/common.rst
+++ b/poky/documentation/kernel-dev/common.rst
@@ -1578,13 +1578,11 @@
 on a future, mutually-supported kernel version.
 
 To help you use your own sources, the Yocto Project provides a
-linux-yocto custom recipe (``linux-yocto-custom.bb``) that uses
-``kernel.org`` sources and the Yocto Project Linux kernel tools for
-managing kernel Metadata. You can find this recipe in the ``poky`` Git
-repository of the Yocto Project :yocto_git:`Source Repository <>`
-at::
-
-   poky/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb
+linux-yocto custom recipe that uses ``kernel.org`` sources and
+the Yocto Project Linux kernel tools for managing kernel Metadata.
+You can find this recipe in the ``poky`` Git repository:
+:yocto_git:`meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb
+</poky/tree/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb>`.
 
 Here are some basic steps you can use to work with your own sources:
 
@@ -1729,11 +1727,9 @@
 create your own out-of-tree Linux kernel module recipe.
 
 This template recipe is located in the ``poky`` Git repository of the
-Yocto Project :yocto_git:`Source Repository <>` at:
-
-.. code-block:: none
-
-   poky/meta-skeleton/recipes-kernel/hello-mod/hello-mod_0.1.bb
+Yocto Project:
+:yocto_git:`meta-skeleton/recipes-kernel/hello-mod/hello-mod_0.1.bb
+</poky/tree/meta-skeleton/recipes-kernel/hello-mod/hello-mod_0.1.bb>`.
 
 To get started, copy this recipe to your layer and give it a meaningful
 name (e.g. ``mymodule_1.0.bb``). In the same directory, create a new
diff --git a/poky/documentation/kernel-dev/concepts-appx.rst b/poky/documentation/kernel-dev/concepts-appx.rst
index cf2e75d..910318e 100644
--- a/poky/documentation/kernel-dev/concepts-appx.rst
+++ b/poky/documentation/kernel-dev/concepts-appx.rst
@@ -211,8 +211,8 @@
 ``kernel.org``, through a select group of features and ends with their
 BSP-specific commits. In other words, the divisions of the kernel are
 transparent and are not relevant to the developer on a day-to-day basis.
-From the developer's perspective, this path is the "master" branch in
-Git terms. The developer does not need to be aware of the existence of
+From the developer's perspective, this path is the development branch.
+The developer does not need to be aware of the existence of
 any other branches at all. Of course, it can make sense to have these
 branches in the tree, should a person decide to explore them. For
 example, a comparison between two BSPs at either the commit level or at
diff --git a/poky/documentation/kernel-dev/faq.rst b/poky/documentation/kernel-dev/faq.rst
index 5aa702a..e40e3ff 100644
--- a/poky/documentation/kernel-dev/faq.rst
+++ b/poky/documentation/kernel-dev/faq.rst
@@ -30,8 +30,8 @@
 ":ref:`kernel-dev/common:working with your own sources`"
 section for information.
 
-How do I install/not-install the kernel image on the rootfs?
-------------------------------------------------------------
+How do I install/not-install the kernel image on the root filesystem?
+---------------------------------------------------------------------
 
 The kernel image (e.g. ``vmlinuz``) is provided by the
 ``kernel-image`` package. Image recipes depend on ``kernel-base``. To
diff --git a/poky/documentation/migration-guides/index.rst b/poky/documentation/migration-guides/index.rst
index 287b553..6472cc2 100644
--- a/poky/documentation/migration-guides/index.rst
+++ b/poky/documentation/migration-guides/index.rst
@@ -12,6 +12,7 @@
 .. toctree::
 
    migration-general
+   migration-3.5
    migration-3.4
    migration-3.3
    migration-3.2
diff --git a/poky/documentation/migration-guides/migration-1.3.rst b/poky/documentation/migration-guides/migration-1.3.rst
index afb868e..9a15391 100644
--- a/poky/documentation/migration-guides/migration-1.3.rst
+++ b/poky/documentation/migration-guides/migration-1.3.rst
@@ -113,7 +113,7 @@
 to remove anything now handled by ``packagegroup.bbclass``, such as
 providing ``-dev`` and ``-dbg`` packages, setting
 :term:`LIC_FILES_CHKSUM`, and so forth. See the
-":ref:`packagegroup.bbclass <ref-classes-packagegroup>`" section for
+:ref:`ref-classes-packagegroup` section for
 further details.
 
 .. _migration-1.3-image-features:
diff --git a/poky/documentation/migration-guides/migration-1.5.rst b/poky/documentation/migration-guides/migration-1.5.rst
index 11c8212..0306b99 100644
--- a/poky/documentation/migration-guides/migration-1.5.rst
+++ b/poky/documentation/migration-guides/migration-1.5.rst
@@ -87,22 +87,21 @@
    item not mentioned in :term:`ERROR_QA` or :term:`WARN_QA` would be treated as
    a warning. Consequently, several important items were not already in
    the default value of :term:`WARN_QA`. All of the possible QA checks are
-   now documented in the ":ref:`insane.bbclass <ref-classes-insane>`"
-   section.
+   now documented in the ":ref:`ref-classes-insane`" section.
 
 -  An additional QA check has been added to check if
    ``/usr/share/info/dir`` is being installed. Your recipe should delete
    this file within :ref:`ref-tasks-install` if "make
    install" is installing it.
 
--  If you are using the ``buildhistory`` class, the check for the package
+-  If you are using the :ref:`buildhistory <ref-classes-buildhistory>` class,
+   the check for the package
    version going backwards is now controlled using a standard QA check.
    Thus, if you have customized your :term:`ERROR_QA` or :term:`WARN_QA` values
    and still wish to have this check performed, you should add
    "version-going-backwards" to your value for one or the other
    variables depending on how you wish it to be handled. See the
-   documented QA checks in the
-   ":ref:`insane.bbclass <ref-classes-insane>`" section.
+   documented QA checks in the ":ref:`ref-classes-insane`" section.
 
 .. _migration-1.5-directory-layout-changes:
 
@@ -221,8 +220,7 @@
 them from ``task-*`` to ``packagegroup-*`` and inherit packagegroup
 instead.
 
-For more information, see the
-":ref:`packagegroup.bbclass <ref-classes-packagegroup>`" section.
+For more information, see the ":ref:`ref-classes-packagegroup`" section.
 
 .. _migration-1.5-busybox:
 
diff --git a/poky/documentation/migration-guides/migration-1.6.rst b/poky/documentation/migration-guides/migration-1.6.rst
index eea3d17..3580865 100644
--- a/poky/documentation/migration-guides/migration-1.6.rst
+++ b/poky/documentation/migration-guides/migration-1.6.rst
@@ -222,8 +222,7 @@
 information on using Package Tests, see the
 ":ref:`dev-manual/common-tasks:testing packages with ptest`"
 section in the Yocto Project Development Tasks Manual. For information on the
-``ptest`` class, see the ":ref:`ptest.bbclass <ref-classes-ptest>`"
-section.
+``ptest`` class, see the ":ref:`ref-classes-ptest`" section.
 
 .. _migration-1.6-build-changes:
 
@@ -231,7 +230,7 @@
 -------------
 
 Separate build and source directories have been enabled by default for
-selected recipes where it is known to work (a whitelist) and for all
+selected recipes where it is known to work and for all
 recipes that inherit the :ref:`cmake <ref-classes-cmake>` class. In
 future releases the :ref:`autotools <ref-classes-autotools>` class
 will enable a separate build directory by default as well. Recipes
diff --git a/poky/documentation/migration-guides/migration-1.7.rst b/poky/documentation/migration-guides/migration-1.7.rst
index 8c642da..88a6855 100644
--- a/poky/documentation/migration-guides/migration-1.7.rst
+++ b/poky/documentation/migration-guides/migration-1.7.rst
@@ -43,7 +43,8 @@
 occurred:
 
 -  *A separate build directory is now used by default:* The
-   ``autotools`` class has been changed to use a directory for building
+   :ref:`autotools <ref-classes-autotools>` class has been
+   changed to use a directory for building
    (:term:`B`), which is separate from the source directory
    (:term:`S`). This is commonly referred to as ``B != S``, or
    an out-of-tree build.
@@ -54,7 +55,8 @@
    manner, you will need to either patch the software so that it can
    build separately, or you will need to change the recipe to inherit
    the :ref:`autotools-brokensep <ref-classes-autotools>` class
-   instead of the ``autotools`` or ``autotools_stage`` classes.
+   instead of the :ref:`autotools <ref-classes-autotools>`
+   or ``autotools_stage`` classes.
 
 -  The ``--foreign`` option is no longer passed to ``automake`` when
    running ``autoconf``: This option tells ``automake`` that a
diff --git a/poky/documentation/migration-guides/migration-2.1.rst b/poky/documentation/migration-guides/migration-2.1.rst
index 3135d69..eb29694 100644
--- a/poky/documentation/migration-guides/migration-2.1.rst
+++ b/poky/documentation/migration-guides/migration-2.1.rst
@@ -106,12 +106,12 @@
 large file support is enabled. For most software that uses ``autoconf``,
 this change should not be a problem. However, if you have a recipe that
 bypasses the standard :ref:`ref-tasks-configure` task
-from the ``autotools`` class and the software the recipe is building
+from the :ref:`autotools <ref-classes-autotools>` class and the software the recipe is building
 uses a very old version of ``autoconf``, the recipe might be incapable
 of determining the correct size of ``off_t`` during ``do_configure``.
 
 The best course of action is to patch the software as necessary to allow
-the default implementation from the ``autotools`` class to work such
+the default implementation from the :ref:`autotools <ref-classes-autotools>` class to work such
 that ``autoreconf`` succeeds and produces a working configure script,
 and to remove the overridden ``do_configure`` task such that the default
 implementation does get used.
@@ -262,7 +262,7 @@
    With this class enabled, a tarball containing a pre-built C library
    is downloaded at the start of the build.
 
-   The ``uninative`` class is enabled through the
+   The :ref:`uninative <ref-classes-uninative>` class is enabled through the
    ``meta/conf/distro/include/yocto-uninative.inc`` file, which for
    those not using the Poky distribution, can include to easily enable
    the same functionality.
diff --git a/poky/documentation/migration-guides/migration-2.2.rst b/poky/documentation/migration-guides/migration-2.2.rst
index cbdc6a7..a6c1a4a 100644
--- a/poky/documentation/migration-guides/migration-2.2.rst
+++ b/poky/documentation/migration-guides/migration-2.2.rst
@@ -154,7 +154,7 @@
 Using a configuration file is particularly convenient when trying to use
 QEMU with machines other than the ``qemu*`` machines in
 :term:`OpenEmbedded-Core (OE-Core)`. The ``qemuboot.conf`` file is generated by the
-``qemuboot`` class when the root filesystem is being build (i.e. build
+``qemuboot`` class when the root filesystem is being built (i.e. build
 rootfs). QEMU boot arguments can be set in BSP's configuration file and
 the ``qemuboot`` class will save them to ``qemuboot.conf``.
 
@@ -439,7 +439,7 @@
 
 -  ``packagegroup-core-tools-testapps``: Removed Piglit.
 
--  ``image.bbclass``: Renamed COMPRESS(ION) to CONVERSION. This change
+-  :ref:`image.bbclass <ref-classes-image>`: Renamed COMPRESS(ION) to CONVERSION. This change
    means that ``COMPRESSIONTYPES``, ``COMPRESS_DEPENDS`` and
    ``COMPRESS_CMD`` are deprecated in favor of ``CONVERSIONTYPES``,
    ``CONVERSION_DEPENDS`` and ``CONVERSION_CMD``. The ``COMPRESS*``
diff --git a/poky/documentation/migration-guides/migration-2.3.rst b/poky/documentation/migration-guides/migration-2.3.rst
index b79bc54..0b6b33d 100644
--- a/poky/documentation/migration-guides/migration-2.3.rst
+++ b/poky/documentation/migration-guides/migration-2.3.rst
@@ -50,7 +50,7 @@
    post-installation script that is installed by a function added to
    :term:`SYSROOT_PREPROCESS_FUNCS`.
 
-   For an example, see the ``pixbufcache`` class in ``meta/classes/`` in
+   For an example, see the :ref:`pixbufcache <ref-classes-pixbufcache>` class in ``meta/classes/`` in
    the :ref:`overview-manual/development-environment:yocto project source repositories`.
 
    .. note::
diff --git a/poky/documentation/migration-guides/migration-2.4.rst b/poky/documentation/migration-guides/migration-2.4.rst
index ae1a212..ef5f32e 100644
--- a/poky/documentation/migration-guides/migration-2.4.rst
+++ b/poky/documentation/migration-guides/migration-2.4.rst
@@ -273,7 +273,7 @@
    a single commit per build rather than one commit per subdirectory in
    the repository. This behavior assumes the commits are enabled with
    :term:`BUILDHISTORY_COMMIT` = "1", which
-   is typical. Previously, the ``buildhistory`` class made one commit
+   is typical. Previously, the :ref:`buildhistory <ref-classes-buildhistory>` class made one commit
    per subdirectory in the repository in order to make it easier to see
    the changes for a particular subdirectory. To view a particular
    change, specify that subdirectory as the last parameter on the
diff --git a/poky/documentation/migration-guides/migration-2.5.rst b/poky/documentation/migration-guides/migration-2.5.rst
index 79f804f..abd2680 100644
--- a/poky/documentation/migration-guides/migration-2.5.rst
+++ b/poky/documentation/migration-guides/migration-2.5.rst
@@ -137,7 +137,7 @@
 -  Several explicit "run this task for all recipes in the dependency
    tree" tasks have been removed (e.g. ``fetchall``, ``checkuriall``,
    and the ``*all`` tasks provided by the ``distrodata`` and
-   ``archiver`` classes). There is a BitBake option to complete this for
+   :ref:`archiver <ref-classes-archiver>` classes). There is a BitBake option to complete this for
    any arbitrary task. For example::
 
       bitbake <target> -c fetchall
@@ -187,7 +187,7 @@
 
 The following are additional changes:
 
--  The ``kernel`` class supports building packages for multiple kernels.
+-  The :ref:`kernel <ref-classes-kernel>` class supports building packages for multiple kernels.
    If your kernel recipe or ``.bbappend`` file mentions packaging at
    all, you should replace references to the kernel in package names
    with ``${KERNEL_PACKAGE_NAME}``. For example, if you disable
@@ -195,7 +195,7 @@
    ``RDEPENDS_kernel-base = ""`` you can avoid warnings using
    ``RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""`` instead.
 
--  The ``buildhistory`` class commits changes to the repository by
+-  The :ref:`buildhistory <ref-classes-buildhistory>` class commits changes to the repository by
    default so you no longer need to set ``BUILDHISTORY_COMMIT = "1"``.
    If you want to disable commits you need to set
    ``BUILDHISTORY_COMMIT = "0"`` in your configuration.
@@ -207,7 +207,7 @@
    maintains a full-featured BSP in the ``meta-ti`` layer. This rename
    avoids the previous name clash that existed between the two BSPs.
 
--  The ``update-alternatives`` class no longer works with SysV ``init``
+-  The :ref:`update-alternatives <ref-classes-update-alternatives>` class no longer works with SysV ``init``
    scripts because this usage has been problematic. Also, the
    ``sysklogd`` recipe no longer uses ``update-alternatives`` because it
    is incompatible with other implementations.
@@ -287,7 +287,7 @@
 
 -  For EFI-based machines, the bootloader (``grub-efi`` by default) is
    installed into the image at /boot. Wic can be used to split the
-   bootloader into separate boot and rootfs partitions if necessary.
+   bootloader into separate boot and root filesystem partitions if necessary.
 
 -  Patches whose context does not match exactly (i.e. where patch
    reports "fuzz" when applying) will generate a warning. For an example
diff --git a/poky/documentation/migration-guides/migration-2.6.rst b/poky/documentation/migration-guides/migration-2.6.rst
index a8c56ed..c68414e 100644
--- a/poky/documentation/migration-guides/migration-2.6.rst
+++ b/poky/documentation/migration-guides/migration-2.6.rst
@@ -363,7 +363,7 @@
 
 You must explicitly mark post installs to defer to the target. If you
 want to explicitly defer a postinstall to first boot on the target
-rather than at rootfs creation time, use ``pkg_postinst_ontarget()`` or
+rather than at root filesystem creation time, use ``pkg_postinst_ontarget()`` or
 call ``postinst_intercept delay_to_first_boot`` from ``pkg_postinst()``.
 Any failure of a ``pkg_postinst()`` script (including exit 1) triggers
 an error during the :ref:`ref-tasks-rootfs` task.
diff --git a/poky/documentation/migration-guides/migration-3.0.rst b/poky/documentation/migration-guides/migration-3.0.rst
index 9a5f571..610298b 100644
--- a/poky/documentation/migration-guides/migration-3.0.rst
+++ b/poky/documentation/migration-guides/migration-3.0.rst
@@ -47,7 +47,7 @@
 -  ``core-image-lsb-sdk``: Part of removed LSB support.
 
 -  ``cve-check-tool``: Functionally replaced by the ``cve-update-db``
-   recipe and ``cve-check`` class.
+   recipe and :ref:`cve-check <ref-classes-cve-check>` class.
 
 -  ``eglinfo``: No longer maintained. ``eglinfo`` from ``mesa-demos`` is
    an adequate and maintained alternative.
@@ -142,7 +142,7 @@
 ------------
 
 ``cve-check-tool`` has been functionally replaced by a new
-``cve-update-db`` recipe and functionality built into the ``cve-check``
+``cve-update-db`` recipe and functionality built into the :ref:`cve-check <ref-classes-cve-check>`
 class. The result uses NVD JSON data feeds rather than the deprecated
 XML feeds that ``cve-check-tool`` was using, supports CVSSv3 scoring,
 and makes other improvements.
diff --git a/poky/documentation/migration-guides/migration-3.1.rst b/poky/documentation/migration-guides/migration-3.1.rst
index 80b8f6b..cb02967 100644
--- a/poky/documentation/migration-guides/migration-3.1.rst
+++ b/poky/documentation/migration-guides/migration-3.1.rst
@@ -125,7 +125,7 @@
 exists but generates a warning and redirects to the new class. In
 preparation for a future removal of the old class it is recommended that
 you update recipes currently inheriting ``distro_features_check`` to
-inherit ``features_check`` instead.
+inherit :ref:`features_check <ref-classes-features_check>` instead.
 
 .. _migration-3.1-removed-classes:
 
@@ -241,7 +241,7 @@
    does not inherit the new ``mime-xdg`` class
 
 -  A recipe installs ``.xml`` files into ``${datadir}/mime/packages``
-   but does not inherit the ``mime`` class
+   but does not inherit the :ref:`mime <ref-classes-mime>` class
 
 .. _migration-3.1-x86-live-wic:
 
diff --git a/poky/documentation/migration-guides/migration-3.2.rst b/poky/documentation/migration-guides/migration-3.2.rst
index a940f23..d593eff 100644
--- a/poky/documentation/migration-guides/migration-3.2.rst
+++ b/poky/documentation/migration-guides/migration-3.2.rst
@@ -209,7 +209,7 @@
 
 ``do_deploy`` as implemented in the :ref:`deploy <ref-classes-deploy>` class now cleans up ${:term:`DEPLOYDIR`} before running, just as ``do_install`` cleans up ${:term:`D`} before running. This reduces the risk of :term:`DEPLOYDIR` being accidentally contaminated by files from previous runs, possibly even with different config, in case of incremental builds.
 
-Most recipes and classes that inherit the ``deploy`` class or interact with ``do_deploy`` are unlikely to be affected by this unless they add ``prefuncs`` to ``do_deploy`` *which also* put files into ``${DEPLOYDIR}`` - these should be refactored to use ``do_deploy_prepend`` instead.
+Most recipes and classes that inherit the :ref:`deploy <ref-classes-deploy>` class or interact with ``do_deploy`` are unlikely to be affected by this unless they add ``prefuncs`` to ``do_deploy`` *which also* put files into ``${DEPLOYDIR}`` - these should be refactored to use ``do_deploy_prepend`` instead.
 
 
 .. _migration-3.2-nativesdk-sdk-provides-dummy:
diff --git a/poky/documentation/migration-guides/migration-3.3.rst b/poky/documentation/migration-guides/migration-3.3.rst
index 28857e8..f982b1c 100644
--- a/poky/documentation/migration-guides/migration-3.3.rst
+++ b/poky/documentation/migration-guides/migration-3.3.rst
@@ -64,7 +64,7 @@
 
 A new :ref:`python3targetconfig <ref-classes-python3targetconfig>` class has been
 created for situations where you would previously have inherited the
-``python3native`` class but need access to target configuration data (such as
+:ref:`python3native <ref-classes-python3native>` class but need access to target configuration data (such as
 correct installation directories). Recipes where this situation applies should
 be changed to inherit ``python3targetconfig`` instead of ``python3native``. This
 also adds a dependency on target ``python3``, so it should only be used where
@@ -89,7 +89,7 @@
    S = "${WORKDIR}/git/python/pythonmodule"
 
 then in ``setup.py`` it works with source code in a relative fashion, such
-as ``../../src``. This causes pseudo to abort as it isn't able to track
+as ``../../src``. This causes pseudo to fail as it isn't able to track
 the paths properly. This release introduces a new :term:`DISTUTILS_SETUP_PATH`
 variable so that recipes can specify it explicitly, for example::
 
diff --git a/poky/documentation/migration-guides/migration-3.5.rst b/poky/documentation/migration-guides/migration-3.5.rst
new file mode 100644
index 0000000..bd807eb
--- /dev/null
+++ b/poky/documentation/migration-guides/migration-3.5.rst
@@ -0,0 +1,44 @@
+Release 3.5 (kirkstone)
+=======================
+
+This section provides migration information for moving to the Yocto
+Project 3.5 Release (codename "kirkstone") from the prior release.
+
+Recipe changes
+--------------
+
+- Because of the uncertainty in future default branch names in git repositories,
+  it is now required to add a branch name to all URLs described
+  by ``git://`` and ``gitsm://`` :term:`SRC_URI` entries. For example::
+
+     SRC_URI = "git://git.denx.de/u-boot.git;branch=master"
+
+  A :oe_git:`convert-srcuri </openembedded-core/tree/scripts/contrib/convert-srcuri.py>`
+  script to convert your recipes is available in :term:`OpenEmbedded-Core (OE-Core)`
+  and in :term:`Poky`.
+
+- Because of `GitHub dropping support for the git:
+  protocol <https://github.blog/2021-09-01-improving-git-protocol-security-github/>`__,
+  recipes now need to use ``;protocol=https`` at the end of GitHub
+  URLs. The same script as above can be used to convert the recipes.
+
+- The :term:`TOPDIR` variable and the current working directory are no longer modified
+  when parsing recipes. Any code depending on that behaviour will no longer work.
+
+- The ``append``, ``prepend`` and ``remove`` operators can now only be combined with
+  ``=`` and ``:=`` operators. To the exception of the ``append`` plus ``+=`` and
+  ``prepend`` plus ``=+`` combinations, all combinations could be factored up to the
+  ``append``, ``prepend`` or ``remove`` in the combination. This brought a lot of
+  confusion on how the override style syntax operators work and should be used.
+  Therefore, those combinations can simply be replaced by a single ``append``,
+  ``prepend`` or ``remove`` operator without any additional change.
+  For the ``append`` plus ``+=`` (and ``prepend`` plus ``=+``) combinations,
+  the content should be prefixed (respectively suffixed) by a space to maintain
+  the same behavior.  You can learn more about override style syntax operators
+  (``append``, ``prepend`` and ``remove``) in the BitBake documentation:
+  :ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:appending and prepending (override style syntax)`
+  and :ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:removal (override style syntax)`.
+
+- :ref:`allarch <ref-classes-allarch>` packagegroups can no longer depend on packages
+  which use :term:`PKG` renaming such as :ref:`debian.bbclass <ref-classes-debian>`.
+
diff --git a/poky/documentation/overview-manual/concepts.rst b/poky/documentation/overview-manual/concepts.rst
index 89a5eb4..5698d93 100644
--- a/poky/documentation/overview-manual/concepts.rst
+++ b/poky/documentation/overview-manual/concepts.rst
@@ -1570,7 +1570,7 @@
 scratch is attractive as it means all parts are built fresh and there is
 no possibility of stale data that can cause problems. When
 developers hit problems, they typically default back to building from
-scratch so they have a know state from the start.
+scratch so they have a known state from the start.
 
 Building an image from scratch is both an advantage and a disadvantage
 to the process. As mentioned in the previous paragraph, building from
@@ -1718,7 +1718,7 @@
 :term:`Build Directory`. The checksum (or
 signature) for a particular task needs to add the hashes of all the
 tasks on which the particular task depends. Choosing which dependencies
-to add is a policy decision. However, the effect is to generate a master
+to add is a policy decision. However, the effect is to generate a
 checksum that combines the basehash and the hashes of the task's
 dependencies.
 
@@ -1735,12 +1735,8 @@
        PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \\
        CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX"
 
-The
-previous example excludes
-:term:`WORKDIR` since that variable
-is actually constructed as a path within
-:term:`TMPDIR`, which is on the
-whitelist.
+The previous example does not include :term:`WORKDIR` since that variable is
+actually constructed as a path within :term:`TMPDIR`, which is included above.
 
 The rules for deciding which hashes of dependent tasks to include
 through dependency chains are more complex and are generally
@@ -1800,7 +1796,7 @@
 directory tree such as the sysroot.
 
 The Yocto Project team has tried to keep the details of the
-implementation hidden in ``sstate`` class. From a user's perspective,
+implementation hidden in the :ref:`sstate <ref-classes-sstate>` class. From a user's perspective,
 adding shared state wrapping to a task is as simple as this
 :ref:`ref-tasks-deploy` example taken
 from the :ref:`deploy <ref-classes-deploy>` class::
@@ -1942,6 +1938,138 @@
 recipe-based approach, which would have to install the output from every
 task.
 
+Hash Equivalence
+----------------
+
+The above section explained how BitBake skips the execution of tasks
+whose output can already be found in the Shared State cache.
+
+During a build, it may often be the case that the output / result of a task might
+be unchanged despite changes in the task's input values. An example might be
+whitespace changes in some input C code. In project terms, this is what we define
+as "equivalence".
+
+To keep track of such equivalence, BitBake has to manage three hashes
+for each task:
+
+- The *task hash* explained earlier: computed from the recipe metadata,
+  the task code and the task hash values from its dependencies.
+  When changes are made, these task hashes are therefore modified,
+  causing the task to re-execute. The task hashes of tasks depending on this
+  task are therefore modified too, causing the whole dependency
+  chain to re-execute.
+
+- The *output hash*, a new hash computed from the output of Shared State tasks,
+  tasks that save their resulting output to a Shared State tarball.
+  The mapping between the task hash and its output hash is reported
+  to a new *Hash Equivalence* server. This mapping is stored in a database
+  by the server for future reference.
+
+- The *unihash*, a new hash, initially set to the task hash for the task.
+  This is used to track the *unicity* of task output, and we will explain
+  how its value is maintained.
+
+When Hash Equivalence is enabled, BitBake computes the task hash
+for each task by using the unihash of its dependencies, instead
+of their task hash.
+
+Now, imagine that a Shared State task is modified because of a change in
+its code or metadata, or because of a change in its dependencies.
+Since this modifies its task hash, this task will need re-executing.
+Its output hash will therefore be computed again.
+
+Then, the new mapping between the new task hash and its output hash
+will be reported to the Hash Equivalence server. The server will
+let BitBake know whether this output hash is the same as a previously
+reported output hash, for a different task hash.
+
+If the output hash is already known, BitBake will update the task's
+unihash to match the original task hash that generated that output.
+Thanks to this, the depending tasks will keep a previously recorded
+task hash, and BitBake will be able to retrieve their output from
+the Shared State cache, instead of re-executing them. Similarly, the
+output of further downstream tasks can also be retrieved from Shared
+Shate.
+
+If the output hash is unknown, a new entry will be created on the Hash
+Equivalence server, matching the task hash to that output.
+The depending tasks, still having a new task hash because of the
+change, will need to re-execute as expected. The change propagates
+to the depending tasks.
+
+To summarize, when Hash Equivalence is enabled, a change in one of the
+tasks in BitBake's run queue doesn't have to propagate to all the
+downstream tasks that depend on the output of this task, causing a
+full rebuild of such tasks, and so on with the next depending tasks.
+Instead, when the output of this task remains identical to previously
+recorded output, BitBake can safely retrieve all the downstream
+task output from the Shared State cache.
+
+.. note::
+
+   Having :doc:`/test-manual/reproducible-builds` is a key ingredient for
+   the stability of the task's output hash. Therefore, the effectiveness
+   of Hash Equivalence strongly depends on it.
+
+This applies to multiple scenarios:
+
+-  A "trivial" change to a recipe that doesn't impact its generated output,
+   such as whitespace changes, modifications to unused code paths or
+   in the ordering of variables.
+
+-  Shared library updates, for example to fix a security vulnerability.
+   For sure, the programs using such a library should be rebuilt, but
+   their new binaries should remain identical. The corresponding tasks should
+   have a different output hash because of the change in the hash of their
+   library dependency, but thanks to their output being identical, Hash
+   Equivalence will stop the propagation down the dependency chain.
+
+-  Native tool updates. Though the depending tasks should be rebuilt,
+   it's likely that they will generate the same output and be marked
+   as equivalent.
+
+This mechanism is enabled by default in Poky, and is controlled by three
+variables:
+
+-  :term:`bitbake:BB_HASHSERVE`, specifying a local or remote Hash
+   Equivalence server to use.
+
+-  :term:`BB_HASHSERVE_UPSTREAM`, when ``BB_HASHSERVE = "auto"``,
+   allowing to connect the local server to an upstream one.
+
+-  :term:`bitbake:BB_SIGNATURE_HANDLER`, which must be set  to ``OEEquivHash``.
+
+Therefore, the default configuration in Poky corresponds to the
+below settings::
+
+   BB_HASHSERVE = "auto"
+   BB_SIGNATURE_HANDLER = "OEEquivHash"
+
+Rather than starting a local server, another possibility is to rely
+on a Hash Equivalence server on a network, by setting::
+
+   BB_HASHSERVE = "<HOSTNAME>:<PORT>"
+
+.. note::
+
+   The shared Hash Equivalence server needs to be maintained together with the
+   Shared State cache. Otherwise, the server could report Shared State hashes
+   that only exist on specific clients.
+
+   We therefore recommend that one Hash Equivalence server be set up to
+   correspond with a given Shared State cache, and to start this server
+   in *read-only mode*, so that it doesn't store equivalences for
+   Shared State caches that are local to clients.
+
+   See the :term:`BB_HASHSERVE` reference for details about starting
+   a Hash Equivalence server.
+
+See the `video <https://www.youtube.com/watch?v=zXEdqGS62Wc>`__
+of Joshua Watt's `Hash Equivalence and Reproducible Builds
+<https://elinux.org/images/3/37/Hash_Equivalence_and_Reproducible_Builds.pdf>`__
+presentation at ELC 2020 for a very synthetic introduction to the
+Hash Equivalence implementation in the Yocto Project.
+
 Automatically Added Runtime Dependencies
 ========================================
 
diff --git a/poky/documentation/overview-manual/development-environment.rst b/poky/documentation/overview-manual/development-environment.rst
index d719ba6..fc193f3 100644
--- a/poky/documentation/overview-manual/development-environment.rst
+++ b/poky/documentation/overview-manual/development-environment.rst
@@ -163,9 +163,9 @@
 
    -  Be sure to always work in matching branches for both the selected
       BSP repository and the Source Directory (i.e. ``poky``)
-      repository. For example, if you have checked out the "master"
+      repository. For example, if you have checked out the "&DISTRO_NAME_NO_CAP;"
       branch of ``poky`` and you are going to use ``meta-intel``, be
-      sure to checkout the "master" branch of ``meta-intel``.
+      sure to checkout the "&DISTRO_NAME_NO_CAP;" branch of ``meta-intel``.
 
 In summary, here is where you can get the project files needed for
 development:
@@ -233,8 +233,8 @@
 open source projects do so.
 
 For the Yocto Project, a key individual called the "maintainer" is
-responsible for the integrity of the "master" branch of a given Git
-repository. The "master" branch is the "upstream" repository from which
+responsible for the integrity of the development branch of a given Git
+repository. The development branch is the "upstream" repository from which
 final or most recent builds of a project occur. The maintainer is
 responsible for accepting changes from other developers and for
 organizing the underlying branch structure to reflect release strategies
@@ -279,8 +279,8 @@
 ":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
 section in the Yocto Project Development Tasks Manual.
 
-In summary, there is a single point of entry for changes into a "master"
-or development branch of the Git repository, which is controlled by the
+In summary, there is a single point of entry for changes into the
+development branch of the Git repository, which is controlled by the
 project's maintainer. A set of developers independently
 develop, test, and submit changes to "contrib" areas for the maintainer
 to examine. The maintainer then chooses which changes are going to
@@ -311,7 +311,7 @@
    host. You can name these branches anything you like. It is helpful to
    give them names associated with the particular feature or change on
    which you are working. Once you are done with a feature or change and
-   have merged it into your local master branch, simply discard the
+   have merged it into your local development branch, simply discard the
    temporary branch.
 
 -  *Merge Changes:* The ``git merge`` command allows you to take the
@@ -348,7 +348,7 @@
 
 -  *Patch Workflow:* This workflow allows you to notify the maintainer
    through an email that you have a change (or patch) you would like
-   considered for the "master" branch of the Git repository. To send
+   considered for the development branch of the Git repository. To send
    this type of change, you format the patch and then send the email
    using the Git commands ``git format-patch`` and ``git send-email``.
    For information on how to use these scripts, see the
@@ -433,17 +433,12 @@
 following example Git commands::
 
    $ cd ~
-   $ git clone git://git.yoctoproject.org/poky
-   $ cd poky
-   $ git checkout -b &DISTRO_NAME_NO_CAP; origin/&DISTRO_NAME_NO_CAP;
+   $ git clone git://git.yoctoproject.org/poky -b &DISTRO_NAME_NO_CAP;
 
 In the previous example
 after moving to the home directory, the ``git clone`` command creates a
-local copy of the upstream ``poky`` Git repository. By default, Git
-checks out the "master" branch for your work. After changing the working
-directory to the new local repository (i.e. ``poky``), the
-``git checkout`` command creates and checks out a local branch named
-"&DISTRO_NAME_NO_CAP;", which tracks the upstream
+local copy of the upstream ``poky`` Git repository and checks out a
+local branch named "&DISTRO_NAME_NO_CAP;", which tracks the upstream
 "origin/&DISTRO_NAME_NO_CAP;" branch. Changes you make while in this
 branch would ultimately affect the upstream "&DISTRO_NAME_NO_CAP;" branch
 of the ``poky`` repository.
@@ -558,9 +553,9 @@
 -  *git pull --rebase:* Retrieves information from an upstream Git
    repository and places it in your local Git repository. You use this
    command to make sure you are synchronized with the repository from
-   which you are basing changes (.e.g. the "master" branch). The
-   "--rebase" option ensures that any local commits you have in your
-   branch are preserved at the top of your local branch.
+   which you are basing changes (e.g. the "&DISTRO_NAME_NO_CAP;"
+   branch). The "--rebase" option ensures that any local commits you
+   have in your branch are preserved at the top of your local branch.
 
 -  *git push repo-name local-branch:upstream-branch:* Sends
    all your committed local changes to the upstream Git repository that
@@ -571,13 +566,13 @@
 
 -  *git merge:* Combines or adds changes from one local branch of
    your repository with another branch. When you create a local Git
-   repository, the default branch is named "master". A typical workflow
-   is to create a temporary branch that is based off "master" that you
-   would use for isolated work. You would make your changes in that
-   isolated branch, stage and commit them locally, switch to the
-   "master" branch, and then use the ``git merge`` command to apply the
+   repository, the default branch may be named "main". A typical
+   workflow is to create a temporary branch that is based off "main"
+   that you would use for isolated work. You would make your changes in
+   that isolated branch, stage and commit them locally, switch to the
+   "main" branch, and then use the ``git merge`` command to apply the
    changes from your isolated branch into the currently checked out
-   branch (e.g. "master"). After the merge is complete and if you are
+   branch (e.g. "main"). After the merge is complete and if you are
    done with working in that isolated branch, you can safely delete the
    isolated branch.
 
diff --git a/poky/documentation/overview-manual/yp-intro.rst b/poky/documentation/overview-manual/yp-intro.rst
index 7aee9db..a8ca9e9 100644
--- a/poky/documentation/overview-manual/yp-intro.rst
+++ b/poky/documentation/overview-manual/yp-intro.rst
@@ -371,7 +371,7 @@
 
 -  *AutoBuilder:* AutoBuilder is a project that automates build tests
    and quality assurance (QA). By using the public AutoBuilder, anyone
-   can determine the status of the current "master" branch of Poky.
+   can determine the status of the current development branch of Poky.
 
    .. note::
 
diff --git a/poky/documentation/poky.yaml b/poky/documentation/poky.yaml
index f2d1e8b..62589ac 100644
--- a/poky/documentation/poky.yaml
+++ b/poky/documentation/poky.yaml
@@ -1,12 +1,12 @@
-DISTRO : "3.4"
+DISTRO : "3.4.1"
 DISTRO_NAME_NO_CAP : "honister"
 DISTRO_NAME : "Honister"
 DISTRO_NAME_NO_CAP_MINUS_ONE : "hardknott"
 DISTRO_NAME_NO_CAP_LTS : "dunfell"
-YOCTO_DOC_VERSION : "3.4"
-YOCTO_DOC_VERSION_MINUS_ONE : "3.3.3"
-DISTRO_REL_TAG : "yocto-3.4"
-POKYVERSION : "26.0.0"
+YOCTO_DOC_VERSION : "3.4.1"
+YOCTO_DOC_VERSION_MINUS_ONE : "3.3.4"
+DISTRO_REL_TAG : "yocto-3.4.1"
+POKYVERSION : "26.0.1"
 YOCTO_POKY : "poky-&DISTRO_NAME_NO_CAP;-&POKYVERSION;"
 YOCTO_DL_URL : "https://downloads.yoctoproject.org"
 YOCTO_AB_URL : "https://autobuilder.yoctoproject.org"
@@ -30,7 +30,7 @@
      \n\      $ sudo yum makecache
      \n\      $ sudo yum install gawk make wget tar bzip2 gzip python3 unzip perl patch \
      diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath socat \
-     perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python36-pip xz \
+     perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python3-pip xz \
      which SDL-devel xterm mesa-libGL-devel zstd lz4
      \n\      $ sudo pip3 install GitPython jinja2"
 CENTOS8_HOST_PACKAGES_ESSENTIAL : "-y epel-release
diff --git a/poky/documentation/profile-manual/usage.rst b/poky/documentation/profile-manual/usage.rst
index 3d28408..56f1e66 100644
--- a/poky/documentation/profile-manual/usage.rst
+++ b/poky/documentation/profile-manual/usage.rst
@@ -2138,7 +2138,7 @@
 userspace program. For this example, we'll use the 'hello' test program
 generated by the lttng-ust build.
 
-The 'hello' test program isn't installed on the rootfs by the lttng-ust
+The 'hello' test program isn't installed on the root filesystem by the lttng-ust
 build, so we need to copy it over manually. First cd into the build
 directory that contains the hello executable::
 
diff --git a/poky/documentation/ref-manual/classes.rst b/poky/documentation/ref-manual/classes.rst
index 9b1ead6..d9065b3 100644
--- a/poky/documentation/ref-manual/classes.rst
+++ b/poky/documentation/ref-manual/classes.rst
@@ -214,13 +214,13 @@
 =====================
 
 The ``blacklist`` class prevents the OpenEmbedded build system from
-building specific recipes (blacklists them). To use this class, inherit
+building specific recipes. To use this class, inherit
 the class globally and set :term:`PNBLACKLIST` for
-each recipe you wish to blacklist. Specify the :term:`PN`
+each recipe you wish to ignore. Specify the :term:`PN`
 value as a variable flag (varflag) and provide a reason, which is
 reported, if the package is requested to be built as the value. For
-example, if you want to blacklist a recipe called "exoticware", you add
-the following to your ``local.conf`` or distribution configuration::
+example, if you want to ignore a recipe called "exoticware", you
+add the following to your ``local.conf`` or distribution configuration::
 
    INHERIT += "blacklist"
    PNBLACKLIST[exoticware] = "Not supported by our organization."
@@ -515,6 +515,14 @@
 -  Extensions that use ``distutils``-based build systems require the
    ``distutils`` class in their recipes.
 
+   .. note::
+
+      ``distutils`` has been deprecated in Python 3.10 and will be removed
+      in Python 3.12. For this reason the ``distutils3*`` classes are now
+      deprecated and will be removed from core in the near future. Instead,
+      use the ``setuptools3*`` classes.
+
+
 -  Extensions that use build systems based on ``setuptools3`` require
    the :ref:`setuptools3 <ref-classes-setuptools3>` class in their
    recipes.
@@ -570,11 +578,11 @@
 .. note::
 
    The user and group operations added using the
-   extrausers
+   :ref:`extrausers <ref-classes-extrausers>`
    class are not tied to a specific recipe outside of the recipe for the
    image. Thus, the operations can be performed across the image as a
    whole. Use the
-   useradd
+   :ref:`useradd <ref-classes-useradd>`
    class to add user and group configuration to a specific recipe.
 
 Here is an example that uses this class in an image recipe::
@@ -845,10 +853,10 @@
    icecc.
 
 If you do not want the Icecream distributed compile support to apply to
-specific recipes or classes, you can effectively "blacklist" them by
-listing the recipes and classes using the
+specific recipes or classes, you can ask them to be ignored by Icecream
+by listing the recipes and classes using the
 :term:`ICECC_USER_PACKAGE_BL` and
-:term:`ICECC_USER_CLASS_BL`, variables,
+:term:`ICECC_USER_CLASS_BL` variables,
 respectively, in your ``local.conf`` file. Doing so causes the
 OpenEmbedded build system to handle these compilations locally.
 
@@ -1362,9 +1370,9 @@
 
 Only a single Initramfs bundle can be added to the FIT image created by
 ``kernel-fitimage`` and the Initramfs bundle in FIT is optional.
-In case of Initramfs, the kernel is configured to be bundled with the rootfs
+In case of Initramfs, the kernel is configured to be bundled with the root filesystem
 in the same binary (example: zImage-initramfs-:term:`MACHINE`.bin).
-When the kernel is copied to RAM and executed, it unpacks the Initramfs rootfs.
+When the kernel is copied to RAM and executed, it unpacks the Initramfs root filesystem.
 The Initramfs bundle can be enabled when :term:`INITRAMFS_IMAGE`
 is specified and that :term:`INITRAMFS_IMAGE_BUNDLE` is set to 1.
 The address where the Initramfs bundle is to be loaded by U-boot is specified
@@ -1712,13 +1720,13 @@
 ``overlayfs.bbclass``
 =======================
 
-It's often desired in Embedded System design to have a read-only rootfs.
+It's often desired in Embedded System design to have a read-only root filesystem.
 But a lot of different applications might want to have read-write access to
 some parts of a filesystem. It can be especially useful when your update mechanism
-overwrites the whole rootfs, but you may want your application data to be preserved
+overwrites the whole root filesystem, but you may want your application data to be preserved
 between updates. The :ref:`overlayfs <ref-classes-overlayfs>` class provides a way
 to achieve that by means of ``overlayfs`` and at the same time keeping the base
-rootfs read-only.
+root filesystem read-only.
 
 To use this class, set a mount point for a partition ``overlayfs`` is going to use as upper
 layer in your machine configuration. The underlying file system can be anything that
@@ -1742,7 +1750,8 @@
 
 To support several mount points you can use a different variable flag. Assuming we
 want to have a writable location on the file system, but do not need that the data
-survives a reboot, then we could have a ``mnt-overlay.mount`` unit for a ``tmpfs`` file system.
+survives a reboot, then we could have a ``mnt-overlay.mount`` unit for a ``tmpfs``
+file system.
 
 In your machine configuration::
 
@@ -1752,9 +1761,68 @@
 
   OVERLAYFS_WRITABLE_PATHS[mnt-overlay] = "/usr/share/another-application"
 
+On a practical note, your application recipe might require multiple
+overlays to be mounted before running to avoid writing to the underlying
+file system (which can be forbidden in case of read-only file system)
+To achieve that :ref:`overlayfs <ref-classes-overlayfs>` provides a ``systemd``
+helper service for mounting overlays. This helper service is named
+``${PN}-overlays.service`` and can be depended on in your application recipe
+(named ``application`` in the following example) ``systemd`` unit by adding
+to the unit the following::
+
+  [Unit]
+  After=application-overlays.service
+  Requires=application-overlays.service
+
 .. note::
 
    The class does not support the ``/etc`` directory itself, because ``systemd`` depends on it.
+   In order to get ``/etc`` in overlayfs, see :ref:`overlayfs-etc <ref-classes-overlayfs-etc>`.
+
+.. _ref-classes-overlayfs-etc:
+
+``overlayfs-etc.bbclass``
+=========================
+
+In order to have the ``/etc`` directory in overlayfs a special handling at early
+boot stage is required. The idea is to supply a custom init script that mounts
+``/etc`` before launching the actual init program, because the latter already
+requires ``/etc`` to be mounted.
+
+Example usage in image recipe::
+
+   IMAGE_FEATURES += "overlayfs-etc"
+
+.. note::
+
+   This class must not be inherited directly. Use :term:`IMAGE_FEATURES` or :term:`EXTRA_IMAGE_FEATURES`
+
+Your machine configuration should define at least the device, mount point, and file system type
+you are going to use for ``overlayfs``::
+
+  OVERLAYFS_ETC_MOUNT_POINT = "/data"
+  OVERLAYFS_ETC_DEVICE = "/dev/mmcblk0p2"
+  OVERLAYFS_ETC_FSTYPE ?= "ext4"
+
+To control more mount options you should consider setting mount options
+(``defaults`` is used by default)::
+
+  OVERLAYFS_ETC_MOUNT_OPTIONS = "wsync"
+
+The class provides two options for ``/sbin/init`` generation:
+
+- The default option is to rename the original ``/sbin/init`` to ``/sbin/init.orig``
+  and place the generated init under original name, i.e. ``/sbin/init``. It has an advantage
+  that you won't need to change any kernel parameters in order to make it work,
+  but it poses a restriction that package-management can't be used, because updating
+  the init manager would remove the generated script.
+
+- If you wish to keep original init as is, you can set::
+
+   OVERLAYFS_ETC_USE_ORIG_INIT_NAME = "0"
+
+  Then the generated init will be named ``/sbin/preinit`` and you would need to extend your
+  kernel parameters manually in your bootloader configuration.
 
 .. _ref-classes-own-mirrors:
 
@@ -2316,6 +2384,17 @@
 use build systems based on ``setuptools``. If your recipe uses these
 build systems, the recipe needs to inherit the ``setuptools3`` class.
 
+.. _ref-classes-setuptools3-base:
+
+``setuptools3-base.bbclass``
+============================
+
+The ``setuptools3-base`` class provides a reusable base for other classes
+that support building Python version 3.x extensions. If you need
+functionality that is not provided by the :ref:`setuptools3 <ref-classes-setuptools3>` class, you may
+want to ``inherit setuptools3-base``. Some recipes do not need the tasks
+in the :ref:`setuptools3 <ref-classes-setuptools3>` class and inherit this class instead.
+
 .. _ref-classes-sign_rpm:
 
 ``sign_rpm.bbclass``
@@ -2796,11 +2875,10 @@
 usage by the package on the target. For example, if you have packages
 that contain system services that should be run under their own user or
 group, you can use these classes to enable creation of the user or
-group. The ``meta-skeleton/recipes-skeleton/useradd/useradd-example.bb``
+group. The :oe_git:`meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
+</openembedded-core/tree/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb>`
 recipe in the :term:`Source Directory` provides a simple
 example that shows how to add three users and groups to two packages.
-See the ``useradd-example.bb`` recipe for more information on how to use
-these classes.
 
 The ``useradd_base`` class provides basic functionality for user or
 groups settings.
diff --git a/poky/documentation/ref-manual/faq.rst b/poky/documentation/ref-manual/faq.rst
index 6f2970d..e06dfd9 100644
--- a/poky/documentation/ref-manual/faq.rst
+++ b/poky/documentation/ref-manual/faq.rst
@@ -302,10 +302,10 @@
 ``local.conf`` configuration file::
 
    PREMIRRORS:prepend = "\
-       git://.*/.* &YOCTO_DL_URL;/mirror/sources/ \n \
-       ftp://.*/.* &YOCTO_DL_URL;/mirror/sources/ \n \
-       http://.*/.* &YOCTO_DL_URL;/mirror/sources/ \n \
-       https://.*/.* &YOCTO_DL_URL;/mirror/sources/ \n"
+       git://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
+       ftp://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
+       http://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
+       https://.*/.* &YOCTO_DL_URL;/mirror/sources/"
 
 These changes cause the build system to intercept Git, FTP, HTTP, and
 HTTPS requests and direct them to the ``http://`` sources mirror. You
@@ -342,10 +342,10 @@
 file as long as the :term:`PREMIRRORS` server is current::
 
    PREMIRRORS:prepend = "\
-       git://.*/.* &YOCTO_DL_URL;/mirror/sources/ \n \
-       ftp://.*/.* &YOCTO_DL_URL;/mirror/sources/ \n \
-       http://.*/.* &YOCTO_DL_URL;/mirror/sources/ \n \
-       https://.*/.* &YOCTO_DL_URL;/mirror/sources/ \n"
+       git://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
+       ftp://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
+       http://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
+       https://.*/.* &YOCTO_DL_URL;/mirror/sources/"
    BB_FETCH_PREMIRRORONLY = "1"
 
 These changes would cause the build system to successfully fetch source
diff --git a/poky/documentation/ref-manual/features.rst b/poky/documentation/ref-manual/features.rst
index ded6532..f7abb41 100644
--- a/poky/documentation/ref-manual/features.rst
+++ b/poky/documentation/ref-manual/features.rst
@@ -219,6 +219,10 @@
 -  *empty-root-password:* Sets the root password to an empty string,
    which allows logins with a blank password.
 
+-  *overlayfs-etc:* Configures the ``/etc`` directory to be in ``overlayfs``.
+   This allows to store device specific information elsewhere, especially
+   if the root filesystem is configured to be read-only.
+
 -  *package-management:* Installs package management tools and preserves
    the package manager database.
 
diff --git a/poky/documentation/ref-manual/images.rst b/poky/documentation/ref-manual/images.rst
index c6a7239..0e3351b 100644
--- a/poky/documentation/ref-manual/images.rst
+++ b/poky/documentation/ref-manual/images.rst
@@ -112,7 +112,7 @@
    development headers and libraries to form a complete standalone SDK
    and is suitable for development using the target.
 
--  ``core-image-testmaster``: A "master" image designed to be used for
+-  ``core-image-testmaster``: A "controller" image designed to be used for
    automated runtime testing. Provides a "known good" image that is
    deployed to a separate partition so that you can boot into it and use
    it to deploy a second image to be tested. You can find more
diff --git a/poky/documentation/ref-manual/kickstart.rst b/poky/documentation/ref-manual/kickstart.rst
index cac9f2f..885c721 100644
--- a/poky/documentation/ref-manual/kickstart.rst
+++ b/poky/documentation/ref-manual/kickstart.rst
@@ -54,8 +54,9 @@
 .. note::
 
    The mount program must understand the PARTUUID syntax you use with
-   ``--use-uuid`` and non-root *mountpoint*, including swap. The BusyBox
-   versions of these application are currently excluded.
+   ``--use-uuid`` and non-root *mountpoint*, including swap. The default
+   configuration of BusyBox in OpenEmbedded supports this, but this may
+   be disabled in custom configurations.
 
 Here is an example that uses "/" as the mountpoint. The command uses
 ``--ondisk`` to force the partition onto the ``sdb`` disk::
@@ -86,7 +87,7 @@
 
    If you use ``--source rootfs``, Wic creates a partition as large as
    needed and fills it with the contents of the root filesystem pointed
-   to by the ``-r`` command-line option or the equivalent rootfs derived
+   to by the ``-r`` command-line option or the equivalent root filesystem derived
    from the ``-e`` command-line option. The filesystem type used to
    create the partition is driven by the value of the ``--fstype``
    option specified for the partition. See the entry on ``--fstype``
@@ -95,7 +96,7 @@
    If you use ``--source plugin-name``, Wic creates a partition as large
    as needed and fills it with the contents of the partition that is
    generated by the specified plugin name using the data pointed to by
-   the ``-r`` command-line option or the equivalent rootfs derived from
+   the ``-r`` command-line option or the equivalent root filesystem derived from
    the ``-e`` command-line option. Exactly what those contents are and
    filesystem type used are dependent on the given plugin
    implementation.
diff --git a/poky/documentation/ref-manual/qa-checks.rst b/poky/documentation/ref-manual/qa-checks.rst
index 792c099..3364311 100644
--- a/poky/documentation/ref-manual/qa-checks.rst
+++ b/poky/documentation/ref-manual/qa-checks.rst
@@ -28,7 +28,7 @@
 .. note::
 
    -  At the end of each message, the name of the associated QA test (as
-      listed in the ":ref:`insane.bbclass <ref-classes-insane>`"
+      listed in the ":ref:`ref-classes-insane`"
       section) appears within square brackets.
 
    -  As mentioned, this list of error and warning messages is for QA
@@ -749,7 +749,7 @@
 variables, respectively. You can also disable checks within a particular
 recipe using :term:`INSANE_SKIP`. For information on
 how to work with the QA checks, see the
-":ref:`insane.bbclass <ref-classes-insane>`" section.
+":ref:`ref-classes-insane`" section.
 
 .. note::
 
diff --git a/poky/documentation/ref-manual/structure.rst b/poky/documentation/ref-manual/structure.rst
index 5f00edb..5d2e3a8 100644
--- a/poky/documentation/ref-manual/structure.rst
+++ b/poky/documentation/ref-manual/structure.rst
@@ -231,7 +231,7 @@
 -----------------------
 
 The OpenEmbedded build system creates this directory when you enable
-build history via the ``buildhistory`` class file. The directory
+build history via the :ref:`buildhistory <ref-classes-buildhistory>` class file. The directory
 organizes build information into image, packages, and SDK
 subdirectories. For information on the build history feature, see the
 ":ref:`dev-manual/common-tasks:maintaining build output quality`"
diff --git a/poky/documentation/ref-manual/system-requirements.rst b/poky/documentation/ref-manual/system-requirements.rst
index d12e8df..d7b7cec 100644
--- a/poky/documentation/ref-manual/system-requirements.rst
+++ b/poky/documentation/ref-manual/system-requirements.rst
@@ -37,17 +37,13 @@
 Currently, the Yocto Project is supported on the following
 distributions:
 
--  Ubuntu 16.04 (LTS)
-
 -  Ubuntu 18.04 (LTS)
 
 -  Ubuntu 20.04 (LTS)
 
--  Fedora 30
+-  Fedora 33
 
--  Fedora 31
-
--  Fedora 32
+-  Fedora 34
 
 -  CentOS 7.x
 
@@ -59,8 +55,11 @@
 
 -  Debian GNU/Linux 10.x (Buster)
 
--  openSUSE Leap 15.1
+-  Debian GNU/Linux 11.x (Bullseye)
 
+-  OpenSUSE Leap 15.1
+
+-  OpenSUSE Leap 15.2
 
 .. note::
 
diff --git a/poky/documentation/ref-manual/tasks.rst b/poky/documentation/ref-manual/tasks.rst
index 299969d..b51462b 100644
--- a/poky/documentation/ref-manual/tasks.rst
+++ b/poky/documentation/ref-manual/tasks.rst
@@ -80,7 +80,7 @@
 Recipes implementing this task should inherit the
 :ref:`deploy <ref-classes-deploy>` class and should write the output
 to ``${``\ :term:`DEPLOYDIR`\ ``}``, which is not to be
-confused with ``${DEPLOY_DIR}``. The ``deploy`` class sets up
+confused with ``${DEPLOY_DIR}``. The :ref:`deploy <ref-classes-deploy>` class sets up
 ``do_deploy`` as a shared state (sstate) task that can be accelerated
 through sstate use. The sstate mechanism takes care of copying the
 output from ``${DEPLOYDIR}`` to ``${DEPLOY_DIR_IMAGE}``.
@@ -102,7 +102,7 @@
 .. note::
 
    You do not need to add ``before do_build`` to the ``addtask`` command
-   (though it is harmless), because the ``base`` class contains the following::
+   (though it is harmless), because the :ref:`base <ref-classes-base>` class contains the following::
 
            do_build[recrdeptask] += "do_deploy"
 
@@ -326,21 +326,19 @@
        file://file;apply=yes \
        "
 
-Conversely, if you have a directory full of patch files and you want to
-exclude some so that the ``do_patch`` task does not apply them during
-the patch phase, you can use the "apply=no" parameter with the
+Conversely, if you have a file whose file type is ``.patch`` or ``.diff``
+and you want to exclude it so that the ``do_patch`` task does not apply
+it during the patch phase, you can use the "apply=no" parameter with the
 :term:`SRC_URI` statement::
 
    SRC_URI = " \
        git://path_to_repo/some_package \
-       file://path_to_lots_of_patch_files \
-       file://path_to_lots_of_patch_files/patch_file5;apply=no \
+       file://file1.patch \
+       file://file2.patch;apply=no \
        "
 
-In the
-previous example, assuming all the files in the directory holding the
-patch files end with either ``.patch`` or ``.diff``, every file would be
-applied as a patch by default except for the ``patch_file5`` patch.
+In the previous example ``file1.patch`` would be applied as a patch by default
+while ``file2.patch`` would not be applied.
 
 You can find out more about the patching process in the
 ":ref:`overview-manual/concepts:patching`" section in
@@ -417,7 +415,7 @@
 
 Removes work files after the OpenEmbedded build system has finished with
 them. You can learn more by looking at the
-":ref:`rm_work.bbclass <ref-classes-rm-work>`" section.
+":ref:`ref-classes-rm-work`" section.
 
 .. _ref-tasks-unpack:
 
diff --git a/poky/documentation/ref-manual/terms.rst b/poky/documentation/ref-manual/terms.rst
index eccae91..09e0a98 100644
--- a/poky/documentation/ref-manual/terms.rst
+++ b/poky/documentation/ref-manual/terms.rst
@@ -134,10 +134,27 @@
       the Texas Instruments ARM Cortex-A8 development board).
 
    :term:`Container Layer`
-      Layers that hold other layers. An example of a container layer is
-      OpenEmbedded's `meta-openembedded
-      <https://github.com/openembedded/meta-openembedded>`_ layer. The
-      ``meta-openembedded`` layer contains many ``meta-*`` layers.
+      A flexible definition that typically refers to a single Git checkout
+      which contains multiple (and typically related) sub-layers which can
+      be included independently in your project's ``bblayers.conf`` file.
+
+      In some cases, such as with OpenEmbedded's
+      `meta-openembedded <https://github.com/openembedded/meta-openembedded>`_
+      layer, the top level ``meta-openembedded/`` directory is not itself an actual layer,
+      so you would never explicitly include it in a ``bblayers.conf`` file;
+      rather, you would include any number of its layer subdirectories, such as
+      `meta-openembedded/meta-oe <https://github.com/openembedded/meta-openembedded/tree/master/meta-oe>`_,
+      `meta-openembedded/meta-python <https://github.com/openembedded/meta-openembedded/tree/master/meta-python>`_
+      and so on.
+
+      On the other hand, some container layers (such as
+      `meta-security <https://git.yoctoproject.org/cgit/cgit.cgi/meta-security>`_)
+      have a top-level directory that is itself an actual layer, as well as
+      a variety of sub-layers, both of which could be included in your
+      ``bblayers.conf`` file.
+
+      In either case, the phrase "container layer" is simply used to describe
+      a directory structure which contains multiple valid OpenEmbedded layers.
 
    :term:`Cross-Development Toolchain`
       In general, a cross-development toolchain is a collection of software
@@ -387,7 +404,7 @@
 
    :term:`Upstream`
       A reference to source code or repositories that are not
-      local to the development system but located in a master area that is
+      local to the development system but located in a remote area that is
       controlled by the maintainer of the source code. For example, in
       order for a developer to work on a particular piece of code, they
       need to first get a copy of it from an "upstream" source.
diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst
index b9e9771..b062116 100644
--- a/poky/documentation/ref-manual/variables.rst
+++ b/poky/documentation/ref-manual/variables.rst
@@ -56,7 +56,7 @@
          ALTERNATIVE:busybox = "sh sed test bracket"
 
       For more information on the alternatives system, see the
-      ":ref:`update-alternatives.bbclass <ref-classes-update-alternatives>`"
+      ":ref:`ref-classes-update-alternatives`"
       section.
 
    :term:`ALTERNATIVE_LINK_NAME`
@@ -76,7 +76,7 @@
          If :term:`ALTERNATIVE_LINK_NAME` is not defined, it defaults to ``${bindir}/name``.
 
       For more information on the alternatives system, see the
-      ":ref:`update-alternatives.bbclass <ref-classes-update-alternatives>`"
+      ":ref:`ref-classes-update-alternatives`"
       section.
 
    :term:`ALTERNATIVE_PRIORITY`
@@ -92,7 +92,7 @@
          ALTERNATIVE_PRIORITY_pkg[name] = "priority"
 
       For more information on the alternatives system, see the
-      ":ref:`update-alternatives.bbclass <ref-classes-update-alternatives>`"
+      ":ref:`ref-classes-update-alternatives`"
       section.
 
    :term:`ALTERNATIVE_TARGET`
@@ -122,8 +122,7 @@
          task while retaining support for the command if necessary.
 
       For more information on the alternatives system, see the
-      ":ref:`update-alternatives.bbclass <ref-classes-update-alternatives>`"
-      section.
+      ":ref:`ref-classes-update-alternatives`" section.
 
    :term:`ANY_OF_DISTRO_FEATURES`
       When inheriting the
@@ -400,7 +399,7 @@
          where:
 
             action is:
-               ABORT:     Immediately abort the build when
+               ABORT:     Immediately stop the build when
                           a threshold is broken.
                STOPTASKS: Stop the build after the currently
                           executing tasks have finished when
@@ -438,7 +437,7 @@
       The first example works only if you also provide the
       :term:`BB_DISKMON_WARNINTERVAL`
       variable in the ``conf/local.conf``. This example causes the build
-      system to immediately abort when either the disk space in
+      system to immediately stop when either the disk space in
       ``${TMPDIR}`` drops below 1 Gbyte or the available free inodes drops
       below 100 Kbytes. Because two directories are provided with the
       variable, the build system also issue a warning when the disk space
@@ -452,7 +451,7 @@
       directory drops below 1 Gbyte. No disk monitoring occurs for the free
       inodes in this case.
 
-      The final example immediately aborts the build when the number of
+      The final example immediately stops the build when the number of
       free inodes in the ``${TMPDIR}`` directory drops below 100 Kbytes. No
       disk space monitoring for the directory itself occurs in this case.
 
@@ -641,8 +640,10 @@
       introduce a hard dependency on those other layers.
 
       Use the following form for :term:`BBFILES_DYNAMIC`:
-      collection_name:filename_pattern The following example identifies two
-      collection names and two filename patterns::
+      ``collection_name:filename_pattern``.
+
+      The following example identifies two collection names and two
+      filename patterns::
 
          BBFILES_DYNAMIC += " \
             clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
@@ -650,7 +651,7 @@
             "
 
       This next example shows an error message that occurs because invalid
-      entries are found, which cause parsing to abort:
+      entries are found, which cause parsing to fail:
 
       .. code-block:: none
 
@@ -771,7 +772,7 @@
       :ref:`binconfig-disabled <ref-classes-binconfig-disabled>` class,
       this variable specifies binary configuration scripts to disable in
       favor of using ``pkg-config`` to query the information. The
-      ``binconfig-disabled`` class will modify the specified scripts to
+      :ref:`binconfig-disabled <ref-classes-binconfig-disabled>` class will modify the specified scripts to
       return an error so that calls to them can be easily found and
       replaced.
 
@@ -801,7 +802,7 @@
       ``meta/classes/binconfig.bbclass`` in the :term:`Source Directory`.
       You can also find general
       information on the class in the
-      ":ref:`binconfig.bbclass <ref-classes-binconfig>`" section.
+      ":ref:`ref-classes-binconfig`" section.
 
    :term:`BP`
       The base recipe name and version but without any special recipe name
@@ -939,13 +940,13 @@
       When inheriting the :ref:`buildhistory <ref-classes-buildhistory>`
       class, this variable specifies whether or not to commit the build
       history output in a local Git repository. If set to "1", this local
-      repository will be maintained automatically by the ``buildhistory``
+      repository will be maintained automatically by the :ref:`buildhistory <ref-classes-buildhistory>`
       class and a commit will be created on every build for changes to each
       top-level subdirectory of the build history output (images, packages,
       and sdk). If you want to track changes to build history over time,
       you should set this value to "1".
 
-      By default, the ``buildhistory`` class does not commit the build
+      By default, the :ref:`buildhistory <ref-classes-buildhistory>` class does not commit the build
       history output in a local Git repository::
 
          BUILDHISTORY_COMMIT ?= "0"
@@ -962,7 +963,7 @@
       email@host". Providing an email address or host that is not valid
       does not produce an error.
 
-      By default, the ``buildhistory`` class sets the variable as follows::
+      By default, the :ref:`buildhistory <ref-classes-buildhistory>` class sets the variable as follows::
 
          BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>"
 
@@ -970,9 +971,9 @@
       When inheriting the :ref:`buildhistory <ref-classes-buildhistory>`
       class, this variable specifies the directory in which build history
       information is kept. For more information on how the variable works,
-      see the ``buildhistory.class``.
+      see the ``buildhistory.bbclass`` file.
 
-      By default, the ``buildhistory`` class sets the directory as follows::
+      By default, the :ref:`buildhistory <ref-classes-buildhistory>` class sets the directory as follows::
 
          BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
 
@@ -999,7 +1000,7 @@
          This saves one file per task and lists the SHA-256 checksums for
          each file staged (i.e. the output of the task).
 
-      By default, the ``buildhistory`` class enables the following
+      By default, the :ref:`buildhistory <ref-classes-buildhistory>` class enables the following
       features::
 
          BUILDHISTORY_FEATURES ?= "image package sdk"
@@ -1015,7 +1016,7 @@
       any file. Specifying an invalid path does not produce an error.
       Consequently, you can include files that might not always be present.
 
-      By default, the ``buildhistory`` class provides paths to the
+      By default, the :ref:`buildhistory <ref-classes-buildhistory>` class provides paths to the
       following files::
 
          BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
@@ -1028,7 +1029,7 @@
       useful when build history is populated from multiple sources that may not
       all use the same top level directory.
 
-      By default, the ``buildhistory`` class sets the variable as follows::
+      By default, the :ref:`buildhistory <ref-classes-buildhistory>` class sets the variable as follows::
 
          BUILDHISTORY_PATH_PREFIX_STRIP ?= ""
 
@@ -1047,7 +1048,7 @@
       that you have set up manually using ``git remote`` within the local
       repository.
 
-      By default, the ``buildhistory`` class sets the variable as follows::
+      By default, the :ref:`buildhistory <ref-classes-buildhistory>` class sets the variable as follows::
 
          BUILDHISTORY_PUSH_REPO ?= ""
 
@@ -1321,7 +1322,7 @@
       The default value, which is "CLOSED Proprietary", for
       :term:`COPYLEFT_LICENSE_EXCLUDE` is set by the
       :ref:`copyleft_filter <ref-classes-copyleft_filter>` class, which
-      is inherited by the ``archiver`` class.
+      is inherited by the :ref:`archiver <ref-classes-archiver>` class.
 
    :term:`COPYLEFT_LICENSE_INCLUDE`
       A space-separated list of licenses to include in the source archived
@@ -1332,7 +1333,7 @@
 
       The default value is set by the
       :ref:`copyleft_filter <ref-classes-copyleft_filter>` class, which
-      is inherited by the ``archiver`` class. The default value includes
+      is inherited by the :ref:`archiver <ref-classes-archiver>` class. The default value includes
       "GPL*", "LGPL*", and "AGPL*".
 
    :term:`COPYLEFT_PN_EXCLUDE`
@@ -1347,7 +1348,7 @@
       The default value, which is "" indicating to not explicitly exclude
       any recipes by name, for :term:`COPYLEFT_PN_EXCLUDE` is set by the
       :ref:`copyleft_filter <ref-classes-copyleft_filter>` class, which
-      is inherited by the ``archiver`` class.
+      is inherited by the :ref:`archiver <ref-classes-archiver>` class.
 
    :term:`COPYLEFT_PN_INCLUDE`
       A list of recipes to include in the source archived by the
@@ -1361,7 +1362,7 @@
       The default value, which is "" indicating to not explicitly include
       any recipes by name, for :term:`COPYLEFT_PN_INCLUDE` is set by the
       :ref:`copyleft_filter <ref-classes-copyleft_filter>` class, which
-      is inherited by the ``archiver`` class.
+      is inherited by the :ref:`archiver <ref-classes-archiver>` class.
 
    :term:`COPYLEFT_RECIPE_TYPES`
       A space-separated list of recipe types to include in the source
@@ -1371,7 +1372,7 @@
 
       The default value, which is "target*", for :term:`COPYLEFT_RECIPE_TYPES`
       is set by the :ref:`copyleft_filter <ref-classes-copyleft_filter>`
-      class, which is inherited by the ``archiver`` class.
+      class, which is inherited by the :ref:`archiver <ref-classes-archiver>` class.
 
    :term:`COPY_LIC_DIRS`
       If set to "1" along with the
@@ -1803,11 +1804,11 @@
    :term:`DEPLOYDIR`
       When inheriting the :ref:`deploy <ref-classes-deploy>` class, the
       :term:`DEPLOYDIR` points to a temporary work area for deployed files that
-      is set in the ``deploy`` class as follows::
+      is set in the :ref:`deploy <ref-classes-deploy>` class as follows::
 
          DEPLOYDIR = "${WORKDIR}/deploy-${PN}"
 
-      Recipes inheriting the ``deploy`` class should copy files to be
+      Recipes inheriting the :ref:`deploy <ref-classes-deploy>` class should copy files to be
       deployed into :term:`DEPLOYDIR`, and the class will take care of copying
       them into :term:`DEPLOY_DIR_IMAGE`
       afterwards.
@@ -1850,7 +1851,7 @@
 
    :term:`DISTRO_EXTRA_RDEPENDS`
       Specifies a list of distro-specific packages to add to all images.
-      This variable takes affect through ``packagegroup-base`` so the
+      This variable takes effect through ``packagegroup-base`` so the
       variable only really applies to the more full-featured images that
       include ``packagegroup-base``. You can use this variable to keep
       distro policy out of generic images. As with all other distro
@@ -1983,8 +1984,7 @@
 
    :term:`DISTUTILS_SETUP_PATH`
       When used by recipes that inherit the
-      :ref:`distutils3 <ref-classes-distutils3>` or
-      :ref:`setuptools3 <ref-classes-setuptools3>` class, this variable should
+      :ref:`distutils3 <ref-classes-distutils3>` class, this variable should
       be used to specify the directory in which the ``setup.py`` file is
       located if it is not at the root of the source tree (as specified by
       :term:`S`). For example, in a recipe where the sources are fetched from
@@ -1994,6 +1994,13 @@
          S = "${WORKDIR}/git"
          DISTUTILS_SETUP_PATH = "${S}/python/pythonmodule"
 
+      .. note::
+
+         ``distutils`` has been deprecated in Python 3.10 and will be removed
+         in Python 3.12. For this reason, the use of :ref:`distutils3 <ref-classes-distutils3>`
+         is deprecated. Instead use :ref:`setuptools3 <ref-classes-setuptools3>` and the
+         :term:`SETUPTOOLS_SETUP_PATH` variable.
+
    :term:`DL_DIR`
       The central download directory used by the build process to store
       downloads. By default, :term:`DL_DIR` gets files suitable for mirroring
@@ -2077,7 +2084,7 @@
       errors by the OpenEmbedded build system. You set this variable in
       your distribution configuration file. For a list of the checks you
       can control with this variable, see the
-      ":ref:`insane.bbclass <ref-classes-insane>`" section.
+      ":ref:`ref-classes-insane`" section.
 
    :term:`EXCLUDE_FROM_SHLIBS`
       Triggers the OpenEmbedded build system's shared libraries resolver to
@@ -2156,7 +2163,7 @@
       system uses to locate unpacked recipe source code.
 
       For more information on ``externalsrc.bbclass``, see the
-      ":ref:`externalsrc.bbclass <ref-classes-externalsrc>`" section. You
+      ":ref:`ref-classes-externalsrc`" section. You
       can also find information on how to use this variable in the
       ":ref:`dev-manual/common-tasks:building software from an external source`"
       section in the Yocto Project Development Tasks Manual.
@@ -2170,7 +2177,7 @@
       Directory.
 
       For more information on ``externalsrc.bbclass``, see the
-      ":ref:`externalsrc.bbclass <ref-classes-externalsrc>`" section. You
+      ":ref:`ref-classes-externalsrc`" section. You
       can also find information on how to use this variable in the
       ":ref:`dev-manual/common-tasks:building software from an external source`"
       section in the Yocto Project Development Tasks Manual.
@@ -2291,7 +2298,7 @@
       group configurations to a specific recipe.
 
       The set list of commands you can configure using the
-      :term:`EXTRA_USERS_PARAMS` is shown in the ``extrausers`` class. These
+      :term:`EXTRA_USERS_PARAMS` is shown in the :ref:`extrausers <ref-classes-extrausers>` class. These
       commands map to the normal Unix commands of the same names::
 
          # EXTRA_USERS_PARAMS = "\
@@ -2626,7 +2633,7 @@
    :term:`FONT_PACKAGES`
       When inheriting the :ref:`fontcache <ref-classes-fontcache>` class,
       this variable identifies packages containing font files that need to
-      be cached by Fontconfig. By default, the ``fontcache`` class assumes
+      be cached by Fontconfig. By default, the :ref:`fontcache <ref-classes-fontcache>` class assumes
       that fonts are in the recipe's main package (i.e.
       ``${``\ :term:`PN`\ ``}``). Use this variable if fonts you
       need are in a package other than that main package.
@@ -2665,6 +2672,13 @@
    :term:`GDB`
       The minimal command and arguments to run the GNU Debugger.
 
+   :term:`GIR_EXTRA_LIBS_PATH`
+      Allows to specify an extra search path for ``.so`` files
+      in GLib related recipes using GObject introspection,
+      and which do not compile without this setting.
+      See the ":ref:`dev-manual/common-tasks:enabling gobject introspection support`"
+      section for details.
+
    :term:`GITDIR`
       The directory in which a local copy of a Git repository is stored
       when it is cloned.
@@ -2834,7 +2848,7 @@
    :term:`ICECC_DISABLED`
       Disables or enables the ``icecc`` (Icecream) function. For more
       information on this function and best practices for using this
-      variable, see the ":ref:`icecc.bbclass <ref-classes-icecc>`"
+      variable, see the ":ref:`ref-classes-icecc`"
       section.
 
       Setting this variable to "1" in your ``local.conf`` disables the
@@ -2892,9 +2906,9 @@
       :ref:`icecc <ref-classes-icecc>` class. You set this variable in
       your ``local.conf`` file.
 
-      When you list classes using this variable, you are "blacklisting"
-      them from distributed compilation across remote hosts. Any classes
-      you list will be distributed and compiled locally.
+      When you list classes using this variable, the recipes inheriting
+      those classes will not benefit from distributed compilation across
+      remote hosts. Instead they will be built locally.
 
    :term:`ICECC_USER_PACKAGE_BL`
       Identifies user recipes that you do not want the Icecream distributed
@@ -2902,9 +2916,9 @@
       :ref:`icecc <ref-classes-icecc>` class. You set this variable in
       your ``local.conf`` file.
 
-      When you list packages using this variable, you are "blacklisting"
-      them from distributed compilation across remote hosts. Any packages
-      you list will be distributed and compiled locally.
+      When you list recipes using this variable, you are excluding them
+      from distributed compilation across remote hosts. Instead they will
+      be built locally.
 
    :term:`ICECC_USER_PACKAGE_WL`
       Identifies user recipes that use an empty
@@ -3731,7 +3745,7 @@
 
          INSANE_SKIP:${PN} += "dev-so"
 
-      See the ":ref:`insane.bbclass <ref-classes-insane>`" section for a
+      See the ":ref:`ref-classes-insane`" section for a
       list of the valid QA checks you can specify using this variable.
 
    :term:`INSTALL_TIMEZONE_FILE`
@@ -3888,7 +3902,7 @@
       typically append this variable to enable extended image types. An
       example is the "kernel-fitimage", which enables fitImage support and
       resides in ``meta/classes/kernel-fitimage.bbclass``. You can register
-      custom kernel image types with the ``kernel`` class using this
+      custom kernel image types with the :ref:`kernel <ref-classes-kernel>` class using this
       variable.
 
    :term:`KERNEL_DEVICETREE`
@@ -4116,7 +4130,7 @@
    :term:`KERNEL_VERSION`
       Specifies the version of the kernel as extracted from ``version.h``
       or ``utsrelease.h`` within the kernel sources. Effects of setting
-      this variable do not take affect until the kernel has been
+      this variable do not take effect until the kernel has been
       configured. Consequently, attempting to refer to this variable in
       contexts prior to configuration will not work.
 
@@ -4283,7 +4297,7 @@
       that the :ref:`debian <ref-classes-debian>` class applies its
       naming policy to given a recipe that packages multiple libraries.
 
-      This variable works in conjunction with the ``debian`` class.
+      This variable works in conjunction with the :ref:`debian <ref-classes-debian>` class.
 
    :term:`LIC_FILES_CHKSUM`
       Checksums of the license text in the recipe source code.
@@ -4364,9 +4378,9 @@
       section in the Yocto Project Development Tasks Manual.
 
    :term:`LICENSE_FLAGS`
-      Specifies additional flags for a recipe you must whitelist through
+      Specifies additional flags for a recipe you must allow through
       :term:`LICENSE_FLAGS_WHITELIST` in
-      order to allow the recipe to be built. When providing multiple flags,
+      order for the recipe to be built. When providing multiple flags,
       separate them with spaces.
 
       This value is independent of :term:`LICENSE` and is
@@ -4379,8 +4393,7 @@
    :term:`LICENSE_FLAGS_WHITELIST`
       Lists license flags that when specified in
       :term:`LICENSE_FLAGS` within a recipe should not
-      prevent that recipe from being built. This practice is otherwise
-      known as "whitelisting" license flags. For more information, see the
+      prevent that recipe from being built.  For more information, see the
       ":ref:`dev-manual/common-tasks:enabling commercially licensed recipes`"
       section in the Yocto Project Development Tasks Manual.
 
@@ -4733,7 +4746,7 @@
       configuration file, a distribution configuration file, an append file
       for the recipe, or the recipe itself). If you use this variable, you
       must also be sure to list the module name in the
-      :term:`KERNEL_MODULE_AUTOLOAD`
+      :term:`KERNEL_MODULE_PROBECONF`
       variable.
 
       Here is the general syntax::
@@ -4908,9 +4921,7 @@
 
       See the ``meta/classes/binconfig.bbclass`` in the
       :term:`Source Directory` for details on how this class
-      applies these additional sed command arguments. For general
-      information on the ``binconfig`` class, see the
-      ":ref:`binconfig.bbclass <ref-classes-binconfig>`" section.
+      applies these additional sed command arguments.
 
    :term:`OE_IMPORTS`
       An internal variable used to tell the OpenEmbedded build system what
@@ -5084,7 +5095,7 @@
 
       For information on packaging and build performance effects as a
       result of the package manager in use, see the
-      ":ref:`package.bbclass <ref-classes-package>`" section.
+      ":ref:`ref-classes-package`" section.
 
    :term:`PACKAGE_DEBUG_SPLIT_STYLE`
       Determines how to split up and package debug and source information
@@ -5186,8 +5197,8 @@
       .. note::
 
          You can use the :term:`PACKAGE_FEED_ARCHS`
-         variable to whitelist specific package architectures. If you do
-         not need to whitelist specific architectures, which is a common
+         variable to allow specific package architectures. If you do
+         not need to allow specific architectures, which is a common
          case, you can omit this variable. Omitting the variable results in
          all available architectures for the current machine being included
          into remote package feeds.
@@ -5303,7 +5314,7 @@
    :term:`PACKAGE_WRITE_DEPS`
       Specifies a list of dependencies for post-installation and
       pre-installation scripts on native/cross tools. If your
-      post-installation or pre-installation script can execute at rootfs
+      post-installation or pre-installation script can execute at root filesystem
       creation time rather than on the target but depends on a native tool
       in order to execute, you need to list the tools in
       :term:`PACKAGE_WRITE_DEPS`.
@@ -5855,10 +5866,10 @@
       :term:`Build Directory`::
 
          PREMIRRORS:prepend = "\
-             git://.*/.* &YOCTO_DL_URL;/mirror/sources/ \n \
-             ftp://.*/.* &YOCTO_DL_URL;/mirror/sources/ \n \
-             http://.*/.* &YOCTO_DL_URL;/mirror/sources/ \n \
-             https://.*/.* &YOCTO_DL_URL;/mirror/sources/ \n"
+             git://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
+             ftp://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
+             http://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
+             https://.*/.* &YOCTO_DL_URL;/mirror/sources/"
 
       These changes cause the
       build system to intercept Git, FTP, HTTP, and HTTPS requests and
@@ -6007,7 +6018,7 @@
       names used when installing the Python headers and libraries in
       sysroot (e.g. ``.../python3.3m/...``).
 
-      Recipes that inherit the ``distutils3`` class during cross-builds also
+      Recipes that inherit the :ref:`distutils3 <ref-classes-distutils3>` class during cross-builds also
       use this variable to locate the headers and libraries of the
       appropriate Python that the extension is targeting.
 
@@ -6198,7 +6209,7 @@
    :term:`RM_WORK_EXCLUDE`
       With ``rm_work`` enabled, this variable specifies a list of recipes
       whose work directories should not be removed. See the
-      ":ref:`rm_work.bbclass <ref-classes-rm-work>`" section for more
+      ":ref:`ref-classes-rm-work`" section for more
       details.
 
    :term:`ROOT_HOME`
@@ -6583,9 +6594,9 @@
       :ref:`populate-sdk-ext <ref-classes-populate-sdk-*>` class.
 
       This list overrides the variables specified using the
-      :term:`SDK_LOCAL_CONF_BLACKLIST`
-      variable as well as any variables identified by automatic
-      blacklisting due to the "/" character being found at the start of the
+      :term:`SDK_LOCAL_CONF_BLACKLIST` variable as well as
+      other variables automatically added due to the "/" character
+      being found at the start of the
       value, which is usually indicative of being a path and thus might not
       be valid on the system where the SDK is installed.
 
@@ -6756,23 +6767,21 @@
          $ bitbake -c populate_sdk imagename
 
    :term:`SDKMACHINE`
-      The machine for which the SDK is built. In other words, the SDK is
-      built such that it runs on the target you specify with the
-      :term:`SDKMACHINE` value. The value points to a corresponding ``.conf``
-      file under ``conf/machine-sdk/``.
+      The machine for which the SDK is built. In other words, the SDK is built
+      such that it runs on the target you specify with the :term:`SDKMACHINE`
+      value. The value points to a corresponding ``.conf`` file under
+      ``conf/machine-sdk/`` in the enabled layers, for example ``aarch64``,
+      ``i586``, ``i686``, ``ppc64``, ``ppc64le``, and ``x86_64`` are
+      :oe_git:`available in OpenEmbedded-Core </openembedded-core/tree/meta/conf/machine-sdk>`.
 
-      You can use "i686" and "x86_64" as possible values for this variable.
-      The variable defaults to "i686" and is set in the local.conf file in
-      the Build Directory.
-      ::
-
-         SDKMACHINE ?= "i686"
+      The variable defaults to :term:`BUILD_ARCH` so that SDKs are built for the
+      architecture of the build machine.
 
       .. note::
 
          You cannot set the :term:`SDKMACHINE`
          variable in your distribution configuration file. If you do, the
-         configuration will not take affect.
+         configuration will not take effect.
 
    :term:`SDKPATH`
       Defines the path offered to the user for installation of the SDK that
@@ -6837,6 +6846,30 @@
 
          EXTRA_IMAGE_FEATURES += "read-only-rootfs"
 
+   :term:`SETUPTOOLS_BUILD_ARGS`
+      When used by recipes that inherit the
+      :ref:`setuptools3 <ref-classes-setuptools3>` class, this variable can
+      be used to specify additional arguments to be passed to ``setup.py build``
+      in the ``setuptools3_do_compile()`` task.
+
+   :term:`SETUPTOOLS_INSTALL_ARGS`
+      When used by recipes that inherit the
+      :ref:`setuptools3 <ref-classes-setuptools3>` class, this variable can
+      be used to specify additional arguments to be passed to ``setup.py install``
+      in the ``setuptools3_do_install()`` task.
+
+   :term:`SETUPTOOLS_SETUP_PATH`
+      When used by recipes that inherit the
+      :ref:`setuptools3 <ref-classes-setuptools3>` class, this variable should
+      be used to specify the directory in which the ``setup.py`` file is
+      located if it is not at the root of the source tree (as specified by
+      :term:`S`). For example, in a recipe where the sources are fetched from
+      a Git repository and ``setup.py`` is in a ``python/pythonmodule``
+      subdirectory, you would have this::
+
+         S = "${WORKDIR}/git"
+         SETUPTOOLS_SETUP_PATH = "${S}/python/pythonmodule"
+
    :term:`SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS`
       A list of recipe dependencies that should not be used to determine
       signatures of tasks from one recipe when they depend on tasks from
@@ -7018,91 +7051,13 @@
       for additional information.
 
    :term:`SRC_URI`
-      The list of source files - local or remote. This variable tells the
-      OpenEmbedded build system which bits to pull in for the build and how
-      to pull them in. For example, if the recipe or append file only needs
-      to fetch a tarball from the Internet, the recipe or append file uses
-      a single :term:`SRC_URI` entry. On the other hand, if the recipe or
-      append file needs to fetch a tarball, apply two patches, and include
-      a custom file, the recipe or append file would include four instances
-      of the variable.
 
-      The following list explains the available URI protocols. URI
-      protocols are highly dependent on particular BitBake Fetcher
-      submodules. Depending on the fetcher BitBake uses, various URL
-      parameters are employed. For specifics on the supported Fetchers, see
-      the ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-fetching:fetchers`" section in the
-      BitBake User Manual.
+      See the BitBake manual for the initial description for this variable:
+      :term:`bitbake:SRC_URI`.
 
-      -  ``file://`` - Fetches files, which are usually files shipped
-         with the :term:`Metadata`, from the local machine (e.g.
-         :ref:`patch <overview-manual/concepts:patching>` files).
-         The path is relative to the :term:`FILESPATH`
-         variable. Thus, the build system searches, in order, from the
-         following directories, which are assumed to be a subdirectories of
-         the directory in which the recipe file (``.bb``) or append file
-         (``.bbappend``) resides:
+      The following features are added by OpenEmbedded and the Yocto Project.
 
-         -  ``${BPN}`` - The base recipe name without any special suffix
-            or version numbers.
-
-         -  ``${BP}`` - ``${BPN}-${PV}``. The base recipe name and
-            version but without any special package name suffix.
-
-         -  *files -* Files within a directory, which is named ``files``
-            and is also alongside the recipe or append file.
-
-         .. note::
-
-            If you want the build system to pick up files specified through
-            a
-            SRC_URI
-            statement from your append file, you need to be sure to extend
-            the
-            FILESPATH
-            variable by also using the
-            FILESEXTRAPATHS
-            variable from within your append file.
-
-      -  ``bzr://`` - Fetches files from a Bazaar revision control
-         repository.
-
-      -  ``git://`` - Fetches files from a Git revision control
-         repository.
-
-      -  ``osc://`` - Fetches files from an OSC (openSUSE Build service)
-         revision control repository.
-
-      -  ``repo://`` - Fetches files from a repo (Git) repository.
-
-      -  ``ccrc://`` - Fetches files from a ClearCase repository.
-
-      -  ``http://`` - Fetches files from the Internet using ``http``.
-
-      -  ``https://`` - Fetches files from the Internet using ``https``.
-
-      -  ``ftp://`` - Fetches files from the Internet using ``ftp``.
-
-      -  ``cvs://`` - Fetches files from a CVS revision control
-         repository.
-
-      -  ``hg://`` - Fetches files from a Mercurial (``hg``) revision
-         control repository.
-
-      -  ``p4://`` - Fetches files from a Perforce (``p4``) revision
-         control repository.
-
-      -  ``ssh://`` - Fetches files from a secure shell.
-
-      -  ``svn://`` - Fetches files from a Subversion (``svn``) revision
-         control repository.
-
-      -  ``npm://`` - Fetches JavaScript modules from a registry.
-
-      -  ``az://`` - Fetches files from an Azure Storage account.
-
-      There are standard and recipe-specific options for :term:`SRC_URI`. Here are
-      standard ones:
+      There are standard and recipe-specific options. Here are standard ones:
 
       -  ``apply`` - Whether to apply the patch or not. The default
          action is to apply the patch.
@@ -7135,41 +7090,12 @@
       -  ``notrev`` - Apply the patch only if :term:`SRCREV` is not equal to
          ``rev``.
 
-      Here are some additional options worth mentioning:
+      .. note::
 
-      -  ``unpack`` - Controls whether or not to unpack the file if it is
-         an archive. The default action is to unpack the file.
-
-      -  ``destsuffix`` - Places the file (or extracts its contents) into
-         the specified subdirectory of :term:`WORKDIR` when
-         the Git fetcher is used.
-
-      -  ``subdir`` - Places the file (or extracts its contents) into the
-         specified subdirectory of :term:`WORKDIR` when the local (``file://``)
-         fetcher is used.
-
-      -  ``localdir`` - Places the file (or extracts its contents) into
-         the specified subdirectory of :term:`WORKDIR` when the CVS fetcher is
-         used.
-
-      -  ``subpath`` - Limits the checkout to a specific subpath of the
-         tree when using the Git fetcher is used.
-
-      -  ``name`` - Specifies a name to be used for association with
-         :term:`SRC_URI` checksums or :term:`SRCREV` when you have more than one
-         file or git repository specified in :term:`SRC_URI`. For example::
-
-            SRC_URI = "git://example.com/foo.git;name=first \
-                       git://example.com/bar.git;name=second \
-                       http://example.com/file.tar.gz;name=third"
-
-            SRCREV_first = "f1d2d2f924e986ac86fdf7b36c94bcdf32beec15"
-            SRCREV_second = "e242ed3bffccdf271b7fbaf34ed72d089537b42f"
-            SRC_URI[third.sha256sum] = "13550350a8681c84c861aac2e5b440161c2b33a3e4f302ac680ca5b686de48de"
-
-
-      -  ``downloadfilename`` - Specifies the filename used when storing
-         the downloaded file.
+         If you want the build system to pick up files specified through
+         a :term:`SRC_URI` statement from your append file, you need to be
+         sure to extend the :term:`FILESPATH` variable by also using the
+         :term:`FILESEXTRAPATHS` variable from within your append file.
 
    :term:`SRC_URI_OVERRIDES_PACKAGE_ARCH`
       By default, the OpenEmbedded build system automatically detects
@@ -8119,7 +8045,7 @@
       on enabling, running, and writing these tests, see the
       ":ref:`dev-manual/common-tasks:performing automated runtime testing`"
       section in the Yocto Project Development Tasks Manual and the
-      ":ref:`testimage*.bbclass <ref-classes-testimage*>`" section.
+      ":ref:`ref-classes-testimage*`" section.
 
    :term:`THISDIR`
       The directory in which the file BitBake is currently parsing is
@@ -8213,11 +8139,6 @@
       information on setting up a cross-development environment, see the
       :doc:`/sdk-manual/index` manual.
 
-   :term:`TOPDIR`
-      The top-level :term:`Build Directory`. BitBake
-      automatically sets this variable when you initialize your build
-      environment using :ref:`structure-core-script`.
-
    :term:`TRANSLATED_TARGET_ARCH`
       A sanitized version of :term:`TARGET_ARCH`. This
       variable is used where the architecture is needed in a value where
@@ -8334,40 +8255,6 @@
 
          TUNE_PKGARCH:tune-core2-32 = "core2-32"
 
-   :term:`TUNEABI`
-      An underlying Application Binary Interface (ABI) used by a particular
-      tuning in a given toolchain layer. Providers that use prebuilt
-      libraries can use the :term:`TUNEABI`,
-      :term:`TUNEABI_OVERRIDE`, and
-      :term:`TUNEABI_WHITELIST` variables to check
-      compatibility of tunings against their selection of libraries.
-
-      If :term:`TUNEABI` is undefined, then every tuning is allowed. See the
-      :ref:`sanity <ref-classes-sanity>` class to see how the variable is
-      used.
-
-   :term:`TUNEABI_OVERRIDE`
-      If set, the OpenEmbedded system ignores the
-      :term:`TUNEABI_WHITELIST` variable.
-      Providers that use prebuilt libraries can use the
-      :term:`TUNEABI_OVERRIDE`, :term:`TUNEABI_WHITELIST`, and
-      :term:`TUNEABI` variables to check compatibility of a
-      tuning against their selection of libraries.
-
-      See the :ref:`sanity <ref-classes-sanity>` class to see how the
-      variable is used.
-
-   :term:`TUNEABI_WHITELIST`
-      A whitelist of permissible :term:`TUNEABI` values. If
-      :term:`TUNEABI_WHITELIST` is not set, all tunes are allowed. Providers
-      that use prebuilt libraries can use the :term:`TUNEABI_WHITELIST`,
-      :term:`TUNEABI_OVERRIDE`, and :term:`TUNEABI`
-      variables to check compatibility of a tuning against their selection
-      of libraries.
-
-      See the :ref:`sanity <ref-classes-sanity>` class to see how the
-      variable is used.
-
    :term:`TUNECONFLICTS[feature]`
       Specifies CPU or Application Binary Interface (ABI) tuning features
       that conflict with feature.
@@ -8783,7 +8670,7 @@
       warnings by the OpenEmbedded build system. You set this variable in
       your distribution configuration file. For a list of the checks you
       can control with this variable, see the
-      ":ref:`insane.bbclass <ref-classes-insane>`" section.
+      ":ref:`ref-classes-insane`" section.
 
    :term:`WKS_FILE`
       Specifies the location of the Wic kickstart file that is used by the
diff --git a/poky/documentation/releases.rst b/poky/documentation/releases.rst
index 529d00e..c2c2232 100644
--- a/poky/documentation/releases.rst
+++ b/poky/documentation/releases.rst
@@ -1,5 +1,12 @@
 .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
 
+..
+   NOTE FOR RELEASE MAINTAINERS:
+   This file only needs updating in the development release ("master" branch)
+   When documentation for stable releases is built,
+   the latest version from "master" is used
+   by https://git.yoctoproject.org/yocto-autobuilder-helper/tree/scripts/run-docs-build
+
 ===========================
  Supported Release Manuals
 ===========================
@@ -9,6 +16,7 @@
 ******************************
 
 - :yocto_docs:`3.4 Documentation </3.4>`
+- :yocto_docs:`3.4.1 Documentation </3.4.1>`
 
 ******************************
 Release Series 3.3 (hardknott)
@@ -18,16 +26,7 @@
 - :yocto_docs:`3.3.1 Documentation </3.3.1>`
 - :yocto_docs:`3.3.2 Documentation </3.3.2>`
 - :yocto_docs:`3.3.3 Documentation </3.3.3>`
-
-*******************************
-Release Series 3.2 (gatesgarth)
-*******************************
-
-- :yocto_docs:`3.2 Documentation </3.2>`
-- :yocto_docs:`3.2.1 Documentation </3.2.1>`
-- :yocto_docs:`3.2.2 Documentation </3.2.2>`
-- :yocto_docs:`3.2.3 Documentation </3.2.3>`
-- :yocto_docs:`3.2.4 Documentation </3.2.4>`
+- :yocto_docs:`3.3.4 Documentation </3.3.4>`
 
 ****************************
 Release Series 3.1 (dunfell)
@@ -45,11 +44,23 @@
 - :yocto_docs:`3.1.9 Documentation </3.1.9>`
 - :yocto_docs:`3.1.10 Documentation </3.1.10>`
 - :yocto_docs:`3.1.11 Documentation </3.1.11>`
+- :yocto_docs:`3.1.12 Documentation </3.1.12>`
+- :yocto_docs:`3.1.13 Documentation </3.1.13>`
 
 ==========================
  Outdated Release Manuals
 ==========================
 
+*******************************
+Release Series 3.2 (gatesgarth)
+*******************************
+
+- :yocto_docs:`3.2 Documentation </3.2>`
+- :yocto_docs:`3.2.1 Documentation </3.2.1>`
+- :yocto_docs:`3.2.2 Documentation </3.2.2>`
+- :yocto_docs:`3.2.3 Documentation </3.2.3>`
+- :yocto_docs:`3.2.4 Documentation </3.2.4>`
+
 *************************
 Release Series 3.0 (zeus)
 *************************
diff --git a/poky/documentation/sdk-manual/appendix-customizing.rst b/poky/documentation/sdk-manual/appendix-customizing.rst
index 4eccc28..cac199b 100644
--- a/poky/documentation/sdk-manual/appendix-customizing.rst
+++ b/poky/documentation/sdk-manual/appendix-customizing.rst
@@ -43,7 +43,7 @@
    :term:`SDK_INHERIT_BLACKLIST`
    are disabled. Using :term:`SDK_INHERIT_BLACKLIST` to disable these
    classes is the typical method to disable classes that are problematic
-   or unnecessary in the SDK context. The default value blacklists the
+   or unnecessary in the SDK context. The default value disables the
    :ref:`buildhistory <ref-classes-buildhistory>`
    and :ref:`icecc <ref-classes-icecc>` classes.
 
@@ -63,9 +63,8 @@
 -  If your SDK configuration inherits additional classes using the
    :term:`INHERIT` variable and you
    do not need or want those classes enabled in the SDK, you can
-   blacklist them by adding them to the
-   :term:`SDK_INHERIT_BLACKLIST`
-   variable as described in the fourth bullet of the previous section.
+   disable them by adding them to the :term:`SDK_INHERIT_BLACKLIST`
+   variable as described in the previous section.
 
    .. note::
 
@@ -275,8 +274,8 @@
       places or it will fail quickly on the OpenEmbedded build system
       side, and its contents will not interfere with the build), then
       you can set the variable in your ``local.conf`` or custom distro
-      configuration file. You can then "whitelist" the variable through
-      to the SDK by adding the following::
+      configuration file. You can then pass the variable to the SDK by
+      adding the following::
 
          SDK_LOCAL_CONF_WHITELIST = "SSTATE_MIRRORS"
 
diff --git a/poky/documentation/sdk-manual/extensible.rst b/poky/documentation/sdk-manual/extensible.rst
index 8ef44e3..c5970f7 100644
--- a/poky/documentation/sdk-manual/extensible.rst
+++ b/poky/documentation/sdk-manual/extensible.rst
@@ -315,7 +315,7 @@
       $ devtool edit-recipe recipe
 
    From within the editor, you
-   can make modifications to the recipe that take affect when you build
+   can make modifications to the recipe that take effect when you build
    it later.
 
 3. *Build the Recipe or Rebuild the Image*: The next step you take
diff --git a/poky/documentation/sphinx-static/switchers.js b/poky/documentation/sphinx-static/switchers.js
index 6038dbb..885104c 100644
--- a/poky/documentation/sphinx-static/switchers.js
+++ b/poky/documentation/sphinx-static/switchers.js
@@ -1,12 +1,20 @@
+/*
+NOTE FOR RELEASE MAINTAINERS:
+This file only needs updating in the development release ("master" branch)
+When documentation for stable releases is built,
+the latest version from "master" is used
+by https://git.yoctoproject.org/yocto-autobuilder-helper/tree/scripts/run-docs-build
+*/
+
 (function() {
   'use strict';
 
   var all_versions = {
     'dev': 'dev (3.5)',
-    '3.4': '3.4',
-    '3.3.3': '3.3.3',
+    '3.4.1': '3.4.1',
+    '3.3.4': '3.3.4',
     '3.2.4': '3.2.4',
-    '3.1.11': '3.1.11',
+    '3.1.13': '3.1.13',
     '3.0.4': '3.0.4',
     '2.7.4': '2.7.4',
   };
diff --git a/poky/documentation/standards.md b/poky/documentation/standards.md
new file mode 100644
index 0000000..a2274f6
--- /dev/null
+++ b/poky/documentation/standards.md
@@ -0,0 +1,103 @@
+# Standards for contributing to Yocto Project documentation
+
+This document attemps to standardize the way the Yocto Project
+documentation is created.
+
+It is currently a work in progress.
+
+## Text standards
+
+This section has not been filled yet
+
+## ReStructured Text Syntax standards
+
+This section has not been filled yet
+
+## Adding screenshots
+
+The preferred format for adding screenshots is
+[Portable Network Graphics (PNG)](https://en.wikipedia.org/wiki/Portable_Network_Graphics).
+Compared to the JPEG format, PNG is lossless and compresses screenshots better.
+
+Screenshots are stored in a `figures/` subdirectory.
+
+To include a screenshot in PNG format:
+
+    .. image:: figures/user-configuration.png
+       :align: center
+
+Depending on the size of the image, you may also shrink it
+to prevent it from filling the whole page width:
+
+       :scale: 50%
+
+For some types of screenshots, for example showing
+programs displaying photographs or playing video, the JPEG
+format may be more appropriate, because it is better at
+compressing real-life images:
+
+    .. image:: figures/vlc.jpg
+       :align: center
+       :scale: 75%
+
+## Adding new diagrams
+
+New diagrams should be added in
+[Scalable Vector Graphics (SVG) format](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics).
+Thanks to this, diagrams render nicely at any zoom level on generated documentation,
+instead of being pixelated.
+
+The recommended tool for creating SVG diagrams for the Yocto Project
+documentation is [Inkscape](https://inkscape.org/).
+
+### Colors
+
+The "GNOME HIG Colors" palette is used in our diagrams
+(get it from <https://gitlab.gnome.org/Teams/Design/HIG-app-icons/-/blob/master/GNOME%20HIG.gpl>
+if you don't get it from Inkscape).
+
+It's easier to use than the default one in Inkscape,
+as it has fewer but sufficient colors. This is a way
+to guarantee that we use consistent colors across the
+diagrams used in our documentation.
+
+See <https://inkscape-manuals.readthedocs.io/en/latest/palette.html>
+for details about working with color palettes in Inkscape.
+
+### Template diagram
+
+The `template/` directory contains a `template.svg` file
+to make it easier to create diagrams.
+In particular, you can use it to copy standard text, shapes,
+arrows and clipart to the new SVG document.
+
+### Fonts
+
+The recommended font for description text and labels is `Nimbus Roman`, size 10.
+Labels are in bold.
+
+`template.svg` contains ready-to-copy labels.
+
+### Text boxes
+
+Text boxes are rectangle boxes, with rounded corners, and contain centered text
+or labels. Their stroke color is slightly darker than their fill color.
+
+See `template.svg` for example boxes with different colors, which are ready
+to be reused.
+
+### Clipart
+
+Only [Public Domain](https://en.wikipedia.org/wiki/Public_domain)
+files are accepted for clipart. [Openclipart](https://openclipart.org)
+is the best known and recommended source of such clipart.
+
+It is also required to state the source of each new clipart in the commit log,
+to make it possible to check its origin.
+
+For the sake of consistency across diagrams, we recommend
+to use existing cliparts, whenever possible.
+
+If cliparts in `template.svg` do not satisfy your requirements, you can
+add to said file new cliparts, from e.g. Openclipart. Newly added
+cliparts shall stay consistent in style and color with existing ones.
diff --git a/poky/documentation/template/template.svg b/poky/documentation/template/template.svg
new file mode 100644
index 0000000..43043e3
--- /dev/null
+++ b/poky/documentation/template/template.svg
@@ -0,0 +1,1160 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   version="1.1"
+   id="svg2"
+   width="607.31354"
+   height="968.48285"
+   viewBox="0 0 607.31353 968.48285"
+   sodipodi:docname="template.svg"
+   inkscape:version="1.1 (ce6663b3b7, 2021-05-25)"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   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="marker4286"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <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="path4284" />
+    </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>
+    <linearGradient
+       id="linearGradient11801"
+       y2="511.97"
+       spreadMethod="reflect"
+       gradientUnits="userSpaceOnUse"
+       x2="286.63"
+       gradientTransform="matrix(4.9627,0,0,4.9627,278.63,-3355.4)"
+       y1="511.97"
+       x1="269.97"
+       inkscape:collect="always">
+      <stop
+         id="stop5497-7"
+         style="stop-color:#497bb3"
+         offset="0" />
+      <stop
+         id="stop5501-5"
+         style="stop-color:#a5c4e6"
+         offset=".20485" />
+      <stop
+         id="stop5499-8"
+         style="stop-color:#3b5d8b"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11803"
+       y2="527.34003"
+       gradientUnits="userSpaceOnUse"
+       x2="286.63"
+       y1="518.56"
+       x1="282.35999"
+       inkscape:collect="always">
+      <stop
+         id="stop5468-4"
+         style="stop-color:#a5c4e6"
+         offset="0" />
+      <stop
+         id="stop5470-8"
+         style="stop-color:#497bb3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11805"
+       y2="520.33002"
+       xlink:href="#linearGradient6035-4"
+       spreadMethod="reflect"
+       gradientUnits="userSpaceOnUse"
+       x2="327.78"
+       gradientTransform="matrix(4.1992,0,0,4.1992,407.33,-3062.9)"
+       y1="522.60999"
+       x1="308.5"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient11807"
+       y2="520.33002"
+       xlink:href="#linearGradient6035-4"
+       spreadMethod="reflect"
+       gradientUnits="userSpaceOnUse"
+       x2="327.78"
+       gradientTransform="matrix(4.1992,0,0,4.1992,407.33,-3015.8)"
+       y1="522.60999"
+       x1="308.5"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient11809"
+       y2="520.33002"
+       xlink:href="#linearGradient6035-4"
+       spreadMethod="reflect"
+       gradientUnits="userSpaceOnUse"
+       x2="327.78"
+       gradientTransform="matrix(4.1992,0,0,4.1992,407.33,-2971.6)"
+       y1="522.60999"
+       x1="308.5"
+       inkscape:collect="always" />
+    <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>
+    <marker
+       style="overflow:visible"
+       id="marker4286-6"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <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="path4284-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="1848"
+     inkscape:window-height="983"
+     id="namedview4"
+     showgrid="false"
+     inkscape:zoom="1.0233281"
+     inkscape:cx="454.88832"
+     inkscape:cy="692.83742"
+     inkscape:window-x="1992"
+     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="82.778013"
+       originy="165.84269" />
+  </sodipodi:namedview>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Image"
+     id="g10"
+     transform="translate(82.778014,165.84268)">
+    <g
+       id="g3925"
+       transform="matrix(0.4122756,0,0,0.4122756,-156.60748,374.96076)"
+       style="stroke-width:2.42556">
+      <g
+         id="layer1-3-5-2"
+         inkscape:label="Capa 1"
+         transform="matrix(1.1196,0,0,1.1196,-122.82057,267.39056)"
+         style="stroke-width:2.42556">
+        <g
+           id="g10-5-2"
+           transform="matrix(0.0423,0,0,0.0423,319.39,59.128)"
+           class="Graphic"
+           style="stroke-width:2.42556">
+          <g
+             id="g12-4-2"
+             style="stroke-width:2.42556">
+            <g
+               id="g14-64-0"
+               style="fill:#c7c7c7;stroke-width:2.42556">
+              <path
+                 id="path16-1-5"
+                 inkscape:connector-curvature="0"
+                 d="m 5903,2361 c 50,82 34,3995 -31,4149 -51,122 -1703,1495 -1789,1531 -1117,-7 -1870,-414 -1995,-629 -48,-270 -7,-4433 38,-4520 40,-76 2153,-833 2227,-851 67,-15 1493,229 1550,320 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g18-6-5"
+               style="fill:#000000;stroke-width:2.42556">
+              <path
+                 id="path20-8-2"
+                 inkscape:connector-curvature="0"
+                 d="m 5881,2374 2,-1 -2,2 c 0,-1 -1,-1 -1,-1 v -2 l 7,-3 -2,2 -5,1 5,-1 -2,2 z m 2,-1 2,-2 2,-2 5,-2 -5,4 5,-4 h 1 l -6,3 v 1 -1 z m 10,-6 h -1 1 -1 l 11,-6 -10,5 z m 11,-4 -11,4 v -1 z m 20,-15 c -2,-3 -4,-6 -7,-9 -2,-3 -5,-5 -8,-7 -5,-4 -12,-8 -20,-12 -7,-4 -15,-7 -24,-11 -9,-4 -19,-7 -30,-11 -21,-8 -47,-16 -75,-24 -29,-8 -61,-16 -95,-25 -136,-34 -313,-72 -494,-106 -181,-35 -364,-66 -511,-90 -73,-11 -138,-21 -189,-27 -25,-3 -47,-6 -65,-8 -9,-1 -17,-1 -24,-2 -4,0 -7,0 -10,-1 h -9 c -3,0 -5,0 -7,1 h -4 c -2,0 -3,0 -4,1 -2,0 -4,1 -7,2 -2,0 -5,1 -8,2 -3,1 -7,2 -11,3 -4,2 -8,3 -13,5 -10,3 -22,7 -35,12 -13,4 -28,9 -44,15 -33,11 -71,25 -115,40 -43,15 -91,32 -144,51 -209,75 -481,173 -753,274 -271,101 -542,203 -747,285 -51,21 -98,40 -140,57 -43,18 -80,34 -111,48 -16,7 -30,14 -42,20 -13,6 -24,12 -33,17 -5,2 -9,5 -13,7 -4,3 -8,5 -10,7 -4,3 -7,5 -9,7 -5,4 -7,8 -9,11 -1,2 -2,5 -4,9 0,3 -1,6 -1,9 -1,3 -1,7 -2,11 -1,4 -1,8 -2,13 0,9 -1,20 -3,32 0,13 -1,27 -2,42 -2,31 -4,69 -6,111 -2,43 -4,91 -5,144 -7,213 -14,504 -19,835 -11,662 -19,1482 -19,2144 0,308 2,583 5,791 1,52 2,100 3,143 1,43 3,82 4,115 1,34 3,62 4,85 1,12 2,22 3,30 1,5 1,9 1,13 1,3 2,7 2,10 l 1,4 2,4 c 9,15 20,30 33,46 14,16 30,32 48,49 35,32 80,66 135,101 107,70 249,142 423,207 173,65 377,124 608,167 231,43 489,70 769,72 h 6 l 5,-2 8,-4 c 2,-2 5,-3 8,-6 3,-2 6,-4 10,-6 l 12,-9 c 9,-6 19,-13 30,-22 11,-8 23,-17 37,-28 27,-20 58,-45 93,-73 35,-28 74,-59 116,-93 169,-136 385,-315 600,-497 215,-181 430,-366 593,-512 41,-37 79,-71 113,-103 34,-31 64,-59 89,-84 13,-13 24,-24 34,-35 11,-11 20,-20 28,-29 8,-9 14,-17 19,-23 3,-4 5,-8 7,-10 2,-4 4,-8 6,-11 0,-2 1,-5 2,-8 1,-3 2,-5 3,-9 1,-6 2,-13 3,-22 2,-8 3,-17 4,-28 1,-11 2,-22 3,-35 2,-25 4,-55 7,-89 1,-34 3,-72 5,-113 8,-166 14,-391 19,-648 10,-516 16,-1164 16,-1743 0,-389 -3,-747 -8,-1012 -1,-66 -2,-127 -4,-181 -1,-53 -3,-100 -5,-139 -1,-20 -2,-38 -3,-53 -1,-16 -2,-30 -3,-41 -1,-6 -1,-11 -2,-16 -1,-5 -1,-10 -2,-13 -1,-4 -1,-8 -2,-11 -1,-2 -1,-4 -2,-5 -1,-3 -2,-5 -3,-6 z m -37,21 12,-12 z m -6,9 c 1,3 1,7 2,11 0,4 1,9 1,15 1,11 3,24 4,39 0,15 1,33 2,52 2,39 4,86 6,139 1,53 2,114 4,180 5,264 7,622 7,1011 0,578 -5,1227 -15,1742 -6,257 -12,481 -19,646 -2,42 -4,79 -6,113 -2,33 -4,63 -6,88 -1,12 -2,24 -4,34 0,10 -2,18 -3,26 -1,7 -2,14 -3,18 0,3 -1,4 -1,6 0,1 -1,2 -1,2 0,1 -1,2 -2,4 -1,1 -3,4 -4,6 -5,6 -10,13 -17,21 -7,7 -16,17 -26,27 l -34,34 c -25,24 -54,52 -88,83 -33,31 -71,66 -112,102 -163,146 -377,330 -592,512 -215,181 -431,360 -598,495 -42,34 -81,65 -116,93 -35,28 -66,52 -93,73 -13,10 -26,20 -37,28 -10,8 -20,15 -28,21 -4,3 -8,6 -12,8 -3,2 -6,4 -8,6 -2,1 -4,2 -5,3 -276,-2 -528,-29 -755,-71 -228,-42 -429,-100 -600,-164 -169,-64 -308,-134 -413,-202 -51,-33 -94,-66 -128,-97 -17,-15 -31,-30 -43,-44 -10,-12 -19,-23 -26,-34 v -4 c -1,-3 -1,-7 -1,-11 -1,-8 -2,-18 -3,-28 -2,-23 -3,-51 -5,-84 -1,-33 -2,-71 -3,-115 -1,-42 -2,-90 -3,-142 -3,-208 -5,-482 -5,-790 0,-662 7,-1481 18,-2143 6,-330 12,-622 19,-834 2,-53 4,-101 6,-144 2,-42 3,-79 5,-109 1,-16 2,-30 3,-42 1,-12 2,-22 3,-31 0,-4 1,-8 1,-11 1,-4 1,-6 2,-9 v -2 c 0,-1 1,-1 2,-2 2,-1 4,-3 7,-5 4,-1 7,-4 11,-6 9,-5 19,-10 31,-16 12,-6 26,-12 41,-19 31,-14 67,-29 109,-47 42,-17 89,-37 140,-57 205,-82 475,-184 746,-284 271,-101 543,-200 752,-274 52,-19 101,-36 144,-51 43,-16 82,-29 114,-40 17,-6 31,-11 44,-16 13,-4 25,-8 35,-11 4,-2 9,-3 13,-4 4,-2 7,-3 10,-4 3,-1 5,-1 8,-2 l 3,-1 -2,-8 1,8 h 1 4 7 c 2,0 5,0 8,1 7,0 14,1 23,2 17,1 39,4 64,7 50,6 114,16 187,27 147,23 329,55 509,89 180,35 357,72 492,106 34,9 65,17 92,25 28,8 53,15 73,23 10,3 20,7 28,10 7,3 15,6 20,9 5,3 10,5 13,8 0,0 1,0 1,1 0,1 1,3 1,4 z M 4075,8017 c 1,0 1,-1 2,-1 h 6 v 14 l -8,-13 8,13 v 11 l -10,-23 c 0,0 1,-1 2,-1 z M 2110,7400 c 1,1 1,3 2,4 1,1 1,3 1,4 l -25,4 21,-11 1,-1 -1,1 1,-1 h 2 z m 39,-4498 v 3 c -1,0 -1,1 -2,1 l -5,-6 -17,-4 17,4 -2,-1 4,2 z m -7,-2 2,1 z m -16,-8 14,7 z m 14,7 -10,-11 z m 2217,-841 -2,-17 z m -4,-17 4,17 v 1 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g22-8-9"
+               style="fill:#ffffff;fill-opacity:0.54118;stroke:#ffffff;stroke-width:2.42556;stroke-opacity:0.54118">
+              <path
+                 id="path24-1-0"
+                 inkscape:connector-curvature="0"
+                 d="m 5822,2442 -52,22 -52,23 -52,23 -53,25 -53,25 -53,26 -53,26 -54,27 -54,27 -54,28 -55,28 -54,29 -55,29 -55,29 -111,60 -112,60 -112,60 -113,61 -114,60 -114,60 -114,59 -57,29 -57,29 -58,28 -57,28 -27,-6 -28,-7 -56,-13 -58,-14 -59,-13 -60,-14 -61,-14 -61,-14 -63,-14 -62,-14 -63,-15 -127,-28 -127,-28 -64,-14 -63,-14 -62,-13 -62,-13 -61,-13 -60,-13 -60,-13 -58,-12 -57,-12 -28,-5 -28,-6 -27,-5 -27,-6 -27,-5 -26,-5 -26,-5 -25,-6 -25,-4 -24,-5 -24,-5 -24,-4 -23,-4 -22,-5 -22,-4 -21,-3 -21,-4 -20,-4 52,16 52,16 53,16 54,15 55,16 55,15 57,16 56,15 57,16 58,15 116,31 117,30 118,31 118,31 117,30 116,31 58,15 57,16 57,15 56,16 55,15 55,16 54,15 53,16 52,16 52,16 1,60 2,61 1,61 1,63 1,64 2,64 1,65 1,66 1,67 1,67 1,68 v 69 l 1,69 1,70 1,70 v 71 l 1,71 v 72 l 1,72 1,73 1,146 1,147 v 149 l 1,149 2,299 1,300 1,149 1,148 1,147 1,146 1,73 v 72 l 1,72 1,71 v 71 l 1,71 1,69 1,70 v 68 l 1,68 1,67 1,67 1,66 1,65 1,65 2,63 1,63 1,62 2,61 1,60 1,-61 1,-61 v -63 l 1,-63 1,-64 1,-65 1,-66 1,-67 1,-67 1,-68 1,-69 2,-69 1,-70 1,-71 1,-71 1,-72 1,-72 2,-73 1,-73 1,-73 3,-148 3,-149 2,-151 3,-151 6,-303 5,-303 3,-151 3,-150 2,-149 3,-149 1,-73 2,-73 1,-73 1,-72 1,-71 1,-72 1,-70 2,-70 1,-70 1,-68 1,-68 1,-68 1,-66 1,-66 1,-65 1,-64 1,-64 v -62 l 1,-62 1,-60 110,-59 109,-59 109,-57 109,-58 108,-57 107,-58 107,-57 107,-58 105,-58 105,-58 104,-60 103,-60 51,-30 50,-31 51,-31 50,-31 50,-31 50,-32 49,-32 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g28-1-8"
+               style="fill:none;stroke-width:2.42556">
+              <path
+                 id="path30-7-3"
+                 inkscape:connector-curvature="0"
+                 d="m 5822,2442 c -549,232 -1156,606 -1768,901 -580,-138 -1417,-322 -1839,-396 543,169 1257,327 1800,496 32,1271 16,3196 48,4467 16,-1282 59,-3238 75,-4519 586,-317 1161,-601 1684,-949 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g32-7-8"
+               style="fill:#000000;fill-opacity:0.16078;stroke:#ffffff;stroke-width:2.42556;stroke-opacity:0.16078">
+              <path
+                 id="path34-1-0"
+                 inkscape:connector-curvature="0"
+                 d="m 2420,6628 10,14 10,13 11,13 12,13 12,12 12,12 14,12 13,12 14,12 15,11 15,11 16,11 15,11 17,10 16,10 17,11 18,9 18,10 18,9 18,8 19,9 19,8 19,8 19,8 40,15 40,14 41,12 41,11 42,10 41,9 42,8 41,6 41,6 41,3 21,2 20,1 19,1 h 20 20 19 l 19,-1 19,-1 18,-1 19,-1 17,-2 18,-3 17,-2 17,-3 17,-4 16,-4 15,-4 15,-4 15,-5 15,-5 -2,-1 h -1 l -5,-2 -6,-1 -7,-2 -8,-2 -10,-3 -10,-3 -12,-3 -13,-4 -14,-3 -15,-4 -16,-5 -16,-4 -18,-5 -18,-5 -19,-5 -20,-6 -20,-5 -21,-6 -22,-6 -22,-6 -22,-6 -23,-7 -24,-6 -48,-13 -49,-14 -50,-14 -50,-13 -50,-15 -50,-13 -49,-14 -49,-13 -23,-7 -24,-6 -23,-7 -22,-6 -22,-6 -21,-6 -21,-6 -20,-5 -19,-6 -19,-5 -18,-5 -17,-5 -16,-4 -15,-5 -15,-4 -13,-4 -12,-3 -12,-3 -10,-3 -9,-3 -7,-2 -7,-2 -5,-2 h -2 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g38-5-0"
+               style="fill:none;stroke-width:2.42556">
+              <path
+                 id="path40-7-9"
+                 inkscape:connector-curvature="0"
+                 d="m 2420,6628 c 201,289 833,431 1133,315 -53,-14 -1066,-293 -1133,-315 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g42-6-1"
+               style="fill:#ffffff;fill-opacity:0.38824;stroke:#ffffff;stroke-width:2.42556;stroke-opacity:0.38824">
+              <path
+                 id="path44-7-9"
+                 inkscape:connector-curvature="0"
+                 d="m 3454,6093 -936,-361 -9,4 -8,4 -8,4 -6,5 -6,6 -6,6 -5,7 -5,6 -4,7 -4,7 -3,7 -3,8 -3,8 -2,7 -3,15 -2,15 -2,14 v 6 7 5 6 5 4 4 l 1,4 v 2 2 1 1 l 146,51 1,1 1,1 1,1 1,2 2,2 1,3 3,3 2,3 3,4 3,4 3,4 4,5 4,4 4,6 5,4 10,12 10,11 13,12 13,12 14,13 15,12 17,13 17,12 19,12 19,11 21,11 22,10 11,4 11,5 12,4 12,4 13,3 12,3 13,3 13,3 13,2 13,1 14,2 14,1 h 14 15 15 l 15,-1 15,-2 15,-2 16,-2 16,-3 16,-4 16,-4 17,-5 17,-6 h 1 l 2,1 h 3 l 6,1 6,1 7,1 8,1 9,1 10,1 11,1 12,1 12,1 h 12 l 13,1 h 26 l 14,-1 13,-1 14,-1 13,-2 13,-2 12,-3 12,-3 12,-3 10,-5 11,-5 9,-6 8,-6 8,-8 3,-4 3,-4 3,-4 2,-4 2,-5 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g48-57-2"
+               style="fill:none;stroke-width:2.42556">
+              <path
+                 id="path50-0-5"
+                 inkscape:connector-curvature="0"
+                 d="m 3454,6093 -936,-361 c -97,34 -78,177 -78,177 l 146,51 c 0,0 204,319 566,194 0,0 269,48 302,-61 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g52-5-4"
+               style="fill:#606060;stroke-width:2.42556">
+              <path
+                 id="path54-7-4"
+                 inkscape:connector-curvature="0"
+                 d="m 3446,5971 c -311,-81 -622,-161 -933,-242 -12,44 -13,107 6,140 47,23 142,41 189,64 136,131 255,142 472,124 84,17 168,31 251,48 26,-51 33,-72 15,-134 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g56-7-9"
+               style="fill:none;stroke-width:2.42556">
+              <path
+                 id="path58-8-9"
+                 inkscape:connector-curvature="0"
+                 d="m 3446,5971 c -311,-81 -622,-161 -933,-242 -12,44 -13,107 6,140 47,23 142,41 189,64 136,131 255,142 472,124 84,17 168,31 251,48 26,-51 33,-72 15,-134 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g60-5-3"
+               style="fill:#ffffff;fill-opacity:0.4;stroke:#ffffff;stroke-width:2.42556;stroke-opacity:0.4">
+              <path
+                 id="path62-2-6"
+                 inkscape:connector-curvature="0"
+                 d="m 5856,2414 -1813,1017 7,4549 1775,-1494 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g66-2-5"
+               style="fill:none;stroke-width:2.42556">
+              <path
+                 id="path68-9-0"
+                 inkscape:connector-curvature="0"
+                 d="m 5856,2414 -1813,1017 7,4549 1775,-1494 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g70-9-2"
+               style="fill:#000000;fill-opacity:0.16078;stroke:#ffffff;stroke-width:2.42556;stroke-opacity:0.16078">
+              <path
+                 id="path72-9-9"
+                 inkscape:connector-curvature="0"
+                 d="m 2525,6916 10,13 11,12 10,13 11,11 11,12 11,11 12,11 12,10 12,10 12,10 13,10 12,9 13,9 13,8 27,17 28,15 28,14 28,13 29,11 29,11 30,9 30,8 29,8 30,6 30,5 30,4 30,3 30,2 29,2 h 29 l 29,-1 27,-2 28,-2 27,-3 26,-5 25,-5 24,-6 24,-6 22,-8 -2,-1 h -4 l -4,-2 -5,-1 -6,-2 -8,-2 -8,-2 -9,-2 -10,-3 -10,-3 -11,-3 -12,-3 -13,-4 -13,-3 -14,-4 -15,-4 -15,-4 -15,-5 -16,-4 -16,-5 -17,-4 -18,-5 -35,-10 -36,-10 -38,-10 -38,-10 -38,-11 -76,-21 -37,-10 -37,-11 -36,-10 -17,-4 -17,-5 -17,-5 -16,-4 -16,-5 -15,-4 -15,-4 -14,-4 -14,-4 -13,-4 -12,-3 -11,-3 -12,-3 -10,-3 -9,-3 -8,-2 -8,-3 -7,-1 -6,-2 -5,-2 -4,-1 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g76-2-3"
+               style="fill:none;stroke-width:2.42556">
+              <path
+                 id="path78-7-5"
+                 inkscape:connector-curvature="0"
+                 d="m 2525,6916 c 209,276 627,323 861,239 -39,-10 -810,-222 -861,-239 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g80-6-1"
+               style="fill:#000000;fill-opacity:0.16078;stroke:#ffffff;stroke-width:2.42556;stroke-opacity:0.16078">
+              <path
+                 id="path82-0-7"
+                 inkscape:connector-curvature="0"
+                 d="m 2680,7199 12,15 12,14 13,14 14,12 14,13 14,11 15,11 16,11 15,9 17,9 16,9 17,7 18,7 17,7 18,5 18,5 18,5 19,3 18,4 19,2 18,2 19,1 h 19 19 l 18,-1 19,-2 18,-2 19,-3 18,-4 18,-4 18,-5 17,-6 h -1 l -2,-1 h -3 l -4,-1 -3,-1 -5,-2 -5,-1 -6,-2 -6,-1 -6,-2 -7,-2 -8,-2 -8,-2 -8,-3 -9,-2 -9,-2 -19,-6 -20,-5 -22,-6 -22,-6 -23,-6 -23,-7 -48,-13 -48,-13 -23,-7 -23,-6 -23,-6 -21,-6 -21,-6 -19,-6 -9,-2 -9,-3 -9,-2 -8,-2 -8,-2 -7,-2 -7,-2 -6,-2 -6,-2 -5,-2 -5,-1 -5,-1 -3,-1 -3,-1 -3,-1 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g86-0-3"
+               style="fill:none;stroke-width:2.42556">
+              <path
+                 id="path88-3-1"
+                 inkscape:connector-curvature="0"
+                 d="m 2680,7199 c 121,163 355,213 540,149 -25,-6 -507,-139 -540,-149 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g90-5-4"
+               style="fill:#fcfcfc;fill-opacity:0.43922;stroke:#ffffff;stroke-width:2.42556;stroke-opacity:0.43922">
+              <path
+                 id="path92-9-6"
+                 inkscape:connector-curvature="0"
+                 d="m 2356,3259 -92,13 -17,2173 1425,399 35,-116 -1369,-365 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g96-7-4"
+               style="fill:none;stroke-width:2.42556">
+              <path
+                 id="path98-7-2"
+                 inkscape:connector-curvature="0"
+                 d="m 2356,3259 -92,13 -17,2173 1425,399 35,-116 -1369,-365 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g100-1-2"
+               style="fill:#000000;fill-opacity:0.23137;stroke:#ffffff;stroke-width:2.42556;stroke-opacity:0.23137">
+              <path
+                 id="path102-64-6"
+                 inkscape:connector-curvature="0"
+                 d="m 3700,4065 -2,61 -1340,-386 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g106-1-1"
+               style="fill:#000000;fill-opacity:0.23137;stroke:#ffffff;stroke-width:2.42556;stroke-opacity:0.23137">
+              <path
+                 id="path108-3-2"
+                 inkscape:connector-curvature="0"
+                 d="m 3720,4507 -3,61 -1339,-386 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g112-9-8"
+               style="fill:#000000;fill-opacity:0.23137;stroke:#ffffff;stroke-width:2.42556;stroke-opacity:0.23137">
+              <path
+                 id="path114-09-9"
+                 inkscape:connector-curvature="0"
+                 d="m 3700,4916 -2,61 -1340,-386 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g118-8-8"
+               style="fill:#000000;fill-opacity:0.23137;stroke:#ffffff;stroke-width:2.42556;stroke-opacity:0.23137">
+              <path
+                 id="path120-3-8"
+                 inkscape:connector-curvature="0"
+                 d="m 3700,5318 -2,61 -1340,-387 z"
+                 style="stroke-width:2.42556" />
+            </g>
+            <g
+               id="g124-5-6"
+               style="fill:#9e9e9e;stroke-width:2.42556">
+              <path
+                 id="path126-3-8"
+                 inkscape:connector-curvature="0"
+                 d="m 2361,3309 1332,333 -11,2197 h 11 11 l 11,-2205 v -9 l -8,-2 -1341,-335 -2,11 z m 1340,335 -8,-2 v -8 h 11 z"
+                 style="stroke-width:2.42556" />
+            </g>
+          </g>
+        </g>
+      </g>
+      <g
+         id="g16724-3"
+         transform="matrix(0.52218647,0,0,0.42933357,-400.52138,1028.8214)"
+         style="stroke-width:2.42556">
+        <path
+           id="path5488-8"
+           d="m 1618.4,-890.85 v 126.36 h 0.5249 c -0.3385,1.0131 -0.5249,1.975 -0.5249,3.0182 0,15.228 36.989,27.557 82.672,27.557 45.683,0 82.672,-12.33 82.672,-27.557 0,-1.0447 -0.1856,-2.0037 -0.5249,-3.0182 h 0.5249 v -126.36 h -165.34 z"
+           sodipodi:nodetypes="cccssscccc"
+           style="fill:url(#linearGradient11801);stroke-width:2.42556"
+           inkscape:connector-curvature="0" />
+        <ellipse
+           id="path5460-3"
+           style="fill:url(#linearGradient11803);stroke-width:2.42556"
+           transform="matrix(4.9627,0,0,4.9627,278.63,-3481.3)"
+           cx="286.6308"
+           cy="521.77954"
+           rx="16.667517"
+           ry="5.5558391" />
+        <path
+           id="path6026-3"
+           d="m 1618.3,-800.18 c 0.6187,15.05 37.507,27.164 82.804,27.164 45.168,0 81.851,-12.042 82.672,-27.033 -14.494,12.328 -46.02,20.865 -82.672,20.865 -36.727,0 -68.35,-8.6271 -82.804,-20.996 z"
+           style="fill:#3b5d8b;stroke-width:2.42556"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path6030-3"
+           d="m 1618.3,-891.51 c 0.6187,15.05 37.507,27.164 82.804,27.164 45.168,0 81.851,-12.042 82.672,-27.033 -0.9058,0.77052 -1.8509,1.4911 -2.8869,2.2308 -0.038,0.0491 -0.091,0.0823 -0.131,0.13101 -9.6253,11.663 -41.587,20.209 -79.654,20.209 -38.306,0 -70.487,-8.6955 -79.917,-20.471 -0.1046,-0.0752 -0.1596,-0.18729 -0.2625,-0.26245 -0.9185,-0.67058 -1.8123,-1.2733 -2.6245,-1.9684 z"
+           style="fill:url(#linearGradient11805);stroke-width:2.42556"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path6022-8"
+           style="fill:#3b5d8b;stroke-width:2.42556"
+           inkscape:connector-curvature="0"
+           d="m 1618.3,-844.36 c 0.6187,15.05 37.507,27.164 82.804,27.164 45.168,0 81.851,-12.042 82.672,-27.033 -14.494,12.328 -46.02,20.865 -82.672,20.865 -36.727,0 -68.35,-8.6271 -82.804,-20.996 z" />
+        <path
+           id="path6043-0"
+           d="m 1618.3,-844.36 c 0.6187,15.05 37.507,27.164 82.804,27.164 45.168,0 81.851,-12.042 82.672,-27.033 -0.2087,0.17721 -0.4427,0.3519 -0.6561,0.52491 -5.2161,13.55 -39.937,24.014 -82.016,24.014 -42.466,0 -77.55,-10.545 -82.279,-24.277 -0.1684,-0.13312 -0.3624,-0.2549 -0.5249,-0.39347 z"
+           style="fill:url(#linearGradient11807);stroke-width:2.42556"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path6054-4"
+           style="fill:url(#linearGradient11809);stroke-width:2.42556"
+           inkscape:connector-curvature="0"
+           d="m 1618.3,-800.18 c 0.6187,15.05 37.507,27.164 82.804,27.164 45.168,0 81.851,-12.042 82.672,-27.033 -0.2087,0.17721 -0.4427,0.3519 -0.6561,0.52491 -5.2161,13.55 -39.937,24.014 -82.016,24.014 -42.466,0 -77.55,-10.545 -82.279,-24.277 -0.1684,-0.13312 -0.3624,-0.2549 -0.5249,-0.39347 z" />
+        <path
+           id="path6060-7"
+           d="m 1618.8,-754.64 c 4.7284,13.732 39.813,24.277 82.279,24.277 42.079,0 76.8,-10.464 82.016,-24.014 -14.766,12.043 -45.892,20.34 -82.016,20.34 -36.314,0 -67.608,-8.4562 -82.279,-20.602 z"
+           style="fill:#3b5d8b;stroke-width:2.42556"
+           inkscape:connector-curvature="0" />
+      </g>
+    </g>
+    <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="-40.600285"
+       y="693.29376"
+       id="text1185"><tspan
+         sodipodi:role="line"
+         id="tspan1183"
+         x="-40.600285"
+         y="693.29376"
+         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';stroke:none">Server / computer</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="-43.34169"
+       y="769.37323"
+       id="text1185-2"><tspan
+         sodipodi:role="line"
+         id="tspan1183-6"
+         x="-43.34169"
+         y="769.37323"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke:none">Note: Public domain graphics from https://openclipart.org/</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="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:#deddda;fill-opacity:1;fill-rule:evenodd;stroke:#9a9996;stroke-width:2;stroke-opacity:1"
+       id="rect917-0"
+       width="120.00001"
+       height="69.017166"
+       x="240"
+       y="120.98283"
+       ry="3.4599047" />
+    <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="301.85687"
+       y="147.99857"
+       id="text1185-3-55"><tspan
+         sodipodi:role="line"
+         id="tspan1183-8-2"
+         x="301.85687"
+         y="147.99857"
+         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;stroke:none">Light 3</tspan><tspan
+         sodipodi:role="line"
+         x="303.70908"
+         y="165.99524"
+         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';stroke:none"
+         id="tspan957-2"><tspan
+   id="tspan65063"
+   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;stroke:none">box</tspan> </tspan></text>
+    <g
+       id="g1125-0"
+       transform="matrix(0.42240595,0,0,0.41654472,-55.833175,-195.15195)"
+       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>
+    <g
+       id="g72820">
+      <rect
+         style="fill:#99c1f1;fill-opacity:1;fill-rule:evenodd;stroke:#62a0ea;stroke-width:2;stroke-opacity:1"
+         id="rect917-2-4-5"
+         width="120"
+         height="69.017166"
+         x="100"
+         y="120.00001"
+         ry="3.4599047" />
+      <text
+         xml:space="preserve"
+         style="font-weight:bold;font-size:13.5687px;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="155.10774"
+         y="150.4942"
+         id="text1185-3-5-5-9"
+         transform="scale(1.0176559,0.98265042)"><tspan
+           sodipodi:role="line"
+           x="155.10774"
+           y="150.4942"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.5687px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;stroke:none;stroke-width:1px"
+           id="tspan957-6-5-9">Blue 1</tspan><tspan
+           sodipodi:role="line"
+           x="155.10774"
+           y="168.80861"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.5687px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;stroke:none;stroke-width:1px"
+           id="tspan60047">box</tspan></text>
+    </g>
+    <rect
+       style="fill:#ffbe6f;fill-opacity:1;fill-rule:evenodd;stroke:#ffa348;stroke-width:2;stroke-opacity:1"
+       id="rect917-2-9"
+       width="120.00001"
+       height="69.017166"
+       x="-40"
+       y="120.00001"
+       ry="3.4599047" />
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.5687px;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="20.119326"
+       y="149.15712"
+       id="text1185-3-5-5-9-4"
+       transform="scale(1.0176559,0.98265042)"><tspan
+         sodipodi:role="line"
+         x="20.119326"
+         y="149.15712"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.5687px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;stroke:none;stroke-width:1px"
+         id="tspan957-6-5-9-2">Orange 1</tspan><tspan
+         sodipodi:role="line"
+         x="20.119326"
+         y="167.47153"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.5687px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;stroke:none;stroke-width:1px"
+         id="tspan60047-2">box</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="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="-52.348656"
+       y="518.42615"
+       id="text1185-9-2"><tspan
+         sodipodi:role="line"
+         id="tspan1183-1-8"
+         x="-52.348656"
+         y="518.42615"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.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;stroke:none">Objets</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="-52.87841"
+       y="89.660812"
+       id="text1185-9-2-7"><tspan
+         sodipodi:role="line"
+         id="tspan1183-1-8-2"
+         x="-52.87841"
+         y="89.660812"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.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;stroke:none">Shapes</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;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="-52.994568"
+       y="-109.65781"
+       id="text1185-9-2-7-0"><tspan
+         sodipodi:role="line"
+         id="tspan1183-1-8-2-4"
+         x="-52.994568"
+         y="-109.65781"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.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;stroke:none">Logos</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="-51.052338"
+       y="248.86438"
+       id="text1185-9-2-7-3"><tspan
+         sodipodi:role="line"
+         id="tspan1183-1-8-2-8"
+         x="-51.052338"
+         y="248.86438"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.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;stroke:none">Arrows</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="-52.697285"
+       y="373.75641"
+       id="text1185-9-2-7-3-6"><tspan
+         sodipodi:role="line"
+         id="tspan1183-1-8-2-8-4"
+         x="-52.697285"
+         y="373.75641"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.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;stroke:none">Text</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker5285);marker-end:url(#marker5161)"
+       d="M -40,290.00001 H 70.803508"
+       id="path5151"
+       inkscape:connector-type="polyline"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffa348;fill-rule:evenodd;stroke:#ffa348;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Mstart-4);marker-end:url(#Arrow2Mend-4)"
+       d="M 99.19649,290.00001 H 210"
+       id="path5151-1"
+       inkscape:connector-type="polyline"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#c0bfbc;fill-rule:evenodd;stroke:#c0bfbc;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker5285);marker-end:url(#marker5161)"
+       d="M 379.19649,290.00001 H 490"
+       id="path5151-1-2"
+       inkscape:connector-type="polyline"
+       inkscape:connector-curvature="0" />
+    <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="-38.034531"
+       y="429.09885"
+       id="text1185-9-7"><tspan
+         sodipodi:role="line"
+         id="tspan1183-1-2"
+         x="-38.034531"
+         y="429.09885"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';stroke:none">Normal text</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="105.28938"
+       y="324.79022"
+       id="text1185-9-7-8"><tspan
+         sodipodi:role="line"
+         id="tspan1183-1-2-9"
+         x="105.28938"
+         y="324.79022"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';stroke:none">Orange 1 arrow</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="255.85823"
+       y="324.95401"
+       id="text1185-9-7-8-2"><tspan
+         sodipodi:role="line"
+         id="tspan1183-1-2-9-8"
+         x="255.85823"
+         y="324.95401"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';stroke:none">Blue 1 arrow</tspan></text>
+    <path
+       style="fill:#99c1f1;fill-rule:evenodd;stroke:#99c1f1;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4174-8);marker-end:url(#marker4286-6)"
+       d="M 239.19649,290.00001 H 350"
+       id="path5151-1-2-3"
+       inkscape:connector-type="polyline"
+       inkscape:connector-curvature="0" />
+    <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="395.33353"
+       y="324.16251"
+       id="text1185-9-7-8-2-8"><tspan
+         sodipodi:role="line"
+         id="tspan1183-1-2-9-8-3"
+         x="395.33353"
+         y="324.16251"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';stroke:none">Light 3 arrow</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="57.50481"
+       y="428.73474"
+       id="text1185-9-7-1"><tspan
+         sodipodi:role="line"
+         id="tspan1183-1-2-2"
+         x="57.50481"
+         y="428.73474"
+         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;stroke:none">Label text (bold)</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>
+  </g>
+  <style
+     type="text/css"
+     id="style1021"> .st0{fill:#4A97D2;} .st1{fill:#333333;} </style>
+</svg>
diff --git a/poky/documentation/test-manual/intro.rst b/poky/documentation/test-manual/intro.rst
index 101d283..4a3a97e 100644
--- a/poky/documentation/test-manual/intro.rst
+++ b/poky/documentation/test-manual/intro.rst
@@ -121,7 +121,7 @@
 
       $ bitbake image -c testsdkext
 
-   The tests utilize the ``testsdkext`` class and the ``do_testsdkext`` task.
+   The tests utilize the :ref:`testsdkext <ref-classes-testsdk>` class and the ``do_testsdkext`` task.
 
 -  *Feature Testing:* Various scenario-based tests are run through the
    :ref:`OpenEmbedded Self test (oe-selftest) <ref-manual/release-process:Testing and Quality Assurance>`. We test oe-selftest on each of the main distributions
diff --git a/poky/documentation/test-manual/reproducible-builds.rst b/poky/documentation/test-manual/reproducible-builds.rst
index 349cd19..5977366 100644
--- a/poky/documentation/test-manual/reproducible-builds.rst
+++ b/poky/documentation/test-manual/reproducible-builds.rst
@@ -33,10 +33,10 @@
 have been modified should change at the binary level. This would lead to much
 easier and clearer bounds on where validation is needed.
 
-This also gives an additional benefit to the project builds themselves, our hash
-equivalence for :ref:`Shared State <overview-manual/concepts:Shared State>`
-object reuse works much more effectively when the binary output remains the
-same.
+This also gives an additional benefit to the project builds themselves, our
+:ref:`overview-manual/concepts:Hash Equivalence` for
+:ref:`overview-manual/concepts:Shared State` object reuse works much more
+effectively when the binary output remains the same.
 
 .. note::
 
diff --git a/poky/documentation/what-i-wish-id-known.rst b/poky/documentation/what-i-wish-id-known.rst
index 143f9fb..dec5617 100644
--- a/poky/documentation/what-i-wish-id-known.rst
+++ b/poky/documentation/what-i-wish-id-known.rst
@@ -150,7 +150,7 @@
    need, which is advantageous because you are building for small devices when
    developing for embedded and IoT.
 
-#. **You will want to learn about and know what's packaged in rootfs.**
+#. **You will want to learn about and know what's packaged in the root filesystem.**
 
 #. **Create your own image recipe:**
    There are a number of ways to create your own image recipe.  We suggest you
diff --git a/poky/meta-poky/conf/distro/poky-tiny.conf b/poky/meta-poky/conf/distro/poky-tiny.conf
index 756c65a..b6c4eec 100644
--- a/poky/meta-poky/conf/distro/poky-tiny.conf
+++ b/poky/meta-poky/conf/distro/poky-tiny.conf
@@ -43,7 +43,7 @@
 # Distro config is evaluated after the machine config, so we have to explicitly
 # set the kernel provider to override a machine config.
 PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-tiny"
-PREFERRED_VERSION_linux-yocto-tiny ?= "5.14%"
+PREFERRED_VERSION_linux-yocto-tiny ?= "5.15%"
 
 # We can use packagegroup-core-boot, but in the future we may need a new packagegroup-core-tiny
 #POKY_DEFAULT_EXTRA_RDEPENDS += "packagegroup-core-boot"
diff --git a/poky/meta-poky/conf/distro/poky.conf b/poky/meta-poky/conf/distro/poky.conf
index b92784f..2dc3606 100644
--- a/poky/meta-poky/conf/distro/poky.conf
+++ b/poky/meta-poky/conf/distro/poky.conf
@@ -19,8 +19,8 @@
 
 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
 
-PREFERRED_VERSION_linux-yocto ?= "5.14%"
-PREFERRED_VERSION_linux-yocto-rt ?= "5.14%"
+PREFERRED_VERSION_linux-yocto ?= "5.15%"
+PREFERRED_VERSION_linux-yocto-rt ?= "5.15%"
 
 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDKMACHINE}-${IMAGE_BASENAME}-${TUNE_PKGARCH}-${MACHINE}"
 SDKPATHINSTALL = "/opt/${DISTRO}/${SDK_VERSION}"
diff --git a/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb b/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb
index 07b8327..8a27e3a 100644
--- a/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb
+++ b/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb
@@ -11,7 +11,7 @@
 PV = "0.1+git${SRCPV}"
 PR = "r2"
 
-SRC_URI = "git://git.yoctoproject.org/dbus-wait"
+SRC_URI = "git://git.yoctoproject.org/dbus-wait;branch=master"
 UPSTREAM_CHECK_COMMITS = "1"
 RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature"
 
diff --git a/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb.upgraded b/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb.upgraded
index 32ec4b1..fbe90d6 100644
--- a/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb.upgraded
+++ b/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb.upgraded
@@ -10,7 +10,7 @@
 SRCREV = "6cc6077a36fe2648a5f993fe7c16c9632f946517"
 PV = "0.1+git${SRCPV}"
 
-SRC_URI = "git://git.yoctoproject.org/dbus-wait"
+SRC_URI = "git://git.yoctoproject.org/dbus-wait;branch=master"
 UPSTREAM_CHECK_COMMITS = "1"
 RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature"
 
diff --git a/poky/meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb b/poky/meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb
index 9429564..cc5d7ea 100644
--- a/poky/meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb
+++ b/poky/meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb
@@ -5,5 +5,5 @@
 
 INHIBIT_DEFAULT_DEPS = "1"
 
-SRC_URI = "gitsm://git.yoctoproject.org/git-submodule-test"
+SRC_URI = "gitsm://git.yoctoproject.org/git-submodule-test;branch=master"
 SRCREV = "a2885dd7d25380d23627e7544b7bbb55014b16ee"
diff --git a/poky/meta-selftest/recipes-test/images/oe-selftest-image.bb b/poky/meta-selftest/recipes-test/images/oe-selftest-image.bb
index 5d4d10e..e295943 100644
--- a/poky/meta-selftest/recipes-test/images/oe-selftest-image.bb
+++ b/poky/meta-selftest/recipes-test/images/oe-selftest-image.bb
@@ -1,6 +1,7 @@
 SUMMARY = "An image used during oe-selftest tests"
 
-IMAGE_INSTALL = "packagegroup-core-boot dropbear"
+# libudev is needed for deploy mdadm via devtool
+IMAGE_INSTALL = "packagegroup-core-boot dropbear libudev"
 IMAGE_FEATURES = "debug-tweaks"
 
 IMAGE_LINGUAS = " "
diff --git a/poky/meta-selftest/recipes-test/overlayfs-user/overlayfs-user.bb b/poky/meta-selftest/recipes-test/overlayfs-user/overlayfs-user.bb
index 6040506..913a4d1 100644
--- a/poky/meta-selftest/recipes-test/overlayfs-user/overlayfs-user.bb
+++ b/poky/meta-selftest/recipes-test/overlayfs-user/overlayfs-user.bb
@@ -8,7 +8,7 @@
 inherit ${@bb.utils.contains("DISTRO_FEATURES", "overlayfs", "overlayfs", "", d)}
 include test_recipe.inc
 
-OVERLAYFS_WRITABLE_PATHS[mnt-overlay] = "/usr/share/my-application"
+OVERLAYFS_WRITABLE_PATHS[mnt-overlay] += "/usr/share/my-application"
 
 do_install() {
     install -d ${D}/usr/share/my-application
diff --git a/poky/meta-selftest/wic/overlayfs_etc.wks.in b/poky/meta-selftest/wic/overlayfs_etc.wks.in
new file mode 100644
index 0000000..1e1e583
--- /dev/null
+++ b/poky/meta-selftest/wic/overlayfs_etc.wks.in
@@ -0,0 +1,4 @@
+part /boot --active --source bootimg-biosplusefi --ondisk sda --sourceparams="loader=grub-efi" --align 1024
+part / --source rootfs --ondisk sda --fstype=ext4 --use-uuid --align 1024
+part --ondisk sda --fstype=ext4 --size=5 --align 1024
+bootloader --ptable gpt --timeout=1 --append="rootfstype=ext4 console=ttyS0,115200 console=tty0 ${OVERLAYFS_INIT_OPTION}"
diff --git a/poky/meta-skeleton/recipes-core/busybox/busybox_%.bbappend b/poky/meta-skeleton/recipes-core/busybox/busybox_%.bbappend
index 621c94f..3c936eb 100644
--- a/poky/meta-skeleton/recipes-core/busybox/busybox_%.bbappend
+++ b/poky/meta-skeleton/recipes-core/busybox/busybox_%.bbappend
@@ -8,6 +8,6 @@
 # http://www.yoctoproject.org/docs/current/kernel-dev/kernel-dev.html#changing-the-configuration
 FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
 
-SRC_URI:append:mydistro += " \
+SRC_URI:append:mydistro = " \
 	    file://no_rfkill.cfg \
            "
diff --git a/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf b/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf
index b3d960a..284559c 100644
--- a/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf
+++ b/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf
@@ -17,19 +17,21 @@
 IMAGE_FSTYPES += "tar.bz2 jffs2 wic wic.bmap"
 EXTRA_IMAGECMD:jffs2 = "-lnp "
 WKS_FILE ?= "beaglebone-yocto.wks"
-IMAGE_INSTALL:append = " kernel-devicetree kernel-image-zimage"
+MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "kernel-image kernel-devicetree"
 do_image_wic[depends] += "mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot virtual/bootloader:do_deploy"
 
 SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyO0 115200;ttyAMA0"
 SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
 
 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
-PREFERRED_VERSION_linux-yocto ?= "5.14%"
+PREFERRED_VERSION_linux-yocto ?= "5.15%"
 
 KERNEL_IMAGETYPE = "zImage"
 KERNEL_DEVICETREE = "am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb"
 KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
 
+PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot"
+
 SPL_BINARY = "MLO"
 UBOOT_SUFFIX = "img"
 UBOOT_MACHINE = "am335x_evm_defconfig"
diff --git a/poky/meta-yocto-bsp/conf/machine/edgerouter.conf b/poky/meta-yocto-bsp/conf/machine/edgerouter.conf
index 32be4b9..249864e 100644
--- a/poky/meta-yocto-bsp/conf/machine/edgerouter.conf
+++ b/poky/meta-yocto-bsp/conf/machine/edgerouter.conf
@@ -11,7 +11,7 @@
 KERNEL_IMAGE_STRIP_EXTRA_SECTIONS  = ".comment"
 
 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
-PREFERRED_VERSION_linux-yocto ?= "5.14%"
+PREFERRED_VERSION_linux-yocto ?= "5.15%"
 
 SERIAL_CONSOLES = "115200;ttyS0"
 USE_VT ?= "0"
diff --git a/poky/meta-yocto-bsp/conf/machine/include/genericx86-common.inc b/poky/meta-yocto-bsp/conf/machine/include/genericx86-common.inc
index 4651b37..8c5e552 100644
--- a/poky/meta-yocto-bsp/conf/machine/include/genericx86-common.inc
+++ b/poky/meta-yocto-bsp/conf/machine/include/genericx86-common.inc
@@ -2,7 +2,7 @@
 require conf/machine/include/x86/qemuboot-x86.inc
 MACHINE_FEATURES += "wifi efi pcbios"
 
-PREFERRED_VERSION_linux-yocto ?= "5.14%"
+PREFERRED_VERSION_linux-yocto ?= "5.15%"
 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
 PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
 XSERVER ?= "${XSERVER_X86_BASE} \
diff --git a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.10.bbappend b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.10.bbappend
index a7ef143..9928466 100644
--- a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.10.bbappend
+++ b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.10.bbappend
@@ -7,8 +7,8 @@
 KMACHINE:genericx86-64 ?= "common-pc-64"
 KMACHINE:beaglebone-yocto ?= "beaglebone"
 
-SRCREV_machine:genericx86 ?= "164ed895bc1e94722e80fe6496b176f6bb815cd4"
-SRCREV_machine:genericx86-64 ?= "164ed895bc1e94722e80fe6496b176f6bb815cd4"
+SRCREV_machine:genericx86 ?= "4f2bb635ea267e71f112fd11323c1d3a2f2b85d0"
+SRCREV_machine:genericx86-64 ?= "4f2bb635ea267e71f112fd11323c1d3a2f2b85d0"
 SRCREV_machine:edgerouter ?= "4ab94e777d8b41ee1ee4c279259e9733bc8049b1"
 SRCREV_machine:beaglebone-yocto ?= "941cc9c3849f96f7eaf109b1e35e05ba366aca56"
 
@@ -17,7 +17,7 @@
 COMPATIBLE_MACHINE:edgerouter = "edgerouter"
 COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto"
 
-LINUX_VERSION:genericx86 = "5.10.63"
-LINUX_VERSION:genericx86-64 = "5.10.63"
+LINUX_VERSION:genericx86 = "5.10.87"
+LINUX_VERSION:genericx86-64 = "5.10.87"
 LINUX_VERSION:edgerouter = "5.10.63"
 LINUX_VERSION:beaglebone-yocto = "5.10.63"
diff --git a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.14.bbappend b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.14.bbappend
deleted file mode 100644
index 52371ff..0000000
--- a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.14.bbappend
+++ /dev/null
@@ -1,23 +0,0 @@
-KBRANCH:genericx86  = "v5.14/standard/base"
-KBRANCH:genericx86-64  = "v5.14/standard/base"
-KBRANCH:edgerouter = "v5.14/standard/edgerouter"
-KBRANCH:beaglebone-yocto = "v5.14/standard/beaglebone"
-
-KMACHINE:genericx86 ?= "common-pc"
-KMACHINE:genericx86-64 ?= "common-pc-64"
-KMACHINE:beaglebone-yocto ?= "beaglebone"
-
-SRCREV_machine:genericx86 ?= "7ae156be3bdbf033839f7f3ec2e9a0ffffb18818"
-SRCREV_machine:genericx86-64 ?= "7ae156be3bdbf033839f7f3ec2e9a0ffffb18818"
-SRCREV_machine:edgerouter ?= "7ae156be3bdbf033839f7f3ec2e9a0ffffb18818"
-SRCREV_machine:beaglebone-yocto ?= "7ae156be3bdbf033839f7f3ec2e9a0ffffb18818"
-
-COMPATIBLE_MACHINE:genericx86 = "genericx86"
-COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64"
-COMPATIBLE_MACHINE:edgerouter = "edgerouter"
-COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto"
-
-LINUX_VERSION:genericx86 = "5.14.6"
-LINUX_VERSION:genericx86-64 = "5.14.6"
-LINUX_VERSION:edgerouter = "5.14.6"
-LINUX_VERSION:beaglebone-yocto = "5.14.6"
diff --git a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.15.bbappend b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.15.bbappend
new file mode 100644
index 0000000..ea36a2b
--- /dev/null
+++ b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.15.bbappend
@@ -0,0 +1,23 @@
+KBRANCH:genericx86  = "v5.15/standard/base"
+KBRANCH:genericx86-64  = "v5.15/standard/base"
+KBRANCH:edgerouter = "v5.15/standard/edgerouter"
+KBRANCH:beaglebone-yocto = "v5.15/standard/beaglebone"
+
+KMACHINE:genericx86 ?= "common-pc"
+KMACHINE:genericx86-64 ?= "common-pc-64"
+KMACHINE:beaglebone-yocto ?= "beaglebone"
+
+SRCREV_machine:genericx86 ?= "5a8ec126c297dd9e410eb23685003f670f8f3d57"
+SRCREV_machine:genericx86-64 ?= "5a8ec126c297dd9e410eb23685003f670f8f3d57"
+SRCREV_machine:edgerouter ?= "5a8ec126c297dd9e410eb23685003f670f8f3d57"
+SRCREV_machine:beaglebone-yocto ?= "5a8ec126c297dd9e410eb23685003f670f8f3d57"
+
+COMPATIBLE_MACHINE:genericx86 = "genericx86"
+COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64"
+COMPATIBLE_MACHINE:edgerouter = "edgerouter"
+COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto"
+
+LINUX_VERSION:genericx86 = "5.15.1"
+LINUX_VERSION:genericx86-64 = "5.15.1"
+LINUX_VERSION:edgerouter = "5.15.1"
+LINUX_VERSION:beaglebone-yocto = "5.15.1"
diff --git a/poky/meta/classes/allarch.bbclass b/poky/meta/classes/allarch.bbclass
index 5bd5c44..a766a65 100644
--- a/poky/meta/classes/allarch.bbclass
+++ b/poky/meta/classes/allarch.bbclass
@@ -61,3 +61,5 @@
         bb.error("Please ensure recipe %s sets PACKAGE_ARCH before inherit packagegroup" % d.getVar("FILE"))
 }
 
+def qemu_wrapper_cmdline(data, rootfs_path, library_paths):
+    return 'false'
diff --git a/poky/meta/classes/archiver.bbclass b/poky/meta/classes/archiver.bbclass
index 411d459..549f331 100644
--- a/poky/meta/classes/archiver.bbclass
+++ b/poky/meta/classes/archiver.bbclass
@@ -51,7 +51,7 @@
 ARCHIVER_MODE[dumpdata] ?= "0"
 ARCHIVER_MODE[recipe] ?= "0"
 ARCHIVER_MODE[mirror] ?= "split"
-ARCHIVER_MODE[compression] ?= "gz"
+ARCHIVER_MODE[compression] ?= "xz"
 
 DEPLOY_DIR_SRC ?= "${DEPLOY_DIR}/sources"
 ARCHIVER_TOPDIR ?= "${WORKDIR}/archiver-sources"
diff --git a/poky/meta/classes/base.bbclass b/poky/meta/classes/base.bbclass
index a65fcc6..5f4956a 100644
--- a/poky/meta/classes/base.bbclass
+++ b/poky/meta/classes/base.bbclass
@@ -150,6 +150,7 @@
 do_fetch[file-checksums] = "${@bb.fetch.get_checksum_file_list(d)}"
 do_fetch[file-checksums] += " ${@get_lic_checksum_file_list(d)}"
 do_fetch[vardeps] += "SRCREV"
+do_fetch[network] = "1"
 python base_do_fetch() {
 
     src_uri = (d.getVar('SRC_URI') or "").split()
@@ -665,6 +666,10 @@
         elif uri.scheme == "npm":
             d.appendVarFlag('do_fetch', 'depends', ' nodejs-native:do_populate_sysroot')
 
+        elif uri.scheme == "repo":
+            needsrcrev = True
+            d.appendVarFlag('do_fetch', 'depends', ' repo-native:do_populate_sysroot')
+
         # *.lz4 should DEPEND on lz4-native for unpacking
         if path.endswith('.lz4'):
             d.appendVarFlag('do_unpack', 'depends', ' lz4-native:do_populate_sysroot')
diff --git a/poky/meta/classes/buildhistory.bbclass b/poky/meta/classes/buildhistory.bbclass
index 62d0d78..daa96f3 100644
--- a/poky/meta/classes/buildhistory.bbclass
+++ b/poky/meta/classes/buildhistory.bbclass
@@ -91,13 +91,19 @@
 python buildhistory_emit_pkghistory() {
     if d.getVar('BB_CURRENTTASK') in ['populate_sysroot', 'populate_sysroot_setscene']:
         bb.build.exec_func("buildhistory_emit_sysroot", d)
-
-    if not d.getVar('BB_CURRENTTASK') in ['packagedata', 'packagedata_setscene']:
         return 0
 
     if not "package" in (d.getVar('BUILDHISTORY_FEATURES') or "").split():
         return 0
 
+    if d.getVar('BB_CURRENTTASK') in ['package', 'package_setscene']:
+        # Create files-in-<package-name>.txt files containing a list of files of each recipe's package
+        bb.build.exec_func("buildhistory_list_pkg_files", d)
+        return 0
+
+    if not d.getVar('BB_CURRENTTASK') in ['packagedata', 'packagedata_setscene']:
+        return 0
+
     import re
     import json
     import shlex
@@ -319,8 +325,6 @@
 
         write_pkghistory(pkginfo, d)
 
-    # Create files-in-<package-name>.txt files containing a list of files of each recipe's package
-    bb.build.exec_func("buildhistory_list_pkg_files", d)
     oe.qa.exit_if_errors(d)
 }
 
@@ -934,22 +938,12 @@
         if urldata[u].method.supports_srcrev():
             scms.append(u)
 
-    autoinc_templ = 'AUTOINC+'
     dict_srcrevs = {}
     dict_tag_srcrevs = {}
     for scm in scms:
         ud = urldata[scm]
         for name in ud.names:
-            try:
-                rev = ud.method.sortable_revision(ud, d, name)
-            except TypeError:
-                # support old bitbake versions
-                rev = ud.method.sortable_revision(scm, ud, d, name)
-            # Clean this up when we next bump bitbake version
-            if type(rev) != str:
-                autoinc, rev = rev
-            elif rev.startswith(autoinc_templ):
-                rev = rev[len(autoinc_templ):]
+            autoinc, rev = ud.method.sortable_revision(ud, d, name)
             dict_srcrevs[name] = rev
             if 'tag' in ud.parm:
                 tag = ud.parm['tag'];
@@ -980,23 +974,19 @@
                         value = value.replace('"', '').strip()
                         old_tag_srcrevs[key] = value
         with open(srcrevfile, 'w') as f:
-            orig_srcrev = d.getVar('SRCREV', False) or 'INVALID'
-            if orig_srcrev != 'INVALID':
-                f.write('# SRCREV = "%s"\n' % orig_srcrev)
-            if len(srcrevs) > 1:
-                for name, srcrev in sorted(srcrevs.items()):
-                    orig_srcrev = d.getVar('SRCREV_%s' % name, False)
-                    if orig_srcrev:
-                        f.write('# SRCREV_%s = "%s"\n' % (name, orig_srcrev))
-                    f.write('SRCREV_%s = "%s"\n' % (name, srcrev))
-            else:
-                f.write('SRCREV = "%s"\n' % next(iter(srcrevs.values())))
-            if len(tag_srcrevs) > 0:
-                for name, srcrev in sorted(tag_srcrevs.items()):
-                    f.write('# tag_%s = "%s"\n' % (name, srcrev))
-                    if name in old_tag_srcrevs and old_tag_srcrevs[name] != srcrev:
-                        pkg = d.getVar('PN')
-                        bb.warn("Revision for tag %s in package %s was changed since last build (from %s to %s)" % (name, pkg, old_tag_srcrevs[name], srcrev))
+            for name, srcrev in sorted(srcrevs.items()):
+                suffix = "_" + name
+                if name == "default":
+                    suffix = ""
+                orig_srcrev = d.getVar('SRCREV%s' % suffix, False)
+                if orig_srcrev:
+                    f.write('# SRCREV%s = "%s"\n' % (suffix, orig_srcrev))
+                f.write('SRCREV%s = "%s"\n' % (suffix, srcrev))
+            for name, srcrev in sorted(tag_srcrevs.items()):
+                f.write('# tag_%s = "%s"\n' % (name, srcrev))
+                if name in old_tag_srcrevs and old_tag_srcrevs[name] != srcrev:
+                    pkg = d.getVar('PN')
+                    bb.warn("Revision for tag %s in package %s was changed since last build (from %s to %s)" % (name, pkg, old_tag_srcrevs[name], srcrev))
 
     else:
         if os.path.exists(srcrevfile):
diff --git a/poky/meta/classes/cargo_common.bbclass b/poky/meta/classes/cargo_common.bbclass
index 23d82aa..90fad75 100644
--- a/poky/meta/classes/cargo_common.bbclass
+++ b/poky/meta/classes/cargo_common.bbclass
@@ -9,7 +9,6 @@
 ##
 
 # add crate fetch support
-inherit crate-fetch
 inherit rust-common
 
 # Where we download our registry and dependencies to
diff --git a/poky/meta/classes/crate-fetch.bbclass b/poky/meta/classes/crate-fetch.bbclass
deleted file mode 100644
index c0ed434..0000000
--- a/poky/meta/classes/crate-fetch.bbclass
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# crate-fetch class
-#
-# Registers 'crate' method for Bitbake fetch2.
-#
-# Adds support for following format in recipe SRC_URI:
-# crate://<packagename>/<version>
-#
-
-python () {
-        import crate
-        bb.fetch2.methods.append( crate.Crate() )
-}
diff --git a/poky/meta/classes/create-spdx.bbclass b/poky/meta/classes/create-spdx.bbclass
index c35dbe1..eb95350 100644
--- a/poky/meta/classes/create-spdx.bbclass
+++ b/poky/meta/classes/create-spdx.bbclass
@@ -28,6 +28,8 @@
 
 SPDX_LICENSES ??= "${COREBASE}/meta/files/spdx-licenses.json"
 
+SPDX_ORG ??= "OpenEmbedded ()"
+
 do_image_complete[depends] = "virtual/kernel:do_create_spdx"
 
 def get_doc_namespace(d, doc):
@@ -51,10 +53,8 @@
       a.annotator == "Tool: %s - %s" % (d.getVar("SPDX_TOOL_NAME"), d.getVar("SPDX_TOOL_VERSION")) and
       a.comment == "isNative" for a in recipe.annotations)
 
-def is_work_shared(d):
-    pn = d.getVar('PN')
-    return bb.data.inherits_class('kernel', d) or pn.startswith('gcc-source')
-
+def is_work_shared_spdx(d):
+    return bb.data.inherits_class('kernel', d) or ('work-shared' in d.getVar('WORKDIR'))
 
 python() {
     import json
@@ -92,7 +92,7 @@
             extracted_info.extractedText = "Software released to the public domain"
         elif name in available_licenses:
             # This license can be found in COMMON_LICENSE_DIR or LICENSE_PATH
-            for directory in [d.getVar('COMMON_LICENSE_DIR')] + d.getVar('LICENSE_PATH').split():
+            for directory in [d.getVar('COMMON_LICENSE_DIR')] + (d.getVar('LICENSE_PATH') or '').split():
                 try:
                     with (Path(directory) / name).open(errors="replace") as f:
                         extracted_info.extractedText = f.read()
@@ -145,7 +145,6 @@
 
     return ' '.join(convert(l) for l in lic_split)
 
-
 def process_sources(d):
     pn = d.getVar('PN')
     assume_provided = (d.getVar("ASSUME_PROVIDED") or "").split()
@@ -255,6 +254,7 @@
         Path(d.getVar('PKGD')),
         Path(d.getVar('STAGING_DIR_TARGET')),
         Path(d.getVar('STAGING_DIR_NATIVE')),
+        Path(d.getVar('STAGING_KERNEL_DIR')),
     ]
 
     pkg_data = oe.packagedata.read_subpkgdata_extended(package, d)
@@ -276,7 +276,10 @@
         for debugsrc in file_data["debugsrc"]:
             ref_id = "NOASSERTION"
             for search in debug_search_paths:
-                debugsrc_path = search / debugsrc.lstrip("/")
+                if debugsrc.startswith("/usr/src/kernel"):
+                    debugsrc_path = search / debugsrc.replace('/usr/src/kernel/', '')
+                else:
+                    debugsrc_path = search / debugsrc.lstrip("/")
                 if not debugsrc_path.exists():
                     continue
 
@@ -415,7 +418,7 @@
     doc.creationInfo.comment = "This document was created by analyzing recipe files during the build."
     doc.creationInfo.licenseListVersion = d.getVar("SPDX_LICENSE_DATA")["licenseListVersion"]
     doc.creationInfo.creators.append("Tool: OpenEmbedded Core create-spdx.bbclass")
-    doc.creationInfo.creators.append("Organization: OpenEmbedded ()")
+    doc.creationInfo.creators.append("Organization: %s" % d.getVar("SPDX_ORG"))
     doc.creationInfo.creators.append("Person: N/A ()")
 
     recipe = oe.spdx.SPDXPackage()
@@ -519,7 +522,7 @@
             package_doc.creationInfo.comment = "This document was created by analyzing packages created during the build."
             package_doc.creationInfo.licenseListVersion = d.getVar("SPDX_LICENSE_DATA")["licenseListVersion"]
             package_doc.creationInfo.creators.append("Tool: OpenEmbedded Core create-spdx.bbclass")
-            package_doc.creationInfo.creators.append("Organization: OpenEmbedded ()")
+            package_doc.creationInfo.creators.append("Organization: %s" % d.getVar("SPDX_ORG"))
             package_doc.creationInfo.creators.append("Person: N/A ()")
             package_doc.externalDocumentRefs.append(recipe_ref)
 
@@ -653,7 +656,7 @@
             runtime_doc.creationInfo.comment = "This document was created by analyzing package runtime dependencies."
             runtime_doc.creationInfo.licenseListVersion = d.getVar("SPDX_LICENSE_DATA")["licenseListVersion"]
             runtime_doc.creationInfo.creators.append("Tool: OpenEmbedded Core create-spdx.bbclass")
-            runtime_doc.creationInfo.creators.append("Organization: OpenEmbedded ()")
+            runtime_doc.creationInfo.creators.append("Organization: %s" % d.getVar("SPDX_ORG"))
             runtime_doc.creationInfo.creators.append("Person: N/A ()")
 
             package_ref = oe.spdx.SPDXExternalDocumentRef()
@@ -676,6 +679,9 @@
                 if dep in seen_deps:
                     continue
 
+                if dep not in providers:
+                    continue
+
                 dep = providers[dep]
 
                 if not oe.packagedata.packaged(dep, localdata):
@@ -745,7 +751,7 @@
 
     try:
         # The kernel class functions require it to be on work-shared, so we dont change WORKDIR
-        if not is_work_shared(d):
+        if not is_work_shared_spdx(d):
             # Change the WORKDIR to make do_unpack do_patch run in another dir.
             d.setVar('WORKDIR', spdx_workdir)
             # Restore the original path to recipe's native sysroot (it's relative to WORKDIR).
@@ -758,7 +764,7 @@
 
             bb.build.exec_func('do_unpack', d)
         # Copy source of kernel to spdx_workdir
-        if is_work_shared(d):
+        if is_work_shared_spdx(d):
             d.setVar('WORKDIR', spdx_workdir)
             d.setVar('STAGING_DIR_NATIVE', spdx_sysroot_native)
             src_dir = spdx_workdir + "/" + d.getVar('PN')+ "-" + d.getVar('PV') + "-" + d.getVar('PR')
@@ -774,7 +780,7 @@
                 shutils.rmtree(git_path)
 
         # Make sure gcc and kernel sources are patched only once
-        if not (d.getVar('SRC_URI') == "" or is_work_shared(d)):
+        if not (d.getVar('SRC_URI') == "" or is_work_shared_spdx(d)):
             bb.build.exec_func('do_patch', d)
 
         # Some userland has no source.
@@ -813,7 +819,7 @@
     doc.creationInfo.comment = "This document was created by analyzing the source of the Yocto recipe during the build."
     doc.creationInfo.licenseListVersion = d.getVar("SPDX_LICENSE_DATA")["licenseListVersion"]
     doc.creationInfo.creators.append("Tool: OpenEmbedded Core create-spdx.bbclass")
-    doc.creationInfo.creators.append("Organization: OpenEmbedded ()")
+    doc.creationInfo.creators.append("Organization: %s" % d.getVar("SPDX_ORG"))
     doc.creationInfo.creators.append("Person: N/A ()")
 
     image = oe.spdx.SPDXPackage()
@@ -868,8 +874,9 @@
     with image_spdx_path.open("wb") as f:
         doc.to_json(f, sort_keys=True)
 
-    image_spdx_link = imgdeploydir / (image_link_name + ".spdx.json")
-    image_spdx_link.symlink_to(os.path.relpath(image_spdx_path, image_spdx_link.parent))
+    if image_link_name:
+        image_spdx_link = imgdeploydir / (image_link_name + ".spdx.json")
+        image_spdx_link.symlink_to(os.path.relpath(image_spdx_path, image_spdx_link.parent))
 
     num_threads = int(d.getVar("BB_NUMBER_THREADS"))
 
@@ -940,8 +947,9 @@
             tar.addfile(info, fileobj=index_str)
 
     def make_image_link(target_path, suffix):
-        link = imgdeploydir / (image_link_name + suffix)
-        link.symlink_to(os.path.relpath(target_path, link.parent))
+        if image_link_name:
+            link = imgdeploydir / (image_link_name + suffix)
+            link.symlink_to(os.path.relpath(target_path, link.parent))
 
     make_image_link(spdx_tar_path, ".spdx.tar.zst")
 
diff --git a/poky/meta/classes/cross.bbclass b/poky/meta/classes/cross.bbclass
index 3e6a2f6..9d95107 100644
--- a/poky/meta/classes/cross.bbclass
+++ b/poky/meta/classes/cross.bbclass
@@ -93,3 +93,5 @@
 }
 addtask addto_recipe_sysroot after do_populate_sysroot
 do_addto_recipe_sysroot[deptask] = "do_populate_sysroot"
+
+PATH:prepend = "${COREBASE}/scripts/cross-intercept:"
diff --git a/poky/meta/classes/cve-check.bbclass b/poky/meta/classes/cve-check.bbclass
index 70d1988..6c04ff9 100644
--- a/poky/meta/classes/cve-check.bbclass
+++ b/poky/meta/classes/cve-check.bbclass
@@ -111,6 +111,7 @@
 }
 
 addtask cve_check before do_build after do_fetch
+do_cve_check[lockfiles] += "${CVE_CHECK_DB_FILE_LOCK}"
 do_cve_check[depends] = "cve-update-db-native:do_fetch"
 do_cve_check[nostamp] = "1"
 
diff --git a/poky/meta/classes/debian.bbclass b/poky/meta/classes/debian.bbclass
index 39b1a1a..8367be9 100644
--- a/poky/meta/classes/debian.bbclass
+++ b/poky/meta/classes/debian.bbclass
@@ -14,6 +14,10 @@
 inherit package
 
 DEBIANRDEP = "do_packagedata"
+do_package_write_ipk[deptask] = "${DEBIANRDEP}"
+do_package_write_deb[deptask] = "${DEBIANRDEP}"
+do_package_write_tar[deptask] = "${DEBIANRDEP}"
+do_package_write_rpm[deptask] = "${DEBIANRDEP}"
 do_package_write_ipk[rdeptask] = "${DEBIANRDEP}"
 do_package_write_deb[rdeptask] = "${DEBIANRDEP}"
 do_package_write_tar[rdeptask] = "${DEBIANRDEP}"
diff --git a/poky/meta/classes/devupstream.bbclass b/poky/meta/classes/devupstream.bbclass
index dc9a947..facc46f 100644
--- a/poky/meta/classes/devupstream.bbclass
+++ b/poky/meta/classes/devupstream.bbclass
@@ -4,7 +4,7 @@
 #
 # Usage:
 # BBCLASSEXTEND = "devupstream:target"
-# SRC_URI:class-devupstream = "git://git.example.com/example"
+# SRC_URI:class-devupstream = "git://git.example.com/example;branch=master"
 # SRCREV:class-devupstream = "abcdef"
 #
 # If the first entry in SRC_URI is a git: URL then S is rewritten to
diff --git a/poky/meta/classes/distutils-common-base.bbclass b/poky/meta/classes/distutils-common-base.bbclass
index bc994f7..59c750a 100644
--- a/poky/meta/classes/distutils-common-base.bbclass
+++ b/poky/meta/classes/distutils-common-base.bbclass
@@ -23,3 +23,6 @@
   ${libdir}/pkgconfig \
   ${PYTHON_SITEPACKAGES_DIR}/*.la \
 "
+python __anonymous() {
+    bb.warn("distutils-common-base.bbclass is deprecated, please use setuptools3-base.bbclass instead")
+}
diff --git a/poky/meta/classes/distutils3-base.bbclass b/poky/meta/classes/distutils3-base.bbclass
index d41873e..850c535 100644
--- a/poky/meta/classes/distutils3-base.bbclass
+++ b/poky/meta/classes/distutils3-base.bbclass
@@ -4,3 +4,6 @@
 
 inherit distutils-common-base python3native python3targetconfig
 
+python __anonymous() {
+    bb.warn("distutils3-base.bbclass is deprecated, please use setuptools3-base.bbclass instead")
+
diff --git a/poky/meta/classes/distutils3.bbclass b/poky/meta/classes/distutils3.bbclass
index be645d3..a6d8e87 100644
--- a/poky/meta/classes/distutils3.bbclass
+++ b/poky/meta/classes/distutils3.bbclass
@@ -14,6 +14,10 @@
 
 DISTUTILS_SETUP_PATH ?= "${S}"
 
+python __anonymous() {
+    bb.warn("distutils3.bbclass is deprecated, please use setuptools3.bbclass instead")
+}
+
 distutils3_do_configure() {
     :
 }
diff --git a/poky/meta/classes/go.bbclass b/poky/meta/classes/go.bbclass
index aa54b4a..9c4c92b 100644
--- a/poky/meta/classes/go.bbclass
+++ b/poky/meta/classes/go.bbclass
@@ -2,6 +2,8 @@
 
 GO_PARALLEL_BUILD ?= "${@oe.utils.parallel_make_argument(d, '-p %d')}"
 
+export GODEBUG = "gocachehash=1"
+
 GOROOT:class-native = "${STAGING_LIBDIR_NATIVE}/go"
 GOROOT:class-nativesdk = "${STAGING_DIR_TARGET}${libdir}/go"
 GOROOT = "${STAGING_LIBDIR}/go"
@@ -65,7 +67,7 @@
 
 B = "${WORKDIR}/build"
 export GOPATH = "${B}"
-export GOTMPDIR ?= "${WORKDIR}/go-tmp"
+export GOTMPDIR ?= "${WORKDIR}/build-tmp"
 GOTMPDIR[vardepvalue] = ""
 
 python go_do_unpack() {
diff --git a/poky/meta/classes/gobject-introspection.bbclass b/poky/meta/classes/gobject-introspection.bbclass
index 822a226..4db1b36 100644
--- a/poky/meta/classes/gobject-introspection.bbclass
+++ b/poky/meta/classes/gobject-introspection.bbclass
@@ -14,16 +14,18 @@
 GIR_MESON_ENABLE_FLAG ?= 'true'
 GIR_MESON_DISABLE_FLAG ?= 'false'
 
+# Define g-i options such that they can be disabled completely when GIR_MESON_OPTION is empty
+GIRMESONTARGET = "-D${GIR_MESON_OPTION}=${@bb.utils.contains('GI_DATA_ENABLED', 'True', '${GIR_MESON_ENABLE_FLAG}', '${GIR_MESON_DISABLE_FLAG}', d)} "
+GIRMESONBUILD = "-D${GIR_MESON_OPTION}=${GIR_MESON_DISABLE_FLAG} "
 # Auto enable/disable based on GI_DATA_ENABLED
 EXTRA_OECONF:prepend:class-target = "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '--enable-introspection', '--disable-introspection', d)} "
-EXTRA_OEMESON:prepend:class-target = "-D${GIR_MESON_OPTION}=${@bb.utils.contains('GI_DATA_ENABLED', 'True', '${GIR_MESON_ENABLE_FLAG}', '${GIR_MESON_DISABLE_FLAG}', d)} "
-
+EXTRA_OEMESON:prepend:class-target = "${@['', '${GIRMESONTARGET}'][d.getVar('GIR_MESON_OPTION') != '']}"
 # When building native recipes, disable introspection, as it is not necessary,
 # pulls in additional dependencies, and makes build times longer
 EXTRA_OECONF:prepend:class-native = "--disable-introspection "
 EXTRA_OECONF:prepend:class-nativesdk = "--disable-introspection "
-EXTRA_OEMESON:prepend:class-native = "-D${GIR_MESON_OPTION}=${GIR_MESON_DISABLE_FLAG} "
-EXTRA_OEMESON:prepend:class-nativesdk = "-D${GIR_MESON_OPTION}=${GIR_MESON_DISABLE_FLAG} "
+EXTRA_OEMESON:prepend:class-native = "${@['', '${GIRMESONBUILD}'][d.getVar('GIR_MESON_OPTION') != '']}"
+EXTRA_OEMESON:prepend:class-nativesdk = "${@['', '${GIRMESONBUILD}'][d.getVar('GIR_MESON_OPTION') != '']}"
 
 # Generating introspection data depends on a combination of native and target
 # introspection tools, and qemu to run the target tools.
diff --git a/poky/meta/classes/gtk-doc.bbclass b/poky/meta/classes/gtk-doc.bbclass
index 7149bc0..07b46ac 100644
--- a/poky/meta/classes/gtk-doc.bbclass
+++ b/poky/meta/classes/gtk-doc.bbclass
@@ -63,7 +63,7 @@
 GIR_EXTRA_LIBS_PATH=\`find ${B} -name *.so -printf "%h\n"|sort|uniq| tr '\n' ':'\`\$GIR_EXTRA_LIBS_PATH
 GIR_EXTRA_LIBS_PATH=\`find ${B} -name .libs| tr '\n' ':'\`\$GIR_EXTRA_LIBS_PATH
 
-# meson sets this wrongly (only to libs in build-dir), qemu-wrapper_cmdline() and GIR_EXTRA_LIBS_PATH take care of it properly
+# meson sets this wrongly (only to libs in build-dir), qemu_wrapper_cmdline() and GIR_EXTRA_LIBS_PATH take care of it properly
 unset LD_LIBRARY_PATH
 
 if [ -d ".libs" ]; then
diff --git a/poky/meta/classes/image.bbclass b/poky/meta/classes/image.bbclass
index 2fa69a4..2b0ce4a 100644
--- a/poky/meta/classes/image.bbclass
+++ b/poky/meta/classes/image.bbclass
@@ -15,6 +15,7 @@
 IMGCLASSES += "image_types_wic"
 IMGCLASSES += "rootfs-postcommands"
 IMGCLASSES += "image-postinst-intercepts"
+IMGCLASSES += "overlayfs-etc"
 inherit ${IMGCLASSES}
 
 TOOLCHAIN_TARGET_TASK += "${PACKAGE_INSTALL}"
@@ -33,7 +34,7 @@
 # IMAGE_FEATURES may contain any available package group
 IMAGE_FEATURES ?= ""
 IMAGE_FEATURES[type] = "list"
-IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs read-only-rootfs-delayed-postinsts stateless-rootfs empty-root-password allow-empty-password allow-root-login post-install-logging"
+IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs read-only-rootfs-delayed-postinsts stateless-rootfs empty-root-password allow-empty-password allow-root-login post-install-logging overlayfs-etc"
 
 # Generate companion debugfs?
 IMAGE_GEN_DEBUGFS ?= "0"
@@ -53,7 +54,7 @@
 
 # Define some very basic feature package groups
 FEATURE_PACKAGES_package-management = "${ROOTFS_PKGMANAGE}"
-SPLASH ?= "psplash"
+SPLASH ?= "${@bb.utils.contains("MACHINE_FEATURES", "screen", "psplash", "", d)}"
 FEATURE_PACKAGES_splash = "${SPLASH}"
 
 IMAGE_INSTALL_COMPLEMENTARY = '${@complementary_globs("IMAGE_FEATURES", d)}'
@@ -622,20 +623,20 @@
 create_merged_usr_symlinks() {
     root="$1"
     install -d $root${base_bindir} $root${base_sbindir} $root${base_libdir}
-    lnr $root${base_bindir} $root/bin
-    lnr $root${base_sbindir} $root/sbin
-    lnr $root${base_libdir} $root/${baselib}
+    ln -rs $root${base_bindir} $root/bin
+    ln -rs $root${base_sbindir} $root/sbin
+    ln -rs $root${base_libdir} $root/${baselib}
 
     if [ "${nonarch_base_libdir}" != "${base_libdir}" ]; then
        install -d $root${nonarch_base_libdir}
-       lnr $root${nonarch_base_libdir} $root/lib
+       ln -rs $root${nonarch_base_libdir} $root/lib
     fi
 
     # create base links for multilibs
     multi_libdirs="${@d.getVar('MULTILIB_VARIANTS')}"
     for d in $multi_libdirs; do
         install -d $root${exec_prefix}/$d
-        lnr $root${exec_prefix}/$d $root/$d
+        ln -rs $root${exec_prefix}/$d $root/$d
     done
 }
 
diff --git a/poky/meta/classes/insane.bbclass b/poky/meta/classes/insane.bbclass
index 1e2f1b7..11532ec 100644
--- a/poky/meta/classes/insane.bbclass
+++ b/poky/meta/classes/insane.bbclass
@@ -37,7 +37,7 @@
             configure-gettext perllocalpod shebang-size \
             already-stripped installed-vs-shipped ldflags compile-host-path \
             install-host-path pn-overrides unknown-configure-option \
-            useless-rpaths rpaths staticdev \
+            useless-rpaths rpaths staticdev empty-dirs \
             "
 # Add usrmerge QA check based on distro feature
 ERROR_QA:append = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', ' usrmerge', '', d)}"
@@ -50,6 +50,21 @@
 
 UNKNOWN_CONFIGURE_WHITELIST ?= "--enable-nls --disable-nls --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot --disable-static"
 
+# This is a list of directories that are expected to be empty.
+QA_EMPTY_DIRS ?= " \
+    /dev/pts \
+    /media \
+    /proc \
+    /run \
+    /tmp \
+    ${localstatedir}/run \
+    ${localstatedir}/volatile \
+"
+# It is possible to specify why a directory is expected to be empty by defining
+# QA_EMPTY_DIRS_RECOMMENDATION:<path>, which will then be included in the error
+# message if the directory is not empty. If it is not specified for a directory,
+# then "but it is expected to be empty" will be used.
+
 def package_qa_clean_path(path, d, pkg=None):
     """
     Remove redundant paths from the path for display.  If pkg isn't set then
@@ -885,6 +900,22 @@
                            "listed in LICENSE" % (package, ' '.join(unlisted)))
     return False
 
+QAPKGTEST[empty-dirs] = "package_qa_check_empty_dirs"
+def package_qa_check_empty_dirs(pkg, d, messages):
+    """
+    Check for the existence of files in directories that are expected to be
+    empty.
+    """
+
+    pkgd = oe.path.join(d.getVar('PKGDEST'), pkg)
+    for dir in (d.getVar('QA_EMPTY_DIRS') or "").split():
+        empty_dir = oe.path.join(pkgd, dir)
+        if os.path.exists(empty_dir) and os.listdir(empty_dir):
+            recommendation = (d.getVar('QA_EMPTY_DIRS_RECOMMENDATION:' + dir) or
+                              "but it is expected to be empty")
+            msg = "%s installs files in %s, %s" % (pkg, dir, recommendation)
+            oe.qa.add_message(messages, "empty-dirs", msg)
+
 def package_qa_check_encoding(keys, encode, d):
     def check_encoding(key, enc):
         sane = True
@@ -937,17 +968,6 @@
             return False
     return True
 
-QARECIPETEST[src-uri-bad] = "package_qa_check_src_uri"
-def package_qa_check_src_uri(pn, d, messages):
-    import re
-
-    if "${PN}" in d.getVar("SRC_URI", False):
-        oe.qa.handle_error("src-uri-bad", "%s: SRC_URI uses PN not BPN" % pn, d)
-
-    for url in d.getVar("SRC_URI").split():
-        if re.search(r"git(hu|la)b\.com/.+/.+/archive/.+", url):
-            oe.qa.handle_error("src-uri-bad", "%s: SRC_URI uses unstable GitHub/GitLab archives, convert recipe to use git protocol" % pn, d)
-
 QARECIPETEST[unhandled-features-check] = "package_qa_check_unhandled_features_check"
 def package_qa_check_unhandled_features_check(pn, d, messages):
     if not bb.data.inherits_class('features_check', d):
@@ -1136,6 +1156,30 @@
                 bb.warn(msg)
             msg = "Patch log indicates that patches do not apply cleanly."
             oe.qa.handle_error("patch-fuzz", msg, d)
+
+    # Check if the patch contains a correctly formatted and spelled Upstream-Status
+    import re
+    from oe import patch
+
+    for url in patch.src_patches(d):
+       (_, _, fullpath, _, _, _) = bb.fetch.decodeurl(url)
+
+       # skip patches not in oe-core
+       if '/meta/' not in fullpath:
+           continue
+
+       content = open(fullpath, encoding='utf-8', errors='ignore').read()
+       kinda_status_re = re.compile(r"^.*upstream.*status.*$", re.IGNORECASE | re.MULTILINE)
+       strict_status_re = re.compile(r"^Upstream-Status: (Pending|Submitted|Denied|Accepted|Inappropriate|Backport|Inactive-Upstream)( .+)?$", re.MULTILINE)
+       match_kinda = kinda_status_re.search(content)
+       match_strict = strict_status_re.search(content)
+       guidelines = "https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations:_Upstream-Status"
+
+       if not match_strict:
+           if match_kinda:
+               bb.error("Malformed Upstream-Status in patch\n%s\nPlease correct according to %s :\n%s" % (fullpath, guidelines, match_kinda.group(0)))
+           else:
+               bb.error("Missing Upstream-Status in patch\n%s\nPlease add according to %s ." % (fullpath, guidelines))
 }
 
 python do_qa_configure() {
@@ -1198,15 +1242,12 @@
     ###########################################################################
     # Check unrecognised configure options (with a white list)
     ###########################################################################
-    if bb.data.inherits_class("autotools", d) or bb.data.inherits_class("meson", d):
+    if bb.data.inherits_class("autotools", d):
         bb.note("Checking configure output for unrecognised options")
         try:
             if bb.data.inherits_class("autotools", d):
                 flag = "WARNING: unrecognized options:"
                 log = os.path.join(d.getVar('B'), 'config.log')
-            if bb.data.inherits_class("meson", d):
-                flag = "WARNING: Unknown options:"
-                log = os.path.join(d.getVar('T'), 'log.do_configure')
             output = subprocess.check_output(['grep', '-F', flag, log]).decode("utf-8").replace(', ', ' ').replace('"', '')
             options = set()
             for line in output.splitlines():
@@ -1233,11 +1274,28 @@
     oe.qa.exit_if_errors(d)
 }
 
+def unpack_check_src_uri(pn, d):
+    import re
+
+    skip = (d.getVar('INSANE_SKIP') or "").split()
+    if 'src-uri-bad' in skip:
+        bb.note("Recipe %s skipping qa checking: src-uri-bad" % d.getVar('PN'))
+        return
+
+    if "${PN}" in d.getVar("SRC_URI", False):
+        oe.qa.handle_error("src-uri-bad", "%s: SRC_URI uses PN not BPN" % pn, d)
+
+    for url in d.getVar("SRC_URI").split():
+        if re.search(r"git(hu|la)b\.com/.+/.+/archive/.+", url):
+            oe.qa.handle_error("src-uri-bad", "%s: SRC_URI uses unstable GitHub/GitLab archives, convert recipe to use git protocol" % pn, d)
+
 python do_qa_unpack() {
     src_uri = d.getVar('SRC_URI')
     s_dir = d.getVar('S')
     if src_uri and not os.path.exists(s_dir):
         bb.warn('%s: the directory %s (%s) pointed to by the S variable doesn\'t exist - please set S within the recipe to point to where the source has been unpacked to' % (d.getVar('PN'), d.getVar('S', False), s_dir))
+
+    unpack_check_src_uri(d.getVar('PN'), d)
 }
 
 # The Staging Func, to check all staging
diff --git a/poky/meta/classes/kernel-artifact-names.bbclass b/poky/meta/classes/kernel-artifact-names.bbclass
index a65cddd..e77107c 100644
--- a/poky/meta/classes/kernel-artifact-names.bbclass
+++ b/poky/meta/classes/kernel-artifact-names.bbclass
@@ -8,15 +8,20 @@
 
 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
+KERNEL_ARTIFACT_BIN_EXT ?= ".bin"
 
 KERNEL_IMAGE_NAME ?= "${KERNEL_ARTIFACT_NAME}"
 KERNEL_IMAGE_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
+KERNEL_IMAGE_BIN_EXT ?= "${KERNEL_ARTIFACT_BIN_EXT}"
+KERNEL_IMAGETYPE_SYMLINK ?= "1"
 
 KERNEL_DTB_NAME ?= "${KERNEL_ARTIFACT_NAME}"
 KERNEL_DTB_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
+KERNEL_DTB_BIN_EXT ?= "${KERNEL_ARTIFACT_BIN_EXT}"
 
 KERNEL_FIT_NAME ?= "${KERNEL_ARTIFACT_NAME}"
 KERNEL_FIT_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
+KERNEL_FIT_BIN_EXT ?= "${KERNEL_ARTIFACT_BIN_EXT}"
 
 MODULE_TARBALL_NAME ?= "${KERNEL_ARTIFACT_NAME}"
 MODULE_TARBALL_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
diff --git a/poky/meta/classes/kernel-devicetree.bbclass b/poky/meta/classes/kernel-devicetree.bbclass
index a50ea4f..b4338da 100644
--- a/poky/meta/classes/kernel-devicetree.bbclass
+++ b/poky/meta/classes/kernel-devicetree.bbclass
@@ -83,21 +83,29 @@
 		dtb_base_name=`basename $dtb .$dtb_ext`
 		install -d $deployDir
 		install -m 0644 ${D}/${KERNEL_IMAGEDEST}/$dtb_base_name.$dtb_ext $deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext
-		ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext $deployDir/$dtb_base_name.$dtb_ext
-		ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext $deployDir/$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext
+		if [ "${KERNEL_IMAGETYPE_SYMLINK}" = "1" ] ; then
+			ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext $deployDir/$dtb_base_name.$dtb_ext
+		fi
+		if [ -n "${KERNEL_DTB_LINK_NAME}" ] ; then
+			ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext $deployDir/$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext
+		fi
 		for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
 			if [ "$type" = "zImage" ] && [ "${KERNEL_DEVICETREE_BUNDLE}" = "1" ]; then
 				cat ${D}/${KERNEL_IMAGEDEST}/$type \
 					$deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
-					> $deployDir/$type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
-				ln -sf $type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \
-					$deployDir/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
+					> $deployDir/$type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
+				if [ -n "${KERNEL_DTB_LINK_NAME}" ]; then
+					ln -sf $type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT} \
+						$deployDir/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
+				fi
 				if [ -e "${KERNEL_OUTPUT_DIR}/${type}.initramfs" ]; then
 					cat ${KERNEL_OUTPUT_DIR}/${type}.initramfs \
 						$deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
-						>  $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
-					ln -sf ${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \
-						$deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
+						>  $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
+					if [ -n "${KERNEL_DTB_LINK_NAME}" ]; then
+						ln -sf ${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT} \
+							$deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
+					fi
 				fi
 			fi
 		done
diff --git a/poky/meta/classes/kernel-fitimage.bbclass b/poky/meta/classes/kernel-fitimage.bbclass
index 8718ce7..b0c971b 100644
--- a/poky/meta/classes/kernel-fitimage.bbclass
+++ b/poky/meta/classes/kernel-fitimage.bbclass
@@ -722,22 +722,30 @@
 		if [ "${INITRAMFS_IMAGE_BUNDLE}" != "1" ]; then
 			echo "Copying fit-image.its source file..."
 			install -m 0644 ${B}/fit-image.its "$deployDir/fitImage-its-${KERNEL_FIT_NAME}.its"
-			ln -snf fitImage-its-${KERNEL_FIT_NAME}.its "$deployDir/fitImage-its-${KERNEL_FIT_LINK_NAME}"
+			if [ -n "${KERNEL_FIT_LINK_NAME}" ] ; then
+				ln -snf fitImage-its-${KERNEL_FIT_NAME}.its "$deployDir/fitImage-its-${KERNEL_FIT_LINK_NAME}"
+			fi
 
 			echo "Copying linux.bin file..."
-			install -m 0644 ${B}/linux.bin $deployDir/fitImage-linux.bin-${KERNEL_FIT_NAME}.bin
-			ln -snf fitImage-linux.bin-${KERNEL_FIT_NAME}.bin "$deployDir/fitImage-linux.bin-${KERNEL_FIT_LINK_NAME}"
+			install -m 0644 ${B}/linux.bin $deployDir/fitImage-linux.bin-${KERNEL_FIT_NAME}${KERNEL_FIT_BIN_EXT}
+			if [ -n "${KERNEL_FIT_LINK_NAME}" ] ; then
+				ln -snf fitImage-linux.bin-${KERNEL_FIT_NAME}${KERNEL_FIT_BIN_EXT} "$deployDir/fitImage-linux.bin-${KERNEL_FIT_LINK_NAME}"
+			fi
 		fi
 
 		if [ -n "${INITRAMFS_IMAGE}" ]; then
 			echo "Copying fit-image-${INITRAMFS_IMAGE}.its source file..."
 			install -m 0644 ${B}/fit-image-${INITRAMFS_IMAGE}.its "$deployDir/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its"
-			ln -snf fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its "$deployDir/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}"
+			if [ -n "${KERNEL_FIT_LINK_NAME}" ] ; then
+				ln -snf fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its "$deployDir/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}"
+			fi
 
 			if [ "${INITRAMFS_IMAGE_BUNDLE}" != "1" ]; then
 				echo "Copying fitImage-${INITRAMFS_IMAGE} file..."
-				install -m 0644 ${B}/arch/${ARCH}/boot/fitImage-${INITRAMFS_IMAGE} "$deployDir/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin"
-				ln -snf fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin "$deployDir/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}"
+				install -m 0644 ${B}/arch/${ARCH}/boot/fitImage-${INITRAMFS_IMAGE} "$deployDir/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}${KERNEL_FIT_BIN_EXT}"
+				if [ -n "${KERNEL_FIT_LINK_NAME}" ] ; then
+					ln -snf fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}${KERNEL_FIT_BIN_EXT} "$deployDir/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}"
+				fi
 			fi
 		fi
 	fi
diff --git a/poky/meta/classes/kernel.bbclass b/poky/meta/classes/kernel.bbclass
index 7b3c6be..473e28b 100644
--- a/poky/meta/classes/kernel.bbclass
+++ b/poky/meta/classes/kernel.bbclass
@@ -5,7 +5,7 @@
 KERNEL_PACKAGE_NAME ??= "kernel"
 KERNEL_DEPLOYSUBDIR ??= "${@ "" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else d.getVar("KERNEL_PACKAGE_NAME") }"
 
-PROVIDES += "${@ "virtual/kernel" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else "" }"
+PROVIDES += "virtual/kernel"
 DEPENDS += "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc kmod-native bc-native bison-native"
 DEPENDS += "${@bb.utils.contains("INITRAMFS_FSTYPES", "cpio.lzo", "lzop-native", "", d)}"
 DEPENDS += "${@bb.utils.contains("INITRAMFS_FSTYPES", "cpio.lz4", "lz4-native", "", d)}"
@@ -77,7 +77,7 @@
     # KERNEL_IMAGETYPES may contain a mixture of image types supported directly
     # by the kernel build system and types which are created by post-processing
     # the output of the kernel build system (e.g. compressing vmlinux ->
-    # vmlinux.gz in kernel_do_compile()).
+    # vmlinux.gz in kernel_do_transform_kernel()).
     # KERNEL_IMAGETYPE_FOR_MAKE should contain only image types supported
     # directly by the kernel build system.
     if not d.getVar('KERNEL_IMAGETYPE_FOR_MAKE'):
@@ -134,6 +134,8 @@
     # standalone for use by wic and other tools.
     if image:
         d.appendVarFlag('do_bundle_initramfs', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete')
+    if image and bb.utils.to_boolean(d.getVar('INITRAMFS_IMAGE_BUNDLE')):
+        bb.build.addtask('do_transform_bundled_initramfs', 'do_deploy', 'do_bundle_initramfs', d)
 
     # NOTE: setting INITRAMFS_TASK is for backward compatibility
     #       The preferred method is to set INITRAMFS_IMAGE, because
@@ -316,6 +318,14 @@
 }
 do_bundle_initramfs[dirs] = "${B}"
 
+kernel_do_transform_bundled_initramfs() {
+        # vmlinux.gz is not built by kernel
+	if (echo "${KERNEL_IMAGETYPES}" | grep -wq "vmlinux\.gz"); then
+		gzip -9cn < ${KERNEL_OUTPUT_DIR}/vmlinux.initramfs > ${KERNEL_OUTPUT_DIR}/vmlinux.gz.initramfs
+        fi
+}
+do_transform_bundled_initramfs[dirs] = "${B}"
+
 python do_devshell:prepend () {
     os.environ["LDFLAGS"] = ''
 }
@@ -326,6 +336,13 @@
 
 kernel_do_compile() {
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
+
+	# setup native pkg-config variables (kconfig scripts call pkg-config directly, cannot generically be overriden to pkg-config-native)
+	export PKG_CONFIG_DIR="${STAGING_DIR_NATIVE}${libdir_native}/pkgconfig"
+	export PKG_CONFIG_PATH="$PKG_CONFIG_DIR:${STAGING_DATADIR_NATIVE}/pkgconfig"
+	export PKG_CONFIG_LIBDIR="$PKG_CONFIG_DIR"
+	export PKG_CONFIG_SYSROOT_DIR=""
+
 	if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "1" ]; then
 		# kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not
 		# be set....
@@ -357,12 +374,17 @@
 	for typeformake in ${KERNEL_IMAGETYPE_FOR_MAKE} ; do
 		oe_runmake ${typeformake} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd
 	done
+}
+
+kernel_do_transform_kernel() {
 	# vmlinux.gz is not built by kernel
 	if (echo "${KERNEL_IMAGETYPES}" | grep -wq "vmlinux\.gz"); then
 		mkdir -p "${KERNEL_OUTPUT_DIR}"
 		gzip -9cn < ${B}/vmlinux > "${KERNEL_OUTPUT_DIR}/vmlinux.gz"
 	fi
 }
+do_transform_kernel[dirs] = "${B}"
+addtask transform_kernel after do_compile before do_install
 
 do_compile_kernelmodules() {
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
@@ -614,11 +636,11 @@
 
 KCONFIG_CONFIG_COMMAND:append = " LD='${KERNEL_LD}' HOSTLDFLAGS='${BUILD_LDFLAGS}'"
 
-EXPORT_FUNCTIONS do_compile do_install do_configure
+EXPORT_FUNCTIONS do_compile do_transform_kernel do_transform_bundled_initramfs do_install do_configure
 
 # kernel-base becomes kernel-${KERNEL_VERSION}
 # kernel-image becomes kernel-image-${KERNEL_VERSION}
-PACKAGES = "${KERNEL_PACKAGE_NAME} ${KERNEL_PACKAGE_NAME}-base ${KERNEL_PACKAGE_NAME}-vmlinux ${KERNEL_PACKAGE_NAME}-image ${KERNEL_PACKAGE_NAME}-dev ${KERNEL_PACKAGE_NAME}-modules"
+PACKAGES = "${KERNEL_PACKAGE_NAME} ${KERNEL_PACKAGE_NAME}-base ${KERNEL_PACKAGE_NAME}-vmlinux ${KERNEL_PACKAGE_NAME}-image ${KERNEL_PACKAGE_NAME}-dev ${KERNEL_PACKAGE_NAME}-modules ${KERNEL_PACKAGE_NAME}-dbg"
 FILES:${PN} = ""
 FILES:${KERNEL_PACKAGE_NAME}-base = "${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.order ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo"
 FILES:${KERNEL_PACKAGE_NAME}-image = ""
@@ -678,30 +700,19 @@
 }
 addtask kernel_link_images after do_compile before do_strip
 
-do_strip() {
-	if [ -n "${KERNEL_IMAGE_STRIP_EXTRA_SECTIONS}" ]; then
-		if ! (echo "${KERNEL_IMAGETYPES}" | grep -wq "vmlinux"); then
-			bbwarn "image type(s) will not be stripped (not supported): ${KERNEL_IMAGETYPES}"
-			return
-		fi
+python do_strip() {
+    import shutil
 
-		cd ${B}
-		headers=`"$CROSS_COMPILE"readelf -S ${KERNEL_OUTPUT_DIR}/vmlinux | \
-			  grep "^ \{1,\}\[[0-9 ]\{1,\}\] [^ ]" | \
-			  sed "s/^ \{1,\}\[[0-9 ]\{1,\}\] //" | \
-			  gawk '{print $1}'`
+    strip = d.getVar('STRIP')
+    extra_sections = d.getVar('KERNEL_IMAGE_STRIP_EXTRA_SECTIONS')
+    kernel_image = d.getVar('B') + "/" + d.getVar('KERNEL_OUTPUT_DIR') + "/vmlinux"
 
-		for str in ${KERNEL_IMAGE_STRIP_EXTRA_SECTIONS}; do {
-			if ! (echo "$headers" | grep -q "^$str$"); then
-				bbwarn "Section not found: $str";
-			fi
-
-			"$CROSS_COMPILE"strip -s -R $str ${KERNEL_OUTPUT_DIR}/vmlinux
-		}; done
-
-		bbnote "KERNEL_IMAGE_STRIP_EXTRA_SECTIONS is set, stripping sections:" \
-			"${KERNEL_IMAGE_STRIP_EXTRA_SECTIONS}"
-	fi;
+    if (extra_sections and kernel_image.find('boot/vmlinux') != -1):
+        kernel_image_stripped = kernel_image + ".stripped"
+        shutil.copy2(kernel_image, kernel_image_stripped)
+        oe.package.runstrip((kernel_image_stripped, 8, strip, extra_sections))
+        bb.debug(1, "KERNEL_IMAGE_STRIP_EXTRA_SECTIONS is set, stripping sections: " + \
+            extra_sections)
 }
 do_strip[dirs] = "${B}"
 
@@ -746,9 +757,18 @@
 
 	for imageType in ${KERNEL_IMAGETYPES} ; do
 		baseName=$imageType-${KERNEL_IMAGE_NAME}
-		install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType $deployDir/$baseName.bin
-		ln -sf $baseName.bin $deployDir/$imageType-${KERNEL_IMAGE_LINK_NAME}.bin
-		ln -sf $baseName.bin $deployDir/$imageType
+
+		if [ -s ${KERNEL_OUTPUT_DIR}/$imageType.stripped ] ; then
+			install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType.stripped $deployDir/$baseName${KERNEL_IMAGE_BIN_EXT}
+		else
+			install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType $deployDir/$baseName${KERNEL_IMAGE_BIN_EXT}
+		fi
+		if [ -n "${KERNEL_IMAGE_LINK_NAME}" ] ; then
+			ln -sf $baseName${KERNEL_IMAGE_BIN_EXT} $deployDir/$imageType-${KERNEL_IMAGE_LINK_NAME}${KERNEL_IMAGE_BIN_EXT}
+		fi
+		if [ "${KERNEL_IMAGETYPE_SYMLINK}" = "1" ] ; then
+			ln -sf $baseName${KERNEL_IMAGE_BIN_EXT} $deployDir/$imageType
+		fi
 	done
 
 	if [ ${MODULE_TARBALL_DEPLOY} = "1" ] && (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
@@ -761,17 +781,21 @@
 		TAR_ARGS="$TAR_ARGS --owner=0 --group=0"
 		tar $TAR_ARGS -cv -C ${D}${root_prefix} lib | gzip -9n > $deployDir/modules-${MODULE_TARBALL_NAME}.tgz
 
-		ln -sf modules-${MODULE_TARBALL_NAME}.tgz $deployDir/modules-${MODULE_TARBALL_LINK_NAME}.tgz
+		if [ -n "${MODULE_TARBALL_LINK_NAME}" ] ; then
+			ln -sf modules-${MODULE_TARBALL_NAME}.tgz $deployDir/modules-${MODULE_TARBALL_LINK_NAME}.tgz
+		fi
 	fi
 
 	if [ ! -z "${INITRAMFS_IMAGE}" -a x"${INITRAMFS_IMAGE_BUNDLE}" = x1 ]; then
-		for imageType in ${KERNEL_IMAGETYPE_FOR_MAKE} ; do
+		for imageType in ${KERNEL_IMAGETYPES} ; do
 			if [ "$imageType" = "fitImage" ] ; then
 				continue
 			fi
 			initramfsBaseName=$imageType-${INITRAMFS_NAME}
-			install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType.initramfs $deployDir/$initramfsBaseName.bin
-			ln -sf $initramfsBaseName.bin $deployDir/$imageType-${INITRAMFS_LINK_NAME}.bin
+			install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType.initramfs $deployDir/$initramfsBaseName${KERNEL_IMAGE_BIN_EXT}
+			if [ -n "${INITRAMFS_LINK_NAME}" ] ; then
+				ln -sf $initramfsBaseName${KERNEL_IMAGE_BIN_EXT} $deployDir/$imageType-${INITRAMFS_LINK_NAME}${KERNEL_IMAGE_BIN_EXT}
+			fi
 		done
 	fi
 }
diff --git a/poky/meta/classes/manpages.bbclass b/poky/meta/classes/manpages.bbclass
index 64b7d8c..5e09c77 100644
--- a/poky/meta/classes/manpages.bbclass
+++ b/poky/meta/classes/manpages.bbclass
@@ -12,13 +12,14 @@
 # only add man-db to RDEPENDS when manual files are built and installed
 RDEPENDS:${MAN_PKG} += "${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'man-db', '', d)}"
 
-pkg_postinst:append:${MAN_PKG} () {
+pkg_postinst:${MAN_PKG}:append () {
 	# only update manual page index caches when manual files are built and installed
 	if ${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'true', 'false', d)}; then
 		if test -n "$D"; then
-			if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true','false', d)}; then
+			if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then
 				sed "s:\(\s\)/:\1$D/:g" $D${sysconfdir}/man_db.conf | ${@qemu_run_binary(d, '$D', '${bindir}/mandb')} -C - -u -q $D${mandir}
 				chown -R root:root $D${mandir}
+
 				mkdir -p $D${localstatedir}/cache/man
 				cd $D${mandir}
 				find . -name index.db | while read index; do
@@ -36,7 +37,7 @@
 	fi
 }
 
-pkg_postrm:append:${MAN_PKG} () {
+pkg_postrm:${MAN_PKG}:append () {
 	# only update manual page index caches when manual files are built and installed
 	if ${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'true', 'false', d)}; then
 		mandb -q
diff --git a/poky/meta/classes/meson.bbclass b/poky/meta/classes/meson.bbclass
index da58cb4..0bfe945 100644
--- a/poky/meta/classes/meson.bbclass
+++ b/poky/meta/classes/meson.bbclass
@@ -1,7 +1,12 @@
-inherit python3native meson-routines
+inherit python3native meson-routines qemu
 
 DEPENDS:append = " meson-native ninja-native"
 
+EXEWRAPPER_ENABLED:class-native = "False"
+EXEWRAPPER_ENABLED:class-nativesdk = "False"
+EXEWRAPPER_ENABLED ?= "${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'True', 'False', d)}"
+DEPENDS:append = "${@' qemu-native' if d.getVar('EXEWRAPPER_ENABLED') == 'True' else ''}"
+
 # As Meson enforces out-of-tree builds we can just use cleandirs
 B = "${WORKDIR}/build"
 do_configure[cleandirs] = "${B}"
@@ -36,8 +41,18 @@
 MESON_CROSS_FILE:class-target = "--cross-file ${WORKDIR}/meson.cross"
 MESON_CROSS_FILE:class-nativesdk = "--cross-file ${WORKDIR}/meson.cross"
 
+# Needed to set up qemu wrapper below
+export STAGING_DIR_HOST
+
+def rust_tool(d, target_var):
+    rustc = d.getVar('RUSTC')
+    if not rustc:
+        return ""
+    cmd = [rustc, "--target", d.getVar(target_var)] + d.getVar("RUSTFLAGS").split()
+    return "rust = %s" % repr(cmd)
+
 addtask write_config before do_configure
-do_write_config[vardeps] += "CC CXX LD AR NM STRIP READELF CFLAGS CXXFLAGS LDFLAGS"
+do_write_config[vardeps] += "CC CXX LD AR NM STRIP READELF CFLAGS CXXFLAGS LDFLAGS RUSTC RUSTFLAGS"
 do_write_config() {
     # This needs to be Py to split the args into single-element lists
     cat >${WORKDIR}/meson.cross <<EOF
@@ -48,11 +63,14 @@
 nm = ${@meson_array('NM', d)}
 strip = ${@meson_array('STRIP', d)}
 readelf = ${@meson_array('READELF', d)}
+objcopy = ${@meson_array('OBJCOPY', d)}
 pkgconfig = 'pkg-config'
 llvm-config = 'llvm-config${LLVMVERSION}'
 cups-config = 'cups-config'
 g-ir-scanner = '${STAGING_BINDIR}/g-ir-scanner-wrapper'
 g-ir-compiler = '${STAGING_BINDIR}/g-ir-compiler-wrapper'
+${@rust_tool(d, "HOST_SYS")}
+${@"exe_wrapper = '${WORKDIR}/meson-qemuwrapper'" if d.getVar('EXEWRAPPER_ENABLED') == 'True' else ""}
 
 [built-in options]
 c_args = ${@meson_array('CFLAGS', d)}
@@ -62,7 +80,6 @@
 
 [properties]
 needs_exe_wrapper = true
-gtkdoc_exe_wrapper = '${B}/gtkdoc-qemuwrapper'
 
 [host_machine]
 system = '${@meson_operating_system('HOST_OS', d)}'
@@ -85,7 +102,9 @@
 nm = ${@meson_array('BUILD_NM', d)}
 strip = ${@meson_array('BUILD_STRIP', d)}
 readelf = ${@meson_array('BUILD_READELF', d)}
+objcopy = ${@meson_array('BUILD_OBJCOPY', d)}
 pkgconfig = 'pkg-config-native'
+${@rust_tool(d, "BUILD_SYS")}
 
 [built-in options]
 c_args = ${@meson_array('BUILD_CFLAGS', d)}
@@ -95,6 +114,24 @@
 EOF
 }
 
+do_write_config:append:class-target() {
+    # Write out a qemu wrapper that will be used as exe_wrapper so that meson
+    # can run target helper binaries through that.
+    qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}"
+    cat > ${WORKDIR}/meson-qemuwrapper << EOF
+#!/bin/sh
+# Use a modules directory which doesn't exist so we don't load random things
+# which may then get deleted (or their dependencies) and potentially segfault
+export GIO_MODULE_DIR=${STAGING_LIBDIR}/gio/modules-dummy
+
+# meson sets this wrongly (only to libs in build-dir), qemu_wrapper_cmdline() and GIR_EXTRA_LIBS_PATH take care of it properly
+unset LD_LIBRARY_PATH
+
+$qemu_binary "\$@"
+EOF
+    chmod +x ${WORKDIR}/meson-qemuwrapper
+}
+
 # Tell externalsrc that changes to this file require a reconfigure
 CONFIGURE_FILES = "meson.build"
 
diff --git a/poky/meta/classes/mirrors.bbclass b/poky/meta/classes/mirrors.bbclass
index 1afce92..8e7b35d 100644
--- a/poky/meta/classes/mirrors.bbclass
+++ b/poky/meta/classes/mirrors.bbclass
@@ -1,74 +1,76 @@
 MIRRORS += "\
-${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian/20180310T215105Z/pool \n \
-${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20120328T092752Z/debian/pool \n \
-${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20110127T084257Z/debian/pool \n \
-${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20090802T004153Z/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.de.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.au.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.cl.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.hr.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.fi.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.hk.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.hu.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.ie.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.it.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.jp.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.no.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.pl.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.ro.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.si.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.es.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.se.debian.org/debian/pool \n \
-${DEBIAN_MIRROR}	http://ftp.tr.debian.org/debian/pool \n \
-${GNU_MIRROR}	https://mirrors.kernel.org/gnu \n \
-${KERNELORG_MIRROR}	http://www.kernel.org/pub \n \
-${GNUPG_MIRROR}	ftp://ftp.gnupg.org/gcrypt \n \
-${GNUPG_MIRROR}	ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt \n \
-${GNUPG_MIRROR}	ftp://mirrors.dotsrc.org/gcrypt \n \
-ftp://dante.ctan.org/tex-archive ftp://ftp.fu-berlin.de/tex/CTAN \n \
-ftp://dante.ctan.org/tex-archive http://sunsite.sut.ac.jp/pub/archives/ctan/ \n \
-ftp://dante.ctan.org/tex-archive http://ctan.unsw.edu.au/ \n \
-ftp://ftp.gnutls.org/gcrypt/gnutls ${GNUPG_MIRROR}/gnutls \n \
-http://ftp.info-zip.org/pub/infozip/src/ ftp://sunsite.icm.edu.pl/pub/unix/archiving/info-zip/src/ \n \
-http://www.mirrorservice.org/sites/lsof.itap.purdue.edu/pub/tools/unix/lsof/ http://www.mirrorservice.org/sites/lsof.itap.purdue.edu/pub/tools/unix/lsof/OLD/ \n \
-${APACHE_MIRROR}  http://www.us.apache.org/dist \n \
-${APACHE_MIRROR}  http://archive.apache.org/dist \n \
-http://downloads.sourceforge.net/watchdog/ http://fossies.org/linux/misc/ \n \
-${SAVANNAH_GNU_MIRROR} http://download-mirror.savannah.gnu.org/releases \n \
-${SAVANNAH_NONGNU_MIRROR} http://download-mirror.savannah.nongnu.org/releases \n \
-ftp://sourceware.org/pub http://mirrors.kernel.org/sourceware \n \
-ftp://sourceware.org/pub http://gd.tuwien.ac.at/gnu/sourceware \n \
-ftp://sourceware.org/pub http://ftp.gwdg.de/pub/linux/sources.redhat.com/sourceware \n \
-cvs://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n \
-svn://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n \
-git://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n \
-hg://.*/.*      http://downloads.yoctoproject.org/mirror/sources/ \n \
-bzr://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n \
-p4://.*/.*      http://downloads.yoctoproject.org/mirror/sources/ \n \
-osc://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n \
-https?$://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
-ftp://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n \
-npm://.*/?.*    http://downloads.yoctoproject.org/mirror/sources/ \n \
-cvs://.*/.*     http://sources.openembedded.org/ \n \
-svn://.*/.*     http://sources.openembedded.org/ \n \
-git://.*/.*     http://sources.openembedded.org/ \n \
-hg://.*/.*      http://sources.openembedded.org/ \n \
-bzr://.*/.*     http://sources.openembedded.org/ \n \
-p4://.*/.*      http://sources.openembedded.org/ \n \
-osc://.*/.*     http://sources.openembedded.org/ \n \
-https?$://.*/.* http://sources.openembedded.org/ \n \
-ftp://.*/.*     http://sources.openembedded.org/ \n \
-npm://.*/?.*    http://sources.openembedded.org/ \n \
-${CPAN_MIRROR}  http://cpan.metacpan.org/ \n \
-${CPAN_MIRROR}  http://search.cpan.org/CPAN/ \n \
+${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian/20180310T215105Z/pool \
+${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20120328T092752Z/debian/pool \
+${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20110127T084257Z/debian/pool \
+${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20090802T004153Z/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.de.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.au.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.cl.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.hr.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.fi.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.hk.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.hu.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.ie.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.it.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.jp.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.no.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.pl.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.ro.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.si.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.es.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.se.debian.org/debian/pool \
+${DEBIAN_MIRROR}	http://ftp.tr.debian.org/debian/pool \
+${GNU_MIRROR}	https://mirrors.kernel.org/gnu \
+${KERNELORG_MIRROR}	http://www.kernel.org/pub \
+${GNUPG_MIRROR}	ftp://ftp.gnupg.org/gcrypt \
+${GNUPG_MIRROR}	ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt \
+${GNUPG_MIRROR}	ftp://mirrors.dotsrc.org/gcrypt \
+ftp://dante.ctan.org/tex-archive ftp://ftp.fu-berlin.de/tex/CTAN \
+ftp://dante.ctan.org/tex-archive http://sunsite.sut.ac.jp/pub/archives/ctan/ \
+ftp://dante.ctan.org/tex-archive http://ctan.unsw.edu.au/ \
+ftp://ftp.gnutls.org/gcrypt/gnutls ${GNUPG_MIRROR}/gnutls \
+http://ftp.info-zip.org/pub/infozip/src/ ftp://sunsite.icm.edu.pl/pub/unix/archiving/info-zip/src/ \
+http://www.mirrorservice.org/sites/lsof.itap.purdue.edu/pub/tools/unix/lsof/ http://www.mirrorservice.org/sites/lsof.itap.purdue.edu/pub/tools/unix/lsof/OLD/ \
+${APACHE_MIRROR}  http://www.us.apache.org/dist \
+${APACHE_MIRROR}  http://archive.apache.org/dist \
+http://downloads.sourceforge.net/watchdog/ http://fossies.org/linux/misc/ \
+${SAVANNAH_GNU_MIRROR} http://download-mirror.savannah.gnu.org/releases \
+${SAVANNAH_NONGNU_MIRROR} http://download-mirror.savannah.nongnu.org/releases \
+ftp://sourceware.org/pub http://mirrors.kernel.org/sourceware \
+ftp://sourceware.org/pub http://gd.tuwien.ac.at/gnu/sourceware \
+ftp://sourceware.org/pub http://ftp.gwdg.de/pub/linux/sources.redhat.com/sourceware \
+cvs://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \
+svn://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \
+git://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \
+hg://.*/.*      http://downloads.yoctoproject.org/mirror/sources/ \
+bzr://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \
+p4://.*/.*      http://downloads.yoctoproject.org/mirror/sources/ \
+osc://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \
+https?://.*/.*  http://downloads.yoctoproject.org/mirror/sources/ \
+ftp://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \
+npm://.*/?.*    http://downloads.yoctoproject.org/mirror/sources/ \
+cvs://.*/.*     http://sources.openembedded.org/ \
+svn://.*/.*     http://sources.openembedded.org/ \
+git://.*/.*     http://sources.openembedded.org/ \
+hg://.*/.*      http://sources.openembedded.org/ \
+bzr://.*/.*     http://sources.openembedded.org/ \
+p4://.*/.*      http://sources.openembedded.org/ \
+osc://.*/.*     http://sources.openembedded.org/ \
+https?://.*/.*  http://sources.openembedded.org/ \
+ftp://.*/.*     http://sources.openembedded.org/ \
+npm://.*/?.*    http://sources.openembedded.org/ \
+${CPAN_MIRROR}  http://cpan.metacpan.org/ \
+${CPAN_MIRROR}  http://search.cpan.org/CPAN/ \
+https?://downloads.yoctoproject.org/releases/uninative/ https://mirrors.kernel.org/yocto/uninative/ \
+https?://downloads.yoctoproject.org/mirror/sources/ https://mirrors.kernel.org/yocto-sources/ \
 "
 
 # Use MIRRORS to provide git repo fallbacks using the https protocol, for cases
 # where git native protocol fetches may fail due to local firewall rules, etc.
 
 MIRRORS += "\
-git://salsa.debian.org/.*     git://salsa.debian.org/PATH;protocol=https \n \
-git://git.gnome.org/.*        git://gitlab.gnome.org/GNOME/PATH;protocol=https \n \
-git://.*/.*                   git://HOST/PATH;protocol=https \n \
-git://.*/.*                   git://HOST/git/PATH;protocol=https \n \
+git://salsa.debian.org/.*     git://salsa.debian.org/PATH;protocol=https \
+git://git.gnome.org/.*        git://gitlab.gnome.org/GNOME/PATH;protocol=https \
+git://.*/.*                   git://HOST/PATH;protocol=https \
+git://.*/.*                   git://HOST/git/PATH;protocol=https \
 "
diff --git a/poky/meta/classes/multilib.bbclass b/poky/meta/classes/multilib.bbclass
index 73ad2ab..4a3e582 100644
--- a/poky/meta/classes/multilib.bbclass
+++ b/poky/meta/classes/multilib.bbclass
@@ -92,6 +92,10 @@
 
 python __anonymous () {
     if bb.data.inherits_class('image', d):
+        # set rpm preferred file color for 32-bit multilib image
+        if d.getVar("SITEINFO_BITS") == "32":
+            d.setVar("RPM_PREFER_ELF_ARCH", "1")
+
         variant = d.getVar("BBEXTENDVARIANT")
         import oe.classextend
 
diff --git a/poky/meta/classes/native.bbclass b/poky/meta/classes/native.bbclass
index 76a599b..fc7422c 100644
--- a/poky/meta/classes/native.bbclass
+++ b/poky/meta/classes/native.bbclass
@@ -195,3 +195,34 @@
 
 RECIPERDEPTASK = "do_populate_sysroot"
 do_populate_sysroot[rdeptask] = "${RECIPERDEPTASK}"
+
+#
+# Native task outputs are directly run on the target (host) system after being
+# built. Even if the output of this recipe doesn't change, a change in one of
+# its dependencies may cause a change in the output it generates (e.g. rpm
+# output depends on the output of its dependent zstd library).
+#
+# This can cause poor interactions with hash equivalence, since this recipes
+# output-changing dependency is "hidden" and downstream task only see that this
+# recipe has the same outhash and therefore is equivalent. This can result in
+# different output in different cases.
+#
+# To resolve this, unhide the output-changing dependency by adding its unihash
+# to this tasks outhash calculation. Unfortunately, don't know specifically
+# know which dependencies are output-changing, so we have to add all of them.
+#
+python native_add_do_populate_sysroot_deps () {
+    current_task = "do_" + d.getVar("BB_CURRENTTASK")
+    if current_task != "do_populate_sysroot":
+        return
+
+    taskdepdata = d.getVar("BB_TASKDEPDATA", False)
+    pn = d.getVar("PN")
+    deps = {
+        dep[0]:dep[6] for dep in taskdepdata.values() if
+            dep[1] == current_task and dep[0] != pn
+    }
+
+    d.setVar("HASHEQUIV_EXTRA_SIGDATA", "\n".join("%s: %s" % (k, deps[k]) for k in sorted(deps.keys())))
+}
+SSTATECREATEFUNCS += "native_add_do_populate_sysroot_deps"
diff --git a/poky/meta/classes/nativesdk.bbclass b/poky/meta/classes/nativesdk.bbclass
index 14e2105..f8e9607 100644
--- a/poky/meta/classes/nativesdk.bbclass
+++ b/poky/meta/classes/nativesdk.bbclass
@@ -113,3 +113,5 @@
 USE_NLS = "${SDKUSE_NLS}"
 
 OLDEST_KERNEL = "${SDK_OLDEST_KERNEL}"
+
+PATH:prepend = "${COREBASE}/scripts/nativesdk-intercept:"
diff --git a/poky/meta/classes/overlayfs-etc.bbclass b/poky/meta/classes/overlayfs-etc.bbclass
new file mode 100644
index 0000000..4ced07b
--- /dev/null
+++ b/poky/meta/classes/overlayfs-etc.bbclass
@@ -0,0 +1,76 @@
+# Class for setting up /etc in overlayfs
+#
+# In order to have /etc directory in overlayfs a special handling at early boot stage is required
+# The idea is to supply a custom init script that mounts /etc before launching actual init program,
+# because the latter already requires /etc to be mounted
+#
+# The configuration must be machine specific. You should at least set these three variables:
+#   OVERLAYFS_ETC_MOUNT_POINT ?= "/data"
+#   OVERLAYFS_ETC_FSTYPE ?= "ext4"
+#   OVERLAYFS_ETC_DEVICE ?= "/dev/mmcblk0p2"
+#
+# To control more mount options you should consider setting mount options:
+#   OVERLAYFS_ETC_MOUNT_OPTIONS ?= "defaults"
+#
+# The class provides two options for /sbin/init generation
+# 1. Default option is to rename original /sbin/init to /sbin/init.orig and place generated init under
+#    original name, i.e. /sbin/init. It has an advantage that you won't need to change any kernel
+#    parameters in order to make it work, but it poses a restriction that package-management can't
+#    be used, becaause updating init manager would remove generated script
+# 2. If you are would like to keep original init as is, you can set
+#    OVERLAYFS_ETC_USE_ORIG_INIT_NAME = "0"
+#    Then generated init will be named /sbin/preinit and you would need to extend you kernel parameters
+#    manually in your bootloader configuration.
+#
+# Regardless which mode you choose, update and migration strategy of configuration files under /etc
+# overlay is out of scope of this class
+
+ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "overlayfs-etc", "create_overlayfs_etc_preinit;", "", d)}'
+IMAGE_FEATURES_CONFLICTS_overlayfs-etc = "package-management"
+
+OVERLAYFS_ETC_MOUNT_POINT ??= ""
+OVERLAYFS_ETC_FSTYPE ??= ""
+OVERLAYFS_ETC_DEVICE ??= ""
+OVERLAYFS_ETC_USE_ORIG_INIT_NAME ??= "1"
+OVERLAYFS_ETC_MOUNT_OPTIONS ??= "defaults"
+OVERLAYFS_ETC_INIT_TEMPLATE ??= "${COREBASE}/meta/files/overlayfs-etc-preinit.sh.in"
+
+python create_overlayfs_etc_preinit() {
+    overlayEtcMountPoint = d.getVar("OVERLAYFS_ETC_MOUNT_POINT")
+    overlayEtcFsType = d.getVar("OVERLAYFS_ETC_FSTYPE")
+    overlayEtcDevice = d.getVar("OVERLAYFS_ETC_DEVICE")
+
+    if not overlayEtcMountPoint:
+        bb.fatal("OVERLAYFS_ETC_MOUNT_POINT must be set in your MACHINE configuration")
+    if not overlayEtcDevice:
+        bb.fatal("OVERLAYFS_ETC_DEVICE must be set in your MACHINE configuration")
+    if not overlayEtcFsType:
+        bb.fatal("OVERLAYFS_ETC_FSTYPE should contain a valid file system type on {0}".format(overlayEtcDevice))
+
+    with open(d.getVar("OVERLAYFS_ETC_INIT_TEMPLATE"), "r") as f:
+        PreinitTemplate = f.read()
+
+    useOrigInit = oe.types.boolean(d.getVar('OVERLAYFS_ETC_USE_ORIG_INIT_NAME'))
+    preinitPath = oe.path.join(d.getVar("IMAGE_ROOTFS"), d.getVar("base_sbindir"), "preinit")
+    initBaseName = oe.path.join(d.getVar("base_sbindir"), "init")
+    origInitNameSuffix = ".orig"
+
+    args = {
+        'OVERLAYFS_ETC_MOUNT_POINT': overlayEtcMountPoint,
+        'OVERLAYFS_ETC_MOUNT_OPTIONS': d.getVar('OVERLAYFS_ETC_MOUNT_OPTIONS'),
+        'OVERLAYFS_ETC_FSTYPE': overlayEtcFsType,
+        'OVERLAYFS_ETC_DEVICE': overlayEtcDevice,
+        'SBIN_INIT_NAME': initBaseName + origInitNameSuffix if useOrigInit else initBaseName
+    }
+
+    if useOrigInit:
+        # rename original /sbin/init
+        origInit = oe.path.join(d.getVar("IMAGE_ROOTFS"), initBaseName)
+        bb.debug(1, "rootfs path %s, init path %s, test %s" % (d.getVar('IMAGE_ROOTFS'), origInit, d.getVar("IMAGE_ROOTFS")))
+        bb.utils.rename(origInit, origInit + origInitNameSuffix)
+        preinitPath = origInit
+
+    with open(preinitPath, 'w') as f:
+        f.write(PreinitTemplate.format(**args))
+    os.chmod(preinitPath, 0o755)
+}
diff --git a/poky/meta/classes/overlayfs.bbclass b/poky/meta/classes/overlayfs.bbclass
index 8d9b59c..4a860f7 100644
--- a/poky/meta/classes/overlayfs.bbclass
+++ b/poky/meta/classes/overlayfs.bbclass
@@ -31,44 +31,28 @@
 #   OVERLAYFS_WRITABLE_PATHS[mnt-overlay] = "/usr/share/another-application"
 #
 # Note: the class does not support /etc directory itself, because systemd depends on it
+# For /etc directory use overlayfs-etc class
 
 REQUIRED_DISTRO_FEATURES += "systemd overlayfs"
 
 inherit systemd features_check
 
+OVERLAYFS_CREATE_DIRS_TEMPLATE ??= "${COREBASE}/meta/files/overlayfs-create-dirs.service.in"
+OVERLAYFS_MOUNT_UNIT_TEMPLATE ??= "${COREBASE}/meta/files/overlayfs-unit.mount.in"
+OVERLAYFS_ALL_OVERLAYS_TEMPLATE ??= "${COREBASE}/meta/files/overlayfs-all-overlays.service.in"
+
 python do_create_overlayfs_units() {
-    CreateDirsUnitTemplate = """[Unit]
-Description=Overlayfs directories setup
-Requires={DATA_MOUNT_UNIT}
-After={DATA_MOUNT_UNIT}
-DefaultDependencies=no
+    from oe.overlayfs import mountUnitName
 
-[Service]
-Type=oneshot
-ExecStart=mkdir -p {DATA_MOUNT_POINT}/workdir{LOWERDIR} && mkdir -p {DATA_MOUNT_POINT}/upper{LOWERDIR}
-RemainAfterExit=true
-StandardOutput=journal
-
-[Install]
-WantedBy=multi-user.target
-"""
-    MountUnitTemplate = """[Unit]
-Description=Overlayfs mount unit
-Requires={CREATE_DIRS_SERVICE}
-After={CREATE_DIRS_SERVICE}
-
-[Mount]
-What=overlay
-Where={LOWERDIR}
-Type=overlay
-Options=lowerdir={LOWERDIR},upperdir={DATA_MOUNT_POINT}/upper{LOWERDIR},workdir={DATA_MOUNT_POINT}/workdir{LOWERDIR}
-
-[Install]
-WantedBy=multi-user.target
-"""
+    with open(d.getVar("OVERLAYFS_CREATE_DIRS_TEMPLATE"), "r") as f:
+        CreateDirsUnitTemplate = f.read()
+    with open(d.getVar("OVERLAYFS_MOUNT_UNIT_TEMPLATE"), "r") as f:
+        MountUnitTemplate = f.read()
+    with open(d.getVar("OVERLAYFS_ALL_OVERLAYS_TEMPLATE"), "r") as f:
+        AllOverlaysTemplate = f.read()
 
     def prepareUnits(data, lower):
-        from oe.overlayfs import mountUnitName, helperUnitName
+        from oe.overlayfs import helperUnitName
 
         args = {
             'DATA_MOUNT_POINT': data,
@@ -77,16 +61,39 @@
             'LOWERDIR': lower,
         }
 
+        bb.debug(1, "Generate systemd unit %s" % mountUnitName(lower))
         with open(os.path.join(d.getVar('WORKDIR'), mountUnitName(lower)), 'w') as f:
             f.write(MountUnitTemplate.format(**args))
 
+        bb.debug(1, "Generate helper systemd unit %s" % helperUnitName(lower))
         with open(os.path.join(d.getVar('WORKDIR'), helperUnitName(lower)), 'w') as f:
             f.write(CreateDirsUnitTemplate.format(**args))
 
+    def prepareGlobalUnit(dependentUnits):
+        from oe.overlayfs import allOverlaysUnitName
+        args = {
+            'ALL_OVERLAYFS_UNITS': " ".join(dependentUnits),
+            'PN': d.getVar('PN')
+        }
+
+        bb.debug(1, "Generate systemd unit with all overlays %s" % allOverlaysUnitName(d))
+        with open(os.path.join(d.getVar('WORKDIR'), allOverlaysUnitName(d)), 'w') as f:
+            f.write(AllOverlaysTemplate.format(**args))
+
+    mountUnitList = []
     overlayMountPoints = d.getVarFlags("OVERLAYFS_MOUNT_POINT")
     for mountPoint in overlayMountPoints:
+        bb.debug(1, "Process variable flag %s" % mountPoint)
         for lower in d.getVarFlag('OVERLAYFS_WRITABLE_PATHS', mountPoint).split():
+            bb.debug(1, "Prepare mount unit for %s with data mount point %s" %
+                     (lower, d.getVarFlag('OVERLAYFS_MOUNT_POINT', mountPoint)))
             prepareUnits(d.getVarFlag('OVERLAYFS_MOUNT_POINT', mountPoint), lower)
+            mountUnitList.append(mountUnitName(lower))
+
+    # set up one unit, which depends on all mount units, so users can set
+    # only one dependency in their units to make sure software starts
+    # when all overlays are mounted
+    prepareGlobalUnit(mountUnitList)
 }
 
 # we need to generate file names early during parsing stage
@@ -95,7 +102,7 @@
 
     unitList = unitFileList(d)
     for unit in unitList:
-        d.appendVar('SYSTEMD_SERVICE:' + d.getVar('PN'), ' ' + unit);
+        d.appendVar('SYSTEMD_SERVICE:' + d.getVar('PN'), ' ' + unit)
         d.appendVar('FILES:' + d.getVar('PN'), ' ' + strForBash(unit))
 
     d.setVar('OVERLAYFS_UNIT_LIST', ' '.join([strForBash(s) for s in unitList]))
diff --git a/poky/meta/classes/own-mirrors.bbclass b/poky/meta/classes/own-mirrors.bbclass
index e244de5..ef97274 100644
--- a/poky/meta/classes/own-mirrors.bbclass
+++ b/poky/meta/classes/own-mirrors.bbclass
@@ -1,14 +1,14 @@
 PREMIRRORS:prepend = " \
-cvs://.*/.*     ${SOURCE_MIRROR_URL} \n \
-svn://.*/.*     ${SOURCE_MIRROR_URL} \n \
-git://.*/.*     ${SOURCE_MIRROR_URL} \n \
-gitsm://.*/.*   ${SOURCE_MIRROR_URL} \n \
-hg://.*/.*      ${SOURCE_MIRROR_URL} \n \
-bzr://.*/.*     ${SOURCE_MIRROR_URL} \n \
-p4://.*/.*      ${SOURCE_MIRROR_URL} \n \
-osc://.*/.*     ${SOURCE_MIRROR_URL} \n \
-https?$://.*/.* ${SOURCE_MIRROR_URL} \n \
-ftp://.*/.*     ${SOURCE_MIRROR_URL} \n \
-npm://.*/?.*    ${SOURCE_MIRROR_URL} \n \
-s3://.*/.*      ${SOURCE_MIRROR_URL} \n \
+cvs://.*/.*     ${SOURCE_MIRROR_URL} \
+svn://.*/.*     ${SOURCE_MIRROR_URL} \
+git://.*/.*     ${SOURCE_MIRROR_URL} \
+gitsm://.*/.*   ${SOURCE_MIRROR_URL} \
+hg://.*/.*      ${SOURCE_MIRROR_URL} \
+bzr://.*/.*     ${SOURCE_MIRROR_URL} \
+p4://.*/.*      ${SOURCE_MIRROR_URL} \
+osc://.*/.*     ${SOURCE_MIRROR_URL} \
+https?://.*/.*  ${SOURCE_MIRROR_URL} \
+ftp://.*/.*     ${SOURCE_MIRROR_URL} \
+npm://.*/?.*    ${SOURCE_MIRROR_URL} \
+s3://.*/.*      ${SOURCE_MIRROR_URL} \
 "
diff --git a/poky/meta/classes/package.bbclass b/poky/meta/classes/package.bbclass
index 92eba98..4927fb9 100644
--- a/poky/meta/classes/package.bbclass
+++ b/poky/meta/classes/package.bbclass
@@ -390,10 +390,6 @@
     dvar = d.getVar('PKGD')
     objcopy = d.getVar("OBJCOPY")
 
-    # We ignore kernel modules, we don't generate debug info files.
-    if file.find("/lib/modules/") != -1 and file.endswith(".ko"):
-        return (file, sources)
-
     newmode = None
     if not os.access(file, os.W_OK) or os.access(file, os.R_OK):
         origmode = os.stat(file)[stat.ST_MODE]
@@ -619,6 +615,8 @@
     key = "PKG:%s" % pkg
 
     if key in data:
+        if bb.data.inherits_class('allarch', d) and bb.data.inherits_class('packagegroup', d) and pkg != data[key]:
+            bb.error("An allarch packagegroup shouldn't depend on packages which are dynamically renamed (%s to %s)" % (pkg, data[key]))
         # Have to avoid undoing the write_extra_pkgs(global_variants...)
         if bb.data.inherits_class('allarch', d) and not d.getVar('MULTILIB_VARIANTS') \
             and data[key] == basepkg:
@@ -1120,7 +1118,6 @@
     #
     elffiles = {}
     symlinks = {}
-    kernmods = []
     staticlibs = []
     inodes = {}
     libdir = os.path.abspath(dvar + os.sep + d.getVar("libdir"))
@@ -1143,9 +1140,6 @@
                 if file in skipfiles:
                     continue
 
-                if file.endswith(".ko") and file.find("/lib/modules/") != -1:
-                    kernmods.append(file)
-                    continue
                 if oe.package.is_static_lib(file):
                     staticlibs.append(file)
                     continue
@@ -1162,8 +1156,11 @@
                 if not s:
                     continue
                 # Check its an executable
-                if (s[stat.ST_MODE] & stat.S_IXUSR) or (s[stat.ST_MODE] & stat.S_IXGRP) or (s[stat.ST_MODE] & stat.S_IXOTH) \
-                        or ((file.startswith(libdir) or file.startswith(baselibdir)) and (".so" in f or ".node" in f)):
+                if (s[stat.ST_MODE] & stat.S_IXUSR) or (s[stat.ST_MODE] & stat.S_IXGRP) \
+                        or (s[stat.ST_MODE] & stat.S_IXOTH) \
+                        or ((file.startswith(libdir) or file.startswith(baselibdir)) \
+                        and (".so" in f or ".node" in f)) \
+                        or (f.startswith('vmlinux') or ".ko" in f):
 
                     if cpath.islink(file):
                         checkelflinks[file] = ltarget
@@ -1310,8 +1307,6 @@
             elf_file = int(elffiles[file])
             #bb.note("Strip %s" % file)
             sfiles.append((file, elf_file, strip))
-        for f in kernmods:
-            sfiles.append((f, 16, strip))
         if (d.getVar('PACKAGE_STRIP_STATIC') == '1' or d.getVar('PACKAGE_DEBUG_STATIC_SPLIT') == '1'):
             for f in staticlibs:
                 sfiles.append((f, 16, strip))
@@ -1876,7 +1871,7 @@
                         sonames.add(prov)
                 if libdir_re.match(os.path.dirname(file)):
                     needs_ldconfig = True
-                if snap_symlinks and (os.path.basename(file) != this_soname):
+                if needs_ldconfig and snap_symlinks and (os.path.basename(file) != this_soname):
                     renames.append((file, os.path.join(os.path.dirname(file), this_soname)))
         return (needs_ldconfig, needed, sonames, renames)
 
diff --git a/poky/meta/classes/package_deb.bbclass b/poky/meta/classes/package_deb.bbclass
index 1ae6393..2e75e22 100644
--- a/poky/meta/classes/package_deb.bbclass
+++ b/poky/meta/classes/package_deb.bbclass
@@ -316,6 +316,7 @@
 do_package_write_deb[cleandirs] = "${PKGWRITEDIRDEB}"
 do_package_write_deb[depends] += "${@oe.utils.build_depends_string(d.getVar('PACKAGE_WRITE_DEPS'), 'do_populate_sysroot')}"
 addtask package_write_deb after do_packagedata do_package do_deploy_source_date_epoch before do_build
+do_build[rdeptask] += "do_package_write_deb"
 
 PACKAGEINDEXDEPS += "dpkg-native:do_populate_sysroot"
 PACKAGEINDEXDEPS += "apt-native:do_populate_sysroot"
diff --git a/poky/meta/classes/package_ipk.bbclass b/poky/meta/classes/package_ipk.bbclass
index 902b7f9..f67cb0e 100644
--- a/poky/meta/classes/package_ipk.bbclass
+++ b/poky/meta/classes/package_ipk.bbclass
@@ -275,6 +275,7 @@
 do_package_write_ipk[cleandirs] = "${PKGWRITEDIRIPK}"
 do_package_write_ipk[depends] += "${@oe.utils.build_depends_string(d.getVar('PACKAGE_WRITE_DEPS'), 'do_populate_sysroot')}"
 addtask package_write_ipk after do_packagedata do_package do_deploy_source_date_epoch before do_build
+do_build[rdeptask] += "do_package_write_ipk"
 
 PACKAGEINDEXDEPS += "opkg-utils-native:do_populate_sysroot"
 PACKAGEINDEXDEPS += "opkg-native:do_populate_sysroot"
diff --git a/poky/meta/classes/package_rpm.bbclass b/poky/meta/classes/package_rpm.bbclass
index b075442..e9ff1f7 100644
--- a/poky/meta/classes/package_rpm.bbclass
+++ b/poky/meta/classes/package_rpm.bbclass
@@ -749,6 +749,7 @@
 do_package_write_rpm[cleandirs] = "${PKGWRITEDIRRPM}"
 do_package_write_rpm[depends] += "${@oe.utils.build_depends_string(d.getVar('PACKAGE_WRITE_DEPS'), 'do_populate_sysroot')}"
 addtask package_write_rpm after do_packagedata do_package do_deploy_source_date_epoch before do_build
+do_build[rdeptask] += "do_package_write_rpm"
 
 PACKAGEINDEXDEPS += "rpm-native:do_populate_sysroot"
 PACKAGEINDEXDEPS += "createrepo-c-native:do_populate_sysroot"
diff --git a/poky/meta/classes/populate_sdk_base.bbclass b/poky/meta/classes/populate_sdk_base.bbclass
index fafdd96..16f929b 100644
--- a/poky/meta/classes/populate_sdk_base.bbclass
+++ b/poky/meta/classes/populate_sdk_base.bbclass
@@ -92,6 +92,8 @@
 SDK_EXT_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.target.manifest"
 SDK_EXT_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.host.manifest"
 
+SDK_PRUNE_SYSROOT_DIRS ?= "/dev"
+
 python write_target_sdk_manifest () {
     from oe.sdk import sdk_list_installed_packages
     from oe.utils import format_pkg_list
@@ -103,6 +105,12 @@
         output.write(format_pkg_list(pkgs, 'ver'))
 }
 
+sdk_prune_dirs () {
+    for d in ${SDK_PRUNE_SYSROOT_DIRS}; do
+        rm -rf ${SDK_OUTPUT}${SDKTARGETSYSROOT}$d
+    done
+}
+
 python write_sdk_test_data() {
     from oe.data import export2json
     testdata = "%s/%s.testdata.json" % (d.getVar('SDKDEPLOYDIR'), d.getVar('TOOLCHAIN_OUTPUTNAME'))
@@ -122,8 +130,9 @@
 }
 
 POPULATE_SDK_POST_TARGET_COMMAND:append = " write_sdk_test_data ; "
-POPULATE_SDK_POST_TARGET_COMMAND:append:task-populate-sdk  = " write_target_sdk_manifest ; "
+POPULATE_SDK_POST_TARGET_COMMAND:append:task-populate-sdk  = " write_target_sdk_manifest; sdk_prune_dirs; "
 POPULATE_SDK_POST_HOST_COMMAND:append:task-populate-sdk = " write_host_sdk_manifest; "
+
 SDK_PACKAGING_COMMAND = "${@'${SDK_PACKAGING_FUNC};' if '${SDK_PACKAGING_FUNC}' else ''}"
 SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots; archive_sdk; ${SDK_PACKAGING_COMMAND} "
 
diff --git a/poky/meta/classes/populate_sdk_ext.bbclass b/poky/meta/classes/populate_sdk_ext.bbclass
index 9187f53..ef93b6a 100644
--- a/poky/meta/classes/populate_sdk_ext.bbclass
+++ b/poky/meta/classes/populate_sdk_ext.bbclass
@@ -626,7 +626,7 @@
 	for script in $scripts; do
 		for scriptfn in `find ${SDK_OUTPUT}/${SDKPATH}/${scriptrelpath} -maxdepth 1 -executable -name "$script"`; do
 			targetscriptfn="${SDK_OUTPUT}/${SDKPATHNATIVE}${bindir_nativesdk}/$(basename $scriptfn)"
-			test -e ${targetscriptfn} || lnr ${scriptfn} ${targetscriptfn}
+			test -e ${targetscriptfn} || ln -rs ${scriptfn} ${targetscriptfn}
 		done
 	done
 	# We can't use the same method as above because files in the sysroot won't exist at this point
@@ -634,7 +634,7 @@
 	unfsd_path="${SDK_OUTPUT}/${SDKPATHNATIVE}${bindir_nativesdk}/unfsd"
 	if [ "${SDK_INCLUDE_TOOLCHAIN}" = "1" -a ! -e $unfsd_path ] ; then
 		binrelpath=${@os.path.relpath(d.getVar('STAGING_BINDIR_NATIVE'), d.getVar('TMPDIR'))}
-		lnr ${SDK_OUTPUT}/${SDKPATH}/tmp/$binrelpath/unfsd $unfsd_path
+		ln -rs ${SDK_OUTPUT}/${SDKPATH}/tmp/$binrelpath/unfsd $unfsd_path
 	fi
 	touch ${SDK_OUTPUT}/${SDKPATH}/.devtoolbase
 
diff --git a/poky/meta/classes/python3native.bbclass b/poky/meta/classes/python3native.bbclass
index 13fbaa5..3783c0c 100644
--- a/poky/meta/classes/python3native.bbclass
+++ b/poky/meta/classes/python3native.bbclass
@@ -4,7 +4,7 @@
 EXTRANATIVEPATH += "python3-native"
 DEPENDS:append = " python3-native "
 
-# python-config and other scripts are using distutils modules
+# python-config and other scripts are using sysconfig modules
 # which we patch to access these variables
 export STAGING_INCDIR
 export STAGING_LIBDIR
diff --git a/poky/meta/classes/qemuboot.bbclass b/poky/meta/classes/qemuboot.bbclass
index bf529e9..cc1cbce 100644
--- a/poky/meta/classes/qemuboot.bbclass
+++ b/poky/meta/classes/qemuboot.bbclass
@@ -36,6 +36,8 @@
 #         in system mode, where system is experiencing entropy starvation
 #
 # QB_KERNEL_ROOT: kernel's root, e.g., /dev/vda
+#                 By default "/dev/vda rw" gets passed to the kernel.
+#                 To mount the rootfs read-only QB_KERNEL_ROOT can be set to e.g. "/dev/vda ro".
 #
 # QB_NETWORK_DEVICE: network device, e.g., "-device virtio-net-pci,netdev=net0,mac=@MAC@",
 #                    it needs work with QB_TAP_OPT and QB_SLIRP_OPT.
@@ -91,7 +93,7 @@
 QB_OPT_APPEND ?= ""
 QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@"
 QB_CMDLINE_IP_SLIRP ?= "ip=dhcp"
-QB_CMDLINE_IP_TAP ?= "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0"
+QB_CMDLINE_IP_TAP ?= "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0::eth0:off:8.8.8.8"
 QB_ROOTFS_EXTRA_OPT ?= ""
 QB_GRAPHICS ?= ""
 
@@ -116,7 +118,10 @@
     import configparser
 
     qemuboot = "%s/%s.qemuboot.conf" % (d.getVar('IMGDEPLOYDIR'), d.getVar('IMAGE_NAME'))
-    qemuboot_link = "%s/%s.qemuboot.conf" % (d.getVar('IMGDEPLOYDIR'), d.getVar('IMAGE_LINK_NAME'))
+    if d.getVar('IMAGE_LINK_NAME'):
+        qemuboot_link = "%s/%s.qemuboot.conf" % (d.getVar('IMGDEPLOYDIR'), d.getVar('IMAGE_LINK_NAME'))
+    else:
+        qemuboot_link = ""
     finalpath = d.getVar("DEPLOY_DIR_IMAGE")
     topdir = d.getVar('TOPDIR')
     cf = configparser.ConfigParser()
@@ -151,7 +156,7 @@
     with open(qemuboot, 'w') as f:
         cf.write(f)
 
-    if qemuboot_link != qemuboot:
+    if qemuboot_link and qemuboot_link != qemuboot:
         if os.path.lexists(qemuboot_link):
            os.remove(qemuboot_link)
         os.symlink(os.path.basename(qemuboot), qemuboot_link)
diff --git a/poky/meta/classes/rootfs-postcommands.bbclass b/poky/meta/classes/rootfs-postcommands.bbclass
index 7fe9e3d..74035c3 100644
--- a/poky/meta/classes/rootfs-postcommands.bbclass
+++ b/poky/meta/classes/rootfs-postcommands.bbclass
@@ -21,7 +21,7 @@
 # otherwise kernel or initramfs end up mounting the rootfs read/write
 # (the default) if supported by the underlying storage.
 #
-# We do this with _append because the default value might get set later with ?=
+# We do this with :append because the default value might get set later with ?=
 # and we don't want to disable such a default that by setting a value here.
 APPEND:append = '${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", " ro", "", d)}'
 
@@ -52,7 +52,7 @@
 # the numeric IDs of dynamically created entries remain stable.
 #
 # We want this to run as late as possible, in particular after
-# systemd_sysusers_create and set_user_group. Using _append is not
+# systemd_sysusers_create and set_user_group. Using :append is not
 # enough for that, set_user_group is added that way and would end
 # up running after us.
 SORT_PASSWD_POSTPROCESS_COMMAND ??= " sort_passwd; "
@@ -62,7 +62,7 @@
 }
 
 systemd_create_users () {
-	for conffile in ${IMAGE_ROOTFS}/usr/lib/sysusers.d/systemd.conf ${IMAGE_ROOTFS}/usr/lib/sysusers.d/systemd-remote.conf; do
+	for conffile in ${IMAGE_ROOTFS}/usr/lib/sysusers.d/*.conf; do
 		[ -e $conffile ] || continue
 		grep -v "^#" $conffile | sed -e '/^$/d' | while read type name id comment; do
 		if [ "$type" = "u" ]; then
diff --git a/poky/meta/classes/rootfs_rpm.bbclass b/poky/meta/classes/rootfs_rpm.bbclass
index 3d8d784..bec4d63 100644
--- a/poky/meta/classes/rootfs_rpm.bbclass
+++ b/poky/meta/classes/rootfs_rpm.bbclass
@@ -4,7 +4,7 @@
 
 ROOTFS_PKGMANAGE = "rpm dnf"
 
-# dnf is using our custom distutils, and so will fail without these
+# dnf is using our custom sysconfig module, and so will fail without these
 export STAGING_INCDIR
 export STAGING_LIBDIR
 
diff --git a/poky/meta/classes/sanity.bbclass b/poky/meta/classes/sanity.bbclass
index ddba1e6..f288b4c 100644
--- a/poky/meta/classes/sanity.bbclass
+++ b/poky/meta/classes/sanity.bbclass
@@ -185,37 +185,6 @@
     
     %s""" % msg)
 
-# Check flags associated with a tuning.
-def check_toolchain_tune_args(data, tune, multilib, errs):
-    found_errors = False
-    if check_toolchain_args_present(data, tune, multilib, errs, 'CCARGS'):
-        found_errors = True
-    if check_toolchain_args_present(data, tune, multilib, errs, 'ASARGS'):
-        found_errors = True
-    if check_toolchain_args_present(data, tune, multilib, errs, 'LDARGS'):
-        found_errors = True
-
-    return found_errors
-
-def check_toolchain_args_present(data, tune, multilib, tune_errors, which):
-    args_set = (data.getVar("TUNE_%s" % which) or "").split()
-    args_wanted = (data.getVar("TUNEABI_REQUIRED_%s:tune-%s" % (which, tune)) or "").split()
-    args_missing = []
-
-    # If no args are listed/required, we are done.
-    if not args_wanted:
-        return
-    for arg in args_wanted:
-        if arg not in args_set:
-            args_missing.append(arg)
-
-    found_errors = False
-    if args_missing:
-        found_errors = True
-        tune_errors.append("TUNEABI for %s requires '%s' in TUNE_%s (%s)." %
-                       (tune, ' '.join(args_missing), which, ' '.join(args_set)))
-    return found_errors
-
 # Check a single tune for validity.
 def check_toolchain_tune(data, tune, multilib):
     tune_errors = []
@@ -247,17 +216,6 @@
             bb.debug(2, "  %s: %s" % (feature, valid_tunes[feature]))
         else:
             tune_errors.append("Feature '%s' is not defined." % feature)
-    whitelist = localdata.getVar("TUNEABI_WHITELIST")
-    if whitelist:
-        tuneabi = localdata.getVar("TUNEABI:tune-%s" % tune)
-        if not tuneabi:
-            tuneabi = tune
-        if True not in [x in whitelist.split() for x in tuneabi.split()]:
-            tune_errors.append("Tuning '%s' (%s) cannot be used with any supported tuning/ABI." %
-                (tune, tuneabi))
-        else:
-            if not check_toolchain_tune_args(localdata, tuneabi, multilib, tune_errors):
-                bb.debug(2, "Sanity check: Compiler args OK for %s." % tune)
     if tune_errors:
         return "Tuning '%s' has the following errors:\n" % tune + '\n'.join(tune_errors)
 
@@ -462,13 +420,12 @@
 # Patch before 2.7 can't handle all the features in git-style diffs.  Some
 # patches may incorrectly apply, and others won't apply at all.
 def check_patch_version(sanity_data):
-    from distutils.version import LooseVersion
     import re, subprocess
 
     try:
         result = subprocess.check_output(["patch", "--version"], stderr=subprocess.STDOUT).decode('utf-8')
         version = re.search(r"[0-9.]+", result.splitlines()[0]).group()
-        if LooseVersion(version) < LooseVersion("2.7"):
+        if bb.utils.vercmp_string_op(version, "2.7", "<"):
             return "Your version of patch is older than 2.7 and has bugs which will break builds. Please install a newer version of patch.\n"
         else:
             return None
@@ -478,7 +435,6 @@
 # Unpatched versions of make 3.82 are known to be broken.  See GNU Savannah Bug 30612.
 # Use a modified reproducer from http://savannah.gnu.org/bugs/?30612 to validate.
 def check_make_version(sanity_data):
-    from distutils.version import LooseVersion
     import subprocess
 
     try:
@@ -486,7 +442,7 @@
     except subprocess.CalledProcessError as e:
         return "Unable to execute make --version, exit code %d\n%s\n" % (e.returncode, e.output)
     version = result.split()[2]
-    if LooseVersion(version) == LooseVersion("3.82"):
+    if bb.utils.vercmp_string_op(version, "3.82", "=="):
         # Construct a test file
         f = open("makefile_test", "w")
         f.write("makefile_test.a: makefile_test_a.c makefile_test_b.c makefile_test.a( makefile_test_a.c makefile_test_b.c)\n")
@@ -530,7 +486,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 6.0.
+# Require at least gcc version 7.5.
 #
 # This can be fixed on CentOS-7 with devtoolset-6+
 # https://www.softwarecollections.org/en/scls/rhscl/devtoolset-6/
@@ -539,27 +495,25 @@
 # built buildtools-extended-tarball)
 #
 def check_gcc_version(sanity_data):
-    from distutils.version import LooseVersion
     import subprocess
     
     build_cc, version = oe.utils.get_host_compiler_version(sanity_data)
     if build_cc.strip() == "gcc":
-        if LooseVersion(version) < LooseVersion("6.0"):
-            return "Your version of gcc is older than 6.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"
+        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"
     return None
 
 # Tar version 1.24 and onwards handle overwriting symlinks correctly
 # but earlier versions do not; this needs to work properly for sstate
 # Version 1.28 is needed so opkg-build works correctly when reproducibile builds are enabled
 def check_tar_version(sanity_data):
-    from distutils.version import LooseVersion
     import subprocess
     try:
         result = subprocess.check_output(["tar", "--version"], stderr=subprocess.STDOUT).decode('utf-8')
     except subprocess.CalledProcessError as e:
         return "Unable to execute tar --version, exit code %d\n%s\n" % (e.returncode, e.output)
     version = result.split()[3]
-    if LooseVersion(version) < LooseVersion("1.28"):
+    if bb.utils.vercmp_string_op(version, "1.28", "<"):
         return "Your version of tar is older than 1.28 and does not have the support needed to enable reproducible builds. Please install a newer version of tar (you could use the project's buildtools-tarball from our last release or use scripts/install-buildtools).\n"
     return None
 
@@ -567,14 +521,13 @@
 # The kernel tools assume git >= 1.8.3.1 (verified needed > 1.7.9.5) see #6162 
 # The git fetcher also had workarounds for git < 1.7.9.2 which we've dropped
 def check_git_version(sanity_data):
-    from distutils.version import LooseVersion
     import subprocess
     try:
         result = subprocess.check_output(["git", "--version"], stderr=subprocess.DEVNULL).decode('utf-8')
     except subprocess.CalledProcessError as e:
         return "Unable to execute git --version, exit code %d\n%s\n" % (e.returncode, e.output)
     version = result.split()[2]
-    if LooseVersion(version) < LooseVersion("1.8.3.1"):
+    if bb.utils.vercmp_string_op(version, "1.8.3.1", "<"):
         return "Your version of git is older than 1.8.3.1 and has bugs which will break builds. Please install a newer version of git.\n"
     return None
 
@@ -796,9 +749,8 @@
         status.addresult('The system requires at least Python 3.6 to run. Please update your Python interpreter.\n')
 
     # Check the bitbake version meets minimum requirements
-    from distutils.version import LooseVersion
     minversion = d.getVar('BB_MIN_VERSION')
-    if (LooseVersion(bb.__version__) < LooseVersion(minversion)):
+    if bb.utils.vercmp_string_op(bb.__version__, minversion, "<"):
         status.addresult('Bitbake version %s is required and version %s was found\n' % (minversion, bb.__version__))
 
     sanity_check_locale(d)
diff --git a/poky/meta/classes/scons.bbclass b/poky/meta/classes/scons.bbclass
index 4f3ae50..80f8382 100644
--- a/poky/meta/classes/scons.bbclass
+++ b/poky/meta/classes/scons.bbclass
@@ -5,9 +5,9 @@
 EXTRA_OESCONS ?= ""
 
 do_configure() {
-	if [ -n "${CONFIGURESTAMPFILE}" ]; then
+	if [ -n "${CONFIGURESTAMPFILE}" -a "${S}" = "${B}" ]; then
 		if [ -e "${CONFIGURESTAMPFILE}" -a "`cat ${CONFIGURESTAMPFILE}`" != "${BB_TASKHASH}" -a "${CLEANBROKEN}" != "1" ]; then
-			${STAGING_BINDIR_NATIVE}/scons --clean PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS}
+			${STAGING_BINDIR_NATIVE}/scons --directory=${S} --clean PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS}
 		fi
 
 		mkdir -p `dirname ${CONFIGURESTAMPFILE}`
@@ -16,12 +16,12 @@
 }
 
 scons_do_compile() {
-	${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS} || \
+	${STAGING_BINDIR_NATIVE}/scons --directory=${S} ${PARALLEL_MAKE} PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS} || \
 	die "scons build execution failed."
 }
 
 scons_do_install() {
-	${STAGING_BINDIR_NATIVE}/scons install_root=${D}${prefix} PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS} install || \
+	${STAGING_BINDIR_NATIVE}/scons --directory=${S} install_root=${D}${prefix} PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS} install || \
 	die "scons install execution failed."
 }
 
diff --git a/poky/meta/classes/setuptools3-base.bbclass b/poky/meta/classes/setuptools3-base.bbclass
new file mode 100644
index 0000000..5098ae9
--- /dev/null
+++ b/poky/meta/classes/setuptools3-base.bbclass
@@ -0,0 +1,31 @@
+DEPENDS:append:class-target = " ${PYTHON_PN}-native ${PYTHON_PN}"
+DEPENDS:append:class-nativesdk = " ${PYTHON_PN}-native ${PYTHON_PN}"
+RDEPENDS:${PN} += "${@['', '${PYTHON_PN}-core']['${CLASSOVERRIDE}' == 'class-target']}"
+
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+# LDSHARED is the ld *command* used to create shared library
+export LDSHARED  = "${CCLD} -shared"
+# LDXXSHARED is the ld *command* used to create shared library of C++
+# objects
+export LDCXXSHARED  = "${CXX} -shared"
+# CCSHARED are the C *flags* used to create objects to go into a shared
+# library (module)
+export CCSHARED  = "-fPIC -DPIC"
+# LINKFORSHARED are the flags passed to the $(CC) command that links
+# the python executable
+export LINKFORSHARED = "${SECURITY_CFLAGS} -Xlinker -export-dynamic"
+
+FILES:${PN} += "${libdir}/* ${libdir}/${PYTHON_DIR}/*"
+
+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/setuptools3.bbclass b/poky/meta/classes/setuptools3.bbclass
index 8ca66ee..fd8499d 100644
--- a/poky/meta/classes/setuptools3.bbclass
+++ b/poky/meta/classes/setuptools3.bbclass
@@ -1,4 +1,68 @@
-inherit distutils3
+inherit setuptools3-base
 
+B = "${WORKDIR}/build"
+
+SETUPTOOLS_BUILD_ARGS ?= ""
+SETUPTOOLS_INSTALL_ARGS ?= "--root=${D} \
+    --prefix=${prefix} \
+    --install-lib=${PYTHON_SITEPACKAGES_DIR} \
+    --install-data=${datadir}"
+
+SETUPTOOLS_PYTHON = "python3"
+SETUPTOOLS_PYTHON:class-native = "nativepython3"
+
+SETUPTOOLS_SETUP_PATH ?= "${S}"
+
+setuptools3_do_configure() {
+    :
+}
+
+setuptools3_do_compile() {
+        cd ${SETUPTOOLS_SETUP_PATH}
+        NO_FETCH_BUILD=1 \
+        STAGING_INCDIR=${STAGING_INCDIR} \
+        STAGING_LIBDIR=${STAGING_LIBDIR} \
+        ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
+        build --build-base=${B} ${SETUPTOOLS_BUILD_ARGS} || \
+        bbfatal_log "'${PYTHON_PN} setup.py build ${SETUPTOOLS_BUILD_ARGS}' execution failed."
+}
+setuptools3_do_compile[vardepsexclude] = "MACHINE"
+
+setuptools3_do_install() {
+        cd ${SETUPTOOLS_SETUP_PATH}
+        install -d ${D}${PYTHON_SITEPACKAGES_DIR}
+        STAGING_INCDIR=${STAGING_INCDIR} \
+        STAGING_LIBDIR=${STAGING_LIBDIR} \
+        PYTHONPATH=${D}${PYTHON_SITEPACKAGES_DIR} \
+        ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
+        build --build-base=${B} install --skip-build ${SETUPTOOLS_INSTALL_ARGS} || \
+        bbfatal_log "'${PYTHON_PN} setup.py install ${SETUPTOOLS_INSTALL_ARGS}' execution failed."
+
+        # support filenames with *spaces*
+        find ${D} -name "*.py" -exec grep -q ${D} {} \; \
+                               -exec sed -i -e s:${D}::g {} \;
+
+        for i in ${D}${bindir}/* ${D}${sbindir}/*; do
+            if [ -f "$i" ]; then
+                sed -i -e s:${PYTHON}:${USRBINPATH}/env\ ${SETUPTOOLS_PYTHON}:g $i
+                sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i
+            fi
+        done
+
+        rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/easy-install.pth
+
+        #
+        # FIXME: Bandaid against wrong datadir computation
+        #
+        if [ -e ${D}${datadir}/share ]; then
+            mv -f ${D}${datadir}/share/* ${D}${datadir}/
+            rmdir ${D}${datadir}/share
+        fi
+}
+setuptools3_do_install[vardepsexclude] = "MACHINE"
+
+EXPORT_FUNCTIONS do_configure do_compile do_install
+
+export LDSHARED="${CCLD} -shared"
 DEPENDS += "python3-setuptools-native"
 
diff --git a/poky/meta/classes/sstate.bbclass b/poky/meta/classes/sstate.bbclass
index 6e4eb09..b45da4f 100644
--- a/poky/meta/classes/sstate.bbclass
+++ b/poky/meta/classes/sstate.bbclass
@@ -22,7 +22,7 @@
         components = spec.split(":")
         # Fields 0,5,6 are mandatory, 1 is most useful, 2,3,4 are just for information
         # 7 is for the separators
-        avail = (254 - len(hash + "_" + taskname + extension) - len(components[0]) - len(components[1]) - len(components[5]) - len(components[6]) - 7) // 3
+        avail = (limit - len(hash + "_" + taskname + extension) - len(components[0]) - len(components[1]) - len(components[5]) - len(components[6]) - 7) // 3
         components[2] = components[2][:avail]
         components[3] = components[3][:avail]
         components[4] = components[4][:avail]
@@ -158,6 +158,8 @@
     for task in unique_tasks:
         d.prependVarFlag(task, 'prefuncs', "sstate_task_prefunc ")
         d.appendVarFlag(task, 'postfuncs', " sstate_task_postfunc")
+        d.setVarFlag(task, 'network', '1')
+        d.setVarFlag(task + "_setscene", 'network', '1')
 }
 
 def sstate_init(task, d):
@@ -793,7 +795,9 @@
     shared_state = sstate_state_fromvars(d)
     accelerate = sstate_installpkg(shared_state, d)
     if not accelerate:
-        bb.fatal("No suitable staging package found")
+        msg = "No sstate archive obtainable, will run full task instead."
+        bb.warn(msg)
+        raise bb.BBHandledException(msg)
 
 python sstate_task_prefunc () {
     shared_state = sstate_state_fromvars(d)
@@ -899,13 +903,13 @@
 		ZSTD="pzstd -p ${ZSTD_THREADS}"
 	fi
 
-	tar -I "$ZSTD" -xvf ${SSTATE_PKG}
-	# update .siginfo atime on local/NFS mirror
-	[ -O ${SSTATE_PKG}.siginfo ] && [ -w ${SSTATE_PKG}.siginfo ] && [ -h ${SSTATE_PKG}.siginfo ] && touch -a ${SSTATE_PKG}.siginfo
-	# Use "! -w ||" to return true for read only files
-	[ ! -w ${SSTATE_PKG} ] || touch --no-dereference ${SSTATE_PKG}
-	[ ! -w ${SSTATE_PKG}.sig ] || [ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig
-	[ ! -w ${SSTATE_PKG}.siginfo ] || [ ! -e ${SSTATE_PKG}.siginfo ] || touch --no-dereference ${SSTATE_PKG}.siginfo
+	tar -I "$ZSTD" -xvpf ${SSTATE_PKG}
+	# update .siginfo atime on local/NFS mirror if it is a symbolic link
+	[ ! -h ${SSTATE_PKG}.siginfo ] || touch -a ${SSTATE_PKG}.siginfo 2>/dev/null || true
+	# update each symbolic link instead of any referenced file
+	touch --no-dereference ${SSTATE_PKG} 2>/dev/null || true
+	[ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig 2>/dev/null || true
+	[ ! -e ${SSTATE_PKG}.siginfo ] || touch --no-dereference ${SSTATE_PKG}.siginfo 2>/dev/null || true
 }
 
 BB_HASHCHECK_FUNCTION = "sstate_checkhashes"
@@ -934,12 +938,13 @@
 
         return spec, extrapath, tname
 
+    def getsstatefile(tid, siginfo, d):
+        spec, extrapath, tname = getpathcomponents(tid, d)
+        return extrapath + generate_sstatefn(spec, gethash(tid), tname, siginfo, d)
 
     for tid in sq_data['hash']:
 
-        spec, extrapath, tname = getpathcomponents(tid, d)
-
-        sstatefile = d.expand("${SSTATE_DIR}/" + extrapath + generate_sstatefn(spec, gethash(tid), tname, siginfo, d))
+        sstatefile = d.expand("${SSTATE_DIR}/" + getsstatefile(tid, siginfo, d))
 
         if os.path.exists(sstatefile):
             found.add(tid)
@@ -989,54 +994,49 @@
                 fetcher.checkstatus()
                 bb.debug(2, "SState: Successful fetch test for %s" % srcuri)
                 found.add(tid)
-                if tid in missed:
-                    missed.remove(tid)
+                missed.remove(tid)
             except bb.fetch2.FetchError as e:
-                missed.add(tid)
-                bb.debug(2, "SState: Unsuccessful fetch test for %s (%s)" % (srcuri, e))
+                bb.debug(2, "SState: Unsuccessful fetch test for %s (%s)" % (srcuri, repr(e)))
             except Exception as e:
-                bb.error("SState: cannot test %s: %s" % (srcuri, e))
-            if len(tasklist) >= min_tasks:
+                bb.error("SState: cannot test %s: %s" % (srcuri, repr(e)))
+
+            if progress:
                 bb.event.fire(bb.event.ProcessProgress(msg, len(tasklist) - thread_worker.tasks.qsize()), d)
 
         tasklist = []
-        min_tasks = 100
-        for tid in sq_data['hash']:
-            if tid in found:
-                continue
-            spec, extrapath, tname = getpathcomponents(tid, d)
-            sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), tname, siginfo, d))
+        for tid in missed:
+            sstatefile = d.expand(getsstatefile(tid, siginfo, d))
             tasklist.append((tid, sstatefile))
 
         if tasklist:
             nproc = min(int(d.getVar("BB_NUMBER_THREADS")), len(tasklist))
 
-            if len(tasklist) >= min_tasks:
+            progress = len(tasklist) >= 100
+            if progress:
                 msg = "Checking sstate mirror object availability"
                 bb.event.fire(bb.event.ProcessStarted(msg, len(tasklist)), d)
 
             bb.event.enable_threadlock()
             pool = oe.utils.ThreadedPool(nproc, len(tasklist),
-                    worker_init=checkstatus_init, worker_end=checkstatus_end)
+                    worker_init=checkstatus_init, worker_end=checkstatus_end,
+                    name="sstate_checkhashes-")
             for t in tasklist:
                 pool.add_task(checkstatus, t)
             pool.start()
             pool.wait_completion()
             bb.event.disable_threadlock()
 
-            if len(tasklist) >= min_tasks:
+            if progress:
                 bb.event.fire(bb.event.ProcessFinished(msg), d)
 
     inheritlist = d.getVar("INHERIT")
     if "toaster" in inheritlist:
         evdata = {'missed': [], 'found': []};
         for tid in missed:
-            spec, extrapath, tname = getpathcomponents(tid, d)
-            sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), tname, False, d))
+            sstatefile = d.expand(getsstatefile(tid, False, d))
             evdata['missed'].append((bb.runqueue.fn_from_tid(tid), bb.runqueue.taskname_from_tid(tid), gethash(tid), sstatefile ) )
         for tid in found:
-            spec, extrapath, tname = getpathcomponents(tid, d)
-            sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), tname, False, d))
+            sstatefile = d.expand(getsstatefile(tid, False, d))
             evdata['found'].append((bb.runqueue.fn_from_tid(tid), bb.runqueue.taskname_from_tid(tid), gethash(tid), sstatefile ) )
         bb.event.fire(bb.event.MetadataEvent("MissedSstate", evdata), d)
 
diff --git a/poky/meta/classes/testimage.bbclass b/poky/meta/classes/testimage.bbclass
index 9980b3f..8982489 100644
--- a/poky/meta/classes/testimage.bbclass
+++ b/poky/meta/classes/testimage.bbclass
@@ -36,6 +36,7 @@
 # TEST_OVERALL_TIMEOUT can be used to set the maximum time in seconds the tests will be allowed to run (defaults to no limit).
 # TEST_QEMUPARAMS can be used to pass extra parameters to qemu, e.g. "-m 1024" for setting the amount of ram to 1 GB.
 # TEST_RUNQEMUPARAMS can be used to pass extra parameters to runqemu, e.g. "gl" to enable OpenGL acceleration.
+# QEMU_USE_KVM can be set to "" to disable the use of kvm (by default it is enabled if target_arch == build_arch or both of them are x86 archs)
 
 # TESTIMAGE_BOOT_PATTERNS can be used to override certain patterns used to communicate with the target when booting,
 # if a pattern is not specifically present on this variable a default will be used when booting the target.
@@ -60,7 +61,7 @@
     ping date df ssh scp python perl gi ptest parselogs \
     logrotate connman systemd oe_syslog pam stap ldd xorg \
     kernelmodule gcc buildcpio buildlzip buildgalculator \
-    dnf rpm opkg apt weston"
+    dnf rpm opkg apt weston go rust"
 
 DEFAULT_TEST_SUITES = "${BASICTESTSUITE}"
 
@@ -75,6 +76,7 @@
 
 TEST_SUITES ?= "${DEFAULT_TEST_SUITES}"
 
+QEMU_USE_KVM ?= "1"
 TEST_QEMUBOOT_TIMEOUT ?= "1000"
 TEST_OVERALL_TIMEOUT ?= ""
 TEST_TARGET ?= "qemu"
@@ -137,6 +139,7 @@
 
 addtask testimage
 do_testimage[nostamp] = "1"
+do_testimage[network] = "1"
 do_testimage[depends] += "${TESTIMAGEDEPENDS}"
 do_testimage[lockfiles] += "${TESTIMAGELOCK}"
 
diff --git a/poky/meta/classes/testsdk.bbclass b/poky/meta/classes/testsdk.bbclass
index 758a23a..8b2e74f 100644
--- a/poky/meta/classes/testsdk.bbclass
+++ b/poky/meta/classes/testsdk.bbclass
@@ -36,12 +36,14 @@
 }
 addtask testsdk
 do_testsdk[nostamp] = "1"
+do_testsdk[network] = "1"
 
 python do_testsdkext() {
     import_and_run('TESTSDKEXT_CLASS_NAME', d)
 }
 addtask testsdkext
 do_testsdkext[nostamp] = "1"
+do_testsdkext[network] = "1"
 
 python () {
     if oe.types.boolean(d.getVar("TESTIMAGE_AUTO") or "False"):
diff --git a/poky/meta/classes/uboot-sign.bbclass b/poky/meta/classes/uboot-sign.bbclass
index bae8cad..8d136e9 100644
--- a/poky/meta/classes/uboot-sign.bbclass
+++ b/poky/meta/classes/uboot-sign.bbclass
@@ -131,6 +131,20 @@
 		elif [ -e "${DEPLOYDIR}/${UBOOT_NODTB_IMAGE}" -a -e "$deployed_uboot_dtb_binary" ]; then
 			cd ${DEPLOYDIR}
 			cat ${UBOOT_NODTB_IMAGE} $deployed_uboot_dtb_binary | tee ${B}/${CONFIG_B_PATH}/${UBOOT_BINARY} > ${UBOOT_IMAGE}
+
+			if [ -n "${UBOOT_CONFIG}" ]
+			then
+				for config in ${UBOOT_MACHINE}; do
+					i=$(expr $i + 1);
+					for type in ${UBOOT_CONFIG}; do
+						j=$(expr $j + 1);
+						if [ $j -eq $i ]
+						then
+							cp ${UBOOT_IMAGE} ${B}/${CONFIG_B_PATH}/u-boot-$type.${UBOOT_SUFFIX}
+						fi
+					done
+				done
+			fi
 		else
 			bbwarn "Failure while adding public key to u-boot binary. Verified boot won't be available."
 		fi
@@ -205,7 +219,7 @@
 	fi
 }
 
-# Install SPL dtb and u-boot nodtb to datadir, 
+# Install SPL dtb and u-boot nodtb to datadir,
 install_spl_helper() {
 	if [ -f "${SPL_DIR}/${SPL_DTB_BINARY}" ]; then
 		install -Dm 0644 ${SPL_DIR}/${SPL_DTB_BINARY} ${D}${datadir}/${SPL_DTB_IMAGE}
diff --git a/poky/meta/classes/uninative.bbclass b/poky/meta/classes/uninative.bbclass
index 3c7ccd6..4412d7c 100644
--- a/poky/meta/classes/uninative.bbclass
+++ b/poky/meta/classes/uninative.bbclass
@@ -2,7 +2,7 @@
 UNINATIVE_STAGING_DIR ?= "${STAGING_DIR}"
 
 UNINATIVE_URL ?= "unset"
-UNINATIVE_TARBALL ?= "${BUILD_ARCH}-nativesdk-libc.tar.xz"
+UNINATIVE_TARBALL ?= "${BUILD_ARCH}-nativesdk-libc-${UNINATIVE_VERSION}.tar.xz"
 # Example checksums
 #UNINATIVE_CHECKSUM[aarch64] = "dead"
 #UNINATIVE_CHECKSUM[i686] = "dead"
diff --git a/poky/meta/classes/utility-tasks.bbclass b/poky/meta/classes/utility-tasks.bbclass
index 34d6b8f..0466325 100644
--- a/poky/meta/classes/utility-tasks.bbclass
+++ b/poky/meta/classes/utility-tasks.bbclass
@@ -38,6 +38,7 @@
 
 addtask checkuri
 do_checkuri[nostamp] = "1"
+do_checkuri[network] = "1"
 python do_checkuri() {
     src_uri = (d.getVar('SRC_URI') or "").split()
     if len(src_uri) == 0:
diff --git a/poky/meta/classes/waf.bbclass b/poky/meta/classes/waf.bbclass
index df0ab8d..bc594d3 100644
--- a/poky/meta/classes/waf.bbclass
+++ b/poky/meta/classes/waf.bbclass
@@ -43,14 +43,13 @@
 
 python waf_preconfigure() {
     import subprocess
-    from distutils.version import StrictVersion
     subsrcdir = d.getVar('S')
     python = d.getVar('WAF_PYTHON')
     wafbin = os.path.join(subsrcdir, 'waf')
     try:
         result = subprocess.check_output([python, wafbin, '--version'], cwd=subsrcdir, stderr=subprocess.STDOUT)
         version = result.decode('utf-8').split()[1]
-        if StrictVersion(version) >= StrictVersion("1.8.7"):
+        if bb.utils.vercmp_string_op(version, "1.8.7", ">="):
             d.setVar("WAF_EXTRA_CONF", "--bindir=${bindir} --libdir=${libdir}")
     except subprocess.CalledProcessError as e:
         bb.warn("Unable to execute waf --version, exit code %d. Assuming waf version without bindir/libdir support." % e.returncode)
diff --git a/poky/meta/conf/abi_version.conf b/poky/meta/conf/abi_version.conf
index f406f92..20ca109 100644
--- a/poky/meta/conf/abi_version.conf
+++ b/poky/meta/conf/abi_version.conf
@@ -12,4 +12,4 @@
 # a reset of the equivalence, for example when reproducibility issues break the
 # existing match data. Distros can also append to this value for the same effect.
 #
-HASHEQUIV_HASH_VERSION  = "10"
+HASHEQUIV_HASH_VERSION  = "11"
diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf
index 790f2f7..fba99e8 100644
--- a/poky/meta/conf/bitbake.conf
+++ b/poky/meta/conf/bitbake.conf
@@ -542,7 +542,7 @@
 export BUILD_CCLD = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
 export BUILD_AR = "${BUILD_PREFIX}ar"
 export BUILD_AS = "${BUILD_PREFIX}as ${BUILD_AS_ARCH}"
-export BUILD_RANLIB = "${BUILD_PREFIX}ranlib"
+export BUILD_RANLIB = "${BUILD_PREFIX}ranlib -D"
 export BUILD_STRIP = "${BUILD_PREFIX}strip"
 BUILD_OBJCOPY = "${BUILD_PREFIX}objcopy"
 BUILD_OBJDUMP = "${BUILD_PREFIX}objdump"
@@ -869,8 +869,8 @@
 
 # Normally target distro features will not be applied to native builds:
 # Native distro features on this list will use the target feature value
-DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation debuginfod opengl"
-DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation debuginfod opengl"
+DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation debuginfod opengl wayland"
+DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation debuginfod opengl wayland"
 
 DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig"
 MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode"
diff --git a/poky/meta/conf/distro/include/cve-extra-exclusions.inc b/poky/meta/conf/distro/include/cve-extra-exclusions.inc
index a6f52b5..e02a4d1 100644
--- a/poky/meta/conf/distro/include/cve-extra-exclusions.inc
+++ b/poky/meta/conf/distro/include/cve-extra-exclusions.inc
@@ -44,7 +44,14 @@
 # exposing this interface in an exploitable way
 CVE_CHECK_WHITELIST += "CVE-2020-29509 CVE-2020-29511"
 
-
+# db
+# Since Oracle relicensed bdb, the open source community is slowly but surely replacing bdb with
+# supported and open source friendly alternatives. As a result these CVEs are unlikely to ever be fixed.
+CVE_CHECK_WHITELIST += "CVE-2015-2583 CVE-2015-2624 CVE-2015-2626 CVE-2015-2640 CVE-2015-2654 \
+CVE-2015-2656 CVE-2015-4754 CVE-2015-4764 CVE-2015-4774 CVE-2015-4775 CVE-2015-4776 CVE-2015-4777 \
+CVE-2015-4778 CVE-2015-4779 CVE-2015-4780 CVE-2015-4781 CVE-2015-4782 CVE-2015-4783 CVE-2015-4784 \
+CVE-2015-4785 CVE-2015-4786 CVE-2015-4787 CVE-2015-4788 CVE-2015-4789 CVE-2015-4790 CVE-2016-0682 \
+CVE-2016-0689 CVE-2016-0692 CVE-2016-0694 CVE-2016-3418 CVE-2020-2981"
 
 #### CPE update pending ####
 
diff --git a/poky/meta/conf/distro/include/default-distrovars.inc b/poky/meta/conf/distro/include/default-distrovars.inc
index f91df63..fb0f109 100644
--- a/poky/meta/conf/distro/include/default-distrovars.inc
+++ b/poky/meta/conf/distro/include/default-distrovars.inc
@@ -53,5 +53,5 @@
 # The CONNECTIVITY_CHECK_URIS are used to test whether we can succesfully
 # fetch from the network (and warn you if not). To disable the test set
 # the variable to be empty.
-# Git example url: git://git.yoctoproject.org/yocto-firewall-test;protocol=git;rev=master
+# Git example url: git://git.yoctoproject.org/yocto-firewall-test;protocol=git;rev=master;branch=master
 CONNECTIVITY_CHECK_URIS ?= "https://www.example.com/"
diff --git a/poky/meta/conf/distro/include/default-providers.inc b/poky/meta/conf/distro/include/default-providers.inc
index ea88bd4..6defdca 100644
--- a/poky/meta/conf/distro/include/default-providers.inc
+++ b/poky/meta/conf/distro/include/default-providers.inc
@@ -9,6 +9,7 @@
 PREFERRED_PROVIDER_virtual/nativesdk-libgl ?= "nativesdk-mesa"
 PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
 PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
+PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa"
 PREFERRED_PROVIDER_virtual/mesa ?= "mesa"
 PREFERRED_PROVIDER_virtual/update-alternatives ?= "opkg-utils"
 PREFERRED_PROVIDER_virtual/update-alternatives-native ?= "opkg-utils-native"
diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc
index 8f0b8d3..ae25287 100644
--- a/poky/meta/conf/distro/include/maintainers.inc
+++ b/poky/meta/conf/distro/include/maintainers.inc
@@ -47,9 +47,9 @@
 RECIPE_MAINTAINER:pn-asciidoc = "Yi Zhao <yi.zhao@windriver.com>"
 RECIPE_MAINTAINER:pn-aspell = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-at = "Chen Qi <Qi.Chen@windriver.com>"
-RECIPE_MAINTAINER:pn-at-spi2-atk = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-at-spi2-core = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-atk = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-at-spi2-atk = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-at-spi2-core = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-atk = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-attr = "Chen Qi <Qi.Chen@windriver.com>"
 RECIPE_MAINTAINER:pn-autoconf = "Robert Yang <liezhi.yang@windriver.com>"
 RECIPE_MAINTAINER:pn-autoconf-archive = "Robert Yang <liezhi.yang@windriver.com>"
@@ -128,7 +128,7 @@
 RECIPE_MAINTAINER:pn-cryptodev-module = "Robert Yang <liezhi.yang@windriver.com>"
 RECIPE_MAINTAINER:pn-cryptodev-tests = "Robert Yang <liezhi.yang@windriver.com>"
 RECIPE_MAINTAINER:pn-cups = "Chen Qi <Qi.Chen@windriver.com>"
-RECIPE_MAINTAINER:pn-curl = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER:pn-curl = "Robert Joslyn <robert.joslyn@redrectangle.org>"
 RECIPE_MAINTAINER:pn-cve-update-db-native = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-cwautomacros = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-db = "Unassigned <unassigned@yoctoproject.org>"
@@ -209,6 +209,7 @@
 RECIPE_MAINTAINER:pn-glibc-locale = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-glibc-mtrace = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-glibc-scripts = "Khem Raj <raj.khem@gmail.com>"
+RECIPE_MAINTAINER:pn-glibc-tests = "Lukasz Majewski <lukma@denx.de>"
 RECIPE_MAINTAINER:pn-glibc-testsuite = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-glide = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
 RECIPE_MAINTAINER:pn-gmp = "Khem Raj <raj.khem@gmail.com>"
@@ -293,7 +294,6 @@
 RECIPE_MAINTAINER:pn-kexec-tools = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-keymaps = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-kmod = "Chen Qi <Qi.Chen@windriver.com>"
-RECIPE_MAINTAINER:pn-kmod-native = "Chen Qi <Qi.Chen@windriver.com>"
 RECIPE_MAINTAINER:pn-kmscube = "Carlos Rafael Giani <dv@pseudoterminal.org>"
 RECIPE_MAINTAINER:pn-l3afpad = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-lame = "Michael Opdenacker <michael.opdenacker@bootlin.com>"
@@ -312,7 +312,7 @@
 RECIPE_MAINTAINER:pn-libcgroup = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-libcheck = "Yi Zhao <yi.zhao@windriver.com>"
 RECIPE_MAINTAINER:pn-libcomps = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER:pn-libconvert-asn1-perl = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-libconvert-asn1-perl = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-libcroco = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-libdaemon = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-libdazzle = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -322,7 +322,7 @@
 RECIPE_MAINTAINER:pn-libedit = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-libepoxy = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-liberation-fonts = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER:pn-liberror-perl = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-liberror-perl = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-libevdev = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-libevent = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-libexif = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -343,7 +343,6 @@
 RECIPE_MAINTAINER:pn-libhandy = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-libical = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-libice = "Unassigned <unassigned@yoctoproject.org>"
-RECIPE_MAINTAINER:pn-libid3tag = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libidn2 = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-libinput = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-libjitterentropy = "Ross Burton <ross.burton@arm.com>"
@@ -353,7 +352,7 @@
 RECIPE_MAINTAINER:pn-libmicrohttpd = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-libmnl = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-libmpc = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER:pn-libmodule-build-perl = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-libmodule-build-perl = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-libmodulemd = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-libnewt = "Hongxu Jia <hongxu.jia@windriver.com>"
 RECIPE_MAINTAINER:pn-libnl = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -370,9 +369,9 @@
 RECIPE_MAINTAINER:pn-libpcre2 = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libpipeline = "Wang Mingyu <wangmy@fujitsu.com>"
 RECIPE_MAINTAINER:pn-libpng = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER:pn-libportal = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-libproxy = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-libpthread-stubs = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER:pn-libptytty = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-libpsl = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-librepo = "Wang Mingyu <wangmy@fujitsu.com>"
 RECIPE_MAINTAINER:pn-librsvg = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -389,9 +388,9 @@
 RECIPE_MAINTAINER:pn-libssh2 = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libssp-nonshared = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-libtasn1 = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER:pn-libtest-needs-perl = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-libtest-needs-perl = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-libtheora = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER:pn-libtimedate-perl = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-libtimedate-perl = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-libtirpc = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-libtool = "Robert Yang <liezhi.yang@windriver.com>"
 RECIPE_MAINTAINER:pn-libtool-cross = "Robert Yang <liezhi.yang@windriver.com>"
@@ -400,7 +399,7 @@
 RECIPE_MAINTAINER:pn-libunistring = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-libunwind = "Bruce Ashfield <bruce.ashfield@gmail.com>"
 RECIPE_MAINTAINER:pn-liburcu = "Wang Mingyu <wangmy@fujitsu.com>"
-RECIPE_MAINTAINER:pn-liburi-perl = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-liburi-perl = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-libusb1 = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-libubootenv = "Stefano Babic <sbabic@denx.de>"
 RECIPE_MAINTAINER:pn-libuv = "Armin Kuster <akuster@mvista.com>"
@@ -413,6 +412,7 @@
 RECIPE_MAINTAINER:pn-libx11 = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libxau = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libxcb = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER:pn-libxcvt = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER:pn-libxcomposite = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libxcursor = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libxcrypt = "Khem Raj <raj.khem@gmail.com>"
@@ -428,12 +428,12 @@
 RECIPE_MAINTAINER:pn-libxinerama = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libxkbcommon = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libxkbfile = "Unassigned <unassigned@yoctoproject.org>"
-RECIPE_MAINTAINER:pn-libxml-namespacesupport-perl = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-libxml-parser-perl = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-libxml-perl = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-libxml-sax-base-perl = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-libxml-sax-perl = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-libxml-simple-perl = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-libxml-namespacesupport-perl = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-libxml-parser-perl = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-libxml-perl = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-libxml-sax-base-perl = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-libxml-sax-perl = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-libxml-simple-perl = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-libxml2 = "Hongxu Jia <hongxu.jia@windriver.com>"
 RECIPE_MAINTAINER:pn-libxmu = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libxpm = "Unassigned <unassigned@yoctoproject.org>"
@@ -524,7 +524,6 @@
 RECIPE_MAINTAINER:pn-nativesdk-buildtools-perl-dummy = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER:pn-nativesdk-icecc-toolchain = "Joshua Watt <JPEWhacker@gmail.com>"
 RECIPE_MAINTAINER:pn-nativesdk-libtool = "Richard Purdie <richard.purdie@linuxfoundation.org>"
-RECIPE_MAINTAINER:pn-nativesdk-meson = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-nativesdk-packagegroup-sdk-host = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-nativesdk-qemu-helper = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER:pn-nativesdk-sdk-provides-dummy = "Richard Purdie <richard.purdie@linuxfoundation.org>"
@@ -589,58 +588,71 @@
 RECIPE_MAINTAINER:pn-puzzles = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-python3 = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER:pn-python3-async = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER:pn-python3-atomicwrites = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-python3-attrs = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-python3-atomicwrites = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-attrs = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-cython = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER:pn-python3-dbus = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
 RECIPE_MAINTAINER:pn-python3-dbusmock = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER:pn-python3-docutils = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER:pn-python3-dtschema = "Bruce Ashfield <bruce.ashfield@gmail.com>"
+RECIPE_MAINTAINER:pn-python3-dtschema-wrapper = "Bruce Ashfield <bruce.ashfield@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-pycryptodome = "Joshua Watt <JPEWhacker@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-pycryptodomex = "Joshua Watt <JPEWhacker@gmail.com>"
+RECIPE_MAINTAINER:pn-python3-pyrsistent = "Bruce Ashfield <bruce.ashfield@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-extras = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER:pn-python3-git = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER:pn-python3-gitdb = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER:pn-python3-hypothesis = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-python3-importlib-metadata = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-python3-iniconfig = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-python3-hypothesis = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-idna = "Bruce Ashfield <bruce.ashfield@gmail.com>"
+RECIPE_MAINTAINER:pn-python3-importlib-metadata = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-iniconfig = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-iniparse = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER:pn-python3-jinja2 = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER:pn-python3-jsonpointer = "Bruce Ashfield <bruce.ashfield@gmail.com>"
+RECIPE_MAINTAINER:pn-python3-jsonschema = "Bruce Ashfield <bruce.ashfield@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-libarchive-c = "Joshua Watt <JPEWhacker@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-magic = "Joshua Watt <JPEWhacker@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-mako = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER:pn-python3-markdown = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-markupsafe = "Richard Purdie <richard.purdie@linuxfoundation.org>"
-RECIPE_MAINTAINER:pn-python3-more-itertools = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-python3-more-itertools = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-nose = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER:pn-python3-numpy = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER:pn-python3-packaging = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-python3-pathlib2 = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-python3-packaging = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-pathlib2 = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-pbr = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
 RECIPE_MAINTAINER:pn-python3-pip = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
-RECIPE_MAINTAINER:pn-python3-pluggy = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-python3-py = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-python3-pyyaml = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-python3-pluggy = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-py = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-pyyaml = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-pycairo = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
 RECIPE_MAINTAINER:pn-python3-pyelftools = "Joshua Watt <JPEWhacker@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-pygments = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER:pn-python3-pygobject = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
 RECIPE_MAINTAINER:pn-python3-pyparsing = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER:pn-python3-pytest = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-python3-scons = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-python3-scons-native = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-python3-pytest = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-rfc3339-validator = "Bruce Ashfield <bruce.ashfield@gmail.com>"
+RECIPE_MAINTAINER:pn-python3-rfc3986-validator = "Bruce Ashfield <bruce.ashfield@gmail.com>"
+RECIPE_MAINTAINER:pn-python3-rfc3987 = "Bruce Ashfield <bruce.ashfield@gmail.com>"
+RECIPE_MAINTAINER:pn-python3-ruamel-yaml = "Bruce Ashfield <bruce.ashfield@gmail.com>"
+RECIPE_MAINTAINER:pn-python3-scons = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-scons-native = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-setuptools = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER:pn-python3-setuptools-scm = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-python3-setuptools-scm = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-six = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
 RECIPE_MAINTAINER:pn-python3-smartypants = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-smmap = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER:pn-python3-sortedcontainers = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-python3-sortedcontainers = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-strict-rfc3339 = "Bruce Ashfield <bruce.ashfield@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-subunit = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER:pn-python3-testtools = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER:pn-python3-toml = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-python3-tomli = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-python3-toml = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-tomli = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-typogrify = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER:pn-python3-wcwidth = "Tim Orling <timothy.t.orling@intel.com>"
-RECIPE_MAINTAINER:pn-python3-zipp = "Tim Orling <timothy.t.orling@intel.com>"
+RECIPE_MAINTAINER:pn-python3-vcversioner = "Bruce Ashfield <bruce.ashfield@gmail.com>"
+RECIPE_MAINTAINER:pn-python3-wcwidth = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-webcolors = "Bruce Ashfield <bruce.ashfield@gmail.com>"
+RECIPE_MAINTAINER:pn-python3-zipp = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-qemu = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER:pn-qemu-helper-native = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER:pn-qemu-native = "Richard Purdie <richard.purdie@linuxfoundation.org>"
@@ -651,6 +663,7 @@
 RECIPE_MAINTAINER:pn-quota = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-re2c = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-readline = "Hongxu Jia <hongxu.jia@windriver.com>"
+RECIPE_MAINTAINER:pn-repo = "Jasper Orschulko <Jasper.Orschulko@iris-sensing.com>"
 RECIPE_MAINTAINER:pn-resolvconf = "Chen Qi <Qi.Chen@windriver.com>"
 RECIPE_MAINTAINER:pn-rgb = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-rpcbind = "Hongxu Jia <hongxu.jia@windriver.com>"
@@ -662,8 +675,7 @@
 RECIPE_MAINTAINER:pn-ruby = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-run-postinsts = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-rust = "Randy MacLeod <Randy.MacLeod@windriver.com>"
-RECIPE_MAINTAINER:pn-rustfmt = "Randy MacLeod <Randy.MacLeod@windriver.com>"
-RECIPE_MAINTAINER:pn-rust-cross-${TARGET_ARCH}-${TCLIBC} = "Randy MacLeod <Randy.MacLeod@windriver.com>"
+RECIPE_MAINTAINER:pn-rust-cross-${TUNE_PKGARCH}-${TCLIBC} = "Randy MacLeod <Randy.MacLeod@windriver.com>"
 RECIPE_MAINTAINER:pn-rust-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Randy MacLeod <Randy.MacLeod@windriver.com>"
 RECIPE_MAINTAINER:pn-rust-hello-world = "Randy MacLeod <Randy.MacLeod@windriver.com>"
 RECIPE_MAINTAINER:pn-rust-llvm = "Randy MacLeod <Randy.MacLeod@windriver.com>"
diff --git a/poky/meta/conf/distro/include/no-static-libs.inc b/poky/meta/conf/distro/include/no-static-libs.inc
index 7c6cf35..ee67383 100644
--- a/poky/meta/conf/distro/include/no-static-libs.inc
+++ b/poky/meta/conf/distro/include/no-static-libs.inc
@@ -5,14 +5,6 @@
 DISABLE_STATIC:pn-qemu-native = ""
 DISABLE_STATIC:pn-nativesdk-qemu = ""
 DISABLE_STATIC:pn-qemu-system-native = ""
-# pciutils fails build
-DISABLE_STATIC:pn-pciutils = ""
-# libcap aborts on unrecognised option
-DISABLE_STATIC:pn-libcap = ""
-DISABLE_STATIC:pn-libcap-native = ""
-DISABLE_STATIC:pn-nativesdk-libcap = ""
-# libpcap aborts on unrecognised option
-DISABLE_STATIC:pn-libpcap = ""
 # needed by gdb
 DISABLE_STATIC:pn-readline = ""
 # openjade/sgml-common have build issues without static libs
@@ -31,6 +23,7 @@
 
 EXTRA_OECMAKE:append:pn-libical = " -DSHARED_ONLY=True"
 EXTRA_OECMAKE:append:pn-libjpeg-turbo = " -DENABLE_STATIC=False"
+EXTRA_OECMAKE:append:pn-libjpeg-turbo-native = " -DENABLE_STATIC=False"
 
 EXCONFIG_ARGS:append:pn-ncurses = " --without-normal"
 EXCONFIG_ARGS:append:pn-ncurses-native = " --without-normal"
diff --git a/poky/meta/conf/distro/include/ptest-packagelists.inc b/poky/meta/conf/distro/include/ptest-packagelists.inc
index 2e324f8..c503a6a 100644
--- a/poky/meta/conf/distro/include/ptest-packagelists.inc
+++ b/poky/meta/conf/distro/include/ptest-packagelists.inc
@@ -51,10 +51,12 @@
     python3-atomicwrites-ptest \
     python3-hypothesis-ptest \
     python3-jinja2-ptest \
+    python3-jsonpointer-ptest \
     python3-markupsafe-ptest \
     python3-more-itertools-ptest \
     python3-pluggy-ptest \
     python3-wcwidth-ptest \
+    python3-webcolors-ptest \
     qemu-ptest \
     quilt-ptest \
     sed-ptest \
@@ -62,8 +64,12 @@
     wayland-ptest \
     zlib-ptest \
 "
+PTESTS_FAST:append:libc-glibc = " glibc-tests-ptest"
+PTESTS_PROBLEMS:remove:libc-glibc = "glibc-tests-ptest"
 PTESTS_FAST:remove:mips64 = "qemu-ptest"
-PTESTS_PROBLEMS:append:mips64 = "qemu-ptest"
+PTESTS_PROBLEMS:append:mips64 = " qemu-ptest"
+PTESTS_FAST:remove:riscv32 = "qemu-ptest"
+PTESTS_PROBLEMS:append:riscv32 = " qemu-ptest"
 
 PTESTS_SLOW = "\
     babeltrace-ptest \
diff --git a/poky/meta/conf/distro/include/tclibc-baremetal.inc b/poky/meta/conf/distro/include/tclibc-baremetal.inc
index 86ff93f..f3d27bb 100644
--- a/poky/meta/conf/distro/include/tclibc-baremetal.inc
+++ b/poky/meta/conf/distro/include/tclibc-baremetal.inc
@@ -27,7 +27,7 @@
 TARGET_OS = "elf"
 TARGET_OS:arm = "eabi"
 
-TOOLCHAIN_HOST_TASK ?= "packagegroup-cross-canadian-${MACHINE} nativesdk-qemu"
+TOOLCHAIN_HOST_TASK ?= "packagegroup-cross-canadian-${MACHINE} nativesdk-qemu nativesdk-sdk-provides-dummy"
 TOOLCHAIN_HOST_TASK_ATTEMPTONLY ?= ""
 TOOLCHAIN_TARGET_TASK ?= "libgcc-dev"
 TOOLCHAIN_NEED_CONFIGSITE_CACHE:remove = "virtual/${MLPREFIX}libc zlib ncurses"
diff --git a/poky/meta/conf/distro/include/tclibc-newlib.inc b/poky/meta/conf/distro/include/tclibc-newlib.inc
index e359058..238b430 100644
--- a/poky/meta/conf/distro/include/tclibc-newlib.inc
+++ b/poky/meta/conf/distro/include/tclibc-newlib.inc
@@ -38,7 +38,7 @@
 TARGET_OS = "elf"
 TARGET_OS:arm = "eabi"
 
-TOOLCHAIN_HOST_TASK ?= "packagegroup-cross-canadian-${MACHINE} nativesdk-qemu"
+TOOLCHAIN_HOST_TASK ?= "packagegroup-cross-canadian-${MACHINE} nativesdk-qemu nativesdk-sdk-provides-dummy"
 TOOLCHAIN_TARGET_TASK ?= "${LIBC_DEPENDENCIES}"
 TOOLCHAIN_NEED_CONFIGSITE_CACHE:remove = "zlib ncurses"
 
diff --git a/poky/meta/conf/distro/include/tcmode-default.inc b/poky/meta/conf/distro/include/tcmode-default.inc
index 58f4980..b8b2e7c 100644
--- a/poky/meta/conf/distro/include/tcmode-default.inc
+++ b/poky/meta/conf/distro/include/tcmode-default.inc
@@ -19,15 +19,15 @@
 GCCVERSION ?= "11.%"
 SDKGCCVERSION ?= "${GCCVERSION}"
 BINUVERSION ?= "2.37%"
-GDBVERSION ?= "10.%"
+GDBVERSION ?= "11.%"
 GLIBCVERSION ?= "2.34"
-LINUXLIBCVERSION ?= "5.14%"
-QEMUVERSION ?= "6.1%"
-GOVERSION ?= "1.16%"
+LINUXLIBCVERSION ?= "5.15%"
+QEMUVERSION ?= "6.2%"
+GOVERSION ?= "1.17%"
 # This can not use wildcards like 8.0.% since it is also used in mesa to denote
 # llvm version being used, so always bump it with llvm recipe version bump
 LLVMVERSION ?= "12.0.1"
-RUSTVERSION ?= "1.56.0"
+RUSTVERSION ?= "1.58%"
 
 PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
 PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"
diff --git a/poky/meta/conf/distro/include/yocto-uninative.inc b/poky/meta/conf/distro/include/yocto-uninative.inc
index 3165fc9..6833072 100644
--- a/poky/meta/conf/distro/include/yocto-uninative.inc
+++ b/poky/meta/conf/distro/include/yocto-uninative.inc
@@ -7,8 +7,9 @@
 #
 
 UNINATIVE_MAXGLIBCVERSION = "2.34"
+UNINATIVE_VERSION = "3.4"
 
-UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/3.4/"
+UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/${UNINATIVE_VERSION}/"
 UNINATIVE_CHECKSUM[aarch64] ?= "3013cdda8f0dc6639ce1c80f33eabce66f06b890bd5b58739a6d7a92a0bb7100"
 UNINATIVE_CHECKSUM[i686] ?= "abed500de584aad63ec237546db20cdd0c69d8870a6f8e94ac31721ace64b376"
 UNINATIVE_CHECKSUM[x86_64] ?= "126f4f7f6f21084ee140dac3eb4c536b963837826b7c38599db0b512c3377ba2"
diff --git a/poky/meta/conf/documentation.conf b/poky/meta/conf/documentation.conf
index 80ad8e1..6b50ad0 100644
--- a/poky/meta/conf/documentation.conf
+++ b/poky/meta/conf/documentation.conf
@@ -315,6 +315,7 @@
 PACKAGE_EXTRA_ARCHS[doc] = "Specifies the list of architectures compatible with the device CPU. This variable is useful when you build for several different devices that use miscellaneous processors."
 PACKAGE_INSTALL[doc] = "List of the packages to be installed into the image. The variable is generally not user-defined and uses IMAGE_INSTALL as part of the list."
 PACKAGE_INSTALL_ATTEMPTONLY[doc] = "List of packages attempted to be installed. If a listed package fails to install, the build system does not generate an error. This variable is generally not user-defined."
+PACKAGE_SNAP_LIB_SYMLINKS[doc] = "Rename library files based on their SONAME to avoid an extra layer of indirection through a symlink. Only suitable for a read-only rootfs where libraries are not upgraded in place."
 PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
 PACKAGES[doc] = "The list of packages to be created from the recipe."
 PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
@@ -345,6 +346,8 @@
 
 #Q
 
+QA_EMPTY_DIRS[doc] = "A list of directories that are expected to be empty."
+QA_EMPTY_DIRS_RECOMMENDATION[doc] = "This specifies a recommendation for a directory why it must be empty, which will be included in the error message if the directory is not empty."
 QMAKE_PROFILES[doc] = "Specifies your own subset of .pro files to be built for use with qmake."
 
 #R
@@ -437,9 +440,6 @@
 TOPDIR[doc] = "The Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images."
 TRANSLATED_TARGET_ARCH[doc] = "A sanitized version of TARGET_ARCH. This variable is used where the architecture is needed in a value where underscores are not allowed."
 TUNE_PKGARCH[doc] = "The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages."
-TUNEABI[doc] = "An underlying ABI used by a particular tuning in a given toolchain layer. This feature allows providers using prebuilt libraries to check compatibility of a tuning against their selection of libraries."
-TUNEABI_OVERRIDE[doc] = "If set, ignores TUNEABI_WHITELIST."
-TUNEABI_WHITELIST[doc] = "A whitelist of permissible TUNEABI values.  If the variable is not set, all values are allowed."
 TUNECONFLICTS[doc] = "List of conflicting features for a given feature."
 TUNEVALID[doc] = "Descriptions, stored as flags, of valid tuning features."
 
diff --git a/poky/meta/conf/machine/include/arm/arch-armv8-5a.inc b/poky/meta/conf/machine/include/arm/arch-armv8-5a.inc
new file mode 100644
index 0000000..a1bcb7f
--- /dev/null
+++ b/poky/meta/conf/machine/include/arm/arch-armv8-5a.inc
@@ -0,0 +1,19 @@
+DEFAULTTUNE ?= "armv8-5a"
+
+TUNEVALID[armv8-5a] = "Enable instructions for ARMv8.5-a"
+TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-5a', ' -march=armv8.5-a', '', d)}"
+# TUNE crypto will be handled by arch-armv8a.inc below
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-5a', 'armv8-5a:', '', d)}"
+
+require conf/machine/include/arm/arch-armv8a.inc
+
+# Little Endian base configs
+AVAILTUNES += "armv8-5a armv8-5a-crypto"
+ARMPKGARCH:tune-armv8-5a                    ?= "armv8-5a"
+ARMPKGARCH:tune-armv8-5a-crypto             ?= "armv8-5a"
+TUNE_FEATURES:tune-armv8-5a                  = "aarch64 armv8-5a"
+TUNE_FEATURES:tune-armv8-5a-crypto           = "${TUNE_FEATURES:tune-armv8-5a} crypto"
+PACKAGE_EXTRA_ARCHS:tune-armv8-5a            = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-5a"
+PACKAGE_EXTRA_ARCHS:tune-armv8-5a-crypto     = "${PACKAGE_EXTRA_ARCHS:tune-armv8-5a} armv8-5a-crypto"
+BASE_LIB:tune-armv8-5a                       = "lib64"
+BASE_LIB:tune-armv8-5a-crypto                = "lib64"
diff --git a/poky/meta/conf/machine/include/arm/armv8a/tune-cortexa72.inc b/poky/meta/conf/machine/include/arm/armv8a/tune-cortexa72.inc
index 2a510bd..1a20b04 100644
--- a/poky/meta/conf/machine/include/arm/armv8a/tune-cortexa72.inc
+++ b/poky/meta/conf/machine/include/arm/armv8a/tune-cortexa72.inc
@@ -6,8 +6,12 @@
 require conf/machine/include/arm/arch-armv8a.inc
 
 # Little Endian base configs
-AVAILTUNES += "cortexa72"
+AVAILTUNES += "cortexa72 cortexa72-crypto"
 ARMPKGARCH:tune-cortexa72             = "cortexa72"
-TUNE_FEATURES:tune-cortexa72          = "${TUNE_FEATURES:tune-armv8a-crc-crypto} cortexa72"
-PACKAGE_EXTRA_ARCHS:tune-cortexa72    = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa72"
-BASE_LIB:tune-cortexa72               = "lib64"
+ARMPKGARCH:tune-cortexa72-crypto      = "cortexa72"
+TUNE_FEATURES:tune-cortexa72          = "${TUNE_FEATURES:tune-armv8a-crc} cortexa72"
+TUNE_FEATURES:tune-cortexa72-crypto   = "${TUNE_FEATURES:tune-cortexa72} crypto"
+PACKAGE_EXTRA_ARCHS:tune-cortexa72        = "${PACKAGE_EXTRA_ARCHS:tune-armv8-crc} cortexa72"
+PACKAGE_EXTRA_ARCHS:tune-cortexa72-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa72 cortexa72-crypto"
+BASE_LIB:tune-cortexa72            = "lib64"
+BASE_LIB:tune-cortexa72-crypto     = "lib64"
diff --git a/poky/meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc b/poky/meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc
index fc91daf..13876e7 100644
--- a/poky/meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc
+++ b/poky/meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc
@@ -9,8 +9,12 @@
 require conf/machine/include/arm/arch-armv8a.inc
 
 # Little Endian base configs
-AVAILTUNES                                += "cortexa73"
+AVAILTUNES                                += "cortexa73 cortexa73-crypto"
 ARMPKGARCH:tune-cortexa73                  = "cortexa73"
-TUNE_FEATURES:tune-cortexa73               = "${TUNE_FEATURES:tune-armv8a-crc-crypto} cortexa73"
-PACKAGE_EXTRA_ARCHS:tune-cortexa73         = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa73"
+ARMPKGARCH:tune-cortexa73-crypto           = "cortexa73"
+TUNE_FEATURES:tune-cortexa73               = "${TUNE_FEATURES:tune-armv8a-crc} cortexa73"
+TUNE_FEATURES:tune-cortexa73-crypto        = "${TUNE_FEATURES:tune-cortexa73} crypto"
+PACKAGE_EXTRA_ARCHS:tune-cortexa73         = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa73"
+PACKAGE_EXTRA_ARCHS:tune-cortexa73-crypto  = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa73 cortexa73-crypto"
 BASE_LIB:tune-cortexa73                    = "lib64"
+BASE_LIB:tune-cortexa73-crypto             = "lib64"
diff --git a/poky/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc b/poky/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc
new file mode 100644
index 0000000..36355f7
--- /dev/null
+++ b/poky/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc
@@ -0,0 +1,22 @@
+#
+# Tune Settings for Neoverse-N2
+#
+DEFAULTTUNE ?= "neoversen2"
+
+TUNEVALID[neoversen2] = "Enable Neoverse-N2 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'neoversen2', ' -mcpu=neoverse-n2', '', d)}"
+
+# Even though the Neoverse N2 core implemnts the Arm v9.0-A architecture,
+# but the support of it in GCC is based on the Arm v8.5-A architecture.
+require conf/machine/include/arm/arch-armv8-5a.inc
+
+# Little Endian base configs
+AVAILTUNES                                         += "neoversen2 neoversen2-crypto"
+ARMPKGARCH:tune-neoversen2                          = "neoversen2"
+ARMPKGARCH:tune-neoversen2-crypto                   = "neoversen2-crypto"
+TUNE_FEATURES:tune-neoversen2                       = "${TUNE_FEATURES:tune-armv8-5a} neoversen2"
+TUNE_FEATURES:tune-neoversen2-crypto                = "${TUNE_FEATURES:tune-neoversen2} crypto"
+PACKAGE_EXTRA_ARCHS:tune-neoversen2                 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-5a} neoversen2"
+PACKAGE_EXTRA_ARCHS:tune-neoversen2-crypto          = "${PACKAGE_EXTRA_ARCHS:tune-armv8-5a-crypto} neoversen2 neoversen2-crypto"
+BASE_LIB:tune-neoversen2                            = "lib64"
+BASE_LIB:tune-neoversen2-crypto                     = "lib64"
diff --git a/poky/meta/conf/machine/include/qemu.inc b/poky/meta/conf/machine/include/qemu.inc
index 642c322..0d71bcb 100644
--- a/poky/meta/conf/machine/include/qemu.inc
+++ b/poky/meta/conf/machine/include/qemu.inc
@@ -3,6 +3,7 @@
 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
 PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
 PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
+PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa"
 
 XSERVER ?= "xserver-xorg \
             ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-swrast xserver-xorg-extension-glx', '', d)} \
diff --git a/poky/meta/conf/machine/include/x86/x86-base.inc b/poky/meta/conf/machine/include/x86/x86-base.inc
index 44e4b4e..e76251e 100644
--- a/poky/meta/conf/machine/include/x86/x86-base.inc
+++ b/poky/meta/conf/machine/include/x86/x86-base.inc
@@ -18,7 +18,7 @@
 # kernel-related variables
 #
 PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
-PREFERRED_VERSION_linux-yocto ??= "5.14%"
+PREFERRED_VERSION_linux-yocto ??= "5.15%"
 
 #
 # XSERVER subcomponents, used to build the XSERVER variable
diff --git a/poky/meta/conf/machine/qemuarmv5.conf b/poky/meta/conf/machine/qemuarmv5.conf
index 3c2c499..2dad504 100644
--- a/poky/meta/conf/machine/qemuarmv5.conf
+++ b/poky/meta/conf/machine/qemuarmv5.conf
@@ -15,7 +15,7 @@
 QB_KERNEL_CMDLINE_APPEND = "vmalloc=256"
 QB_GRAPHICS = "-device virtio-gpu-pci"
 QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd"
-PREFERRED_VERSION_linux-yocto ??= "5.14%"
+PREFERRED_VERSION_linux-yocto ??= "5.15%"
 QB_DTB = "${@oe.utils.version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}"
 
 KMACHINE:qemuarmv5 = "qemuarm"
diff --git a/poky/meta/conf/machine/qemux86-64.conf b/poky/meta/conf/machine/qemux86-64.conf
index 978334d..9013534 100644
--- a/poky/meta/conf/machine/qemux86-64.conf
+++ b/poky/meta/conf/machine/qemux86-64.conf
@@ -6,6 +6,7 @@
 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
 PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
 PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
+PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa"
 
 require conf/machine/include/qemu.inc
 DEFAULTTUNE ?= "core2-64"
diff --git a/poky/meta/conf/machine/qemux86.conf b/poky/meta/conf/machine/qemux86.conf
index ad7f6e0..1e072e1 100644
--- a/poky/meta/conf/machine/qemux86.conf
+++ b/poky/meta/conf/machine/qemux86.conf
@@ -6,6 +6,7 @@
 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
 PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
 PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
+PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa"
 
 require conf/machine/include/qemu.inc
 DEFAULTTUNE ?= "core2-32"
diff --git a/poky/meta/files/overlayfs-all-overlays.service.in b/poky/meta/files/overlayfs-all-overlays.service.in
new file mode 100644
index 0000000..74ee4e9
--- /dev/null
+++ b/poky/meta/files/overlayfs-all-overlays.service.in
@@ -0,0 +1,12 @@
+[Unit]
+Description=Groups all overlays required by {PN} in one unit
+After={ALL_OVERLAYFS_UNITS}
+Requires={ALL_OVERLAYFS_UNITS}
+
+[Service]
+Type=oneshot
+ExecStart=/bin/true
+RemainAfterExit=true
+
+[Install]
+WantedBy=local-fs.target
diff --git a/poky/meta/files/overlayfs-create-dirs.service.in b/poky/meta/files/overlayfs-create-dirs.service.in
new file mode 100644
index 0000000..1720414
--- /dev/null
+++ b/poky/meta/files/overlayfs-create-dirs.service.in
@@ -0,0 +1,14 @@
+[Unit]
+Description=Overlayfs directories setup
+Requires={DATA_MOUNT_UNIT}
+After={DATA_MOUNT_UNIT}
+DefaultDependencies=no
+
+[Service]
+Type=oneshot
+ExecStart=mkdir -p {DATA_MOUNT_POINT}/workdir{LOWERDIR} && mkdir -p {DATA_MOUNT_POINT}/upper{LOWERDIR}
+RemainAfterExit=true
+StandardOutput=journal
+
+[Install]
+WantedBy=multi-user.target
diff --git a/poky/meta/files/overlayfs-etc-preinit.sh.in b/poky/meta/files/overlayfs-etc-preinit.sh.in
new file mode 100644
index 0000000..2ebb6c9
--- /dev/null
+++ b/poky/meta/files/overlayfs-etc-preinit.sh.in
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+echo "PREINIT: Start"
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+mount -o remount,rw /
+
+mkdir -p /proc
+mkdir -p /sys
+mkdir -p /run
+mkdir -p /var/run
+
+mount -t proc proc /proc
+mount -t sysfs sysfs /sys
+
+[ -z "$CONSOLE" ] && CONSOLE="/dev/console"
+
+mkdir -p {OVERLAYFS_ETC_MOUNT_POINT}
+if mount -n -t {OVERLAYFS_ETC_FSTYPE} -o {OVERLAYFS_ETC_MOUNT_OPTIONS} {OVERLAYFS_ETC_DEVICE} {OVERLAYFS_ETC_MOUNT_POINT}
+then
+    mkdir -p {OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/upper
+    mkdir -p {OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/work
+    mount -n -t overlay -o upperdir={OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/upper,lowerdir=/etc,workdir={OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/work {OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/upper /etc || echo "PREINIT: Mounting etc-overlay failed!"
+else
+    echo "PREINIT: Mounting </data> failed!"
+fi
+
+echo "PREINIT: done; starting </sbin/init>"
+exec {SBIN_INIT_NAME}
diff --git a/poky/meta/files/overlayfs-unit.mount.in b/poky/meta/files/overlayfs-unit.mount.in
new file mode 100644
index 0000000..1d33b7e
--- /dev/null
+++ b/poky/meta/files/overlayfs-unit.mount.in
@@ -0,0 +1,13 @@
+[Unit]
+Description=Overlayfs mount unit
+Requires={CREATE_DIRS_SERVICE}
+After={CREATE_DIRS_SERVICE}
+
+[Mount]
+What=overlay
+Where={LOWERDIR}
+Type=overlay
+Options=lowerdir={LOWERDIR},upperdir={DATA_MOUNT_POINT}/upper{LOWERDIR},workdir={DATA_MOUNT_POINT}/workdir{LOWERDIR}
+
+[Install]
+WantedBy=multi-user.target
diff --git a/poky/meta/lib/crate.py b/poky/meta/lib/crate.py
deleted file mode 100644
index d10f441..0000000
--- a/poky/meta/lib/crate.py
+++ /dev/null
@@ -1,149 +0,0 @@
-# ex:ts=4:sw=4:sts=4:et
-# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
-"""
-BitBake 'Fetch' implementation for crates.io
-"""
-
-# Copyright (C) 2016 Doug Goldstein
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Based on functions from the base bb module, Copyright 2003 Holger Schurig
-
-import hashlib
-import json
-import os
-import shutil
-import subprocess
-import bb
-from   bb.fetch2 import logger, subprocess_setup, UnpackError
-from   bb.fetch2.wget import Wget
-
-
-class Crate(Wget):
-
-    """Class to fetch crates via wget"""
-
-    def _cargo_bitbake_path(self, rootdir):
-        return os.path.join(rootdir, "cargo_home", "bitbake")
-
-    def supports(self, ud, d):
-        """
-        Check to see if a given url is for this fetcher
-        """
-        return ud.type in ['crate']
-
-    def recommends_checksum(self, urldata):
-        return False
-
-    def urldata_init(self, ud, d):
-        """
-        Sets up to download the respective crate from crates.io
-        """
-
-        if ud.type == 'crate':
-            self._crate_urldata_init(ud, d)
-
-        super(Crate, self).urldata_init(ud, d)
-
-    def _crate_urldata_init(self, ud, d):
-        """
-        Sets up the download for a crate
-        """
-
-        # URL syntax is: crate://NAME/VERSION
-        # break the URL apart by /
-        parts = ud.url.split('/')
-        if len(parts) < 5:
-            raise bb.fetch2.ParameterError("Invalid URL: Must be crate://HOST/NAME/VERSION", ud.url)
-
-        # last field is version
-        version = parts[len(parts) - 1]
-        # second to last field is name
-        name = parts[len(parts) - 2]
-        # host (this is to allow custom crate registries to be specified
-        host = '/'.join(parts[2:len(parts) - 2])
-
-        # if using upstream just fix it up nicely
-        if host == 'crates.io':
-            host = 'crates.io/api/v1/crates'
-
-        ud.url = "https://%s/%s/%s/download" % (host, name, version)
-        ud.parm['downloadfilename'] = "%s-%s.crate" % (name, version)
-        ud.parm['name'] = name
-
-        logger.debug(2, "Fetching %s to %s" % (ud.url, ud.parm['downloadfilename']))
-
-    def unpack(self, ud, rootdir, d):
-        """
-        Uses the crate to build the necessary paths for cargo to utilize it
-        """
-        if ud.type == 'crate':
-            return self._crate_unpack(ud, rootdir, d)
-        else:
-            super(Crate, self).unpack(ud, rootdir, d)
-
-    def _crate_unpack(self, ud, rootdir, d):
-        """
-        Unpacks a crate
-        """
-        thefile = ud.localpath
-
-        # possible metadata we need to write out
-        metadata = {}
-
-        # change to the rootdir to unpack but save the old working dir
-        save_cwd = os.getcwd()
-        os.chdir(rootdir)
-
-        pn = d.getVar('BPN')
-        if pn == ud.parm.get('name'):
-            cmd = "tar -xz --no-same-owner -f %s" % thefile
-        else:
-            cargo_bitbake = self._cargo_bitbake_path(rootdir)
-
-            cmd = "tar -xz --no-same-owner -f %s -C %s" % (thefile, cargo_bitbake)
-
-            # ensure we've got these paths made
-            bb.utils.mkdirhier(cargo_bitbake)
-
-            # generate metadata necessary
-            with open(thefile, 'rb') as f:
-                # get the SHA256 of the original tarball
-                tarhash = hashlib.sha256(f.read()).hexdigest()
-
-            metadata['files'] = {}
-            metadata['package'] = tarhash
-
-        # path it
-        path = d.getVar('PATH')
-        if path:
-            cmd = "PATH=\"%s\" %s" % (path, cmd)
-        bb.note("Unpacking %s to %s/" % (thefile, os.getcwd()))
-
-        ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True)
-
-        os.chdir(save_cwd)
-
-        if ret != 0:
-            raise UnpackError("Unpack command %s failed with return value %s" % (cmd, ret), ud.url)
-
-        # if we have metadata to write out..
-        if len(metadata) > 0:
-            cratepath = os.path.splitext(os.path.basename(thefile))[0]
-            bbpath = self._cargo_bitbake_path(rootdir)
-            mdfile = '.cargo-checksum.json'
-            mdpath = os.path.join(bbpath, cratepath, mdfile)
-            with open(mdpath, "w") as f:
-                json.dump(metadata, f)
diff --git a/poky/meta/lib/oe/distro_check.py b/poky/meta/lib/oe/distro_check.py
index 88e46c3..4b2a9be 100644
--- a/poky/meta/lib/oe/distro_check.py
+++ b/poky/meta/lib/oe/distro_check.py
@@ -26,7 +26,7 @@
     maxstr=""
     for link in get_links_from_url(url, d):
         try:
-            # TODO use LooseVersion
+            # TODO use bb.utils.vercmp_string_op()
             release = float(link)
         except:
             release = 0
diff --git a/poky/meta/lib/oe/overlayfs.py b/poky/meta/lib/oe/overlayfs.py
index 21ef710..b5d5e88 100644
--- a/poky/meta/lib/oe/overlayfs.py
+++ b/poky/meta/lib/oe/overlayfs.py
@@ -15,6 +15,9 @@
 def strForBash(s):
     return s.replace('\\', '\\\\')
 
+def allOverlaysUnitName(d):
+    return d.getVar('PN') + '-overlays.service'
+
 def mountUnitName(unit):
     return escapeSystemdUnitName(unit) + '.mount'
 
@@ -39,5 +42,7 @@
             fileList.append(mountUnitName(path))
             fileList.append(helperUnitName(path))
 
+    fileList.append(allOverlaysUnitName(d))
+
     return fileList
 
diff --git a/poky/meta/lib/oe/package.py b/poky/meta/lib/oe/package.py
index dd700cb..7d387ee 100644
--- a/poky/meta/lib/oe/package.py
+++ b/poky/meta/lib/oe/package.py
@@ -16,7 +16,11 @@
     # 8 - shared library
     # 16 - kernel module
 
-    (file, elftype, strip) = arg
+    if len(arg) == 3:
+        (file, elftype, strip) = arg
+        extra_strip_sections = ''
+    else:
+        (file, elftype, strip, extra_strip_sections) = arg
 
     newmode = None
     if not os.access(file, os.W_OK) or os.access(file, os.R_OK):
@@ -40,6 +44,9 @@
     # shared or executable:
     elif elftype & 8 or elftype & 4:
         stripcmd.extend(["--remove-section=.comment", "--remove-section=.note"])
+        if extra_strip_sections != '':
+            for section in extra_strip_sections.split():
+                stripcmd.extend(["--remove-section=" + section])
 
     stripcmd.append(file)
     bb.debug(1, "runstrip: %s" % stripcmd)
diff --git a/poky/meta/lib/oe/patch.py b/poky/meta/lib/oe/patch.py
index fccbedb..950fe72 100644
--- a/poky/meta/lib/oe/patch.py
+++ b/poky/meta/lib/oe/patch.py
@@ -4,6 +4,7 @@
 
 import oe.path
 import oe.types
+import subprocess
 
 class NotFoundError(bb.BBHandledException):
     def __init__(self, path):
@@ -25,7 +26,6 @@
 
 def runcmd(args, dir = None):
     import pipes
-    import subprocess
 
     if dir:
         olddir = os.path.abspath(os.curdir)
@@ -56,6 +56,7 @@
         if dir:
             os.chdir(olddir)
 
+
 class PatchError(Exception):
     def __init__(self, msg):
         self.msg = msg
@@ -298,6 +299,19 @@
         PatchTree.__init__(self, dir, d)
         self.commituser = d.getVar('PATCH_GIT_USER_NAME')
         self.commitemail = d.getVar('PATCH_GIT_USER_EMAIL')
+        if not self._isInitialized():
+            self._initRepo()
+
+    def _isInitialized(self):
+        cmd = "git rev-parse --show-toplevel"
+        (status, output) = subprocess.getstatusoutput(cmd.split())
+        ## Make sure repo is in builddir to not break top-level git repos
+        return status == 0 and os.path.samedir(output, self.dir)
+
+    def _initRepo(self):
+        runcmd("git init".split(), self.dir)
+        runcmd("git add .".split(), self.dir)
+        runcmd("git commit -a --allow-empty -m Patching_started".split(), self.dir)
 
     @staticmethod
     def extractPatchHeader(patchfile):
diff --git a/poky/meta/lib/oe/reproducible.py b/poky/meta/lib/oe/reproducible.py
index 4fb99d9..35b8be6 100644
--- a/poky/meta/lib/oe/reproducible.py
+++ b/poky/meta/lib/oe/reproducible.py
@@ -92,7 +92,7 @@
     for root, dirs, files in os.walk(workdir, topdown=True):
         dirs[:] = [d for d in dirs if d not in exclude]
         if '.git' in dirs:
-            return root
+            return os.path.join(root, ".git")
 
     bb.warn("Failed to find a git repository in WORKDIR: %s" % workdir)
     return None
diff --git a/poky/meta/lib/oe/sdk.py b/poky/meta/lib/oe/sdk.py
index 37b59af..2734766 100644
--- a/poky/meta/lib/oe/sdk.py
+++ b/poky/meta/lib/oe/sdk.py
@@ -115,6 +115,10 @@
 
         rootfs_dir = [sdk_output, os.path.join(sdk_output, target_path)][target is True]
 
+    if target is False:
+        ipkgconf_sdk_target = d.getVar("IPKGCONF_SDK")
+        d.setVar("IPKGCONF_TARGET", ipkgconf_sdk_target)
+
     img_type = d.getVar('IMAGE_PKGTYPE')
     import importlib
     cls = importlib.import_module('oe.package_manager.' + img_type)
diff --git a/poky/meta/lib/oe/sstatesig.py b/poky/meta/lib/oe/sstatesig.py
index 038404e..abcd962 100644
--- a/poky/meta/lib/oe/sstatesig.py
+++ b/poky/meta/lib/oe/sstatesig.py
@@ -491,7 +491,8 @@
     if task == "package":
         include_timestamps = True
         include_root = False
-    extra_content = d.getVar('HASHEQUIV_HASH_VERSION')
+    hash_version = d.getVar('HASHEQUIV_HASH_VERSION')
+    extra_sigdata = d.getVar("HASHEQUIV_EXTRA_SIGDATA")
 
     filemaps = {}
     for m in (d.getVar('SSTATE_HASHEQUIV_FILEMAP') or '').split():
@@ -506,8 +507,11 @@
         basepath = os.path.normpath(path)
 
         update_hash("OEOuthashBasic\n")
-        if extra_content:
-            update_hash(extra_content + "\n")
+        if hash_version:
+            update_hash(hash_version + "\n")
+
+        if extra_sigdata:
+            update_hash(extra_sigdata + "\n")
 
         # It is only currently useful to get equivalent hashes for things that
         # can be restored from sstate. Since the sstate object is named using
diff --git a/poky/meta/lib/oe/terminal.py b/poky/meta/lib/oe/terminal.py
index 59aa80d..53186c4 100644
--- a/poky/meta/lib/oe/terminal.py
+++ b/poky/meta/lib/oe/terminal.py
@@ -5,7 +5,6 @@
 import oe.classutils
 import shlex
 from bb.process import Popen, ExecutionError
-from distutils.version import LooseVersion
 
 logger = logging.getLogger('BitBake.OE.Terminal')
 
@@ -86,10 +85,10 @@
     def __init__(self, sh_cmd, title=None, env=None, d=None):
         # Check version
         vernum = check_terminal_version("konsole")
-        if vernum and LooseVersion(vernum) < '2.0.0':
+        if vernum and bb.utils.vercmp_string_op(vernum, "2.0.0", "<"):
             # Konsole from KDE 3.x
             self.command = 'konsole -T "{title}" -e {command}'
-        elif vernum and LooseVersion(vernum) < '16.08.1':
+        elif vernum and bb.utils.vercmp_string_op(vernum, "16.08.1", "<"):
             # Konsole pre 16.08.01 Has nofork
             self.command = 'konsole --nofork --workdir . -p tabtitle="{title}" -e {command}'
         XTerminal.__init__(self, sh_cmd, title, env, d)
@@ -260,7 +259,7 @@
 
 def check_tmux_version(desired):
     vernum = check_terminal_version("tmux")
-    if vernum and LooseVersion(vernum) < desired:
+    if vernum and bb.utils.vercmp_string_op(vernum, desired, "<"):
         return False
     return vernum
 
diff --git a/poky/meta/lib/oe/utils.py b/poky/meta/lib/oe/utils.py
index cf65639..136650e 100644
--- a/poky/meta/lib/oe/utils.py
+++ b/poky/meta/lib/oe/utils.py
@@ -248,9 +248,9 @@
     trimmed = ".".join(parts[:num_parts])
     return trimmed
 
-def cpu_count(at_least=1):
+def cpu_count(at_least=1, at_most=64):
     cpus = len(os.sched_getaffinity(0))
-    return max(cpus, at_least)
+    return max(min(cpus, at_most), at_least)
 
 def execute_pre_post_process(d, cmds):
     if cmds is None:
@@ -483,8 +483,8 @@
 
 class ThreadedWorker(Thread):
     """Thread executing tasks from a given tasks queue"""
-    def __init__(self, tasks, worker_init, worker_end):
-        Thread.__init__(self)
+    def __init__(self, tasks, worker_init, worker_end, name=None):
+        Thread.__init__(self, name=name)
         self.tasks = tasks
         self.daemon = True
 
@@ -515,13 +515,12 @@
 
 class ThreadedPool:
     """Pool of threads consuming tasks from a queue"""
-    def __init__(self, num_workers, num_tasks, worker_init=None,
-            worker_end=None):
+    def __init__(self, num_workers, num_tasks, worker_init=None, worker_end=None, name="ThreadedPool-"):
         self.tasks = Queue(num_tasks)
         self.workers = []
 
-        for _ in range(num_workers):
-            worker = ThreadedWorker(self.tasks, worker_init, worker_end)
+        for i in range(num_workers):
+            worker = ThreadedWorker(self.tasks, worker_init, worker_end, name=name + str(i))
             self.workers.append(worker)
 
     def start(self):
diff --git a/poky/meta/lib/oeqa/runtime/cases/go.py b/poky/meta/lib/oeqa/runtime/cases/go.py
new file mode 100644
index 0000000..89ba2c3
--- /dev/null
+++ b/poky/meta/lib/oeqa/runtime/cases/go.py
@@ -0,0 +1,19 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.runtime.decorator.package import OEHasPackage
+
+class GoHelloworldTest(OERuntimeTestCase):
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    @OEHasPackage(['go-helloworld'])
+    def test_gohelloworld(self):
+        cmd = "go-helloworld"
+        status, output = self.target.run(cmd)
+        msg = 'Exit status was not 0. Output: %s' % output
+        self.assertEqual(status, 0, msg=msg)
+
+        msg = 'Incorrect output: %s' % output
+        self.assertEqual(output, "Hello, Go examples!", msg=msg)
diff --git a/poky/meta/lib/oeqa/runtime/cases/ksample.py b/poky/meta/lib/oeqa/runtime/cases/ksample.py
index 4d12d1d..c69e3fe 100644
--- a/poky/meta/lib/oeqa/runtime/cases/ksample.py
+++ b/poky/meta/lib/oeqa/runtime/cases/ksample.py
@@ -10,7 +10,7 @@
 from oeqa.core.decorator.data import skipIfNotFeature
 
 # need some kernel fragments
-# echo "KERNEL_FEATURES:append += \" features\/kernel\-sample\/kernel\-sample.scc\"" >> local.conf
+# echo "KERNEL_FEATURES:append = \" features\/kernel\-sample\/kernel\-sample.scc\"" >> local.conf
 class KSample(OERuntimeTestCase):
     def cmd_and_check(self, cmd='', match_string=''):
         status, output = self.target.run(cmd)
diff --git a/poky/meta/lib/oeqa/runtime/cases/logrotate.py b/poky/meta/lib/oeqa/runtime/cases/logrotate.py
index a4efcd0..2bff08f 100644
--- a/poky/meta/lib/oeqa/runtime/cases/logrotate.py
+++ b/poky/meta/lib/oeqa/runtime/cases/logrotate.py
@@ -17,7 +17,7 @@
 
     @classmethod
     def tearDownClass(cls):
-        cls.tc.target.run('mv -f $HOME/wtmp.oeqabak /etc/logrotate.d/wtmp && rm -rf $HOME/logrotate_dir')
+        cls.tc.target.run('mv -f $HOME/wtmp.oeqabak /etc/logrotate.d/wtmp && rm -rf /var/log//logrotate_dir')
         cls.tc.target.run('rm -rf /var/log/logrotate_testfile && rm -rf /etc/logrotate.d/logrotate_testfile')
 
     @OETestDepends(['ssh.SSHTest.test_ssh'])
@@ -29,17 +29,17 @@
         msg = ('Could not create/update /var/log/wtmp with touch')
         self.assertEqual(status, 0, msg = msg)
 
-        status, output = self.target.run('mkdir $HOME/logrotate_dir')
+        status, output = self.target.run('mkdir /var/log//logrotate_dir')
         msg = ('Could not create logrotate_dir. Output: %s' % output)
         self.assertEqual(status, 0, msg = msg)
 
-        status, output = self.target.run('echo "create \n olddir $HOME/logrotate_dir \n include /etc/logrotate.d/wtmp" > /tmp/logrotate-test.conf')
+        status, output = self.target.run('echo "create \n olddir /var/log//logrotate_dir \n include /etc/logrotate.d/wtmp" > /tmp/logrotate-test.conf')
         msg = ('Could not write to /tmp/logrotate-test.conf')
         self.assertEqual(status, 0, msg = msg)
         
         # If logrotate fails to rotate the log, view the verbose output of logrotate to see what prevented it
         _, logrotate_output = self.target.run('logrotate -vf /tmp/logrotate-test.conf')
-        status, _ = self.target.run('find $HOME/logrotate_dir -type f | grep wtmp.1')
+        status, _ = self.target.run('find /var/log//logrotate_dir -type f | grep wtmp.1')
         msg = ("logrotate did not successfully rotate the wtmp log. Output from logrotate -vf: \n%s" % (logrotate_output))
         self.assertEqual(status, 0, msg = msg)
        
@@ -54,17 +54,17 @@
         msg = ('Could not write to /etc/logrotate.d/logrotate_testfile')
         self.assertEqual(status, 0, msg = msg)
 
-        status, output = self.target.run('echo "create \n olddir $HOME/logrotate_dir \n include /etc/logrotate.d/logrotate_testfile" > /tmp/logrotate-test2.conf')
+        status, output = self.target.run('echo "create \n olddir /var/log//logrotate_dir \n include /etc/logrotate.d/logrotate_testfile" > /tmp/logrotate-test2.conf')
         msg = ('Could not write to /tmp/logrotate_test2.conf')
         self.assertEqual(status, 0, msg = msg)
 
-        status, output = self.target.run('find $HOME/logrotate_dir -type f | grep logrotate_testfile.1')
+        status, output = self.target.run('find /var/log//logrotate_dir -type f | grep logrotate_testfile.1')
         msg = ('A rotated log for logrotate_testfile is already present in logrotate_dir')
         self.assertEqual(status, 1, msg = msg)
 
         # If logrotate fails to rotate the log, view the verbose output of logrotate instead of just listing the files in olddir
         _, logrotate_output = self.target.run('logrotate -vf /tmp/logrotate-test2.conf')
-        status, _ = self.target.run('find $HOME/logrotate_dir -type f | grep logrotate_testfile.1')
+        status, _ = self.target.run('find /var/log//logrotate_dir -type f | grep logrotate_testfile.1')
         msg = ('logrotate did not successfully rotate the logrotate_test log. Output from logrotate -vf: \n%s' % (logrotate_output))
         self.assertEqual(status, 0, msg = msg)
 
diff --git a/poky/meta/lib/oeqa/runtime/cases/parselogs.py b/poky/meta/lib/oeqa/runtime/cases/parselogs.py
index 50101b7..1f9365f 100644
--- a/poky/meta/lib/oeqa/runtime/cases/parselogs.py
+++ b/poky/meta/lib/oeqa/runtime/cases/parselogs.py
@@ -62,6 +62,8 @@
     "[rndr  ]: Initialization Failed",
     "[pulseaudio] authkey.c: Failed to open cookie file",
     "[pulseaudio] authkey.c: Failed to load authentication key",
+    "was skipped because of a failed condition check",
+    "was skipped because all trigger condition checks failed",
     ]
 
 video_related = [
@@ -303,7 +305,7 @@
         grepcmd = 'grep '
         grepcmd += '-Ei "'
         for error in errors:
-            grepcmd += '\<' + error + '\>' + '|'
+            grepcmd += r'\<' + error + r'\>' + '|'
         grepcmd = grepcmd[:-1]
         grepcmd += '" ' + str(log) + " | grep -Eiv \'"
 
@@ -314,13 +316,13 @@
             errorlist = ignore_errors['default']
 
         for ignore_error in errorlist:
-            ignore_error = ignore_error.replace('(', '\(')
-            ignore_error = ignore_error.replace(')', '\)')
+            ignore_error = ignore_error.replace('(', r'\(')
+            ignore_error = ignore_error.replace(')', r'\)')
             ignore_error = ignore_error.replace("'", '.')
-            ignore_error = ignore_error.replace('?', '\?')
-            ignore_error = ignore_error.replace('[', '\[')
-            ignore_error = ignore_error.replace(']', '\]')
-            ignore_error = ignore_error.replace('*', '\*')
+            ignore_error = ignore_error.replace('?', r'\?')
+            ignore_error = ignore_error.replace('[', r'\[')
+            ignore_error = ignore_error.replace(']', r'\]')
+            ignore_error = ignore_error.replace('*', r'\*')
             ignore_error = ignore_error.replace('0-9', '[0-9]')
             grepcmd += ignore_error + '|'
         grepcmd = grepcmd[:-1]
diff --git a/poky/meta/lib/oeqa/runtime/cases/rust.py b/poky/meta/lib/oeqa/runtime/cases/rust.py
new file mode 100644
index 0000000..b3d6cf7
--- /dev/null
+++ b/poky/meta/lib/oeqa/runtime/cases/rust.py
@@ -0,0 +1,19 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.runtime.decorator.package import OEHasPackage
+
+class RustHelloworldTest(OERuntimeTestCase):
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    @OEHasPackage(['rust-hello-world'])
+    def test_rusthelloworld(self):
+        cmd = "rust-hello-world"
+        status, output = self.target.run(cmd)
+        msg = 'Exit status was not 0. Output: %s' % output
+        self.assertEqual(status, 0, msg=msg)
+
+        msg = 'Incorrect output: %s' % output
+        self.assertEqual(output, "Hello, world!", msg=msg)
diff --git a/poky/meta/lib/oeqa/runtime/cases/stap.py b/poky/meta/lib/oeqa/runtime/cases/stap.py
index 5342f6a..615c290 100644
--- a/poky/meta/lib/oeqa/runtime/cases/stap.py
+++ b/poky/meta/lib/oeqa/runtime/cases/stap.py
@@ -5,33 +5,20 @@
 import os
 
 from oeqa.runtime.case import OERuntimeTestCase
-from oeqa.core.decorator.depends import OETestDepends
 from oeqa.core.decorator.data import skipIfNotFeature
 from oeqa.runtime.decorator.package import OEHasPackage
 
 class StapTest(OERuntimeTestCase):
-
-    @classmethod
-    def setUp(cls):
-        src = os.path.join(cls.tc.runtime_files_dir, 'hello.stp')
-        dst = '/tmp/hello.stp'
-        cls.tc.target.copyTo(src, dst)
-
-    @classmethod
-    def tearDown(cls):
-        files = '/tmp/hello.stp'
-        cls.tc.target.run('rm %s' % files)
-
-    @skipIfNotFeature('tools-profile',
-                      'Test requires tools-profile to be in IMAGE_FEATURES')
-    @OETestDepends(['kernelmodule.KernelModuleTest.test_kernel_module'])
+    @skipIfNotFeature('tools-profile', 'Test requires tools-profile to be in IMAGE_FEATURES')
     @OEHasPackage(['systemtap'])
+    @OEHasPackage(['gcc-symlinks'])
+    @OEHasPackage(['kernel-devsrc'])
     def test_stap(self):
-        cmds = [
-            'cd /usr/src/kernel && make scripts prepare',
-            'cd /lib/modules/`uname -r` && (if [ ! -e build ]; then ln -s /usr/src/kernel build; fi)',
-            'stap --disable-cache -DSTP_NO_VERREL_CHECK /tmp/hello.stp'
-            ]
-        for cmd in cmds:
-            status, output = self.target.run(cmd, 900)
-            self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
+        cmd = 'make -C /usr/src/kernel scripts prepare'
+        status, output = self.target.run(cmd, 900)
+        self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
+
+        cmd = 'stap -v --disable-cache -DSTP_NO_VERREL_CHECK -s1 -e \'probe oneshot { print("Hello, "); println("world!") }\''
+        status, output = self.target.run(cmd, 900)
+        self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
+        self.assertIn('Hello, world!', output, msg='\n'.join([cmd, output]))
diff --git a/poky/meta/lib/oeqa/runtime/files/hello.stp b/poky/meta/lib/oeqa/runtime/files/hello.stp
deleted file mode 100644
index 3677147..0000000
--- a/poky/meta/lib/oeqa/runtime/files/hello.stp
+++ /dev/null
@@ -1 +0,0 @@
-probe oneshot { println("hello world") }
diff --git a/poky/meta/lib/oeqa/sdkext/testsdk.py b/poky/meta/lib/oeqa/sdkext/testsdk.py
index 6b564fa..159f0d1 100644
--- a/poky/meta/lib/oeqa/sdkext/testsdk.py
+++ b/poky/meta/lib/oeqa/sdkext/testsdk.py
@@ -67,10 +67,10 @@
             # and we don't spend hours downloading kernels for the kernel module test
             # Abuse auto.conf since local.conf would be overwritten by the SDK
             with open(os.path.join(sdk_dir, 'conf', 'auto.conf'), 'a+') as f:
-                f.write('SSTATE_MIRRORS += " \\n file://.* file://%s/PATH"\n' % test_data.get('SSTATE_DIR'))
+                f.write('SSTATE_MIRRORS += "file://.* file://%s/PATH"\n' % test_data.get('SSTATE_DIR'))
                 f.write('SOURCE_MIRROR_URL = "file://%s"\n' % test_data.get('DL_DIR'))
                 f.write('INHERIT += "own-mirrors"\n')
-                f.write('PREMIRRORS:prepend = " git://git.yoctoproject.org/.* git://%s/git2/git.yoctoproject.org.BASENAME \\n "\n' % test_data.get('DL_DIR'))
+                f.write('PREMIRRORS:prepend = "git://git.yoctoproject.org/.* git://%s/git2/git.yoctoproject.org.BASENAME "\n' % test_data.get('DL_DIR'))
 
             # We need to do this in case we have a minimal SDK
             subprocess.check_output(". %s > /dev/null; devtool sdk-install meta-extsdk-toolchain" % \
diff --git a/poky/meta/lib/oeqa/selftest/cases/archiver.py b/poky/meta/lib/oeqa/selftest/cases/archiver.py
index 0194ae9..7519524 100644
--- a/poky/meta/lib/oeqa/selftest/cases/archiver.py
+++ b/poky/meta/lib/oeqa/selftest/cases/archiver.py
@@ -163,21 +163,21 @@
         Test that the archiver works with `ARCHIVER_MODE[src] = "patched"`.
         """
 
-        self._test_archiver_mode('patched', 'selftest-ed-native-1.14.1-r0-patched.tar.gz')
+        self._test_archiver_mode('patched', 'selftest-ed-native-1.14.1-r0-patched.tar.xz')
 
     def test_archiver_mode_configured(self):
         """
         Test that the archiver works with `ARCHIVER_MODE[src] = "configured"`.
         """
 
-        self._test_archiver_mode('configured', 'selftest-ed-native-1.14.1-r0-configured.tar.gz')
+        self._test_archiver_mode('configured', 'selftest-ed-native-1.14.1-r0-configured.tar.xz')
 
     def test_archiver_mode_recipe(self):
         """
         Test that the archiver works with `ARCHIVER_MODE[recipe] = "1"`.
         """
 
-        self._test_archiver_mode('patched', 'selftest-ed-native-1.14.1-r0-recipe.tar.gz',
+        self._test_archiver_mode('patched', 'selftest-ed-native-1.14.1-r0-recipe.tar.xz',
                                  'ARCHIVER_MODE[recipe] = "1"\n')
 
     def test_archiver_mode_diff(self):
diff --git a/poky/meta/lib/oeqa/selftest/cases/bbtests.py b/poky/meta/lib/oeqa/selftest/cases/bbtests.py
index 6779e62..246cb03 100644
--- a/poky/meta/lib/oeqa/selftest/cases/bbtests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/bbtests.py
@@ -160,7 +160,7 @@
 """)
         self.track_for_cleanup(os.path.join(self.builddir, "download-selftest"))
 
-        data = 'SRC_URI = "${GNU_MIRROR}/aspell/aspell-${PV}.tar.gz;downloadfilename=test-aspell.tar.gz"'
+        data = 'SRC_URI = "https://downloads.yoctoproject.org/mirror/sources/aspell-${PV}.tar.gz;downloadfilename=test-aspell.tar.gz"'
         self.write_recipeinc('aspell', data)
         result = bitbake('-f -c fetch aspell', ignore_status=True)
         self.delete_recipeinc('aspell')
@@ -297,3 +297,18 @@
 
         test_recipe_summary_after = get_bb_var('SUMMARY', test_recipe)
         self.assertEqual(expected_recipe_summary, test_recipe_summary_after)
+
+    def test_git_patchtool(self):
+        """ PATCHTOOL=git should work with non-git sources like tarballs
+            test recipe for the test must NOT containt git:// repository in SRC_URI
+        """
+        test_recipe = "man-db"
+        self.write_recipeinc(test_recipe, 'PATCHTOOL=\"git\"')
+        src = get_bb_var("SRC_URI",test_recipe)
+        gitscm = re.search("git://", src)
+        self.assertFalse(gitscm, "test_git_patchtool pre-condition failed: {} test recipe contains git repo!".format(test_recipe))
+        result = bitbake('man-db -c patch', ignore_status=False)
+        fatal = re.search("fatal: not a git repository (or any of the parent directories)", result.output)
+        self.assertFalse(fatal, "Failed to patch using PATCHTOOL=\"git\"")
+        self.delete_recipeinc(test_recipe)
+        bitbake('-cclean man-db')
diff --git a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
index f998817..651bb03 100644
--- a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
+++ b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
@@ -183,8 +183,8 @@
         deploy_dir_src = get_bb_var('DEPLOY_DIR_SRC')
         pkgs_path = g.glob(str(deploy_dir_src) + "/allarch*/xcurs*")
         src_file_glob = str(pkgs_path[0]) + "/xcursor*.src.rpm"
-        tar_file_glob = str(pkgs_path[0]) + "/xcursor*.tar.gz"
-        self.assertTrue((g.glob(src_file_glob) and g.glob(tar_file_glob)), "Couldn't find .src.rpm and .tar.gz files under %s/allarch*/xcursor*" % deploy_dir_src)
+        tar_file_glob = str(pkgs_path[0]) + "/xcursor*.tar.xz"
+        self.assertTrue((g.glob(src_file_glob) and g.glob(tar_file_glob)), "Couldn't find .src.rpm and .tar.xz files under %s/allarch*/xcursor*" % deploy_dir_src)
 
 class ToolchainOptions(OESelftestTestCase):
     def test_toolchain_fortran(self):
diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py
index f495e84..23d5590 100644
--- a/poky/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py
@@ -80,32 +80,15 @@
         bb.utils.edit_bblayers_conf(bblayers_conf, None, None, bblayers_edit_cb)
     shutil.rmtree(templayerdir)
 
-class DevtoolBase(OESelftestTestCase):
-
-    @classmethod
-    def setUpClass(cls):
-        super(DevtoolBase, cls).setUpClass()
-        bb_vars = get_bb_vars(['TOPDIR', 'SSTATE_DIR'])
-        cls.original_sstate = bb_vars['SSTATE_DIR']
-        cls.devtool_sstate = os.path.join(bb_vars['TOPDIR'], 'sstate_devtool')
-        cls.sstate_conf  = 'SSTATE_DIR = "%s"\n' % cls.devtool_sstate
-        cls.sstate_conf += ('SSTATE_MIRRORS += "file://.* file:///%s/PATH"\n'
-                            % cls.original_sstate)
-
-    @classmethod
-    def tearDownClass(cls):
-        cls.logger.debug('Deleting devtool sstate cache on %s' % cls.devtool_sstate)
-        runCmd('rm -rf %s' % cls.devtool_sstate)
-        super(DevtoolBase, cls).tearDownClass()
+class DevtoolTestCase(OESelftestTestCase):
 
     def setUp(self):
         """Test case setup function"""
-        super(DevtoolBase, self).setUp()
+        super(DevtoolTestCase, self).setUp()
         self.workspacedir = os.path.join(self.builddir, 'workspace')
         self.assertTrue(not os.path.exists(self.workspacedir),
                         'This test cannot be run with a workspace directory '
                         'under the build directory')
-        self.append_config(self.sstate_conf)
 
     def _check_src_repo(self, repo_dir):
         """Check srctree git repository"""
@@ -236,6 +219,30 @@
         return filelist
 
 
+class DevtoolBase(DevtoolTestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        super(DevtoolBase, cls).setUpClass()
+        bb_vars = get_bb_vars(['TOPDIR', 'SSTATE_DIR'])
+        cls.original_sstate = bb_vars['SSTATE_DIR']
+        cls.devtool_sstate = os.path.join(bb_vars['TOPDIR'], 'sstate_devtool')
+        cls.sstate_conf  = 'SSTATE_DIR = "%s"\n' % cls.devtool_sstate
+        cls.sstate_conf += ('SSTATE_MIRRORS += "file://.* file:///%s/PATH"\n'
+                            % cls.original_sstate)
+
+    @classmethod
+    def tearDownClass(cls):
+        cls.logger.debug('Deleting devtool sstate cache on %s' % cls.devtool_sstate)
+        runCmd('rm -rf %s' % cls.devtool_sstate)
+        super(DevtoolBase, cls).tearDownClass()
+
+    def setUp(self):
+        """Test case setup function"""
+        super(DevtoolBase, self).setUp()
+        self.append_config(self.sstate_conf)
+
+
 class DevtoolTests(DevtoolBase):
 
     def test_create_workspace(self):
@@ -340,7 +347,7 @@
         checkvars['LIC_FILES_CHKSUM'] = 'file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263'
         checkvars['S'] = '${WORKDIR}/git'
         checkvars['PV'] = '0.1+git${SRCPV}'
-        checkvars['SRC_URI'] = 'git://git.yoctoproject.org/git/dbus-wait;protocol=https'
+        checkvars['SRC_URI'] = 'git://git.yoctoproject.org/git/dbus-wait;protocol=https;branch=master'
         checkvars['SRCREV'] = srcrev
         checkvars['DEPENDS'] = set(['dbus'])
         self._test_recipe_contents(recipefile, checkvars, [])
@@ -442,6 +449,7 @@
         tempdir = tempfile.mkdtemp(prefix='devtoolqa')
         self.track_for_cleanup(tempdir)
         url = 'gitsm://git.yoctoproject.org/mraa'
+        url_branch = '%s;branch=master' % url
         checkrev = 'ae127b19a50aa54255e4330ccfdd9a5d058e581d'
         testrecipe = 'mraa'
         srcdir = os.path.join(tempdir, testrecipe)
@@ -462,7 +470,7 @@
         checkvars = {}
         checkvars['S'] = '${WORKDIR}/git'
         checkvars['PV'] = '1.0+git${SRCPV}'
-        checkvars['SRC_URI'] = url
+        checkvars['SRC_URI'] = url_branch
         checkvars['SRCREV'] = '${AUTOREV}'
         self._test_recipe_contents(recipefile, checkvars, [])
         # Try with revision and version specified
@@ -481,7 +489,7 @@
         checkvars = {}
         checkvars['S'] = '${WORKDIR}/git'
         checkvars['PV'] = '1.5+git${SRCPV}'
-        checkvars['SRC_URI'] = url
+        checkvars['SRC_URI'] = url_branch
         checkvars['SRCREV'] = checkrev
         self._test_recipe_contents(recipefile, checkvars, [])
 
@@ -904,7 +912,7 @@
         self._check_repo_status(os.path.dirname(recipefile), expected_status)
 
         result = runCmd('git diff %s' % os.path.basename(recipefile), cwd=os.path.dirname(recipefile))
-        addlines = ['SRCREV = ".*"', 'SRC_URI = "git://git.infradead.org/mtd-utils.git"']
+        addlines = ['SRCREV = ".*"', 'SRC_URI = "git://git.infradead.org/mtd-utils.git;branch=master"']
         srcurilines = src_uri.split()
         srcurilines[0] = 'SRC_URI = "' + srcurilines[0]
         srcurilines.append('"')
diff --git a/poky/meta/lib/oeqa/selftest/cases/fetch.py b/poky/meta/lib/oeqa/selftest/cases/fetch.py
index 9aa91e5..be14272 100644
--- a/poky/meta/lib/oeqa/selftest/cases/fetch.py
+++ b/poky/meta/lib/oeqa/selftest/cases/fetch.py
@@ -99,7 +99,7 @@
 
             r = """
             LICENSE="CLOSED"
-            SRC_URI="git://example.com/repo"
+            SRC_URI="git://example.com/repo;branch=master"
             """
             f = self.write_recipe(textwrap.dedent(r), tempdir)
             d = tinfoil.parse_recipe_file(f)
diff --git a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
index 12902ad..18f37c6 100644
--- a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -229,7 +229,7 @@
     def test_no_busybox_base_utils(self):
         config = """
 # Enable wayland
-DISTRO_FEATURES:append += "pam opengl wayland"
+DISTRO_FEATURES:append = " pam opengl wayland"
 
 # Switch to systemd
 DISTRO_FEATURES += "systemd"
diff --git a/poky/meta/lib/oeqa/selftest/cases/overlayfs.py b/poky/meta/lib/oeqa/selftest/cases/overlayfs.py
index 0184d52..82007fa 100644
--- a/poky/meta/lib/oeqa/selftest/cases/overlayfs.py
+++ b/poky/meta/lib/oeqa/selftest/cases/overlayfs.py
@@ -5,14 +5,17 @@
 from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
 
+def getline_qemu(out, line):
+    for l in out.split('\n'):
+        if line in l:
+            return l
+
+def getline(res, line):
+    return getline_qemu(res.output, line)
+
 class OverlayFSTests(OESelftestTestCase):
     """Overlayfs class usage tests"""
 
-    def getline(self, res, line):
-        for l in res.output.split('\n'):
-            if line in l:
-                return l
-
     def add_overlay_conf_to_machine(self):
         machine_inc = """
 OVERLAYFS_MOUNT_POINT[mnt-overlay] = "/mnt/overlay"
@@ -37,7 +40,7 @@
         self.write_recipeinc('overlayfs-user', overlayfs_recipe_append)
 
         res = bitbake('core-image-minimal', ignore_status=True)
-        line = self.getline(res, "overlayfs-user was skipped: missing required distro features")
+        line = getline(res, "overlayfs-user was skipped: missing required distro features")
         self.assertTrue("overlayfs" in res.output, msg=res.output)
         self.assertTrue("systemd" in res.output, msg=res.output)
         self.assertTrue("ERROR: Required build target 'core-image-minimal' has no buildable providers." in res.output, msg=res.output)
@@ -58,9 +61,9 @@
         self.add_overlay_conf_to_machine()
 
         res = bitbake('core-image-minimal', ignore_status=True)
-        line = self.getline(res, "Unit name mnt-overlay.mount not found in systemd unit directories")
+        line = getline(res, "Unit name mnt-overlay.mount not found in systemd unit directories")
         self.assertTrue(line and line.startswith("WARNING:"), msg=res.output)
-        line = self.getline(res, "Not all mount units are installed by the BSP")
+        line = getline(res, "Not all mount units are installed by the BSP")
         self.assertTrue(line and line.startswith("ERROR:"), msg=res.output)
 
     def test_mount_unit_not_set(self):
@@ -78,7 +81,7 @@
         self.write_config(config)
 
         res = bitbake('core-image-minimal', ignore_status=True)
-        line = self.getline(res, "A recipe uses overlayfs class but there is no OVERLAYFS_MOUNT_POINT set in your MACHINE configuration")
+        line = getline(res, "A recipe uses overlayfs class but there is no OVERLAYFS_MOUNT_POINT set in your MACHINE configuration")
         self.assertTrue(line and line.startswith("Parsing recipes...ERROR:"), msg=res.output)
 
     def test_wrong_mount_unit_set(self):
@@ -101,7 +104,7 @@
         self.set_machine_config(wrong_machine_config)
 
         res = bitbake('core-image-minimal', ignore_status=True)
-        line = self.getline(res, "Missing required mount point for OVERLAYFS_MOUNT_POINT[mnt-overlay] in your MACHINE configuration")
+        line = getline(res, "Missing required mount point for OVERLAYFS_MOUNT_POINT[mnt-overlay] in your MACHINE configuration")
         self.assertTrue(line and line.startswith("Parsing recipes...ERROR:"), msg=res.output)
 
     def test_correct_image(self):
@@ -148,18 +151,52 @@
 
 """
 
+        overlayfs_recipe_append = """
+OVERLAYFS_WRITABLE_PATHS[mnt-overlay] += "/usr/share/another-overlay-mount"
+
+SYSTEMD_SERVICE:${PN} += " \
+    my-application.service \
+"
+
+do_install:append() {
+    install -d ${D}${systemd_system_unitdir}
+    cat <<EOT > ${D}${systemd_system_unitdir}/my-application.service
+[Unit]
+Description=Sample application start-up unit
+After=overlayfs-user-overlays.service
+Requires=overlayfs-user-overlays.service
+
+[Service]
+Type=oneshot
+ExecStart=/bin/true
+RemainAfterExit=true
+
+[Install]
+WantedBy=multi-user.target
+EOT
+}
+"""
+
         self.write_config(config)
         self.add_overlay_conf_to_machine()
         self.write_recipeinc('systemd-machine-units', systemd_machine_unit_append)
+        self.write_recipeinc('overlayfs-user', overlayfs_recipe_append)
 
         bitbake('core-image-minimal')
 
-        def getline_qemu(out, line):
-            for l in out.split('\n'):
-                if line in l:
-                    return l
-
         with runqemu('core-image-minimal') as qemu:
+            # Check that application service started
+            status, output = qemu.run_serial("systemctl status my-application")
+            self.assertTrue("active (exited)" in output, msg=output)
+
+            # Check that overlay mounts are dependencies of our application unit
+            status, output = qemu.run_serial("systemctl list-dependencies my-application")
+            self.assertTrue("overlayfs-user-overlays.service" in output, msg=output)
+
+            status, output = qemu.run_serial("systemctl list-dependencies overlayfs-user-overlays")
+            self.assertTrue("usr-share-another\\x2doverlay\\x2dmount.mount" in output, msg=output)
+            self.assertTrue("usr-share-my\\x2dapplication.mount" in output, msg=output)
+
             # Check that we have /mnt/overlay fs mounted as tmpfs and
             # /usr/share/my-application as an overlay (see overlayfs-user recipe)
             status, output = qemu.run_serial("/bin/mount -t tmpfs,overlay")
@@ -169,3 +206,190 @@
 
             line = getline_qemu(output, "upperdir=/mnt/overlay/upper/usr/share/my-application")
             self.assertTrue(line and line.startswith("overlay"), msg=output)
+
+            line = getline_qemu(output, "upperdir=/mnt/overlay/upper/usr/share/another-overlay-mount")
+            self.assertTrue(line and line.startswith("overlay"), msg=output)
+
+class OverlayFSEtcRunTimeTests(OESelftestTestCase):
+    """overlayfs-etc class tests"""
+
+    def test_all_required_variables_set(self):
+        """
+        Summary:   Check that required variables are set
+        Expected:  Fail when any of required variables is missing
+        Author:    Vyacheslav Yurkov <uvv.mail@gmail.com>
+        """
+
+        configBase = """
+DISTRO_FEATURES += "systemd"
+
+# Use systemd as init manager
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# enable overlayfs in the kernel
+KERNEL_EXTRA_FEATURES:append = " features/overlayfs/overlayfs.scc"
+
+# Image configuration for overlayfs-etc
+EXTRA_IMAGE_FEATURES += "overlayfs-etc"
+IMAGE_FEATURES:remove = "package-management"
+"""
+        configMountPoint = """
+OVERLAYFS_ETC_MOUNT_POINT = "/data"
+"""
+        configDevice = """
+OVERLAYFS_ETC_DEVICE = "/dev/mmcblk0p1"
+"""
+
+        self.write_config(configBase)
+        res = bitbake('core-image-minimal', ignore_status=True)
+        line = getline(res, "OVERLAYFS_ETC_MOUNT_POINT must be set in your MACHINE configuration")
+        self.assertTrue(line, msg=res.output)
+
+        self.append_config(configMountPoint)
+        res = bitbake('core-image-minimal', ignore_status=True)
+        line = getline(res, "OVERLAYFS_ETC_DEVICE must be set in your MACHINE configuration")
+        self.assertTrue(line, msg=res.output)
+
+        self.append_config(configDevice)
+        res = bitbake('core-image-minimal', ignore_status=True)
+        line = getline(res, "OVERLAYFS_ETC_FSTYPE should contain a valid file system type on /dev/mmcblk0p1")
+        self.assertTrue(line, msg=res.output)
+
+    def test_image_feature_conflict(self):
+        """
+        Summary:   Overlayfs-etc is not allowed to be used with package-management
+        Expected:  Feature conflict
+        Author:    Vyacheslav Yurkov <uvv.mail@gmail.com>
+        """
+
+        config = """
+DISTRO_FEATURES += "systemd"
+
+# Use systemd as init manager
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# enable overlayfs in the kernel
+KERNEL_EXTRA_FEATURES:append = " features/overlayfs/overlayfs.scc"
+EXTRA_IMAGE_FEATURES += "overlayfs-etc"
+EXTRA_IMAGE_FEATURES += "package-management"
+"""
+
+        self.write_config(config)
+
+        res = bitbake('core-image-minimal', ignore_status=True)
+        line = getline(res, "contains conflicting IMAGE_FEATURES")
+        self.assertTrue("overlayfs-etc" in res.output, msg=res.output)
+        self.assertTrue("package-management" in res.output, msg=res.output)
+
+    def test_image_feature_is_missing_class_included(self):
+        configAppend = """
+INHERIT += "overlayfs-etc"
+"""
+        self.run_check_image_feature(configAppend)
+
+    def test_image_feature_is_missing(self):
+        self.run_check_image_feature()
+
+    def run_check_image_feature(self, appendToConfig=""):
+        """
+        Summary:   Overlayfs-etc class is not applied when image feature is not set
+                   even if we inherit it directly,
+        Expected:  Image is created successfully but /etc is not an overlay
+        Author:    Vyacheslav Yurkov <uvv.mail@gmail.com>
+        """
+
+        config = f"""
+DISTRO_FEATURES += "systemd"
+
+# Use systemd as init manager
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# enable overlayfs in the kernel
+KERNEL_EXTRA_FEATURES:append = " features/overlayfs/overlayfs.scc"
+
+IMAGE_FSTYPES += "wic"
+WKS_FILE = "overlayfs_etc.wks.in"
+
+EXTRA_IMAGE_FEATURES += "read-only-rootfs"
+# Image configuration for overlayfs-etc
+OVERLAYFS_ETC_MOUNT_POINT = "/data"
+OVERLAYFS_ETC_DEVICE = "/dev/sda3"
+{appendToConfig}
+"""
+
+        self.write_config(config)
+
+        bitbake('core-image-minimal')
+
+        with runqemu('core-image-minimal', image_fstype='wic') as qemu:
+            status, output = qemu.run_serial("/bin/mount")
+
+            line = getline_qemu(output, "upperdir=/data/overlay-etc/upper")
+            self.assertFalse(line, msg=output)
+
+    def test_sbin_init_preinit(self):
+        self.run_sbin_init(False)
+
+    def test_sbin_init_original(self):
+        self.run_sbin_init(True)
+
+    def run_sbin_init(self, origInit):
+        """
+        Summary:   Confirm we can replace original init and mount overlay on top of /etc
+        Expected:  Image is created successfully and /etc is mounted as an overlay
+        Author:    Vyacheslav Yurkov <uvv.mail@gmail.com>
+        """
+
+        config = """
+DISTRO_FEATURES += "systemd"
+
+# Use systemd as init manager
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# enable overlayfs in the kernel
+KERNEL_EXTRA_FEATURES:append = " features/overlayfs/overlayfs.scc"
+
+IMAGE_FSTYPES += "wic"
+OVERLAYFS_INIT_OPTION = "{OVERLAYFS_INIT_OPTION}"
+WKS_FILE = "overlayfs_etc.wks.in"
+
+EXTRA_IMAGE_FEATURES += "read-only-rootfs"
+# Image configuration for overlayfs-etc
+EXTRA_IMAGE_FEATURES += "overlayfs-etc"
+IMAGE_FEATURES:remove = "package-management"
+OVERLAYFS_ETC_MOUNT_POINT = "/data"
+OVERLAYFS_ETC_FSTYPE = "ext4"
+OVERLAYFS_ETC_DEVICE = "/dev/sda3"
+OVERLAYFS_ETC_USE_ORIG_INIT_NAME = "{OVERLAYFS_ETC_USE_ORIG_INIT_NAME}"
+"""
+
+        args = {
+            'OVERLAYFS_INIT_OPTION': "" if origInit else "init=/sbin/preinit",
+            'OVERLAYFS_ETC_USE_ORIG_INIT_NAME': int(origInit == True)
+        }
+
+        self.write_config(config.format(**args))
+
+        bitbake('core-image-minimal')
+        testFile = "/etc/my-test-data"
+
+        with runqemu('core-image-minimal', image_fstype='wic', discard_writes=False) as qemu:
+            status, output = qemu.run_serial("/bin/mount")
+
+            line = getline_qemu(output, "/dev/sda3")
+            self.assertTrue("/data" in output, msg=output)
+
+            line = getline_qemu(output, "upperdir=/data/overlay-etc/upper")
+            self.assertTrue(line and line.startswith("/data/overlay-etc/upper on /etc type overlay"), msg=output)
+
+            status, output = qemu.run_serial("touch " + testFile)
+            status, output = qemu.run_serial("sync")
+            status, output = qemu.run_serial("ls -1 " + testFile)
+            line = getline_qemu(output, testFile)
+            self.assertTrue(line and line.startswith(testFile), msg=output)
+
+        # Check that file exists in /etc after reboot
+        with runqemu('core-image-minimal', image_fstype='wic') as qemu:
+            status, output = qemu.run_serial("ls -1 " + testFile)
+            line = getline_qemu(output, testFile)
+            self.assertTrue(line and line.startswith(testFile), msg=output)
diff --git a/poky/meta/lib/oeqa/selftest/cases/recipetool.py b/poky/meta/lib/oeqa/selftest/cases/recipetool.py
index c2a5381..9db1ddb 100644
--- a/poky/meta/lib/oeqa/selftest/cases/recipetool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/recipetool.py
@@ -25,7 +25,7 @@
     runCmd('rm -rf %s' % templayerdir)
 
 
-class RecipetoolBase(devtool.DevtoolBase):
+class RecipetoolBase(devtool.DevtoolTestCase):
 
     def setUpLocal(self):
         super(RecipetoolBase, self).setUpLocal()
@@ -68,17 +68,16 @@
         return bbappendfile, result.output
 
 
-class RecipetoolTests(RecipetoolBase):
+class RecipetoolAppendTests(RecipetoolBase):
 
     @classmethod
     def setUpClass(cls):
-        super(RecipetoolTests, cls).setUpClass()
+        super(RecipetoolAppendTests, cls).setUpClass()
         # Ensure we have the right data in shlibs/pkgdata
         cls.logger.info('Running bitbake to generate pkgdata')
         bitbake('-c packagedata base-files coreutils busybox selftest-recipetool-appendfile')
-        bb_vars = get_bb_vars(['COREBASE', 'BBPATH'])
+        bb_vars = get_bb_vars(['COREBASE'])
         cls.corebase = bb_vars['COREBASE']
-        cls.bbpath = bb_vars['BBPATH']
 
     def _try_recipetool_appendfile(self, testrecipe, destfile, newfile, options, expectedlines, expectedfiles):
         cmd = 'recipetool appendfile %s %s %s %s' % (self.templayerdir, destfile, newfile, options)
@@ -332,6 +331,9 @@
         filename = try_appendfile_wc('-w')
         self.assertEqual(filename, recipefn.split('_')[0] + '_%.bbappend')
 
+
+class RecipetoolCreateTests(RecipetoolBase):
+
     def test_recipetool_create(self):
         # Try adding a recipe
         tempsrc = os.path.join(self.tempdir, 'srctree')
@@ -348,7 +350,7 @@
         checkvars['SRC_URI[sha256sum]'] = '2e6a401cac9024db2288297e3be1a8ab60e7401ba8e91225218aaf4a27e82a07'
         self._test_recipe_contents(recipefile, checkvars, [])
 
-    def test_recipetool_create_git(self):
+    def test_recipetool_create_autotools(self):
         if 'x11' not in get_bb_var('DISTRO_FEATURES'):
             self.skipTest('Test requires x11 as distro feature')
         # Ensure we have the right data in shlibs/pkgdata
@@ -365,7 +367,7 @@
         checkvars['LIC_FILES_CHKSUM'] = 'file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34'
         checkvars['S'] = '${WORKDIR}/git'
         checkvars['PV'] = '1.11+git${SRCPV}'
-        checkvars['SRC_URI'] = srcuri
+        checkvars['SRC_URI'] = srcuri + ';branch=master'
         checkvars['DEPENDS'] = set(['libcheck', 'libjpeg-turbo', 'libpng', 'libx11', 'libxext', 'pango'])
         inherits = ['autotools', 'pkgconfig']
         self._test_recipe_contents(recipefile, checkvars, inherits)
@@ -424,7 +426,7 @@
         checkvars = {}
         checkvars['SUMMARY'] = 'Node Server Example'
         checkvars['HOMEPAGE'] = 'https://github.com/savoirfairelinux/node-server-example#readme'
-        checkvars['LICENSE'] = set(['MIT', 'ISC', 'Unknown'])
+        checkvars['LICENSE'] = 'BSD-3-Clause & ISC & MIT & Unknown'
         urls = []
         urls.append('npm://registry.npmjs.org/;package=@savoirfairelinux/node-server-example;version=${PV}')
         urls.append('npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json')
@@ -447,7 +449,7 @@
         self.assertTrue(os.path.isfile(recipefile))
         checkvars = {}
         checkvars['LICENSE'] = set(['Apache-2.0'])
-        checkvars['SRC_URI'] = 'git://github.com/mesonbuild/meson;protocol=https'
+        checkvars['SRC_URI'] = 'git://github.com/mesonbuild/meson;protocol=https;branch=master'
         inherits = ['setuptools3']
         self._test_recipe_contents(recipefile, checkvars, inherits)
 
@@ -481,7 +483,7 @@
         result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri))
         self.assertTrue(os.path.isfile(recipefile))
         checkvars = {}
-        checkvars['LICENSE'] = set(['PSF', '&', 'BSD-3-Clause', 'GPL'])
+        checkvars['LICENSE'] = 'BSD-3-Clause & GPL & PSF'
         checkvars['LIC_FILES_CHKSUM'] = 'file://COPYING.txt;md5=35a23d42b615470583563132872c97d6'
         checkvars['SRC_URI'] = 'https://files.pythonhosted.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-${PV}.tar.gz'
         checkvars['SRC_URI[md5sum]'] = 'c53768d63db3873b7d452833553469de'
@@ -504,19 +506,48 @@
         inherits = ['setuptools3']
         self._test_recipe_contents(recipefile, checkvars, inherits)
 
-    def test_recipetool_create_git_http(self):
+    def _test_recipetool_create_git(self, srcuri, branch=None):
         # Basic test to check http git URL mangling works
         temprecipe = os.path.join(self.tempdir, 'recipe')
         os.makedirs(temprecipe)
-        recipefile = os.path.join(temprecipe, 'matchbox-terminal_git.bb')
-        srcuri = 'http://git.yoctoproject.org/git/matchbox-terminal'
-        result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri))
+        name = srcuri.split(';')[0].split('/')[-1]
+        recipefile = os.path.join(temprecipe, name + '_git.bb')
+        options = ' -B %s' % branch if branch else ''
+        result = runCmd('recipetool create -o %s%s "%s"' % (temprecipe, options, srcuri))
         self.assertTrue(os.path.isfile(recipefile))
         checkvars = {}
-        checkvars['LICENSE'] = set(['GPLv2'])
-        checkvars['SRC_URI'] = 'git://git.yoctoproject.org/git/matchbox-terminal;protocol=http'
-        inherits = ['pkgconfig', 'autotools']
-        self._test_recipe_contents(recipefile, checkvars, inherits)
+        checkvars['SRC_URI'] = srcuri
+        for scheme in ['http', 'https']:
+            if srcuri.startswith(scheme + ":"):
+                checkvars['SRC_URI'] = 'git%s;protocol=%s' % (srcuri[len(scheme):], scheme)
+        if ';branch=' not in srcuri:
+            checkvars['SRC_URI'] += ';branch=' + (branch or 'master')
+        self._test_recipe_contents(recipefile, checkvars, [])
+
+    def test_recipetool_create_git_http(self):
+        self._test_recipetool_create_git('http://git.yoctoproject.org/git/matchbox-keyboard')
+
+    def test_recipetool_create_git_srcuri_master(self):
+        self._test_recipetool_create_git('git://git.yoctoproject.org/matchbox-keyboard;branch=master')
+
+    def test_recipetool_create_git_srcuri_branch(self):
+        self._test_recipetool_create_git('git://git.yoctoproject.org/matchbox-keyboard;branch=matchbox-keyboard-0-1')
+
+    def test_recipetool_create_git_srcbranch(self):
+        self._test_recipetool_create_git('git://git.yoctoproject.org/matchbox-keyboard', 'matchbox-keyboard-0-1')
+
+
+class RecipetoolTests(RecipetoolBase):
+
+    @classmethod
+    def setUpClass(cls):
+        import sys
+
+        super(RecipetoolTests, cls).setUpClass()
+        bb_vars = get_bb_vars(['BBPATH'])
+        cls.bbpath = bb_vars['BBPATH']
+        libpath = os.path.join(get_bb_var('COREBASE'), 'scripts', 'lib', 'recipetool')
+        sys.path.insert(0, libpath)
 
     def _copy_file_with_cleanup(self, srcfile, basedstdir, *paths):
         dstdir = basedstdir
@@ -561,6 +592,128 @@
             with open(srcfile, 'w') as fh:
                 fh.writelines(plugincontent)
 
+    def test_recipetool_handle_license_vars(self):
+        from create import handle_license_vars
+        from unittest.mock import Mock
+
+        commonlicdir = get_bb_var('COMMON_LICENSE_DIR')
+
+        d = bb.tinfoil.TinfoilDataStoreConnector
+        d.getVar = Mock(return_value=commonlicdir)
+
+        srctree = tempfile.mkdtemp(prefix='recipetoolqa')
+        self.track_for_cleanup(srctree)
+
+        # Multiple licenses
+        licenses = ['MIT', 'ISC', 'BSD-3-Clause', 'Apache-2.0']
+        for licence in licenses:
+            shutil.copy(os.path.join(commonlicdir, licence), os.path.join(srctree, 'LICENSE.' + licence))
+        # Duplicate license
+        shutil.copy(os.path.join(commonlicdir, 'MIT'), os.path.join(srctree, 'LICENSE'))
+
+        extravalues = {
+            # Duplicate and missing licenses
+            'LICENSE': 'Zlib & BSD-2-Clause & Zlib',
+            'LIC_FILES_CHKSUM': [
+                'file://README.md;md5=0123456789abcdef0123456789abcd'
+            ]
+        }
+        lines_before = []
+        handled = []
+        licvalues = handle_license_vars(srctree, lines_before, handled, extravalues, d)
+        expected_lines_before = [
+            '# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is',
+            '# your responsibility to verify that the values are complete and correct.',
+            '# NOTE: Original package / source metadata indicates license is: BSD-2-Clause & Zlib',
+            '#',
+            '# NOTE: multiple licenses have been detected; they have been separated with &',
+            '# in the LICENSE value for now since it is a reasonable assumption that all',
+            '# of the licenses apply. If instead there is a choice between the multiple',
+            '# licenses then you should change the value to separate the licenses with |',
+            '# instead of &. If there is any doubt, check the accompanying documentation',
+            '# to determine which situation is applicable.',
+            'LICENSE = "Apache-2.0 & BSD-2-Clause & BSD-3-Clause & ISC & MIT & Zlib"',
+            'LIC_FILES_CHKSUM = "file://LICENSE;md5=0835ade698e0bcf8506ecda2f7b4f302 \\\n'
+            '                    file://LICENSE.Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10 \\\n'
+            '                    file://LICENSE.BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9 \\\n'
+            '                    file://LICENSE.ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d \\\n'
+            '                    file://LICENSE.MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \\\n'
+            '                    file://README.md;md5=0123456789abcdef0123456789abcd"',
+            ''
+        ]
+        self.assertEqual(lines_before, expected_lines_before)
+        expected_licvalues = [
+            ('MIT', 'LICENSE', '0835ade698e0bcf8506ecda2f7b4f302'),
+            ('Apache-2.0', 'LICENSE.Apache-2.0', '89aea4e17d99a7cacdbeed46a0096b10'),
+            ('BSD-3-Clause', 'LICENSE.BSD-3-Clause', '550794465ba0ec5312d6919e203a55f9'),
+            ('ISC', 'LICENSE.ISC', 'f3b90e78ea0cffb20bf5cca7947a896d'),
+            ('MIT', 'LICENSE.MIT', '0835ade698e0bcf8506ecda2f7b4f302')
+        ]
+        self.assertEqual(handled, [('license', expected_licvalues)])
+        self.assertEqual(extravalues, {})
+        self.assertEqual(licvalues, expected_licvalues)
+
+
+    def test_recipetool_split_pkg_licenses(self):
+        from create import split_pkg_licenses
+        licvalues = [
+            # Duplicate licenses
+            ('BSD-2-Clause', 'x/COPYING', None),
+            ('BSD-2-Clause', 'x/LICENSE', None),
+            # Multiple licenses
+            ('MIT', 'x/a/LICENSE.MIT', None),
+            ('ISC', 'x/a/LICENSE.ISC', None),
+            # Alternative licenses
+            ('(MIT | ISC)', 'x/b/LICENSE', None),
+            # Alternative licenses without brackets
+            ('MIT | BSD-2-Clause', 'x/c/LICENSE', None),
+            # Multi licenses with alternatives
+            ('MIT', 'x/d/COPYING', None),
+            ('MIT | BSD-2-Clause', 'x/d/LICENSE', None),
+            # Multi licenses with alternatives and brackets
+            ('Apache-2.0 & ((MIT | ISC) & BSD-3-Clause)', 'x/e/LICENSE', None)
+        ]
+        packages = {
+            '${PN}': '',
+            'a': 'x/a',
+            'b': 'x/b',
+            'c': 'x/c',
+            'd': 'x/d',
+            'e': 'x/e',
+            'f': 'x/f',
+            'g': 'x/g',
+        }
+        fallback_licenses = {
+            # Ignored
+            'a': 'BSD-3-Clause',
+            # Used
+            'f': 'BSD-3-Clause'
+        }
+        outlines = []
+        outlicenses = split_pkg_licenses(licvalues, packages, outlines, fallback_licenses)
+        expected_outlicenses = {
+            '${PN}': ['BSD-2-Clause'],
+            'a': ['ISC', 'MIT'],
+            'b': ['(ISC | MIT)'],
+            'c': ['(BSD-2-Clause | MIT)'],
+            'd': ['(BSD-2-Clause | MIT)', 'MIT'],
+            'e': ['(ISC | MIT)', 'Apache-2.0', 'BSD-3-Clause'],
+            'f': ['BSD-3-Clause'],
+            'g': ['Unknown']
+        }
+        self.assertEqual(outlicenses, expected_outlicenses)
+        expected_outlines = [
+            'LICENSE:${PN} = "BSD-2-Clause"',
+            'LICENSE:a = "ISC & MIT"',
+            'LICENSE:b = "(ISC | MIT)"',
+            'LICENSE:c = "(BSD-2-Clause | MIT)"',
+            'LICENSE:d = "(BSD-2-Clause | MIT) & MIT"',
+            'LICENSE:e = "(ISC | MIT) & Apache-2.0 & BSD-3-Clause"',
+            'LICENSE:f = "BSD-3-Clause"',
+            'LICENSE:g = "Unknown"'
+        ]
+        self.assertEqual(outlines, expected_outlines)
+
 
 class RecipetoolAppendsrcBase(RecipetoolBase):
     def _try_recipetool_appendsrcfile(self, testrecipe, newfile, destfile, options, expectedlines, expectedfiles):
diff --git a/poky/meta/lib/oeqa/selftest/cases/reproducible.py b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
index 2e983d2..e539365 100644
--- a/poky/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -17,27 +17,7 @@
 import os
 import datetime
 
-# For sample packages, see:
-# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201127-0t7wr_oo/
-# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201127-4s9ejwyp/
-# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201127-haiwdlbr/
-# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201127-hwds3mcl/
-# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201203-sua0pzvc/
-# (both packages/ and packages-excluded/)
-
-# ruby-ri-docs, meson:
-#https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20210215-0_td9la2/packages/diff-html/
-# rust-llvm:
-#https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20210825-kaihham6/
 exclude_packages = [
-	'glide',
-	'go-helloworld',
-	'go-runtime',
-	'go_',
-	'go-',
-	'ruby-ri-docs',
-	'rust-llvm-liblto',
-	'rust-llvm-staticdev'
 	]
 
 def is_excluded(package):
@@ -118,8 +98,9 @@
     result.status = SAME
     return result
 
-def run_diffoscope(a_dir, b_dir, html_dir, **kwargs):
-    return runCmd(['diffoscope', '--no-default-limits', '--exclude-directory-metadata', 'yes', '--html-dir', html_dir, a_dir, b_dir],
+def run_diffoscope(a_dir, b_dir, html_dir, max_report_size=0, **kwargs):
+    return runCmd(['diffoscope', '--no-default-limits', '--max-report-size', str(max_report_size),
+                   '--exclude-directory-metadata', 'yes', '--html-dir', html_dir, a_dir, b_dir],
                 **kwargs)
 
 class DiffoscopeTests(OESelftestTestCase):
@@ -149,6 +130,9 @@
 
     package_classes = ['deb', 'ipk', 'rpm']
 
+    # Maximum report size, in bytes
+    max_report_size = 250 * 1024 * 1024
+
     # targets are the things we want to test the reproducibility of
     targets = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline', 'core-image-weston', 'world']
     # sstate targets are things to pull from sstate to potentially cut build/debugging time
@@ -324,7 +308,7 @@
                 # Copy jquery to improve the diffoscope output usability
                 self.copy_file(os.path.join(jquery_sysroot, 'usr/share/javascript/jquery/jquery.min.js'), os.path.join(package_html_dir, 'jquery.js'))
 
-                run_diffoscope('reproducibleA', 'reproducibleB', package_html_dir,
+                run_diffoscope('reproducibleA', 'reproducibleB', package_html_dir, max_report_size=self.max_report_size,
                         native_sysroot=diffoscope_sysroot, ignore_status=True, cwd=package_dir)
 
         if fails:
diff --git a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
index a90f62b..5637a02 100644
--- a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -214,7 +214,7 @@
         import subprocess, os
 
         distro = oe.lsb.distro_identifier()
-        if distro and distro in ['debian-9', 'debian-10', 'centos-7', 'centos-8', 'ubuntu-16.04', 'ubuntu-18.04']:
+        if distro and distro in ['debian-9', 'debian-10', 'centos-7', 'centos-8', 'ubuntu-16.04', 'ubuntu-18.04', 'almalinux-8.5']:
             self.skipTest('virgl headless cannot be tested with %s' %(distro))
 
         render_hint = """If /dev/dri/renderD* is absent due to lack of suitable GPU, 'modprobe vgem' will create one sutable for mesa llvmpipe sofware renderer."""
diff --git a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
index 3dab607..96b2d11 100644
--- a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
@@ -11,6 +11,7 @@
 from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_test_layer, create_temp_layer
 from oeqa.selftest.cases.sstate import SStateBase
+import oe
 
 import bb.siggen
 
@@ -39,7 +40,7 @@
 
         recipefile = os.path.join(tempdir, "recipes-test", "dbus-wait-test", 'dbus-wait-test_git.bb')
         os.makedirs(os.path.dirname(recipefile))
-        srcuri = 'git://' + srcdir + ';protocol=file'
+        srcuri = 'git://' + srcdir + ';protocol=file;branch=master'
         result = runCmd(['recipetool', 'create', '-o', recipefile, srcuri])
         self.assertTrue(os.path.isfile(recipefile), 'recipetool did not create recipe file; output:\n%s' % result.output)
 
@@ -341,13 +342,15 @@
 MACHINE = \"qemux86-64\"
 BB_SIGNATURE_HANDLER = "OEBasicHash"
 """
+        #OLDEST_KERNEL is arch specific so set to a different value here for testing
         configB = """
 TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
 TCLIBCAPPEND = \"\"
 MACHINE = \"qemuarm\"
+OLDEST_KERNEL = \"3.3.0\"
 BB_SIGNATURE_HANDLER = "OEBasicHash"
 """
-        self.sstate_allarch_samesigs(configA, configB)
+        self.sstate_common_samesigs(configA, configB, allarch=True)
 
     def test_sstate_nativesdk_samesigs_multilib(self):
         """
@@ -371,9 +374,9 @@
 MULTILIBS = \"\"
 BB_SIGNATURE_HANDLER = "OEBasicHash"
 """
-        self.sstate_allarch_samesigs(configA, configB)
+        self.sstate_common_samesigs(configA, configB)
 
-    def sstate_allarch_samesigs(self, configA, configB):
+    def sstate_common_samesigs(self, configA, configB, allarch=False):
 
         self.write_config(configA)
         self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
@@ -401,6 +404,13 @@
         self.maxDiff = None
         self.assertEqual(files1, files2)
 
+        if allarch:
+            allarchdir = os.path.basename(glob.glob(self.topdir + "/tmp-sstatesamehash/stamps/all-*-linux")[0])
+
+            files1 = get_files(self.topdir + "/tmp-sstatesamehash/stamps/" + allarchdir)
+            files2 = get_files(self.topdir + "/tmp-sstatesamehash2/stamps/" + allarchdir)
+            self.assertEqual(files1, files2)
+
     def test_sstate_sametune_samesigs(self):
         """
         The sstate checksums of two identical machines (using the same tune) should be the
@@ -573,3 +583,44 @@
         compare_sigfiles(rest, files1, files2, compare=False)
 
         self.fail("sstate hashes not identical.")
+
+    def test_sstate_movelayer_samesigs(self):
+        """
+        The sstate checksums of two builds with the same oe-core layer in two
+        different locations should be the same.
+        """
+        core_layer = os.path.join(
+                    self.tc.td["COREBASE"], 'meta')
+        copy_layer_1 = self.topdir + "/meta-copy1/meta"
+        copy_layer_2 = self.topdir + "/meta-copy2/meta"
+
+        oe.path.copytree(core_layer, copy_layer_1)
+        self.write_config("""
+TMPDIR = "${TOPDIR}/tmp-sstatesamehash"
+""")
+        bblayers_conf = 'BBLAYERS += "%s"\nBBLAYERS:remove = "%s"' % (copy_layer_1, core_layer)
+        self.write_bblayers_config(bblayers_conf)
+        self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
+        bitbake("bash -S none")
+
+        oe.path.copytree(core_layer, copy_layer_2)
+        self.write_config("""
+TMPDIR = "${TOPDIR}/tmp-sstatesamehash2"
+""")
+        bblayers_conf = 'BBLAYERS += "%s"\nBBLAYERS:remove = "%s"' % (copy_layer_2, core_layer)
+        self.write_bblayers_config(bblayers_conf)
+        self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
+        bitbake("bash -S none")
+
+        def get_files(d):
+            f = []
+            for root, dirs, files in os.walk(d):
+                for name in files:
+                    f.append(os.path.join(root, name))
+            return f
+        files1 = get_files(self.topdir + "/tmp-sstatesamehash/stamps")
+        files2 = get_files(self.topdir + "/tmp-sstatesamehash2/stamps")
+        files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2]
+        self.maxDiff = None
+        self.assertCountEqual(files1, files2)
+
diff --git a/poky/meta/lib/oeqa/utils/dump.py b/poky/meta/lib/oeqa/utils/dump.py
index bb067f48..dc87578 100644
--- a/poky/meta/lib/oeqa/utils/dump.py
+++ b/poky/meta/lib/oeqa/utils/dump.py
@@ -134,4 +134,4 @@
                     output = self.runner.run_monitor(cmd_name)
                 self._write_dump(cmd_name, output)
             except Exception as e:
-                print("Failed to dump QMP CMD: %s with\nExecption: %s" % (cmd_name, e))
+                print("Failed to dump QMP CMD: %s with\nException: %s" % (cmd_name, e))
diff --git a/poky/meta/lib/oeqa/utils/qemurunner.py b/poky/meta/lib/oeqa/utils/qemurunner.py
index 0397148..76296d5 100644
--- a/poky/meta/lib/oeqa/utils/qemurunner.py
+++ b/poky/meta/lib/oeqa/utils/qemurunner.py
@@ -407,7 +407,7 @@
                 self.logger.debug("qemu cmdline used:\n{}".format(cmdline))
             except (IndexError, ValueError):
                 # Try to get network configuration from runqemu output
-                match = re.match(r'.*Network configuration: (?:ip=)*([0-9.]+)::([0-9.]+):([0-9.]+)$.*',
+                match = re.match(r'.*Network configuration: (?:ip=)*([0-9.]+)::([0-9.]+):([0-9.]+).*',
                                  out, re.MULTILINE|re.DOTALL)
                 if match:
                     self.ip, self.server_ip, self.netmask = match.groups()
diff --git a/poky/meta/recipes-bsp/apmd/apmd/libtool.patch b/poky/meta/recipes-bsp/apmd/apmd/libtool.patch
index 834ee08..fd0a952 100644
--- a/poky/meta/recipes-bsp/apmd/apmd/libtool.patch
+++ b/poky/meta/recipes-bsp/apmd/apmd/libtool.patch
@@ -1,3 +1,8 @@
+From d5dde7ca91a5aed273d8fe269e1a5194e85c8c79 Mon Sep 17 00:00:00 2001
+From: Scott Garman <scott.a.garman@intel.com>
+Date: Tue, 13 Jul 2010 16:46:46 +0800
+Subject: [PATCH] apmd: upgrade to 3.2.2-14
+
 Add by RP to address "unable to infer tagged configuration" error:
    commit 35de05e61b88c0808a5e885bb0efdf420555d5ad
    Author: Richard Purdie <rpurdie@rpsys.net>
@@ -15,15 +20,18 @@
 
 Signed-off-by: Scott Garman <scott.a.garman@intel.com>
 
-Index: apmd-3.2.2.orig/Makefile
-===================================================================
---- apmd-3.2.2.orig.orig/Makefile	2004-01-04 08:13:18.000000000 +0000
-+++ apmd-3.2.2.orig/Makefile	2008-04-21 17:10:03.000000000 +0100
-@@ -58,9 +57,8 @@
- #CFLAGS=-O3 -m486 -fomit-frame-pointer
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 92fc0fd..8e283dc 100644
+--- a/Makefile
++++ b/Makefile
+@@ -59,8 +59,8 @@ RANLIB=ranlib
  #LDFLAGS=-s
  
--LIBTOOL=libtool --quiet
+ LIBTOOL=libtool --quiet
 -LT_COMPILE = $(LIBTOOL) --mode=compile $(CC)
 -LT_LINK = $(LIBTOOL) --mode=link $(CC)
 +LT_COMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC)
diff --git a/poky/meta/recipes-bsp/apmd/apmd_3.2.2-15.bb b/poky/meta/recipes-bsp/apmd/apmd_3.2.2-15.bb
index da17e5a..1779e8b 100644
--- a/poky/meta/recipes-bsp/apmd/apmd_3.2.2-15.bb
+++ b/poky/meta/recipes-bsp/apmd/apmd_3.2.2-15.bb
@@ -43,7 +43,7 @@
 
 do_compile() {
 	# apmd doesn't use whole autotools. Just libtool for installation
-	oe_runmake "LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool" apm apmd
+	oe_runmake apm apmd
 }
 
 do_install() {
diff --git a/poky/meta/recipes-bsp/efibootmgr/efibootmgr/0001-src-make-compatible-with-efivar-38.patch b/poky/meta/recipes-bsp/efibootmgr/efibootmgr/0001-src-make-compatible-with-efivar-38.patch
new file mode 100644
index 0000000..f8d9123
--- /dev/null
+++ b/poky/meta/recipes-bsp/efibootmgr/efibootmgr/0001-src-make-compatible-with-efivar-38.patch
@@ -0,0 +1,47 @@
+From 07f080184d067c1ebc3fec1b53dd4a06d1a2566a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Mon, 17 Jan 2022 23:24:34 +0100
+Subject: [PATCH] src: make compatible with efivar 38
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ src/efibootdump.c | 2 +-
+ src/efibootmgr.c  | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/efibootdump.c b/src/efibootdump.c
+index eceffd6..09bd76e 100644
+--- a/src/efibootdump.c
++++ b/src/efibootdump.c
+@@ -69,7 +69,7 @@ print_boot_entry(efi_load_option *loadopt, size_t data_size)
+ 	text_path = alloca(text_path_len);
+ 	if (!text_path)
+ 		error(100, "Couldn't allocate memory");
+-	rc = efidp_format_device_path(text_path, text_path_len,
++	rc = efidp_format_device_path((unsigned char *)text_path, text_path_len,
+ 				      dp, pathlen);
+ 	if (rc < 0) {
+ 		printf("<bad device path>");
+diff --git a/src/efibootmgr.c b/src/efibootmgr.c
+index 4e1a680..b77b1fb 100644
+--- a/src/efibootmgr.c
++++ b/src/efibootmgr.c
+@@ -949,7 +949,7 @@ show_vars(const char *prefix)
+ 			pathlen = efi_loadopt_pathlen(load_option,
+ 						      boot->data_size);
+ 			dp = efi_loadopt_path(load_option, boot->data_size);
+-			rc = efidp_format_device_path(text_path, text_path_len,
++			rc = efidp_format_device_path((unsigned char *)text_path, text_path_len,
+ 						      dp, pathlen);
+ 			if (rc < 0)
+ 				error(18, "Could not parse device path");
+@@ -960,7 +960,7 @@ show_vars(const char *prefix)
+ 			if (!text_path)
+ 				error(19, "Could not parse device path");
+ 
+-			rc = efidp_format_device_path(text_path, text_path_len,
++			rc = efidp_format_device_path((unsigned char *)text_path, text_path_len,
+ 						      dp, pathlen);
+ 			if (rc < 0)
+ 				error(20, "Could not parse device path");
diff --git a/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb b/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb
index 5d6f200..3f88312 100644
--- a/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb
+++ b/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb
@@ -10,10 +10,11 @@
 
 COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
 
-SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https \
+SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https;branch=master \
            file://0001-remove-extra-decl.patch \
            file://97668ae0bce776a36ea2001dea63d376be8274ac.patch \
-          "
+           file://0001-src-make-compatible-with-efivar-38.patch \
+           "
 SRCREV = "e067160ecef8208e1944002e5d50b275733211fb"
 
 S = "${WORKDIR}/git"
@@ -33,3 +34,6 @@
 }
 
 CLEANBROKEN = "1"
+# https://github.com/rhboot/efivar/issues/202
+COMPATIBLE_HOST:libc-musl = 'null'
+
diff --git a/poky/meta/recipes-bsp/efivar/efivar/0001-docs-do-not-build-efisecdb-manpage.patch b/poky/meta/recipes-bsp/efivar/efivar/0001-docs-do-not-build-efisecdb-manpage.patch
new file mode 100644
index 0000000..cb30d3c
--- /dev/null
+++ b/poky/meta/recipes-bsp/efivar/efivar/0001-docs-do-not-build-efisecdb-manpage.patch
@@ -0,0 +1,26 @@
+From f39a1481a9e465387901d52b07ae56dedcc3838b Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Sun, 16 Jan 2022 18:25:33 +0100
+Subject: [PATCH] docs: do not build efisecdb manpage
+
+It requires mandoc, which oe-core does not have.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ docs/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/docs/Makefile b/docs/Makefile
+index c9bf585..91a6078 100644
+--- a/docs/Makefile
++++ b/docs/Makefile
+@@ -5,7 +5,7 @@ include $(TOPDIR)/src/include/version.mk
+ include $(TOPDIR)/src/include/rules.mk
+ include $(TOPDIR)/src/include/defaults.mk
+ 
+-MAN1TARGETS = efisecdb.1 \
++MAN1TARGETS = \
+ 	      efivar.1
+ 
+ MAN3TARGETS = efi_append_variable.3 \
diff --git a/poky/meta/recipes-bsp/efivar/efivar/0001-src-Makefile-build-util.c-separately-for-makeguids.patch b/poky/meta/recipes-bsp/efivar/efivar/0001-src-Makefile-build-util.c-separately-for-makeguids.patch
new file mode 100644
index 0000000..02781eb
--- /dev/null
+++ b/poky/meta/recipes-bsp/efivar/efivar/0001-src-Makefile-build-util.c-separately-for-makeguids.patch
@@ -0,0 +1,38 @@
+From 80f11fcb46f6b52e13501cb323ca1a849c3f6e88 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Tue, 18 Jan 2022 11:53:41 +0100
+Subject: [PATCH] src/Makefile: build util.c separately for makeguids
+
+util.c needs to be built twice when cross-compiling:
+for the build machine to be able to link with
+makeguids which then runs during the same build,
+and then for the actual target.
+
+Upstream-Status: Submitted [https://github.com/rhboot/efivar/pull/203]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ src/Makefile | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 0e423c4..b10051b 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -28,10 +28,13 @@ EFIVAR_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(EFIVAR_SOURCES)))
+ EFISECDB_SOURCES = efisecdb.c guid-symbols.c secdb-dump.c util.c
+ EFISECDB_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(EFISECDB_SOURCES)))
+ GENERATED_SOURCES = include/efivar/efivar-guids.h guid-symbols.c
+-MAKEGUIDS_SOURCES = makeguids.c util.c
++MAKEGUIDS_SOURCES = makeguids.c util-makeguids.c
+ MAKEGUIDS_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(MAKEGUIDS_SOURCES)))
+ MAKEGUIDS_OUTPUT = $(GENERATED_SOURCES) guids.lds
+ 
++util-makeguids.c :
++	cp util.c util-makeguids.c
++
+ ALL_SOURCES=$(LIBEFISEC_SOURCES) $(LIBEFIBOOT_SOURCES) $(LIBEFIVAR_SOURCES) \
+ 	    $(MAKEGUIDS_SOURCES) $(GENERATED_SOURCES) $(EFIVAR_SOURCES) \
+ 	    $(sort $(wildcard include/efivar/*.h))
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-bsp/efivar/efivar/determinism.patch b/poky/meta/recipes-bsp/efivar/efivar/determinism.patch
deleted file mode 100644
index bdf6bfc..0000000
--- a/poky/meta/recipes-bsp/efivar/efivar/determinism.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Fix reproducibility issue caused by unsorted wildcard expansion.
-
-Upstream-Status: Pending
-RP 2021/3/1
-
-Index: git/src/Makefile
-===================================================================
---- git.orig/src/Makefile
-+++ git/src/Makefile
-@@ -15,7 +15,7 @@ TARGETS=$(LIBTARGETS) $(BINTARGETS) $(PC
- STATICTARGETS=$(STATICLIBTARGETS) $(STATICBINTARGETS)
- 
- LIBEFIBOOT_SOURCES = crc32.c creator.c disk.c gpt.c loadopt.c path-helpers.c \
--		     linux.c $(wildcard linux-*.c)
-+		     linux.c $(sort $(wildcard linux-*.c))
- LIBEFIBOOT_OBJECTS = $(patsubst %.c,%.o,$(LIBEFIBOOT_SOURCES))
- LIBEFIVAR_SOURCES = dp.c dp-acpi.c dp-hw.c dp-media.c dp-message.c \
- 	efivarfs.c error.c export.c guid.c guids.S guid-symbols.c \
diff --git a/poky/meta/recipes-bsp/efivar/efivar/no-werror.patch b/poky/meta/recipes-bsp/efivar/efivar/no-werror.patch
deleted file mode 100644
index 50a0b10..0000000
--- a/poky/meta/recipes-bsp/efivar/efivar/no-werror.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Don't use -Werror because newer compilers introduce newer warnings.
-
-Upstream-Status: Inappropriate [https://github.com/rhboot/efivar/issues/131]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/gcc.specs b/gcc.specs
-index 45d43d1..1baf11a 100644
---- a/gcc.specs
-+++ b/gcc.specs
-@@ -2,7 +2,7 @@
- + -D_GNU_SOURCE
- 
- *efivar_cpp_options:
-- -Werror -Wall -std=gnu11 -Wextra
-+ -Wall -std=gnu11 -Wextra
- 
- *cpp_options:
- + %(efivar_cpp_options)
diff --git a/poky/meta/recipes-bsp/efivar/efivar_37.bb b/poky/meta/recipes-bsp/efivar/efivar_37.bb
deleted file mode 100644
index b11f153..0000000
--- a/poky/meta/recipes-bsp/efivar/efivar_37.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Tools to manipulate UEFI variables"
-DESCRIPTION = "efivar provides a simple command line interface to the UEFI variable facility"
-HOMEPAGE = "https://github.com/rhboot/efivar"
-
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6626bb1e20189cfa95f2c508ba286393"
-
-COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
-
-SRC_URI = "git://github.com/rhinstaller/efivar.git \
-           file://determinism.patch \
-           file://no-werror.patch"
-SRCREV = "c1d6b10e1ed4ba2be07f385eae5bceb694478a10"
-
-S = "${WORKDIR}/git"
-
-inherit pkgconfig
-
-export CCLD_FOR_BUILD = "${BUILD_CCLD}"
-
-# Upstream uses --add-needed in gcc.specs which gold doesn't support, so
-# enforce BFD.
-LDFLAGS += "-fuse-ld=bfd"
-
-do_compile:prepend() {
-    # Remove when https://github.com/rhboot/efivar/issues/130 is fixed
-    oe_runmake \
-        CFLAGS="${BUILD_CFLAGS}" \
-        LDFLAGS="${BUILD_LDFLAGS}" \
-        -C src makeguids
-}
-
-do_install() {
-    oe_runmake install DESTDIR=${D}
-}
-
-BBCLASSEXTEND = "native"
-
-RRECOMMENDS:${PN}:class-target = "kernel-module-efivarfs"
-
-CLEANBROKEN = "1"
diff --git a/poky/meta/recipes-bsp/efivar/efivar_38.bb b/poky/meta/recipes-bsp/efivar/efivar_38.bb
new file mode 100644
index 0000000..5d2cd47
--- /dev/null
+++ b/poky/meta/recipes-bsp/efivar/efivar_38.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Tools to manipulate UEFI variables"
+DESCRIPTION = "efivar provides a simple command line interface to the UEFI variable facility"
+HOMEPAGE = "https://github.com/rhboot/efivar"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6626bb1e20189cfa95f2c508ba286393"
+
+COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
+
+SRC_URI = "git://github.com/rhinstaller/efivar.git;branch=main;protocol=https \
+           file://0001-docs-do-not-build-efisecdb-manpage.patch \
+           file://0001-src-Makefile-build-util.c-separately-for-makeguids.patch \
+           "
+SRCREV = "1753149d4176ebfb2b135ac0aaf79340bf0e7a93"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig
+
+export CCLD_FOR_BUILD = "${BUILD_CCLD}"
+
+# Upstream uses --add-needed in gcc.specs which gold doesn't support, so
+# enforce BFD.
+LDFLAGS += "-fuse-ld=bfd"
+
+do_compile() {
+    oe_runmake ERRORS= HOST_CFLAGS="${BUILD_CFLAGS}" HOST_LDFLAGS="${BUILD_LDFLAGS}"
+}
+
+do_install() {
+    oe_runmake install DESTDIR=${D}
+}
+
+BBCLASSEXTEND = "native"
+
+RRECOMMENDS:${PN}:class-target = "kernel-module-efivarfs"
+
+CLEANBROKEN = "1"
+# https://github.com/rhboot/efivar/issues/202
+COMPATIBLE_HOST:libc-musl = 'null'
diff --git a/poky/meta/recipes-bsp/grub/files/CVE-2021-3981-grub-mkconfig-Restore-umask-for-the-grub.cfg.patch b/poky/meta/recipes-bsp/grub/files/CVE-2021-3981-grub-mkconfig-Restore-umask-for-the-grub.cfg.patch
new file mode 100644
index 0000000..dae26fd
--- /dev/null
+++ b/poky/meta/recipes-bsp/grub/files/CVE-2021-3981-grub-mkconfig-Restore-umask-for-the-grub.cfg.patch
@@ -0,0 +1,49 @@
+From 0adec29674561034771c13e446069b41ef41e4d4 Mon Sep 17 00:00:00 2001
+From: Michael Chang <mchang@suse.com>
+Date: Fri, 3 Dec 2021 16:13:28 +0800
+Subject: [PATCH] grub-mkconfig: Restore umask for the grub.cfg
+
+The commit ab2e53c8a (grub-mkconfig: Honor a symlink when generating
+configuration by grub-mkconfig) has inadvertently discarded umask for
+creating grub.cfg in the process of running grub-mkconfig. The resulting
+wrong permission (0644) would allow unprivileged users to read GRUB
+configuration file content. This presents a low confidentiality risk
+as grub.cfg may contain non-secured plain-text passwords.
+
+This patch restores the missing umask and sets the creation file mode
+to 0600 preventing unprivileged access.
+
+Fixes: CVE-2021-3981
+
+Signed-off-by: Michael Chang <mchang@suse.com>
+Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
+
+Upstream-Status: Backport
+CVE: CVE-2021-3981
+
+Reference to upstream patch:
+https://git.savannah.gnu.org/cgit/grub.git/commit/?id=0adec29674561034771c13e446069b41ef41e4d4
+
+Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com>
+---
+ util/grub-mkconfig.in | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
+index c3ea7612e..62335d027 100644
+--- a/util/grub-mkconfig.in
++++ b/util/grub-mkconfig.in
+@@ -301,7 +301,10 @@ and /etc/grub.d/* files or please file a bug report with
+     exit 1
+   else
+     # none of the children aborted with error, install the new grub.cfg
++    oldumask=$(umask)
++    umask 077
+     cat ${grub_cfg}.new > ${grub_cfg}
++    umask $oldumask
+     rm -f ${grub_cfg}.new
+   fi
+ fi
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-bsp/grub/grub-efi_2.06.bb b/poky/meta/recipes-bsp/grub/grub-efi_2.06.bb
index a8cc209..df5f23e 100644
--- a/poky/meta/recipes-bsp/grub/grub-efi_2.06.bb
+++ b/poky/meta/recipes-bsp/grub/grub-efi_2.06.bb
@@ -73,6 +73,9 @@
 GRUB_BUILDIN ?= "boot linux ext2 fat serial part_msdos part_gpt normal \
                  efi_gop iso9660 configfile search loadenv test"
 
+# 'xen_boot' is a module valid only for aarch64
+GRUB_BUILDIN:append:aarch64 = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' xen_boot', '', d)}"
+
 do_deploy() {
 	install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${DEPLOYDIR}
 }
diff --git a/poky/meta/recipes-bsp/grub/grub2.inc b/poky/meta/recipes-bsp/grub/grub2.inc
index bb79134..a72a562 100644
--- a/poky/meta/recipes-bsp/grub/grub2.inc
+++ b/poky/meta/recipes-bsp/grub/grub2.inc
@@ -20,6 +20,7 @@
            file://0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch \
            file://determinism.patch \
            file://0001-RISC-V-Restore-the-typcast-to-long.patch \
+           file://CVE-2021-3981-grub-mkconfig-Restore-umask-for-the-grub.cfg.patch \
 "
 
 SRC_URI[sha256sum] = "23b64b4c741569f9426ed2e3d0e6780796fca081bee4c99f62aa3f53ae803f5f"
diff --git a/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/0001-Fix-cross-compilation-using-autoconf-detected-AR.patch b/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/0001-Fix-cross-compilation-using-autoconf-detected-AR.patch
index 47c7ec4..c8f0e2c 100644
--- a/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/0001-Fix-cross-compilation-using-autoconf-detected-AR.patch
+++ b/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/0001-Fix-cross-compilation-using-autoconf-detected-AR.patch
@@ -6,7 +6,7 @@
 currently its using 'ar' program from build host, which is not expected,
 we need to respect AR passed in environment
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [upstream hasn't been active since 1998]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
diff --git a/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/autotools-update.patch b/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/autotools-update.patch
index 33af38b..ebd4a88 100644
--- a/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/autotools-update.patch
+++ b/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/autotools-update.patch
@@ -1,6 +1,6 @@
 Update autotools infrastructure (including gettext) to modern versions.
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [upstream hasn't been active since 1998]
 Signed-off-by: Phil Blundell <pb@pbcl.net>
 
 diff -uprN clean/lrzsz-0.12.20/configure.in lrzsz-0.12.20/configure.in
diff --git a/poky/meta/recipes-bsp/opensbi/opensbi_0.9.bb b/poky/meta/recipes-bsp/opensbi/opensbi_0.9.bb
index cb9f346..1956fbf 100644
--- a/poky/meta/recipes-bsp/opensbi/opensbi_0.9.bb
+++ b/poky/meta/recipes-bsp/opensbi/opensbi_0.9.bb
@@ -9,7 +9,7 @@
 inherit autotools-brokensep deploy
 
 SRCREV = "234ed8e427f4d92903123199f6590d144e0d9351"
-SRC_URI = "git://github.com/riscv/opensbi.git;branch=master \
+SRC_URI = "git://github.com/riscv/opensbi.git;branch=master;protocol=https \
            file://0001-Makefile-Don-t-specify-mabi-or-march.patch \
           "
 
diff --git a/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb b/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb
index ce14bc4..6906e53 100644
--- a/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb
+++ b/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb
@@ -10,7 +10,7 @@
 LIC_FILES_CHKSUM = "file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c"
 SECTION = "libs"
 
-SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https"
+SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https;branch=master"
 SRCREV = "ba7564f5006d09bec51058cf4f5ac90d4dc18b3c"
 
 S = "${WORKDIR}/git"
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 e41a4b5..c09b1c2 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -12,9 +12,9 @@
 
 # We use the revision in order to avoid having to fetch it from the
 # repo during parse
-SRCREV = "d80bb749fab53da72c4a0e09b8c2d2aaa3103c91"
+SRCREV = "d637294e264adfeb29f390dfc393106fd4d41b17"
 
-SRC_URI = "git://git.denx.de/u-boot.git \
+SRC_URI = "git://git.denx.de/u-boot.git;branch=master \
           "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2021.10.bb b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2022.01.bb
similarity index 100%
rename from poky/meta/recipes-bsp/u-boot/u-boot-tools_2021.10.bb
rename to poky/meta/recipes-bsp/u-boot/u-boot-tools_2022.01.bb
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot_2021.10.bb b/poky/meta/recipes-bsp/u-boot/u-boot_2022.01.bb
similarity index 100%
rename from poky/meta/recipes-bsp/u-boot/u-boot_2021.10.bb
rename to poky/meta/recipes-bsp/u-boot/u-boot_2022.01.bb
diff --git a/poky/meta/recipes-connectivity/avahi/files/local-ping.patch b/poky/meta/recipes-connectivity/avahi/files/local-ping.patch
index 94116ad..29c192d 100644
--- a/poky/meta/recipes-connectivity/avahi/files/local-ping.patch
+++ b/poky/meta/recipes-connectivity/avahi/files/local-ping.patch
@@ -1,4 +1,5 @@
 CVE: CVE-2021-36217
+CVE: CVE-2021-3502
 Upstream-Status: Backport
 Signed-off-by: Ross Burton <ross.burton@arm.com>
 
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.21/0001-avoid-start-failure-with-bind-user.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.21/0001-avoid-start-failure-with-bind-user.patch
deleted file mode 100644
index 8db96ec..0000000
--- a/poky/meta/recipes-connectivity/bind/bind-9.16.21/0001-avoid-start-failure-with-bind-user.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 31dde3562f287429eea94b77250d184818b49063 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 15 Oct 2018 16:55:09 +0800
-Subject: [PATCH] avoid start failure with bind user
-
-Upstream-Status: Pending
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- init.d | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/init.d b/init.d
-index b2eec60..6e03936 100644
---- a/init.d
-+++ b/init.d
-@@ -57,6 +57,7 @@ case "$1" in
- 	modprobe capability >/dev/null 2>&1 || true
- 	if [ ! -f /etc/bind/rndc.key ]; then
- 	    /usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom
-+	    chown root:bind /etc/bind/rndc.key >/dev/null 2>&1 || true
- 	    chmod 0640 /etc/bind/rndc.key
- 	fi
- 	if [ -f /var/run/named/named.pid ]; then
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.21/0001-named-lwresd-V-and-start-log-hide-build-options.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.21/0001-named-lwresd-V-and-start-log-hide-build-options.patch
deleted file mode 100644
index 5bcc16c..0000000
--- a/poky/meta/recipes-connectivity/bind/bind-9.16.21/0001-named-lwresd-V-and-start-log-hide-build-options.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From a3af4a405baf5ff582e82aaba392dd9667d94bdc Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 27 Aug 2018 21:24:20 +0800
-Subject: [PATCH] `named/lwresd -V' and start log hide build options
-
-The build options expose build path directories, so hide them.
-[snip]
-$ named -V
-|built by make with *** (options are hidden)
-[snip]
-
-Upstream-Status: Inappropriate [oe-core specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
-Refreshed for 9.16.0
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
----
- bin/named/include/named/globals.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: bind-9.16.0/bin/named/include/named/globals.h
-===================================================================
---- bind-9.16.0.orig/bin/named/include/named/globals.h
-+++ bind-9.16.0/bin/named/include/named/globals.h
-@@ -69,7 +69,7 @@ EXTERN const char *named_g_version     I
- EXTERN const char *named_g_product     INIT(PRODUCT);
- EXTERN const char *named_g_description INIT(DESCRIPTION);
- EXTERN const char *named_g_srcid       INIT(SRCID);
--EXTERN const char *named_g_configargs  INIT(CONFIGARGS);
-+EXTERN const char *named_g_configargs  INIT("*** (options are hidden)");
- EXTERN const char *named_g_builder     INIT(BUILDER);
- EXTERN in_port_t named_g_port	       INIT(0);
- EXTERN isc_dscp_t named_g_dscp	       INIT(-1);
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.21/conf.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.21/conf.patch
deleted file mode 100644
index aad345f..0000000
--- a/poky/meta/recipes-connectivity/bind/bind-9.16.21/conf.patch
+++ /dev/null
@@ -1,330 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-the patch is imported from openembedded project
-
-11/30/2010 - Qing He <qing.he@intel.com>
-
-diff -urN bind-9.3.1.orig/conf/db.0 bind-9.3.1/conf/db.0
---- bind-9.3.1.orig/conf/db.0	1970-01-01 01:00:00.000000000 +0100
-+++ bind-9.3.1/conf/db.0	2005-07-10 22:14:00.000000000 +0200
-@@ -0,0 +1,12 @@
-+;
-+; BIND reverse data file for broadcast zone
-+;
-+$TTL	604800
-+@	IN	SOA	localhost. root.localhost. (
-+			      1		; Serial
-+			 604800		; Refresh
-+			  86400		; Retry
-+			2419200		; Expire
-+			 604800 )	; Negative Cache TTL
-+;
-+@	IN	NS	localhost.
-diff -urN bind-9.3.1.orig/conf/db.127 bind-9.3.1/conf/db.127
---- bind-9.3.1.orig/conf/db.127	1970-01-01 01:00:00.000000000 +0100
-+++ bind-9.3.1/conf/db.127	2005-07-10 22:14:00.000000000 +0200
-@@ -0,0 +1,13 @@
-+;
-+; BIND reverse data file for local loopback interface
-+;
-+$TTL	604800
-+@	IN	SOA	localhost. root.localhost. (
-+			      1		; Serial
-+			 604800		; Refresh
-+			  86400		; Retry
-+			2419200		; Expire
-+			 604800 )	; Negative Cache TTL
-+;
-+@	IN	NS	localhost.
-+1.0.0	IN	PTR	localhost.
-diff -urN bind-9.3.1.orig/conf/db.empty bind-9.3.1/conf/db.empty
---- bind-9.3.1.orig/conf/db.empty	1970-01-01 01:00:00.000000000 +0100
-+++ bind-9.3.1/conf/db.empty	2005-07-10 22:14:00.000000000 +0200
-@@ -0,0 +1,14 @@
-+; BIND reverse data file for empty rfc1918 zone
-+;
-+; DO NOT EDIT THIS FILE - it is used for multiple zones.
-+; Instead, copy it, edit named.conf, and use that copy.
-+;
-+$TTL	86400
-+@	IN	SOA	localhost. root.localhost. (
-+			      1		; Serial
-+			 604800		; Refresh
-+			  86400		; Retry
-+			2419200		; Expire
-+			  86400 )	; Negative Cache TTL
-+;
-+@	IN	NS	localhost.
-diff -urN bind-9.3.1.orig/conf/db.255 bind-9.3.1/conf/db.255
---- bind-9.3.1.orig/conf/db.255	1970-01-01 01:00:00.000000000 +0100
-+++ bind-9.3.1/conf/db.255	2005-07-10 22:14:00.000000000 +0200
-@@ -0,0 +1,12 @@
-+;
-+; BIND reserve data file for broadcast zone
-+;
-+$TTL	604800
-+@	IN	SOA	localhost. root.localhost. (
-+			      1		; Serial
-+			 604800		; Refresh
-+			  86400		; Retry
-+			2419200		; Expire
-+			 604800 )	; Negative Cache TTL
-+;
-+@	IN	NS	localhost.
-diff -urN bind-9.3.1.orig/conf/db.local bind-9.3.1/conf/db.local
---- bind-9.3.1.orig/conf/db.local	1970-01-01 01:00:00.000000000 +0100
-+++ bind-9.3.1/conf/db.local	2005-07-10 22:14:00.000000000 +0200
-@@ -0,0 +1,13 @@
-+;
-+; BIND data file for local loopback interface
-+;
-+$TTL	604800
-+@	IN	SOA	localhost. root.localhost. (
-+			      1		; Serial
-+			 604800		; Refresh
-+			  86400		; Retry
-+			2419200		; Expire
-+			 604800 )	; Negative Cache TTL
-+;
-+@	IN	NS	localhost.
-+@	IN	A	127.0.0.1
-diff -urN bind-9.3.1.orig/conf/db.root bind-9.3.1/conf/db.root
---- bind-9.3.1.orig/conf/db.root	1970-01-01 01:00:00.000000000 +0100
-+++ bind-9.3.1/conf/db.root	2005-07-10 22:14:00.000000000 +0200
-@@ -0,0 +1,45 @@
-+
-+; <<>> DiG 9.2.3 <<>> ns . @a.root-servers.net.
-+;; global options:  printcmd
-+;; Got answer:
-+;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18944
-+;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
-+
-+;; QUESTION SECTION:
-+;.				IN	NS
-+
-+;; ANSWER SECTION:
-+.			518400	IN	NS	A.ROOT-SERVERS.NET.
-+.			518400	IN	NS	B.ROOT-SERVERS.NET.
-+.			518400	IN	NS	C.ROOT-SERVERS.NET.
-+.			518400	IN	NS	D.ROOT-SERVERS.NET.
-+.			518400	IN	NS	E.ROOT-SERVERS.NET.
-+.			518400	IN	NS	F.ROOT-SERVERS.NET.
-+.			518400	IN	NS	G.ROOT-SERVERS.NET.
-+.			518400	IN	NS	H.ROOT-SERVERS.NET.
-+.			518400	IN	NS	I.ROOT-SERVERS.NET.
-+.			518400	IN	NS	J.ROOT-SERVERS.NET.
-+.			518400	IN	NS	K.ROOT-SERVERS.NET.
-+.			518400	IN	NS	L.ROOT-SERVERS.NET.
-+.			518400	IN	NS	M.ROOT-SERVERS.NET.
-+
-+;; ADDITIONAL SECTION:
-+A.ROOT-SERVERS.NET.	3600000	IN	A	198.41.0.4
-+B.ROOT-SERVERS.NET.	3600000	IN	A	192.228.79.201
-+C.ROOT-SERVERS.NET.	3600000	IN	A	192.33.4.12
-+D.ROOT-SERVERS.NET.	3600000	IN	A	128.8.10.90
-+E.ROOT-SERVERS.NET.	3600000	IN	A	192.203.230.10
-+F.ROOT-SERVERS.NET.	3600000	IN	A	192.5.5.241
-+G.ROOT-SERVERS.NET.	3600000	IN	A	192.112.36.4
-+H.ROOT-SERVERS.NET.	3600000	IN	A	128.63.2.53
-+I.ROOT-SERVERS.NET.	3600000	IN	A	192.36.148.17
-+J.ROOT-SERVERS.NET.	3600000	IN	A	192.58.128.30
-+K.ROOT-SERVERS.NET.	3600000	IN	A	193.0.14.129
-+L.ROOT-SERVERS.NET.	3600000	IN	A	198.32.64.12
-+M.ROOT-SERVERS.NET.	3600000	IN	A	202.12.27.33
-+
-+;; Query time: 81 msec
-+;; SERVER: 198.41.0.4#53(a.root-servers.net.)
-+;; WHEN: Sun Feb  1 11:27:14 2004
-+;; MSG SIZE  rcvd: 436
-+
-diff -urN bind-9.3.1.orig/conf/named.conf bind-9.3.1/conf/named.conf
---- bind-9.3.1.orig/conf/named.conf	1970-01-01 01:00:00.000000000 +0100
-+++ bind-9.3.1/conf/named.conf	2005-07-10 22:33:46.000000000 +0200
-@@ -0,0 +1,49 @@
-+// This is the primary configuration file for the BIND DNS server named.
-+//
-+// If you are just adding zones, please do that in /etc/bind/named.conf.local
-+
-+include "/etc/bind/named.conf.options";
-+
-+// prime the server with knowledge of the root servers
-+zone "." {
-+	type hint;
-+	file "/etc/bind/db.root";
-+};
-+
-+// be authoritative for the localhost forward and reverse zones, and for
-+// broadcast zones as per RFC 1912
-+
-+zone "localhost" {
-+	type master;
-+	file "/etc/bind/db.local";
-+};
-+
-+zone "127.in-addr.arpa" {
-+	type master;
-+	file "/etc/bind/db.127";
-+};
-+
-+zone "0.in-addr.arpa" {
-+	type master;
-+	file "/etc/bind/db.0";
-+};
-+
-+zone "255.in-addr.arpa" {
-+	type master;
-+	file "/etc/bind/db.255";
-+};
-+
-+// zone "com" { type delegation-only; };
-+// zone "net" { type delegation-only; };
-+
-+// From the release notes:
-+//  Because many of our users are uncomfortable receiving undelegated answers
-+//  from root or top level domains, other than a few for whom that behaviour
-+//  has been trusted and expected for quite some length of time, we have now
-+//  introduced the "root-delegations-only" feature which applies delegation-only
-+//  logic to all top level domains, and to the root domain.  An exception list
-+//  should be specified, including "MUSEUM" and "DE", and any other top level
-+//  domains from whom undelegated responses are expected and trusted.
-+// root-delegation-only exclude { "DE"; "MUSEUM"; };
-+
-+include "/etc/bind/named.conf.local";
-diff -urN bind-9.3.1.orig/conf/named.conf.local bind-9.3.1/conf/named.conf.local
---- bind-9.3.1.orig/conf/named.conf.local	1970-01-01 01:00:00.000000000 +0100
-+++ bind-9.3.1/conf/named.conf.local	2005-07-10 22:14:06.000000000 +0200
-@@ -0,0 +1,8 @@
-+//
-+// Do any local configuration here
-+//
-+
-+// Consider adding the 1918 zones here, if they are not used in your
-+// organization
-+//include "/etc/bind/zones.rfc1918";
-+
-diff -urN bind-9.3.1.orig/conf/named.conf.options bind-9.3.1/conf/named.conf.options
---- bind-9.3.1.orig/conf/named.conf.options	1970-01-01 01:00:00.000000000 +0100
-+++ bind-9.3.1/conf/named.conf.options	2005-07-10 22:14:06.000000000 +0200
-@@ -0,0 +1,24 @@
-+options {
-+	directory "/var/cache/bind";
-+
-+	// If there is a firewall between you and nameservers you want
-+	// to talk to, you might need to uncomment the query-source
-+	// directive below.  Previous versions of BIND always asked
-+	// questions using port 53, but BIND 8.1 and later use an unprivileged
-+	// port by default.
-+
-+	// query-source address * port 53;
-+
-+	// If your ISP provided one or more IP addresses for stable 
-+	// nameservers, you probably want to use them as forwarders.  
-+	// Uncomment the following block, and insert the addresses replacing 
-+	// the all-0's placeholder.
-+
-+	// forwarders {
-+	// 	0.0.0.0;
-+	// };
-+
-+	auth-nxdomain no;    # conform to RFC1035
-+
-+};
-+
-diff -urN bind-9.3.1.orig/conf/zones.rfc1918 bind-9.3.1/conf/zones.rfc1918
---- bind-9.3.1.orig/conf/zones.rfc1918	1970-01-01 01:00:00.000000000 +0100
-+++ bind-9.3.1/conf/zones.rfc1918	2005-07-10 22:14:10.000000000 +0200
-@@ -0,0 +1,20 @@
-+zone "10.in-addr.arpa"      { type master; file "/etc/bind/db.empty"; };
-+ 
-+zone "16.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "17.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "18.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "19.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "20.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "21.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "22.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "23.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "24.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "25.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "26.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "27.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "28.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "29.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "30.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+zone "31.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
-+
-+zone "168.192.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
-diff -urN bind-9.3.1.orig/init.d bind-9.3.1/init.d
---- bind-9.3.1.orig/init.d	1970-01-01 01:00:00.000000000 +0100
-+++ bind-9.3.1/init.d	2005-07-10 23:09:58.000000000 +0200
-@@ -0,0 +1,70 @@
-+#!/bin/sh
-+
-+PATH=/sbin:/bin:/usr/sbin:/usr/bin
-+
-+# for a chrooted server: "-u bind -t /var/lib/named"
-+# Don't modify this line, change or create /etc/default/bind9.
-+OPTIONS=""
-+
-+test -f /etc/default/bind9 && . /etc/default/bind9
-+
-+test -x /usr/sbin/rndc || exit 0
-+
-+case "$1" in
-+    start)
-+	echo -n "Starting domain name service: named"
-+
-+	modprobe capability >/dev/null 2>&1 || true
-+	if [ ! -f /etc/bind/rndc.key ]; then
-+	    /usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom
-+	    chmod 0640 /etc/bind/rndc.key
-+	fi
-+	if [ -f /var/run/named/named.pid ]; then
-+	    ps `cat /var/run/named/named.pid` > /dev/null && exit 1
-+	fi
-+
-+	# dirs under /var/run can go away on reboots.
-+	mkdir -p /var/run/named
-+	mkdir -p /var/cache/bind
-+	chmod 775 /var/run/named
-+	chown root:bind /var/run/named >/dev/null 2>&1 || true
-+
-+	if [ ! -x /usr/sbin/named ]; then
-+	    echo "named binary missing - not starting"
-+	    exit 1
-+	fi
-+	if start-stop-daemon --start --quiet --exec /usr/sbin/named \
-+		--pidfile /var/run/named/named.pid -- $OPTIONS; then
-+	    if [ -x /sbin/resolvconf ] ; then
-+		echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo
-+	    fi
-+	fi
-+	echo "."	
-+    ;;
-+
-+    stop)
-+	echo -n "Stopping domain name service: named"
-+	if [ -x /sbin/resolvconf ]; then
-+	    /sbin/resolvconf -d lo
-+	fi
-+	/usr/sbin/rndc stop >/dev/null 2>&1
-+	echo "."	
-+    ;;
-+
-+    reload)
-+	/usr/sbin/rndc reload
-+    ;;
-+
-+    restart|force-reload)
-+	$0 stop
-+	sleep 2
-+	$0 start
-+    ;;
-+    
-+    *)
-+	echo "Usage: /etc/init.d/bind {start|stop|reload|restart|force-reload}" >&2
-+	exit 1
-+    ;;
-+esac
-+
-+exit 0
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.24/0001-avoid-start-failure-with-bind-user.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.24/0001-avoid-start-failure-with-bind-user.patch
new file mode 100644
index 0000000..ec1bc7b
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bind/bind-9.16.24/0001-avoid-start-failure-with-bind-user.patch
@@ -0,0 +1,27 @@
+From 31dde3562f287429eea94b77250d184818b49063 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 15 Oct 2018 16:55:09 +0800
+Subject: [PATCH] avoid start failure with bind user
+
+Upstream-Status: Pending
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ init.d | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/init.d b/init.d
+index b2eec60..6e03936 100644
+--- a/init.d
++++ b/init.d
+@@ -57,6 +57,7 @@ case "$1" in
+ 	modprobe capability >/dev/null 2>&1 || true
+ 	if [ ! -f /etc/bind/rndc.key ]; then
+ 	    /usr/sbin/rndc-confgen -a -b 512
++	    chown root:bind /etc/bind/rndc.key >/dev/null 2>&1 || true
+ 	    chmod 0640 /etc/bind/rndc.key
+ 	fi
+ 	if [ -f /var/run/named/named.pid ]; then
+-- 
+2.7.4
+
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.24/0001-named-lwresd-V-and-start-log-hide-build-options.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.24/0001-named-lwresd-V-and-start-log-hide-build-options.patch
new file mode 100644
index 0000000..4dc6a5a
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bind/bind-9.16.24/0001-named-lwresd-V-and-start-log-hide-build-options.patch
@@ -0,0 +1,37 @@
+From f5761bbaf743d291f3e7e859e69ebe61a1718cbf Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 27 Aug 2018 21:24:20 +0800
+Subject: [PATCH] `named/lwresd -V' and start log hide build options
+
+The build options expose build path directories, so hide them.
+[snip]
+$ named -V
+|built by make with *** (options are hidden)
+[snip]
+
+Upstream-Status: Inappropriate [oe-core specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Refreshed for 9.16.0
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+---
+ bin/named/include/named/globals.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bin/named/include/named/globals.h b/bin/named/include/named/globals.h
+index 0572154..3147e04 100644
+--- a/bin/named/include/named/globals.h
++++ b/bin/named/include/named/globals.h
+@@ -69,7 +69,7 @@ EXTERN const char *named_g_version	  INIT(VERSION);
+ EXTERN const char *named_g_product	  INIT(PRODUCT);
+ EXTERN const char *named_g_description	  INIT(DESCRIPTION);
+ EXTERN const char *named_g_srcid	  INIT(SRCID);
+-EXTERN const char *named_g_configargs	  INIT(CONFIGARGS);
++EXTERN const char *named_g_configargs	  INIT("*** (options are hidden)");
+ EXTERN const char *named_g_builder	  INIT(BUILDER);
+ EXTERN in_port_t named_g_port		  INIT(0);
+ EXTERN isc_dscp_t named_g_dscp		  INIT(-1);
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.21/bind-ensure-searching-for-json-headers-searches-sysr.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.24/bind-ensure-searching-for-json-headers-searches-sysr.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.21/bind-ensure-searching-for-json-headers-searches-sysr.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.24/bind-ensure-searching-for-json-headers-searches-sysr.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.21/bind9 b/poky/meta/recipes-connectivity/bind/bind-9.16.24/bind9
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.21/bind9
rename to poky/meta/recipes-connectivity/bind/bind-9.16.24/bind9
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.24/conf.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.24/conf.patch
new file mode 100644
index 0000000..aa3642a
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bind/bind-9.16.24/conf.patch
@@ -0,0 +1,330 @@
+Upstream-Status: Inappropriate [configuration]
+
+the patch is imported from openembedded project
+
+11/30/2010 - Qing He <qing.he@intel.com>
+
+diff -urN bind-9.3.1.orig/conf/db.0 bind-9.3.1/conf/db.0
+--- bind-9.3.1.orig/conf/db.0	1970-01-01 01:00:00.000000000 +0100
++++ bind-9.3.1/conf/db.0	2005-07-10 22:14:00.000000000 +0200
+@@ -0,0 +1,12 @@
++;
++; BIND reverse data file for broadcast zone
++;
++$TTL	604800
++@	IN	SOA	localhost. root.localhost. (
++			      1		; Serial
++			 604800		; Refresh
++			  86400		; Retry
++			2419200		; Expire
++			 604800 )	; Negative Cache TTL
++;
++@	IN	NS	localhost.
+diff -urN bind-9.3.1.orig/conf/db.127 bind-9.3.1/conf/db.127
+--- bind-9.3.1.orig/conf/db.127	1970-01-01 01:00:00.000000000 +0100
++++ bind-9.3.1/conf/db.127	2005-07-10 22:14:00.000000000 +0200
+@@ -0,0 +1,13 @@
++;
++; BIND reverse data file for local loopback interface
++;
++$TTL	604800
++@	IN	SOA	localhost. root.localhost. (
++			      1		; Serial
++			 604800		; Refresh
++			  86400		; Retry
++			2419200		; Expire
++			 604800 )	; Negative Cache TTL
++;
++@	IN	NS	localhost.
++1.0.0	IN	PTR	localhost.
+diff -urN bind-9.3.1.orig/conf/db.empty bind-9.3.1/conf/db.empty
+--- bind-9.3.1.orig/conf/db.empty	1970-01-01 01:00:00.000000000 +0100
++++ bind-9.3.1/conf/db.empty	2005-07-10 22:14:00.000000000 +0200
+@@ -0,0 +1,14 @@
++; BIND reverse data file for empty rfc1918 zone
++;
++; DO NOT EDIT THIS FILE - it is used for multiple zones.
++; Instead, copy it, edit named.conf, and use that copy.
++;
++$TTL	86400
++@	IN	SOA	localhost. root.localhost. (
++			      1		; Serial
++			 604800		; Refresh
++			  86400		; Retry
++			2419200		; Expire
++			  86400 )	; Negative Cache TTL
++;
++@	IN	NS	localhost.
+diff -urN bind-9.3.1.orig/conf/db.255 bind-9.3.1/conf/db.255
+--- bind-9.3.1.orig/conf/db.255	1970-01-01 01:00:00.000000000 +0100
++++ bind-9.3.1/conf/db.255	2005-07-10 22:14:00.000000000 +0200
+@@ -0,0 +1,12 @@
++;
++; BIND reserve data file for broadcast zone
++;
++$TTL	604800
++@	IN	SOA	localhost. root.localhost. (
++			      1		; Serial
++			 604800		; Refresh
++			  86400		; Retry
++			2419200		; Expire
++			 604800 )	; Negative Cache TTL
++;
++@	IN	NS	localhost.
+diff -urN bind-9.3.1.orig/conf/db.local bind-9.3.1/conf/db.local
+--- bind-9.3.1.orig/conf/db.local	1970-01-01 01:00:00.000000000 +0100
++++ bind-9.3.1/conf/db.local	2005-07-10 22:14:00.000000000 +0200
+@@ -0,0 +1,13 @@
++;
++; BIND data file for local loopback interface
++;
++$TTL	604800
++@	IN	SOA	localhost. root.localhost. (
++			      1		; Serial
++			 604800		; Refresh
++			  86400		; Retry
++			2419200		; Expire
++			 604800 )	; Negative Cache TTL
++;
++@	IN	NS	localhost.
++@	IN	A	127.0.0.1
+diff -urN bind-9.3.1.orig/conf/db.root bind-9.3.1/conf/db.root
+--- bind-9.3.1.orig/conf/db.root	1970-01-01 01:00:00.000000000 +0100
++++ bind-9.3.1/conf/db.root	2005-07-10 22:14:00.000000000 +0200
+@@ -0,0 +1,45 @@
++
++; <<>> DiG 9.2.3 <<>> ns . @a.root-servers.net.
++;; global options:  printcmd
++;; Got answer:
++;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18944
++;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
++
++;; QUESTION SECTION:
++;.				IN	NS
++
++;; ANSWER SECTION:
++.			518400	IN	NS	A.ROOT-SERVERS.NET.
++.			518400	IN	NS	B.ROOT-SERVERS.NET.
++.			518400	IN	NS	C.ROOT-SERVERS.NET.
++.			518400	IN	NS	D.ROOT-SERVERS.NET.
++.			518400	IN	NS	E.ROOT-SERVERS.NET.
++.			518400	IN	NS	F.ROOT-SERVERS.NET.
++.			518400	IN	NS	G.ROOT-SERVERS.NET.
++.			518400	IN	NS	H.ROOT-SERVERS.NET.
++.			518400	IN	NS	I.ROOT-SERVERS.NET.
++.			518400	IN	NS	J.ROOT-SERVERS.NET.
++.			518400	IN	NS	K.ROOT-SERVERS.NET.
++.			518400	IN	NS	L.ROOT-SERVERS.NET.
++.			518400	IN	NS	M.ROOT-SERVERS.NET.
++
++;; ADDITIONAL SECTION:
++A.ROOT-SERVERS.NET.	3600000	IN	A	198.41.0.4
++B.ROOT-SERVERS.NET.	3600000	IN	A	192.228.79.201
++C.ROOT-SERVERS.NET.	3600000	IN	A	192.33.4.12
++D.ROOT-SERVERS.NET.	3600000	IN	A	128.8.10.90
++E.ROOT-SERVERS.NET.	3600000	IN	A	192.203.230.10
++F.ROOT-SERVERS.NET.	3600000	IN	A	192.5.5.241
++G.ROOT-SERVERS.NET.	3600000	IN	A	192.112.36.4
++H.ROOT-SERVERS.NET.	3600000	IN	A	128.63.2.53
++I.ROOT-SERVERS.NET.	3600000	IN	A	192.36.148.17
++J.ROOT-SERVERS.NET.	3600000	IN	A	192.58.128.30
++K.ROOT-SERVERS.NET.	3600000	IN	A	193.0.14.129
++L.ROOT-SERVERS.NET.	3600000	IN	A	198.32.64.12
++M.ROOT-SERVERS.NET.	3600000	IN	A	202.12.27.33
++
++;; Query time: 81 msec
++;; SERVER: 198.41.0.4#53(a.root-servers.net.)
++;; WHEN: Sun Feb  1 11:27:14 2004
++;; MSG SIZE  rcvd: 436
++
+diff -urN bind-9.3.1.orig/conf/named.conf bind-9.3.1/conf/named.conf
+--- bind-9.3.1.orig/conf/named.conf	1970-01-01 01:00:00.000000000 +0100
++++ bind-9.3.1/conf/named.conf	2005-07-10 22:33:46.000000000 +0200
+@@ -0,0 +1,49 @@
++// This is the primary configuration file for the BIND DNS server named.
++//
++// If you are just adding zones, please do that in /etc/bind/named.conf.local
++
++include "/etc/bind/named.conf.options";
++
++// prime the server with knowledge of the root servers
++zone "." {
++	type hint;
++	file "/etc/bind/db.root";
++};
++
++// be authoritative for the localhost forward and reverse zones, and for
++// broadcast zones as per RFC 1912
++
++zone "localhost" {
++	type master;
++	file "/etc/bind/db.local";
++};
++
++zone "127.in-addr.arpa" {
++	type master;
++	file "/etc/bind/db.127";
++};
++
++zone "0.in-addr.arpa" {
++	type master;
++	file "/etc/bind/db.0";
++};
++
++zone "255.in-addr.arpa" {
++	type master;
++	file "/etc/bind/db.255";
++};
++
++// zone "com" { type delegation-only; };
++// zone "net" { type delegation-only; };
++
++// From the release notes:
++//  Because many of our users are uncomfortable receiving undelegated answers
++//  from root or top level domains, other than a few for whom that behaviour
++//  has been trusted and expected for quite some length of time, we have now
++//  introduced the "root-delegations-only" feature which applies delegation-only
++//  logic to all top level domains, and to the root domain.  An exception list
++//  should be specified, including "MUSEUM" and "DE", and any other top level
++//  domains from whom undelegated responses are expected and trusted.
++// root-delegation-only exclude { "DE"; "MUSEUM"; };
++
++include "/etc/bind/named.conf.local";
+diff -urN bind-9.3.1.orig/conf/named.conf.local bind-9.3.1/conf/named.conf.local
+--- bind-9.3.1.orig/conf/named.conf.local	1970-01-01 01:00:00.000000000 +0100
++++ bind-9.3.1/conf/named.conf.local	2005-07-10 22:14:06.000000000 +0200
+@@ -0,0 +1,8 @@
++//
++// Do any local configuration here
++//
++
++// Consider adding the 1918 zones here, if they are not used in your
++// organization
++//include "/etc/bind/zones.rfc1918";
++
+diff -urN bind-9.3.1.orig/conf/named.conf.options bind-9.3.1/conf/named.conf.options
+--- bind-9.3.1.orig/conf/named.conf.options	1970-01-01 01:00:00.000000000 +0100
++++ bind-9.3.1/conf/named.conf.options	2005-07-10 22:14:06.000000000 +0200
+@@ -0,0 +1,24 @@
++options {
++	directory "/var/cache/bind";
++
++	// If there is a firewall between you and nameservers you want
++	// to talk to, you might need to uncomment the query-source
++	// directive below.  Previous versions of BIND always asked
++	// questions using port 53, but BIND 8.1 and later use an unprivileged
++	// port by default.
++
++	// query-source address * port 53;
++
++	// If your ISP provided one or more IP addresses for stable 
++	// nameservers, you probably want to use them as forwarders.  
++	// Uncomment the following block, and insert the addresses replacing 
++	// the all-0's placeholder.
++
++	// forwarders {
++	// 	0.0.0.0;
++	// };
++
++	auth-nxdomain no;    # conform to RFC1035
++
++};
++
+diff -urN bind-9.3.1.orig/conf/zones.rfc1918 bind-9.3.1/conf/zones.rfc1918
+--- bind-9.3.1.orig/conf/zones.rfc1918	1970-01-01 01:00:00.000000000 +0100
++++ bind-9.3.1/conf/zones.rfc1918	2005-07-10 22:14:10.000000000 +0200
+@@ -0,0 +1,20 @@
++zone "10.in-addr.arpa"      { type master; file "/etc/bind/db.empty"; };
++ 
++zone "16.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "17.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "18.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "19.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "20.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "21.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "22.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "23.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "24.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "25.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "26.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "27.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "28.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "29.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "30.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++zone "31.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
++
++zone "168.192.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
+diff -urN bind-9.3.1.orig/init.d bind-9.3.1/init.d
+--- bind-9.3.1.orig/init.d	1970-01-01 01:00:00.000000000 +0100
++++ bind-9.3.1/init.d	2005-07-10 23:09:58.000000000 +0200
+@@ -0,0 +1,70 @@
++#!/bin/sh
++
++PATH=/sbin:/bin:/usr/sbin:/usr/bin
++
++# for a chrooted server: "-u bind -t /var/lib/named"
++# Don't modify this line, change or create /etc/default/bind9.
++OPTIONS=""
++
++test -f /etc/default/bind9 && . /etc/default/bind9
++
++test -x /usr/sbin/rndc || exit 0
++
++case "$1" in
++    start)
++	echo -n "Starting domain name service: named"
++
++	modprobe capability >/dev/null 2>&1 || true
++	if [ ! -f /etc/bind/rndc.key ]; then
++	    /usr/sbin/rndc-confgen -a -b 512
++	    chmod 0640 /etc/bind/rndc.key
++	fi
++	if [ -f /var/run/named/named.pid ]; then
++	    ps `cat /var/run/named/named.pid` > /dev/null && exit 1
++	fi
++
++	# dirs under /var/run can go away on reboots.
++	mkdir -p /var/run/named
++	mkdir -p /var/cache/bind
++	chmod 775 /var/run/named
++	chown root:bind /var/run/named >/dev/null 2>&1 || true
++
++	if [ ! -x /usr/sbin/named ]; then
++	    echo "named binary missing - not starting"
++	    exit 1
++	fi
++	if start-stop-daemon --start --quiet --exec /usr/sbin/named \
++		--pidfile /var/run/named/named.pid -- $OPTIONS; then
++	    if [ -x /sbin/resolvconf ] ; then
++		echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo
++	    fi
++	fi
++	echo "."	
++    ;;
++
++    stop)
++	echo -n "Stopping domain name service: named"
++	if [ -x /sbin/resolvconf ]; then
++	    /sbin/resolvconf -d lo
++	fi
++	/usr/sbin/rndc stop >/dev/null 2>&1
++	echo "."	
++    ;;
++
++    reload)
++	/usr/sbin/rndc reload
++    ;;
++
++    restart|force-reload)
++	$0 stop
++	sleep 2
++	$0 start
++    ;;
++    
++    *)
++	echo "Usage: /etc/init.d/bind {start|stop|reload|restart|force-reload}" >&2
++	exit 1
++    ;;
++esac
++
++exit 0
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.21/generate-rndc-key.sh b/poky/meta/recipes-connectivity/bind/bind-9.16.24/generate-rndc-key.sh
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.21/generate-rndc-key.sh
rename to poky/meta/recipes-connectivity/bind/bind-9.16.24/generate-rndc-key.sh
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.21/init.d-add-support-for-read-only-rootfs.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.24/init.d-add-support-for-read-only-rootfs.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.21/init.d-add-support-for-read-only-rootfs.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.24/init.d-add-support-for-read-only-rootfs.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.21/make-etc-initd-bind-stop-work.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.24/make-etc-initd-bind-stop-work.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.21/make-etc-initd-bind-stop-work.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.24/make-etc-initd-bind-stop-work.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.21/named.service b/poky/meta/recipes-connectivity/bind/bind-9.16.24/named.service
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.21/named.service
rename to poky/meta/recipes-connectivity/bind/bind-9.16.24/named.service
diff --git a/poky/meta/recipes-connectivity/bind/bind_9.16.21.bb b/poky/meta/recipes-connectivity/bind/bind_9.16.21.bb
deleted file mode 100644
index 390c842..0000000
--- a/poky/meta/recipes-connectivity/bind/bind_9.16.21.bb
+++ /dev/null
@@ -1,129 +0,0 @@
-SUMMARY = "ISC Internet Domain Name Server"
-HOMEPAGE = "https://www.isc.org/bind/"
-DESCRIPTION = "BIND 9 provides a full-featured Domain Name Server system"
-SECTION = "console/network"
-
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=ef10b4de6371115dcecdc38ca2af4561"
-
-DEPENDS = "openssl libcap zlib libuv"
-
-SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.xz \
-           file://conf.patch \
-           file://named.service \
-           file://bind9 \
-           file://generate-rndc-key.sh \
-           file://make-etc-initd-bind-stop-work.patch \
-           file://init.d-add-support-for-read-only-rootfs.patch \
-           file://bind-ensure-searching-for-json-headers-searches-sysr.patch \
-           file://0001-named-lwresd-V-and-start-log-hide-build-options.patch \
-           file://0001-avoid-start-failure-with-bind-user.patch \
-           "
-
-SRC_URI[sha256sum] = "65da5fd4fb80b7d0d7452876f81fd6d67cdcee54a5e3c1d65610334665dfa815"
-
-UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
-# stay at 9.16 follow the ESV versions divisible by 4
-UPSTREAM_CHECK_REGEX = "(?P<pver>9.(16|20|24|28)(\.\d+)+(-P\d+)*)/"
-
-# Issue only affects dhcpd with recent bind versions. We don't ship dhcpd anymore
-# so the issue doesn't affect us.
-CVE_CHECK_WHITELIST += "CVE-2019-6470"
-
-inherit autotools update-rc.d systemd useradd pkgconfig multilib_header update-alternatives
-
-# PACKAGECONFIGs readline and libedit should NOT be set at same time
-PACKAGECONFIG ?= "readline"
-PACKAGECONFIG[httpstats] = "--with-libxml2=${STAGING_DIR_HOST}${prefix},--without-libxml2,libxml2"
-PACKAGECONFIG[readline] = "--with-readline=-lreadline,,readline"
-PACKAGECONFIG[libedit] = "--with-readline=-ledit,,libedit"
-PACKAGECONFIG[python3] = "--with-python=yes --with-python-install-dir=${PYTHON_SITEPACKAGES_DIR} , --without-python, python3-ply-native,"
-
-EXTRA_OECONF = " --with-libtool --disable-devpoll --disable-auto-validation --enable-epoll \
-                 --with-gssapi=no --with-lmdb=no --with-zlib \
-                 --sysconfdir=${sysconfdir}/bind \
-                 --with-openssl=${STAGING_DIR_HOST}${prefix} \
-               "
-LDFLAGS:append = " -lz"
-
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native distutils3-base', '', d)}
-
-# dhcp needs .la so keep them
-REMOVE_LIBTOOL_LA = "0"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --home ${localstatedir}/cache/bind --no-create-home \
-                       --user-group bind"
-
-INITSCRIPT_NAME = "bind"
-INITSCRIPT_PARAMS = "defaults"
-
-SYSTEMD_SERVICE:${PN} = "named.service"
-
-do_install:append() {
-
-	install -d -o bind "${D}${localstatedir}/cache/bind"
-	install -d "${D}${sysconfdir}/bind"
-	install -d "${D}${sysconfdir}/init.d"
-	install -m 644 ${S}/conf/* "${D}${sysconfdir}/bind/"
-	install -m 755 "${S}/init.d" "${D}${sysconfdir}/init.d/bind"
-        if ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'true', 'false', d)}; then
-		sed -i -e '1s,#!.*python3,#! /usr/bin/python3,' \
-		${D}${sbindir}/dnssec-coverage \
-		${D}${sbindir}/dnssec-checkds \
-		${D}${sbindir}/dnssec-keymgr
-	fi
-
-	# Install systemd related files
-	install -d ${D}${sbindir}
-	install -m 755 ${WORKDIR}/generate-rndc-key.sh ${D}${sbindir}
-	install -d ${D}${systemd_system_unitdir}
-	install -m 0644 ${WORKDIR}/named.service ${D}${systemd_system_unitdir}
-	sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
-	       -e 's,@SBINDIR@,${sbindir},g' \
-	       ${D}${systemd_system_unitdir}/named.service
-
-	install -d ${D}${sysconfdir}/default
-	install -m 0644 ${WORKDIR}/bind9 ${D}${sysconfdir}/default
-
-	if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
-		install -d ${D}${sysconfdir}/tmpfiles.d
-		echo "d /run/named 0755 bind bind - -" > ${D}${sysconfdir}/tmpfiles.d/bind.conf
-	fi
-
-    oe_multilib_header isc/platform.h
-}
-
-CONFFILES:${PN} = " \
-	${sysconfdir}/bind/named.conf \
-	${sysconfdir}/bind/named.conf.local \
-	${sysconfdir}/bind/named.conf.options \
-	${sysconfdir}/bind/db.0 \
-	${sysconfdir}/bind/db.127 \
-	${sysconfdir}/bind/db.empty \
-	${sysconfdir}/bind/db.local \
-	${sysconfdir}/bind/db.root \
-	"
-
-ALTERNATIVE:${PN}-utils = "nslookup"
-ALTERNATIVE_LINK_NAME[nslookup] = "${bindir}/nslookup"
-ALTERNATIVE_PRIORITY = "100"
-
-PACKAGE_BEFORE_PN += "${PN}-utils"
-FILES:${PN}-utils = "${bindir}/host ${bindir}/dig ${bindir}/mdig ${bindir}/nslookup ${bindir}/nsupdate"
-FILES:${PN}-dev += "${bindir}/isc-config.h"
-FILES:${PN} += "${sbindir}/generate-rndc-key.sh"
-
-PACKAGE_BEFORE_PN += "${PN}-libs"
-# special arrangement below due to
-# 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"
-
-PACKAGE_BEFORE_PN += "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-bind', '', d)}"
-FILES:python3-bind = "${sbindir}/dnssec-coverage ${sbindir}/dnssec-checkds \
-                ${sbindir}/dnssec-keymgr ${PYTHON_SITEPACKAGES_DIR}"
-
-RDEPENDS:${PN}-dev = ""
-RDEPENDS:python3-bind = "python3-core python3-ply"
diff --git a/poky/meta/recipes-connectivity/bind/bind_9.16.24.bb b/poky/meta/recipes-connectivity/bind/bind_9.16.24.bb
new file mode 100644
index 0000000..ef5fd42
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bind/bind_9.16.24.bb
@@ -0,0 +1,129 @@
+SUMMARY = "ISC Internet Domain Name Server"
+HOMEPAGE = "https://www.isc.org/bind/"
+DESCRIPTION = "BIND 9 provides a full-featured Domain Name Server system"
+SECTION = "console/network"
+
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=ef10b4de6371115dcecdc38ca2af4561"
+
+DEPENDS = "openssl libcap zlib libuv"
+
+SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.xz \
+           file://conf.patch \
+           file://named.service \
+           file://bind9 \
+           file://generate-rndc-key.sh \
+           file://make-etc-initd-bind-stop-work.patch \
+           file://init.d-add-support-for-read-only-rootfs.patch \
+           file://bind-ensure-searching-for-json-headers-searches-sysr.patch \
+           file://0001-named-lwresd-V-and-start-log-hide-build-options.patch \
+           file://0001-avoid-start-failure-with-bind-user.patch \
+           "
+
+SRC_URI[sha256sum] = "5582f3734bd6232284f93f14206b8a46d1f819dea4797ae157066f6963b08507"
+
+UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
+# stay at 9.16 follow the ESV versions divisible by 4
+UPSTREAM_CHECK_REGEX = "(?P<pver>9.(16|20|24|28)(\.\d+)+(-P\d+)*)/"
+
+# Issue only affects dhcpd with recent bind versions. We don't ship dhcpd anymore
+# so the issue doesn't affect us.
+CVE_CHECK_WHITELIST += "CVE-2019-6470"
+
+inherit autotools update-rc.d systemd useradd pkgconfig multilib_header update-alternatives
+
+# PACKAGECONFIGs readline and libedit should NOT be set at same time
+PACKAGECONFIG ?= "readline"
+PACKAGECONFIG[httpstats] = "--with-libxml2=${STAGING_DIR_HOST}${prefix},--without-libxml2,libxml2"
+PACKAGECONFIG[readline] = "--with-readline=-lreadline,,readline"
+PACKAGECONFIG[libedit] = "--with-readline=-ledit,,libedit"
+PACKAGECONFIG[python3] = "--with-python=yes --with-python-install-dir=${PYTHON_SITEPACKAGES_DIR} , --without-python, python3-ply-native,"
+
+EXTRA_OECONF = " --with-libtool --disable-devpoll --disable-auto-validation --enable-epoll \
+                 --with-gssapi=no --with-lmdb=no --with-zlib \
+                 --sysconfdir=${sysconfdir}/bind \
+                 --with-openssl=${STAGING_DIR_HOST}${prefix} \
+               "
+LDFLAGS:append = " -lz"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native setuptools3-base', '', d)}
+
+# dhcp needs .la so keep them
+REMOVE_LIBTOOL_LA = "0"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --home ${localstatedir}/cache/bind --no-create-home \
+                       --user-group bind"
+
+INITSCRIPT_NAME = "bind"
+INITSCRIPT_PARAMS = "defaults"
+
+SYSTEMD_SERVICE:${PN} = "named.service"
+
+do_install:append() {
+
+	install -d -o bind "${D}${localstatedir}/cache/bind"
+	install -d "${D}${sysconfdir}/bind"
+	install -d "${D}${sysconfdir}/init.d"
+	install -m 644 ${S}/conf/* "${D}${sysconfdir}/bind/"
+	install -m 755 "${S}/init.d" "${D}${sysconfdir}/init.d/bind"
+        if ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'true', 'false', d)}; then
+		sed -i -e '1s,#!.*python3,#! /usr/bin/python3,' \
+		${D}${sbindir}/dnssec-coverage \
+		${D}${sbindir}/dnssec-checkds \
+		${D}${sbindir}/dnssec-keymgr
+	fi
+
+	# Install systemd related files
+	install -d ${D}${sbindir}
+	install -m 755 ${WORKDIR}/generate-rndc-key.sh ${D}${sbindir}
+	install -d ${D}${systemd_system_unitdir}
+	install -m 0644 ${WORKDIR}/named.service ${D}${systemd_system_unitdir}
+	sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+	       -e 's,@SBINDIR@,${sbindir},g' \
+	       ${D}${systemd_system_unitdir}/named.service
+
+	install -d ${D}${sysconfdir}/default
+	install -m 0644 ${WORKDIR}/bind9 ${D}${sysconfdir}/default
+
+	if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+		install -d ${D}${sysconfdir}/tmpfiles.d
+		echo "d /run/named 0755 bind bind - -" > ${D}${sysconfdir}/tmpfiles.d/bind.conf
+	fi
+
+    oe_multilib_header isc/platform.h
+}
+
+CONFFILES:${PN} = " \
+	${sysconfdir}/bind/named.conf \
+	${sysconfdir}/bind/named.conf.local \
+	${sysconfdir}/bind/named.conf.options \
+	${sysconfdir}/bind/db.0 \
+	${sysconfdir}/bind/db.127 \
+	${sysconfdir}/bind/db.empty \
+	${sysconfdir}/bind/db.local \
+	${sysconfdir}/bind/db.root \
+	"
+
+ALTERNATIVE:${PN}-utils = "nslookup"
+ALTERNATIVE_LINK_NAME[nslookup] = "${bindir}/nslookup"
+ALTERNATIVE_PRIORITY = "100"
+
+PACKAGE_BEFORE_PN += "${PN}-utils"
+FILES:${PN}-utils = "${bindir}/host ${bindir}/dig ${bindir}/mdig ${bindir}/nslookup ${bindir}/nsupdate"
+FILES:${PN}-dev += "${bindir}/isc-config.h"
+FILES:${PN} += "${sbindir}/generate-rndc-key.sh"
+
+PACKAGE_BEFORE_PN += "${PN}-libs"
+# special arrangement below due to
+# 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"
+
+PACKAGE_BEFORE_PN += "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-bind', '', d)}"
+FILES:python3-bind = "${sbindir}/dnssec-coverage ${sbindir}/dnssec-checkds \
+                ${sbindir}/dnssec-keymgr ${PYTHON_SITEPACKAGES_DIR}"
+
+RDEPENDS:${PN}-dev = ""
+RDEPENDS:python3-bind = "python3-core python3-ply"
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5_5.62.bb b/poky/meta/recipes-connectivity/bluez5/bluez5_5.62.bb
deleted file mode 100644
index 411ac8b..0000000
--- a/poky/meta/recipes-connectivity/bluez5/bluez5_5.62.bb
+++ /dev/null
@@ -1,70 +0,0 @@
-require bluez5.inc
-
-SRC_URI[sha256sum] = "38090a5b750e17fc08d3e52178ed8d3254c5f4bd2c48830d5c1955b88e3bc0c2"
-
-# These issues have kernel fixes rather than bluez fixes so exclude here
-CVE_CHECK_WHITELIST += "CVE-2020-12352 CVE-2020-24490"
-
-# noinst programs in Makefile.tools that are conditional on READLINE
-# support
-NOINST_TOOLS_READLINE ?= " \
-    ${@bb.utils.contains('PACKAGECONFIG', 'deprecated', 'attrib/gatttool', '', d)} \
-    tools/obex-client-tool \
-    tools/obex-server-tool \
-    tools/bluetooth-player \
-    tools/obexctl \
-    tools/btmgmt \
-"
-
-# noinst programs in Makefile.tools that are conditional on TESTING
-# support
-NOINST_TOOLS_TESTING ?= " \
-    emulator/btvirt \
-    emulator/b1ee \
-    emulator/hfp \
-    peripheral/btsensor \
-    tools/3dsp \
-    tools/mgmt-tester \
-    tools/gap-tester \
-    tools/l2cap-tester \
-    tools/sco-tester \
-    tools/smp-tester \
-    tools/hci-tester \
-    tools/rfcomm-tester \
-    tools/bnep-tester \
-    tools/userchan-tester \
-"
-
-# noinst programs in Makefile.tools that are conditional on TOOLS
-# support
-NOINST_TOOLS_BT ?= " \
-    tools/bdaddr \
-    tools/avinfo \
-    tools/avtest \
-    tools/scotest \
-    tools/amptest \
-    tools/hwdb \
-    tools/hcieventmask \
-    tools/hcisecfilter \
-    tools/btinfo \
-    tools/btsnoop \
-    tools/btproxy \
-    tools/btiotest \
-    tools/bneptest \
-    tools/mcaptest \
-    tools/cltest \
-    tools/oobtest \
-    tools/advtest \
-    tools/seq2bseq \
-    tools/nokfw \
-    tools/create-image \
-    tools/eddystone \
-    tools/ibeacon \
-    tools/btgatt-client \
-    tools/btgatt-server \
-    tools/test-runner \
-    tools/check-selftest \
-    tools/gatt-service \
-    profiles/iap/iapd \
-    ${@bb.utils.contains('PACKAGECONFIG', 'btpclient', 'tools/btpclient', '', d)} \
-"
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5_5.63.bb b/poky/meta/recipes-connectivity/bluez5/bluez5_5.63.bb
new file mode 100644
index 0000000..34c4767
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5_5.63.bb
@@ -0,0 +1,70 @@
+require bluez5.inc
+
+SRC_URI[sha256sum] = "9349e11e8160bb3d720835d271250d8a7424d3690f5289e6db6fe07cc66c6d76"
+
+# These issues have kernel fixes rather than bluez fixes so exclude here
+CVE_CHECK_WHITELIST += "CVE-2020-12352 CVE-2020-24490"
+
+# noinst programs in Makefile.tools that are conditional on READLINE
+# support
+NOINST_TOOLS_READLINE ?= " \
+    ${@bb.utils.contains('PACKAGECONFIG', 'deprecated', 'attrib/gatttool', '', d)} \
+    tools/obex-client-tool \
+    tools/obex-server-tool \
+    tools/bluetooth-player \
+    tools/obexctl \
+    tools/btmgmt \
+"
+
+# noinst programs in Makefile.tools that are conditional on TESTING
+# support
+NOINST_TOOLS_TESTING ?= " \
+    emulator/btvirt \
+    emulator/b1ee \
+    emulator/hfp \
+    peripheral/btsensor \
+    tools/3dsp \
+    tools/mgmt-tester \
+    tools/gap-tester \
+    tools/l2cap-tester \
+    tools/sco-tester \
+    tools/smp-tester \
+    tools/hci-tester \
+    tools/rfcomm-tester \
+    tools/bnep-tester \
+    tools/userchan-tester \
+"
+
+# noinst programs in Makefile.tools that are conditional on TOOLS
+# support
+NOINST_TOOLS_BT ?= " \
+    tools/bdaddr \
+    tools/avinfo \
+    tools/avtest \
+    tools/scotest \
+    tools/amptest \
+    tools/hwdb \
+    tools/hcieventmask \
+    tools/hcisecfilter \
+    tools/btinfo \
+    tools/btsnoop \
+    tools/btproxy \
+    tools/btiotest \
+    tools/bneptest \
+    tools/mcaptest \
+    tools/cltest \
+    tools/oobtest \
+    tools/advtest \
+    tools/seq2bseq \
+    tools/nokfw \
+    tools/create-image \
+    tools/eddystone \
+    tools/ibeacon \
+    tools/btgatt-client \
+    tools/btgatt-server \
+    tools/test-runner \
+    tools/check-selftest \
+    tools/gatt-service \
+    profiles/iap/iapd \
+    ${@bb.utils.contains('PACKAGECONFIG', 'btpclient', 'tools/btpclient', '', d)} \
+"
diff --git a/poky/meta/recipes-connectivity/connman/connman-conf.bb b/poky/meta/recipes-connectivity/connman/connman-conf.bb
index 006f976..97ac498 100644
--- a/poky/meta/recipes-connectivity/connman/connman-conf.bb
+++ b/poky/meta/recipes-connectivity/connman/connman-conf.bb
@@ -1,36 +1,19 @@
-SUMMARY = "Connman config to setup wired interface on qemu machines"
-DESCRIPTION = "This is the ConnMan configuration to set up a Wired \
-network interface for a qemu machine."
+SUMMARY = "Connman config to ignore wired interface on qemu machines"
+DESCRIPTION = "This is the ConnMan configuration to avoid touching wired \
+network interface inside qemu machines."
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
 
-inherit systemd
-
-SRC_URI:append:qemuall = " file://wired.config \
-                           file://wired-setup \
-                           file://wired-connection.service \
-"
 PR = "r2"
 
 S = "${WORKDIR}"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
-FILES:${PN} = "${localstatedir}/* ${datadir}/*"
+FILES:${PN} = "${sysconfdir}/*"
 
-do_install() {
-    #Configure Wired network interface in case of qemu* machines
-    if test -e ${WORKDIR}/wired.config &&
-       test -e ${WORKDIR}/wired-setup &&
-       test -e ${WORKDIR}/wired-connection.service; then
-        install -d ${D}${localstatedir}/lib/connman
-        install -m 0644 ${WORKDIR}/wired.config ${D}${localstatedir}/lib/connman
-        install -d ${D}${datadir}/connman
-        install -m 0755 ${WORKDIR}/wired-setup ${D}${datadir}/connman
-        install -d ${D}${systemd_system_unitdir}
-        install -m 0644 ${WORKDIR}/wired-connection.service ${D}${systemd_system_unitdir}
-        sed -i -e 's|@SCRIPTDIR@|${datadir}/connman|g' ${D}${systemd_system_unitdir}/wired-connection.service
-    fi
+# Kernel IP-Config is perfectly capable of setting up networking passed in via ip=
+do_install:append:qemuall() {
+    mkdir -p ${D}${sysconfdir}/default
+    echo "export EXTRA_PARAM=\"-I eth0\"" > ${D}${sysconfdir}/default/connman
 }
-
-SYSTEMD_SERVICE:${PN}:qemuall = "wired-connection.service"
diff --git a/poky/meta/recipes-connectivity/connman/connman-conf/qemuall/wired-connection.service b/poky/meta/recipes-connectivity/connman/connman-conf/qemuall/wired-connection.service
deleted file mode 100644
index 48adfc0..0000000
--- a/poky/meta/recipes-connectivity/connman/connman-conf/qemuall/wired-connection.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Setup a wired interface
-Before=connman.service
-
-[Service]
-Type=oneshot
-ExecStart=@SCRIPTDIR@/wired-setup
-
-[Install]
-WantedBy=network.target
diff --git a/poky/meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup b/poky/meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup
deleted file mode 100644
index c46899e..0000000
--- a/poky/meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-CONFIGF=/var/lib/connman/wired.config
-
-# Extract wired network config from /proc/cmdline
-NET_CONF=`cat /proc/cmdline |sed -ne 's/^.*ip=\([^ ]*\):\([^ ]*\):\([^ ]*\):\([^ ]*\).*$/\1\/\4\/\3/p'`
-
-# Check if eth0 is already set via kernel cmdline
-if [ "x$NET_CONF" = "x" ]; then
-	# Wired interface is not configured via kernel cmdline
-	# Remove connman config file template
-	rm -f ${CONFIGF}
-else
-	# Setup a connman config accordingly
-	sed -i -e "s|^IPv4 =.*|IPv4 = ${NET_CONF}|" ${CONFIGF}
-fi
diff --git a/poky/meta/recipes-connectivity/connman/connman-conf/qemuall/wired.config b/poky/meta/recipes-connectivity/connman/connman-conf/qemuall/wired.config
deleted file mode 100644
index 42998ce..0000000
--- a/poky/meta/recipes-connectivity/connman/connman-conf/qemuall/wired.config
+++ /dev/null
@@ -1,9 +0,0 @@
-[global]
-Name = Wired
-Description = Wired network configuration
-
-[service_ethernet]
-Type = ethernet
-IPv4 =
-MAC = 52:54:00:12:34:56
-Nameservers = 8.8.8.8
diff --git a/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb b/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
index 55c6879..7e1619a 100644
--- a/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
+++ b/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
@@ -10,7 +10,7 @@
 
 # 0.7 tag
 SRCREV = "cf3c325b23dae843c5499a113591cfbc98acb143"
-SRC_URI = "git://github.com/connectivity/connman-gnome.git \
+SRC_URI = "git://github.com/connectivity/connman-gnome.git;branch=master;protocol=https \
            file://0001-Removed-icon-from-connman-gnome-about-applet.patch \
            file://null_check_for_ipv4_config.patch \
            file://images/ \
diff --git a/poky/meta/recipes-connectivity/connman/connman/connman b/poky/meta/recipes-connectivity/connman/connman/connman
index c64fa0d..310a696 100644
--- a/poky/meta/recipes-connectivity/connman/connman/connman
+++ b/poky/meta/recipes-connectivity/connman/connman/connman
@@ -27,7 +27,6 @@
 done
 
 do_start() {
-	EXTRA_PARAM=""
 	if test $nfsroot -eq 1 ; then
 	    NET_DEVS=`cat /proc/net/dev | sed -ne 's/^\([a-zA-Z0-9 ]*\):.*$/\1/p'`
 	    NET_ADDR=`cat /proc/cmdline | sed -ne 's/^.*ip=\([^ :]*\).*$/\1/p'`
@@ -36,13 +35,13 @@
 		if [ "$NET_ADDR" = dhcp ]; then
 		    ethn=`ifconfig | grep "^eth" | sed -e "s/\(eth[0-9]\)\(.*\)/\1/"`
 		    if [ ! -z "$ethn" ]; then
-			EXTRA_PARAM="-I $ethn"
+			EXTRA_PARAM="$EXTRA_PARAM -I $ethn"
 		    fi
 		else
 		    for i in $NET_DEVS; do
 			ADDR=`ifconfig $i | sed 's/addr://g' | sed -ne 's/^.*inet \([0-9.]*\) .*$/\1/p'`
 			if [ "$NET_ADDR" = "$ADDR" ]; then
-			    EXTRA_PARAM="-I $i"
+			    EXTRA_PARAM="$EXTRA_PARAM -I $i"
 			    break
 			fi
 		    done
diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2/0001-lib-fix-ax25.h-include-for-musl.patch b/poky/meta/recipes-connectivity/iproute2/iproute2/0001-lib-fix-ax25.h-include-for-musl.patch
new file mode 100644
index 0000000..e4c0cf4
--- /dev/null
+++ b/poky/meta/recipes-connectivity/iproute2/iproute2/0001-lib-fix-ax25.h-include-for-musl.patch
@@ -0,0 +1,37 @@
+From 8bced38a941a181f1468fa39541e872e51b6022f Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Thu, 13 Jan 2022 08:14:13 +0000
+Subject: [PATCH] lib: fix ax25.h include for musl
+
+ax25.h isn't guaranteed to be avilable in netax25/*;
+it's dependent on our choice of libc (it's not available
+on musl at least) [0].
+
+Let's use the version from linux-headers.
+
+[0] https://sourceware.org/glibc/wiki/Synchronizing_Headers
+Bug: https://bugs.gentoo.org/831102
+
+Signed-off-by: Sam James <sam@gentoo.org>
+Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
+
+Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=8bced38a941a181f1468fa39541e872e51b6022f]
+---
+ lib/ax25_ntop.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/ax25_ntop.c b/lib/ax25_ntop.c
+index cfd0e04b..3a72a43e 100644
+--- a/lib/ax25_ntop.c
++++ b/lib/ax25_ntop.c
+@@ -2,7 +2,7 @@
+
+ #include <errno.h>
+ #include <sys/socket.h>
+-#include <netax25/ax25.h>
++#include <linux/ax25.h>
+
+ #include "utils.h"
+
+--
+2.32.0 (Apple Git-132)
diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2_5.14.0.bb b/poky/meta/recipes-connectivity/iproute2/iproute2_5.14.0.bb
deleted file mode 100644
index 27fb5c8..0000000
--- a/poky/meta/recipes-connectivity/iproute2/iproute2_5.14.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require iproute2.inc
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \
-           file://0001-libc-compat.h-add-musl-workaround.patch \
-           "
-
-SRC_URI[sha256sum] = "210fa785a52f3763c4287fd5ae63e246f6311bfaa48c424baab6d383bb7591d4"
-
-# CFLAGS are computed in Makefile and reference CCOPTS
-#
-EXTRA_OEMAKE:append = " CCOPTS='${CFLAGS}'"
diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2_5.16.0.bb b/poky/meta/recipes-connectivity/iproute2/iproute2_5.16.0.bb
new file mode 100644
index 0000000..871f8d8
--- /dev/null
+++ b/poky/meta/recipes-connectivity/iproute2/iproute2_5.16.0.bb
@@ -0,0 +1,12 @@
+require iproute2.inc
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \
+           file://0001-libc-compat.h-add-musl-workaround.patch \
+           file://0001-lib-fix-ax25.h-include-for-musl.patch \
+           "
+
+SRC_URI[sha256sum] = "c064b66f6b001c2a35aa5224b5b1ac8aa4bee104d7dce30d6f10a84cb8b01e2f"
+
+# CFLAGS are computed in Makefile and reference CCOPTS
+#
+EXTRA_OEMAKE:append = " CCOPTS='${CFLAGS}'"
diff --git a/poky/meta/recipes-connectivity/iw/iw_5.16.bb b/poky/meta/recipes-connectivity/iw/iw_5.16.bb
new file mode 100644
index 0000000..cf176a3
--- /dev/null
+++ b/poky/meta/recipes-connectivity/iw/iw_5.16.bb
@@ -0,0 +1,31 @@
+SUMMARY = "nl80211 based CLI configuration utility for wireless devices"
+DESCRIPTION = "iw is a new nl80211 based CLI configuration utility for \
+wireless devices. It supports almost all new drivers that have been added \
+to the kernel recently. "
+HOMEPAGE = "https://wireless.wiki.kernel.org/en/users/documentation/iw"
+SECTION = "base"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=878618a5c4af25e9b93ef0be1a93f774"
+
+DEPENDS = "libnl"
+
+SRC_URI = "http://www.kernel.org/pub/software/network/iw/${BP}.tar.gz \
+           file://0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch \
+           file://separate-objdir.patch \
+"
+
+SRC_URI[sha256sum] = "9c91f2560b258d9660e656ad37fa5bd100ac255865dcfb26076a576b10d8f3a7"
+
+inherit pkgconfig
+
+EXTRA_OEMAKE = "\
+    -f '${S}/Makefile' \
+    \
+    'PREFIX=${prefix}' \
+    'SBINDIR=${sbindir}' \
+    'MANDIR=${mandir}' \
+"
+
+do_install() {
+    oe_runmake 'DESTDIR=${D}' install
+}
diff --git a/poky/meta/recipes-connectivity/iw/iw_5.9.bb b/poky/meta/recipes-connectivity/iw/iw_5.9.bb
deleted file mode 100644
index 3d1e1c7..0000000
--- a/poky/meta/recipes-connectivity/iw/iw_5.9.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "nl80211 based CLI configuration utility for wireless devices"
-DESCRIPTION = "iw is a new nl80211 based CLI configuration utility for \
-wireless devices. It supports almost all new drivers that have been added \
-to the kernel recently. "
-HOMEPAGE = "https://wireless.wiki.kernel.org/en/users/documentation/iw"
-SECTION = "base"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=878618a5c4af25e9b93ef0be1a93f774"
-
-DEPENDS = "libnl"
-
-SRC_URI = "http://www.kernel.org/pub/software/network/iw/${BP}.tar.gz \
-           file://0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch \
-           file://separate-objdir.patch \
-"
-
-SRC_URI[sha256sum] = "6e7d3c9f8b4ee68e412f20fe229c9854c2dba383e3e650ce6af8eb8dbd12efc3"
-
-inherit pkgconfig
-
-EXTRA_OEMAKE = "\
-    -f '${S}/Makefile' \
-    \
-    'PREFIX=${prefix}' \
-    'SBINDIR=${sbindir}' \
-    'MANDIR=${mandir}' \
-"
-
-do_install() {
-    oe_runmake 'DESTDIR=${D}' install
-}
diff --git a/poky/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch b/poky/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch
index 8de9fce..78f475a 100644
--- a/poky/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch
+++ b/poky/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch
@@ -12,6 +12,7 @@
 Because they are all commented out, replace the expanded libdir path with
 '$libdir' in the config files to avoid conflict.
 
+Upstream-Status: Pending
 Signed-off-by: Kai Kang <kai.kang@windriver.com>
 
 ---
diff --git a/poky/meta/recipes-connectivity/kea/kea_2.0.0.bb b/poky/meta/recipes-connectivity/kea/kea_2.0.0.bb
deleted file mode 100644
index 9f33c32..0000000
--- a/poky/meta/recipes-connectivity/kea/kea_2.0.0.bb
+++ /dev/null
@@ -1,77 +0,0 @@
-SUMMARY = "ISC Kea DHCP Server"
-DESCRIPTION = "Kea is the next generation of DHCP software developed by ISC. It supports both DHCPv4 and DHCPv6 protocols along with their extensions, e.g. prefix delegation and dynamic updates to DNS."
-HOMEPAGE = "http://kea.isc.org"
-SECTION = "connectivity"
-LICENSE = "MPL-2.0 & Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=07b7477a1d815a4aacab73b1531f577a"
-
-DEPENDS = "boost log4cplus openssl"
-
-SRC_URI = "http://ftp.isc.org/isc/kea/${PV}/${BP}.tar.gz \
-           file://kea-dhcp4.service \
-           file://kea-dhcp6.service \
-           file://kea-dhcp-ddns.service \
-           file://kea-dhcp4-server \
-           file://kea-dhcp6-server \
-           file://kea-dhcp-ddns-server \
-           file://fix-multilib-conflict.patch \
-           file://fix_pid_keactrl.patch \
-           file://0001-src-lib-log-logger_unittest_support.cc-do-not-write-.patch \
-           "
-SRC_URI[sha256sum] = "05854e0c3871b452edace18eccc6ab618940e0249fbe7c232a36d06ae59bf41d"
-
-inherit autotools systemd update-rc.d upstream-version-is-even
-
-INITSCRIPT_NAME = "kea-dhcp4-server"
-INITSCRIPT_PARAMS = "defaults 30"
-
-SYSTEMD_SERVICE:${PN} = "kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-DEBUG_OPTIMIZATION:remove:mips = " -Og"
-DEBUG_OPTIMIZATION:append:mips = " -O"
-BUILD_OPTIMIZATION:remove:mips = " -Og"
-BUILD_OPTIMIZATION:append:mips = " -O"
-
-DEBUG_OPTIMIZATION:remove:mipsel = " -Og"
-DEBUG_OPTIMIZATION:append:mipsel = " -O"
-BUILD_OPTIMIZATION:remove:mipsel = " -Og"
-BUILD_OPTIMIZATION:append:mipsel = " -O"
-
-EXTRA_OECONF = "--with-boost-libs=-lboost_system \
-                --with-log4cplus=${STAGING_DIR_TARGET}${prefix} \
-                --with-openssl=${STAGING_DIR_TARGET}${prefix}"
-
-do_configure:prepend() {
-    # replace abs_top_builddir to avoid introducing the build path
-    # don't expand the abs_top_builddir on the target as the abs_top_builddir is meanlingless on the target
-    find ${S} -type f -name *.sh.in | xargs sed -i  "s:@abs_top_builddir@:@abs_top_builddir_placeholder@:g"
-    sed -i "s:@abs_top_srcdir@:@abs_top_srcdir_placeholder@:g" ${S}/src/bin/admin/kea-admin.in
-}
-
-# patch out build host paths for reproducibility
-do_compile:prepend:class-target() {
-        sed -i -e "s,${WORKDIR},,g" ${B}/config.report
-}
-
-do_install:append() {
-    install -d ${D}${sysconfdir}/init.d
-    install -d ${D}${systemd_system_unitdir}
-
-    install -m 0644 ${WORKDIR}/kea-dhcp*service ${D}${systemd_system_unitdir}
-    install -m 0755 ${WORKDIR}/kea-*-server ${D}${sysconfdir}/init.d
-    sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@BASE_BINDIR@,${base_bindir},g' \
-           -e 's,@LOCALSTATEDIR@,${localstatedir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' \
-           ${D}${systemd_system_unitdir}/kea-dhcp*service ${D}${sbindir}/keactrl
-}
-
-do_install:append() {
-    rm -rf "${D}${localstatedir}"
-}
-
-CONFFILES:${PN} = "${sysconfdir}/kea/keactrl.conf"
-
-FILES:${PN}-staticdev += "${libdir}/kea/hooks/*.a ${libdir}/hooks/*.a"
-FILES:${PN} += "${libdir}/hooks/*.so"
-
-PARALLEL_MAKEINST = ""
diff --git a/poky/meta/recipes-connectivity/kea/kea_2.0.1.bb b/poky/meta/recipes-connectivity/kea/kea_2.0.1.bb
new file mode 100644
index 0000000..900ceb6
--- /dev/null
+++ b/poky/meta/recipes-connectivity/kea/kea_2.0.1.bb
@@ -0,0 +1,77 @@
+SUMMARY = "ISC Kea DHCP Server"
+DESCRIPTION = "Kea is the next generation of DHCP software developed by ISC. It supports both DHCPv4 and DHCPv6 protocols along with their extensions, e.g. prefix delegation and dynamic updates to DNS."
+HOMEPAGE = "http://kea.isc.org"
+SECTION = "connectivity"
+LICENSE = "MPL-2.0 & Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=07b7477a1d815a4aacab73b1531f577a"
+
+DEPENDS = "boost log4cplus openssl"
+
+SRC_URI = "http://ftp.isc.org/isc/kea/${PV}/${BP}.tar.gz \
+           file://kea-dhcp4.service \
+           file://kea-dhcp6.service \
+           file://kea-dhcp-ddns.service \
+           file://kea-dhcp4-server \
+           file://kea-dhcp6-server \
+           file://kea-dhcp-ddns-server \
+           file://fix-multilib-conflict.patch \
+           file://fix_pid_keactrl.patch \
+           file://0001-src-lib-log-logger_unittest_support.cc-do-not-write-.patch \
+           "
+SRC_URI[sha256sum] = "f50bb9a954e314316b4033a175dc807496bb9c1754110bd92a21c165a9e84c57"
+
+inherit autotools systemd update-rc.d upstream-version-is-even
+
+INITSCRIPT_NAME = "kea-dhcp4-server"
+INITSCRIPT_PARAMS = "defaults 30"
+
+SYSTEMD_SERVICE:${PN} = "kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+DEBUG_OPTIMIZATION:remove:mips = " -Og"
+DEBUG_OPTIMIZATION:append:mips = " -O"
+BUILD_OPTIMIZATION:remove:mips = " -Og"
+BUILD_OPTIMIZATION:append:mips = " -O"
+
+DEBUG_OPTIMIZATION:remove:mipsel = " -Og"
+DEBUG_OPTIMIZATION:append:mipsel = " -O"
+BUILD_OPTIMIZATION:remove:mipsel = " -Og"
+BUILD_OPTIMIZATION:append:mipsel = " -O"
+
+EXTRA_OECONF = "--with-boost-libs=-lboost_system \
+                --with-log4cplus=${STAGING_DIR_TARGET}${prefix} \
+                --with-openssl=${STAGING_DIR_TARGET}${prefix}"
+
+do_configure:prepend() {
+    # replace abs_top_builddir to avoid introducing the build path
+    # don't expand the abs_top_builddir on the target as the abs_top_builddir is meanlingless on the target
+    find ${S} -type f -name *.sh.in | xargs sed -i  "s:@abs_top_builddir@:@abs_top_builddir_placeholder@:g"
+    sed -i "s:@abs_top_srcdir@:@abs_top_srcdir_placeholder@:g" ${S}/src/bin/admin/kea-admin.in
+}
+
+# patch out build host paths for reproducibility
+do_compile:prepend:class-target() {
+        sed -i -e "s,${WORKDIR},,g" ${B}/config.report
+}
+
+do_install:append() {
+    install -d ${D}${sysconfdir}/init.d
+    install -d ${D}${systemd_system_unitdir}
+
+    install -m 0644 ${WORKDIR}/kea-dhcp*service ${D}${systemd_system_unitdir}
+    install -m 0755 ${WORKDIR}/kea-*-server ${D}${sysconfdir}/init.d
+    sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@BASE_BINDIR@,${base_bindir},g' \
+           -e 's,@LOCALSTATEDIR@,${localstatedir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+           ${D}${systemd_system_unitdir}/kea-dhcp*service ${D}${sbindir}/keactrl
+}
+
+do_install:append() {
+    rm -rf "${D}${localstatedir}"
+}
+
+CONFFILES:${PN} = "${sysconfdir}/kea/keactrl.conf"
+
+FILES:${PN}-staticdev += "${libdir}/kea/hooks/*.a ${libdir}/hooks/*.a"
+FILES:${PN} += "${libdir}/hooks/*.so"
+
+PARALLEL_MAKEINST = ""
diff --git a/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.1.bb b/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.1.bb
index e455a60..f5c87f7 100644
--- a/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.1.bb
+++ b/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.1.bb
@@ -8,7 +8,7 @@
 
 DEPENDS = "avahi"
 
-SRC_URI = "git://github.com/lathiat/nss-mdns \
+SRC_URI = "git://github.com/lathiat/nss-mdns;branch=master;protocol=https \
            "
 
 SRCREV = "4b3cfe818bf72d99a02b8ca8b8813cb2d6b40633"
diff --git a/poky/meta/recipes-connectivity/libuv/libuv_1.42.0.bb b/poky/meta/recipes-connectivity/libuv/libuv_1.42.0.bb
deleted file mode 100644
index 169bd62..0000000
--- a/poky/meta/recipes-connectivity/libuv/libuv_1.42.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "A multi-platform support library with a focus on asynchronous I/O"
-HOMEPAGE = "https://github.com/libuv/libuv"
-DESCRIPTION = "libuv is a multi-platform support library with a focus on asynchronous I/O. It was primarily developed for use by Node.js, but it's also used by Luvit, Julia, pyuv, and others."
-BUGTRACKER = "https://github.com/libuv/libuv/issues"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47"
-
-SRCREV = "6ce14710da7079eb248868171f6343bc409ea3a4"
-SRC_URI = "git://github.com/libuv/libuv;branch=v1.x"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-do_configure() {
-    ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh"
-    oe_runconf
-}
-
-BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-connectivity/libuv/libuv_1.43.0.bb b/poky/meta/recipes-connectivity/libuv/libuv_1.43.0.bb
new file mode 100644
index 0000000..1b536de
--- /dev/null
+++ b/poky/meta/recipes-connectivity/libuv/libuv_1.43.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A multi-platform support library with a focus on asynchronous I/O"
+HOMEPAGE = "https://github.com/libuv/libuv"
+DESCRIPTION = "libuv is a multi-platform support library with a focus on asynchronous I/O. It was primarily developed for use by Node.js, but it's also used by Luvit, Julia, pyuv, and others."
+BUGTRACKER = "https://github.com/libuv/libuv/issues"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47"
+
+SRCREV = "988f2bfc4defb9a85a536a3e645834c161143ee0"
+SRC_URI = "git://github.com/libuv/libuv;branch=v1.x;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+do_configure() {
+    ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh"
+    oe_runconf
+}
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb b/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb
index 837490f..4246f4d 100644
--- a/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb
+++ b/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb
@@ -8,7 +8,7 @@
 PV = "20210805"
 PE = "1"
 
-SRC_URI = "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https"
+SRC_URI = "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https;branch=master"
 S = "${WORKDIR}/git"
 
 inherit autotools
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch
index bd35014..7603eb6 100644
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch
@@ -19,7 +19,7 @@
 as support/nsm/file.c in support/nsm/Makefile.am,
 so rename ../support/misc/file.c to ../support/misc/misc.c.
 
-Upstream-Status: Submitted[https://marc.info/?l=linux-nfs&m=154502780423058&w=2]
+Upstream-Status: Submitted [https://marc.info/?l=linux-nfs&m=154502780423058&w=2]
 
 Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
 
diff --git a/poky/meta/recipes-connectivity/ofono/ofono_1.33.bb b/poky/meta/recipes-connectivity/ofono/ofono_1.33.bb
deleted file mode 100644
index 1fab90c..0000000
--- a/poky/meta/recipes-connectivity/ofono/ofono_1.33.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "open source telephony"
-DESCRIPTION = "oFono is a stack for mobile telephony devices on Linux. oFono supports speaking to telephony devices through specific drivers, or with generic AT commands."
-HOMEPAGE = "http://www.ofono.org"
-BUGTRACKER = "https://01.org/jira/browse/OF"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
-                    file://src/ofono.h;beginline=1;endline=20;md5=3ce17d5978ef3445def265b98899c2ee"
-DEPENDS = "dbus glib-2.0 udev mobile-broadband-provider-info ell"
-
-SRC_URI = "\
-    ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
-    file://ofono \
-    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] = "e4591c5353ad2069cb9c0861fad3f1bf655137f9785fc5f16151d509e49ba708"
-
-inherit autotools pkgconfig update-rc.d systemd gobject-introspection-data
-
-INITSCRIPT_NAME = "ofono"
-INITSCRIPT_PARAMS = "defaults 22"
-SYSTEMD_SERVICE:${PN} = "ofono.service"
-
-PACKAGECONFIG ??= "\
-    ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
-"
-PACKAGECONFIG[systemd] = "--with-systemdunitdir=${systemd_system_unitdir}/,--with-systemdunitdir="
-PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, bluez5"
-
-EXTRA_OECONF += "--enable-test --enable-external-ell"
-
-do_configure:prepend() {
-    bbnote "Removing bundled ell from ${S}/ell to prevent including it"
-    rm -rf ${S}/ell
-}
-
-do_install:append() {
-    install -d ${D}${sysconfdir}/init.d/
-    install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono
-}
-
-PACKAGES =+ "${PN}-tests"
-
-FILES:${PN} += "${systemd_unitdir}"
-FILES:${PN}-tests = "${libdir}/${BPN}/test"
-
-RDEPENDS:${PN} += "dbus"
-RDEPENDS:${PN}-tests = "\
-    python3-core \
-    python3-dbus \
-    ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-pygobject', '', d)} \
-"
-
-RRECOMMENDS:${PN} += "kernel-module-tun mobile-broadband-provider-info"
diff --git a/poky/meta/recipes-connectivity/ofono/ofono_1.34.bb b/poky/meta/recipes-connectivity/ofono/ofono_1.34.bb
new file mode 100644
index 0000000..24369b3
--- /dev/null
+++ b/poky/meta/recipes-connectivity/ofono/ofono_1.34.bb
@@ -0,0 +1,55 @@
+SUMMARY = "open source telephony"
+DESCRIPTION = "oFono is a stack for mobile telephony devices on Linux. oFono supports speaking to telephony devices through specific drivers, or with generic AT commands."
+HOMEPAGE = "http://www.ofono.org"
+BUGTRACKER = "https://01.org/jira/browse/OF"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
+                    file://src/ofono.h;beginline=1;endline=20;md5=3ce17d5978ef3445def265b98899c2ee"
+DEPENDS = "dbus glib-2.0 udev mobile-broadband-provider-info ell"
+
+SRC_URI = "\
+    ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
+    file://ofono \
+    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] = "c0b96d3013447ec2bcb74579bef90e4e59c68dbfa4b9c6fbce5d12401a43aac7"
+
+inherit autotools pkgconfig update-rc.d systemd gobject-introspection-data
+
+INITSCRIPT_NAME = "ofono"
+INITSCRIPT_PARAMS = "defaults 22"
+SYSTEMD_SERVICE:${PN} = "ofono.service"
+
+PACKAGECONFIG ??= "\
+    ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
+"
+PACKAGECONFIG[systemd] = "--with-systemdunitdir=${systemd_system_unitdir}/,--with-systemdunitdir="
+PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, bluez5"
+
+EXTRA_OECONF += "--enable-test --enable-external-ell"
+
+do_configure:prepend() {
+    bbnote "Removing bundled ell from ${S}/ell to prevent including it"
+    rm -rf ${S}/ell
+}
+
+do_install:append() {
+    install -d ${D}${sysconfdir}/init.d/
+    install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono
+}
+
+PACKAGES =+ "${PN}-tests"
+
+FILES:${PN} += "${systemd_unitdir}"
+FILES:${PN}-tests = "${libdir}/${BPN}/test"
+
+RDEPENDS:${PN} += "dbus"
+RDEPENDS:${PN}-tests = "\
+    python3-core \
+    python3-dbus \
+    ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-pygobject', '', d)} \
+"
+
+RRECOMMENDS:${PN} += "kernel-module-tun mobile-broadband-provider-info"
diff --git a/poky/meta/recipes-connectivity/openssl/openssl/reproducibility.patch b/poky/meta/recipes-connectivity/openssl/openssl/reproducibility.patch
new file mode 100644
index 0000000..8accbc9
--- /dev/null
+++ b/poky/meta/recipes-connectivity/openssl/openssl/reproducibility.patch
@@ -0,0 +1,22 @@
+Using localtime() means the output can depend on the timezone of the build machine.
+Using gmtime() is safer. For complete reproducibility use SOURCE_DATE_EPOCH if set.
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Upstream-Status: Pending [should be suitable]
+
+Index: openssl-3.0.1/apps/progs.pl
+===================================================================
+--- openssl-3.0.1.orig/apps/progs.pl
++++ openssl-3.0.1/apps/progs.pl
+@@ -21,7 +21,10 @@ die "Unrecognised option, must be -C or
+ my %commands     = ();
+ my $cmdre        = qr/^\s*int\s+([a-z_][a-z0-9_]*)_main\(\s*int\s+argc\s*,/;
+ my $apps_openssl = shift @ARGV;
+-my $YEAR         = [localtime()]->[5] + 1900;
++my $YEAR         = [gmtime()]->[5] + 1900;
++if (defined($ENV{SOURCE_DATE_EPOCH}) && $ENV{SOURCE_DATE_EPOCH} !~ /\D/) {
++    $YEAR = [gmtime($ENV{SOURCE_DATE_EPOCH})]->[5] + 1900;
++}
+ 
+ # because the program apps/openssl has object files as sources, and
+ # they then have the corresponding C files as source, we need to chain
diff --git a/poky/meta/recipes-connectivity/openssl/openssl_3.0.0.bb b/poky/meta/recipes-connectivity/openssl/openssl_3.0.0.bb
deleted file mode 100644
index 67343be..0000000
--- a/poky/meta/recipes-connectivity/openssl/openssl_3.0.0.bb
+++ /dev/null
@@ -1,244 +0,0 @@
-SUMMARY = "Secure Socket Layer"
-DESCRIPTION = "Secure Socket Layer (SSL) binary and related cryptographic tools."
-HOMEPAGE = "http://www.openssl.org/"
-BUGTRACKER = "http://www.openssl.org/news/vulnerabilities.html"
-SECTION = "libs/network"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c75985e733726beaba57bc5253e96d04"
-
-SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \
-           file://run-ptest \
-           file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \
-           file://afalg.patch \
-           file://0001-Configure-do-not-tweak-mips-cflags.patch \
-           "
-
-SRC_URI:append:class-nativesdk = " \
-           file://environment.d-openssl.sh \
-           "
-
-SRC_URI[sha256sum] = "59eedfcb46c25214c9bd37ed6078297b4df01d012267fe9e9eee31f61bc70536"
-
-inherit lib_package multilib_header multilib_script ptest perlnative
-MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash"
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG:class-native = ""
-PACKAGECONFIG:class-nativesdk = ""
-
-PACKAGECONFIG[cryptodev-linux] = "enable-devcryptoeng,disable-devcryptoeng,cryptodev-linux,,cryptodev-module"
-PACKAGECONFIG[no-tls1] = "no-tls1"
-PACKAGECONFIG[no-tls1_1] = "no-tls1_1"
-
-B = "${WORKDIR}/build"
-do_configure[cleandirs] = "${B}"
-
-#| ./libcrypto.so: undefined reference to `getcontext'
-#| ./libcrypto.so: undefined reference to `setcontext'
-#| ./libcrypto.so: undefined reference to `makecontext'
-EXTRA_OECONF:append:libc-musl = " no-async"
-EXTRA_OECONF:append:libc-musl:powerpc64 = " no-asm"
-
-# adding devrandom prevents openssl from using getrandom() which is not available on older glibc versions
-# (native versions can be built with newer glibc, but then relocated onto a system with older glibc)
-EXTRA_OECONF:class-native = "--with-rand-seed=os,devrandom"
-EXTRA_OECONF:class-nativesdk = "--with-rand-seed=os,devrandom"
-
-# Relying on hardcoded built-in paths causes openssl-native to not be relocateable from sstate.
-CFLAGS:append:class-native = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin"
-CFLAGS:append:class-nativesdk = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin"
-
-# This allows disabling deprecated or undesirable crypto algorithms.
-# The default is to trust upstream choices.
-DEPRECATED_CRYPTO_FLAGS ?= ""
-
-do_configure () {
-	os=${HOST_OS}
-	case $os in
-	linux-gnueabi |\
-	linux-gnuspe |\
-	linux-musleabi |\
-	linux-muslspe |\
-	linux-musl )
-		os=linux
-		;;
-	*)
-		;;
-	esac
-	target="$os-${HOST_ARCH}"
-	case $target in
-	linux-arm*)
-		target=linux-armv4
-		;;
-	linux-aarch64*)
-		target=linux-aarch64
-		;;
-	linux-i?86 | linux-viac3)
-		target=linux-x86
-		;;
-	linux-gnux32-x86_64 | linux-muslx32-x86_64 )
-		target=linux-x32
-		;;
-	linux-gnu64-x86_64)
-		target=linux-x86_64
-		;;
-	linux-mips | linux-mipsel)
-		# specifying TARGET_CC_ARCH prevents openssl from (incorrectly) adding target architecture flags
-		target="linux-mips32 ${TARGET_CC_ARCH}"
-		;;
-	linux-gnun32-mips*)
-		target=linux-mips64
-		;;
-	linux-*-mips64 | linux-mips64 | linux-*-mips64el | linux-mips64el)
-		target=linux64-mips64
-		;;
-	linux-microblaze* | linux-nios2* | linux-sh3 | linux-sh4 | linux-arc*)
-		target=linux-generic32
-		;;
-	linux-powerpc)
-		target=linux-ppc
-		;;
-	linux-powerpc64)
-		target=linux-ppc64
-		;;
-	linux-powerpc64le)
-		target=linux-ppc64le
-		;;
-	linux-riscv32)
-		target=linux-generic32
-		;;
-	linux-riscv64)
-		target=linux-generic64
-		;;
-	linux-sparc | linux-supersparc)
-		target=linux-sparcv9
-		;;
-	mingw32-x86_64)
-		target=mingw64
-		;;
-	esac
-
-	useprefix=${prefix}
-	if [ "x$useprefix" = "x" ]; then
-		useprefix=/
-	fi
-	# WARNING: do not set compiler/linker flags (-I/-D etc.) in EXTRA_OECONF, as they will fully replace the
-	# environment variables set by bitbake. Adjust the environment variables instead.
-	HASHBANGPERL="/usr/bin/env perl" PERL=perl PERL5LIB="${S}/external/perl/Text-Template-1.46/lib/" \
-	perl ${S}/Configure ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} ${DEPRECATED_CRYPTO_FLAGS} --prefix=$useprefix --openssldir=${libdir}/ssl-3 --libdir=${libdir} $target
-	perl ${B}/configdata.pm --dump
-}
-
-do_install () {
-	oe_runmake DESTDIR="${D}" MANDIR="${mandir}" MANSUFFIX=ssl install
-
-	oe_multilib_header openssl/opensslconf.h
-	oe_multilib_header openssl/configuration.h
-
-	# Create SSL structure for packages such as ca-certificates which
-	# contain hard-coded paths to /etc/ssl. Debian does the same.
-	install -d ${D}${sysconfdir}/ssl
-	mv ${D}${libdir}/ssl-3/certs \
-	   ${D}${libdir}/ssl-3/private \
-	   ${D}${libdir}/ssl-3/openssl.cnf \
-	   ${D}${sysconfdir}/ssl/
-
-	# Although absolute symlinks would be OK for the target, they become
-	# invalid if native or nativesdk are relocated from sstate.
-	ln -sf ${@oe.path.relative('${libdir}/ssl-3', '${sysconfdir}/ssl/certs')} ${D}${libdir}/ssl-3/certs
-	ln -sf ${@oe.path.relative('${libdir}/ssl-3', '${sysconfdir}/ssl/private')} ${D}${libdir}/ssl-3/private
-	ln -sf ${@oe.path.relative('${libdir}/ssl-3', '${sysconfdir}/ssl/openssl.cnf')} ${D}${libdir}/ssl-3/openssl.cnf
-}
-
-do_install:append:class-native () {
-	create_wrapper ${D}${bindir}/openssl \
-	    OPENSSL_CONF=${libdir}/ssl-3/openssl.cnf \
-	    SSL_CERT_DIR=${libdir}/ssl-3/certs \
-	    SSL_CERT_FILE=${libdir}/ssl-3/cert.pem \
-	    OPENSSL_ENGINES=${libdir}/engines-3
-}
-
-do_install:append:class-nativesdk () {
-	mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
-	install -m 644 ${WORKDIR}/environment.d-openssl.sh ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh
-	sed 's|/usr/lib/ssl/|/usr/lib/ssl-3/|g' -i ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh
-}
-
-PTEST_BUILD_HOST_FILES += "configdata.pm"
-PTEST_BUILD_HOST_PATTERN = "perl_version ="
-do_install_ptest () {
-	install -d ${D}${PTEST_PATH}/test
-	install -m755 ${B}/test/p_test.so ${D}${PTEST_PATH}/test
-	install -m755 ${B}/test/provider_internal_test.cnf ${D}${PTEST_PATH}/test
-
-	# Prune the build tree
-	rm -f ${B}/fuzz/*.* ${B}/test/*.*
-
-	cp ${S}/Configure ${B}/configdata.pm ${D}${PTEST_PATH}
-	sed 's|${S}|${PTEST_PATH}|g' -i ${D}${PTEST_PATH}/configdata.pm
-	cp -r ${S}/external ${B}/test ${S}/test ${B}/fuzz ${S}/util ${B}/util ${D}${PTEST_PATH}
-
-	# For test_shlibload
-	ln -s ${libdir}/libcrypto.so.1.1 ${D}${PTEST_PATH}/
-	ln -s ${libdir}/libssl.so.1.1 ${D}${PTEST_PATH}/
-
-	install -d ${D}${PTEST_PATH}/apps
-	ln -s ${bindir}/openssl ${D}${PTEST_PATH}/apps
-	install -m644 ${S}/apps/*.pem ${S}/apps/*.srl ${S}/apps/openssl.cnf ${D}${PTEST_PATH}/apps
-	install -m755 ${B}/apps/CA.pl ${D}${PTEST_PATH}/apps
-
-	install -d ${D}${PTEST_PATH}/engines
-	install -m755 ${B}/engines/ossltest.so ${D}${PTEST_PATH}/engines
-	install -m755 ${B}/engines/loader_attic.so ${D}${PTEST_PATH}/engines
-
-	install -d ${D}${PTEST_PATH}/providers
-	install -m755 ${B}/providers/legacy.so ${D}${PTEST_PATH}/providers
-
-        install -d ${D}${PTEST_PATH}/Configurations
-        cp -rf ${S}/Configurations/* ${D}${PTEST_PATH}/Configurations/
-
-        # seems to be needed with perl 5.32.1
-        install -d ${D}${PTEST_PATH}/util/perl/recipes
-        cp ${D}${PTEST_PATH}/test/recipes/tconversion.pl ${D}${PTEST_PATH}/util/perl/recipes/
-
-	sed 's|${S}|${PTEST_PATH}|g' -i ${D}${PTEST_PATH}/util/wrap.pl
-
-}
-
-# Add the openssl.cnf file to the openssl-conf package. Make the libcrypto
-# package RRECOMMENDS on this package. This will enable the configuration
-# file to be installed for both the openssl-bin package and the libcrypto
-# package since the openssl-bin package depends on the libcrypto package.
-
-PACKAGES =+ "libcrypto libssl openssl-conf ${PN}-engines ${PN}-misc"
-
-FILES:libcrypto = "${libdir}/libcrypto${SOLIBS}"
-FILES:libssl = "${libdir}/libssl${SOLIBS}"
-FILES:openssl-conf = "${sysconfdir}/ssl/openssl.cnf \
-                      ${libdir}/ssl-3/openssl.cnf* \
-                      "
-FILES:${PN}-engines = "${libdir}/engines-3"
-# ${prefix} comes from what we pass into --prefix at configure time (which is used for INSTALLTOP)
-FILES:${PN}-engines:append:mingw32:class-nativesdk = " ${prefix}${libdir}/engines-3"
-FILES:${PN}-misc = "${libdir}/ssl-3/misc ${bindir}/c_rehash"
-FILES:${PN} =+ "${libdir}/ssl-3/* ${libdir}/ossl-modules/"
-FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/openssl.sh"
-
-CONFFILES:openssl-conf = "${sysconfdir}/ssl/openssl.cnf"
-
-RRECOMMENDS:libcrypto += "openssl-conf"
-RDEPENDS:${PN}-misc = "perl"
-RDEPENDS:${PN}-ptest += "openssl-bin perl perl-modules bash"
-
-RDEPENDS:${PN}-bin += "openssl-conf"
-
-BBCLASSEXTEND = "native nativesdk"
-
-CVE_PRODUCT = "openssl:openssl"
-
-CVE_VERSION_SUFFIX = "alphabetical"
-
-# Only affects OpenSSL >= 1.1.1 in combination with Apache < 2.4.37
-# Apache in meta-webserver is already recent enough
-CVE_CHECK_WHITELIST += "CVE-2019-0190"
diff --git a/poky/meta/recipes-connectivity/openssl/openssl_3.0.1.bb b/poky/meta/recipes-connectivity/openssl/openssl_3.0.1.bb
new file mode 100644
index 0000000..7727ec4
--- /dev/null
+++ b/poky/meta/recipes-connectivity/openssl/openssl_3.0.1.bb
@@ -0,0 +1,248 @@
+SUMMARY = "Secure Socket Layer"
+DESCRIPTION = "Secure Socket Layer (SSL) binary and related cryptographic tools."
+HOMEPAGE = "http://www.openssl.org/"
+BUGTRACKER = "http://www.openssl.org/news/vulnerabilities.html"
+SECTION = "libs/network"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c75985e733726beaba57bc5253e96d04"
+
+SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \
+           file://run-ptest \
+           file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \
+           file://afalg.patch \
+           file://0001-Configure-do-not-tweak-mips-cflags.patch \
+           file://reproducibility.patch \
+           "
+
+SRC_URI:append:class-nativesdk = " \
+           file://environment.d-openssl.sh \
+           "
+
+SRC_URI[sha256sum] = "c311ad853353bce796edad01a862c50a8a587f62e7e2100ef465ab53ec9b06d1"
+
+inherit lib_package multilib_header multilib_script ptest perlnative
+MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG:class-native = ""
+PACKAGECONFIG:class-nativesdk = ""
+
+PACKAGECONFIG[cryptodev-linux] = "enable-devcryptoeng,disable-devcryptoeng,cryptodev-linux,,cryptodev-module"
+PACKAGECONFIG[no-tls1] = "no-tls1"
+PACKAGECONFIG[no-tls1_1] = "no-tls1_1"
+
+B = "${WORKDIR}/build"
+do_configure[cleandirs] = "${B}"
+
+#| ./libcrypto.so: undefined reference to `getcontext'
+#| ./libcrypto.so: undefined reference to `setcontext'
+#| ./libcrypto.so: undefined reference to `makecontext'
+EXTRA_OECONF:append:libc-musl = " no-async"
+EXTRA_OECONF:append:libc-musl:powerpc64 = " no-asm"
+
+# adding devrandom prevents openssl from using getrandom() which is not available on older glibc versions
+# (native versions can be built with newer glibc, but then relocated onto a system with older glibc)
+EXTRA_OECONF:class-native = "--with-rand-seed=os,devrandom"
+EXTRA_OECONF:class-nativesdk = "--with-rand-seed=os,devrandom"
+
+# Relying on hardcoded built-in paths causes openssl-native to not be relocateable from sstate.
+CFLAGS:append:class-native = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin"
+CFLAGS:append:class-nativesdk = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin"
+
+# This allows disabling deprecated or undesirable crypto algorithms.
+# The default is to trust upstream choices.
+DEPRECATED_CRYPTO_FLAGS ?= ""
+
+do_configure () {
+	os=${HOST_OS}
+	case $os in
+	linux-gnueabi |\
+	linux-gnuspe |\
+	linux-musleabi |\
+	linux-muslspe |\
+	linux-musl )
+		os=linux
+		;;
+	*)
+		;;
+	esac
+	target="$os-${HOST_ARCH}"
+	case $target in
+	linux-arc)
+		target=linux-latomic
+		;;
+	linux-arm*)
+		target=linux-armv4
+		;;
+	linux-aarch64*)
+		target=linux-aarch64
+		;;
+	linux-i?86 | linux-viac3)
+		target=linux-x86
+		;;
+	linux-gnux32-x86_64 | linux-muslx32-x86_64 )
+		target=linux-x32
+		;;
+	linux-gnu64-x86_64)
+		target=linux-x86_64
+		;;
+	linux-mips | linux-mipsel)
+		# specifying TARGET_CC_ARCH prevents openssl from (incorrectly) adding target architecture flags
+		target="linux-mips32 ${TARGET_CC_ARCH}"
+		;;
+	linux-gnun32-mips*)
+		target=linux-mips64
+		;;
+	linux-*-mips64 | linux-mips64 | linux-*-mips64el | linux-mips64el)
+		target=linux64-mips64
+		;;
+	linux-microblaze* | linux-nios2* | linux-sh3 | linux-sh4 | linux-arc*)
+		target=linux-generic32
+		;;
+	linux-powerpc)
+		target=linux-ppc
+		;;
+	linux-powerpc64)
+		target=linux-ppc64
+		;;
+	linux-powerpc64le)
+		target=linux-ppc64le
+		;;
+	linux-riscv32)
+		target=linux-generic32
+		;;
+	linux-riscv64)
+		target=linux-generic64
+		;;
+	linux-sparc | linux-supersparc)
+		target=linux-sparcv9
+		;;
+	mingw32-x86_64)
+		target=mingw64
+		;;
+	esac
+
+	useprefix=${prefix}
+	if [ "x$useprefix" = "x" ]; then
+		useprefix=/
+	fi
+	# WARNING: do not set compiler/linker flags (-I/-D etc.) in EXTRA_OECONF, as they will fully replace the
+	# environment variables set by bitbake. Adjust the environment variables instead.
+	HASHBANGPERL="/usr/bin/env perl" PERL=perl PERL5LIB="${S}/external/perl/Text-Template-1.46/lib/" \
+	perl ${S}/Configure ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} ${DEPRECATED_CRYPTO_FLAGS} --prefix=$useprefix --openssldir=${libdir}/ssl-3 --libdir=${libdir} $target
+	perl ${B}/configdata.pm --dump
+}
+
+do_install () {
+	oe_runmake DESTDIR="${D}" MANDIR="${mandir}" MANSUFFIX=ssl install
+
+	oe_multilib_header openssl/opensslconf.h
+	oe_multilib_header openssl/configuration.h
+
+	# Create SSL structure for packages such as ca-certificates which
+	# contain hard-coded paths to /etc/ssl. Debian does the same.
+	install -d ${D}${sysconfdir}/ssl
+	mv ${D}${libdir}/ssl-3/certs \
+	   ${D}${libdir}/ssl-3/private \
+	   ${D}${libdir}/ssl-3/openssl.cnf \
+	   ${D}${sysconfdir}/ssl/
+
+	# Although absolute symlinks would be OK for the target, they become
+	# invalid if native or nativesdk are relocated from sstate.
+	ln -sf ${@oe.path.relative('${libdir}/ssl-3', '${sysconfdir}/ssl/certs')} ${D}${libdir}/ssl-3/certs
+	ln -sf ${@oe.path.relative('${libdir}/ssl-3', '${sysconfdir}/ssl/private')} ${D}${libdir}/ssl-3/private
+	ln -sf ${@oe.path.relative('${libdir}/ssl-3', '${sysconfdir}/ssl/openssl.cnf')} ${D}${libdir}/ssl-3/openssl.cnf
+}
+
+do_install:append:class-native () {
+	create_wrapper ${D}${bindir}/openssl \
+	    OPENSSL_CONF=${libdir}/ssl-3/openssl.cnf \
+	    SSL_CERT_DIR=${libdir}/ssl-3/certs \
+	    SSL_CERT_FILE=${libdir}/ssl-3/cert.pem \
+	    OPENSSL_ENGINES=${libdir}/engines-3
+}
+
+do_install:append:class-nativesdk () {
+	mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
+	install -m 644 ${WORKDIR}/environment.d-openssl.sh ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh
+	sed 's|/usr/lib/ssl/|/usr/lib/ssl-3/|g' -i ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh
+}
+
+PTEST_BUILD_HOST_FILES += "configdata.pm"
+PTEST_BUILD_HOST_PATTERN = "perl_version ="
+do_install_ptest () {
+	install -d ${D}${PTEST_PATH}/test
+	install -m755 ${B}/test/p_test.so ${D}${PTEST_PATH}/test
+	install -m755 ${B}/test/provider_internal_test.cnf ${D}${PTEST_PATH}/test
+
+	# Prune the build tree
+	rm -f ${B}/fuzz/*.* ${B}/test/*.*
+
+	cp ${S}/Configure ${B}/configdata.pm ${D}${PTEST_PATH}
+	sed 's|${S}|${PTEST_PATH}|g' -i ${D}${PTEST_PATH}/configdata.pm
+	cp -r ${S}/external ${B}/test ${S}/test ${B}/fuzz ${S}/util ${B}/util ${D}${PTEST_PATH}
+
+	# For test_shlibload
+	ln -s ${libdir}/libcrypto.so.1.1 ${D}${PTEST_PATH}/
+	ln -s ${libdir}/libssl.so.1.1 ${D}${PTEST_PATH}/
+
+	install -d ${D}${PTEST_PATH}/apps
+	ln -s ${bindir}/openssl ${D}${PTEST_PATH}/apps
+	install -m644 ${S}/apps/*.pem ${S}/apps/*.srl ${S}/apps/openssl.cnf ${D}${PTEST_PATH}/apps
+	install -m755 ${B}/apps/CA.pl ${D}${PTEST_PATH}/apps
+
+	install -d ${D}${PTEST_PATH}/engines
+	install -m755 ${B}/engines/dasync.so ${D}${PTEST_PATH}/engines
+	install -m755 ${B}/engines/loader_attic.so ${D}${PTEST_PATH}/engines
+	install -m755 ${B}/engines/ossltest.so ${D}${PTEST_PATH}/engines
+
+	install -d ${D}${PTEST_PATH}/providers
+	install -m755 ${B}/providers/legacy.so ${D}${PTEST_PATH}/providers
+
+	install -d ${D}${PTEST_PATH}/Configurations
+	cp -rf ${S}/Configurations/* ${D}${PTEST_PATH}/Configurations/
+
+	# seems to be needed with perl 5.32.1
+	install -d ${D}${PTEST_PATH}/util/perl/recipes
+	cp ${D}${PTEST_PATH}/test/recipes/tconversion.pl ${D}${PTEST_PATH}/util/perl/recipes/
+
+	sed 's|${S}|${PTEST_PATH}|g' -i ${D}${PTEST_PATH}/util/wrap.pl
+}
+
+# Add the openssl.cnf file to the openssl-conf package. Make the libcrypto
+# package RRECOMMENDS on this package. This will enable the configuration
+# file to be installed for both the openssl-bin package and the libcrypto
+# package since the openssl-bin package depends on the libcrypto package.
+
+PACKAGES =+ "libcrypto libssl openssl-conf ${PN}-engines ${PN}-misc"
+
+FILES:libcrypto = "${libdir}/libcrypto${SOLIBS}"
+FILES:libssl = "${libdir}/libssl${SOLIBS}"
+FILES:openssl-conf = "${sysconfdir}/ssl/openssl.cnf \
+                      ${libdir}/ssl-3/openssl.cnf* \
+                      "
+FILES:${PN}-engines = "${libdir}/engines-3"
+# ${prefix} comes from what we pass into --prefix at configure time (which is used for INSTALLTOP)
+FILES:${PN}-engines:append:mingw32:class-nativesdk = " ${prefix}${libdir}/engines-3"
+FILES:${PN}-misc = "${libdir}/ssl-3/misc ${bindir}/c_rehash"
+FILES:${PN} =+ "${libdir}/ssl-3/* ${libdir}/ossl-modules/"
+FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/openssl.sh"
+
+CONFFILES:openssl-conf = "${sysconfdir}/ssl/openssl.cnf"
+
+RRECOMMENDS:libcrypto += "openssl-conf"
+RDEPENDS:${PN}-misc = "perl"
+RDEPENDS:${PN}-ptest += "openssl-bin perl perl-modules bash sed"
+
+RDEPENDS:${PN}-bin += "openssl-conf"
+
+BBCLASSEXTEND = "native nativesdk"
+
+CVE_PRODUCT = "openssl:openssl"
+
+CVE_VERSION_SUFFIX = "alphabetical"
+
+# Only affects OpenSSL >= 1.1.1 in combination with Apache < 2.4.37
+# Apache in meta-webserver is already recent enough
+CVE_CHECK_WHITELIST += "CVE-2019-0190"
diff --git a/poky/meta/recipes-connectivity/ppp/ppp/0001-ppp-fix-build-against-5.15-headers.patch b/poky/meta/recipes-connectivity/ppp/ppp/0001-ppp-fix-build-against-5.15-headers.patch
new file mode 100644
index 0000000..c91246d
--- /dev/null
+++ b/poky/meta/recipes-connectivity/ppp/ppp/0001-ppp-fix-build-against-5.15-headers.patch
@@ -0,0 +1,36 @@
+From aba3273273e826c6dc90f197ca9a3e800e826891 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Fri, 5 Nov 2021 12:41:35 -0400
+Subject: [PATCH] ppp: fix build against 5.15 headers
+
+The 5.15 kernel has removed ipx support, along with the userspace
+visible header.
+
+This support wasn't used previously (as it hasn't been very well
+maintained in the kernel for several years), so we can simply
+disable it in our build and wait for upstream to do a release that
+drops the support.
+
+Upstream-Status: Inappropriate [OE-specific configuration/headers]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ pppd/Makefile.linux | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
+index 22837c5..23b9b22 100644
+--- a/pppd/Makefile.linux
++++ b/pppd/Makefile.linux
+@@ -91,7 +91,7 @@ MAXOCTETS=y
+ 
+ INCLUDE_DIRS= -I../include
+ 
+-COMPILE_FLAGS= -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -pipe
++COMPILE_FLAGS= -DHAVE_PATHS_H -DHAVE_MMAP -pipe
+ 
+ CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS) '-DDESTDIR="@DESTDIR@"'
+ 
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-connectivity/ppp/ppp_2.4.9.bb b/poky/meta/recipes-connectivity/ppp/ppp_2.4.9.bb
index 235595f..bd6435e 100644
--- a/poky/meta/recipes-connectivity/ppp/ppp_2.4.9.bb
+++ b/poky/meta/recipes-connectivity/ppp/ppp_2.4.9.bb
@@ -24,6 +24,7 @@
            file://ppp_on_boot \
            file://provider \
            file://ppp@.service \
+           file://0001-ppp-fix-build-against-5.15-headers.patch \
            "
 
 SRC_URI[sha256sum] = "f938b35eccde533ea800b15a7445b2f1137da7f88e32a16898d02dee8adc058d"
@@ -39,6 +40,8 @@
 #
 EXTRA_OEMAKE += ' COPTS="${CFLAGS} -I${STAGING_INCDIR}/openssl -I${S}/include"'
 
+EXTRA_OECONF:append:libc-musl = " --disable-ipxcp"
+
 do_configure () {
 	oe_runconf
 }
diff --git a/poky/meta/recipes-connectivity/resolvconf/resolvconf/fix-path-for-busybox.patch b/poky/meta/recipes-connectivity/resolvconf/resolvconf/fix-path-for-busybox.patch
deleted file mode 100644
index 1aead07..0000000
--- a/poky/meta/recipes-connectivity/resolvconf/resolvconf/fix-path-for-busybox.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-
-busybox installs readlink into /usr/bin, so ensure /usr/bin
-is in the path.
-
-Upstream-Status: Submitted
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-
-Index: resolvconf-1.76/etc/resolvconf/update.d/libc
-===================================================================
---- resolvconf-1.76.orig/etc/resolvconf/update.d/libc
-+++ resolvconf-1.76/etc/resolvconf/update.d/libc
-@@ -16,7 +16,7 @@
- #
- 
- set -e
--PATH=/sbin:/bin
-+PATH=/sbin:/bin:/usr/bin
- 
- [ -x /lib/resolvconf/list-records ] || exit 1
- 
diff --git a/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.87.bb b/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.87.bb
deleted file mode 100644
index f57abe3..0000000
--- a/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.87.bb
+++ /dev/null
@@ -1,68 +0,0 @@
-SUMMARY = "name server information handler"
-DESCRIPTION = "Resolvconf is a framework for keeping track of the system's \
-information about currently available nameservers. It sets \
-itself up as the intermediary between programs that supply \
-nameserver information and programs that need nameserver \
-information."
-SECTION = "console/network"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
-AUTHOR = "Thomas Hood"
-HOMEPAGE = "http://packages.debian.org/resolvconf"
-RDEPENDS:${PN} = "bash"
-
-SRC_URI = "git://salsa.debian.org/debian/resolvconf.git;protocol=https;branch=unstable \
-           file://fix-path-for-busybox.patch \
-           file://99_resolvconf \
-           "
-
-SRCREV = "1dda36d8465e335c60190c41e7185d782da1bd7b"
-
-S = "${WORKDIR}/git"
-
-# the package is taken from snapshots.debian.org; that source is static and goes stale
-# so we check the latest upstream from a directory that does get updated
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/r/resolvconf/"
-
-inherit allarch
-
-do_compile () {
-	:
-}
-
-do_install () {
-	install -d ${D}${sysconfdir}/default/volatiles
-	install -m 0644 ${WORKDIR}/99_resolvconf ${D}${sysconfdir}/default/volatiles
-	if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
-		install -d ${D}${sysconfdir}/tmpfiles.d
-		echo "d /run/${BPN}/interface - - - -" \
-		     > ${D}${sysconfdir}/tmpfiles.d/resolvconf.conf
-	fi
-	install -d ${D}${base_libdir}/${BPN}
-	install -d ${D}${sysconfdir}/${BPN}
-	ln -snf ${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run
-	install -d ${D}${sysconfdir} ${D}${base_sbindir}
-	install -d ${D}${mandir}/man8 ${D}${docdir}/${P}
-	cp -pPR etc/resolvconf ${D}${sysconfdir}/
-	chown -R root:root ${D}${sysconfdir}/
-	install -m 0755 bin/resolvconf ${D}${base_sbindir}/
-	install -m 0755 bin/list-records ${D}${base_libdir}/${BPN}
-	install -d ${D}/${sysconfdir}/network/if-up.d
-	install -m 0755 debian/resolvconf.000resolvconf.if-up ${D}/${sysconfdir}/network/if-up.d/000resolvconf
-	install -d ${D}/${sysconfdir}/network/if-down.d
-	install -m 0755 debian/resolvconf.resolvconf.if-down ${D}/${sysconfdir}/network/if-down.d/resolvconf
-	install -m 0644 README ${D}${docdir}/${P}/
-	install -m 0644 man/resolvconf.8 ${D}${mandir}/man8/
-}
-
-pkg_postinst:${PN} () {
-	if [ -z "$D" ]; then
-		if command -v systemd-tmpfiles >/dev/null; then
-			systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/resolvconf.conf
-		elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
-			${sysconfdir}/init.d/populate-volatile.sh update
-		fi
-	fi
-}
-
-FILES:${PN} += "${base_libdir}/${BPN}"
diff --git a/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.91.bb b/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.91.bb
new file mode 100644
index 0000000..cb25238
--- /dev/null
+++ b/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.91.bb
@@ -0,0 +1,67 @@
+SUMMARY = "name server information handler"
+DESCRIPTION = "Resolvconf is a framework for keeping track of the system's \
+information about currently available nameservers. It sets \
+itself up as the intermediary between programs that supply \
+nameserver information and programs that need nameserver \
+information."
+SECTION = "console/network"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
+AUTHOR = "Thomas Hood"
+HOMEPAGE = "http://packages.debian.org/resolvconf"
+RDEPENDS:${PN} = "bash"
+
+SRC_URI = "git://salsa.debian.org/debian/resolvconf.git;protocol=https;branch=unstable \
+           file://99_resolvconf \
+           "
+
+SRCREV = "859209d573e7aec0e95d812c6b52444591a628d1"
+
+S = "${WORKDIR}/git"
+
+# the package is taken from snapshots.debian.org; that source is static and goes stale
+# so we check the latest upstream from a directory that does get updated
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/r/resolvconf/"
+
+inherit allarch
+
+do_compile () {
+	:
+}
+
+do_install () {
+	install -d ${D}${sysconfdir}/default/volatiles
+	install -m 0644 ${WORKDIR}/99_resolvconf ${D}${sysconfdir}/default/volatiles
+	if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+		install -d ${D}${sysconfdir}/tmpfiles.d
+		echo "d /run/${BPN}/interface - - - -" \
+		     > ${D}${sysconfdir}/tmpfiles.d/resolvconf.conf
+	fi
+	install -d ${D}${base_libdir}/${BPN}
+	install -d ${D}${sysconfdir}/${BPN}
+	ln -snf ${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run
+	install -d ${D}${sysconfdir} ${D}${base_sbindir}
+	install -d ${D}${mandir}/man8 ${D}${docdir}/${P}
+	cp -pPR etc/resolvconf ${D}${sysconfdir}/
+	chown -R root:root ${D}${sysconfdir}/
+	install -m 0755 bin/resolvconf ${D}${base_sbindir}/
+	install -m 0755 bin/list-records ${D}${base_libdir}/${BPN}
+	install -d ${D}/${sysconfdir}/network/if-up.d
+	install -m 0755 debian/resolvconf.000resolvconf.if-up ${D}/${sysconfdir}/network/if-up.d/000resolvconf
+	install -d ${D}/${sysconfdir}/network/if-down.d
+	install -m 0755 debian/resolvconf.resolvconf.if-down ${D}/${sysconfdir}/network/if-down.d/resolvconf
+	install -m 0644 README ${D}${docdir}/${P}/
+	install -m 0644 man/resolvconf.8 ${D}${mandir}/man8/
+}
+
+pkg_postinst:${PN} () {
+	if [ -z "$D" ]; then
+		if command -v systemd-tmpfiles >/dev/null; then
+			systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/resolvconf.conf
+		elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+			${sysconfdir}/init.d/populate-volatile.sh update
+		fi
+	fi
+}
+
+FILES:${PN} += "${base_libdir}/${BPN}"
diff --git a/poky/meta/recipes-connectivity/socat/socat/0001-configure.ac-check-getprotobynumber_r-with-AC_TRY_LI.patch b/poky/meta/recipes-connectivity/socat/socat/0001-configure.ac-check-getprotobynumber_r-with-AC_TRY_LI.patch
new file mode 100644
index 0000000..fbfb081
--- /dev/null
+++ b/poky/meta/recipes-connectivity/socat/socat/0001-configure.ac-check-getprotobynumber_r-with-AC_TRY_LI.patch
@@ -0,0 +1,35 @@
+From d67d6b4f981db9612d808bd723176a1d2996d53a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Mon, 17 Jan 2022 13:21:32 +0100
+Subject: [PATCH] configure.ac: check getprotobynumber_r with AC_TRY_LINK
+
+AC_TRY_COMPILE won't error out if the function is altogether absent
+(e.g. on linux musl C library), the test needs to link all the way.
+
+Upstream-Status: Submitted [via email to socat@dest-unreach.org]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index d4acc9e..973a7f2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -137,13 +137,13 @@ AC_MSG_RESULT($sc_cv_have_prototype_hstrerror)
+ # getprotobynumber_r() is not standardized
+ AC_MSG_CHECKING(for getprotobynumber_r() variant)
+ AC_CACHE_VAL(sc_cv_getprotobynumber_r,
+-[AC_TRY_COMPILE([#include <stddef.h>
++[AC_TRY_LINK([#include <stddef.h>
+ #include <netdb.h>],[getprotobynumber_r(1,NULL,NULL,1024,NULL);],
+ [sc_cv_getprotobynumber_r=1; tmp_bynum_variant=Linux],
+- [AC_TRY_COMPILE([#include <stddef.h>
++ [AC_TRY_LINK([#include <stddef.h>
+  #include <netdb.h>],[getprotobynumber_r(1,NULL,NULL,1024);],
+  [sc_cv_getprotobynumber_r=2; tmp_bynum_variant=Solaris],
+-  [AC_TRY_COMPILE([#include <stddef.h>
++  [AC_TRY_LINK([#include <stddef.h>
+   #include <netdb.h>],[getprotobynumber_r(1,NULL,NULL);],
+   [sc_cv_getprotobynumber_r=3; tmp_bynum_variant=AIX],
+ 
diff --git a/poky/meta/recipes-connectivity/socat/socat_1.7.4.1.bb b/poky/meta/recipes-connectivity/socat/socat_1.7.4.1.bb
deleted file mode 100644
index 1ad5f15..0000000
--- a/poky/meta/recipes-connectivity/socat/socat_1.7.4.1.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Multipurpose relay for bidirectional data transfer"
-DESCRIPTION = "Socat is a relay for bidirectional data \
-transfer between two independent data channels."
-HOMEPAGE = "http://www.dest-unreach.org/socat/"
-
-SECTION = "console/network"
-
-LICENSE = "GPL-2.0-with-OpenSSL-exception"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://README;beginline=257;endline=287;md5=82520b052f322ac2b5b3dfdc7c7eea86"
-
-SRC_URI = "http://www.dest-unreach.org/socat/download/socat-${PV}.tar.bz2 \
-"
-
-SRC_URI[md5sum] = "36cad050ecf4981ab044c3fbd75c643f"
-SRC_URI[sha256sum] = "3faca25614e89123dff5045680549ecef519d02e331aaf3c4f5a8f6837c675e9"
-
-inherit autotools
-
-EXTRA_AUTORECONF += "--exclude=autoheader"
-
-EXTRA_OECONF += "ac_cv_have_z_modifier=yes \
-                 ac_cv_header_bsd_libutil_h=no \
-                 sc_cv_termios_ispeed=no \
-                 ${TERMBITS_SHIFTS} \
-"
-
-TERMBITS_SHIFTS ?= "sc_cv_sys_crdly_shift=9 \
-                    sc_cv_sys_tabdly_shift=11 \
-                    sc_cv_sys_csize_shift=4"
-
-TERMBITS_SHIFTS:powerpc = "sc_cv_sys_crdly_shift=12 \
-                           sc_cv_sys_tabdly_shift=10 \
-                           sc_cv_sys_csize_shift=8"
-
-TERMBITS_SHIFTS:powerpc64 = "sc_cv_sys_crdly_shift=12 \
-                             sc_cv_sys_tabdly_shift=10 \
-                             sc_cv_sys_csize_shift=8"
-
-PACKAGECONFIG:class-target ??= "tcp-wrappers readline openssl"
-PACKAGECONFIG ??= "readline openssl"
-PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
-PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline"
-PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
-
-CFLAGS += "-fcommon"
-
-do_install:prepend () {
-    mkdir -p ${D}${bindir}
-    install -d ${D}${bindir} ${D}${mandir}/man1
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-connectivity/socat/socat_1.7.4.3.bb b/poky/meta/recipes-connectivity/socat/socat_1.7.4.3.bb
new file mode 100644
index 0000000..a4a0a89
--- /dev/null
+++ b/poky/meta/recipes-connectivity/socat/socat_1.7.4.3.bb
@@ -0,0 +1,53 @@
+SUMMARY = "Multipurpose relay for bidirectional data transfer"
+DESCRIPTION = "Socat is a relay for bidirectional data \
+transfer between two independent data channels."
+HOMEPAGE = "http://www.dest-unreach.org/socat/"
+
+SECTION = "console/network"
+
+LICENSE = "GPL-2.0-with-OpenSSL-exception"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://README;beginline=257;endline=287;md5=82520b052f322ac2b5b3dfdc7c7eea86"
+
+SRC_URI = "http://www.dest-unreach.org/socat/download/socat-${PV}.tar.bz2 \
+           file://0001-configure.ac-check-getprotobynumber_r-with-AC_TRY_LI.patch \
+           "
+
+SRC_URI[sha256sum] = "d47318104415077635119dfee44bcfb41de3497374a9a001b1aff6e2f0858007"
+
+inherit autotools
+
+EXTRA_AUTORECONF += "--exclude=autoheader"
+
+EXTRA_OECONF += "ac_cv_have_z_modifier=yes \
+                 ac_cv_header_bsd_libutil_h=no \
+                 sc_cv_termios_ispeed=no \
+                 ${TERMBITS_SHIFTS} \
+"
+
+TERMBITS_SHIFTS ?= "sc_cv_sys_crdly_shift=9 \
+                    sc_cv_sys_tabdly_shift=11 \
+                    sc_cv_sys_csize_shift=4"
+
+TERMBITS_SHIFTS:powerpc = "sc_cv_sys_crdly_shift=12 \
+                           sc_cv_sys_tabdly_shift=10 \
+                           sc_cv_sys_csize_shift=8"
+
+TERMBITS_SHIFTS:powerpc64 = "sc_cv_sys_crdly_shift=12 \
+                             sc_cv_sys_tabdly_shift=10 \
+                             sc_cv_sys_csize_shift=8"
+
+PACKAGECONFIG:class-target ??= "tcp-wrappers readline openssl"
+PACKAGECONFIG ??= "readline openssl"
+PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
+PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline"
+PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
+
+CFLAGS += "-fcommon"
+
+do_install:prepend () {
+    mkdir -p ${D}${bindir}
+    install -d ${D}${bindir} ${D}${mandir}/man1
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
index 33b1495..25cd8ef 100644
--- a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
+++ b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
@@ -108,7 +108,7 @@
 	install -m 0644 ${WORKDIR}/99_wpa_supplicant ${D}/etc/default/volatiles
 }
 
-pkg_postinst:wpa-supplicant () {
+pkg_postinst:${PN} () {
 	# If we're offline, we don't need to do this.
 	if [ "x$D" = "x" ]; then
 		killall -q -HUP dbus-daemon || true
diff --git a/poky/meta/recipes-core/base-files/base-files_3.0.14.bb b/poky/meta/recipes-core/base-files/base-files_3.0.14.bb
index 032827a..c3ecd81 100644
--- a/poky/meta/recipes-core/base-files/base-files_3.0.14.bb
+++ b/poky/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -182,3 +182,5 @@
 
 CONFFILES:${PN} = "${sysconfdir}/fstab ${@['', '${sysconfdir}/hostname ${sysconfdir}/hosts'][(d.getVar('hostname') != '')]} ${sysconfdir}/shells"
 CONFFILES:${PN} += "${sysconfdir}/motd ${sysconfdir}/nsswitch.conf ${sysconfdir}/profile"
+
+INSANE_SKIP:${PN} += "empty-dirs"
diff --git a/poky/meta/recipes-core/busybox/busybox/0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch b/poky/meta/recipes-core/busybox/busybox/0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch
deleted file mode 100644
index 2bf2b91..0000000
--- a/poky/meta/recipes-core/busybox/busybox/0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From a9333eb6a7b8dbda735947cd5bc981ff9352a2c9 Mon Sep 17 00:00:00 2001
-From: Nathan Phillip Brink <ohnobinki@ohnopublishing.net>
-Date: Thu, 10 Mar 2011 00:27:08 -0500
-Subject: [PATCH 1/2] Use $(CC) when linking instead of $(LD) and use $(CFLAGS)
- and $(EXTRA_CFLAGS) when linking.
-
-This fixes the issue where LDFLAGS escaped with -Wl are ignored during
-compilation. It also simplifies using CFLAGS or EXTRA_CFLAGS (such as
--m32 on x86_64 or -flto) which apply to both compilation and linking
-situations.
-
-Signed-off-by: Nathan Phillip Brink <ohnobinki@ohnopublishing.net>
----
-Upstream-Status: Pending
-
- Makefile               |  7 ++++---
- scripts/Makefile.build |  8 ++++----
- scripts/Makefile.lib   | 13 +++----------
- 3 files changed, 11 insertions(+), 17 deletions(-)
-
-Index: busybox-1.23.2/Makefile
-===================================================================
---- busybox-1.23.2.orig/Makefile
-+++ busybox-1.23.2/Makefile
-@@ -309,7 +309,8 @@ CHECKFLAGS     := -D__linux__ -Dlinux -D
- MODFLAGS	= -DMODULE
- CFLAGS_MODULE   = $(MODFLAGS)
- AFLAGS_MODULE   = $(MODFLAGS)
--LDFLAGS_MODULE  = -r
-+LDFLAGS_RELOCATABLE = -r -nostdlib
-+LDFLAGS_MODULE  = $(LDFLAGS_RELOCATABLE)
- CFLAGS_KERNEL	=
- AFLAGS_KERNEL	=
- 
-@@ -331,7 +332,7 @@ KERNELVERSION = $(VERSION).$(PATCHLEVEL)
- export	VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION \
- 	ARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \
- 	CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE \
--	HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
-+	HOSTCXX HOSTCXXFLAGS LDFLAGS_RELOCATABLE LDFLAGS_MODULE CHECK CHECKFLAGS
- 
- export CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
- export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
-@@ -610,7 +611,7 @@ quiet_cmd_busybox__ ?= LINK    $@
-       cmd_busybox__ ?= $(srctree)/scripts/trylink \
-       "$@" \
-       "$(CC)" \
--      "$(CFLAGS) $(CFLAGS_busybox)" \
-+      "$(CFLAGS) $(CFLAGS_busybox) $(EXTRA_CFLAGS)" \
-       "$(LDFLAGS) $(EXTRA_LDFLAGS)" \
-       "$(core-y)" \
-       "$(libs-y)" \
-Index: busybox-1.23.2/scripts/Makefile.build
-===================================================================
---- busybox-1.23.2.orig/scripts/Makefile.build
-+++ busybox-1.23.2/scripts/Makefile.build
-@@ -174,7 +174,7 @@ cmd_modversions =							\
- 		| $(GENKSYMS) -a $(ARCH)				\
- 		> $(@D)/.tmp_$(@F:.o=.ver);				\
- 									\
--		$(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F) 		\
-+               $(CC) $(ld_flags_partial) $(LDFLAGS_RELOCATABLE) -o $@ $(@D)/.tmp_$(@F)        \
- 			-T $(@D)/.tmp_$(@F:.o=.ver);			\
- 		rm -f $(@D)/.tmp_$(@F) $(@D)/.tmp_$(@F:.o=.ver);	\
- 	else								\
-@@ -257,7 +257,7 @@ quiet_cmd_link_o_target = LD      $@
- # If the list of objects to link is empty, just create an empty built-in.o
- # -nostdlib is added to make "make LD=gcc ..." work (some people use that)
- cmd_link_o_target = $(if $(strip $(obj-y)),\
--		$(LD) -nostdlib $(ld_flags) -r -o $@ $(filter $(obj-y), $^),\
-+		$(CC) $(ld_flags_partial) $(LDFLAGS_RELOCATABLE) -o $@ $(filter $(obj-y), $^),\
- 		rm -f $@; $(AR) rcs $@)
- 
- $(builtin-target): $(obj-y) FORCE
-@@ -292,10 +292,10 @@ $($(subst $(obj)/,,$(@:.o=-objs)))    \
- $($(subst $(obj)/,,$(@:.o=-y)))), $^)
- 
- quiet_cmd_link_multi-y = LD      $@
--cmd_link_multi-y = $(LD) $(ld_flags) -r -o $@ $(link_multi_deps)
-+cmd_link_multi-y = $(CC) $(ld_flags_partial) $(LDFLAGS_RELOCATABLE) -o $@ $(link_multi_deps)
- 
- quiet_cmd_link_multi-m = LD [M]  $@
--cmd_link_multi-m = $(LD) $(ld_flags) $(LDFLAGS_MODULE) -o $@ $(link_multi_deps)
-+cmd_link_multi-m = $(CC) $(ld_flags) $(LDFLAGS_MODULE) -o $@ $(link_multi_deps)
- 
- # We would rather have a list of rules like
- # 	foo.o: $(foo-objs)
-Index: busybox-1.23.2/scripts/Makefile.lib
-===================================================================
---- busybox-1.23.2.orig/scripts/Makefile.lib
-+++ busybox-1.23.2/scripts/Makefile.lib
-@@ -121,7 +121,8 @@ cpp_flags      = -Wp,-MD,$(depfile) $(NO
- # yet ld_flags is fed to ld.
- #ld_flags       = $(LDFLAGS) $(EXTRA_LDFLAGS)
- # Remove the -Wl, prefix from linker options normally passed through gcc
--ld_flags       = $(filter-out -Wl$(comma)%,$(LDFLAGS) $(EXTRA_LDFLAGS))
-+ld_flags       = $(filter-out -Wl$(comma)%,$(LDFLAGS) $(EXTRA_LDFLAGS) $(CFLAGS) $(EXTRA_CFLAGS))
-+ld_flags_partial = $($(filter-out -shared%, $(filter-out -pie%,$(ld_flags))))
- 
- 
- # Finds the multi-part object the current object will be linked into
-@@ -151,10 +152,8 @@ $(obj)/%:: $(src)/%_shipped
- # Linking
- # ---------------------------------------------------------------------------
- 
--# TODO: LDFLAGS usually is supposed to contain gcc's flags, not ld's.
--# but here we feed them to ld!
--quiet_cmd_ld = LD      $@
--cmd_ld = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) \
-+quiet_cmd_ld = CC    $@
-+cmd_ld = $(CC) $(ld_flags) $(LDFLAGS_$(@F)) \
- 	       $(filter-out FORCE,$^) -o $@
- 
- # Objcopy
diff --git a/poky/meta/recipes-core/busybox/busybox/0001-mktemp-add-tmpdir-option.patch b/poky/meta/recipes-core/busybox/busybox/0001-mktemp-add-tmpdir-option.patch
deleted file mode 100644
index 4a1960d..0000000
--- a/poky/meta/recipes-core/busybox/busybox/0001-mktemp-add-tmpdir-option.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From ceb378209f953ea745ed93a8645567196380ce3c Mon Sep 17 00:00:00 2001
-From: Andrej Valek <andrej.valek@siemens.com>
-Date: Thu, 24 Jun 2021 19:13:22 +0200
-Subject: [PATCH] mktemp: add tmpdir option
-
-Make mktemp more compatible with coreutils.
-- add "--tmpdir" option
-- add long variants for "d,q,u" options
-
-Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2021-June/088932.html]
-
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-Signed-off-by: Peter Marko <peter.marko@siemens.com>
----
- coreutils/mktemp.c | 26 ++++++++++++++++++--------
- 1 file changed, 18 insertions(+), 8 deletions(-)
-
-diff --git a/coreutils/mktemp.c b/coreutils/mktemp.c
-index 5393320a5..05c6d98c6 100644
---- a/coreutils/mktemp.c
-+++ b/coreutils/mktemp.c
-@@ -39,16 +39,17 @@
- //kbuild:lib-$(CONFIG_MKTEMP) += mktemp.o
- 
- //usage:#define mktemp_trivial_usage
--//usage:       "[-dt] [-p DIR] [TEMPLATE]"
-+//usage:       "[-dt] [-p DIR, --tmpdir[=DIR]] [TEMPLATE]"
- //usage:#define mktemp_full_usage "\n\n"
- //usage:       "Create a temporary file with name based on TEMPLATE and print its name.\n"
- //usage:       "TEMPLATE must end with XXXXXX (e.g. [/dir/]nameXXXXXX).\n"
- //usage:       "Without TEMPLATE, -t tmp.XXXXXX is assumed.\n"
--//usage:     "\n	-d	Make directory, not file"
--//usage:     "\n	-q	Fail silently on errors"
--//usage:     "\n	-t	Prepend base directory name to TEMPLATE"
--//usage:     "\n	-p DIR	Use DIR as a base directory (implies -t)"
--//usage:     "\n	-u	Do not create anything; print a name"
-+//usage:     "\n	-d			Make directory, not file"
-+//usage:     "\n	-q			Fail silently on errors"
-+//usage:     "\n	-t			Prepend base directory name to TEMPLATE"
-+//usage:     "\n	-p DIR, --tmpdir[=DIR]	Use DIR as a base directory (implies -t)"
-+//usage:     "\n				For --tmpdir is a optional one."
-+//usage:     "\n	-u			Do not create anything; print a name"
- //usage:     "\n"
- //usage:     "\nBase directory is: -p DIR, else $TMPDIR, else /tmp"
- //usage:
-@@ -72,13 +73,22 @@ int mktemp_main(int argc UNUSED_PARAM, char **argv)
- 		OPT_t = 1 << 2,
- 		OPT_p = 1 << 3,
- 		OPT_u = 1 << 4,
-+		OPT_td = 1 << 5,
- 	};
- 
- 	path = getenv("TMPDIR");
- 	if (!path || path[0] == '\0')
- 		path = "/tmp";
- 
--	opts = getopt32(argv, "^" "dqtp:u" "\0" "?1"/*1 arg max*/, &path);
-+	opts = getopt32long(argv, "^"
-+	       "dqtp:u\0"
-+	       "?1" /* 1 arg max */,
-+	       "directory\0" No_argument       "d"
-+	       "quiet\0"     No_argument       "q"
-+	       "dry-run\0"   No_argument       "u"
-+	       "tmpdir\0"    Optional_argument "\xff"
-+	       , &path, &path
-+	);
- 
- 	chp = argv[optind];
- 	if (!chp) {
-@@ -95,7 +105,7 @@ int mktemp_main(int argc UNUSED_PARAM, char **argv)
- 		goto error;
- 	}
- #endif
--	if (opts & (OPT_t|OPT_p))
-+	if (opts & (OPT_t|OPT_p|OPT_td))
- 		chp = concat_path_file(path, chp);
- 
- 	if (opts & OPT_u) {
--- 
-2.11.0
-
diff --git a/poky/meta/recipes-core/busybox/busybox/fail_on_no_media.patch b/poky/meta/recipes-core/busybox/busybox/fail_on_no_media.patch
index 820acc2..38db525 100644
--- a/poky/meta/recipes-core/busybox/busybox/fail_on_no_media.patch
+++ b/poky/meta/recipes-core/busybox/busybox/fail_on_no_media.patch
@@ -1,3 +1,8 @@
+From a35e79002d36cca3c272ba5625aec86d6b7a38a8 Mon Sep 17 00:00:00 2001
+From: Saul Wold <sgw@linux.intel.com>
+Date: Tue, 9 Apr 2013 23:25:54 -0700
+Subject: [PATCH] busybox: fail on no media
+
 Upstream-Status: Denied
 [https://www.mail-archive.com/busybox@busybox.net/msg22354.html]
 
@@ -10,16 +15,18 @@
 
 Signed-off-by: Saul Wold <sgw@linux.intel.com>
 
+---
+ util-linux/mount.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
 
-Index: busybox-1.20.2/util-linux/mount.c
-===================================================================
---- busybox-1.20.2.orig/util-linux/mount.c
-+++ busybox-1.20.2/util-linux/mount.c
-@@ -598,7 +598,13 @@ static int mount_it_now(struct mntent *m
- 				break;
+diff --git a/util-linux/mount.c b/util-linux/mount.c
+index 4e65b6b..9d7a566 100644
+--- a/util-linux/mount.c
++++ b/util-linux/mount.c
+@@ -746,6 +746,14 @@ static int mount_it_now(struct mntent *mp, unsigned long vfsflags, char *filtero
  			errno = errno_save;
  		}
--
+ 
 +		/*
 +		 * Break if there is no media, no point retrying for all
 +		 * fs types since there is no media available
@@ -27,6 +34,7 @@
 +		if (rc == -1 && errno == ENOMEDIUM) {
 +			bb_perror_msg_and_die("mounting %s on %s failed", mp->mnt_fsname, mp->mnt_dir);
 +		}
- 		if (!rc || (vfsflags & MS_RDONLY) || (errno != EACCES && errno != EROFS))
- 			break;
- 		if (!(vfsflags & MS_SILENT))
++
+ 		// Should we retry read-only mount?
+ 		if (vfsflags & MS_RDONLY)
+ 			break;		// no, already was tried
diff --git a/poky/meta/recipes-core/busybox/busybox_1.34.1.bb b/poky/meta/recipes-core/busybox/busybox_1.34.1.bb
deleted file mode 100644
index 6aed0f0..0000000
--- a/poky/meta/recipes-core/busybox/busybox_1.34.1.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-require busybox.inc
-
-SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
-           file://busybox-udhcpc-no_deconfig.patch \
-           file://find-touchscreen.sh \
-           file://busybox-cron \
-           file://busybox-httpd \
-           file://busybox-udhcpd \
-           file://default.script \
-           file://simple.script \
-           file://hwclock.sh \
-           file://syslog \
-           file://syslog-startup.conf \
-           file://syslog.conf \
-           file://busybox-syslog.default \
-           file://mdev \
-           file://mdev.conf \
-           file://mdev-mount.sh \
-           file://defconfig \
-           file://busybox-syslog.service.in \
-           file://busybox-klogd.service.in \
-           file://fail_on_no_media.patch \
-           file://run-ptest \
-           file://inetd.conf \
-           file://inetd \
-           file://login-utilities.cfg \
-           file://recognize_connmand.patch \
-           file://busybox-cross-menuconfig.patch \
-           file://0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch \
-           file://mount-via-label.cfg \
-           file://sha1sum.cfg \
-           file://sha256sum.cfg \
-           file://getopts.cfg \
-           file://longopts.cfg \
-           file://resize.cfg \
-           ${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \
-           ${@["", "file://rcS.default"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \
-           ${@["", "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager') == 'busybox-mdev')]} \
-           file://syslog.cfg \
-           file://unicode.cfg \
-           file://rev.cfg \
-           file://pgrep.cfg \
-           file://rcS \
-           file://rcK \
-           file://makefile-libbb-race.patch \
-           file://0001-testsuite-check-uudecode-before-using-it.patch \
-           file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \
-           file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \
-           file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \
-           file://0001-mktemp-add-tmpdir-option.patch \
-           "
-SRC_URI:append:libc-musl = " file://musl.cfg "
-
-SRC_URI[tarball.sha256sum] = "415fbd89e5344c96acf449d94a6f956dbed62e18e835fc83e064db33a34bd549"
diff --git a/poky/meta/recipes-core/busybox/busybox_1.35.0.bb b/poky/meta/recipes-core/busybox/busybox_1.35.0.bb
new file mode 100644
index 0000000..7ce1717
--- /dev/null
+++ b/poky/meta/recipes-core/busybox/busybox_1.35.0.bb
@@ -0,0 +1,52 @@
+require busybox.inc
+
+SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
+           file://busybox-udhcpc-no_deconfig.patch \
+           file://find-touchscreen.sh \
+           file://busybox-cron \
+           file://busybox-httpd \
+           file://busybox-udhcpd \
+           file://default.script \
+           file://simple.script \
+           file://hwclock.sh \
+           file://syslog \
+           file://syslog-startup.conf \
+           file://syslog.conf \
+           file://busybox-syslog.default \
+           file://mdev \
+           file://mdev.conf \
+           file://mdev-mount.sh \
+           file://defconfig \
+           file://busybox-syslog.service.in \
+           file://busybox-klogd.service.in \
+           file://fail_on_no_media.patch \
+           file://run-ptest \
+           file://inetd.conf \
+           file://inetd \
+           file://login-utilities.cfg \
+           file://recognize_connmand.patch \
+           file://busybox-cross-menuconfig.patch \
+           file://mount-via-label.cfg \
+           file://sha1sum.cfg \
+           file://sha256sum.cfg \
+           file://getopts.cfg \
+           file://longopts.cfg \
+           file://resize.cfg \
+           ${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \
+           ${@["", "file://rcS.default"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \
+           ${@["", "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager') == 'busybox-mdev')]} \
+           file://syslog.cfg \
+           file://unicode.cfg \
+           file://rev.cfg \
+           file://pgrep.cfg \
+           file://rcS \
+           file://rcK \
+           file://makefile-libbb-race.patch \
+           file://0001-testsuite-check-uudecode-before-using-it.patch \
+           file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \
+           file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \
+           file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \
+           "
+SRC_URI:append:libc-musl = " file://musl.cfg "
+
+SRC_URI[tarball.sha256sum] = "faeeb244c35a348a334f4a59e44626ee870fb07b6884d68c10ae8bc19f83a694"
diff --git a/poky/meta/recipes-core/dbus-wait/dbus-wait_git.bb b/poky/meta/recipes-core/dbus-wait/dbus-wait_git.bb
index 677768d..b39f752 100644
--- a/poky/meta/recipes-core/dbus-wait/dbus-wait_git.bb
+++ b/poky/meta/recipes-core/dbus-wait/dbus-wait_git.bb
@@ -11,7 +11,7 @@
 PV = "0.1+git${SRCPV}"
 PR = "r2"
 
-SRC_URI = "git://git.yoctoproject.org/${BPN}"
+SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master"
 UPSTREAM_CHECK_COMMITS = "1"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-core/ell/ell/0001-pem.c-do-not-use-rawmemchr.patch b/poky/meta/recipes-core/ell/ell/0001-pem.c-do-not-use-rawmemchr.patch
deleted file mode 100644
index f0ce6f1..0000000
--- a/poky/meta/recipes-core/ell/ell/0001-pem.c-do-not-use-rawmemchr.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 277e1eca67fcc23cb31be7b826d83a19d9b89bd2 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 22 Dec 2020 10:30:54 +0000
-Subject: [PATCH] pem.c: do not use rawmemchr()
-
-This is a glibc-only function, and causes build failures with
-alternative libc implementations such as musl.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- ell/pem.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ell/pem.c b/ell/pem.c
-index 790f2c2..237ae02 100644
---- a/ell/pem.c
-+++ b/ell/pem.c
-@@ -224,7 +224,7 @@ static uint8_t *pem_load_buffer(const void *buf, size_t buf_len,
- 
- 		/* Check that each header line has a key and a colon */
- 		while (start < end) {
--			const char *lf = rawmemchr(start, '\n');
-+			const char *lf = memchr(start, '\n', end - start);
- 			const char *colon = memchr(start, ':', lf - start);
- 
- 			if (!colon)
diff --git a/poky/meta/recipes-core/ell/ell_0.44.bb b/poky/meta/recipes-core/ell/ell_0.44.bb
deleted file mode 100644
index d1f1691..0000000
--- a/poky/meta/recipes-core/ell/ell_0.44.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY  = "Embedded Linux Library"
-HOMEPAGE = "https://01.org/ell"
-DESCRIPTION = "The Embedded Linux Library (ELL) provides core, \
-low-level functionality for system daemons. It typically has no \
-dependencies other than the Linux kernel, C standard library, and \
-libdl (for dynamic linking). While ELL is designed to be efficient \
-and compact enough for use on embedded Linux platforms, it is not \
-limited to resource-constrained systems."
-SECTION = "libs"
-LICENSE  = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09"
-
-DEPENDS = "dbus"
-
-inherit autotools pkgconfig
-
-SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz \
-           file://0001-pem.c-do-not-use-rawmemchr.patch \
-           "
-SRC_URI[sha256sum] = "41a6f8fa4d285b52cb7a5a87bda3e7370ecaac02d94aaa7ec1a23f0480b8bc3f"
-
-do_configure:prepend () {
-    mkdir -p ${S}/build-aux
-}
diff --git a/poky/meta/recipes-core/ell/ell_0.47.bb b/poky/meta/recipes-core/ell/ell_0.47.bb
new file mode 100644
index 0000000..1db0065
--- /dev/null
+++ b/poky/meta/recipes-core/ell/ell_0.47.bb
@@ -0,0 +1,23 @@
+SUMMARY  = "Embedded Linux Library"
+HOMEPAGE = "https://01.org/ell"
+DESCRIPTION = "The Embedded Linux Library (ELL) provides core, \
+low-level functionality for system daemons. It typically has no \
+dependencies other than the Linux kernel, C standard library, and \
+libdl (for dynamic linking). While ELL is designed to be efficient \
+and compact enough for use on embedded Linux platforms, it is not \
+limited to resource-constrained systems."
+SECTION = "libs"
+LICENSE  = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09"
+
+DEPENDS = "dbus"
+
+inherit autotools pkgconfig
+
+SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz \
+           "
+SRC_URI[sha256sum] = "4901a0baac4eb24163ceafb44fd448430361d25d8f17d89ff29f8b0b162b3eb9"
+
+do_configure:prepend () {
+    mkdir -p ${S}/build-aux
+}
diff --git a/poky/meta/recipes-core/expat/expat/libtool-tag.patch b/poky/meta/recipes-core/expat/expat/libtool-tag.patch
deleted file mode 100644
index 0a0aed2..0000000
--- a/poky/meta/recipes-core/expat/expat/libtool-tag.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 10342e6b600858b091bc7771e454d9e06af06410 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 2 Nov 2017 18:20:57 +0800
-Subject: [PATCH] Add CC tag to build
-
-Add CC tag to build
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 9560a95..d444bd6 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -319,7 +319,7 @@ LIBCURRENT = @LIBCURRENT@
- LIBOBJS = @LIBOBJS@
- LIBREVISION = @LIBREVISION@
- LIBS = @LIBS@
--LIBTOOL = @LIBTOOL@
-+LIBTOOL = @LIBTOOL@ --tag CC
- LIPO = @LIPO@
- LN_S = @LN_S@
- LTLIBOBJS = @LTLIBOBJS@
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-core/expat/expat/run-ptest b/poky/meta/recipes-core/expat/expat/run-ptest
index 59d8ab5..dbf602c 100644
--- a/poky/meta/recipes-core/expat/expat/run-ptest
+++ b/poky/meta/recipes-core/expat/expat/run-ptest
@@ -1,23 +1,9 @@
 #!/bin/bash
 
-output=${1:-"expat_tests.log"} # default log file
-
-# logging function
-function testCheck() {
-	testExec="$1"
-	shift
-	echo && echo ${testExec} && ./${testExec} "$@"
-	error=$?
-	result=$([[ ${error} -eq 0 ]] && echo "PASS" || echo "FAIL")
-	echo "${result}: ${testExec}" && echo "============================"
-}
-
-export output
-export -f testCheck
 TIME=$(which time)
 
-echo "Architecture: $(uname -m)" > ${output}
-echo "Image: $(uname -sr)" >> ${output}
-${TIME} -f 'Execution time: %e s' bash -c "testCheck runtests -v" |& tee -a ${output}
-${TIME} -f 'Execution time: %e s' bash -c "testCheck runtestspp -v" |& tee -a ${output}
+echo "runtests"
+${TIME} -f 'Execution time: %e s' bash -c "./runtests -v"
+echo "runtestspp"
+${TIME} -f 'Execution time: %e s' bash -c "./runtestspp -v"
 echo
diff --git a/poky/meta/recipes-core/expat/expat_2.4.1.bb b/poky/meta/recipes-core/expat/expat_2.4.1.bb
deleted file mode 100644
index 14e5aca..0000000
--- a/poky/meta/recipes-core/expat/expat_2.4.1.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "A stream-oriented XML parser library"
-DESCRIPTION = "Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags)"
-HOMEPAGE = "http://expat.sourceforge.net/"
-SECTION = "libs"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=9e2ce3b3c4c0f2670883a23bbd7c37a9"
-
-VERSION_TAG = "${@d.getVar('PV').replace('.', '_')}"
-
-SRC_URI = "https://github.com/libexpat/libexpat/releases/download/R_${VERSION_TAG}/expat-${PV}.tar.bz2  \
-           file://libtool-tag.patch \
-           file://run-ptest \
-           "
-
-UPSTREAM_CHECK_URI = "https://github.com/libexpat/libexpat/releases/"
-
-SRC_URI[sha256sum] = "2f9b6a580b94577b150a7d5617ad4643a4301a6616ff459307df3e225bcfbf40"
-
-EXTRA_OECMAKE:class-native += "-DEXPAT_BUILD_DOCS=OFF"
-
-RDEPENDS:${PN}-ptest += "bash"
-
-inherit cmake lib_package ptest
-
-do_install_ptest:class-target() {
-	install -m 755 ${B}/tests/* ${D}${PTEST_PATH}
-}
-
-BBCLASSEXTEND += "native nativesdk"
-
-CVE_PRODUCT = "expat libexpat"
diff --git a/poky/meta/recipes-core/expat/expat_2.4.3.bb b/poky/meta/recipes-core/expat/expat_2.4.3.bb
new file mode 100644
index 0000000..cc50f90
--- /dev/null
+++ b/poky/meta/recipes-core/expat/expat_2.4.3.bb
@@ -0,0 +1,31 @@
+SUMMARY = "A stream-oriented XML parser library"
+DESCRIPTION = "Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags)"
+HOMEPAGE = "https://github.com/libexpat/libexpat"
+SECTION = "libs"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=9e2ce3b3c4c0f2670883a23bbd7c37a9"
+
+VERSION_TAG = "${@d.getVar('PV').replace('.', '_')}"
+
+SRC_URI = "https://github.com/libexpat/libexpat/releases/download/R_${VERSION_TAG}/expat-${PV}.tar.bz2  \
+           file://run-ptest \
+           "
+
+UPSTREAM_CHECK_URI = "https://github.com/libexpat/libexpat/releases/"
+
+SRC_URI[sha256sum] = "6f262e216a494fbf42d8c22bc841b3e117c21f2467a19dc4c27c991b5622f986"
+
+EXTRA_OECMAKE:class-native += "-DEXPAT_BUILD_DOCS=OFF"
+
+RDEPENDS:${PN}-ptest += "bash"
+
+inherit cmake lib_package ptest
+
+do_install_ptest:class-target() {
+	install -m 755 ${B}/tests/* ${D}${PTEST_PATH}
+}
+
+BBCLASSEXTEND += "native nativesdk"
+
+CVE_PRODUCT = "expat libexpat"
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 ea820cb..d3b0f31 100644
--- a/poky/meta/recipes-core/fts/fts_1.2.7.bb
+++ b/poky/meta/recipes-core/fts/fts_1.2.7.bb
@@ -10,7 +10,7 @@
 
 SRCREV = "0bde52df588e8969879a2cae51c3a4774ec62472"
 
-SRC_URI = "git://github.com/pullmoll/musl-fts.git"
+SRC_URI = "git://github.com/pullmoll/musl-fts.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-core/gettext/gettext-0.21/0001-libtextstyle-fix-builds-with-automake-1.16.4-and-new.patch b/poky/meta/recipes-core/gettext/gettext-0.21/0001-libtextstyle-fix-builds-with-automake-1.16.4-and-new.patch
new file mode 100644
index 0000000..727d1db
--- /dev/null
+++ b/poky/meta/recipes-core/gettext/gettext-0.21/0001-libtextstyle-fix-builds-with-automake-1.16.4-and-new.patch
@@ -0,0 +1,29 @@
+From 2f127ebe425c97b0641fe1bc73247e91e18c2be0 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Thu, 11 Nov 2021 22:06:16 +0100
+Subject: [PATCH] libtextstyle: fix builds with automake 1.16.4 and newer
+
+Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?59929]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ libtextstyle/configure.ac | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/libtextstyle/configure.ac b/libtextstyle/configure.ac
+index 63b4c2a..cab9025 100644
+--- a/libtextstyle/configure.ac
++++ b/libtextstyle/configure.ac
+@@ -17,11 +17,10 @@ dnl along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ dnl Process this file with autoconf to produce a configure script.
+ 
+ AC_PREREQ([2.63])
+-AC_INIT
++AC_INIT([libtextstyle],
++    [0.20.1])
+ AC_CONFIG_SRCDIR([version.sh])
+ AC_CONFIG_AUX_DIR([build-aux])
+-. $srcdir/version.sh
+-gl_INIT_PACKAGE([libtextstyle], [$VERSION_NUMBER])
+ AM_INIT_AUTOMAKE([1.13 silent-rules])
+ AM_CONFIG_HEADER([config.h])
+ 
diff --git a/poky/meta/recipes-core/gettext/gettext_0.21.bb b/poky/meta/recipes-core/gettext/gettext_0.21.bb
index 5ada709..a0f3402 100644
--- a/poky/meta/recipes-core/gettext/gettext_0.21.bb
+++ b/poky/meta/recipes-core/gettext/gettext_0.21.bb
@@ -22,6 +22,7 @@
            file://0001-init-env.in-do-not-add-C-CXX-parameters.patch \
            file://mingw.patch \
            file://0001-msgmerge-29-Add-executable-file-mode-bits.patch \
+           file://0001-libtextstyle-fix-builds-with-automake-1.16.4-and-new.patch \
            "
 SRC_URI[sha256sum] = "c77d0da3102aec9c07f43671e60611ebff89a996ef159497ce8e59d075786b12"
 
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch
index fbdd4c2..7690bb3 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch
@@ -5,7 +5,7 @@
 
 This may be necessary on overloaded CI systems.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2348]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  gio/tests/codegen.py | 2 +-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
index 9bfb6e8..2118c7e 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
@@ -1,4 +1,4 @@
-From ab071f315deed3740f867161ee58436b985d6fc1 Mon Sep 17 00:00:00 2001
+From f4b144cbcd474d5f4982e654607fd609e056b532 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Fri, 11 Mar 2016 15:35:55 +0000
 Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.70.0.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.70.0.bb
deleted file mode 100644
index 8217aaa..0000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.70.0.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-require glib.inc
-
-PE = "1"
-
-SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
-           file://run-ptest \
-           file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
-           file://Enable-more-tests-while-cross-compiling.patch \
-           file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
-           file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
-           file://0001-Do-not-ignore-return-value-of-write.patch \
-           file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
-           file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
-           file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
-           file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
-           file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
-           file://0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch \
-           "
-SRC_URI:append:class-native = " file://relocate-modules.patch"
-
-SRC_URI[sha256sum] = "200d7df811c5ba634afbf109f14bb40ba7fde670e89389885da14e27c0840742"
-
-# Find any meson cross files in FILESPATH that are relevant for the current
-# build (using siteinfo) and add them to EXTRA_OEMESON.
-inherit siteinfo
-def find_meson_cross_files(d):
-    if bb.data.inherits_class('native', d):
-        return ""
-
-    thisdir = os.path.normpath(d.getVar("THISDIR"))
-    import collections
-    sitedata = siteinfo_data(d)
-    # filename -> found
-    files = collections.OrderedDict()
-    for path in d.getVar("FILESPATH").split(":"):
-        for element in sitedata:
-            filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
-            sanitized_path = filename.replace(thisdir, "${THISDIR}")
-            if sanitized_path == filename:
-                if os.path.exists(filename):
-                    bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir))
-                continue
-            files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename)
-
-    items = ["--cross-file=" + k for k,v in files.items() if v]
-    d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
-    items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
-    d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
-
-python () {
-    find_meson_cross_files(d)
-}
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.70.2.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.70.2.bb
new file mode 100644
index 0000000..df0dde5
--- /dev/null
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.70.2.bb
@@ -0,0 +1,54 @@
+require glib.inc
+
+PE = "1"
+
+SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
+           file://run-ptest \
+           file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
+           file://Enable-more-tests-while-cross-compiling.patch \
+           file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
+           file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
+           file://0001-Do-not-ignore-return-value-of-write.patch \
+           file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
+           file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
+           file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
+           file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
+           file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
+           file://0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch \
+           "
+SRC_URI:append:class-native = " file://relocate-modules.patch"
+
+SRC_URI[sha256sum] = "0551459c85cd3da3d58ddc9016fd28be5af503f5e1615a71ba5b512ac945806f"
+
+# Find any meson cross files in FILESPATH that are relevant for the current
+# build (using siteinfo) and add them to EXTRA_OEMESON.
+inherit siteinfo
+def find_meson_cross_files(d):
+    if bb.data.inherits_class('native', d):
+        return ""
+
+    thisdir = os.path.normpath(d.getVar("THISDIR"))
+    import collections
+    sitedata = siteinfo_data(d)
+    # filename -> found
+    files = collections.OrderedDict()
+    for path in d.getVar("FILESPATH").split(":"):
+        for element in sitedata:
+            filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
+            sanitized_path = filename.replace(thisdir, "${THISDIR}")
+            if sanitized_path == filename:
+                if os.path.exists(filename):
+                    bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir))
+                continue
+            files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename)
+
+    items = ["--cross-file=" + k for k,v in files.items() if v]
+    d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
+    items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
+    d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
+
+python () {
+    find_meson_cross_files(d)
+}
diff --git a/poky/meta/recipes-core/glib-networking/glib-networking_2.70.0.bb b/poky/meta/recipes-core/glib-networking/glib-networking_2.70.0.bb
deleted file mode 100644
index fc700e0..0000000
--- a/poky/meta/recipes-core/glib-networking/glib-networking_2.70.0.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "GLib networking extensions"
-DESCRIPTION = "glib-networking contains the implementations of certain GLib networking features that cannot be implemented directly in GLib itself because of their dependencies."
-HOMEPAGE = "https://gitlab.gnome.org/GNOME/glib-networking/"
-BUGTRACKER = "http://bugzilla.gnome.org"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-SECTION = "libs"
-DEPENDS = "glib-2.0"
-
-SRC_URI[archive.sha256sum] = "66b408e7afa86c582fe38963db56133869ab4b57d34e48ec56aba621940d6f35"
-
-PACKAGECONFIG ??= "openssl ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
-
-PACKAGECONFIG[gnutls] = "-Dgnutls=enabled,-Dgnutls=disabled,gnutls"
-PACKAGECONFIG[openssl] = "-Dopenssl=enabled,-Dopenssl=disabled,openssl"
-PACKAGECONFIG[libproxy] = "-Dlibproxy=enabled,-Dlibproxy=disabled,libproxy"
-PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false"
-
-EXTRA_OEMESON = "-Dgnome_proxy=disabled"
-
-GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gettext upstream-version-is-even gio-module-cache ptest-gnome
-
-SRC_URI += "file://run-ptest"
-
-FILES:${PN} += "\
-                ${libdir}/gio/modules/libgio*.so \
-                ${datadir}/dbus-1/services/ \
-                ${systemd_user_unitdir} \
-                "
-FILES:${PN}-dev += "${libdir}/gio/modules/libgio*.la"
-FILES:${PN}-staticdev += "${libdir}/gio/modules/libgio*.a"
-
-RDEPENDS:${PN}-ptest += "bash"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-core/glib-networking/glib-networking_2.70.1.bb b/poky/meta/recipes-core/glib-networking/glib-networking_2.70.1.bb
new file mode 100644
index 0000000..f020e16
--- /dev/null
+++ b/poky/meta/recipes-core/glib-networking/glib-networking_2.70.1.bb
@@ -0,0 +1,38 @@
+SUMMARY = "GLib networking extensions"
+DESCRIPTION = "glib-networking contains the implementations of certain GLib networking features that cannot be implemented directly in GLib itself because of their dependencies."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/glib-networking/"
+BUGTRACKER = "http://bugzilla.gnome.org"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SECTION = "libs"
+DEPENDS = "glib-2.0"
+
+SRC_URI[archive.sha256sum] = "2a16bfc2d271ccd3266e3fb462bc8a4103c02e81bbb339aa92d6fb060592d7bc"
+
+PACKAGECONFIG ??= "openssl ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
+
+PACKAGECONFIG[gnutls] = "-Dgnutls=enabled,-Dgnutls=disabled,gnutls"
+PACKAGECONFIG[openssl] = "-Dopenssl=enabled,-Dopenssl=disabled,openssl"
+PACKAGECONFIG[libproxy] = "-Dlibproxy=enabled,-Dlibproxy=disabled,libproxy"
+PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false"
+
+EXTRA_OEMESON = "-Dgnome_proxy=disabled"
+
+GNOMEBASEBUILDCLASS = "meson"
+inherit gnomebase gettext upstream-version-is-even gio-module-cache ptest-gnome
+
+SRC_URI += "file://run-ptest"
+
+FILES:${PN} += "\
+                ${libdir}/gio/modules/libgio*.so \
+                ${datadir}/dbus-1/services/ \
+                ${systemd_user_unitdir} \
+                "
+FILES:${PN}-dev += "${libdir}/gio/modules/libgio*.la"
+FILES:${PN}-staticdev += "${libdir}/gio/modules/libgio*.a"
+
+RDEPENDS:${PN}-ptest += "bash"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-core/glibc/cross-localedef-native_2.34.bb b/poky/meta/recipes-core/glibc/cross-localedef-native_2.34.bb
index 6100f3d..c37814e 100644
--- a/poky/meta/recipes-core/glibc/cross-localedef-native_2.34.bb
+++ b/poky/meta/recipes-core/glibc/cross-localedef-native_2.34.bb
@@ -20,18 +20,18 @@
 FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:"
 
 SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
-           git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef \
+           git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef;protocol=https \
            \
            file://0001-localedef-Add-hardlink-resolver-from-util-linux.patch \
            file://0002-localedef-fix-ups-hardlink-to-make-it-compile.patch \
            \
-           file://0017-timezone-re-written-tzselect-as-posix-sh.patch \
            file://0018-Remove-bash-dependency-for-nscd-init-script.patch \
            file://0019-eglibc-Cross-building-and-testing-instructions.patch \
            file://0020-eglibc-Help-bootstrap-cross-toolchain.patch \
            file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \
            file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \
            file://0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \
+           file://0001-Make-shell-interpreter-overridable-in-tzselect.ksh.patch \
 "
 # Makes for a rather long rev (22 characters), but...
 #
@@ -40,6 +40,11 @@
 S = "${WORKDIR}/git"
 
 EXTRA_OECONF = "--with-glibc=${S}"
+
+# We do not need bash to run tzselect script, the default is to use
+# bash but it can be configured by setting KSHELL Makefile variable
+EXTRA_OEMAKE += "KSHELL=/bin/sh"
+
 CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'"
 
 do_install() {
diff --git a/poky/meta/recipes-core/glibc/glibc-package.inc b/poky/meta/recipes-core/glibc/glibc-package.inc
index 571ae7a..54e2a08 100644
--- a/poky/meta/recipes-core/glibc/glibc-package.inc
+++ b/poky/meta/recipes-core/glibc/glibc-package.inc
@@ -119,8 +119,8 @@
 		ln -s ${@oe.path.relative('${root_prefix}/lib', '${base_libdir}')}/${ARCH_DYNAMIC_LOADER} \
 				${D}${root_prefix}/lib/${ARCH_DYNAMIC_LOADER}
 	fi
-        lnr ${D}${base_libdir}/libpthread.so.0 ${D}${libdir}/libpthread.so
-        lnr ${D}${base_libdir}/librt.so.1 ${D}${libdir}/librt.so
+        ln -rs ${D}${base_libdir}/libpthread.so.0 ${D}${libdir}/libpthread.so
+        ln -rs ${D}${base_libdir}/librt.so.1 ${D}${libdir}/librt.so
 }
 
 def get_libc_fpu_setting(bb, d):
diff --git a/poky/meta/recipes-core/glibc/glibc-tests_2.34.bb b/poky/meta/recipes-core/glibc/glibc-tests_2.34.bb
new file mode 100644
index 0000000..9cbf877
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc-tests_2.34.bb
@@ -0,0 +1,115 @@
+require glibc_${PV}.bb
+require glibc-tests.inc
+
+inherit ptest
+
+SRC_URI:append = " \
+	file://run-ptest \
+"
+
+SUMMARY = "glibc tests to be run with ptest"
+
+# Erase some variables already set by glibc_${PV}
+python __anonymous() {
+       # Remove packages provided by glibc build, we only need a subset of them
+       d.setVar("PACKAGES", "${PN} ${PN}-ptest")
+
+       d.setVar("PROVIDES", "${PN} ${PN}-ptest")
+       d.setVar("RPROVIDES", "${PN} ${PN}-ptest")
+
+       d.setVar("BBCLASSEXTEND", "")
+       d.setVar("RRECOMMENDS", "")
+       d.setVar("SYSTEMD_SERVICE:nscd", "")
+       d.setVar("SYSTEMD_PACKAGES", "")
+}
+
+# Remove any leftovers from original glibc recipe
+RPROVIDES:${PN} = "${PN}"
+RRECOMMENDS:${PN} = ""
+RDEPENDS:${PN} = " glibc sed"
+DEPENDS:append = " sed"
+
+# Just build tests for target - do not run them
+do_check:append () {
+	oe_runmake -i check run-built-tests=no
+}
+addtask do_check after do_compile before do_install_ptest_base
+
+glibc_strip_build_directory () {
+	# Delete all non executable files from build directory
+	find ${B} ! -executable -type f -delete
+
+	# Remove build dynamic libraries and links to them as
+	# those are already installed in the target device
+	find ${B} -type f -name "*.so" -delete
+	find ${B} -type l -name "*.so*" -delete
+
+	# Remove headers (installed with glibc)
+	find ${B} -type f -name "*.h" -delete
+
+	find ${B} -type f -name "isomac" -delete
+	find ${B} -type f -name "annexc" -delete
+}
+
+do_install_ptest_base () {
+	glibc_strip_build_directory
+
+	ls -r ${B}/*/*-time64 > ${B}/tst_time64
+
+	# Remove '-time64' suffix - those tests are also time related
+	sed -e "s/-time64$//" ${B}/tst_time64 > ${B}/tst_time_tmp
+	tst_time=$(cat ${B}/tst_time_tmp ${B}/tst_time64)
+
+	rm ${B}/tst_time_tmp ${B}/tst_time64
+	echo "${tst_time}"
+
+	# Install build test programs to the image
+	install -d ${D}${PTEST_PATH}/tests/glibc-ptest/
+
+	for f in "${tst_time}"
+	do
+	    cp -r ${f} ${D}${PTEST_PATH}/tests/glibc-ptest/
+	done
+
+	install -d ${D}${PTEST_PATH}
+	cp ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/
+
+}
+
+# The datadir directory is required to allow core (and reused)
+# glibc cleanup function to finish correctly, as this directory
+# is not created for ptests
+stash_locale_package_cleanup:prepend () {
+	mkdir -p ${PKGD}${datadir}
+}
+
+stash_locale_sysroot_cleanup:prepend () {
+	mkdir -p ${SYSROOT_DESTDIR}${datadir}
+}
+
+# Prevent the do_package() task to set 'libc6' prefix
+# for glibc tests related packages
+python populate_packages:prepend () {
+    if d.getVar('DEBIAN_NAMES'):
+        d.setVar('DEBIAN_NAMES', '')
+}
+
+FILES:${PN} = "${PTEST_PATH}/* /usr/src/debug/glibc-tests/*"
+
+EXCLUDE_FROM_SHLIBS = "1"
+
+# Install debug data in .debug and sources in /usr/src/debug
+# It is more handy to have _all_ the sources and symbols in one
+# place (package) as this recipe will be used for validation and
+# debugging.
+PACKAGE_DEBUG_SPLIT_STYLE = "debug"
+
+# glibc test cases violate by default some Yocto/OE checks (staticdev,
+# textrel)
+# 'debug-files' - add everything (including debug) into one package
+#                 (no need to install/build *-src package)
+INSANE_SKIP:${PN} += "staticdev textrel debug-files rpaths"
+
+deltask do_stash_locale
+do_install[noexec] = "1"
+do_populate_sysroot[noexec] = "1"
diff --git a/poky/meta/recipes-core/glibc/glibc.inc b/poky/meta/recipes-core/glibc/glibc.inc
index 80a3e0b..fdd241d 100644
--- a/poky/meta/recipes-core/glibc/glibc.inc
+++ b/poky/meta/recipes-core/glibc/glibc.inc
@@ -41,6 +41,10 @@
 # ensure make uses /bin/bash
 EXTRA_OEMAKE += "SHELL=/bin/bash"
 
+# We do not need bash to run tzselect script, the default is to use
+# bash but it can be configured by setting KSHELL Makefile variable
+EXTRA_OEMAKE += "KSHELL=/bin/sh"
+
 do_configure:prepend() {
 	sed -e "s#/bin/bash#/bin/sh#" -i ${S}/elf/ldd.bash.in
 }
diff --git a/poky/meta/recipes-core/glibc/glibc/0001-CVE-2022-23218.patch b/poky/meta/recipes-core/glibc/glibc/0001-CVE-2022-23218.patch
new file mode 100644
index 0000000..4eb1fb7
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/0001-CVE-2022-23218.patch
@@ -0,0 +1,178 @@
+From e368b12f6c16b6888dda99ba641e999b9c9643c8 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Mon, 17 Jan 2022 10:21:34 +0100
+Subject: [PATCH] socket: Add the __sockaddr_un_set function
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=e368b12f6c16b6888dda99ba641e999b9c9643c8]
+CVE: CVE-2022-23219
+
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+---
+ include/sys/un.h             | 12 +++++++
+ socket/Makefile              |  6 +++-
+ socket/sockaddr_un_set.c     | 41 ++++++++++++++++++++++++
+ socket/tst-sockaddr_un_set.c | 62 ++++++++++++++++++++++++++++++++++++
+ 4 files changed, 120 insertions(+), 1 deletion(-)
+ create mode 100644 socket/sockaddr_un_set.c
+ create mode 100644 socket/tst-sockaddr_un_set.c
+
+diff --git a/include/sys/un.h b/include/sys/un.h
+index bdbee99980..152afd9fc7 100644
+--- a/include/sys/un.h
++++ b/include/sys/un.h
+@@ -1 +1,13 @@
+ #include <socket/sys/un.h>
++
++#ifndef _ISOMAC
++
++/* Set ADDR->sun_family to AF_UNIX and ADDR->sun_path to PATHNAME.
++   Return 0 on success or -1 on failure (due to overlong PATHNAME).
++   The caller should always use sizeof (struct sockaddr_un) as the
++   socket address length, disregaring the length of PATHNAME.
++   Only concrete (non-abstract) pathnames are supported.  */
++int __sockaddr_un_set (struct sockaddr_un *addr, const char *pathname)
++  attribute_hidden;
++
++#endif /* _ISOMAC */
+diff --git a/socket/Makefile b/socket/Makefile
+index 39333e10ca..156eec6c85 100644
+--- a/socket/Makefile
++++ b/socket/Makefile
+@@ -29,13 +29,17 @@ headers	:= sys/socket.h sys/un.h bits/sockaddr.h bits/socket.h \
+ routines := accept bind connect getpeername getsockname getsockopt	\
+ 	    listen recv recvfrom recvmsg send sendmsg sendto		\
+ 	    setsockopt shutdown socket socketpair isfdtype opensock	\
+-	    sockatmark accept4 recvmmsg sendmmsg
++	    sockatmark accept4 recvmmsg sendmmsg sockaddr_un_set
+ 
+ tests := \
+   tst-accept4 \
+   tst-sockopt \
+   # tests
+ 
++tests-internal := \
++  tst-sockaddr_un_set \
++  # tests-internal
++
+ tests-time64 := \
+   tst-sockopt-time64 \
+   # tests
+diff --git a/socket/sockaddr_un_set.c b/socket/sockaddr_un_set.c
+new file mode 100644
+index 0000000000..0bd40dc34e
+--- /dev/null
++++ b/socket/sockaddr_un_set.c
+@@ -0,0 +1,41 @@
++/* Set the sun_path member of struct sockaddr_un.
++   Copyright (C) 2022 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <errno.h>
++#include <string.h>
++#include <sys/socket.h>
++#include <sys/un.h>
++
++int
++__sockaddr_un_set (struct sockaddr_un *addr, const char *pathname)
++{
++  size_t name_length = strlen (pathname);
++
++  /* The kernel supports names of exactly sizeof (addr->sun_path)
++     bytes, without a null terminator, but userspace does not; see the
++     SUN_LEN macro.  */
++  if (name_length >= sizeof (addr->sun_path))
++    {
++      __set_errno (EINVAL);     /* Error code used by the kernel.  */
++      return -1;
++    }
++
++  addr->sun_family = AF_UNIX;
++  memcpy (addr->sun_path, pathname, name_length + 1);
++  return 0;
++}
+diff --git a/socket/tst-sockaddr_un_set.c b/socket/tst-sockaddr_un_set.c
+new file mode 100644
+index 0000000000..29c2a81afd
+--- /dev/null
++++ b/socket/tst-sockaddr_un_set.c
+@@ -0,0 +1,62 @@
++/* Test the __sockaddr_un_set function.
++   Copyright (C) 2022 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++/* Re-compile the function because the version in libc is not
++   exported.  */
++#include "sockaddr_un_set.c"
++
++#include <support/check.h>
++
++static int
++do_test (void)
++{
++  struct sockaddr_un sun;
++
++  memset (&sun, 0xcc, sizeof (sun));
++  __sockaddr_un_set (&sun, "");
++  TEST_COMPARE (sun.sun_family, AF_UNIX);
++  TEST_COMPARE (__sockaddr_un_set (&sun, ""), 0);
++
++  memset (&sun, 0xcc, sizeof (sun));
++  TEST_COMPARE (__sockaddr_un_set (&sun, "/example"), 0);
++  TEST_COMPARE_STRING (sun.sun_path, "/example");
++
++  {
++    char pathname[108];         /* Length of sun_path (ABI constant).  */
++    memset (pathname, 'x', sizeof (pathname));
++    pathname[sizeof (pathname) - 1] = '\0';
++    memset (&sun, 0xcc, sizeof (sun));
++    TEST_COMPARE (__sockaddr_un_set (&sun, pathname), 0);
++    TEST_COMPARE (sun.sun_family, AF_UNIX);
++    TEST_COMPARE_STRING (sun.sun_path, pathname);
++  }
++
++  {
++    char pathname[109];
++    memset (pathname, 'x', sizeof (pathname));
++    pathname[sizeof (pathname) - 1] = '\0';
++    memset (&sun, 0xcc, sizeof (sun));
++    errno = 0;
++    TEST_COMPARE (__sockaddr_un_set (&sun, pathname), -1);
++    TEST_COMPARE (errno, EINVAL);
++  }
++
++  return 0;
++}
++
++#include <support/test-driver.c>
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/glibc/glibc/0001-CVE-2022-23219.patch b/poky/meta/recipes-core/glibc/glibc/0001-CVE-2022-23219.patch
new file mode 100644
index 0000000..261c290
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/0001-CVE-2022-23219.patch
@@ -0,0 +1,55 @@
+From 226b46770c82899b555986583294b049c6ec9b40 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Mon, 17 Jan 2022 10:21:34 +0100
+Subject: [PATCH] CVE-2022-23219: Buffer overflow in sunrpc clnt_create for
+ "unix" (bug 22542)
+
+Processing an overlong pathname in the sunrpc clnt_create function
+results in a stack-based buffer overflow.
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=226b46770c82899b555986583294b049c6ec9b40]
+CVE: CVE-2022-23219
+
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+---
+ NEWS              |  4 +++-
+ sunrpc/clnt_gen.c | 10 +++++++---
+ 2 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index ddd95a8329..38a9ddb2cf 100644
+--- a/NEWS
++++ b/NEWS
+@@ -206,6 +206,10 @@ Security related changes:
+   CVE-2022-23218: Passing an overlong file name to the svcunix_create
+   legacy function could result in a stack-based buffer overflow.
+ 
++  CVE-2022-23219: Passing an overlong file name to the clnt_create
++  legacy function could result in a stack-based buffer overflow when
++  using the "unix" protocol.  Reported by Martin Sebor.
++
+ The following bugs are resolved with this release:
+ 
+   [4737] libc: fork is not async-signal-safe
+diff --git a/sunrpc/clnt_gen.c b/sunrpc/clnt_gen.c
+index 13ced8994e..b44357cd88 100644
+--- a/sunrpc/clnt_gen.c
++++ b/sunrpc/clnt_gen.c
+@@ -57,9 +57,13 @@ clnt_create (const char *hostname, u_lon
+ 
+   if (strcmp (proto, "unix") == 0)
+     {
+-      memset ((char *)&sun, 0, sizeof (sun));
+-      sun.sun_family = AF_UNIX;
+-      strcpy (sun.sun_path, hostname);
++      if (__sockaddr_un_set (&sun, hostname) < 0)
++	{
++	  struct rpc_createerr *ce = &get_rpc_createerr ();
++	  ce->cf_stat = RPC_SYSTEMERROR;
++	  ce->cf_error.re_errno = errno;
++	  return NULL;
++	}
+       sock = RPC_ANYSOCK;
+       client = clntunix_create (&sun, prog, vers, &sock, 0, 0);
+       if (client == NULL)
diff --git a/poky/meta/recipes-core/glibc/glibc/0001-Make-shell-interpreter-overridable-in-tzselect.ksh.patch b/poky/meta/recipes-core/glibc/glibc/0001-Make-shell-interpreter-overridable-in-tzselect.ksh.patch
new file mode 100644
index 0000000..0480c47
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/0001-Make-shell-interpreter-overridable-in-tzselect.ksh.patch
@@ -0,0 +1,50 @@
+From 76d170fbbfd07b26a0288212201e5d15558db36f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 9 Dec 2021 15:14:42 -0800
+Subject: [PATCH] Make shell interpreter overridable in tzselect.ksh
+
+define new macro called KSHELL which can be used to define default shell
+use Bash by default
+
+Upstream-Status: Submitted [https://patchwork.sourceware.org/project/glibc/patch/20211209234015.1554552-1-raj.khem@gmail.com/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makeconfig        | 9 +++++++++
+ timezone/Makefile | 1 +
+ 2 files changed, 10 insertions(+)
+
+diff --git a/Makeconfig b/Makeconfig
+index 3fa2f13003..a1ea5d5571 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -292,6 +292,15 @@ ifndef sysincludedir
+ sysincludedir = /usr/include
+ endif
+ 
++# The full path name of a Posix-compliant shell, preferably one that supports
++# the Korn shell's 'select' statement as an extension.
++# These days, Bash is the most popular.
++# It should be OK to set this to /bin/sh, on platforms where /bin/sh
++# lacks 'select' or doesn't completely conform to Posix, but /bin/bash
++# is typically nicer if it works.
++ifndef KSHELL
++KSHELL = /bin/bash
++endif
+ 
+ # Commands to install files.
+ ifndef INSTALL_DATA
+diff --git a/timezone/Makefile b/timezone/Makefile
+index c624a189b3..dc8f5277de 100644
+--- a/timezone/Makefile
++++ b/timezone/Makefile
+@@ -127,6 +127,7 @@ $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
+ 	    -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \
+ 	    -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \
+ 	    -e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \
++	    -e 's|#!/bin/bash|#!$(KSHELL)|g' \
+ 	    < $< > $@.new
+ 	chmod 555 $@.new
+ 	mv -f $@.new $@
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-core/glibc/glibc/0002-CVE-2022-23218.patch b/poky/meta/recipes-core/glibc/glibc/0002-CVE-2022-23218.patch
new file mode 100644
index 0000000..00fb326
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/0002-CVE-2022-23218.patch
@@ -0,0 +1,126 @@
+From f545ad4928fa1f27a3075265182b38a4f939a5f7 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Mon, 17 Jan 2022 10:21:34 +0100
+Subject: [PATCH] CVE-2022-23218: Buffer overflow in sunrpc svcunix_create (bug
+ 28768)
+
+The sunrpc function svcunix_create suffers from a stack-based buffer
+overflow with overlong pathname arguments.
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=f545ad4928fa1f27a3075265182b38a4f939a5f7]
+CVE: CVE-2022-23218
+
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+---
+ NEWS                  |  3 +++
+ sunrpc/Makefile       |  2 +-
+ sunrpc/svc_unix.c     | 11 ++++-------
+ sunrpc/tst-bug28768.c | 42 ++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 50 insertions(+), 8 deletions(-)
+ create mode 100644 sunrpc/tst-bug28768.c
+
+diff --git a/NEWS b/NEWS
+index 38a9ddb2cf..38802f0673 100644
+--- a/NEWS
++++ b/NEWS
+@@ -203,6 +203,9 @@ Security related changes:
+   parameter number when processing the expansion resulting in a crash.
+   Reported by Philippe Antoine.
+ 
++  CVE-2022-23218: Passing an overlong file name to the svcunix_create
++  legacy function could result in a stack-based buffer overflow.
++
+ The following bugs are resolved with this release:
+ 
+   [4737] libc: fork is not async-signal-safe
+diff --git a/sunrpc/Makefile b/sunrpc/Makefile
+index 183ef3dc55..a79a7195fc 100644
+--- a/sunrpc/Makefile
++++ b/sunrpc/Makefile
+@@ -65,7 +65,7 @@ shared-only-routines = $(routines)
+ endif
+ 
+ tests = tst-xdrmem tst-xdrmem2 test-rpcent tst-udp-error tst-udp-timeout \
+-  tst-udp-nonblocking
++  tst-udp-nonblocking tst-bug28768
+ xtests := tst-getmyaddr
+ 
+ ifeq ($(have-thread-library),yes)
+diff --git a/sunrpc/svc_unix.c b/sunrpc/svc_unix.c
+index f2280b4c49..67177a2e78 100644
+--- a/sunrpc/svc_unix.c
++++ b/sunrpc/svc_unix.c
+@@ -154,7 +154,10 @@ svcunix_create (int sock, u_int sendsize
+   SVCXPRT *xprt;
+   struct unix_rendezvous *r;
+   struct sockaddr_un addr;
+-  socklen_t len = sizeof (struct sockaddr_in);
++  socklen_t len = sizeof (addr);
++
++  if (__sockaddr_un_set (&addr, path) < 0)
++    return NULL;
+ 
+   if (sock == RPC_ANYSOCK)
+     {
+@@ -165,12 +168,6 @@ svcunix_create (int sock, u_int sendsize
+ 	}
+       madesock = TRUE;
+     }
+-  memset (&addr, '\0', sizeof (addr));
+-  addr.sun_family = AF_UNIX;
+-  len = strlen (path) + 1;
+-  memcpy (addr.sun_path, path, len);
+-  len += sizeof (addr.sun_family);
+-
+   __bind (sock, (struct sockaddr *) &addr, len);
+ 
+   if (__getsockname (sock, (struct sockaddr *) &addr, &len) != 0
+diff --git a/sunrpc/tst-bug28768.c b/sunrpc/tst-bug28768.c
+new file mode 100644
+index 0000000000..35a4b7b0b3
+--- /dev/null
++++ b/sunrpc/tst-bug28768.c
+@@ -0,0 +1,42 @@
++/* Test to verify that long path is rejected by svcunix_create (bug 28768).
++   Copyright (C) 2022 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
++#include <errno.h>
++#include <rpc/svc.h>
++#include <shlib-compat.h>
++#include <string.h>
++#include <support/check.h>
++
++/* svcunix_create does not have a default version in linkobj/libc.so.  */
++compat_symbol_reference (libc, svcunix_create, svcunix_create, GLIBC_2_1);
++
++static int
++do_test (void)
++{
++  char pathname[109];
++  memset (pathname, 'x', sizeof (pathname));
++  pathname[sizeof (pathname) - 1] = '\0';
++
++  errno = 0;
++  TEST_VERIFY (svcunix_create (RPC_ANYSOCK, 4096, 4096, pathname) == NULL);
++  TEST_COMPARE (errno, EINVAL);
++
++  return 0;
++}
++
++#include <support/test-driver.c>
diff --git a/poky/meta/recipes-core/glibc/glibc/0002-CVE-2022-23219.patch b/poky/meta/recipes-core/glibc/glibc/0002-CVE-2022-23219.patch
new file mode 100644
index 0000000..6779e9a
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/0002-CVE-2022-23219.patch
@@ -0,0 +1,89 @@
+From ef972a4c50014a16132b5c75571cfb6b30bef136 Mon Sep 17 00:00:00 2001
+From: Martin Sebor <msebor@redhat.com>
+Date: Mon, 17 Jan 2022 10:21:34 +0100
+Subject: [PATCH] sunrpc: Test case for clnt_create "unix" buffer overflow (bug
+ 22542)
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=ef972a4c50014a16132b5c75571cfb6b30bef136]
+CVE: CVE-2022-23219
+
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+---
+ sunrpc/Makefile       |  5 ++++-
+ sunrpc/tst-bug22542.c | 44 +++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 48 insertions(+), 1 deletion(-)
+ create mode 100644 sunrpc/tst-bug22542.c
+
+diff --git a/sunrpc/Makefile b/sunrpc/Makefile
+index 9a31fe48b9..183ef3dc55 100644
+--- a/sunrpc/Makefile
++++ b/sunrpc/Makefile
+@@ -65,7 +65,7 @@ shared-only-routines = $(routines)
+ endif
+ 
+ tests = tst-xdrmem tst-xdrmem2 test-rpcent tst-udp-error tst-udp-timeout \
+-  tst-udp-nonblocking tst-bug28768
++  tst-udp-nonblocking tst-bug22542 tst-bug28768
+ xtests := tst-getmyaddr
+ 
+ ifeq ($(have-thread-library),yes)
+@@ -110,6 +110,8 @@ $(objpfx)tst-udp-nonblocking: $(common-o
+ $(objpfx)tst-udp-garbage: \
+   $(common-objpfx)linkobj/libc.so $(shared-thread-library)
+ 
++$(objpfx)tst-bug22542: $(common-objpfx)linkobj/libc.so
++
+ else # !have-GLIBC_2.31
+ 
+ routines = $(routines-for-nss)
+diff --git a/sunrpc/tst-bug22542.c b/sunrpc/tst-bug22542.c
+new file mode 100644
+index 0000000000..d6cd79787b
+--- /dev/null
++++ b/sunrpc/tst-bug22542.c
+@@ -0,0 +1,44 @@
++/* Test to verify that overlong hostname is rejected by clnt_create
++   and doesn't cause a buffer overflow (bug  22542).
++
++   Copyright (C) 2022 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
++#include <errno.h>
++#include <rpc/clnt.h>
++#include <string.h>
++#include <support/check.h>
++#include <sys/socket.h>
++#include <sys/un.h>
++
++static int
++do_test (void)
++{
++  /* Create an arbitrary hostname that's longer than fits in sun_path.  */
++  char name [sizeof ((struct sockaddr_un*)0)->sun_path * 2];
++  memset (name, 'x', sizeof name - 1);
++  name [sizeof name - 1] = '\0';
++
++  errno = 0;
++  CLIENT *clnt = clnt_create (name, 0, 0, "unix");
++
++  TEST_VERIFY (clnt == NULL);
++  TEST_COMPARE (errno, EINVAL);
++  return 0;
++}
++
++#include <support/test-driver.c>
diff --git a/poky/meta/recipes-core/glibc/glibc/0009-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch b/poky/meta/recipes-core/glibc/glibc/0009-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch
deleted file mode 100644
index 01de227..0000000
--- a/poky/meta/recipes-core/glibc/glibc/0009-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch
+++ /dev/null
@@ -1,1581 +0,0 @@
-From 74923ca4b1ae0ed5a2478e7d265b37534f6815d7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 18 Mar 2015 00:01:50 +0000
-Subject: [PATCH] fsl e500/e5500/e6500/603e fsqrt implementation
-
-Upstream-Status: Pending
-Signed-off-by: Edmar Wienskoski <edmar@freescale.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c   | 134 ++++++++++++++++++
- sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c  | 101 +++++++++++++
- sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | 134 ++++++++++++++++++
- .../powerpc/powerpc32/e500mc/fpu/e_sqrtf.c    | 101 +++++++++++++
- sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c  | 134 ++++++++++++++++++
- sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | 101 +++++++++++++
- sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c  | 134 ++++++++++++++++++
- sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 101 +++++++++++++
- sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c  | 134 ++++++++++++++++++
- sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | 101 +++++++++++++
- sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c  | 134 ++++++++++++++++++
- sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | 101 +++++++++++++
- .../linux/powerpc/powerpc32/603e/fpu/Implies  |   1 +
- .../powerpc/powerpc32/e300c3/fpu/Implies      |   2 +
- .../powerpc/powerpc32/e500mc/fpu/Implies      |   1 +
- .../linux/powerpc/powerpc32/e5500/fpu/Implies |   1 +
- .../linux/powerpc/powerpc32/e6500/fpu/Implies |   1 +
- .../linux/powerpc/powerpc64/e5500/fpu/Implies |   1 +
- .../linux/powerpc/powerpc64/e6500/fpu/Implies |   1 +
- 19 files changed, 1418 insertions(+)
- create mode 100644 sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
- create mode 100644 sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
- create mode 100644 sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
- create mode 100644 sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
- create mode 100644 sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
- create mode 100644 sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
- create mode 100644 sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
- create mode 100644 sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
- create mode 100644 sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
- create mode 100644 sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
- create mode 100644 sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
- create mode 100644 sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
- create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies
- create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies
- create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies
- create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies
- create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies
- create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies
- create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies
-
-diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
-new file mode 100644
-index 0000000000..71e516d1c8
---- /dev/null
-+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
-@@ -0,0 +1,134 @@
-+/* Double-precision floating point square root.
-+   Copyright (C) 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <math.h>
-+#include <math_private.h>
-+#include <fenv_libc.h>
-+#include <inttypes.h>
-+
-+#include <sysdep.h>
-+#include <ldsodefs.h>
-+
-+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
-+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
-+static const float two108 = 3.245185536584267269e+32;
-+static const float twom54 = 5.551115123125782702e-17;
-+static const float half = 0.5;
-+
-+/* The method is based on the descriptions in:
-+
-+   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
-+   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
-+
-+   We find the actual square root and half of its reciprocal
-+   simultaneously.  */
-+
-+#ifdef __STDC__
-+double
-+__ieee754_sqrt (double b)
-+#else
-+double
-+__ieee754_sqrt (b)
-+     double b;
-+#endif
-+{
-+  if (__builtin_expect (b > 0, 1))
-+    {
-+      double y, g, h, d, r;
-+      ieee_double_shape_type u;
-+
-+      if (__builtin_expect (b != a_inf.value, 1))
-+        {
-+          fenv_t fe;
-+
-+          fe = fegetenv_register ();
-+
-+          u.value = b;
-+
-+          relax_fenv_state ();
-+
-+          __asm__ ("frsqrte %[estimate], %[x]\n"
-+                   : [estimate] "=f" (y) : [x] "f" (b));
-+
-+          /* Following Muller et al, page 168, equation 5.20.
-+
-+             h goes to 1/(2*sqrt(b))
-+             g goes to sqrt(b).
-+
-+             We need three iterations to get within 1ulp.  */
-+
-+          /* Indicate that these can be performed prior to the branch.  GCC
-+             insists on sinking them below the branch, however; it seems like
-+             they'd be better before the branch so that we can cover any latency
-+             from storing the argument and loading its high word.  Oh well.  */
-+
-+          g = b * y;
-+          h = 0.5 * y;
-+
-+          /* Handle small numbers by scaling.  */
-+          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
-+            return __ieee754_sqrt (b * two108) * twom54;
-+
-+#define FMADD(a_, c_, b_)                                               \
-+          ({ double __r;                                                \
-+          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
-+                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+          __r;})
-+#define FNMSUB(a_, c_, b_)                                          \
-+          ({ double __r;                                                \
-+          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
-+                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+          __r;})
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
-+
-+          /* Final refinement.  */
-+          d = FNMSUB (g, g, b);
-+
-+          fesetenv_register (fe);
-+          return FMADD (d, h, g);
-+        }
-+    }
-+  else if (b < 0)
-+    {
-+      /* For some reason, some PowerPC32 processors don't implement
-+         FE_INVALID_SQRT.  */
-+#ifdef FE_INVALID_SQRT
-+      feraiseexcept (FE_INVALID_SQRT);
-+
-+      fenv_union_t u = { .fenv = fegetenv_register () };
-+      if ((u.l & FE_INVALID) == 0)
-+#endif
-+	feraiseexcept (FE_INVALID);
-+      b = a_nan.value;
-+    }
-+  return f_wash (b);
-+}
-diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
-new file mode 100644
-index 0000000000..26fa067abf
---- /dev/null
-+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
-@@ -0,0 +1,101 @@
-+/* Single-precision floating point square root.
-+   Copyright (C) 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <math.h>
-+#include <math_private.h>
-+#include <fenv_libc.h>
-+#include <inttypes.h>
-+
-+#include <sysdep.h>
-+#include <ldsodefs.h>
-+
-+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
-+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
-+static const float threehalf = 1.5;
-+
-+/* The method is based on the descriptions in:
-+
-+   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
-+   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
-+
-+   We find the reciprocal square root and use that to compute the actual
-+   square root.  */
-+
-+#ifdef __STDC__
-+float
-+__ieee754_sqrtf (float b)
-+#else
-+float
-+__ieee754_sqrtf (b)
-+     float b;
-+#endif
-+{
-+  if (__builtin_expect (b > 0, 1))
-+    {
-+#define FMSUB(a_, c_, b_)                                               \
-+      ({ double __r;                                                    \
-+        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
-+                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+        __r;})
-+#define FNMSUB(a_, c_, b_)                                              \
-+      ({ double __r;                                                    \
-+        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
-+                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+        __r;})
-+
-+      if (__builtin_expect (b != a_inf.value, 1))
-+        {
-+          double y, x;
-+          fenv_t fe;
-+
-+          fe = fegetenv_register ();
-+
-+          relax_fenv_state ();
-+
-+          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
-+          y = FMSUB (threehalf, b, b);
-+
-+          /* Initial estimate.  */
-+          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
-+
-+          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
-+          x = x * FNMSUB (y, x * x, threehalf);
-+          x = x * FNMSUB (y, x * x, threehalf);
-+          x = x * FNMSUB (y, x * x, threehalf);
-+
-+          /* All done.  */
-+          fesetenv_register (fe);
-+          return x * b;
-+        }
-+    }
-+  else if (b < 0)
-+    {
-+      /* For some reason, some PowerPC32 processors don't implement
-+         FE_INVALID_SQRT.  */
-+#ifdef FE_INVALID_SQRT
-+      feraiseexcept (FE_INVALID_SQRT);
-+
-+      fenv_union_t u = { .fenv = fegetenv_register () };
-+      if ((u.l & FE_INVALID) == 0)
-+#endif
-+	feraiseexcept (FE_INVALID);
-+      b = a_nan.value;
-+    }
-+  return f_washf (b);
-+}
-diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
-new file mode 100644
-index 0000000000..71e516d1c8
---- /dev/null
-+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
-@@ -0,0 +1,134 @@
-+/* Double-precision floating point square root.
-+   Copyright (C) 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <math.h>
-+#include <math_private.h>
-+#include <fenv_libc.h>
-+#include <inttypes.h>
-+
-+#include <sysdep.h>
-+#include <ldsodefs.h>
-+
-+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
-+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
-+static const float two108 = 3.245185536584267269e+32;
-+static const float twom54 = 5.551115123125782702e-17;
-+static const float half = 0.5;
-+
-+/* The method is based on the descriptions in:
-+
-+   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
-+   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
-+
-+   We find the actual square root and half of its reciprocal
-+   simultaneously.  */
-+
-+#ifdef __STDC__
-+double
-+__ieee754_sqrt (double b)
-+#else
-+double
-+__ieee754_sqrt (b)
-+     double b;
-+#endif
-+{
-+  if (__builtin_expect (b > 0, 1))
-+    {
-+      double y, g, h, d, r;
-+      ieee_double_shape_type u;
-+
-+      if (__builtin_expect (b != a_inf.value, 1))
-+        {
-+          fenv_t fe;
-+
-+          fe = fegetenv_register ();
-+
-+          u.value = b;
-+
-+          relax_fenv_state ();
-+
-+          __asm__ ("frsqrte %[estimate], %[x]\n"
-+                   : [estimate] "=f" (y) : [x] "f" (b));
-+
-+          /* Following Muller et al, page 168, equation 5.20.
-+
-+             h goes to 1/(2*sqrt(b))
-+             g goes to sqrt(b).
-+
-+             We need three iterations to get within 1ulp.  */
-+
-+          /* Indicate that these can be performed prior to the branch.  GCC
-+             insists on sinking them below the branch, however; it seems like
-+             they'd be better before the branch so that we can cover any latency
-+             from storing the argument and loading its high word.  Oh well.  */
-+
-+          g = b * y;
-+          h = 0.5 * y;
-+
-+          /* Handle small numbers by scaling.  */
-+          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
-+            return __ieee754_sqrt (b * two108) * twom54;
-+
-+#define FMADD(a_, c_, b_)                                               \
-+          ({ double __r;                                                \
-+          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
-+                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+          __r;})
-+#define FNMSUB(a_, c_, b_)                                          \
-+          ({ double __r;                                                \
-+          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
-+                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+          __r;})
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
-+
-+          /* Final refinement.  */
-+          d = FNMSUB (g, g, b);
-+
-+          fesetenv_register (fe);
-+          return FMADD (d, h, g);
-+        }
-+    }
-+  else if (b < 0)
-+    {
-+      /* For some reason, some PowerPC32 processors don't implement
-+         FE_INVALID_SQRT.  */
-+#ifdef FE_INVALID_SQRT
-+      feraiseexcept (FE_INVALID_SQRT);
-+
-+      fenv_union_t u = { .fenv = fegetenv_register () };
-+      if ((u.l & FE_INVALID) == 0)
-+#endif
-+	feraiseexcept (FE_INVALID);
-+      b = a_nan.value;
-+    }
-+  return f_wash (b);
-+}
-diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
-new file mode 100644
-index 0000000000..26fa067abf
---- /dev/null
-+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
-@@ -0,0 +1,101 @@
-+/* Single-precision floating point square root.
-+   Copyright (C) 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <math.h>
-+#include <math_private.h>
-+#include <fenv_libc.h>
-+#include <inttypes.h>
-+
-+#include <sysdep.h>
-+#include <ldsodefs.h>
-+
-+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
-+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
-+static const float threehalf = 1.5;
-+
-+/* The method is based on the descriptions in:
-+
-+   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
-+   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
-+
-+   We find the reciprocal square root and use that to compute the actual
-+   square root.  */
-+
-+#ifdef __STDC__
-+float
-+__ieee754_sqrtf (float b)
-+#else
-+float
-+__ieee754_sqrtf (b)
-+     float b;
-+#endif
-+{
-+  if (__builtin_expect (b > 0, 1))
-+    {
-+#define FMSUB(a_, c_, b_)                                               \
-+      ({ double __r;                                                    \
-+        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
-+                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+        __r;})
-+#define FNMSUB(a_, c_, b_)                                              \
-+      ({ double __r;                                                    \
-+        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
-+                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+        __r;})
-+
-+      if (__builtin_expect (b != a_inf.value, 1))
-+        {
-+          double y, x;
-+          fenv_t fe;
-+
-+          fe = fegetenv_register ();
-+
-+          relax_fenv_state ();
-+
-+          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
-+          y = FMSUB (threehalf, b, b);
-+
-+          /* Initial estimate.  */
-+          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
-+
-+          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
-+          x = x * FNMSUB (y, x * x, threehalf);
-+          x = x * FNMSUB (y, x * x, threehalf);
-+          x = x * FNMSUB (y, x * x, threehalf);
-+
-+          /* All done.  */
-+          fesetenv_register (fe);
-+          return x * b;
-+        }
-+    }
-+  else if (b < 0)
-+    {
-+      /* For some reason, some PowerPC32 processors don't implement
-+         FE_INVALID_SQRT.  */
-+#ifdef FE_INVALID_SQRT
-+      feraiseexcept (FE_INVALID_SQRT);
-+
-+      fenv_union_t u = { .fenv = fegetenv_register () };
-+      if ((u.l & FE_INVALID) == 0)
-+#endif
-+	feraiseexcept (FE_INVALID);
-+      b = a_nan.value;
-+    }
-+  return f_washf (b);
-+}
-diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
-new file mode 100644
-index 0000000000..71e516d1c8
---- /dev/null
-+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
-@@ -0,0 +1,134 @@
-+/* Double-precision floating point square root.
-+   Copyright (C) 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <math.h>
-+#include <math_private.h>
-+#include <fenv_libc.h>
-+#include <inttypes.h>
-+
-+#include <sysdep.h>
-+#include <ldsodefs.h>
-+
-+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
-+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
-+static const float two108 = 3.245185536584267269e+32;
-+static const float twom54 = 5.551115123125782702e-17;
-+static const float half = 0.5;
-+
-+/* The method is based on the descriptions in:
-+
-+   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
-+   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
-+
-+   We find the actual square root and half of its reciprocal
-+   simultaneously.  */
-+
-+#ifdef __STDC__
-+double
-+__ieee754_sqrt (double b)
-+#else
-+double
-+__ieee754_sqrt (b)
-+     double b;
-+#endif
-+{
-+  if (__builtin_expect (b > 0, 1))
-+    {
-+      double y, g, h, d, r;
-+      ieee_double_shape_type u;
-+
-+      if (__builtin_expect (b != a_inf.value, 1))
-+        {
-+          fenv_t fe;
-+
-+          fe = fegetenv_register ();
-+
-+          u.value = b;
-+
-+          relax_fenv_state ();
-+
-+          __asm__ ("frsqrte %[estimate], %[x]\n"
-+                   : [estimate] "=f" (y) : [x] "f" (b));
-+
-+          /* Following Muller et al, page 168, equation 5.20.
-+
-+             h goes to 1/(2*sqrt(b))
-+             g goes to sqrt(b).
-+
-+             We need three iterations to get within 1ulp.  */
-+
-+          /* Indicate that these can be performed prior to the branch.  GCC
-+             insists on sinking them below the branch, however; it seems like
-+             they'd be better before the branch so that we can cover any latency
-+             from storing the argument and loading its high word.  Oh well.  */
-+
-+          g = b * y;
-+          h = 0.5 * y;
-+
-+          /* Handle small numbers by scaling.  */
-+          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
-+            return __ieee754_sqrt (b * two108) * twom54;
-+
-+#define FMADD(a_, c_, b_)                                               \
-+          ({ double __r;                                                \
-+          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
-+                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+          __r;})
-+#define FNMSUB(a_, c_, b_)                                          \
-+          ({ double __r;                                                \
-+          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
-+                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+          __r;})
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
-+
-+          /* Final refinement.  */
-+          d = FNMSUB (g, g, b);
-+
-+          fesetenv_register (fe);
-+          return FMADD (d, h, g);
-+        }
-+    }
-+  else if (b < 0)
-+    {
-+      /* For some reason, some PowerPC32 processors don't implement
-+         FE_INVALID_SQRT.  */
-+#ifdef FE_INVALID_SQRT
-+      feraiseexcept (FE_INVALID_SQRT);
-+
-+      fenv_union_t u = { .fenv = fegetenv_register () };
-+      if ((u.l & FE_INVALID) == 0)
-+#endif
-+	feraiseexcept (FE_INVALID);
-+      b = a_nan.value;
-+    }
-+  return f_wash (b);
-+}
-diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
-new file mode 100644
-index 0000000000..26fa067abf
---- /dev/null
-+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
-@@ -0,0 +1,101 @@
-+/* Single-precision floating point square root.
-+   Copyright (C) 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <math.h>
-+#include <math_private.h>
-+#include <fenv_libc.h>
-+#include <inttypes.h>
-+
-+#include <sysdep.h>
-+#include <ldsodefs.h>
-+
-+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
-+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
-+static const float threehalf = 1.5;
-+
-+/* The method is based on the descriptions in:
-+
-+   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
-+   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
-+
-+   We find the reciprocal square root and use that to compute the actual
-+   square root.  */
-+
-+#ifdef __STDC__
-+float
-+__ieee754_sqrtf (float b)
-+#else
-+float
-+__ieee754_sqrtf (b)
-+     float b;
-+#endif
-+{
-+  if (__builtin_expect (b > 0, 1))
-+    {
-+#define FMSUB(a_, c_, b_)                                               \
-+      ({ double __r;                                                    \
-+        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
-+                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+        __r;})
-+#define FNMSUB(a_, c_, b_)                                              \
-+      ({ double __r;                                                    \
-+        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
-+                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+        __r;})
-+
-+      if (__builtin_expect (b != a_inf.value, 1))
-+        {
-+          double y, x;
-+          fenv_t fe;
-+
-+          fe = fegetenv_register ();
-+
-+          relax_fenv_state ();
-+
-+          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
-+          y = FMSUB (threehalf, b, b);
-+
-+          /* Initial estimate.  */
-+          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
-+
-+          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
-+          x = x * FNMSUB (y, x * x, threehalf);
-+          x = x * FNMSUB (y, x * x, threehalf);
-+          x = x * FNMSUB (y, x * x, threehalf);
-+
-+          /* All done.  */
-+          fesetenv_register (fe);
-+          return x * b;
-+        }
-+    }
-+  else if (b < 0)
-+    {
-+      /* For some reason, some PowerPC32 processors don't implement
-+         FE_INVALID_SQRT.  */
-+#ifdef FE_INVALID_SQRT
-+      feraiseexcept (FE_INVALID_SQRT);
-+
-+      fenv_union_t u = { .fenv = fegetenv_register () };
-+      if ((u.l & FE_INVALID) == 0)
-+#endif
-+	feraiseexcept (FE_INVALID);
-+      b = a_nan.value;
-+    }
-+  return f_washf (b);
-+}
-diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
-new file mode 100644
-index 0000000000..71e516d1c8
---- /dev/null
-+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
-@@ -0,0 +1,134 @@
-+/* Double-precision floating point square root.
-+   Copyright (C) 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <math.h>
-+#include <math_private.h>
-+#include <fenv_libc.h>
-+#include <inttypes.h>
-+
-+#include <sysdep.h>
-+#include <ldsodefs.h>
-+
-+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
-+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
-+static const float two108 = 3.245185536584267269e+32;
-+static const float twom54 = 5.551115123125782702e-17;
-+static const float half = 0.5;
-+
-+/* The method is based on the descriptions in:
-+
-+   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
-+   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
-+
-+   We find the actual square root and half of its reciprocal
-+   simultaneously.  */
-+
-+#ifdef __STDC__
-+double
-+__ieee754_sqrt (double b)
-+#else
-+double
-+__ieee754_sqrt (b)
-+     double b;
-+#endif
-+{
-+  if (__builtin_expect (b > 0, 1))
-+    {
-+      double y, g, h, d, r;
-+      ieee_double_shape_type u;
-+
-+      if (__builtin_expect (b != a_inf.value, 1))
-+        {
-+          fenv_t fe;
-+
-+          fe = fegetenv_register ();
-+
-+          u.value = b;
-+
-+          relax_fenv_state ();
-+
-+          __asm__ ("frsqrte %[estimate], %[x]\n"
-+                   : [estimate] "=f" (y) : [x] "f" (b));
-+
-+          /* Following Muller et al, page 168, equation 5.20.
-+
-+             h goes to 1/(2*sqrt(b))
-+             g goes to sqrt(b).
-+
-+             We need three iterations to get within 1ulp.  */
-+
-+          /* Indicate that these can be performed prior to the branch.  GCC
-+             insists on sinking them below the branch, however; it seems like
-+             they'd be better before the branch so that we can cover any latency
-+             from storing the argument and loading its high word.  Oh well.  */
-+
-+          g = b * y;
-+          h = 0.5 * y;
-+
-+          /* Handle small numbers by scaling.  */
-+          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
-+            return __ieee754_sqrt (b * two108) * twom54;
-+
-+#define FMADD(a_, c_, b_)                                               \
-+          ({ double __r;                                                \
-+          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
-+                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+          __r;})
-+#define FNMSUB(a_, c_, b_)                                          \
-+          ({ double __r;                                                \
-+          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
-+                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+          __r;})
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
-+
-+          /* Final refinement.  */
-+          d = FNMSUB (g, g, b);
-+
-+          fesetenv_register (fe);
-+          return FMADD (d, h, g);
-+        }
-+    }
-+  else if (b < 0)
-+    {
-+      /* For some reason, some PowerPC32 processors don't implement
-+         FE_INVALID_SQRT.  */
-+#ifdef FE_INVALID_SQRT
-+      feraiseexcept (FE_INVALID_SQRT);
-+
-+      fenv_union_t u = { .fenv = fegetenv_register () };
-+      if ((u.l & FE_INVALID) == 0)
-+#endif
-+	feraiseexcept (FE_INVALID);
-+      b = a_nan.value;
-+    }
-+  return f_wash (b);
-+}
-diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
-new file mode 100644
-index 0000000000..26fa067abf
---- /dev/null
-+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
-@@ -0,0 +1,101 @@
-+/* Single-precision floating point square root.
-+   Copyright (C) 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <math.h>
-+#include <math_private.h>
-+#include <fenv_libc.h>
-+#include <inttypes.h>
-+
-+#include <sysdep.h>
-+#include <ldsodefs.h>
-+
-+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
-+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
-+static const float threehalf = 1.5;
-+
-+/* The method is based on the descriptions in:
-+
-+   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
-+   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
-+
-+   We find the reciprocal square root and use that to compute the actual
-+   square root.  */
-+
-+#ifdef __STDC__
-+float
-+__ieee754_sqrtf (float b)
-+#else
-+float
-+__ieee754_sqrtf (b)
-+     float b;
-+#endif
-+{
-+  if (__builtin_expect (b > 0, 1))
-+    {
-+#define FMSUB(a_, c_, b_)                                               \
-+      ({ double __r;                                                    \
-+        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
-+                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+        __r;})
-+#define FNMSUB(a_, c_, b_)                                              \
-+      ({ double __r;                                                    \
-+        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
-+                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+        __r;})
-+
-+      if (__builtin_expect (b != a_inf.value, 1))
-+        {
-+          double y, x;
-+          fenv_t fe;
-+
-+          fe = fegetenv_register ();
-+
-+          relax_fenv_state ();
-+
-+          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
-+          y = FMSUB (threehalf, b, b);
-+
-+          /* Initial estimate.  */
-+          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
-+
-+          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
-+          x = x * FNMSUB (y, x * x, threehalf);
-+          x = x * FNMSUB (y, x * x, threehalf);
-+          x = x * FNMSUB (y, x * x, threehalf);
-+
-+          /* All done.  */
-+          fesetenv_register (fe);
-+          return x * b;
-+        }
-+    }
-+  else if (b < 0)
-+    {
-+      /* For some reason, some PowerPC32 processors don't implement
-+         FE_INVALID_SQRT.  */
-+#ifdef FE_INVALID_SQRT
-+      feraiseexcept (FE_INVALID_SQRT);
-+
-+      fenv_union_t u = { .fenv = fegetenv_register () };
-+      if ((u.l & FE_INVALID) == 0)
-+#endif
-+	feraiseexcept (FE_INVALID);
-+      b = a_nan.value;
-+    }
-+  return f_washf (b);
-+}
-diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
-new file mode 100644
-index 0000000000..71e516d1c8
---- /dev/null
-+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
-@@ -0,0 +1,134 @@
-+/* Double-precision floating point square root.
-+   Copyright (C) 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <math.h>
-+#include <math_private.h>
-+#include <fenv_libc.h>
-+#include <inttypes.h>
-+
-+#include <sysdep.h>
-+#include <ldsodefs.h>
-+
-+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
-+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
-+static const float two108 = 3.245185536584267269e+32;
-+static const float twom54 = 5.551115123125782702e-17;
-+static const float half = 0.5;
-+
-+/* The method is based on the descriptions in:
-+
-+   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
-+   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
-+
-+   We find the actual square root and half of its reciprocal
-+   simultaneously.  */
-+
-+#ifdef __STDC__
-+double
-+__ieee754_sqrt (double b)
-+#else
-+double
-+__ieee754_sqrt (b)
-+     double b;
-+#endif
-+{
-+  if (__builtin_expect (b > 0, 1))
-+    {
-+      double y, g, h, d, r;
-+      ieee_double_shape_type u;
-+
-+      if (__builtin_expect (b != a_inf.value, 1))
-+        {
-+          fenv_t fe;
-+
-+          fe = fegetenv_register ();
-+
-+          u.value = b;
-+
-+          relax_fenv_state ();
-+
-+          __asm__ ("frsqrte %[estimate], %[x]\n"
-+                   : [estimate] "=f" (y) : [x] "f" (b));
-+
-+          /* Following Muller et al, page 168, equation 5.20.
-+
-+             h goes to 1/(2*sqrt(b))
-+             g goes to sqrt(b).
-+
-+             We need three iterations to get within 1ulp.  */
-+
-+          /* Indicate that these can be performed prior to the branch.  GCC
-+             insists on sinking them below the branch, however; it seems like
-+             they'd be better before the branch so that we can cover any latency
-+             from storing the argument and loading its high word.  Oh well.  */
-+
-+          g = b * y;
-+          h = 0.5 * y;
-+
-+          /* Handle small numbers by scaling.  */
-+          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
-+            return __ieee754_sqrt (b * two108) * twom54;
-+
-+#define FMADD(a_, c_, b_)                                               \
-+          ({ double __r;                                                \
-+          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
-+                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+          __r;})
-+#define FNMSUB(a_, c_, b_)                                          \
-+          ({ double __r;                                                \
-+          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
-+                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+          __r;})
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
-+
-+          /* Final refinement.  */
-+          d = FNMSUB (g, g, b);
-+
-+          fesetenv_register (fe);
-+          return FMADD (d, h, g);
-+        }
-+    }
-+  else if (b < 0)
-+    {
-+      /* For some reason, some PowerPC32 processors don't implement
-+         FE_INVALID_SQRT.  */
-+#ifdef FE_INVALID_SQRT
-+      feraiseexcept (FE_INVALID_SQRT);
-+
-+      fenv_union_t u = { .fenv = fegetenv_register () };
-+      if ((u.l & FE_INVALID) == 0)
-+#endif
-+	feraiseexcept (FE_INVALID);
-+      b = a_nan.value;
-+    }
-+  return f_wash (b);
-+}
-diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
-new file mode 100644
-index 0000000000..26fa067abf
---- /dev/null
-+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
-@@ -0,0 +1,101 @@
-+/* Single-precision floating point square root.
-+   Copyright (C) 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <math.h>
-+#include <math_private.h>
-+#include <fenv_libc.h>
-+#include <inttypes.h>
-+
-+#include <sysdep.h>
-+#include <ldsodefs.h>
-+
-+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
-+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
-+static const float threehalf = 1.5;
-+
-+/* The method is based on the descriptions in:
-+
-+   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
-+   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
-+
-+   We find the reciprocal square root and use that to compute the actual
-+   square root.  */
-+
-+#ifdef __STDC__
-+float
-+__ieee754_sqrtf (float b)
-+#else
-+float
-+__ieee754_sqrtf (b)
-+     float b;
-+#endif
-+{
-+  if (__builtin_expect (b > 0, 1))
-+    {
-+#define FMSUB(a_, c_, b_)                                               \
-+      ({ double __r;                                                    \
-+        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
-+                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+        __r;})
-+#define FNMSUB(a_, c_, b_)                                              \
-+      ({ double __r;                                                    \
-+        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
-+                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+        __r;})
-+
-+      if (__builtin_expect (b != a_inf.value, 1))
-+        {
-+          double y, x;
-+          fenv_t fe;
-+
-+          fe = fegetenv_register ();
-+
-+          relax_fenv_state ();
-+
-+          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
-+          y = FMSUB (threehalf, b, b);
-+
-+          /* Initial estimate.  */
-+          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
-+
-+          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
-+          x = x * FNMSUB (y, x * x, threehalf);
-+          x = x * FNMSUB (y, x * x, threehalf);
-+          x = x * FNMSUB (y, x * x, threehalf);
-+
-+          /* All done.  */
-+          fesetenv_register (fe);
-+          return x * b;
-+        }
-+    }
-+  else if (b < 0)
-+    {
-+      /* For some reason, some PowerPC32 processors don't implement
-+         FE_INVALID_SQRT.  */
-+#ifdef FE_INVALID_SQRT
-+      feraiseexcept (FE_INVALID_SQRT);
-+
-+      fenv_union_t u = { .fenv = fegetenv_register () };
-+      if ((u.l & FE_INVALID) == 0)
-+#endif
-+	feraiseexcept (FE_INVALID);
-+      b = a_nan.value;
-+    }
-+  return f_washf (b);
-+}
-diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
-new file mode 100644
-index 0000000000..71e516d1c8
---- /dev/null
-+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
-@@ -0,0 +1,134 @@
-+/* Double-precision floating point square root.
-+   Copyright (C) 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <math.h>
-+#include <math_private.h>
-+#include <fenv_libc.h>
-+#include <inttypes.h>
-+
-+#include <sysdep.h>
-+#include <ldsodefs.h>
-+
-+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
-+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
-+static const float two108 = 3.245185536584267269e+32;
-+static const float twom54 = 5.551115123125782702e-17;
-+static const float half = 0.5;
-+
-+/* The method is based on the descriptions in:
-+
-+   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
-+   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
-+
-+   We find the actual square root and half of its reciprocal
-+   simultaneously.  */
-+
-+#ifdef __STDC__
-+double
-+__ieee754_sqrt (double b)
-+#else
-+double
-+__ieee754_sqrt (b)
-+     double b;
-+#endif
-+{
-+  if (__builtin_expect (b > 0, 1))
-+    {
-+      double y, g, h, d, r;
-+      ieee_double_shape_type u;
-+
-+      if (__builtin_expect (b != a_inf.value, 1))
-+        {
-+          fenv_t fe;
-+
-+          fe = fegetenv_register ();
-+
-+          u.value = b;
-+
-+          relax_fenv_state ();
-+
-+          __asm__ ("frsqrte %[estimate], %[x]\n"
-+                   : [estimate] "=f" (y) : [x] "f" (b));
-+
-+          /* Following Muller et al, page 168, equation 5.20.
-+
-+             h goes to 1/(2*sqrt(b))
-+             g goes to sqrt(b).
-+
-+             We need three iterations to get within 1ulp.  */
-+
-+          /* Indicate that these can be performed prior to the branch.  GCC
-+             insists on sinking them below the branch, however; it seems like
-+             they'd be better before the branch so that we can cover any latency
-+             from storing the argument and loading its high word.  Oh well.  */
-+
-+          g = b * y;
-+          h = 0.5 * y;
-+
-+          /* Handle small numbers by scaling.  */
-+          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
-+            return __ieee754_sqrt (b * two108) * twom54;
-+
-+#define FMADD(a_, c_, b_)                                               \
-+          ({ double __r;                                                \
-+          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
-+                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+          __r;})
-+#define FNMSUB(a_, c_, b_)                                          \
-+          ({ double __r;                                                \
-+          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
-+                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+          __r;})
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          r = FNMSUB (g, h, half);
-+          g = FMADD (g, r, g);
-+          h = FMADD (h, r, h);
-+
-+          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
-+
-+          /* Final refinement.  */
-+          d = FNMSUB (g, g, b);
-+
-+          fesetenv_register (fe);
-+          return FMADD (d, h, g);
-+        }
-+    }
-+  else if (b < 0)
-+    {
-+      /* For some reason, some PowerPC32 processors don't implement
-+         FE_INVALID_SQRT.  */
-+#ifdef FE_INVALID_SQRT
-+      feraiseexcept (FE_INVALID_SQRT);
-+
-+      fenv_union_t u = { .fenv = fegetenv_register () };
-+      if ((u.l & FE_INVALID) == 0)
-+#endif
-+	feraiseexcept (FE_INVALID);
-+      b = a_nan.value;
-+    }
-+  return f_wash (b);
-+}
-diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
-new file mode 100644
-index 0000000000..26fa067abf
---- /dev/null
-+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
-@@ -0,0 +1,101 @@
-+/* Single-precision floating point square root.
-+   Copyright (C) 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <math.h>
-+#include <math_private.h>
-+#include <fenv_libc.h>
-+#include <inttypes.h>
-+
-+#include <sysdep.h>
-+#include <ldsodefs.h>
-+
-+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
-+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
-+static const float threehalf = 1.5;
-+
-+/* The method is based on the descriptions in:
-+
-+   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
-+   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
-+
-+   We find the reciprocal square root and use that to compute the actual
-+   square root.  */
-+
-+#ifdef __STDC__
-+float
-+__ieee754_sqrtf (float b)
-+#else
-+float
-+__ieee754_sqrtf (b)
-+     float b;
-+#endif
-+{
-+  if (__builtin_expect (b > 0, 1))
-+    {
-+#define FMSUB(a_, c_, b_)                                               \
-+      ({ double __r;                                                    \
-+        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
-+                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+        __r;})
-+#define FNMSUB(a_, c_, b_)                                              \
-+      ({ double __r;                                                    \
-+        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
-+                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
-+        __r;})
-+
-+      if (__builtin_expect (b != a_inf.value, 1))
-+        {
-+          double y, x;
-+          fenv_t fe;
-+
-+          fe = fegetenv_register ();
-+
-+          relax_fenv_state ();
-+
-+          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
-+          y = FMSUB (threehalf, b, b);
-+
-+          /* Initial estimate.  */
-+          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
-+
-+          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
-+          x = x * FNMSUB (y, x * x, threehalf);
-+          x = x * FNMSUB (y, x * x, threehalf);
-+          x = x * FNMSUB (y, x * x, threehalf);
-+
-+          /* All done.  */
-+          fesetenv_register (fe);
-+          return x * b;
-+        }
-+    }
-+  else if (b < 0)
-+    {
-+      /* For some reason, some PowerPC32 processors don't implement
-+         FE_INVALID_SQRT.  */
-+#ifdef FE_INVALID_SQRT
-+      feraiseexcept (FE_INVALID_SQRT);
-+
-+      fenv_union_t u = { .fenv = fegetenv_register () };
-+      if ((u.l & FE_INVALID) == 0)
-+#endif
-+	feraiseexcept (FE_INVALID);
-+      b = a_nan.value;
-+    }
-+  return f_washf (b);
-+}
-diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies
-new file mode 100644
-index 0000000000..b103b4dea5
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies
-@@ -0,0 +1 @@
-+powerpc/powerpc32/603e/fpu
-diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies
-new file mode 100644
-index 0000000000..64db17fada
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies
-@@ -0,0 +1,2 @@
-+# e300c3 is a variant of 603e so use the same optimizations for sqrt
-+powerpc/powerpc32/603e/fpu
-diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies
-new file mode 100644
-index 0000000000..7eac5fcf02
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies
-@@ -0,0 +1 @@
-+powerpc/powerpc32/e500mc/fpu
-diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies
-new file mode 100644
-index 0000000000..264b2a7700
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies
-@@ -0,0 +1 @@
-+powerpc/powerpc32/e5500/fpu
-diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies
-new file mode 100644
-index 0000000000..a25934467b
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies
-@@ -0,0 +1 @@
-+powerpc/powerpc32/e6500/fpu
-diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies
-new file mode 100644
-index 0000000000..a7bc854be8
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies
-@@ -0,0 +1 @@
-+powerpc/powerpc64/e5500/fpu
-diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies
-new file mode 100644
-index 0000000000..04ff8cc181
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies
-@@ -0,0 +1 @@
-+powerpc/powerpc64/e6500/fpu
diff --git a/poky/meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch b/poky/meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch
deleted file mode 100644
index 5c1130c..0000000
--- a/poky/meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch
+++ /dev/null
@@ -1,205 +0,0 @@
-From 5da3da7f2d276c2a6ae1b04419b28e96953803ec Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 18 Mar 2015 00:15:07 +0000
-Subject: [PATCH] ppc/sqrt: Fix undefined reference to `__sqrt_finite'
-
-on ppc fixes the errors like below
-| ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite'
-| collect2: ld returned 1 exit status
-
-Upstream-Status: Pending
-
-ChangeLog
-
-2012-01-06  Khem Raj  <raj.khem@gmail.com>
-
-        * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Add __*_finite alias.
-        Remove cruft.
-        * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Ditto.
-        * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c: Ditto.
-        * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c: Ditto.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c    | 7 +------
- sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c   | 7 +------
- sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c  | 1 +
- sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | 1 +
- sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c   | 1 +
- sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c  | 1 +
- sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c   | 1 +
- sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c  | 1 +
- sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c   | 7 +------
- sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c  | 7 +------
- sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c   | 1 +
- sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c  | 1 +
- 12 files changed, 12 insertions(+), 24 deletions(-)
-
-diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
-index 71e516d1c8..1795fd6c3e 100644
---- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
-+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
-@@ -39,14 +39,8 @@ static const float half = 0.5;
-    We find the actual square root and half of its reciprocal
-    simultaneously.  */
- 
--#ifdef __STDC__
- double
- __ieee754_sqrt (double b)
--#else
--double
--__ieee754_sqrt (b)
--     double b;
--#endif
- {
-   if (__builtin_expect (b > 0, 1))
-     {
-@@ -132,3 +126,4 @@ __ieee754_sqrt (b)
-     }
-   return f_wash (b);
- }
-+strong_alias (__ieee754_sqrt, __sqrt_finite)
-diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
-index 26fa067abf..a917f313ab 100644
---- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
-+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
-@@ -37,14 +37,8 @@ static const float threehalf = 1.5;
-    We find the reciprocal square root and use that to compute the actual
-    square root.  */
- 
--#ifdef __STDC__
- float
- __ieee754_sqrtf (float b)
--#else
--float
--__ieee754_sqrtf (b)
--     float b;
--#endif
- {
-   if (__builtin_expect (b > 0, 1))
-     {
-@@ -99,3 +93,4 @@ __ieee754_sqrtf (b)
-     }
-   return f_washf (b);
- }
-+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
-diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
-index 71e516d1c8..fc4a74990e 100644
---- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
-+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
-@@ -132,3 +132,4 @@ __ieee754_sqrt (b)
-     }
-   return f_wash (b);
- }
-+strong_alias (__ieee754_sqrt, __sqrt_finite)
-diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
-index 26fa067abf..9d175122a8 100644
---- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
-+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
-@@ -99,3 +99,4 @@ __ieee754_sqrtf (b)
-     }
-   return f_washf (b);
- }
-+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
-diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
-index 71e516d1c8..fc4a74990e 100644
---- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
-+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
-@@ -132,3 +132,4 @@ __ieee754_sqrt (b)
-     }
-   return f_wash (b);
- }
-+strong_alias (__ieee754_sqrt, __sqrt_finite)
-diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
-index 26fa067abf..9d175122a8 100644
---- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
-+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
-@@ -99,3 +99,4 @@ __ieee754_sqrtf (b)
-     }
-   return f_washf (b);
- }
-+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
-diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
-index 71e516d1c8..fc4a74990e 100644
---- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
-+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
-@@ -132,3 +132,4 @@ __ieee754_sqrt (b)
-     }
-   return f_wash (b);
- }
-+strong_alias (__ieee754_sqrt, __sqrt_finite)
-diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
-index 26fa067abf..9d175122a8 100644
---- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
-+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
-@@ -99,3 +99,4 @@ __ieee754_sqrtf (b)
-     }
-   return f_washf (b);
- }
-+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
-diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
-index 71e516d1c8..1795fd6c3e 100644
---- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
-+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
-@@ -39,14 +39,8 @@ static const float half = 0.5;
-    We find the actual square root and half of its reciprocal
-    simultaneously.  */
- 
--#ifdef __STDC__
- double
- __ieee754_sqrt (double b)
--#else
--double
--__ieee754_sqrt (b)
--     double b;
--#endif
- {
-   if (__builtin_expect (b > 0, 1))
-     {
-@@ -132,3 +126,4 @@ __ieee754_sqrt (b)
-     }
-   return f_wash (b);
- }
-+strong_alias (__ieee754_sqrt, __sqrt_finite)
-diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
-index 26fa067abf..a917f313ab 100644
---- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
-+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
-@@ -37,14 +37,8 @@ static const float threehalf = 1.5;
-    We find the reciprocal square root and use that to compute the actual
-    square root.  */
- 
--#ifdef __STDC__
- float
- __ieee754_sqrtf (float b)
--#else
--float
--__ieee754_sqrtf (b)
--     float b;
--#endif
- {
-   if (__builtin_expect (b > 0, 1))
-     {
-@@ -99,3 +93,4 @@ __ieee754_sqrtf (b)
-     }
-   return f_washf (b);
- }
-+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
-diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
-index 71e516d1c8..fc4a74990e 100644
---- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
-+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
-@@ -132,3 +132,4 @@ __ieee754_sqrt (b)
-     }
-   return f_wash (b);
- }
-+strong_alias (__ieee754_sqrt, __sqrt_finite)
-diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
-index 26fa067abf..9d175122a8 100644
---- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
-+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
-@@ -99,3 +99,4 @@ __ieee754_sqrtf (b)
-     }
-   return f_washf (b);
- }
-+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
diff --git a/poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
deleted file mode 100644
index b72e790..0000000
--- a/poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
+++ /dev/null
@@ -1,384 +0,0 @@
-From 77f1c90d67a2f8852184fb8fd95cb0ed63065dc7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 18 Mar 2015 00:16:38 +0000
-Subject: [PATCH] __ieee754_sqrt{,f} are now inline functions and call out
- __slow versions
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c    | 12 ++++++++++--
- sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c   |  8 +++++++-
- sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c  | 14 +++++++++++---
- sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | 12 ++++++++++--
- sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c   | 14 +++++++++++---
- sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c  | 12 ++++++++++--
- sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c   |  8 ++++++++
- sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c  |  8 ++++++++
- sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c   | 12 ++++++++++--
- sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c  |  9 ++++++++-
- sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c   | 14 +++++++++++---
- sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c  | 12 ++++++++++--
- 12 files changed, 114 insertions(+), 21 deletions(-)
-
-diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
-index 1795fd6c3e..daa83f3fe8 100644
---- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
-+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
-@@ -40,7 +40,7 @@ static const float half = 0.5;
-    simultaneously.  */
- 
- double
--__ieee754_sqrt (double b)
-+__slow_ieee754_sqrt (double b)
- {
-   if (__builtin_expect (b > 0, 1))
-     {
-@@ -77,7 +77,7 @@ __ieee754_sqrt (double b)
- 
-           /* Handle small numbers by scaling.  */
-           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
--            return __ieee754_sqrt (b * two108) * twom54;
-+            return __slow_ieee754_sqrt (b * two108) * twom54;
- 
- #define FMADD(a_, c_, b_)                                               \
-           ({ double __r;                                                \
-@@ -126,4 +126,12 @@ __ieee754_sqrt (double b)
-     }
-   return f_wash (b);
- }
-+
-+#undef __ieee754_sqrt
-+double
-+__ieee754_sqrt (double x)
-+{
-+   return __slow_ieee754_sqrt (x);
-+}
-+
- strong_alias (__ieee754_sqrt, __sqrt_finite)
-diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
-index a917f313ab..b812cf1705 100644
---- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
-+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
-@@ -38,7 +38,7 @@ static const float threehalf = 1.5;
-    square root.  */
- 
- float
--__ieee754_sqrtf (float b)
-+__slow_ieee754_sqrtf (float b)
- {
-   if (__builtin_expect (b > 0, 1))
-     {
-@@ -93,4 +93,10 @@ __ieee754_sqrtf (float b)
-     }
-   return f_washf (b);
- }
-+#undef __ieee754_sqrtf
-+float
-+__ieee754_sqrtf (float x)
-+{
-+  return __slow_ieee754_sqrtf (x);
-+}
- strong_alias (__ieee754_sqrtf, __sqrtf_finite)
-diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
-index fc4a74990e..7038a70b47 100644
---- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
-+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
-@@ -41,10 +41,10 @@ static const float half = 0.5;
- 
- #ifdef __STDC__
- double
--__ieee754_sqrt (double b)
-+__slow_ieee754_sqrt (double b)
- #else
- double
--__ieee754_sqrt (b)
-+__slow_ieee754_sqrt (b)
-      double b;
- #endif
- {
-@@ -83,7 +83,7 @@ __ieee754_sqrt (b)
- 
-           /* Handle small numbers by scaling.  */
-           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
--            return __ieee754_sqrt (b * two108) * twom54;
-+            return __slow_ieee754_sqrt (b * two108) * twom54;
- 
- #define FMADD(a_, c_, b_)                                               \
-           ({ double __r;                                                \
-@@ -132,4 +132,12 @@ __ieee754_sqrt (b)
-     }
-   return f_wash (b);
- }
-+
-+#undef __ieee754_sqrt
-+double
-+__ieee754_sqrt (double x)
-+{
-+   return __slow_ieee754_sqrt (x);
-+}
-+
- strong_alias (__ieee754_sqrt, __sqrt_finite)
-diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
-index 9d175122a8..10de1f0cc3 100644
---- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
-+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
-@@ -39,10 +39,10 @@ static const float threehalf = 1.5;
- 
- #ifdef __STDC__
- float
--__ieee754_sqrtf (float b)
-+__slow_ieee754_sqrtf (float b)
- #else
- float
--__ieee754_sqrtf (b)
-+__slow_ieee754_sqrtf (b)
-      float b;
- #endif
- {
-@@ -99,4 +99,12 @@ __ieee754_sqrtf (b)
-     }
-   return f_washf (b);
- }
-+
-+#undef __ieee754_sqrtf
-+float
-+__ieee754_sqrtf (float x)
-+{
-+  return __slow_ieee754_sqrtf (x);
-+}
-+
- strong_alias (__ieee754_sqrtf, __sqrtf_finite)
-diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
-index fc4a74990e..7038a70b47 100644
---- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
-+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
-@@ -41,10 +41,10 @@ static const float half = 0.5;
- 
- #ifdef __STDC__
- double
--__ieee754_sqrt (double b)
-+__slow_ieee754_sqrt (double b)
- #else
- double
--__ieee754_sqrt (b)
-+__slow_ieee754_sqrt (b)
-      double b;
- #endif
- {
-@@ -83,7 +83,7 @@ __ieee754_sqrt (b)
- 
-           /* Handle small numbers by scaling.  */
-           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
--            return __ieee754_sqrt (b * two108) * twom54;
-+            return __slow_ieee754_sqrt (b * two108) * twom54;
- 
- #define FMADD(a_, c_, b_)                                               \
-           ({ double __r;                                                \
-@@ -132,4 +132,12 @@ __ieee754_sqrt (b)
-     }
-   return f_wash (b);
- }
-+
-+#undef __ieee754_sqrt
-+double
-+__ieee754_sqrt (double x)
-+{
-+   return __slow_ieee754_sqrt (x);
-+}
-+
- strong_alias (__ieee754_sqrt, __sqrt_finite)
-diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
-index 9d175122a8..10de1f0cc3 100644
---- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
-+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
-@@ -39,10 +39,10 @@ static const float threehalf = 1.5;
- 
- #ifdef __STDC__
- float
--__ieee754_sqrtf (float b)
-+__slow_ieee754_sqrtf (float b)
- #else
- float
--__ieee754_sqrtf (b)
-+__slow_ieee754_sqrtf (b)
-      float b;
- #endif
- {
-@@ -99,4 +99,12 @@ __ieee754_sqrtf (b)
-     }
-   return f_washf (b);
- }
-+
-+#undef __ieee754_sqrtf
-+float
-+__ieee754_sqrtf (float x)
-+{
-+  return __slow_ieee754_sqrtf (x);
-+}
-+
- strong_alias (__ieee754_sqrtf, __sqrtf_finite)
-diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
-index fc4a74990e..1c34244bd8 100644
---- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
-+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
-@@ -132,4 +132,12 @@ __ieee754_sqrt (b)
-     }
-   return f_wash (b);
- }
-+
-+#undef __ieee754_sqrt
-+double
-+__ieee754_sqrt (double x)
-+{
-+   return __slow_ieee754_sqrt (x);
-+}
-+
- strong_alias (__ieee754_sqrt, __sqrt_finite)
-diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
-index 9d175122a8..812653558f 100644
---- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
-+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
-@@ -99,4 +99,12 @@ __ieee754_sqrtf (b)
-     }
-   return f_washf (b);
- }
-+
-+#undef __ieee754_sqrtf
-+float
-+__ieee754_sqrtf (float x)
-+{
-+  return __slow_ieee754_sqrtf (x);
-+}
-+
- strong_alias (__ieee754_sqrtf, __sqrtf_finite)
-diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
-index 1795fd6c3e..13a81973e3 100644
---- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
-+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
-@@ -40,7 +40,7 @@ static const float half = 0.5;
-    simultaneously.  */
- 
- double
--__ieee754_sqrt (double b)
-+__slow_ieee754_sqrt (double b)
- {
-   if (__builtin_expect (b > 0, 1))
-     {
-@@ -77,7 +77,7 @@ __ieee754_sqrt (double b)
- 
-           /* Handle small numbers by scaling.  */
-           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
--            return __ieee754_sqrt (b * two108) * twom54;
-+            return __slow_ieee754_sqrt (b * two108) * twom54;
- 
- #define FMADD(a_, c_, b_)                                               \
-           ({ double __r;                                                \
-@@ -126,4 +126,12 @@ __ieee754_sqrt (double b)
-     }
-   return f_wash (b);
- }
-+
-+#undef __ieee754_sqrt
-+double
-+__ieee754_sqrt (double x)
-+{
-+  return __slow_ieee754_sqrt (x);
-+}
-+
- strong_alias (__ieee754_sqrt, __sqrt_finite)
-diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
-index a917f313ab..fae2d81210 100644
---- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
-+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
-@@ -38,7 +38,7 @@ static const float threehalf = 1.5;
-    square root.  */
- 
- float
--__ieee754_sqrtf (float b)
-+__slow_ieee754_sqrtf (float b)
- {
-   if (__builtin_expect (b > 0, 1))
-     {
-@@ -93,4 +93,11 @@ __ieee754_sqrtf (float b)
-     }
-   return f_washf (b);
- }
-+#undef __ieee754_sqrtf
-+float
-+__ieee754_sqrtf (float x)
-+{
-+  return __slow_ieee754_sqrtf (x);
-+}
-+
- strong_alias (__ieee754_sqrtf, __sqrtf_finite)
-diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
-index fc4a74990e..7038a70b47 100644
---- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
-+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
-@@ -41,10 +41,10 @@ static const float half = 0.5;
- 
- #ifdef __STDC__
- double
--__ieee754_sqrt (double b)
-+__slow_ieee754_sqrt (double b)
- #else
- double
--__ieee754_sqrt (b)
-+__slow_ieee754_sqrt (b)
-      double b;
- #endif
- {
-@@ -83,7 +83,7 @@ __ieee754_sqrt (b)
- 
-           /* Handle small numbers by scaling.  */
-           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
--            return __ieee754_sqrt (b * two108) * twom54;
-+            return __slow_ieee754_sqrt (b * two108) * twom54;
- 
- #define FMADD(a_, c_, b_)                                               \
-           ({ double __r;                                                \
-@@ -132,4 +132,12 @@ __ieee754_sqrt (b)
-     }
-   return f_wash (b);
- }
-+
-+#undef __ieee754_sqrt
-+double
-+__ieee754_sqrt (double x)
-+{
-+   return __slow_ieee754_sqrt (x);
-+}
-+
- strong_alias (__ieee754_sqrt, __sqrt_finite)
-diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
-index 9d175122a8..10de1f0cc3 100644
---- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
-+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
-@@ -39,10 +39,10 @@ static const float threehalf = 1.5;
- 
- #ifdef __STDC__
- float
--__ieee754_sqrtf (float b)
-+__slow_ieee754_sqrtf (float b)
- #else
- float
--__ieee754_sqrtf (b)
-+__slow_ieee754_sqrtf (b)
-      float b;
- #endif
- {
-@@ -99,4 +99,12 @@ __ieee754_sqrtf (b)
-     }
-   return f_washf (b);
- }
-+
-+#undef __ieee754_sqrtf
-+float
-+__ieee754_sqrtf (float x)
-+{
-+  return __slow_ieee754_sqrtf (x);
-+}
-+
- strong_alias (__ieee754_sqrtf, __sqrtf_finite)
diff --git a/poky/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch b/poky/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch
deleted file mode 100644
index 07d4411..0000000
--- a/poky/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From add514edf4299d1bf540d85d0aa0bd5fe0d46b78 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 18 Mar 2015 00:20:09 +0000
-Subject: [PATCH] Quote from bug 1443 which explains what the patch does :
-
-  We build some random program and link it with -lust.  When we run it,
-  it dies with a SIGSEGV before reaching main().
-
-  Libust.so depends on liburcu-bp.so from the usermode-rcu package.
-  Although libust.so is not prelinked, liburcu-bp.so IS prelinked; this
-  is critical.
-
-  Libust.so uses a TLS / __thread variable that is defined in liburcu-
-  bp.so.  There are special ARM-specific relocation types that allow two
-  shared libraries to share thread-specific data.  This is critical too.
-
-  One more critical issue: although liburcu-bp.so is prelinked, we can't
-  load it at its prelinked address, because we also link against
-  librt.so, and librt.so uses that address.
-
-  The dynamic linker is forced to relink liburcu-bp.so at a different
-  address.  In the course of relinking, it processes the special ARM
-  relocation record mentioned above.  The prelinker has already filled
-  in the information, which is a short offset into a table of thread-
-  specific data that is allocated per-thread for each library that uses
-  TLS.  Because the normal behavior of a relocation is to add the symbol
-  value to an addend stored at the address being relocated, we end up
-  adding the short offset to itself, doubling it.
-
-  Now we have an awkward situation.  The libust.so library doesn't know
-  about the addend, so its TLS data for this element is correct.  The
-  liburcu-bp.so library has a different offset for the element.  When we
-  go to initialize the element for the first time in liburcu-bp.so, we
-  write the address of the result at the doubled (broken) offset.
-  Later, when we refer to the address from libust.so, we check the value
-  at the correct offset, but it's NULL, so we eat hot SIGSEGV.
-
-Upstream-Status: Pending
-
-Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- sysdeps/arm/dl-machine.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
-index ff5e09e207..d68bfe5cbe 100644
---- a/sysdeps/arm/dl-machine.h
-+++ b/sysdeps/arm/dl-machine.h
-@@ -510,7 +510,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
- 
- 	case R_ARM_TLS_DTPOFF32:
- 	  if (sym != NULL)
--	    *reloc_addr += sym->st_value;
-+	    *reloc_addr = sym->st_value;
- 	  break;
- 
- 	case R_ARM_TLS_TPOFF32:
diff --git a/poky/meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch b/poky/meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch
deleted file mode 100644
index c2766ef..0000000
--- a/poky/meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From c5047b8f7d1a17324cfa02b99f07a70ebcec2cf2 Mon Sep 17 00:00:00 2001
-From: Ting Liu <b28495@freescale.com>
-Date: Wed, 19 Dec 2012 04:39:57 -0600
-Subject: [PATCH] eglibc: run libm-err-tab.pl with specific dirs in ${S}
-
-libm-err-tab.pl will parse all the files named "libm-test-ulps"
-in the given dir recursively. To avoid parsing the one in
-${S}/.pc/ (it does exist after eglibc adds aarch64 support,
-${S}/.pc/aarch64-0001-glibc-fsf-v1-eaf6f205.patch/ports/sysdeps/
-aarch64/libm-test-ulps), run libm-err-tab.pl with specific dirs
-in ${S}.
-
-Upstream-Status: inappropriate [OE specific]
-
-Signed-off-by: Ting Liu <b28495@freescale.com>
----
- manual/Makefile | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/manual/Makefile b/manual/Makefile
-index e83444341e..aa2645bc55 100644
---- a/manual/Makefile
-+++ b/manual/Makefile
-@@ -103,7 +103,8 @@ $(objpfx)stamp-libm-err: $(..)math/gen-libm-test.py \
- 			 $(wildcard $(foreach dir,$(sysdirs),\
- 						  $(dir)/libm-test-ulps))
- 	pwd=`pwd`; \
--	$(PYTHON) $< -s $$pwd/.. -m $(objpfx)libm-err-tmp
-+	$(PYTHON) $< -s $$pwd/../ports -m $(objpfx)libm-err-tmp
-+	$(PYTHON) $< -s $$pwd/../sysdeps -m $(objpfx)libm-err-tmp
- 	$(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi
- 	touch $@
- 
diff --git a/poky/meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/poky/meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
deleted file mode 100644
index 088b810..0000000
--- a/poky/meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 133870f12ba36686dd8df1311fac32a4c5b28579 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 18 Mar 2015 00:24:46 +0000
-Subject: [PATCH] __ieee754_sqrt{,f} are now inline functions and call out
- __slow versions
-
-Upstream-Status: Pending
-
-Signed-off-by: chunrong guo <B40290@freescale.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c  | 6 +++---
- sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 4 ++--
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
-index 1c34244bd8..7038a70b47 100644
---- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
-+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
-@@ -41,10 +41,10 @@ static const float half = 0.5;
- 
- #ifdef __STDC__
- double
--__ieee754_sqrt (double b)
-+__slow_ieee754_sqrt (double b)
- #else
- double
--__ieee754_sqrt (b)
-+__slow_ieee754_sqrt (b)
-      double b;
- #endif
- {
-@@ -83,7 +83,7 @@ __ieee754_sqrt (b)
- 
-           /* Handle small numbers by scaling.  */
-           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
--            return __ieee754_sqrt (b * two108) * twom54;
-+            return __slow_ieee754_sqrt (b * two108) * twom54;
- 
- #define FMADD(a_, c_, b_)                                               \
-           ({ double __r;                                                \
-diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
-index 812653558f..10de1f0cc3 100644
---- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
-+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
-@@ -39,10 +39,10 @@ static const float threehalf = 1.5;
- 
- #ifdef __STDC__
- float
--__ieee754_sqrtf (float b)
-+__slow_ieee754_sqrtf (float b)
- #else
- float
--__ieee754_sqrtf (b)
-+__slow_ieee754_sqrtf (b)
-      float b;
- #endif
- {
diff --git a/poky/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch b/poky/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch
index e8332a5..1b99af7 100644
--- a/poky/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch
+++ b/poky/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch
@@ -4,7 +4,7 @@
 Subject: [PATCH] sysdeps/gnu/configure.ac: handle correctly
  $libc_cv_rootsbindir
 
-Upstream-Status:Pending
+Upstream-Status: Pending
 
 Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
diff --git a/poky/meta/recipes-core/glibc/glibc/0017-timezone-re-written-tzselect-as-posix-sh.patch b/poky/meta/recipes-core/glibc/glibc/0017-timezone-re-written-tzselect-as-posix-sh.patch
deleted file mode 100644
index 100d085..0000000
--- a/poky/meta/recipes-core/glibc/glibc/0017-timezone-re-written-tzselect-as-posix-sh.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 2731fa0c7463cd160361a8ac92f3bd7f984d953d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 18 Mar 2015 00:33:03 +0000
-Subject: [PATCH] timezone: re-written tzselect as posix sh
-
-To avoid the bash dependency.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- timezone/tzselect.ksh | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh
-index 18fce27e24..7705df83d7 100755
---- a/timezone/tzselect.ksh
-+++ b/timezone/tzselect.ksh
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- # Ask the user about the time zone, and output the resulting TZ value to stdout.
- # Interact with the user via stderr and stdin.
- 
-@@ -34,7 +34,7 @@ REPORT_BUGS_TO=tz@iana.org
- 
- # Specify default values for environment variables if they are unset.
- : ${AWK=awk}
--: ${TZDIR=`pwd`}
-+: ${TZDIR=$(pwd)}
- 
- # Output one argument as-is to standard output.
- # Safer than 'echo', which can mishandle '\' or leading '-'.
diff --git a/poky/meta/recipes-core/glibc/glibc/CVE-2021-43396.patch b/poky/meta/recipes-core/glibc/glibc/CVE-2021-43396.patch
new file mode 100644
index 0000000..ebea5ef
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/CVE-2021-43396.patch
@@ -0,0 +1,184 @@
+From ff012870b2c02a62598c04daa1e54632e020fd7d Mon Sep 17 00:00:00 2001
+From: Nikita Popov <npv1310@gmail.com>
+Date: Tue, 2 Nov 2021 13:21:42 +0500
+Subject: [PATCH] gconv: Do not emit spurious NUL character in ISO-2022-JP-3
+ (bug 28524)
+
+Bugfix 27256 has introduced another issue:
+In conversion from ISO-2022-JP-3 encoding, it is possible
+to force iconv to emit extra NUL character on internal state reset.
+To do this, it is sufficient to feed iconv with escape sequence
+which switches active character set.
+The simplified check 'data->__statep->__count != ASCII_set'
+introduced by the aforementioned bugfix picks that case and
+behaves as if '\0' character has been queued thus emitting it.
+
+To eliminate this issue, these steps are taken:
+* Restore original condition
+'(data->__statep->__count & ~7) != ASCII_set'.
+It is necessary since bits 0-2 may contain
+number of buffered input characters.
+* Check that queued character is not NUL.
+Similar step is taken for main conversion loop.
+
+Bundled test case follows following logic:
+* Try to convert ISO-2022-JP-3 escape sequence
+switching active character set
+* Reset internal state by providing NULL as input buffer
+* Ensure that nothing has been converted.
+
+Signed-off-by: Nikita Popov <npv1310@gmail.com>
+
+CVE: CVE-2021-43396
+Upstream-Status: Backport [ff012870b2c02a62598c04daa1e54632e020fd7d]
+---
+ iconvdata/Makefile        |  5 +++-
+ iconvdata/bug-iconv15.c   | 60 +++++++++++++++++++++++++++++++++++++++
+ iconvdata/iso-2022-jp-3.c | 28 ++++++++++++------
+ 3 files changed, 84 insertions(+), 9 deletions(-)
+ create mode 100644 iconvdata/bug-iconv15.c
+
+Index: git/iconvdata/Makefile
+===================================================================
+--- git.orig/iconvdata/Makefile
++++ git/iconvdata/Makefile
+@@ -1,4 +1,5 @@
+ # Copyright (C) 1997-2021 Free Software Foundation, Inc.
++# Copyright (C) The GNU Toolchain Authors.
+ # This file is part of the GNU C Library.
+ 
+ # The GNU C Library is free software; you can redistribute it and/or
+@@ -74,7 +75,7 @@ ifeq (yes,$(build-shared))
+ tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4 \
+ 	tst-iconv6 bug-iconv5 bug-iconv6 tst-iconv7 bug-iconv8 bug-iconv9 \
+ 	bug-iconv10 bug-iconv11 bug-iconv12 tst-iconv-big5-hkscs-to-2ucs4 \
+-	bug-iconv13 bug-iconv14
++	bug-iconv13 bug-iconv14 bug-iconv15
+ ifeq ($(have-thread-library),yes)
+ tests += bug-iconv3
+ endif
+@@ -327,6 +328,8 @@ $(objpfx)bug-iconv12.out: $(addprefix $(
+ 			  $(addprefix $(objpfx),$(modules.so))
+ $(objpfx)bug-iconv14.out: $(addprefix $(objpfx), $(gconv-modules)) \
+ 			  $(addprefix $(objpfx),$(modules.so))
++$(objpfx)bug-iconv15.out: $(addprefix $(objpfx), $(gconv-modules)) \
++			  $(addprefix $(objpfx),$(modules.so))
+ 
+ $(objpfx)iconv-test.out: run-iconv-test.sh \
+ 			 $(addprefix $(objpfx), $(gconv-modules)) \
+Index: git/iconvdata/bug-iconv15.c
+===================================================================
+--- /dev/null
++++ git/iconvdata/bug-iconv15.c
+@@ -0,0 +1,60 @@
++/* Bug 28524: Conversion from ISO-2022-JP-3 with iconv
++   may emit spurious NUL character on state reset.
++   Copyright (C) The GNU Toolchain Authors.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <stddef.h>
++#include <iconv.h>
++#include <support/check.h>
++
++static int
++do_test (void)
++{
++  char in[] = "\x1b(I";
++  char *inbuf = in;
++  size_t inleft = sizeof (in) - 1;
++  char out[1];
++  char *outbuf = out;
++  size_t outleft = sizeof (out);
++  iconv_t cd;
++
++  cd = iconv_open ("UTF8", "ISO-2022-JP-3");
++  TEST_VERIFY_EXIT (cd != (iconv_t) -1);
++
++  /* First call to iconv should alter internal state.
++     Now, JISX0201_Kana_set is selected and
++     state value != ASCII_set.  */
++  TEST_VERIFY (iconv (cd, &inbuf, &inleft, &outbuf, &outleft) != (size_t) -1);
++
++  /* No bytes should have been added to
++     the output buffer at this point.  */
++  TEST_VERIFY (outbuf == out);
++  TEST_VERIFY (outleft == sizeof (out));
++
++  /* Second call shall emit spurious NUL character in unpatched glibc.  */
++  TEST_VERIFY (iconv (cd, NULL, NULL, &outbuf, &outleft) != (size_t) -1);
++
++  /* No characters are expected to be produced.  */
++  TEST_VERIFY (outbuf == out);
++  TEST_VERIFY (outleft == sizeof (out));
++
++  TEST_VERIFY_EXIT (iconv_close (cd) != -1);
++
++  return 0;
++}
++
++#include <support/test-driver.c>
+Index: git/iconvdata/iso-2022-jp-3.c
+===================================================================
+--- git.orig/iconvdata/iso-2022-jp-3.c
++++ git/iconvdata/iso-2022-jp-3.c
+@@ -1,5 +1,6 @@
+ /* Conversion module for ISO-2022-JP-3.
+    Copyright (C) 1998-2021 Free Software Foundation, Inc.
++   Copyright (C) The GNU Toolchain Authors.
+    This file is part of the GNU C Library.
+    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998,
+    and Bruno Haible <bruno@clisp.org>, 2002.
+@@ -81,20 +82,31 @@ enum
+    the output state to the initial state.  This has to be done during the
+    flushing.  */
+ #define EMIT_SHIFT_TO_INIT \
+-  if (data->__statep->__count != ASCII_set)			      \
++  if ((data->__statep->__count & ~7) != ASCII_set)			      \
+     {									      \
+       if (FROM_DIRECTION)						      \
+ 	{								      \
+-	  if (__glibc_likely (outbuf + 4 <= outend))			      \
++	  uint32_t ch = data->__statep->__count >> 6;			      \
++									      \
++	  if (__glibc_unlikely (ch != 0))				      \
+ 	    {								      \
+-	      /* Write out the last character.  */			      \
+-	      *((uint32_t *) outbuf) = data->__statep->__count >> 6;	      \
+-	      outbuf += sizeof (uint32_t);				      \
+-	      data->__statep->__count = ASCII_set;			\
++	      if (__glibc_likely (outbuf + 4 <= outend))		      \
++		{							      \
++		  /* Write out the last character.  */			      \
++		  put32u (outbuf, ch);					      \
++		  outbuf += 4;						      \
++		  data->__statep->__count &= 7;				      \
++		  data->__statep->__count |= ASCII_set;			      \
++		}							      \
++	      else							      \
++		/* We don't have enough room in the output buffer.  */	      \
++		status = __GCONV_FULL_OUTPUT;				      \
+ 	    }								      \
+ 	  else								      \
+-	    /* We don't have enough room in the output buffer.  */	      \
+-	    status = __GCONV_FULL_OUTPUT;				      \
++	    {								      \
++	      data->__statep->__count &= 7;				      \
++	      data->__statep->__count |= ASCII_set;			      \
++	    }								      \
+ 	}								      \
+       else								      \
+ 	{								      \
diff --git a/poky/meta/recipes-core/glibc/glibc/run-ptest b/poky/meta/recipes-core/glibc/glibc/run-ptest
new file mode 100755
index 0000000..f637986
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/run-ptest
@@ -0,0 +1,37 @@
+#!/bin/sh
+# ptest script for glibc - to run time related tests to
+# facilitate Y2038 validation
+# Run with 'ptest-runner glibc-tests'
+
+output() {
+  retcode=$?
+  if [ $retcode -eq 0 ]
+    then echo "PASS: $i"
+  elif [ $retcode -eq 77 ]
+    then echo "SKIP: $i"
+  else echo "FAIL: $i"
+  fi
+}
+
+# Allow altering time on the target
+export GLIBC_TEST_ALLOW_TIME_SETTING="1"
+
+tst_time64=$(ls -r ${PWD}/tests/glibc-ptest/*-time64)
+
+# Remove '-time64' suffix - those tests are also time
+# related
+tst_time_tmp=$(sed -e "s/-time64$//" <<< ${tst_time64})
+
+# Run tests supporting only 32 bit time
+for i in ${tst_time_tmp}
+do
+	$i >/dev/null 2>&1
+	output
+done
+
+# Run tests supporting only 64 bit time
+for i in ${tst_time64}
+do
+	$i >/dev/null 2>&1
+	output
+done
diff --git a/poky/meta/recipes-core/glibc/glibc_2.34.bb b/poky/meta/recipes-core/glibc/glibc_2.34.bb
index 6dc315c..235fc37 100644
--- a/poky/meta/recipes-core/glibc/glibc_2.34.bb
+++ b/poky/meta/recipes-core/glibc/glibc_2.34.bb
@@ -34,15 +34,8 @@
            file://makedbs.sh \
            \
            ${NATIVESDKFIXES} \
-           file://0009-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch \
-           file://0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \
-           file://0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
-           file://0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch \
-           file://0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \
-           file://0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
            file://0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \
            file://0016-yes-within-the-path-sets-wrong-config-variables.patch \
-           file://0017-timezone-re-written-tzselect-as-posix-sh.patch \
            file://0018-Remove-bash-dependency-for-nscd-init-script.patch \
            file://0019-eglibc-Cross-building-and-testing-instructions.patch \
            file://0020-eglibc-Help-bootstrap-cross-toolchain.patch \
@@ -58,6 +51,12 @@
            file://0001-CVE-2021-38604.patch \
            file://0002-CVE-2021-38604.patch \
            file://0001-fix-create-thread-failed-in-unprivileged-process-BZ-.patch \
+           file://CVE-2021-43396.patch \
+           file://0001-Make-shell-interpreter-overridable-in-tzselect.ksh.patch \
+           file://0001-CVE-2022-23218.patch \
+           file://0002-CVE-2022-23218.patch \
+           file://0001-CVE-2022-23219.patch \
+           file://0002-CVE-2022-23219.patch \
            "
 S = "${WORKDIR}/git"
 B = "${WORKDIR}/build-${TARGET_SYS}"
@@ -89,7 +88,7 @@
 
 EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}"
 
-EXTRA_OECONF:append:x86 = " --enable-cet"
+EXTRA_OECONF:append:x86 = " ${@bb.utils.contains_any('TUNE_FEATURES', 'i586 c3', '--disable-cet', '--enable-cet', d)}"
 EXTRA_OECONF:append:x86-64 = " --enable-cet"
 
 PACKAGECONFIG ??= "nscd memory-tagging"
diff --git a/poky/meta/recipes-core/ifupdown/ifupdown_0.8.36.bb b/poky/meta/recipes-core/ifupdown/ifupdown_0.8.36.bb
index 1d01701..48a7b8f 100644
--- a/poky/meta/recipes-core/ifupdown/ifupdown_0.8.36.bb
+++ b/poky/meta/recipes-core/ifupdown/ifupdown_0.8.36.bb
@@ -7,7 +7,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
-SRC_URI = "git://salsa.debian.org/debian/ifupdown.git;protocol=https \
+SRC_URI = "git://salsa.debian.org/debian/ifupdown.git;protocol=https;branch=master \
            file://defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch \
            file://99_network \
            file://0001-Define-FNM_EXTMATCH-for-musl.patch \
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 94cafdb..b713544 100644
--- a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
+++ b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
@@ -24,8 +24,8 @@
 
 inherit core-image setuptools3
 
-SRCREV ?= "156767d3ed6f044a6b2dd43fc1fea13852e761a2"
-SRC_URI = "git://git.yoctoproject.org/poky;branch=honister \
+SRCREV ?= "9f8e74668730e6eb3eb44df187a40d0a0f8c7b0a"
+SRC_URI = "git://git.yoctoproject.org/poky;branch=master \
            file://Yocto_Build_Appliance.vmx \
            file://Yocto_Build_Appliance.vmxf \
            file://README_VirtualBox_Guest_Additions.txt \
@@ -87,7 +87,7 @@
 
 	# Load tap/tun at startup
 	rm -f ${IMAGE_ROOTFS}/sbin/iptables
-	lnr ${IMAGE_ROOTFS}/usr/sbin/iptables ${IMAGE_ROOTFS}/sbin/iptables
+	ln -rs ${IMAGE_ROOTFS}/usr/sbin/iptables ${IMAGE_ROOTFS}/sbin/iptables
 	echo "tun" >> ${IMAGE_ROOTFS}/etc/modules
 
 	# Use Clearlooks GTK+ theme
@@ -109,6 +109,8 @@
 }
 
 IMAGE_PREPROCESS_COMMAND += "do_populate_poky_src; "
+# For pip usage above
+do_image[network] = "1"
 
 addtask rootfs after do_unpack
 
diff --git a/poky/meta/recipes-core/initscripts/init-system-helpers_1.60.bb b/poky/meta/recipes-core/initscripts/init-system-helpers_1.60.bb
index 165f37c..46952e4 100644
--- a/poky/meta/recipes-core/initscripts/init-system-helpers_1.60.bb
+++ b/poky/meta/recipes-core/initscripts/init-system-helpers_1.60.bb
@@ -17,7 +17,7 @@
 LIC_FILES_CHKSUM = "file://debian/copyright;md5=ee2b1830fcfead84d07bc060ec43e072"
 
 SRCREV = "dbd9197569c0935029acd5c9b02b84c68fd937ee"
-SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https"
+SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch b/poky/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch
index 0772998..94aa3fe 100644
--- a/poky/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch
+++ b/poky/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch
@@ -1,4 +1,4 @@
-From fd9a46695594c3cd836ecb7d959f03f605e69a2f Mon Sep 17 00:00:00 2001
+From 7b2a0cdc281d94a5782c37ef87040c341447b4b4 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Fri, 30 Apr 2021 10:35:02 +0100
 Subject: [PATCH] libxcrypt: Update to 4.4.19 release and fix symbol version
@@ -15,13 +15,13 @@
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
 
 ---
- build-aux/compute-symver-floor | 2 ++
+ build-aux/scripts/compute-symver-floor | 2 ++
  1 file changed, 2 insertions(+)
 
-diff --git a/build-aux/compute-symver-floor b/build-aux/compute-symver-floor
+diff --git a/build-aux/scripts/compute-symver-floor b/build-aux/scripts/compute-symver-floor
 index 4ec82e1..8117342 100644
---- a/build-aux/compute-symver-floor
-+++ b/build-aux/compute-symver-floor
+--- a/build-aux/scripts/compute-symver-floor
++++ b/build-aux/scripts/compute-symver-floor
 @@ -36,6 +36,8 @@ sub preprocessor_check {
          die "C compiler not available\n" unless @CC;
  
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.26.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.27.bb
similarity index 100%
rename from poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.26.bb
rename to poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.27.bb
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt.inc b/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
index ea877bb..725965e 100644
--- a/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
+++ b/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
@@ -3,14 +3,14 @@
 HOMEPAGE = "https://github.com/besser82/libxcrypt"
 SECTION = "libs"
 LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://LICENSING;md5=29c5f9af198623cdce52a77f85695164 \
+LIC_FILES_CHKSUM = "file://LICENSING;md5=c0a30e2b1502c55a7f37e412cd6c6a4b \
                     file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
                     "
 
 inherit autotools pkgconfig
 
-SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH}"
-SRCREV = "8ff7a8c5019cbd50419f7d0a8cd691eb99d6b086"
+SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH};protocol=https"
+SRCREV = "814e715dd8580ff00344112d7d8383a6a5a5b83d"
 SRCBRANCH ?= "develop"
 
 SRC_URI += "file://fix_cflags_handling.patch"
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.26.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.27.bb
similarity index 100%
rename from poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.26.bb
rename to poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.27.bb
diff --git a/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch b/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch
index 90fa193..a5c112d 100644
--- a/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch
+++ b/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch
@@ -5,7 +5,11 @@
 
 binconfig-disabled.bbclass, so port it to use pkg-config instead.
 
-Upstream-Status: Pending
+This cannot be upstreamed, as the original macro supports various
+optional arguments which cannot be supported with a direct call
+to pkg-config.
+
+Upstream-Status: Inappropriate [oe-core specific; see above]
 Signed-off-by: Ross Burton <ross.burton@intel.com>
 
 Rebase to 2.9.9
diff --git a/poky/meta/recipes-core/libxml/libxml2/remove-fuzz-from-ptests.patch b/poky/meta/recipes-core/libxml/libxml2/remove-fuzz-from-ptests.patch
index e80c460..66694af 100644
--- a/poky/meta/recipes-core/libxml/libxml2/remove-fuzz-from-ptests.patch
+++ b/poky/meta/recipes-core/libxml/libxml2/remove-fuzz-from-ptests.patch
@@ -9,6 +9,7 @@
 This patch removes the fuzz testing targets from the Makefile.
 Otherwise, running the ptests will fail due to the invalid directory.
 
+Upstream-Status: Inappropriate [oe specific]
 Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
 ---
  Makefile.am | 5 ++---
diff --git a/poky/meta/recipes-core/libxml/libxml2/runtest.patch b/poky/meta/recipes-core/libxml/libxml2/runtest.patch
index c7a90cd..a89dac8 100644
--- a/poky/meta/recipes-core/libxml/libxml2/runtest.patch
+++ b/poky/meta/recipes-core/libxml/libxml2/runtest.patch
@@ -7,7 +7,7 @@
 
 Signed-off-by: Mihaela Sendrea <mihaela.sendrea@enea.com>
 Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libxml2/-/merge_requests/137]
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
 Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
diff --git a/poky/meta/recipes-core/musl/gcompat_git.bb b/poky/meta/recipes-core/musl/gcompat_git.bb
index 6e5cc11..955cc3c 100644
--- a/poky/meta/recipes-core/musl/gcompat_git.bb
+++ b/poky/meta/recipes-core/musl/gcompat_git.bb
@@ -37,7 +37,7 @@
 	oe_runmake install 'DESTDIR=${D}'
 	if [ "${SITEINFO_BITS}" = "64" ]; then
 		install -d ${D}/lib64
-		lnr ${D}${GLIBC_LDSO} ${D}/lib64/`basename ${GLIBC_LDSO}`
+		ln -rs ${D}${GLIBC_LDSO} ${D}/lib64/`basename ${GLIBC_LDSO}`
 	fi
 }
 
diff --git a/poky/meta/recipes-core/musl/libucontext_git.bb b/poky/meta/recipes-core/musl/libucontext_git.bb
index d8ae824..9061cf0 100644
--- a/poky/meta/recipes-core/musl/libucontext_git.bb
+++ b/poky/meta/recipes-core/musl/libucontext_git.bb
@@ -10,7 +10,7 @@
 
 PV = "1.1+${SRCPV}"
 SRCREV = "335ee864ef6f4a5d4b525453fd9dbfb3507cfecc"
-SRC_URI = "git://github.com/kaniini/libucontext \
+SRC_URI = "git://github.com/kaniini/libucontext;branch=master;protocol=https \
            file://0001-meson-Add-option-to-pass-cpu.patch \
            "
 
diff --git a/poky/meta/recipes-core/musl/musl-obstack.bb b/poky/meta/recipes-core/musl/musl-obstack.bb
index 3003935..74de48c 100644
--- a/poky/meta/recipes-core/musl/musl-obstack.bb
+++ b/poky/meta/recipes-core/musl/musl-obstack.bb
@@ -10,7 +10,7 @@
 
 PV = "1.1"
 SRCREV = "d2ad66b0df44a4b784956f7f7f2717131ddc05f4"
-SRC_URI = "git://github.com/pullmoll/musl-obstack"
+SRC_URI = "git://github.com/pullmoll/musl-obstack;branch=master;protocol=https"
 
 UPSTREAM_CHECK_COMMITS = "1"
 
diff --git a/poky/meta/recipes-core/musl/musl-utils.bb b/poky/meta/recipes-core/musl/musl-utils.bb
index 4f99d43..00d088d 100644
--- a/poky/meta/recipes-core/musl/musl-utils.bb
+++ b/poky/meta/recipes-core/musl/musl-utils.bb
@@ -11,7 +11,7 @@
 PV = "20170421"
 
 SRCREV = "fb5630138ccabbbc14a19d372096a04e42573c7d"
-SRC_URI = "git://github.com/boltlinux/musl-utils"
+SRC_URI = "git://github.com/boltlinux/musl-utils;branch=master;protocol=https"
 
 UPSTREAM_CHECK_COMMITS = "1"
 
diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb
index 06b0e06..50daca1 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 = "3f701faace7addc75d16dea8a6cd769fa5b3f260"
+SRCREV = "b76f37fd5625d038141b52184956fb4b7838e9a5"
 
 BASEVER = "1.2.2"
 
@@ -12,7 +12,7 @@
 
 # mirror is at git://github.com/kraj/musl.git
 
-SRC_URI = "git://git.musl-libc.org/musl \
+SRC_URI = "git://git.musl-libc.org/musl;branch=master \
            file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \
            file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \
           "
@@ -66,7 +66,7 @@
         echo "${base_libdir}" > ${D}${sysconfdir}/ld-musl-${MUSL_LDSO_ARCH}.path
         echo "${libdir}" >> ${D}${sysconfdir}/ld-musl-${MUSL_LDSO_ARCH}.path
 	rm -f ${D}${bindir}/ldd ${D}${GLIBC_LDSO}
-	lnr ${D}${libdir}/libc.so ${D}${bindir}/ldd
+	ln -rs ${D}${libdir}/libc.so ${D}${bindir}/ldd
 }
 
 FILES:${PN} += "/lib/ld-musl-${MUSL_LDSO_ARCH}.so.1 ${sysconfdir}/ld-musl-${MUSL_LDSO_ARCH}.path"
diff --git a/poky/meta/recipes-core/ncurses/ncurses.inc b/poky/meta/recipes-core/ncurses/ncurses.inc
index cbb12ca..a0ecd8a 100644
--- a/poky/meta/recipes-core/ncurses/ncurses.inc
+++ b/poky/meta/recipes-core/ncurses/ncurses.inc
@@ -13,11 +13,12 @@
 inherit autotools binconfig-disabled multilib_header pkgconfig
 
 # Upstream has useful patches at times at ftp://invisible-island.net/ncurses/
-SRC_URI = "git://salsa.debian.org/debian/ncurses.git;protocol=https"
+SRC_URI = "git://salsa.debian.org/debian/ncurses.git;protocol=https;branch=master"
 
 EXTRA_AUTORECONF = "-I m4"
 
 CACHED_CONFIGUREVARS = "cf_cv_func_nanosleep=yes"
+CACHED_CONFIGUREVARS:append:linux = " cf_cv_working_poll=yes"
 
 EXTRASITECONFIG = "CFLAGS='${CFLAGS} -I${SYSROOT_DESTDIR}${includedir}'"
 
@@ -98,10 +99,6 @@
 # patched autoconf213 to generate the configure script. This autoconf
 # is not available so that the shipped script will be used.
 do_configure() {
-        # check does not work with cross-compiling and is generally
-        # broken because it requires stdin to be pollable (which is
-        # not the case for /dev/null redirections)
-        export cf_cv_working_poll=yes
 	#Remove ${includedir} from CPPFLAGS, need for cross compile
 	sed -i 's#-I${cf_includedir}##g' ${S}/configure || die "sed CPPFLAGS"
 
@@ -242,10 +239,9 @@
             mv ${D}${libdir}/libtinfo.so.* ${D}${base_libdir}
             rm ${D}${libdir}/libtinfo.so
 
-            # Use lnr to ensure this is a relative link despite absolute paths
+            # Use ln -rs to ensure this is a relative link despite absolute paths
             # (as we can't know the relationship between base_libdir and libdir).
-            # At some point we can rely on coreutils 8.16 which has ln -r.
-            lnr ${D}${base_libdir}/libtinfo.so.5 ${D}${libdir}/libtinfo.so
+            ln -rs ${D}${base_libdir}/libtinfo.so.5 ${D}${libdir}/libtinfo.so
         fi
         if [ -d "${D}${includedir}/ncurses" ]; then
             for f in `find ${D}${includedir}/ncurses -name "*.h"`
diff --git a/poky/meta/recipes-core/os-release/os-release.bb b/poky/meta/recipes-core/os-release/os-release.bb
index 38ee4f99..637d059 100644
--- a/poky/meta/recipes-core/os-release/os-release.bb
+++ b/poky/meta/recipes-core/os-release/os-release.bb
@@ -12,7 +12,9 @@
 
 # Other valid fields: BUILD_ID ID_LIKE ANSI_COLOR CPE_NAME
 #                     HOME_URL SUPPORT_URL BUG_REPORT_URL
-OS_RELEASE_FIELDS = "ID ID_LIKE NAME VERSION VERSION_ID PRETTY_NAME"
+OS_RELEASE_FIELDS = "\
+    ID ID_LIKE NAME VERSION VERSION_ID PRETTY_NAME DISTRO_CODENAME \
+"
 OS_RELEASE_UNQUOTED_FIELDS = "ID VERSION_ID VARIANT_ID"
 
 ID = "${DISTRO}"
@@ -47,7 +49,7 @@
 do_install () {
     install -d ${D}${nonarch_libdir} ${D}${sysconfdir}
     install -m 0644 os-release ${D}${nonarch_libdir}/
-    lnr ${D}${nonarch_libdir}/os-release ${D}${sysconfdir}/os-release
+    ln -rs ${D}${nonarch_libdir}/os-release ${D}${sysconfdir}/os-release
 }
 
 FILES:${PN} += "${nonarch_libdir}/os-release"
diff --git a/poky/meta/recipes-core/ovmf/ovmf/0004-Strip-build-paths.patch b/poky/meta/recipes-core/ovmf/ovmf/0004-Strip-build-paths.patch
deleted file mode 100644
index dfb8a73..0000000
--- a/poky/meta/recipes-core/ovmf/ovmf/0004-Strip-build-paths.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b7cfe97895e0586d14403ba98e62a0cd9373da96 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 14 Jun 2021 19:55:08 +0200
-Subject: [PATCH 4/6] Strip build paths
-
-Pass --zero to GenFw in release builds so that the sections that link back to
-the intermediate binaries (containing build paths) are removed.
-
-Upstream-Status: Pending (discussion at https://bugzilla.tianocore.org/show_bug.cgi?id=3256)
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- OvmfPkg/OvmfPkgIa32.dsc | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
-index 33fbd76790..06c6d5ce60 100644
---- a/OvmfPkg/OvmfPkgIa32.dsc
-+++ b/OvmfPkg/OvmfPkgIa32.dsc
-@@ -91,6 +91,8 @@
- 

- !include NetworkPkg/NetworkBuildOptions.dsc.inc

- 

-+  RELEASE_*_*_GENFW_FLAGS = --zero

-+

- [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]

-   GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000

-   XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000

--- 
-2.32.0
-
diff --git a/poky/meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch b/poky/meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch
index e467d6f..9e345f4 100644
--- a/poky/meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch
+++ b/poky/meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch
@@ -14,7 +14,7 @@
 Previously we relied on the stripped output being the same which isn't always
 the case if the size of the debug symbols varies.
 
-Upstream-Status: Pending [gcc parts may be upstreamable, nasm patch isn't upstream yet]
+Upstream-Status: Submitted [https://github.com/tianocore/edk2/pull/2202]
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
diff --git a/poky/meta/recipes-core/ovmf/ovmf/0006-reproducible.patch b/poky/meta/recipes-core/ovmf/ovmf/0006-reproducible.patch
index 343c21b..846f408 100644
--- a/poky/meta/recipes-core/ovmf/ovmf/0006-reproducible.patch
+++ b/poky/meta/recipes-core/ovmf/ovmf/0006-reproducible.patch
@@ -24,7 +24,7 @@
    is used, else the output from "GenFw XXX.bin" differs from "GenFw /long/path/XXX.bin"
    with sufficiently long paths
 
-Upstream-Status: Pending [At least some of this might be interesting to upstream]
+Upstream-Status: Submitted [https://github.com/tianocore/edk2/pull/2176]
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
diff --git a/poky/meta/recipes-core/ovmf/ovmf_git.bb b/poky/meta/recipes-core/ovmf/ovmf_git.bb
index ce3b650..9db1514 100644
--- a/poky/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/poky/meta/recipes-core/ovmf/ovmf_git.bb
@@ -19,14 +19,13 @@
            file://0001-ovmf-update-path-to-native-BaseTools.patch \
            file://0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \
            file://0003-ovmf-Update-to-latest.patch \
-           file://0004-Strip-build-paths.patch \
            file://0005-debug-prefix-map.patch \
            file://0006-reproducible.patch \
            file://0001-Fix-VLA-parameter-warning.patch \
            "
 
-PV = "edk2-stable202108"
-SRCREV = "7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5"
+PV = "edk2-stable202111"
+SRCREV = "bb1bba3d776733c41dbfa2d1dc0fe234819a79f2"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)"
 
 inherit deploy
diff --git a/poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb b/poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
index 39e5002..9166a08 100644
--- a/poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
+++ b/poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
@@ -25,7 +25,7 @@
     nativesdk-makedevs \
     nativesdk-cmake \
     nativesdk-meson \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'nativesdk-wayland', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'nativesdk-wayland-tools nativesdk-wayland-dev', '', d)} \
     nativesdk-sdk-provides-dummy \
     nativesdk-bison \
     nativesdk-flex \
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb
index 32f4ac3..2cd67ad 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb
@@ -5,6 +5,9 @@
 
 SUMMARY = "Essential build dependencies"
 
+# libstdc++ gets debian renamed
+PACKAGE_ARCH = "${TUNE_PKGARCH}"
+
 inherit packagegroup
 
 RDEPENDS:packagegroup-core-buildessential = "\
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
index 94405fd..e05e329 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
@@ -18,6 +18,15 @@
 KEXECTOOLS:riscv64 ?= ""
 KEXECTOOLS:riscv32 ?= ""
 
+# go does not support ppc32, only ppc64
+# https://github.com/golang/go/issues/22885
+# gccgo may do better
+GOTOOLS ?= "go-helloworld"
+GOTOOLS:powerpc ?= ""
+GOTOOLS:riscv32 ?= ""
+
+RUSTTOOLS ?= "rust-hello-world"
+
 GSTEXAMPLES ?= "gst-examples"
 GSTEXAMPLES:riscv64 = ""
 
@@ -49,4 +58,6 @@
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11', "${X11TOOLS}", "", d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', "${X11GLTOOLS}", "", d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', '3g', "${3GTOOLS}", "", d)} \
+    ${GOTOOLS} \
+    ${RUSTTOOLS} \
     "
diff --git a/poky/meta/recipes-core/psplash/psplash_git.bb b/poky/meta/recipes-core/psplash/psplash_git.bb
index 28f385b..ca5a1ea 100644
--- a/poky/meta/recipes-core/psplash/psplash_git.bb
+++ b/poky/meta/recipes-core/psplash/psplash_git.bb
@@ -6,11 +6,10 @@
 LIC_FILES_CHKSUM = "file://psplash.h;beginline=1;endline=8;md5=8f232c1e95929eacab37f00900580224"
 DEPENDS = "gdk-pixbuf-native"
 
-SRCREV = "fdbd111d6bab2fbbae62a041123fc6b644aa97aa"
+SRCREV = "44afb7506d43cca15582b4c5b90ba5580344d75d"
 PV = "0.1+git${SRCPV}"
-PR = "r15"
 
-SRC_URI = "git://git.yoctoproject.org/${BPN} \
+SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master \
            file://psplash-init \
            file://psplash-start.service \
            file://psplash-systemd.service \
diff --git a/poky/meta/recipes-core/readline/readline-8.1/rl-native.map b/poky/meta/recipes-core/readline/files/rl-native.map
similarity index 100%
rename from poky/meta/recipes-core/readline/readline-8.1/rl-native.map
rename to poky/meta/recipes-core/readline/files/rl-native.map
diff --git a/poky/meta/recipes-core/readline/readline-8.1/configure-fix.patch b/poky/meta/recipes-core/readline/readline/configure-fix.patch
similarity index 100%
rename from poky/meta/recipes-core/readline/readline-8.1/configure-fix.patch
rename to poky/meta/recipes-core/readline/readline/configure-fix.patch
diff --git a/poky/meta/recipes-core/readline/readline-8.1/norpath.patch b/poky/meta/recipes-core/readline/readline/norpath.patch
similarity index 100%
rename from poky/meta/recipes-core/readline/readline-8.1/norpath.patch
rename to poky/meta/recipes-core/readline/readline/norpath.patch
diff --git a/poky/meta/recipes-core/readline/readline_8.1.2.bb b/poky/meta/recipes-core/readline/readline_8.1.2.bb
new file mode 100644
index 0000000..787f7e7
--- /dev/null
+++ b/poky/meta/recipes-core/readline/readline_8.1.2.bb
@@ -0,0 +1,7 @@
+require readline.inc
+
+SRC_URI += "file://configure-fix.patch \
+           file://norpath.patch \
+           "
+
+SRC_URI[archive.sha256sum] = "7589a2381a8419e68654a47623ce7dfcb756815c8fee726b98f90bf668af7bc6"
diff --git a/poky/meta/recipes-core/readline/readline_8.1.bb b/poky/meta/recipes-core/readline/readline_8.1.bb
deleted file mode 100644
index 0786a08..0000000
--- a/poky/meta/recipes-core/readline/readline_8.1.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require readline.inc
-
-SRC_URI += "file://configure-fix.patch \
-            file://norpath.patch"
-
-SRC_URI[archive.md5sum] = "e9557dd5b1409f5d7b37ef717c64518e"
-SRC_URI[archive.sha256sum] = "f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02"
diff --git a/poky/meta/recipes-core/systemd/systemd-boot_249.5.bb b/poky/meta/recipes-core/systemd/systemd-boot_249.5.bb
deleted file mode 100644
index b3d4e31..0000000
--- a/poky/meta/recipes-core/systemd/systemd-boot_249.5.bb
+++ /dev/null
@@ -1,74 +0,0 @@
-require systemd.inc
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:"
-
-require conf/image-uefi.conf
-
-DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native python3-jinja2-native"
-
-inherit meson pkgconfig gettext
-inherit deploy
-
-LDFLAGS:prepend = "${@ " ".join(d.getVar('LD').split()[1:])} "
-
-do_write_config[vardeps] += "CC OBJCOPY"
-do_write_config:append() {
-    cat >${WORKDIR}/meson-${PN}.cross <<EOF
-[binaries]
-efi_cc = ${@meson_array('CC', d)}
-objcopy = ${@meson_array('OBJCOPY', d)}
-EOF
-}
-
-# need to use ${HOST_PREFIX} here, otherwise ld.bfd could be used from HOSTTOOLS_NONFATAL
-EFI_LD = "${HOST_PREFIX}ld.bfd"
-
-EXTRA_OEMESON += "-Defi=true \
-                  -Dgnu-efi=true \
-                  -Defi-includedir=${STAGING_INCDIR}/efi \
-                  -Defi-libdir=${STAGING_LIBDIR} \
-                  -Defi-ld=${EFI_LD} \
-                  -Dman=false \
-                  --cross-file ${WORKDIR}/meson-${PN}.cross \
-                  "
-
-# install to the image as boot*.efi if its the EFI_PROVIDER,
-# otherwise install as the full name.
-# This allows multiple bootloaders to coexist in a single image.
-python __anonymous () {
-    import re
-    target = d.getVar('TARGET_ARCH')
-    prefix = "" if d.getVar('EFI_PROVIDER') == "systemd-boot" else "systemd-"
-    systemdimage = prefix + d.getVar("EFI_BOOT_IMAGE")
-    d.setVar("SYSTEMD_BOOT_IMAGE", systemdimage)
-    prefix = "systemd-" if prefix == "" else ""
-    d.setVar("SYSTEMD_BOOT_IMAGE_PREFIX", prefix)
-}
-
-FILES:${PN} = "${EFI_FILES_PATH}/${SYSTEMD_BOOT_IMAGE}"
-
-RDEPENDS:${PN} += "virtual-systemd-bootconf"
-
-# Imported from the old gummiboot recipe
-TUNE_CCARGS:remove = "-mfpmath=sse"
-
-COMPATIBLE_HOST = "(aarch64.*|arm.*|x86_64.*|i.86.*)-linux"
-COMPATIBLE_HOST:x86-x32 = "null"
-
-do_compile() {
-	ninja \
-		src/boot/efi/${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE} \
-		src/boot/efi/linux${EFI_ARCH}.efi.stub
-}
-
-do_install() {
-	install -d ${D}${EFI_FILES_PATH}
-	install ${B}/src/boot/efi/systemd-boot*.efi ${D}${EFI_FILES_PATH}/${SYSTEMD_BOOT_IMAGE}
-}
-
-do_deploy () {
-	install ${B}/src/boot/efi/systemd-boot*.efi ${DEPLOYDIR}
-	install ${B}/src/boot/efi/linux*.efi.stub ${DEPLOYDIR}
-}
-
-addtask deploy before do_build after do_compile
-
diff --git a/poky/meta/recipes-core/systemd/systemd-boot_250.3.bb b/poky/meta/recipes-core/systemd/systemd-boot_250.3.bb
new file mode 100644
index 0000000..23a64bf
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd-boot_250.3.bb
@@ -0,0 +1,74 @@
+require systemd.inc
+FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:"
+
+require conf/image-uefi.conf
+
+DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native python3-jinja2-native"
+
+inherit meson pkgconfig gettext
+inherit deploy
+
+LDFLAGS:prepend = "${@ " ".join(d.getVar('LD').split()[1:])} "
+
+do_write_config[vardeps] += "CC OBJCOPY"
+do_write_config:append() {
+    cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+efi_cc = ${@meson_array('CC', d)}
+objcopy = ${@meson_array('OBJCOPY', d)}
+EOF
+}
+
+# need to use ${HOST_PREFIX} here, otherwise ld.bfd could be used from HOSTTOOLS_NONFATAL
+EFI_LD = "bfd"
+
+EXTRA_OEMESON += "-Defi=true \
+                  -Dgnu-efi=true \
+                  -Defi-includedir=${STAGING_INCDIR}/efi \
+                  -Defi-libdir=${STAGING_LIBDIR} \
+                  -Defi-ld=${EFI_LD} \
+                  -Dman=false \
+                  --cross-file ${WORKDIR}/meson-${PN}.cross \
+                  "
+
+# install to the image as boot*.efi if its the EFI_PROVIDER,
+# otherwise install as the full name.
+# This allows multiple bootloaders to coexist in a single image.
+python __anonymous () {
+    import re
+    target = d.getVar('TARGET_ARCH')
+    prefix = "" if d.getVar('EFI_PROVIDER') == "systemd-boot" else "systemd-"
+    systemdimage = prefix + d.getVar("EFI_BOOT_IMAGE")
+    d.setVar("SYSTEMD_BOOT_IMAGE", systemdimage)
+    prefix = "systemd-" if prefix == "" else ""
+    d.setVar("SYSTEMD_BOOT_IMAGE_PREFIX", prefix)
+}
+
+FILES:${PN} = "${EFI_FILES_PATH}/${SYSTEMD_BOOT_IMAGE}"
+
+RDEPENDS:${PN} += "virtual-systemd-bootconf"
+
+# Imported from the old gummiboot recipe
+TUNE_CCARGS:remove = "-mfpmath=sse"
+
+COMPATIBLE_HOST = "(aarch64.*|arm.*|x86_64.*|i.86.*)-linux"
+COMPATIBLE_HOST:x86-x32 = "null"
+
+do_compile() {
+	ninja \
+		src/boot/efi/${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE} \
+		src/boot/efi/linux${EFI_ARCH}.efi.stub
+}
+
+do_install() {
+	install -d ${D}${EFI_FILES_PATH}
+	install ${B}/src/boot/efi/systemd-boot*.efi ${D}${EFI_FILES_PATH}/${SYSTEMD_BOOT_IMAGE}
+}
+
+do_deploy () {
+	install ${B}/src/boot/efi/systemd-boot*.efi ${DEPLOYDIR}
+	install ${B}/src/boot/efi/linux*.efi.stub ${DEPLOYDIR}
+}
+
+addtask deploy before do_build after do_compile
+
diff --git a/poky/meta/recipes-core/systemd/systemd-conf_1.0.bb b/poky/meta/recipes-core/systemd/systemd-conf_1.0.bb
index 53af7c6..61ce793 100644
--- a/poky/meta/recipes-core/systemd/systemd-conf_1.0.bb
+++ b/poky/meta/recipes-core/systemd/systemd-conf_1.0.bb
@@ -21,7 +21,7 @@
 do_install() {
 	install -D -m0644 ${WORKDIR}/journald.conf ${D}${systemd_unitdir}/journald.conf.d/00-${PN}.conf
 	install -D -m0644 ${WORKDIR}/logind.conf ${D}${systemd_unitdir}/logind.conf.d/00-${PN}.conf
-	install -D -m0644 ${WORKDIR}/system.conf ${D}${systemd_system_unitdir}.conf.d/00-${PN}.conf
+	install -D -m0644 ${WORKDIR}/system.conf ${D}${systemd_unitdir}/system.conf.d/00-${PN}.conf
 
         if ${@bb.utils.contains('PACKAGECONFIG', 'dhcp-ethernet', 'true', 'false', d)}; then
 		install -D -m0644 ${WORKDIR}/wired.network ${D}${systemd_unitdir}/network/80-wired.network
@@ -30,7 +30,7 @@
 
 # Based on change from YP bug 8141, OE commit 5196d7bacaef1076c361adaa2867be31759c1b52
 do_install:append:qemuall() {
-	install -D -m0644 ${WORKDIR}/system.conf-qemuall ${D}${systemd_system_unitdir}.conf.d/01-${PN}.conf
+	install -D -m0644 ${WORKDIR}/system.conf-qemuall ${D}${systemd_unitdir}/system.conf.d/01-${PN}.conf
 }
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -38,6 +38,6 @@
 FILES:${PN} = "\
     ${systemd_unitdir}/journald.conf.d/ \
     ${systemd_unitdir}/logind.conf.d/ \
-    ${systemd_system_unitdir}.conf.d/ \
+    ${systemd_unitdir}/system.conf.d/ \
     ${systemd_unitdir}/network/ \
 "
diff --git a/poky/meta/recipes-core/systemd/systemd.inc b/poky/meta/recipes-core/systemd/systemd.inc
index 53ffe8d..9a460c1 100644
--- a/poky/meta/recipes-core/systemd/systemd.inc
+++ b/poky/meta/recipes-core/systemd/systemd.inc
@@ -14,9 +14,10 @@
 LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
                     file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
 
-SRCREV = "00b0393e65252bf631670604f58b844780b08c50"
-SRCBRANCH = "v249-stable"
-SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH} \
-"
+SRCREV = "1b003bbc806198dbdd57b405d968f30565495e70"
+SRCBRANCH = "v250-stable"
+SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \
+           file://0001-src-fundamental-list-fundamental_source_paths-using-.patch \
+           "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch
index d3af734..330ad49 100644
--- a/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch
@@ -1,4 +1,4 @@
-From 08cd165f5db0e68a499b80c4b1744a4206948259 Mon Sep 17 00:00:00 2001
+From f9974d7dc289551bfbf823b716fd32b43c54e465 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Thu, 21 Feb 2019 16:23:24 +0800
 Subject: [PATCH] binfmt: Don't install dependency links at install time for
@@ -26,10 +26,10 @@
  3 files changed, 9 insertions(+), 4 deletions(-)
 
 diff --git a/units/meson.build b/units/meson.build
-index 17e9ead9c1..e5502be620 100644
+index a9bf28f6d9..11d3644168 100644
 --- a/units/meson.build
 +++ b/units/meson.build
-@@ -59,8 +59,7 @@ units = [
+@@ -63,8 +63,7 @@ units = [
          ['poweroff.target',                     '',
           (with_runlevels ? 'runlevel0.target' : '')],
          ['printer.target',                      ''],
@@ -39,14 +39,14 @@
          ['proc-sys-fs-binfmt_misc.mount',       'ENABLE_BINFMT'],
          ['reboot.target',                       '',
           'ctrl-alt-del.target' + (with_runlevels ? ' runlevel6.target' : '')],
-@@ -178,8 +177,7 @@ in_units = [
+@@ -184,8 +183,7 @@ in_units = [
          ['rescue.service',                       ''],
          ['serial-getty@.service',                ''],
          ['systemd-backlight@.service',           'ENABLE_BACKLIGHT'],
 -        ['systemd-binfmt.service',               'ENABLE_BINFMT',
 -         'sysinit.target.wants/'],
 +        ['systemd-binfmt.service',               'ENABLE_BINFMT'],
-         ['systemd-bless-boot.service',           'ENABLE_EFI HAVE_BLKID'],
+         ['systemd-bless-boot.service',           'HAVE_GNU_EFI HAVE_BLKID'],
          ['systemd-boot-check-no-failures.service', ''],
          ['systemd-coredump@.service',            'ENABLE_COREDUMP'],
 diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount
@@ -61,7 +61,7 @@
 +[Install]
 +WantedBy=sysinit.target
 diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in
-index fdafce7ff7..4efc05e495 100644
+index 96f595ad72..7c010bb224 100644
 --- a/units/systemd-binfmt.service.in
 +++ b/units/systemd-binfmt.service.in
 @@ -14,6 +14,7 @@ Documentation=https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.htm
@@ -71,8 +71,8 @@
 +Wants=proc-sys-fs-binfmt_misc.automount
  After=proc-sys-fs-binfmt_misc.automount
  After=proc-sys-fs-binfmt_misc.mount
- Before=sysinit.target shutdown.target
-@@ -30,3 +31,6 @@ RemainAfterExit=yes
+ After=local-fs.target
+@@ -31,3 +32,6 @@ RemainAfterExit=yes
  ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt
  ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister
  TimeoutSec=90s
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-meson-use-partial_dependency-to-get-include-director.patch b/poky/meta/recipes-core/systemd/systemd/0001-meson-use-partial_dependency-to-get-include-director.patch
deleted file mode 100644
index 51ee5d8..0000000
--- a/poky/meta/recipes-core/systemd/systemd/0001-meson-use-partial_dependency-to-get-include-director.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 260e871fda979f040c94d2011545e8122bed68ca Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Mon, 18 Oct 2021 10:13:07 +0200
-Subject: [PATCH] meson: use partial_dependency() to get include directory
-
-Getting the variable directly from pkg-config is prone to host
-contamination when building in sysroots as the
-compiler starts looking for the headers on the host in addition to
-the sysroot.
-
-Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/21027]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- meson.build | 9 ++++-----
- 1 file changed, 4 insertions(+), 5 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index df53c6156d..38fb37dd75 100644
---- a/meson.build
-+++ b/meson.build
-@@ -2618,18 +2618,17 @@ endif
- 
- if conf.get('ENABLE_LOCALED') == 1
-         if conf.get('HAVE_XKBCOMMON') == 1
--                # logind will load libxkbcommon.so dynamically on its own
--                deps = [libdl]
--                extra_includes = [libxkbcommon.get_pkgconfig_variable('includedir')]
-+                # logind will load libxkbcommon.so dynamically on its own, but we still
-+                # need to specify where the headers are
-+                deps = [libdl, libxkbcommon.partial_dependency(compile_args: true)]
-         else
-                 deps = []
--                extra_includes = []
-         endif
- 
-         executable(
-                 'systemd-localed',
-                 systemd_localed_sources,
--                include_directories : includes + extra_includes,
-+                include_directories : includes,
-                 link_with : [libshared],
-                 dependencies : deps,
-                 install_rpath : rootlibexecdir,
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-src-fundamental-list-fundamental_source_paths-using-.patch b/poky/meta/recipes-core/systemd/systemd/0001-src-fundamental-list-fundamental_source_paths-using-.patch
new file mode 100644
index 0000000..1d08874
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd/0001-src-fundamental-list-fundamental_source_paths-using-.patch
@@ -0,0 +1,28 @@
+From 8e882df78ede98c15a3f2567fabebfde1d774b02 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 7 Jan 2022 21:20:15 +0100
+Subject: [PATCH] src/fundamental: list fundamental_source_paths using relative
+ paths
+
+Otherwise, the compiler takes the full path to the source file
+and writes it into the binary output, breaking reproducibility.
+
+Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/22047]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ src/fundamental/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/fundamental/meson.build b/src/fundamental/meson.build
+index 287f0fe36a..954bdf150b 100644
+--- a/src/fundamental/meson.build
++++ b/src/fundamental/meson.build
+@@ -20,7 +20,7 @@ sources = '''
+ # for sd-boot
+ fundamental_source_paths = []
+ foreach source : sources
+-        fundamental_source_paths += meson.current_source_dir() / source
++        fundamental_source_paths += '../../fundamental/' + source
+ endforeach
+ 
+ # for libbasic
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-test-parse-argument-Include-signal.h.patch b/poky/meta/recipes-core/systemd/systemd/0001-test-parse-argument-Include-signal.h.patch
index 3af1daa..898e8af 100644
--- a/poky/meta/recipes-core/systemd/systemd/0001-test-parse-argument-Include-signal.h.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0001-test-parse-argument-Include-signal.h.patch
@@ -1,4 +1,4 @@
-From 1adde6721ead386ccee6efe48038d6944b96319a Mon Sep 17 00:00:00 2001
+From 93c7e482d39cf7765974b3c729d29c1b120a60e3 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 24 May 2021 18:26:27 -0700
 Subject: [PATCH] test-parse-argument: Include signal.h
@@ -8,22 +8,20 @@
 
 Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/19718]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  src/test/test-parse-argument.c | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/src/test/test-parse-argument.c b/src/test/test-parse-argument.c
-index 4081a9f25a..820d69f092 100644
+index cf3d54288a..15104e5282 100644
 --- a/src/test/test-parse-argument.c
 +++ b/src/test/test-parse-argument.c
-@@ -3,6 +3,7 @@
+@@ -5,6 +5,7 @@
  #include "parse-argument.h"
  #include "stdio-util.h"
  #include "tests.h"
 +#include <signal.h>
  
- static void test_parse_json_argument(void) {
-         log_info("/* %s */", __func__);
--- 
-2.31.1
-
+ TEST(parse_json_argument) {
+         JsonFormatFlags flags = JSON_FORMAT_PRETTY;
diff --git a/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch b/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
index f233ee6..d03a1d9 100644
--- a/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
@@ -1,4 +1,4 @@
-From 30bd749c6777701496124272b59e1283252c3267 Mon Sep 17 00:00:00 2001
+From 5d730902f47498a2866b46875352f6810a01d67c Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 13:41:41 +0800
 Subject: [PATCH] don't use glibc-specific qsort_r
diff --git a/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch b/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
index a51ab0a..eca52d0 100644
--- a/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
@@ -1,4 +1,4 @@
-From 4dba0a3b1372ce34d8b6e150a108123a1b2b0b96 Mon Sep 17 00:00:00 2001
+From 3b42a888685aee1776a12cff84a5fe0063378483 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 13:55:12 +0800
 Subject: [PATCH] missing_type.h: add __compare_fn_t and comparison_fn_t
diff --git a/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch b/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
index 3c07f60..40ee43b 100644
--- a/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
@@ -1,4 +1,4 @@
-From 842d231165f0d564c51d93650820e4fa7f097c3e Mon Sep 17 00:00:00 2001
+From 3e0df2c22bfd37bc62bf09a01ec498e40d3599de Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Sat, 22 May 2021 20:26:24 +0200
 Subject: [PATCH] add fallback parse_printf_format implementation
@@ -23,7 +23,7 @@
  create mode 100644 src/basic/parse-printf-format.h
 
 diff --git a/meson.build b/meson.build
-index b5a51b6d0d..11cf56efee 100644
+index 5bdfd9753d..3421da3a4d 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -656,6 +656,7 @@ endif
diff --git a/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch b/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
index 1b9e194..efdd437 100644
--- a/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
@@ -1,4 +1,4 @@
-From 95c61768e1f8d76a7bd28355429fc4b7b428ad61 Mon Sep 17 00:00:00 2001
+From cef23a651ea200e30e1e6ed2a2564505e3a42d46 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 14:18:21 +0800
 Subject: [PATCH] src/basic/missing.h: check for missing strndupa
@@ -73,7 +73,7 @@
  51 files changed, 62 insertions(+)
 
 diff --git a/meson.build b/meson.build
-index 11cf56efee..5bd6602e03 100644
+index 3421da3a4d..ddef6fba91 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -480,6 +480,7 @@ foreach ident : ['secure_getenv', '__secure_getenv']
@@ -165,7 +165,7 @@
  int mkdir_safe_internal(
                  const char *path,
 diff --git a/src/basic/mountpoint-util.c b/src/basic/mountpoint-util.c
-index e7a5a99551..3cc157f248 100644
+index 7e57d9a226..c0e64f2aca 100644
 --- a/src/basic/mountpoint-util.c
 +++ b/src/basic/mountpoint-util.c
 @@ -11,6 +11,7 @@
@@ -297,7 +297,7 @@
  int bus_property_get_triggered_unit(
                  sd_bus *bus,
 diff --git a/src/core/execute.c b/src/core/execute.c
-index 2a337b55a2..2a64675c5f 100644
+index 2f2de4d9cf..515b2fe748 100644
 --- a/src/core/execute.c
 +++ b/src/core/execute.c
 @@ -98,6 +98,7 @@
@@ -321,7 +321,7 @@
  #if HAVE_KMOD
  #include "module-util.h"
 diff --git a/src/core/service.c b/src/core/service.c
-index 701c145565..4ddc20ed7e 100644
+index 7b90822f68..4af076eeba 100644
 --- a/src/core/service.c
 +++ b/src/core/service.c
 @@ -41,6 +41,7 @@
@@ -393,7 +393,7 @@
  static int node_vtable_get_userdata(
                  sd_bus *bus,
 diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c
-index 378774fe8b..2694c177d5 100644
+index 09eb49c37f..82f1b3d1be 100644
 --- a/src/libsystemd/sd-bus/bus-socket.c
 +++ b/src/libsystemd/sd-bus/bus-socket.c
 @@ -27,6 +27,7 @@
@@ -405,7 +405,7 @@
  #define SNDBUF_SIZE (8*1024*1024)
  
 diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
-index a32e2f5e20..97fd3aec82 100644
+index ab8d4e4a60..7e35fbe9e6 100644
 --- a/src/libsystemd/sd-bus/sd-bus.c
 +++ b/src/libsystemd/sd-bus/sd-bus.c
 @@ -42,6 +42,7 @@
@@ -669,7 +669,7 @@
  _printf_(2,3)
  static void path_prepend(char **path, const char *fmt, ...) {
 diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
-index b28089be71..a7e2232299 100644
+index 9854270b27..71b5fab1e7 100644
 --- a/src/udev/udev-event.c
 +++ b/src/udev/udev-event.c
 @@ -34,6 +34,7 @@
diff --git a/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch b/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch
index 951bebc..3875753 100644
--- a/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch
@@ -1,4 +1,4 @@
-From f95192d87a46a2191cf4ebd47c64e04b138d7fac Mon Sep 17 00:00:00 2001
+From a3be3b7160856ffb8259ede9e2e0168d74bf126e Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Thu, 26 Oct 2017 22:10:42 -0700
 Subject: [PATCH] Include netinet/if_ether.h
@@ -103,7 +103,7 @@
 -#endif /* _UAPI_LINUX_IN6_H */
 +#endif /* _LINUX_IN6_H */
 diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
-index f99c12620b..4966d62656 100644
+index efbf7d7df3..86906332b6 100644
 --- a/src/libsystemd-network/sd-dhcp6-client.c
 +++ b/src/libsystemd-network/sd-dhcp6-client.c
 @@ -5,7 +5,6 @@
@@ -300,7 +300,7 @@
  #include <netinet/in.h>
  #include <linux/netdevice.h>
 diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c
-index 791fd64c39..a2825c920d 100644
+index eeba31c45d..0a2b0ed42b 100644
 --- a/src/network/networkd-route.c
 +++ b/src/network/networkd-route.c
 @@ -1,5 +1,6 @@
diff --git a/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch b/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
index 46d0c7a..1d8c481 100644
--- a/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
@@ -1,4 +1,4 @@
-From 9c0d0b61ffa4019b299e4c47f376ae823879dbf3 Mon Sep 17 00:00:00 2001
+From fb068403b25002156435350165ea418a6338a313 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 14:56:21 +0800
 Subject: [PATCH] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not defined
diff --git a/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch b/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
index 9540f96..c613581 100644
--- a/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
@@ -1,4 +1,4 @@
-From 45b78e3dc3edead4fc9883dd5a9877f473367bf7 Mon Sep 17 00:00:00 2001
+From 7ca9887f84adba065dc2e59b3de55ace2fc72ec0 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:00:06 +0800
 Subject: [PATCH] add missing FTW_ macros for musl
@@ -10,6 +10,7 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
 ---
  src/basic/missing_type.h | 20 ++++++++++++++++++++
  src/shared/mount-setup.c |  1 +
diff --git a/poky/meta/recipes-core/systemd/systemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch b/poky/meta/recipes-core/systemd/systemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
index 35d24b3..0fc3204 100644
--- a/poky/meta/recipes-core/systemd/systemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
@@ -1,4 +1,4 @@
-From 943b4258b870c65caaa56fe4dad0d9c7281fdb1d Mon Sep 17 00:00:00 2001
+From c7453b716ae308b89cf4b2b231a36ddd38a49752 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:03:47 +0800
 Subject: [PATCH] fix missing of __register_atfork for non-glibc builds
@@ -12,7 +12,7 @@
  1 file changed, 7 insertions(+)
 
 diff --git a/src/basic/process-util.c b/src/basic/process-util.c
-index 14259ea8df..18681838ef 100644
+index 461bbfe9a5..2d06f9f60a 100644
 --- a/src/basic/process-util.c
 +++ b/src/basic/process-util.c
 @@ -18,6 +18,9 @@
diff --git a/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch b/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
index a0d8402..ff981b8 100644
--- a/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
@@ -1,4 +1,4 @@
-From cceb2bba69b371868e89d435c5406b67cdd84d57 Mon Sep 17 00:00:00 2001
+From 856010e268a6aca8e5f02502457afe289bd877f1 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:12:41 +0800
 Subject: [PATCH] Use uintmax_t for handling rlim_t
@@ -87,10 +87,10 @@
          return 1;
  }
 diff --git a/src/core/execute.c b/src/core/execute.c
-index 2a64675c5f..dca1e0e3b6 100644
+index 515b2fe748..7693f2d9a0 100644
 --- a/src/core/execute.c
 +++ b/src/core/execute.c
-@@ -5391,9 +5391,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
+@@ -5395,9 +5395,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
          for (unsigned i = 0; i < RLIM_NLIMITS; i++)
                  if (c->rlimit[i]) {
                          fprintf(f, "%sLimit%s: " RLIM_FMT "\n",
diff --git a/poky/meta/recipes-core/systemd/systemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch b/poky/meta/recipes-core/systemd/systemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
index 1aee0fd..0ee871c 100644
--- a/poky/meta/recipes-core/systemd/systemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
@@ -1,4 +1,4 @@
-From c1ee5661fa24bf540a4880a9d528da8752be033b Mon Sep 17 00:00:00 2001
+From ad395dda5db9b1ae156be121cfc8a38960de6c55 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Wed, 28 Feb 2018 21:25:22 -0800
 Subject: [PATCH] test-sizeof.c: Disable tests for missing typedefs in musl
diff --git a/poky/meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/poky/meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
index fefa6cb..12a92b8 100644
--- a/poky/meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
@@ -1,4 +1,4 @@
-From ca9b1277fb4eb89bc2ca92440a280e318e882b66 Mon Sep 17 00:00:00 2001
+From 5d4c6b2f4b88b69b31f967371d2a6136c65dc3fd Mon Sep 17 00:00:00 2001
 From: Andre McCurdy <armccurdy@gmail.com>
 Date: Tue, 10 Oct 2017 14:33:30 -0700
 Subject: [PATCH] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
diff --git a/poky/meta/recipes-core/systemd/systemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch b/poky/meta/recipes-core/systemd/systemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
index f9f3af1..bd7a0c4 100644
--- a/poky/meta/recipes-core/systemd/systemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
@@ -1,4 +1,4 @@
-From 792f4718ebd5a156729be89a5b47e52dc4b62975 Mon Sep 17 00:00:00 2001
+From 1803ea271b93370fdcf7ec497277344f1e775429 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sun, 27 May 2018 08:36:44 -0700
 Subject: [PATCH] Define glibc compatible basename() for non-glibc systems
diff --git a/poky/meta/recipes-core/systemd/systemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/poky/meta/recipes-core/systemd/systemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
index fb901e6..7933b9e 100644
--- a/poky/meta/recipes-core/systemd/systemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
@@ -1,4 +1,4 @@
-From 101f5ceea7e575622c4f07d2972aeb4d6b082e4b Mon Sep 17 00:00:00 2001
+From 30b08f76ea7f5c324afedf97f0867b76dac9f128 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Wed, 4 Jul 2018 15:00:44 +0800
 Subject: [PATCH] Do not disable buffering when writing to oom_score_adj
@@ -25,7 +25,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/basic/process-util.c b/src/basic/process-util.c
-index 18681838ef..0fa71ccce0 100644
+index 2d06f9f60a..f86bd0b7dc 100644
 --- a/src/basic/process-util.c
 +++ b/src/basic/process-util.c
 @@ -1606,7 +1606,7 @@ int set_oom_score_adjust(int value) {
diff --git a/poky/meta/recipes-core/systemd/systemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/poky/meta/recipes-core/systemd/systemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
index ece115d..0b0d2a6 100644
--- a/poky/meta/recipes-core/systemd/systemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
@@ -1,4 +1,4 @@
-From 01ac079433b999a4747acf7be6a3b5fa182c3faf Mon Sep 17 00:00:00 2001
+From 873202f63f9f117c6e5a98e444cc709057042979 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Tue, 10 Jul 2018 15:40:17 +0800
 Subject: [PATCH] distinguish XSI-compliant strerror_r from GNU-specifi
diff --git a/poky/meta/recipes-core/systemd/systemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch b/poky/meta/recipes-core/systemd/systemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
index 62a6c23..e6507c5 100644
--- a/poky/meta/recipes-core/systemd/systemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
@@ -1,4 +1,4 @@
-From df2470912f3197aa441b6751feace1454c7d1f84 Mon Sep 17 00:00:00 2001
+From e7441559266074e7a33e3c11ff5cdaf5ba9c0e24 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:18:00 +0800
 Subject: [PATCH] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP
diff --git a/poky/meta/recipes-core/systemd/systemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch b/poky/meta/recipes-core/systemd/systemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
index b6b1dc3..eeff693 100644
--- a/poky/meta/recipes-core/systemd/systemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
@@ -1,4 +1,4 @@
-From e27ecb188503159a3f11bb1179ba1892cd080843 Mon Sep 17 00:00:00 2001
+From 64f4d2eb976b9f23ce85b3655a876f7299eafd58 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:27:54 +0800
 Subject: [PATCH] missing_type.h: add __compar_d_fn_t definition
diff --git a/poky/meta/recipes-core/systemd/systemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch b/poky/meta/recipes-core/systemd/systemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
index fea3472..5ca5386 100644
--- a/poky/meta/recipes-core/systemd/systemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
@@ -1,4 +1,4 @@
-From 748c4cf040856857f24f4aeef6d996bd58573bd3 Mon Sep 17 00:00:00 2001
+From d95330f328c23c1cd6c51aeca43f081746cf2899 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:44:54 +0800
 Subject: [PATCH] avoid redefinition of prctl_mm_map structure
diff --git a/poky/meta/recipes-core/systemd/systemd/0019-Handle-missing-LOCK_EX.patch b/poky/meta/recipes-core/systemd/systemd/0019-Handle-missing-LOCK_EX.patch
index 9a84d9c..d51ac42 100644
--- a/poky/meta/recipes-core/systemd/systemd/0019-Handle-missing-LOCK_EX.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0019-Handle-missing-LOCK_EX.patch
@@ -1,4 +1,4 @@
-From 647447e220e7e47e214c8258c7d4fbdb0da058aa Mon Sep 17 00:00:00 2001
+From 2284f2f44b1b30f10b9196e0f5c6d0a2e0c1871f Mon Sep 17 00:00:00 2001
 From: Alex Kiernan <alex.kiernan@gmail.com>
 Date: Fri, 7 Aug 2020 15:19:27 +0000
 Subject: [PATCH] Handle missing LOCK_EX
diff --git a/poky/meta/recipes-core/systemd/systemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch b/poky/meta/recipes-core/systemd/systemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
index 5d3e8d4..2d272ed 100644
--- a/poky/meta/recipes-core/systemd/systemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
@@ -1,4 +1,4 @@
-From 85cf3d58ff1a9696f0754feffae7d81b8d1d9a43 Mon Sep 17 00:00:00 2001
+From a6a25e1ecae91f48a4f87bf0cc17eaaf0a919ffe Mon Sep 17 00:00:00 2001
 From: Alex Kiernan <alex.kiernan@gmail.com>
 Date: Fri, 7 Aug 2020 15:20:17 +0000
 Subject: [PATCH] Fix incompatible pointer type struct sockaddr_un *
diff --git a/poky/meta/recipes-core/systemd/systemd/0021-test-json.c-define-M_PIl.patch b/poky/meta/recipes-core/systemd/systemd/0021-test-json.c-define-M_PIl.patch
index c028624..3fe5aea 100644
--- a/poky/meta/recipes-core/systemd/systemd/0021-test-json.c-define-M_PIl.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0021-test-json.c-define-M_PIl.patch
@@ -1,4 +1,4 @@
-From 9770c5873836e702c2a58cf3b439198415c82c28 Mon Sep 17 00:00:00 2001
+From 47472da6e8900773c26da8fd26699367447d97a6 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 16:53:06 +0800
 Subject: [PATCH] test-json.c: define M_PIl
diff --git a/poky/meta/recipes-core/systemd/systemd/0022-do-not-disable-buffer-in-writing-files.patch b/poky/meta/recipes-core/systemd/systemd/0022-do-not-disable-buffer-in-writing-files.patch
index 9028e14..4df35d8 100644
--- a/poky/meta/recipes-core/systemd/systemd/0022-do-not-disable-buffer-in-writing-files.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0022-do-not-disable-buffer-in-writing-files.patch
@@ -1,4 +1,4 @@
-From 26da484391e20b36eb65c98872d1145261028c7a Mon Sep 17 00:00:00 2001
+From 0f9422780a569c79a4b28e44c79c70b4a354bd92 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Fri, 1 Mar 2019 15:22:15 +0800
 Subject: [PATCH] do not disable buffer in writing files
@@ -134,7 +134,7 @@
                  log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m");
  }
 diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c
-index 29530bb691..3ecf6a45a2 100644
+index 981218f52f..436aaaddb4 100644
 --- a/src/binfmt/binfmt.c
 +++ b/src/binfmt/binfmt.c
 @@ -48,7 +48,7 @@ static int delete_rule(const char *rule) {
diff --git a/poky/meta/recipes-core/systemd/systemd/0025-Handle-__cpu_mask-usage.patch b/poky/meta/recipes-core/systemd/systemd/0025-Handle-__cpu_mask-usage.patch
index 152a362..e001ed5 100644
--- a/poky/meta/recipes-core/systemd/systemd/0025-Handle-__cpu_mask-usage.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0025-Handle-__cpu_mask-usage.patch
@@ -1,4 +1,4 @@
-From 5fa412dcebe89fd9f6f6003163f17e0dc719df34 Mon Sep 17 00:00:00 2001
+From e4f9ef547fa342102db15188544daa18e71e9c66 Mon Sep 17 00:00:00 2001
 From: Scott Murray <scott.murray@konsulko.com>
 Date: Fri, 13 Sep 2019 19:26:27 -0400
 Subject: [PATCH] Handle __cpu_mask usage
diff --git a/poky/meta/recipes-core/systemd/systemd/0026-Handle-missing-gshadow.patch b/poky/meta/recipes-core/systemd/systemd/0026-Handle-missing-gshadow.patch
index 95df83c..e9b7c1c 100644
--- a/poky/meta/recipes-core/systemd/systemd/0026-Handle-missing-gshadow.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0026-Handle-missing-gshadow.patch
@@ -1,4 +1,4 @@
-From 4835f3ca2e277abd93e2d4a74ecfd7401f32862b Mon Sep 17 00:00:00 2001
+From 66a926cf906260c2fb5ea851e55efe03edd444dc Mon Sep 17 00:00:00 2001
 From: Alex Kiernan <alex.kiernan@gmail.com>
 Date: Tue, 10 Mar 2020 11:05:20 +0000
 Subject: [PATCH] Handle missing gshadow
diff --git a/poky/meta/recipes-core/systemd/systemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch b/poky/meta/recipes-core/systemd/systemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
index 167f724..b7fd3cd 100644
--- a/poky/meta/recipes-core/systemd/systemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
@@ -1,4 +1,4 @@
-From e90f18da3d2aef07ddd7d312ca8b34ff0324208e Mon Sep 17 00:00:00 2001
+From 6f0dd2ba75b68036d7b4ebfe47ac5eaf44d26f06 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 12 Apr 2021 23:44:53 -0700
 Subject: [PATCH] missing_syscall.h: Define MIPS ABI defines for musl
diff --git a/poky/meta/recipes-core/systemd/systemd_249.5.bb b/poky/meta/recipes-core/systemd/systemd_249.5.bb
deleted file mode 100644
index d87f54b..0000000
--- a/poky/meta/recipes-core/systemd/systemd_249.5.bb
+++ /dev/null
@@ -1,789 +0,0 @@
-require systemd.inc
-
-PROVIDES = "udev"
-
-PE = "1"
-
-DEPENDS = "intltool-native gperf-native libcap util-linux python3-jinja2-native"
-
-SECTION = "base/shell"
-
-inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives qemu systemd gettext bash-completion manpages features_check
-
-# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so
-# that we don't build both udev and systemd in world builds.
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-SRC_URI += "file://touchscreen.rules \
-           file://00-create-volatile.conf \
-           ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'file://org.freedesktop.hostname1_no_polkit.conf', '', d)} \
-           ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'file://00-hostnamed-network-user.conf', '', d)} \
-           file://init \
-           file://99-default.preset \
-           file://systemd-pager.sh \
-           file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
-           file://0003-implment-systemd-sysv-install-for-OE.patch \
-           file://0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch \
-           file://0001-test-parse-argument-Include-signal.h.patch \
-           file://0001-meson-use-partial_dependency-to-get-include-director.patch \
-           "
-
-# patches needed by musl
-SRC_URI:append:libc-musl = " ${SRC_URI_MUSL}"
-SRC_URI_MUSL = "\
-               file://0002-don-t-use-glibc-specific-qsort_r.patch \
-               file://0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch \
-               file://0004-add-fallback-parse_printf_format-implementation.patch \
-               file://0005-src-basic-missing.h-check-for-missing-strndupa.patch \
-               file://0006-Include-netinet-if_ether.h.patch \
-               file://0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
-               file://0008-add-missing-FTW_-macros-for-musl.patch \
-               file://0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch \
-               file://0010-Use-uintmax_t-for-handling-rlim_t.patch \
-               file://0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
-               file://0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
-               file://0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
-               file://0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
-               file://0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
-               file://0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \
-               file://0017-missing_type.h-add-__compar_d_fn_t-definition.patch \
-               file://0018-avoid-redefinition-of-prctl_mm_map-structure.patch \
-               file://0019-Handle-missing-LOCK_EX.patch \
-               file://0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch \
-               file://0021-test-json.c-define-M_PIl.patch \
-               file://0022-do-not-disable-buffer-in-writing-files.patch \
-               file://0025-Handle-__cpu_mask-usage.patch \
-               file://0026-Handle-missing-gshadow.patch \
-               file://0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch \
-               "
-
-PAM_PLUGINS = " \
-    pam-plugin-unix \
-    pam-plugin-loginuid \
-    pam-plugin-keyinit \
-"
-
-PACKAGECONFIG ??= " \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'acl audit efi ldconfig pam selinux smack usrmerge polkit seccomp', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \
-    backlight \
-    binfmt \
-    gshadow \
-    hibernate \
-    hostnamed \
-    idn \
-    ima \
-    kmod \
-    localed \
-    logind \
-    machined \
-    myhostname \
-    networkd \
-    nss \
-    nss-mymachines \
-    nss-resolve \
-    quotacheck \
-    randomseed \
-    resolved \
-    set-time-epoch \
-    sysusers \
-    sysvinit \
-    timedated \
-    timesyncd \
-    userdb \
-    utmp \
-    vconsole \
-    wheel-group \
-    zstd \
-"
-
-PACKAGECONFIG:remove:libc-musl = " \
-    gshadow \
-    idn \
-    localed \
-    myhostname \
-    nss \
-    nss-mymachines \
-    nss-resolve \
-    sysusers \
-    userdb \
-    utmp \
-"
-
-# https://github.com/seccomp/libseccomp/issues/347
-PACKAGECONFIG:remove:mipsarch = "seccomp"
-
-CFLAGS:append:libc-musl = " -D__UAPI_DEF_ETHHDR=0 "
-
-# Some of the dependencies are weak-style recommends - if not available at runtime,
-# systemd won't fail but the library-related feature will be skipped with a warning.
-
-# Use the upstream systemd serial-getty@.service and rely on
-# systemd-getty-generator instead of using the OE-core specific
-# systemd-serialgetty.bb - not enabled by default.
-PACKAGECONFIG[serial-getty-generator] = ""
-
-PACKAGECONFIG[acl] = "-Dacl=true,-Dacl=false,acl"
-PACKAGECONFIG[audit] = "-Daudit=true,-Daudit=false,audit"
-PACKAGECONFIG[backlight] = "-Dbacklight=true,-Dbacklight=false"
-PACKAGECONFIG[binfmt] = "-Dbinfmt=true,-Dbinfmt=false"
-PACKAGECONFIG[bzip2] = "-Dbzip2=true,-Dbzip2=false,bzip2"
-PACKAGECONFIG[cgroupv2] = "-Ddefault-hierarchy=unified,-Ddefault-hierarchy=hybrid"
-PACKAGECONFIG[coredump] = "-Dcoredump=true,-Dcoredump=false"
-PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=true,-Dlibcryptsetup=false,cryptsetup,,cryptsetup"
-PACKAGECONFIG[tpm2] = "-Dtpm2=true,-Dtpm2=false,tpm2-tss,tpm2-tss libtss2 libtss2-tcti-device"
-PACKAGECONFIG[dbus] = "-Ddbus=true,-Ddbus=false,dbus"
-PACKAGECONFIG[efi] = "-Defi=true,-Defi=false"
-PACKAGECONFIG[gnu-efi] = "-Dgnu-efi=true -Defi-libdir=${STAGING_LIBDIR} -Defi-includedir=${STAGING_INCDIR}/efi,-Dgnu-efi=false,gnu-efi"
-PACKAGECONFIG[elfutils] = "-Delfutils=true,-Delfutils=false,elfutils"
-PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false"
-PACKAGECONFIG[repart] = "-Drepart=true,-Drepart=false"
-PACKAGECONFIG[homed] = "-Dhomed=true,-Dhomed=false"
-# Sign the journal for anti-tampering
-PACKAGECONFIG[gcrypt] = "-Dgcrypt=true,-Dgcrypt=false,libgcrypt"
-PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls"
-PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false"
-PACKAGECONFIG[hibernate] = "-Dhibernate=true,-Dhibernate=false"
-PACKAGECONFIG[hostnamed] = "-Dhostnamed=true,-Dhostnamed=false"
-PACKAGECONFIG[idn] = "-Didn=true,-Didn=false"
-PACKAGECONFIG[ima] = "-Dima=true,-Dima=false"
-# importd requires journal-upload/xz/zlib/bzip2/gcrypt
-PACKAGECONFIG[importd] = "-Dimportd=true,-Dimportd=false"
-# Update NAT firewall rules
-PACKAGECONFIG[iptc] = "-Dlibiptc=true,-Dlibiptc=false,iptables"
-PACKAGECONFIG[journal-upload] = "-Dlibcurl=true,-Dlibcurl=false,curl"
-PACKAGECONFIG[kmod] = "-Dkmod=true,-Dkmod=false,kmod"
-PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false,,ldconfig"
-PACKAGECONFIG[libidn] = "-Dlibidn=true,-Dlibidn=false,libidn,,libidn"
-PACKAGECONFIG[libidn2] = "-Dlibidn2=true,-Dlibidn2=false,libidn2,,libidn2"
-PACKAGECONFIG[localed] = "-Dlocaled=true,-Dlocaled=false"
-PACKAGECONFIG[logind] = "-Dlogind=true,-Dlogind=false"
-PACKAGECONFIG[lz4] = "-Dlz4=true,-Dlz4=false,lz4"
-PACKAGECONFIG[machined] = "-Dmachined=true,-Dmachined=false"
-PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
-PACKAGECONFIG[microhttpd] = "-Dmicrohttpd=true,-Dmicrohttpd=false,libmicrohttpd"
-PACKAGECONFIG[myhostname] = "-Dnss-myhostname=true,-Dnss-myhostname=false,,libnss-myhostname"
-PACKAGECONFIG[networkd] = "-Dnetworkd=true,-Dnetworkd=false"
-PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false"
-PACKAGECONFIG[nss-mymachines] = "-Dnss-mymachines=true,-Dnss-mymachines=false"
-PACKAGECONFIG[nss-resolve] = "-Dnss-resolve=true,-Dnss-resolve=false"
-PACKAGECONFIG[oomd] = "-Doomd=true,-Doomd=false"
-PACKAGECONFIG[openssl] = "-Dopenssl=true,-Dopenssl=false,openssl"
-PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam,${PAM_PLUGINS}"
-PACKAGECONFIG[pcre2] = "-Dpcre2=true,-Dpcre2=false,libpcre2"
-PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false"
-# If polkit is disabled and networkd+hostnamed are in use, enabling this option and
-# using dbus-broker will allow networkd to be authorized to change the
-# hostname without acquiring additional privileges
-PACKAGECONFIG[polkit_hostnamed_fallback] = ",,,,dbus-broker,polkit"
-PACKAGECONFIG[portabled] = "-Dportabled=true,-Dportabled=false"
-PACKAGECONFIG[qrencode] = "-Dqrencode=true,-Dqrencode=false,qrencode,,qrencode"
-PACKAGECONFIG[quotacheck] = "-Dquotacheck=true,-Dquotacheck=false"
-PACKAGECONFIG[randomseed] = "-Drandomseed=true,-Drandomseed=false"
-PACKAGECONFIG[resolved] = "-Dresolve=true,-Dresolve=false"
-PACKAGECONFIG[rfkill] = "-Drfkill=true,-Drfkill=false"
-PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp"
-PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux,initscripts-sushell"
-PACKAGECONFIG[smack] = "-Dsmack=true,-Dsmack=false"
-PACKAGECONFIG[sysusers] = "-Dsysusers=true,-Dsysusers=false"
-PACKAGECONFIG[sysvinit] = "-Dsysvinit-path=${sysconfdir}/init.d -Dsysvrcnd-path=${sysconfdir},-Dsysvinit-path= -Dsysvrcnd-path=,,systemd-compat-units update-rc.d"
-# When enabled use reproducble build timestamp if set as time epoch,
-# or build time if not. When disabled, time epoch is unset.
-def build_epoch(d):
-    epoch = d.getVar('SOURCE_DATE_EPOCH') or "-1"
-    return '-Dtime-epoch=%d' % int(epoch)
-PACKAGECONFIG[set-time-epoch] = "${@build_epoch(d)},-Dtime-epoch=0"
-PACKAGECONFIG[timedated] = "-Dtimedated=true,-Dtimedated=false"
-PACKAGECONFIG[timesyncd] = "-Dtimesyncd=true,-Dtimesyncd=false"
-PACKAGECONFIG[usrmerge] = "-Dsplit-usr=false,-Dsplit-usr=true"
-PACKAGECONFIG[sbinmerge] = "-Dsplit-bin=false,-Dsplit-bin=true"
-PACKAGECONFIG[userdb] = "-Duserdb=true,-Duserdb=false"
-PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false"
-PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind"
-PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup"
-PACKAGECONFIG[wheel-group] = "-Dwheel-group=true, -Dwheel-group=false"
-PACKAGECONFIG[xdg-autostart] = "-Dxdg-autostart=true,-Dxdg-autostart=false"
-# Verify keymaps on locale change
-PACKAGECONFIG[xkbcommon] = "-Dxkbcommon=true,-Dxkbcommon=false,libxkbcommon"
-PACKAGECONFIG[xz] = "-Dxz=true,-Dxz=false,xz"
-PACKAGECONFIG[zlib] = "-Dzlib=true,-Dzlib=false,zlib"
-PACKAGECONFIG[zstd] = "-Dzstd=true,-Dzstd=false,zstd"
-
-# Helper variables to clarify locations.  This mirrors the logic in systemd's
-# build system.
-rootprefix ?= "${root_prefix}"
-rootlibdir ?= "${base_libdir}"
-rootlibexecdir = "${rootprefix}/lib"
-
-# This links udev statically with systemd helper library.
-# Otherwise udev package would depend on systemd package (which has the needed shared library),
-# and always pull it into images.
-EXTRA_OEMESON += "-Dlink-udev-shared=false"
-
-EXTRA_OEMESON += "-Dnobody-user=nobody \
-                  -Dnobody-group=nobody \
-                  -Drootlibdir=${rootlibdir} \
-                  -Drootprefix=${rootprefix} \
-                  -Ddefault-locale=C \
-                  -Dmode=release \
-                  -Dsystem-alloc-uid-min=101 \
-                  -Dsystem-uid-max=999 \
-                  -Dsystem-alloc-gid-min=101 \
-                  -Dsystem-gid-max=999 \
-                  "
-
-# Hardcode target binary paths to avoid using paths from sysroot
-EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \
-                  -Dkmod-path=${base_bindir}/kmod \
-                  -Dmount-path=${base_bindir}/mount \
-                  -Dquotacheck-path=${sbindir}/quotacheck \
-                  -Dquotaon-path=${sbindir}/quotaon \
-                  -Dsulogin-path=${base_sbindir}/sulogin \
-                  -Dnologin-path=${base_sbindir}/nologin \
-                  -Dumount-path=${base_bindir}/umount"
-
-do_install() {
-	meson_do_install
-	install -d ${D}/${base_sbindir}
-	if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then
-		# Provided by a separate recipe
-		rm ${D}${systemd_system_unitdir}/serial-getty* -f
-	fi
-
-	# Provide support for initramfs
-	[ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init
-	[ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd
-
-	install -d ${D}${sysconfdir}/udev/rules.d/
-	install -d ${D}${sysconfdir}/tmpfiles.d
-	for rule in $(find ${WORKDIR} -maxdepth 1 -type f -name "*.rules"); do
-		install -m 0644 $rule ${D}${sysconfdir}/udev/rules.d/
-	done
-
-	install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
-
-	if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
-		install -d ${D}${sysconfdir}/init.d
-		install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd
-		sed -i s%@UDEVD@%${rootlibexecdir}/systemd/systemd-udevd% ${D}${sysconfdir}/init.d/systemd-udevd
-		install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_system_unitdir}d-sysv-install
-	fi
-
-	chown root:systemd-journal ${D}/${localstatedir}/log/journal
-
-	# Delete journal README, as log can be symlinked inside volatile.
-	rm -f ${D}/${localstatedir}/log/README
-
-	# journal-remote creates this at start
-	rm -rf ${D}/${localstatedir}/log/journal/remote
-
-	install -d ${D}${systemd_system_unitdir}/graphical.target.wants
-	install -d ${D}${systemd_system_unitdir}/multi-user.target.wants
-	install -d ${D}${systemd_system_unitdir}/poweroff.target.wants
-	install -d ${D}${systemd_system_unitdir}/reboot.target.wants
-	install -d ${D}${systemd_system_unitdir}/rescue.target.wants
-
-	# Create symlinks for systemd-update-utmp-runlevel.service
-	if ${@bb.utils.contains('PACKAGECONFIG', 'utmp', 'true', 'false', d)}; then
-		ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/graphical.target.wants/systemd-update-utmp-runlevel.service
-		ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/multi-user.target.wants/systemd-update-utmp-runlevel.service
-		ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/poweroff.target.wants/systemd-update-utmp-runlevel.service
-		ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/reboot.target.wants/systemd-update-utmp-runlevel.service
-		ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/rescue.target.wants/systemd-update-utmp-runlevel.service
-	fi
-
-	# this file is needed to exist if networkd is disabled but timesyncd is still in use since timesyncd checks it
-	# for existence else it fails
-	if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then
-		${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed -i -e "\$ad /run/systemd/netif/links 0755 root root -" ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf', d)}
-	fi
-	if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then
-		echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/systemd/resolve/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
-		echo 'd /run/systemd/resolve 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
-		echo 'f /run/systemd/resolve/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
-		ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd
-	else
-		sed -i -e "s%^L! /etc/resolv.conf.*$%L! /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf%g" ${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
-		ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd
-	fi
-	if ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'false', 'true', d)}; then
-		rm ${D}${exec_prefix}/lib/tmpfiles.d/x11.conf
-		rm -r ${D}${sysconfdir}/X11
-	fi
-
-	# If polkit is setup fixup permissions and ownership
-	if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then
-		if [ -d ${D}${datadir}/polkit-1/rules.d ]; then
-			chmod 700 ${D}${datadir}/polkit-1/rules.d
-			chown polkitd:root ${D}${datadir}/polkit-1/rules.d
-		fi
-	fi
-
-	# If polkit is not available and a fallback was requested, install a drop-in that allows networkd to
-	# request hostname changes via DBUS without elevating its privileges
-	if ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'true', 'false', d)}; then
-		install -d ${D}${systemd_system_unitdir}/systemd-hostnamed.service.d/
-		install -m 0644 ${WORKDIR}/00-hostnamed-network-user.conf ${D}${systemd_system_unitdir}/systemd-hostnamed.service.d/
-		install -d ${D}${datadir}/dbus-1/system.d/
-		install -m 0644 ${WORKDIR}/org.freedesktop.hostname1_no_polkit.conf ${D}${datadir}/dbus-1/system.d/
-	fi
-
-	# create link for existing udev rules
-	ln -s ${base_bindir}/udevadm ${D}${base_sbindir}/udevadm
-
-	# duplicate udevadm for postinst script
-	install -d ${D}${libexecdir}
-	ln ${D}${base_bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm
-
-	# install default policy for presets
-	# https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto
-	install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_system_unitdir}-preset/99-default.preset
-
-	# add a profile fragment to disable systemd pager with busybox less
-	install -Dm 0644 ${WORKDIR}/systemd-pager.sh ${D}${sysconfdir}/profile.d/systemd-pager.sh
-}
-
-python populate_packages:prepend (){
-    systemdlibdir = d.getVar("rootlibdir")
-    do_split_packages(d, systemdlibdir, '^lib(.*)\.so\.*', 'lib%s', 'Systemd %s library', extra_depends='', allow_links=True)
-}
-PACKAGES_DYNAMIC += "^lib(udev|systemd|nss).*"
-
-PACKAGE_BEFORE_PN = "\
-    ${PN}-gui \
-    ${PN}-vconsole-setup \
-    ${PN}-initramfs \
-    ${PN}-analyze \
-    ${PN}-kernel-install \
-    ${PN}-rpm-macros \
-    ${PN}-binfmt \
-    ${PN}-zsh-completion \
-    ${PN}-container \
-    ${PN}-journal-gatewayd \
-    ${PN}-journal-upload \
-    ${PN}-journal-remote \
-    ${PN}-extra-utils \
-    ${PN}-udev-rules \
-    udev \
-    udev-hwdb \
-"
-
-SUMMARY:${PN}-container = "Tools for containers and VMs"
-DESCRIPTION:${PN}-container = "Systemd tools to spawn and manage containers and virtual machines."
-
-SUMMARY:${PN}-journal-gatewayd = "HTTP server for journal events"
-DESCRIPTION:${PN}-journal-gatewayd = "systemd-journal-gatewayd serves journal events over the network. Clients must connect using HTTP. The server listens on port 19531 by default."
-
-SUMMARY:${PN}-journal-upload = "Send journal messages over the network"
-DESCRIPTION:${PN}-journal-upload = "systemd-journal-upload uploads journal entries to a specified URL."
-
-SUMMARY:${PN}-journal-remote = "Receive journal messages over the network"
-DESCRIPTION:${PN}-journal-remote = "systemd-journal-remote is a command to receive serialized journal events and store them to journal files."
-
-SYSTEMD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', '${PN}-binfmt', '', d)} \
-                    ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \
-                    ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \
-                    ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \
-"
-SYSTEMD_SERVICE:${PN}-binfmt = "systemd-binfmt.service"
-
-USERADD_PACKAGES = "${PN} ${PN}-extra-utils \
-                    ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gateway', '', d)} \
-                    ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \
-                    ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \
-"
-GROUPADD_PARAM:${PN} = "-r systemd-journal;"
-GROUPADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', '-r systemd-hostname;', '', d)}"
-USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /sbin/nologin systemd-coredump;', '', d)}"
-USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /sbin/nologin systemd-network;', '', d)}"
-USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;', '', d)}"
-USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /sbin/nologin systemd-resolve;', '', d)}"
-USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /sbin/nologin systemd-timesync;', '', d)}"
-USERADD_PARAM:${PN}-extra-utils = "--system -d / -M --shell /sbin/nologin systemd-bus-proxy"
-USERADD_PARAM:${PN}-journal-gateway = "--system -d / -M --shell /sbin/nologin systemd-journal-gateway"
-USERADD_PARAM:${PN}-journal-remote = "--system -d / -M --shell /sbin/nologin systemd-journal-remote"
-USERADD_PARAM:${PN}-journal-upload = "--system -d / -M --shell /sbin/nologin systemd-journal-upload"
-
-FILES:${PN}-analyze = "${bindir}/systemd-analyze"
-
-FILES:${PN}-initramfs = "/init"
-RDEPENDS:${PN}-initramfs = "${PN}"
-
-FILES:${PN}-gui = "${bindir}/systemadm"
-
-FILES:${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \
-                              ${systemd_system_unitdir}/systemd-vconsole-setup.service \
-                              ${systemd_system_unitdir}/sysinit.target.wants/systemd-vconsole-setup.service"
-
-RDEPENDS:${PN}-kernel-install += "bash"
-FILES:${PN}-kernel-install = "${bindir}/kernel-install \
-                              ${sysconfdir}/kernel/ \
-                              ${exec_prefix}/lib/kernel \
-                             "
-FILES:${PN}-rpm-macros = "${exec_prefix}/lib/rpm \
-                         "
-
-FILES:${PN}-zsh-completion = "${datadir}/zsh/site-functions"
-
-FILES:${PN}-binfmt = "${sysconfdir}/binfmt.d/ \
-                      ${exec_prefix}/lib/binfmt.d \
-                      ${rootlibexecdir}/systemd/systemd-binfmt \
-                      ${systemd_system_unitdir}/proc-sys-fs-binfmt_misc.* \
-                      ${systemd_system_unitdir}/systemd-binfmt.service"
-RRECOMMENDS:${PN}-binfmt = "kernel-module-binfmt-misc"
-
-RRECOMMENDS:${PN}-vconsole-setup = "kbd kbd-consolefonts kbd-keymaps"
-
-
-FILES:${PN}-journal-gatewayd = "${rootlibexecdir}/systemd/systemd-journal-gatewayd \
-                                ${systemd_system_unitdir}/systemd-journal-gatewayd.service \
-                                ${systemd_system_unitdir}/systemd-journal-gatewayd.socket \
-                                ${systemd_system_unitdir}/sockets.target.wants/systemd-journal-gatewayd.socket \
-                                ${datadir}/systemd/gatewayd/browse.html \
-                               "
-SYSTEMD_SERVICE:${PN}-journal-gatewayd = "systemd-journal-gatewayd.socket"
-
-FILES:${PN}-journal-upload = "${rootlibexecdir}/systemd/systemd-journal-upload \
-                              ${systemd_system_unitdir}/systemd-journal-upload.service \
-                              ${sysconfdir}/systemd/journal-upload.conf \
-                             "
-SYSTEMD_SERVICE:${PN}-journal-upload = "systemd-journal-upload.service"
-
-FILES:${PN}-journal-remote = "${rootlibexecdir}/systemd/systemd-journal-remote \
-                              ${sysconfdir}/systemd/journal-remote.conf \
-                              ${systemd_system_unitdir}/systemd-journal-remote.service \
-                              ${systemd_system_unitdir}/systemd-journal-remote.socket \
-                             "
-SYSTEMD_SERVICE:${PN}-journal-remote = "systemd-journal-remote.socket"
-
-
-FILES:${PN}-container = "${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf \
-                         ${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf \
-                         ${sysconfdir}/systemd/system/multi-user.target.wants/machines.target \
-                         ${base_bindir}/machinectl \
-                         ${bindir}/systemd-nspawn \
-                         ${nonarch_libdir}/systemd/import-pubring.gpg \
-                         ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.import1.busname \
-                         ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.machine1.busname \
-                         ${systemd_system_unitdir}/local-fs.target.wants/var-lib-machines.mount \
-                         ${systemd_system_unitdir}/machines.target.wants/var-lib-machines.mount \
-                         ${systemd_system_unitdir}/remote-fs.target.wants/var-lib-machines.mount \
-                         ${systemd_system_unitdir}/machine.slice \
-                         ${systemd_system_unitdir}/machines.target \
-                         ${systemd_system_unitdir}/org.freedesktop.import1.busname \
-                         ${systemd_system_unitdir}/org.freedesktop.machine1.busname \
-                         ${systemd_system_unitdir}/systemd-importd.service \
-                         ${systemd_system_unitdir}/systemd-machined.service \
-                         ${systemd_system_unitdir}/dbus-org.freedesktop.machine1.service \
-                         ${systemd_system_unitdir}/var-lib-machines.mount \
-                         ${rootlibexecdir}/systemd/systemd-import \
-                         ${rootlibexecdir}/systemd/systemd-importd \
-                         ${rootlibexecdir}/systemd/systemd-machined \
-                         ${rootlibexecdir}/systemd/systemd-pull \
-                         ${exec_prefix}/lib/tmpfiles.d/systemd-nspawn.conf \
-                         ${exec_prefix}/lib/tmpfiles.d/README \
-                         ${systemd_system_unitdir}/systemd-nspawn@.service \
-                         ${libdir}/libnss_mymachines.so.2 \
-                         ${datadir}/dbus-1/system-services/org.freedesktop.import1.service \
-                         ${datadir}/dbus-1/system-services/org.freedesktop.machine1.service \
-                         ${datadir}/dbus-1/system.d/org.freedesktop.import1.conf \
-                         ${datadir}/dbus-1/system.d/org.freedesktop.machine1.conf \
-                         ${datadir}/polkit-1/actions/org.freedesktop.import1.policy \
-                         ${datadir}/polkit-1/actions/org.freedesktop.machine1.policy \
-                        "
-
-# "machinectl import-tar" uses "tar --numeric-owner", not supported by busybox.
-RRECOMMENDS:${PN}-container += "\
-                         ${PN}-journal-gatewayd \
-                         ${PN}-journal-remote \
-                         ${PN}-journal-upload \
-                         kernel-module-dm-mod \
-                         kernel-module-loop \
-                         kernel-module-tun \
-                         tar \
-                        "
-
-FILES:${PN}-extra-utils = "\
-                        ${base_bindir}/systemd-escape \
-                        ${base_bindir}/systemd-inhibit \
-                        ${bindir}/systemd-detect-virt \
-                        ${bindir}/systemd-dissect \
-                        ${bindir}/systemd-path \
-                        ${bindir}/systemd-run \
-                        ${bindir}/systemd-cat \
-                        ${bindir}/systemd-delta \
-                        ${bindir}/systemd-cgls \
-                        ${bindir}/systemd-cgtop \
-                        ${bindir}/systemd-stdio-bridge \
-                        ${bindir}/systemd-sysext \
-                        ${base_bindir}/systemd-ask-password \
-                        ${base_bindir}/systemd-tty-ask-password-agent \
-                        ${systemd_system_unitdir}/systemd-ask-password-console.path \
-                        ${systemd_system_unitdir}/systemd-ask-password-console.service \
-                        ${systemd_system_unitdir}/systemd-ask-password-wall.path \
-                        ${systemd_system_unitdir}/systemd-ask-password-wall.service \
-                        ${systemd_system_unitdir}/sysinit.target.wants/systemd-ask-password-console.path \
-                        ${systemd_system_unitdir}/sysinit.target.wants/systemd-ask-password-wall.path \
-                        ${systemd_system_unitdir}/multi-user.target.wants/systemd-ask-password-wall.path \
-                        ${rootlibexecdir}/systemd/systemd-resolve-host \
-                        ${rootlibexecdir}/systemd/systemd-ac-power \
-                        ${rootlibexecdir}/systemd/systemd-activate \
-                        ${rootlibexecdir}/systemd/systemd-bus-proxyd \
-                        ${systemd_system_unitdir}/systemd-bus-proxyd.service \
-                        ${systemd_system_unitdir}/systemd-bus-proxyd.socket \
-                        ${rootlibexecdir}/systemd/systemd-socket-proxyd \
-                        ${rootlibexecdir}/systemd/systemd-reply-password \
-                        ${rootlibexecdir}/systemd/systemd-sleep \
-                        ${rootlibexecdir}/systemd/system-sleep \
-                        ${systemd_system_unitdir}/systemd-hibernate.service \
-                        ${systemd_system_unitdir}/systemd-hybrid-sleep.service \
-                        ${systemd_system_unitdir}/systemd-suspend.service \
-                        ${systemd_system_unitdir}/sleep.target \
-                        ${rootlibexecdir}/systemd/systemd-initctl \
-                        ${systemd_system_unitdir}/systemd-initctl.service \
-                        ${systemd_system_unitdir}/systemd-initctl.socket \
-                        ${systemd_system_unitdir}/sockets.target.wants/systemd-initctl.socket \
-                        ${rootlibexecdir}/systemd/system-generators/systemd-gpt-auto-generator \
-                        ${rootlibexecdir}/systemd/systemd-cgroups-agent \
-"
-
-FILES:${PN}-udev-rules = "\
-                        ${rootlibexecdir}/udev/rules.d/70-uaccess.rules \
-                        ${rootlibexecdir}/udev/rules.d/71-seat.rules \
-                        ${rootlibexecdir}/udev/rules.d/73-seat-late.rules \
-                        ${rootlibexecdir}/udev/rules.d/99-systemd.rules \
-"
-
-CONFFILES:${PN} = "${sysconfdir}/systemd/coredump.conf \
-	${sysconfdir}/systemd/journald.conf \
-	${sysconfdir}/systemd/logind.conf \
-	${sysconfdir}/systemd/networkd.conf \
-	${sysconfdir}/systemd/pstore.conf \
-	${sysconfdir}/systemd/resolved.conf \
-	${sysconfdir}/systemd/sleep.conf \
-	${sysconfdir}/systemd/system.conf \
-	${sysconfdir}/systemd/timesyncd.conf \
-	${sysconfdir}/systemd/user.conf \
-"
-
-FILES:${PN} = " ${base_bindir}/* \
-                ${base_sbindir}/shutdown \
-                ${base_sbindir}/halt \
-                ${base_sbindir}/poweroff \
-                ${base_sbindir}/runlevel \
-                ${base_sbindir}/telinit \
-                ${base_sbindir}/resolvconf \
-                ${base_sbindir}/reboot \
-                ${base_sbindir}/init \
-                ${datadir}/dbus-1/services \
-                ${datadir}/dbus-1/system-services \
-                ${datadir}/polkit-1 \
-                ${datadir}/${BPN} \
-                ${datadir}/factory \
-                ${sysconfdir}/dbus-1/ \
-                ${sysconfdir}/modules-load.d/ \
-                ${sysconfdir}/pam.d/ \
-                ${sysconfdir}/profile.d/ \
-                ${sysconfdir}/sysctl.d/ \
-                ${sysconfdir}/systemd/ \
-                ${sysconfdir}/tmpfiles.d/ \
-                ${sysconfdir}/xdg/ \
-                ${sysconfdir}/init.d/README \
-                ${sysconfdir}/resolv-conf.systemd \
-                ${sysconfdir}/X11/xinit/xinitrc.d/* \
-                ${rootlibexecdir}/systemd/* \
-                ${libdir}/pam.d \
-                ${nonarch_libdir}/pam.d \
-                ${systemd_unitdir}/* \
-                ${base_libdir}/security/*.so \
-                /cgroup \
-                ${bindir}/systemd* \
-                ${bindir}/busctl \
-                ${bindir}/coredumpctl \
-                ${bindir}/localectl \
-                ${bindir}/hostnamectl \
-                ${bindir}/resolvectl \
-                ${bindir}/timedatectl \
-                ${bindir}/bootctl \
-                ${bindir}/oomctl \
-                ${exec_prefix}/lib/tmpfiles.d/*.conf \
-                ${exec_prefix}/lib/systemd \
-                ${exec_prefix}/lib/modules-load.d \
-                ${exec_prefix}/lib/sysctl.d \
-                ${exec_prefix}/lib/sysusers.d \
-                ${exec_prefix}/lib/environment.d \
-                ${localstatedir} \
-                ${rootlibexecdir}/modprobe.d/systemd.conf \
-                ${rootlibexecdir}/modprobe.d/README \
-                ${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \
-                ${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \
-                ${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \
-                ${datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf \
-                ${datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf \
-                ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', '${datadir}/dbus-1/system.d/org.freedesktop.hostname1_no_polkit.conf', '', d)} \
-                ${datadir}/dbus-1/system.d/org.freedesktop.hostname1.conf \
-                ${datadir}/dbus-1/system.d/org.freedesktop.login1.conf \
-                ${datadir}/dbus-1/system.d/org.freedesktop.timesync1.conf \
-                ${datadir}/dbus-1/system.d/org.freedesktop.portable1.conf \
-                ${datadir}/dbus-1/system.d/org.freedesktop.oom1.conf \
-                ${datadir}/dbus-1/system.d/org.freedesktop.home1.conf \
-               "
-
-FILES:${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
-
-RDEPENDS:${PN} += "kmod dbus util-linux-mount util-linux-umount udev (= ${EXTENDPKGV}) systemd-udev-rules util-linux-agetty util-linux-fsck"
-RDEPENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}"
-RDEPENDS:${PN} += "volatile-binds"
-
-RRECOMMENDS:${PN} += "systemd-extra-utils \
-                      udev-hwdb \
-                      e2fsprogs-e2fsck \
-                      kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 kernel-module-sch-fq-codel \
-                      os-release \
-                      systemd-conf \
-"
-
-INSANE_SKIP:${PN} += "dev-so libdir"
-INSANE_SKIP:${PN}-dbg += "libdir"
-INSANE_SKIP:${PN}-doc += " libdir"
-
-RPROVIDES:udev = "hotplug"
-
-RDEPENDS:udev-hwdb += "udev"
-
-FILES:udev += "${base_sbindir}/udevd \
-               ${rootlibexecdir}/systemd/network/99-default.link \
-               ${rootlibexecdir}/systemd/systemd-udevd \
-               ${rootlibexecdir}/udev/accelerometer \
-               ${rootlibexecdir}/udev/ata_id \
-               ${rootlibexecdir}/udev/cdrom_id \
-               ${rootlibexecdir}/udev/collect \
-               ${rootlibexecdir}/udev/dmi_memory_id \
-               ${rootlibexecdir}/udev/fido_id \
-               ${rootlibexecdir}/udev/findkeyboards \
-               ${rootlibexecdir}/udev/keyboard-force-release.sh \
-               ${rootlibexecdir}/udev/keymap \
-               ${rootlibexecdir}/udev/mtd_probe \
-               ${rootlibexecdir}/udev/scsi_id \
-               ${rootlibexecdir}/udev/v4l_id \
-               ${rootlibexecdir}/udev/keymaps \
-               ${rootlibexecdir}/udev/rules.d/50-udev-default.rules \
-               ${rootlibexecdir}/udev/rules.d/60-autosuspend.rules \
-               ${rootlibexecdir}/udev/rules.d/60-autosuspend-chromiumos.rules \
-               ${rootlibexecdir}/udev/rules.d/60-block.rules \
-               ${rootlibexecdir}/udev/rules.d/60-cdrom_id.rules \
-               ${rootlibexecdir}/udev/rules.d/60-drm.rules \
-               ${rootlibexecdir}/udev/rules.d/60-evdev.rules \
-               ${rootlibexecdir}/udev/rules.d/60-fido-id.rules \
-               ${rootlibexecdir}/udev/rules.d/60-input-id.rules \
-               ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \
-               ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \
-               ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \
-               ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \
-               ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \
-               ${rootlibexecdir}/udev/rules.d/60-sensor.rules \
-               ${rootlibexecdir}/udev/rules.d/60-serial.rules \
-               ${rootlibexecdir}/udev/rules.d/61-autosuspend-manual.rules \
-               ${rootlibexecdir}/udev/rules.d/64-btrfs.rules \
-               ${rootlibexecdir}/udev/rules.d/70-joystick.rules \
-               ${rootlibexecdir}/udev/rules.d/70-memory.rules \
-               ${rootlibexecdir}/udev/rules.d/70-mouse.rules \
-               ${rootlibexecdir}/udev/rules.d/70-power-switch.rules \
-               ${rootlibexecdir}/udev/rules.d/70-touchpad.rules \
-               ${rootlibexecdir}/udev/rules.d/75-net-description.rules \
-               ${rootlibexecdir}/udev/rules.d/75-probe_mtd.rules \
-               ${rootlibexecdir}/udev/rules.d/78-sound-card.rules \
-               ${rootlibexecdir}/udev/rules.d/80-drivers.rules \
-               ${rootlibexecdir}/udev/rules.d/80-net-setup-link.rules \
-               ${rootlibexecdir}/udev/rules.d/81-net-dhcp.rules \
-               ${rootlibexecdir}/udev/rules.d/90-vconsole.rules \
-               ${rootlibexecdir}/udev/rules.d/README \
-               ${sysconfdir}/udev \
-               ${sysconfdir}/init.d/systemd-udevd \
-               ${systemd_system_unitdir}/*udev* \
-               ${systemd_system_unitdir}/*.wants/*udev* \
-               ${base_bindir}/systemd-hwdb \
-               ${base_bindir}/udevadm \
-               ${base_sbindir}/udevadm \
-               ${libexecdir}/${MLPREFIX}udevadm \
-               ${datadir}/bash-completion/completions/udevadm \
-               ${systemd_system_unitdir}/systemd-hwdb-update.service \
-              "
-
-FILES:udev-hwdb = "${rootlibexecdir}/udev/hwdb.d \
-                   "
-
-RCONFLICTS:${PN} = "tiny-init ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolvconf', '', d)}"
-
-INITSCRIPT_PACKAGES = "udev"
-INITSCRIPT_NAME:udev = "systemd-udevd"
-INITSCRIPT_PARAMS:udev = "start 03 S ."
-
-python __anonymous() {
-    if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
-        d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
-
-    if bb.utils.contains('PACKAGECONFIG', 'repart', True, False, d) and not bb.utils.contains('PACKAGECONFIG', 'openssl', True, False, d):
-        bb.error("PACKAGECONFIG[repart] requires PACKAGECONFIG[openssl]")
-
-    if bb.utils.contains('PACKAGECONFIG', 'homed', True, False, d) and not bb.utils.contains('PACKAGECONFIG', 'userdb openssl cryptsetup', True, False, d):
-        bb.error("PACKAGECONFIG[homed] requires PACKAGECONFIG[userdb], PACKAGECONFIG[openssl] and PACKAGECONFIG[cryptsetup]")
-}
-
-python do_warn_musl() {
-    if d.getVar('TCLIBC') == "musl":
-        bb.warn("Using systemd with musl is not recommended since it is not supported upstream and some patches are known to be problematic.")
-}
-addtask warn_musl before do_configure
-
-ALTERNATIVE:${PN} = "halt reboot shutdown poweroff runlevel ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolv-conf', '', d)}"
-
-ALTERNATIVE_TARGET[resolv-conf] = "${sysconfdir}/resolv-conf.systemd"
-ALTERNATIVE_LINK_NAME[resolv-conf] = "${sysconfdir}/resolv.conf"
-ALTERNATIVE_PRIORITY[resolv-conf] ?= "50"
-
-ALTERNATIVE_TARGET[halt] = "${base_bindir}/systemctl"
-ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt"
-ALTERNATIVE_PRIORITY[halt] ?= "300"
-
-ALTERNATIVE_TARGET[reboot] = "${base_bindir}/systemctl"
-ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot"
-ALTERNATIVE_PRIORITY[reboot] ?= "300"
-
-ALTERNATIVE_TARGET[shutdown] = "${base_bindir}/systemctl"
-ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown"
-ALTERNATIVE_PRIORITY[shutdown] ?= "300"
-
-ALTERNATIVE_TARGET[poweroff] = "${base_bindir}/systemctl"
-ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff"
-ALTERNATIVE_PRIORITY[poweroff] ?= "300"
-
-ALTERNATIVE_TARGET[runlevel] = "${base_bindir}/systemctl"
-ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel"
-ALTERNATIVE_PRIORITY[runlevel] ?= "300"
-
-pkg_postinst:${PN}:libc-glibc () {
-	sed -e '/^hosts:/s/\s*\<myhostname\>//' \
-		-e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2 myhostname \3\4\5/' \
-		-i $D${sysconfdir}/nsswitch.conf
-}
-
-pkg_prerm:${PN}:libc-glibc () {
-	sed -e '/^hosts:/s/\s*\<myhostname\>//' \
-		-e '/^hosts:/s/\s*myhostname//' \
-		-i $D${sysconfdir}/nsswitch.conf
-}
-
-PACKAGE_WRITE_DEPS += "qemu-native"
-pkg_postinst:udev-hwdb () {
-	if test -n "$D"; then
-		$INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} rootlibexecdir="${rootlibexecdir}" PREFERRED_PROVIDER_udev="${PREFERRED_PROVIDER_udev}"
-	else
-		udevadm hwdb --update
-	fi
-}
-
-pkg_prerm:udev-hwdb () {
-	rm -f $D${sysconfdir}/udev/hwdb.bin
-}
diff --git a/poky/meta/recipes-core/systemd/systemd_250.3.bb b/poky/meta/recipes-core/systemd/systemd_250.3.bb
new file mode 100644
index 0000000..4dd6688
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd_250.3.bb
@@ -0,0 +1,793 @@
+require systemd.inc
+
+PROVIDES = "udev"
+
+PE = "1"
+
+DEPENDS = "intltool-native gperf-native libcap util-linux python3-jinja2-native"
+
+SECTION = "base/shell"
+
+inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives qemu systemd gettext bash-completion manpages features_check
+
+# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so
+# that we don't build both udev and systemd in world builds.
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+SRC_URI += "file://touchscreen.rules \
+           file://00-create-volatile.conf \
+           ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'file://org.freedesktop.hostname1_no_polkit.conf', '', d)} \
+           ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'file://00-hostnamed-network-user.conf', '', d)} \
+           file://init \
+           file://99-default.preset \
+           file://systemd-pager.sh \
+           file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
+           file://0003-implment-systemd-sysv-install-for-OE.patch \
+           file://0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch \
+           file://0001-test-parse-argument-Include-signal.h.patch \
+           "
+
+# patches needed by musl
+SRC_URI:append:libc-musl = " ${SRC_URI_MUSL}"
+SRC_URI_MUSL = "\
+               file://0002-don-t-use-glibc-specific-qsort_r.patch \
+               file://0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch \
+               file://0004-add-fallback-parse_printf_format-implementation.patch \
+               file://0005-src-basic-missing.h-check-for-missing-strndupa.patch \
+               file://0006-Include-netinet-if_ether.h.patch \
+               file://0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
+               file://0008-add-missing-FTW_-macros-for-musl.patch \
+               file://0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch \
+               file://0010-Use-uintmax_t-for-handling-rlim_t.patch \
+               file://0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
+               file://0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
+               file://0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
+               file://0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
+               file://0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
+               file://0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \
+               file://0017-missing_type.h-add-__compar_d_fn_t-definition.patch \
+               file://0018-avoid-redefinition-of-prctl_mm_map-structure.patch \
+               file://0019-Handle-missing-LOCK_EX.patch \
+               file://0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch \
+               file://0021-test-json.c-define-M_PIl.patch \
+               file://0022-do-not-disable-buffer-in-writing-files.patch \
+               file://0025-Handle-__cpu_mask-usage.patch \
+               file://0026-Handle-missing-gshadow.patch \
+               file://0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch \
+               "
+
+PAM_PLUGINS = " \
+    pam-plugin-unix \
+    pam-plugin-loginuid \
+    pam-plugin-keyinit \
+"
+
+PACKAGECONFIG ??= " \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'acl audit efi ldconfig pam selinux smack usrmerge polkit seccomp', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \
+    backlight \
+    binfmt \
+    gshadow \
+    hibernate \
+    hostnamed \
+    idn \
+    ima \
+    kmod \
+    localed \
+    logind \
+    machined \
+    myhostname \
+    networkd \
+    nss \
+    nss-mymachines \
+    nss-resolve \
+    quotacheck \
+    randomseed \
+    resolved \
+    set-time-epoch \
+    sysusers \
+    sysvinit \
+    timedated \
+    timesyncd \
+    userdb \
+    utmp \
+    vconsole \
+    wheel-group \
+    zstd \
+"
+
+PACKAGECONFIG:remove:libc-musl = " \
+    gshadow \
+    idn \
+    localed \
+    myhostname \
+    nss \
+    nss-mymachines \
+    nss-resolve \
+    sysusers \
+    userdb \
+    utmp \
+"
+
+# https://github.com/seccomp/libseccomp/issues/347
+PACKAGECONFIG:remove:mipsarch = "seccomp"
+
+CFLAGS:append:libc-musl = " -D__UAPI_DEF_ETHHDR=0 "
+
+# Some of the dependencies are weak-style recommends - if not available at runtime,
+# systemd won't fail but the library-related feature will be skipped with a warning.
+
+# Use the upstream systemd serial-getty@.service and rely on
+# systemd-getty-generator instead of using the OE-core specific
+# systemd-serialgetty.bb - not enabled by default.
+PACKAGECONFIG[serial-getty-generator] = ""
+
+PACKAGECONFIG[acl] = "-Dacl=true,-Dacl=false,acl"
+PACKAGECONFIG[audit] = "-Daudit=true,-Daudit=false,audit"
+PACKAGECONFIG[backlight] = "-Dbacklight=true,-Dbacklight=false"
+PACKAGECONFIG[binfmt] = "-Dbinfmt=true,-Dbinfmt=false"
+PACKAGECONFIG[bzip2] = "-Dbzip2=true,-Dbzip2=false,bzip2"
+PACKAGECONFIG[cgroupv2] = "-Ddefault-hierarchy=unified,-Ddefault-hierarchy=hybrid"
+PACKAGECONFIG[coredump] = "-Dcoredump=true,-Dcoredump=false"
+PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=true,-Dlibcryptsetup=false,cryptsetup,,cryptsetup"
+PACKAGECONFIG[tpm2] = "-Dtpm2=true,-Dtpm2=false,tpm2-tss,tpm2-tss libtss2 libtss2-tcti-device"
+PACKAGECONFIG[dbus] = "-Ddbus=true,-Ddbus=false,dbus"
+PACKAGECONFIG[efi] = "-Defi=true,-Defi=false"
+PACKAGECONFIG[gnu-efi] = "-Dgnu-efi=true -Defi-libdir=${STAGING_LIBDIR} -Defi-includedir=${STAGING_INCDIR}/efi,-Dgnu-efi=false,gnu-efi"
+PACKAGECONFIG[elfutils] = "-Delfutils=true,-Delfutils=false,elfutils"
+PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false"
+PACKAGECONFIG[repart] = "-Drepart=true,-Drepart=false"
+PACKAGECONFIG[homed] = "-Dhomed=true,-Dhomed=false"
+# Sign the journal for anti-tampering
+PACKAGECONFIG[gcrypt] = "-Dgcrypt=true,-Dgcrypt=false,libgcrypt"
+PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls"
+PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false"
+PACKAGECONFIG[hibernate] = "-Dhibernate=true,-Dhibernate=false"
+PACKAGECONFIG[hostnamed] = "-Dhostnamed=true,-Dhostnamed=false"
+PACKAGECONFIG[idn] = "-Didn=true,-Didn=false"
+PACKAGECONFIG[ima] = "-Dima=true,-Dima=false"
+# importd requires journal-upload/xz/zlib/bzip2/gcrypt
+PACKAGECONFIG[importd] = "-Dimportd=true,-Dimportd=false"
+# Update NAT firewall rules
+PACKAGECONFIG[iptc] = "-Dlibiptc=true,-Dlibiptc=false,iptables"
+PACKAGECONFIG[journal-upload] = "-Dlibcurl=true,-Dlibcurl=false,curl"
+PACKAGECONFIG[kmod] = "-Dkmod=true,-Dkmod=false,kmod"
+PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false,,ldconfig"
+PACKAGECONFIG[libidn] = "-Dlibidn=true,-Dlibidn=false,libidn,,libidn"
+PACKAGECONFIG[libidn2] = "-Dlibidn2=true,-Dlibidn2=false,libidn2,,libidn2"
+PACKAGECONFIG[localed] = "-Dlocaled=true,-Dlocaled=false"
+PACKAGECONFIG[logind] = "-Dlogind=true,-Dlogind=false"
+PACKAGECONFIG[lz4] = "-Dlz4=true,-Dlz4=false,lz4"
+PACKAGECONFIG[machined] = "-Dmachined=true,-Dmachined=false"
+PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
+PACKAGECONFIG[microhttpd] = "-Dmicrohttpd=true,-Dmicrohttpd=false,libmicrohttpd"
+PACKAGECONFIG[myhostname] = "-Dnss-myhostname=true,-Dnss-myhostname=false,,libnss-myhostname"
+PACKAGECONFIG[networkd] = "-Dnetworkd=true,-Dnetworkd=false"
+PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false"
+PACKAGECONFIG[nss-mymachines] = "-Dnss-mymachines=true,-Dnss-mymachines=false"
+PACKAGECONFIG[nss-resolve] = "-Dnss-resolve=true,-Dnss-resolve=false"
+PACKAGECONFIG[oomd] = "-Doomd=true,-Doomd=false"
+PACKAGECONFIG[openssl] = "-Dopenssl=true,-Dopenssl=false,openssl"
+PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam,${PAM_PLUGINS}"
+PACKAGECONFIG[pcre2] = "-Dpcre2=true,-Dpcre2=false,libpcre2"
+PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false"
+# If polkit is disabled and networkd+hostnamed are in use, enabling this option and
+# using dbus-broker will allow networkd to be authorized to change the
+# hostname without acquiring additional privileges
+PACKAGECONFIG[polkit_hostnamed_fallback] = ",,,,dbus-broker,polkit"
+PACKAGECONFIG[portabled] = "-Dportabled=true,-Dportabled=false"
+PACKAGECONFIG[qrencode] = "-Dqrencode=true,-Dqrencode=false,qrencode,,qrencode"
+PACKAGECONFIG[quotacheck] = "-Dquotacheck=true,-Dquotacheck=false"
+PACKAGECONFIG[randomseed] = "-Drandomseed=true,-Drandomseed=false"
+PACKAGECONFIG[resolved] = "-Dresolve=true,-Dresolve=false"
+PACKAGECONFIG[rfkill] = "-Drfkill=true,-Drfkill=false"
+PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp"
+PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux,initscripts-sushell"
+PACKAGECONFIG[smack] = "-Dsmack=true,-Dsmack=false"
+PACKAGECONFIG[sysusers] = "-Dsysusers=true,-Dsysusers=false"
+PACKAGECONFIG[sysvinit] = "-Dsysvinit-path=${sysconfdir}/init.d -Dsysvrcnd-path=${sysconfdir},-Dsysvinit-path= -Dsysvrcnd-path=,,systemd-compat-units update-rc.d"
+# When enabled use reproducble build timestamp if set as time epoch,
+# or build time if not. When disabled, time epoch is unset.
+def build_epoch(d):
+    epoch = d.getVar('SOURCE_DATE_EPOCH') or "-1"
+    return '-Dtime-epoch=%d' % int(epoch)
+PACKAGECONFIG[set-time-epoch] = "${@build_epoch(d)},-Dtime-epoch=0"
+PACKAGECONFIG[timedated] = "-Dtimedated=true,-Dtimedated=false"
+PACKAGECONFIG[timesyncd] = "-Dtimesyncd=true,-Dtimesyncd=false"
+PACKAGECONFIG[usrmerge] = "-Dsplit-usr=false,-Dsplit-usr=true"
+PACKAGECONFIG[sbinmerge] = "-Dsplit-bin=false,-Dsplit-bin=true"
+PACKAGECONFIG[userdb] = "-Duserdb=true,-Duserdb=false"
+PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false"
+PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind"
+PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup"
+PACKAGECONFIG[wheel-group] = "-Dwheel-group=true, -Dwheel-group=false"
+PACKAGECONFIG[xdg-autostart] = "-Dxdg-autostart=true,-Dxdg-autostart=false"
+# Verify keymaps on locale change
+PACKAGECONFIG[xkbcommon] = "-Dxkbcommon=true,-Dxkbcommon=false,libxkbcommon"
+PACKAGECONFIG[xz] = "-Dxz=true,-Dxz=false,xz"
+PACKAGECONFIG[zlib] = "-Dzlib=true,-Dzlib=false,zlib"
+PACKAGECONFIG[zstd] = "-Dzstd=true,-Dzstd=false,zstd"
+
+# Helper variables to clarify locations.  This mirrors the logic in systemd's
+# build system.
+rootprefix ?= "${root_prefix}"
+rootlibdir ?= "${base_libdir}"
+rootlibexecdir = "${rootprefix}/lib"
+
+# This links udev statically with systemd helper library.
+# Otherwise udev package would depend on systemd package (which has the needed shared library),
+# and always pull it into images.
+EXTRA_OEMESON += "-Dlink-udev-shared=false"
+
+EXTRA_OEMESON += "-Dnobody-user=nobody \
+                  -Dnobody-group=nobody \
+                  -Drootlibdir=${rootlibdir} \
+                  -Drootprefix=${rootprefix} \
+                  -Ddefault-locale=C \
+                  -Dmode=release \
+                  -Dsystem-alloc-uid-min=101 \
+                  -Dsystem-uid-max=999 \
+                  -Dsystem-alloc-gid-min=101 \
+                  -Dsystem-gid-max=999 \
+                  "
+
+# Hardcode target binary paths to avoid using paths from sysroot
+EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \
+                  -Dkmod-path=${base_bindir}/kmod \
+                  -Dmount-path=${base_bindir}/mount \
+                  -Dquotacheck-path=${sbindir}/quotacheck \
+                  -Dquotaon-path=${sbindir}/quotaon \
+                  -Dsulogin-path=${base_sbindir}/sulogin \
+                  -Dnologin-path=${base_sbindir}/nologin \
+                  -Dumount-path=${base_bindir}/umount"
+
+do_install() {
+	meson_do_install
+	install -d ${D}/${base_sbindir}
+	if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then
+		# Provided by a separate recipe
+		rm ${D}${systemd_system_unitdir}/serial-getty* -f
+	fi
+
+	# Provide support for initramfs
+	[ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init
+	[ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd
+
+	install -d ${D}${sysconfdir}/udev/rules.d/
+	install -d ${D}${sysconfdir}/tmpfiles.d
+	for rule in $(find ${WORKDIR} -maxdepth 1 -type f -name "*.rules"); do
+		install -m 0644 $rule ${D}${sysconfdir}/udev/rules.d/
+	done
+
+	install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
+
+	if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
+		install -d ${D}${sysconfdir}/init.d
+		install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd
+		sed -i s%@UDEVD@%${rootlibexecdir}/systemd/systemd-udevd% ${D}${sysconfdir}/init.d/systemd-udevd
+		install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_unitdir}/systemd-sysv-install
+	fi
+
+	if "${@'true' if oe.types.boolean(d.getVar('VOLATILE_LOG_DIR')) else 'false'}"; then
+		# /var/log is typically a symbolic link to inside /var/volatile,
+		# which is expected to be empty.
+		rm -rf ${D}${localstatedir}/log
+	else
+		chown root:systemd-journal ${D}${localstatedir}/log/journal
+
+		# journal-remote creates this at start
+		rm -rf ${D}${localstatedir}/log/journal/remote
+	fi
+
+	install -d ${D}${systemd_system_unitdir}/graphical.target.wants
+	install -d ${D}${systemd_system_unitdir}/multi-user.target.wants
+	install -d ${D}${systemd_system_unitdir}/poweroff.target.wants
+	install -d ${D}${systemd_system_unitdir}/reboot.target.wants
+	install -d ${D}${systemd_system_unitdir}/rescue.target.wants
+
+	# Create symlinks for systemd-update-utmp-runlevel.service
+	if ${@bb.utils.contains('PACKAGECONFIG', 'utmp', 'true', 'false', d)}; then
+		ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/graphical.target.wants/systemd-update-utmp-runlevel.service
+		ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/multi-user.target.wants/systemd-update-utmp-runlevel.service
+		ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/poweroff.target.wants/systemd-update-utmp-runlevel.service
+		ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/reboot.target.wants/systemd-update-utmp-runlevel.service
+		ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/rescue.target.wants/systemd-update-utmp-runlevel.service
+	fi
+
+	# this file is needed to exist if networkd is disabled but timesyncd is still in use since timesyncd checks it
+	# for existence else it fails
+	if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ] &&
+	   ! ${@bb.utils.contains('PACKAGECONFIG', 'networkd', 'true', 'false', d)}; then
+		echo 'd /run/systemd/netif/links 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
+	fi
+	if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then
+		echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/systemd/resolve/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
+		echo 'd /run/systemd/resolve 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
+		echo 'f /run/systemd/resolve/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
+		ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd
+	else
+		sed -i -e "s%^L! /etc/resolv.conf.*$%L! /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf%g" ${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
+		ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd
+	fi
+	if ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'false', 'true', d)}; then
+		rm ${D}${exec_prefix}/lib/tmpfiles.d/x11.conf
+		rm -r ${D}${sysconfdir}/X11
+	fi
+
+	# If polkit is setup fixup permissions and ownership
+	if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then
+		if [ -d ${D}${datadir}/polkit-1/rules.d ]; then
+			chmod 700 ${D}${datadir}/polkit-1/rules.d
+			chown polkitd:root ${D}${datadir}/polkit-1/rules.d
+		fi
+	fi
+
+	# If polkit is not available and a fallback was requested, install a drop-in that allows networkd to
+	# request hostname changes via DBUS without elevating its privileges
+	if ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'true', 'false', d)}; then
+		install -d ${D}${systemd_system_unitdir}/systemd-hostnamed.service.d/
+		install -m 0644 ${WORKDIR}/00-hostnamed-network-user.conf ${D}${systemd_system_unitdir}/systemd-hostnamed.service.d/
+		install -d ${D}${datadir}/dbus-1/system.d/
+		install -m 0644 ${WORKDIR}/org.freedesktop.hostname1_no_polkit.conf ${D}${datadir}/dbus-1/system.d/
+	fi
+
+	# create link for existing udev rules
+	ln -s ${base_bindir}/udevadm ${D}${base_sbindir}/udevadm
+
+	# duplicate udevadm for postinst script
+	install -d ${D}${libexecdir}
+	ln ${D}${base_bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm
+
+	# install default policy for presets
+	# https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto
+	install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset
+
+	# add a profile fragment to disable systemd pager with busybox less
+	install -Dm 0644 ${WORKDIR}/systemd-pager.sh ${D}${sysconfdir}/profile.d/systemd-pager.sh
+}
+
+python populate_packages:prepend (){
+    systemdlibdir = d.getVar("rootlibdir")
+    do_split_packages(d, systemdlibdir, '^lib(.*)\.so\.*', 'lib%s', 'Systemd %s library', extra_depends='', allow_links=True)
+}
+PACKAGES_DYNAMIC += "^lib(udev|systemd|nss).*"
+
+PACKAGE_BEFORE_PN = "\
+    ${PN}-gui \
+    ${PN}-vconsole-setup \
+    ${PN}-initramfs \
+    ${PN}-analyze \
+    ${PN}-kernel-install \
+    ${PN}-rpm-macros \
+    ${PN}-binfmt \
+    ${PN}-zsh-completion \
+    ${PN}-container \
+    ${PN}-journal-gatewayd \
+    ${PN}-journal-upload \
+    ${PN}-journal-remote \
+    ${PN}-extra-utils \
+    ${PN}-udev-rules \
+    udev \
+    udev-hwdb \
+"
+
+SUMMARY:${PN}-container = "Tools for containers and VMs"
+DESCRIPTION:${PN}-container = "Systemd tools to spawn and manage containers and virtual machines."
+
+SUMMARY:${PN}-journal-gatewayd = "HTTP server for journal events"
+DESCRIPTION:${PN}-journal-gatewayd = "systemd-journal-gatewayd serves journal events over the network. Clients must connect using HTTP. The server listens on port 19531 by default."
+
+SUMMARY:${PN}-journal-upload = "Send journal messages over the network"
+DESCRIPTION:${PN}-journal-upload = "systemd-journal-upload uploads journal entries to a specified URL."
+
+SUMMARY:${PN}-journal-remote = "Receive journal messages over the network"
+DESCRIPTION:${PN}-journal-remote = "systemd-journal-remote is a command to receive serialized journal events and store them to journal files."
+
+SYSTEMD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', '${PN}-binfmt', '', d)} \
+                    ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \
+                    ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \
+                    ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \
+"
+SYSTEMD_SERVICE:${PN}-binfmt = "systemd-binfmt.service"
+
+USERADD_PACKAGES = "${PN} ${PN}-extra-utils \
+                    ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \
+                    ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \
+                    ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \
+"
+GROUPADD_PARAM:${PN} = "-r systemd-journal;"
+GROUPADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', '-r systemd-hostname;', '', d)}"
+USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /sbin/nologin systemd-coredump;', '', d)}"
+USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /sbin/nologin systemd-network;', '', d)}"
+USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;', '', d)}"
+USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /sbin/nologin systemd-resolve;', '', d)}"
+USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /sbin/nologin systemd-timesync;', '', d)}"
+USERADD_PARAM:${PN}-extra-utils = "--system -d / -M --shell /sbin/nologin systemd-bus-proxy"
+USERADD_PARAM:${PN}-journal-gatewayd = "--system -d / -M --shell /sbin/nologin systemd-journal-gateway"
+USERADD_PARAM:${PN}-journal-remote = "--system -d / -M --shell /sbin/nologin systemd-journal-remote"
+USERADD_PARAM:${PN}-journal-upload = "--system -d / -M --shell /sbin/nologin systemd-journal-upload"
+
+FILES:${PN}-analyze = "${bindir}/systemd-analyze"
+
+FILES:${PN}-initramfs = "/init"
+RDEPENDS:${PN}-initramfs = "${PN}"
+
+FILES:${PN}-gui = "${bindir}/systemadm"
+
+FILES:${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \
+                              ${systemd_system_unitdir}/systemd-vconsole-setup.service \
+                              ${systemd_system_unitdir}/sysinit.target.wants/systemd-vconsole-setup.service"
+
+RDEPENDS:${PN}-kernel-install += "bash"
+FILES:${PN}-kernel-install = "${bindir}/kernel-install \
+                              ${sysconfdir}/kernel/ \
+                              ${exec_prefix}/lib/kernel \
+                             "
+FILES:${PN}-rpm-macros = "${exec_prefix}/lib/rpm \
+                         "
+
+FILES:${PN}-zsh-completion = "${datadir}/zsh/site-functions"
+
+FILES:${PN}-binfmt = "${sysconfdir}/binfmt.d/ \
+                      ${exec_prefix}/lib/binfmt.d \
+                      ${rootlibexecdir}/systemd/systemd-binfmt \
+                      ${systemd_system_unitdir}/proc-sys-fs-binfmt_misc.* \
+                      ${systemd_system_unitdir}/systemd-binfmt.service"
+RRECOMMENDS:${PN}-binfmt = "kernel-module-binfmt-misc"
+
+RRECOMMENDS:${PN}-vconsole-setup = "kbd kbd-consolefonts kbd-keymaps"
+
+
+FILES:${PN}-journal-gatewayd = "${rootlibexecdir}/systemd/systemd-journal-gatewayd \
+                                ${systemd_system_unitdir}/systemd-journal-gatewayd.service \
+                                ${systemd_system_unitdir}/systemd-journal-gatewayd.socket \
+                                ${systemd_system_unitdir}/sockets.target.wants/systemd-journal-gatewayd.socket \
+                                ${datadir}/systemd/gatewayd/browse.html \
+                               "
+SYSTEMD_SERVICE:${PN}-journal-gatewayd = "systemd-journal-gatewayd.socket"
+
+FILES:${PN}-journal-upload = "${rootlibexecdir}/systemd/systemd-journal-upload \
+                              ${systemd_system_unitdir}/systemd-journal-upload.service \
+                              ${sysconfdir}/systemd/journal-upload.conf \
+                             "
+SYSTEMD_SERVICE:${PN}-journal-upload = "systemd-journal-upload.service"
+
+FILES:${PN}-journal-remote = "${rootlibexecdir}/systemd/systemd-journal-remote \
+                              ${sysconfdir}/systemd/journal-remote.conf \
+                              ${systemd_system_unitdir}/systemd-journal-remote.service \
+                              ${systemd_system_unitdir}/systemd-journal-remote.socket \
+                             "
+SYSTEMD_SERVICE:${PN}-journal-remote = "systemd-journal-remote.socket"
+
+
+FILES:${PN}-container = "${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf \
+                         ${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf \
+                         ${sysconfdir}/systemd/system/multi-user.target.wants/machines.target \
+                         ${base_bindir}/machinectl \
+                         ${bindir}/systemd-nspawn \
+                         ${nonarch_libdir}/systemd/import-pubring.gpg \
+                         ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.import1.busname \
+                         ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.machine1.busname \
+                         ${systemd_system_unitdir}/local-fs.target.wants/var-lib-machines.mount \
+                         ${systemd_system_unitdir}/machines.target.wants/var-lib-machines.mount \
+                         ${systemd_system_unitdir}/remote-fs.target.wants/var-lib-machines.mount \
+                         ${systemd_system_unitdir}/machine.slice \
+                         ${systemd_system_unitdir}/machines.target \
+                         ${systemd_system_unitdir}/org.freedesktop.import1.busname \
+                         ${systemd_system_unitdir}/org.freedesktop.machine1.busname \
+                         ${systemd_system_unitdir}/systemd-importd.service \
+                         ${systemd_system_unitdir}/systemd-machined.service \
+                         ${systemd_system_unitdir}/dbus-org.freedesktop.machine1.service \
+                         ${systemd_system_unitdir}/var-lib-machines.mount \
+                         ${rootlibexecdir}/systemd/systemd-import \
+                         ${rootlibexecdir}/systemd/systemd-importd \
+                         ${rootlibexecdir}/systemd/systemd-machined \
+                         ${rootlibexecdir}/systemd/systemd-pull \
+                         ${exec_prefix}/lib/tmpfiles.d/systemd-nspawn.conf \
+                         ${exec_prefix}/lib/tmpfiles.d/README \
+                         ${systemd_system_unitdir}/systemd-nspawn@.service \
+                         ${libdir}/libnss_mymachines.so.2 \
+                         ${datadir}/dbus-1/system-services/org.freedesktop.import1.service \
+                         ${datadir}/dbus-1/system-services/org.freedesktop.machine1.service \
+                         ${datadir}/dbus-1/system.d/org.freedesktop.import1.conf \
+                         ${datadir}/dbus-1/system.d/org.freedesktop.machine1.conf \
+                         ${datadir}/polkit-1/actions/org.freedesktop.import1.policy \
+                         ${datadir}/polkit-1/actions/org.freedesktop.machine1.policy \
+                        "
+
+# "machinectl import-tar" uses "tar --numeric-owner", not supported by busybox.
+RRECOMMENDS:${PN}-container += "\
+                         ${PN}-journal-gatewayd \
+                         ${PN}-journal-remote \
+                         ${PN}-journal-upload \
+                         kernel-module-dm-mod \
+                         kernel-module-loop \
+                         kernel-module-tun \
+                         tar \
+                        "
+
+FILES:${PN}-extra-utils = "\
+                        ${base_bindir}/systemd-escape \
+                        ${base_bindir}/systemd-inhibit \
+                        ${bindir}/systemd-detect-virt \
+                        ${bindir}/systemd-dissect \
+                        ${bindir}/systemd-path \
+                        ${bindir}/systemd-run \
+                        ${bindir}/systemd-cat \
+                        ${bindir}/systemd-delta \
+                        ${bindir}/systemd-cgls \
+                        ${bindir}/systemd-cgtop \
+                        ${bindir}/systemd-stdio-bridge \
+                        ${bindir}/systemd-sysext \
+                        ${base_bindir}/systemd-ask-password \
+                        ${base_bindir}/systemd-tty-ask-password-agent \
+                        ${systemd_system_unitdir}/systemd-ask-password-console.path \
+                        ${systemd_system_unitdir}/systemd-ask-password-console.service \
+                        ${systemd_system_unitdir}/systemd-ask-password-wall.path \
+                        ${systemd_system_unitdir}/systemd-ask-password-wall.service \
+                        ${systemd_system_unitdir}/sysinit.target.wants/systemd-ask-password-console.path \
+                        ${systemd_system_unitdir}/sysinit.target.wants/systemd-ask-password-wall.path \
+                        ${systemd_system_unitdir}/multi-user.target.wants/systemd-ask-password-wall.path \
+                        ${rootlibexecdir}/systemd/systemd-resolve-host \
+                        ${rootlibexecdir}/systemd/systemd-ac-power \
+                        ${rootlibexecdir}/systemd/systemd-activate \
+                        ${rootlibexecdir}/systemd/systemd-bus-proxyd \
+                        ${systemd_system_unitdir}/systemd-bus-proxyd.service \
+                        ${systemd_system_unitdir}/systemd-bus-proxyd.socket \
+                        ${rootlibexecdir}/systemd/systemd-socket-proxyd \
+                        ${rootlibexecdir}/systemd/systemd-reply-password \
+                        ${rootlibexecdir}/systemd/systemd-sleep \
+                        ${rootlibexecdir}/systemd/system-sleep \
+                        ${systemd_system_unitdir}/systemd-hibernate.service \
+                        ${systemd_system_unitdir}/systemd-hybrid-sleep.service \
+                        ${systemd_system_unitdir}/systemd-suspend.service \
+                        ${systemd_system_unitdir}/sleep.target \
+                        ${rootlibexecdir}/systemd/systemd-initctl \
+                        ${systemd_system_unitdir}/systemd-initctl.service \
+                        ${systemd_system_unitdir}/systemd-initctl.socket \
+                        ${systemd_system_unitdir}/sockets.target.wants/systemd-initctl.socket \
+                        ${rootlibexecdir}/systemd/system-generators/systemd-gpt-auto-generator \
+                        ${rootlibexecdir}/systemd/systemd-cgroups-agent \
+"
+
+FILES:${PN}-udev-rules = "\
+                        ${rootlibexecdir}/udev/rules.d/70-uaccess.rules \
+                        ${rootlibexecdir}/udev/rules.d/71-seat.rules \
+                        ${rootlibexecdir}/udev/rules.d/73-seat-late.rules \
+                        ${rootlibexecdir}/udev/rules.d/99-systemd.rules \
+"
+
+CONFFILES:${PN} = "${sysconfdir}/systemd/coredump.conf \
+	${sysconfdir}/systemd/journald.conf \
+	${sysconfdir}/systemd/logind.conf \
+	${sysconfdir}/systemd/networkd.conf \
+	${sysconfdir}/systemd/pstore.conf \
+	${sysconfdir}/systemd/resolved.conf \
+	${sysconfdir}/systemd/sleep.conf \
+	${sysconfdir}/systemd/system.conf \
+	${sysconfdir}/systemd/timesyncd.conf \
+	${sysconfdir}/systemd/user.conf \
+"
+
+FILES:${PN} = " ${base_bindir}/* \
+                ${base_sbindir}/shutdown \
+                ${base_sbindir}/halt \
+                ${base_sbindir}/poweroff \
+                ${base_sbindir}/runlevel \
+                ${base_sbindir}/telinit \
+                ${base_sbindir}/resolvconf \
+                ${base_sbindir}/reboot \
+                ${base_sbindir}/init \
+                ${datadir}/dbus-1/services \
+                ${datadir}/dbus-1/system-services \
+                ${datadir}/polkit-1 \
+                ${datadir}/${BPN} \
+                ${datadir}/factory \
+                ${sysconfdir}/dbus-1/ \
+                ${sysconfdir}/modules-load.d/ \
+                ${sysconfdir}/pam.d/ \
+                ${sysconfdir}/profile.d/ \
+                ${sysconfdir}/sysctl.d/ \
+                ${sysconfdir}/systemd/ \
+                ${sysconfdir}/tmpfiles.d/ \
+                ${sysconfdir}/xdg/ \
+                ${sysconfdir}/init.d/README \
+                ${sysconfdir}/resolv-conf.systemd \
+                ${sysconfdir}/X11/xinit/xinitrc.d/* \
+                ${rootlibexecdir}/systemd/* \
+                ${libdir}/pam.d \
+                ${nonarch_libdir}/pam.d \
+                ${systemd_unitdir}/* \
+                ${base_libdir}/security/*.so \
+                /cgroup \
+                ${bindir}/systemd* \
+                ${bindir}/busctl \
+                ${bindir}/coredumpctl \
+                ${bindir}/localectl \
+                ${bindir}/hostnamectl \
+                ${bindir}/resolvectl \
+                ${bindir}/timedatectl \
+                ${bindir}/bootctl \
+                ${bindir}/oomctl \
+                ${exec_prefix}/lib/tmpfiles.d/*.conf \
+                ${exec_prefix}/lib/systemd \
+                ${exec_prefix}/lib/modules-load.d \
+                ${exec_prefix}/lib/sysctl.d \
+                ${exec_prefix}/lib/sysusers.d \
+                ${exec_prefix}/lib/environment.d \
+                ${localstatedir} \
+                ${rootlibexecdir}/modprobe.d/systemd.conf \
+                ${rootlibexecdir}/modprobe.d/README \
+                ${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \
+                ${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \
+                ${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \
+                ${datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf \
+                ${datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf \
+                ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', '${datadir}/dbus-1/system.d/org.freedesktop.hostname1_no_polkit.conf', '', d)} \
+                ${datadir}/dbus-1/system.d/org.freedesktop.hostname1.conf \
+                ${datadir}/dbus-1/system.d/org.freedesktop.login1.conf \
+                ${datadir}/dbus-1/system.d/org.freedesktop.timesync1.conf \
+                ${datadir}/dbus-1/system.d/org.freedesktop.portable1.conf \
+                ${datadir}/dbus-1/system.d/org.freedesktop.oom1.conf \
+                ${datadir}/dbus-1/system.d/org.freedesktop.home1.conf \
+               "
+
+FILES:${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
+
+RDEPENDS:${PN} += "kmod dbus util-linux-mount util-linux-umount udev (= ${EXTENDPKGV}) systemd-udev-rules util-linux-agetty util-linux-fsck"
+RDEPENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}"
+RDEPENDS:${PN} += "volatile-binds"
+
+RRECOMMENDS:${PN} += "systemd-extra-utils \
+                      udev-hwdb \
+                      e2fsprogs-e2fsck \
+                      kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 kernel-module-sch-fq-codel \
+                      os-release \
+                      systemd-conf \
+"
+
+INSANE_SKIP:${PN} += "dev-so libdir"
+INSANE_SKIP:${PN}-dbg += "libdir"
+INSANE_SKIP:${PN}-doc += " libdir"
+
+RPROVIDES:udev = "hotplug"
+
+RDEPENDS:udev-hwdb += "udev"
+
+FILES:udev += "${base_sbindir}/udevd \
+               ${rootlibexecdir}/systemd/network/99-default.link \
+               ${rootlibexecdir}/systemd/systemd-udevd \
+               ${rootlibexecdir}/udev/accelerometer \
+               ${rootlibexecdir}/udev/ata_id \
+               ${rootlibexecdir}/udev/cdrom_id \
+               ${rootlibexecdir}/udev/collect \
+               ${rootlibexecdir}/udev/dmi_memory_id \
+               ${rootlibexecdir}/udev/fido_id \
+               ${rootlibexecdir}/udev/findkeyboards \
+               ${rootlibexecdir}/udev/keyboard-force-release.sh \
+               ${rootlibexecdir}/udev/keymap \
+               ${rootlibexecdir}/udev/mtd_probe \
+               ${rootlibexecdir}/udev/scsi_id \
+               ${rootlibexecdir}/udev/v4l_id \
+               ${rootlibexecdir}/udev/keymaps \
+               ${rootlibexecdir}/udev/rules.d/50-udev-default.rules \
+               ${rootlibexecdir}/udev/rules.d/60-autosuspend.rules \
+               ${rootlibexecdir}/udev/rules.d/60-autosuspend-chromiumos.rules \
+               ${rootlibexecdir}/udev/rules.d/60-block.rules \
+               ${rootlibexecdir}/udev/rules.d/60-cdrom_id.rules \
+               ${rootlibexecdir}/udev/rules.d/60-drm.rules \
+               ${rootlibexecdir}/udev/rules.d/60-evdev.rules \
+               ${rootlibexecdir}/udev/rules.d/60-fido-id.rules \
+               ${rootlibexecdir}/udev/rules.d/60-input-id.rules \
+               ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \
+               ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \
+               ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \
+               ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \
+               ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \
+               ${rootlibexecdir}/udev/rules.d/60-sensor.rules \
+               ${rootlibexecdir}/udev/rules.d/60-serial.rules \
+               ${rootlibexecdir}/udev/rules.d/61-autosuspend-manual.rules \
+               ${rootlibexecdir}/udev/rules.d/64-btrfs.rules \
+               ${rootlibexecdir}/udev/rules.d/70-camera.rules \
+               ${rootlibexecdir}/udev/rules.d/70-joystick.rules \
+               ${rootlibexecdir}/udev/rules.d/70-memory.rules \
+               ${rootlibexecdir}/udev/rules.d/70-mouse.rules \
+               ${rootlibexecdir}/udev/rules.d/70-power-switch.rules \
+               ${rootlibexecdir}/udev/rules.d/70-touchpad.rules \
+               ${rootlibexecdir}/udev/rules.d/75-net-description.rules \
+               ${rootlibexecdir}/udev/rules.d/75-probe_mtd.rules \
+               ${rootlibexecdir}/udev/rules.d/78-sound-card.rules \
+               ${rootlibexecdir}/udev/rules.d/80-drivers.rules \
+               ${rootlibexecdir}/udev/rules.d/80-net-setup-link.rules \
+               ${rootlibexecdir}/udev/rules.d/81-net-dhcp.rules \
+               ${rootlibexecdir}/udev/rules.d/90-vconsole.rules \
+               ${rootlibexecdir}/udev/rules.d/README \
+               ${sysconfdir}/udev \
+               ${sysconfdir}/init.d/systemd-udevd \
+               ${systemd_system_unitdir}/*udev* \
+               ${systemd_system_unitdir}/*.wants/*udev* \
+               ${base_bindir}/systemd-hwdb \
+               ${base_bindir}/udevadm \
+               ${base_sbindir}/udevadm \
+               ${libexecdir}/${MLPREFIX}udevadm \
+               ${datadir}/bash-completion/completions/udevadm \
+               ${systemd_system_unitdir}/systemd-hwdb-update.service \
+              "
+
+FILES:udev-hwdb = "${rootlibexecdir}/udev/hwdb.d \
+                   "
+
+RCONFLICTS:${PN} = "tiny-init ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolvconf', '', d)}"
+
+INITSCRIPT_PACKAGES = "udev"
+INITSCRIPT_NAME:udev = "systemd-udevd"
+INITSCRIPT_PARAMS:udev = "start 03 S ."
+
+python __anonymous() {
+    if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
+        d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
+
+    if bb.utils.contains('PACKAGECONFIG', 'repart', True, False, d) and not bb.utils.contains('PACKAGECONFIG', 'openssl', True, False, d):
+        bb.error("PACKAGECONFIG[repart] requires PACKAGECONFIG[openssl]")
+
+    if bb.utils.contains('PACKAGECONFIG', 'homed', True, False, d) and not bb.utils.contains('PACKAGECONFIG', 'userdb openssl cryptsetup', True, False, d):
+        bb.error("PACKAGECONFIG[homed] requires PACKAGECONFIG[userdb], PACKAGECONFIG[openssl] and PACKAGECONFIG[cryptsetup]")
+}
+
+python do_warn_musl() {
+    if d.getVar('TCLIBC') == "musl":
+        bb.warn("Using systemd with musl is not recommended since it is not supported upstream and some patches are known to be problematic.")
+}
+addtask warn_musl before do_configure
+
+ALTERNATIVE:${PN} = "halt reboot shutdown poweroff runlevel ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolv-conf', '', d)}"
+
+ALTERNATIVE_TARGET[resolv-conf] = "${sysconfdir}/resolv-conf.systemd"
+ALTERNATIVE_LINK_NAME[resolv-conf] = "${sysconfdir}/resolv.conf"
+ALTERNATIVE_PRIORITY[resolv-conf] ?= "50"
+
+ALTERNATIVE_TARGET[halt] = "${base_bindir}/systemctl"
+ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt"
+ALTERNATIVE_PRIORITY[halt] ?= "300"
+
+ALTERNATIVE_TARGET[reboot] = "${base_bindir}/systemctl"
+ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot"
+ALTERNATIVE_PRIORITY[reboot] ?= "300"
+
+ALTERNATIVE_TARGET[shutdown] = "${base_bindir}/systemctl"
+ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown"
+ALTERNATIVE_PRIORITY[shutdown] ?= "300"
+
+ALTERNATIVE_TARGET[poweroff] = "${base_bindir}/systemctl"
+ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff"
+ALTERNATIVE_PRIORITY[poweroff] ?= "300"
+
+ALTERNATIVE_TARGET[runlevel] = "${base_bindir}/systemctl"
+ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel"
+ALTERNATIVE_PRIORITY[runlevel] ?= "300"
+
+pkg_postinst:${PN}:libc-glibc () {
+	sed -e '/^hosts:/s/\s*\<myhostname\>//' \
+		-e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2 myhostname \3\4\5/' \
+		-i $D${sysconfdir}/nsswitch.conf
+}
+
+pkg_prerm:${PN}:libc-glibc () {
+	sed -e '/^hosts:/s/\s*\<myhostname\>//' \
+		-e '/^hosts:/s/\s*myhostname//' \
+		-i $D${sysconfdir}/nsswitch.conf
+}
+
+PACKAGE_WRITE_DEPS += "qemu-native"
+pkg_postinst:udev-hwdb () {
+	if test -n "$D"; then
+		$INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} rootlibexecdir="${rootlibexecdir}" PREFERRED_PROVIDER_udev="${PREFERRED_PROVIDER_udev}"
+	else
+		udevadm hwdb --update
+	fi
+}
+
+pkg_prerm:udev-hwdb () {
+	rm -f $D${sysconfdir}/udev/hwdb.bin
+}
diff --git a/poky/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch b/poky/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch
index 494aa0e..4386e6f 100644
--- a/poky/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch
+++ b/poky/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch
@@ -1,4 +1,4 @@
-From 6c490ea6579a132fabb7dbd25387bb521f820371 Mon Sep 17 00:00:00 2001
+From 96fb53ef2ccd2580cf0aa565ef1629cb05eae50a Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Wed, 24 Jul 2013 17:07:22 +0800
 Subject: [PATCH] pidof: add -m option
@@ -10,7 +10,7 @@
 
 https://bugzilla.redhat.com/show_bug.cgi?id=883856
 
-Upstream-Status: backport
+Upstream-Status: Backport
 Imported patch from: https://bugzilla.redhat.com/attachment.cgi?id=658166
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
@@ -21,7 +21,7 @@
  2 files changed, 65 insertions(+), 3 deletions(-)
 
 diff --git a/man/pidof.8 b/man/pidof.8
-index ebe5f55..2fdc4d3 100644
+index 84ed1e4..ac184da 100644
 --- a/man/pidof.8
 +++ b/man/pidof.8
 @@ -25,6 +25,7 @@ pidof -- find the process ID of a running program.
@@ -32,7 +32,7 @@
  .RB [ \-o
  .IR omitpid[,omitpid...] ]
  .RB [ \-o
-@@ -76,6 +77,11 @@ is shown. The default separator is a space.
+@@ -79,6 +80,11 @@ is shown. The default separator is a space.
  Tells \fIpidof\fP to omit processes with that process id. The special
  pid \fB%PPID\fP can be used to name the parent process of the \fIpidof\fP
  program, in other words the calling shell or shell script.
@@ -45,10 +45,10 @@
  .TP
  .B 0
 diff --git a/src/killall5.c b/src/killall5.c
-index 8b5cb38..a664954 100644
+index b0728fa..72289e3 100644
 --- a/src/killall5.c
 +++ b/src/killall5.c
-@@ -126,6 +126,7 @@ typedef struct _s_nfs
+@@ -121,6 +121,7 @@ typedef struct _s_nfs
  
  /* List of processes. */
  PROC *plist;
@@ -56,7 +56,7 @@
  
  /* List of processes to omit. */
  OMIT *omit;
-@@ -361,6 +362,20 @@ static void clear_mnt(void)
+@@ -356,6 +357,20 @@ static void clear_mnt(void)
  	}
  }
  
@@ -77,15 +77,15 @@
  /*
   *     Check if path is a shadow off a NFS partition.
   */
-@@ -486,6 +501,7 @@ int readproc(int do_stat)
+@@ -481,6 +496,7 @@ int readproc()
  	DIR		*dir;
  	FILE		*fp;
  	PROC		*p, *n;
 +	OMIT		*o, *m;
  	struct dirent	*d;
- 	struct stat	st;
  	char		path[PATH_MAX+1];
-@@ -733,6 +749,17 @@ int readproc(int do_stat)
+ 	char		buf[PATH_MAX+1];
+@@ -670,6 +686,17 @@ int readproc()
  		p->next = plist;
  		plist = p;
  		p->pid = pid;
@@ -103,7 +103,7 @@
  	}
  	closedir(dir);
  
-@@ -944,6 +971,26 @@ PIDQ_HEAD *pidof(char *prog)
+@@ -870,6 +897,26 @@ PIDQ_HEAD *pidof(char *prog)
  	return q;
  }
  
@@ -130,7 +130,7 @@
  /* Give usage message and exit. */
  void usage(void)
  {
-@@ -994,6 +1041,7 @@ void nsyslog(int pri, char *fmt, ...)
+@@ -920,6 +967,7 @@ void nsyslog(int pri, char *fmt, ...)
  #define PIDOF_OMIT	0x02
  #define PIDOF_NETFS	0x04
  #define PIDOF_QUIET     0x08
@@ -138,7 +138,7 @@
  
  /*
   *	Pidof functionality.
-@@ -1011,6 +1059,7 @@ int main_pidof(int argc, char **argv)
+@@ -937,6 +985,7 @@ int main_pidof(int argc, char **argv)
  	char		tmp[512];
          char            sep = ' ';
  
@@ -146,7 +146,7 @@
  	omit = (OMIT*)0;
  	nlist = (NFS*)0;
  	opterr = 0;
-@@ -1018,7 +1067,7 @@ int main_pidof(int argc, char **argv)
+@@ -944,7 +993,7 @@ int main_pidof(int argc, char **argv)
  	if ((token = getenv("PIDOF_NETFS")) && (strcmp(token,"no") != 0))
  		flags |= PIDOF_NETFS;
  
@@ -155,7 +155,7 @@
  		case '?':
  			nsyslog(LOG_ERR,"invalid options on command line!\n");
  			closelog();
-@@ -1069,6 +1118,9 @@ int main_pidof(int argc, char **argv)
+@@ -995,6 +1044,9 @@ int main_pidof(int argc, char **argv)
                  case 'z':
                          list_dz_processes = TRUE;
                          break;
@@ -165,7 +165,7 @@
  		case 'n':
  			flags |= PIDOF_NETFS;
  			break;
-@@ -1100,10 +1152,13 @@ int main_pidof(int argc, char **argv)
+@@ -1026,10 +1078,13 @@ int main_pidof(int argc, char **argv)
  			pid_t spid = 0;
  			while ((p = get_next_from_pid_q(q))) {
  				if ((flags & PIDOF_OMIT) && omit) {
@@ -181,7 +181,7 @@
  					}
  
  					/*
-@@ -1145,6 +1200,7 @@ int main_pidof(int argc, char **argv)
+@@ -1071,6 +1126,7 @@ int main_pidof(int argc, char **argv)
  		printf("\n");
          }
  
diff --git a/poky/meta/recipes-core/sysvinit/sysvinit/realpath.patch b/poky/meta/recipes-core/sysvinit/sysvinit/realpath.patch
index 859fd8b..b559aa3 100644
--- a/poky/meta/recipes-core/sysvinit/sysvinit/realpath.patch
+++ b/poky/meta/recipes-core/sysvinit/sysvinit/realpath.patch
@@ -7,7 +7,7 @@
 realpath() API doesnt work on systems with PATH_MAX set to be unlimited e.g. GNU/Hurd
 However for Linux it should always work
 
-Upstream-Status: Inappropriate[Linux specific]
+Upstream-Status: Inappropriate [Linux specific]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 
diff --git a/poky/meta/recipes-core/sysvinit/sysvinit_3.00.bb b/poky/meta/recipes-core/sysvinit/sysvinit_3.00.bb
deleted file mode 100644
index 2649447..0000000
--- a/poky/meta/recipes-core/sysvinit/sysvinit_3.00.bb
+++ /dev/null
@@ -1,117 +0,0 @@
-SUMMARY = "System-V like init"
-DESCRIPTION = "This package is required to boot in most configurations.  It provides the /sbin/init program.  This is the first process started on boot, and the last process terminated before the system halts."
-HOMEPAGE = "http://savannah.nongnu.org/projects/sysvinit/"
-SECTION = "base"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
-                    file://COPYRIGHT;endline=15;md5=a1d3b3526501d3546d530bbe6ab6cdbe \
-                    "
-
-RDEPENDS:${PN} = "${PN}-inittab"
-
-SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.xz \
-           file://install.patch \
-           file://crypt-lib.patch \
-           file://pidof-add-m-option.patch \
-           file://realpath.patch \
-           file://0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch \
-           file://rcS-default \
-           file://rc \
-           file://rcS \
-           file://bootlogd.init \
-           file://01_bootlogd \
-           "
-SRC_URI[sha256sum] = "ed6bc20adb6735389841e7d3eb8650fa750c76af20bf4ed73b1330a4d4c14017"
-
-S = "${WORKDIR}/sysvinit-${PV}"
-
-inherit update-alternatives features_check
-DEPENDS:append = " update-rc.d-native base-passwd virtual/crypt"
-do_package_setscene[depends] = "${MLPREFIX}base-passwd:do_populate_sysroot"
-
-PACKAGECONFIG[psplash-text-updates] = ",,"
-
-REQUIRED_DISTRO_FEATURES = "sysvinit"
-
-ALTERNATIVE:${PN} = "init mountpoint halt reboot runlevel shutdown poweroff last lastb mesg utmpdump wall"
-
-ALTERNATIVE_PRIORITY = "200"
-
-ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init"
-ALTERNATIVE_PRIORITY[init] = "50"
-
-ALTERNATIVE_LINK_NAME[mountpoint] = "${base_bindir}/mountpoint"
-ALTERNATIVE_PRIORITY[mountpoint] = "20"
-
-ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt"
-ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot"
-ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel"
-ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown"
-ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff"
-
-ALTERNATIVE:${PN}-pidof = "pidof"
-ALTERNATIVE_LINK_NAME[pidof] = "${base_bindir}/pidof"
-
-ALTERNATIVE:${PN}-sulogin = "sulogin"
-ALTERNATIVE_LINK_NAME[sulogin] = "${base_sbindir}/sulogin"
-
-ALTERNATIVE:${PN}-doc = "mountpoint.1 last.1 lastb.1 mesg.1 wall.1 sulogin.8 utmpdump.1"
-
-ALTERNATIVE_LINK_NAME[last.1] = "${mandir}/man1/last.1"
-ALTERNATIVE_LINK_NAME[lastb.1] = "${mandir}/man1/lastb.1"
-ALTERNATIVE_LINK_NAME[mesg.1] = "${mandir}/man1/mesg.1"
-ALTERNATIVE_LINK_NAME[mountpoint.1] = "${mandir}/man1/mountpoint.1"
-ALTERNATIVE_LINK_NAME[sulogin.8] = "${mandir}/man8/sulogin.8"
-ALTERNATIVE_LINK_NAME[utmpdump.1] = "${mandir}/man1/utmpdump.1"
-ALTERNATIVE_LINK_NAME[wall.1] = "${mandir}/man1/wall.1"
-
-PACKAGES =+ "sysvinit-pidof sysvinit-sulogin"
-FILES:${PN} += "${base_sbindir}/* ${base_bindir}/*"
-FILES:sysvinit-pidof = "${base_bindir}/pidof.sysvinit ${base_sbindir}/killall5"
-FILES:sysvinit-sulogin = "${base_sbindir}/sulogin.sysvinit"
-
-RDEPENDS:${PN} += "sysvinit-pidof initd-functions base-passwd"
-
-CFLAGS:prepend = "-D_GNU_SOURCE "
-export LCRYPT = "-lcrypt"
-EXTRA_OEMAKE += "'base_bindir=${base_bindir}' \
-		 'base_sbindir=${base_sbindir}' \
-		 'bindir=${bindir}' \
-		 'sbindir=${sbindir}' \
-		 'sysconfdir=${sysconfdir}' \
-		 'includedir=${includedir}' \
-		 'mandir=${mandir}' \
-                 MNTPOINT=yes"
-
-do_install () {
-	oe_runmake 'ROOT=${D}' install
-
-	install -d ${D}${sysconfdir} \
-		   ${D}${sysconfdir}/default \
-		   ${D}${sysconfdir}/init.d
-	for level in S 0 1 2 3 4 5 6; do
-		install -d ${D}${sysconfdir}/rc$level.d
-	done
-
-	sed -e \
-		's:#PSPLASH_TEXT#:${@bb.utils.contains("PACKAGECONFIG","psplash-text-updates","yes","no", d)}:g' \
-		${WORKDIR}/rcS-default > ${D}${sysconfdir}/default/rcS
-	chmod 0644 ${D}${sysconfdir}/default/rcS
-	install -m 0755    ${WORKDIR}/rc		${D}${sysconfdir}/init.d
-	install -m 0755    ${WORKDIR}/rcS		${D}${sysconfdir}/init.d
-	install -m 0755    ${WORKDIR}/bootlogd.init     ${D}${sysconfdir}/init.d/bootlogd
-	ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd
-
-	update-rc.d -r ${D} bootlogd start 07 S .
-	update-rc.d -r ${D} stop-bootlogd start 99 2 3 4 5 .
-
-	install -d ${D}${sysconfdir}/default/volatiles
-	install -m 0644 ${WORKDIR}/01_bootlogd ${D}${sysconfdir}/default/volatiles
-
-	chown root:shutdown ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown
-	chmod o-x,u+s ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown
-
-        # Already provided by e2fsprogs; sysvinit's version is a copy from there
-        rm ${D}${base_sbindir}/logsave
-        rm ${D}${mandir}/man8/logsave.8
-}
diff --git a/poky/meta/recipes-core/sysvinit/sysvinit_3.01.bb b/poky/meta/recipes-core/sysvinit/sysvinit_3.01.bb
new file mode 100644
index 0000000..9952f83
--- /dev/null
+++ b/poky/meta/recipes-core/sysvinit/sysvinit_3.01.bb
@@ -0,0 +1,117 @@
+SUMMARY = "System-V like init"
+DESCRIPTION = "This package is required to boot in most configurations.  It provides the /sbin/init program.  This is the first process started on boot, and the last process terminated before the system halts."
+HOMEPAGE = "http://savannah.nongnu.org/projects/sysvinit/"
+SECTION = "base"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://COPYRIGHT;endline=15;md5=a1d3b3526501d3546d530bbe6ab6cdbe \
+                    "
+
+RDEPENDS:${PN} = "${PN}-inittab"
+
+SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.xz \
+           file://install.patch \
+           file://crypt-lib.patch \
+           file://pidof-add-m-option.patch \
+           file://realpath.patch \
+           file://0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch \
+           file://rcS-default \
+           file://rc \
+           file://rcS \
+           file://bootlogd.init \
+           file://01_bootlogd \
+           "
+SRC_URI[sha256sum] = "68b11a4772cdacce5fb65a4cbead324a2ce3999d138b4ff61dc2d59e57ef5793"
+
+S = "${WORKDIR}/sysvinit-${PV}"
+
+inherit update-alternatives features_check
+DEPENDS:append = " update-rc.d-native base-passwd virtual/crypt"
+do_package_setscene[depends] = "${MLPREFIX}base-passwd:do_populate_sysroot"
+
+PACKAGECONFIG[psplash-text-updates] = ",,"
+
+REQUIRED_DISTRO_FEATURES = "sysvinit"
+
+ALTERNATIVE:${PN} = "init mountpoint halt reboot runlevel shutdown poweroff last lastb mesg utmpdump wall"
+
+ALTERNATIVE_PRIORITY = "200"
+
+ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init"
+ALTERNATIVE_PRIORITY[init] = "50"
+
+ALTERNATIVE_LINK_NAME[mountpoint] = "${base_bindir}/mountpoint"
+ALTERNATIVE_PRIORITY[mountpoint] = "20"
+
+ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt"
+ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot"
+ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel"
+ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown"
+ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff"
+
+ALTERNATIVE:${PN}-pidof = "pidof"
+ALTERNATIVE_LINK_NAME[pidof] = "${base_bindir}/pidof"
+
+ALTERNATIVE:${PN}-sulogin = "sulogin"
+ALTERNATIVE_LINK_NAME[sulogin] = "${base_sbindir}/sulogin"
+
+ALTERNATIVE:${PN}-doc = "mountpoint.1 last.1 lastb.1 mesg.1 wall.1 sulogin.8 utmpdump.1"
+
+ALTERNATIVE_LINK_NAME[last.1] = "${mandir}/man1/last.1"
+ALTERNATIVE_LINK_NAME[lastb.1] = "${mandir}/man1/lastb.1"
+ALTERNATIVE_LINK_NAME[mesg.1] = "${mandir}/man1/mesg.1"
+ALTERNATIVE_LINK_NAME[mountpoint.1] = "${mandir}/man1/mountpoint.1"
+ALTERNATIVE_LINK_NAME[sulogin.8] = "${mandir}/man8/sulogin.8"
+ALTERNATIVE_LINK_NAME[utmpdump.1] = "${mandir}/man1/utmpdump.1"
+ALTERNATIVE_LINK_NAME[wall.1] = "${mandir}/man1/wall.1"
+
+PACKAGES =+ "sysvinit-pidof sysvinit-sulogin"
+FILES:${PN} += "${base_sbindir}/* ${base_bindir}/*"
+FILES:sysvinit-pidof = "${base_bindir}/pidof.sysvinit ${base_sbindir}/killall5"
+FILES:sysvinit-sulogin = "${base_sbindir}/sulogin.sysvinit"
+
+RDEPENDS:${PN} += "sysvinit-pidof initd-functions base-passwd"
+
+CFLAGS:prepend = "-D_GNU_SOURCE "
+export LCRYPT = "-lcrypt"
+EXTRA_OEMAKE += "'base_bindir=${base_bindir}' \
+		 'base_sbindir=${base_sbindir}' \
+		 'bindir=${bindir}' \
+		 'sbindir=${sbindir}' \
+		 'sysconfdir=${sysconfdir}' \
+		 'includedir=${includedir}' \
+		 'mandir=${mandir}' \
+                 MNTPOINT=yes"
+
+do_install () {
+	oe_runmake 'ROOT=${D}' install
+
+	install -d ${D}${sysconfdir} \
+		   ${D}${sysconfdir}/default \
+		   ${D}${sysconfdir}/init.d
+	for level in S 0 1 2 3 4 5 6; do
+		install -d ${D}${sysconfdir}/rc$level.d
+	done
+
+	sed -e \
+		's:#PSPLASH_TEXT#:${@bb.utils.contains("PACKAGECONFIG","psplash-text-updates","yes","no", d)}:g' \
+		${WORKDIR}/rcS-default > ${D}${sysconfdir}/default/rcS
+	chmod 0644 ${D}${sysconfdir}/default/rcS
+	install -m 0755    ${WORKDIR}/rc		${D}${sysconfdir}/init.d
+	install -m 0755    ${WORKDIR}/rcS		${D}${sysconfdir}/init.d
+	install -m 0755    ${WORKDIR}/bootlogd.init     ${D}${sysconfdir}/init.d/bootlogd
+	ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd
+
+	update-rc.d -r ${D} bootlogd start 07 S .
+	update-rc.d -r ${D} stop-bootlogd start 99 2 3 4 5 .
+
+	install -d ${D}${sysconfdir}/default/volatiles
+	install -m 0644 ${WORKDIR}/01_bootlogd ${D}${sysconfdir}/default/volatiles
+
+	chown root:shutdown ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown
+	chmod o-x,u+s ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown
+
+        # Already provided by e2fsprogs; sysvinit's version is a copy from there
+        rm ${D}${base_sbindir}/logsave
+        rm ${D}${mandir}/man8/logsave.8
+}
diff --git a/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb b/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb
index da71667..daee5c2 100644
--- a/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb
+++ b/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb
@@ -6,7 +6,7 @@
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://update-rc.d;beginline=5;endline=15;md5=d40a07c27f535425934bb5001f2037d9"
 
-SRC_URI = "git://git.yoctoproject.org/update-rc.d"
+SRC_URI = "git://git.yoctoproject.org/update-rc.d;branch=master"
 SRCREV = "8636cf478d426b568c1be11dbd9346f67e03adac"
 
 UPSTREAM_CHECK_COMMITS = "1"
diff --git a/poky/meta/recipes-devtools/apt/apt/0001-Fix-musl-build.patch b/poky/meta/recipes-devtools/apt/apt/0001-Fix-musl-build.patch
index a6e8ef1..0cefbed 100644
--- a/poky/meta/recipes-devtools/apt/apt/0001-Fix-musl-build.patch
+++ b/poky/meta/recipes-devtools/apt/apt/0001-Fix-musl-build.patch
@@ -1,22 +1,18 @@
-From 081c6be2f2f1cd77f399ea414f8d89c107826624 Mon Sep 17 00:00:00 2001
+From 6b8547161b902b01b639d05a4cdf849d7694556f Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 22 May 2020 15:29:23 +0000
-Subject: [PATCH] Fix musl build
+Subject: [PATCH] apt-pkg/contrib/srvrec.h: Explicitly include sys/types.h
 
-methods/connect.cc: Musl doesn't support AI_IDN flag in netdb.h
-header so define it manually.
-apt-pkg/contrib/srvrec.h: Add explicity include of sys/types.h
-to avoid errors in types u_int_SIZE.
+This avoids type errors with musl C library.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://salsa.debian.org/apt-team/apt/-/merge_requests/200]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  apt-pkg/contrib/srvrec.h | 1 +
- methods/connect.cc       | 5 +++++
- 2 files changed, 6 insertions(+)
+ 1 file changed, 1 insertion(+)
 
 diff --git a/apt-pkg/contrib/srvrec.h b/apt-pkg/contrib/srvrec.h
-index e22b7a1..b1115f5 100644
+index e5d0f43..2010184 100644
 --- a/apt-pkg/contrib/srvrec.h
 +++ b/apt-pkg/contrib/srvrec.h
 @@ -9,6 +9,7 @@
@@ -27,19 +23,6 @@
  #include <string>
  #include <vector>
  #include <arpa/nameser.h>
-diff --git a/methods/connect.cc b/methods/connect.cc
-index 1d6f891..122df35 100644
---- a/methods/connect.cc
-+++ b/methods/connect.cc
-@@ -42,6 +42,11 @@
- #include "connect.h"
- #include "rfc2553emu.h"
- #include <apti18n.h>
-+
-+#ifndef AI_IDN
-+#define AI_IDN 0x0040
-+#endif
-+
- 									/*}}}*/
- 
- static std::string LastHost;
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/apt/apt_2.2.4.bb b/poky/meta/recipes-devtools/apt/apt_2.2.4.bb
index 29fc49f..4e710e1 100644
--- a/poky/meta/recipes-devtools/apt/apt_2.2.4.bb
+++ b/poky/meta/recipes-devtools/apt/apt_2.2.4.bb
@@ -51,9 +51,8 @@
     -DWITH_TESTS=False \
 "
 
-do_configure:prepend () {
-    echo "set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH )" >>  ${WORKDIR}/toolchain.cmake
-
+do_configure:prepend() {
+	echo "set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH )" >>  ${WORKDIR}/toolchain.cmake
 }
 
 # Unfortunately apt hardcodes this all over the place
@@ -61,7 +60,7 @@
 RDEPENDS:${PN} += "bash perl dpkg"
 
 customize_apt_conf_sample() {
-    cat > ${D}${sysconfdir}/apt/apt.conf.sample << EOF
+	cat > ${D}${sysconfdir}/apt/apt.conf.sample << EOF
 Dir "${STAGING_DIR_NATIVE}/"
 {
    State "var/lib/apt/"
@@ -114,22 +113,25 @@
 }
 
 do_install:append:class-native() {
-    customize_apt_conf_sample
+	customize_apt_conf_sample
 }
 
 do_install:append:class-nativesdk() {
-    customize_apt_conf_sample
+	customize_apt_conf_sample
 }
 
-
 do_install:append:class-target() {
-    #Write the correct apt-architecture to apt.conf
-    APT_CONF=${D}/etc/apt/apt.conf
-    echo 'APT::Architecture "${DPKG_ARCH}";' > ${APT_CONF}
+	# Write the correct apt-architecture to apt.conf
+	APT_CONF=${D}${sysconfdir}/apt/apt.conf
+	echo 'APT::Architecture "${DPKG_ARCH}";' > ${APT_CONF}
+
+	# Remove /var/log/apt. /var/log is normally a link to /var/volatile/log
+	# and /var/volatile is a tmpfs mount. So anything created in /var/log
+	# will not be available when the tmpfs is mounted.
+	rm -rf ${D}${localstatedir}/log
 }
 
-# Avoid non-reproducible -src package
-do_install:append () {
-        sed -i -e "s,${B},,g" \
-            ${B}/apt-pkg/tagfile-keys.cc
+do_install:append() {
+	# Avoid non-reproducible -src package
+	sed -i -e "s,${B},,g" ${B}/apt-pkg/tagfile-keys.cc
 }
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/autoreconf-exclude.patch b/poky/meta/recipes-devtools/autoconf/autoconf/autoreconf-exclude.patch
index 374b939..c73aca4 100644
--- a/poky/meta/recipes-devtools/autoconf/autoconf/autoreconf-exclude.patch
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/autoreconf-exclude.patch
@@ -3,6 +3,7 @@
 Date: Thu, 12 Mar 2020 17:25:23 +0000
 Subject: [PATCH 4/7] autoreconf-exclude.patch
 
+Upstream-Status: Inappropriate [oe specific]
 ---
  bin/autoreconf.in | 26 ++++++++++++++++++++++++++
  1 file changed, 26 insertions(+)
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/autotest-automake-result-format.patch b/poky/meta/recipes-devtools/autoconf/autoconf/autotest-automake-result-format.patch
index de048d2..23329f7 100644
--- a/poky/meta/recipes-devtools/autoconf/autoconf/autotest-automake-result-format.patch
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/autotest-automake-result-format.patch
@@ -3,6 +3,7 @@
 Date: Thu, 12 Mar 2020 17:25:45 +0000
 Subject: [PATCH 6/7] autotest-automake-result-format.patch
 
+Upstream-Status: Inappropriate [oe specific]
 ---
  lib/autotest/general.m4 | 39 +++++++++++++++++++++++++++++----------
  1 file changed, 29 insertions(+), 10 deletions(-)
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/preferbash.patch b/poky/meta/recipes-devtools/autoconf/autoconf/preferbash.patch
index 3979e83..cfb145a 100644
--- a/poky/meta/recipes-devtools/autoconf/autoconf/preferbash.patch
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/preferbash.patch
@@ -14,6 +14,8 @@
 
 Change the search order to bash then sh, so that a known-good shell (bash)
 is used if available over something which is merely POSIX compliant.
+
+Upstream-Status: Inappropriate [oe specific]
 ---
  lib/m4sugar/m4sh.m4 | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/program_prefix.patch b/poky/meta/recipes-devtools/autoconf/autoconf/program_prefix.patch
index 4ff535f..657cbb3 100644
--- a/poky/meta/recipes-devtools/autoconf/autoconf/program_prefix.patch
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/program_prefix.patch
@@ -3,6 +3,7 @@
 Date: Thu, 12 Mar 2020 17:28:38 +0000
 Subject: [PATCH 3/7] program_prefix.patch
 
+Upstream-Status: Inappropriate [oe specific]
 Signed-off-by: Ross Burton <ross.burton@intel.com>
 ---
  lib/autoconf/general.m4 | 2 +-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/remove-usr-local-lib-from-m4.patch b/poky/meta/recipes-devtools/autoconf/autoconf/remove-usr-local-lib-from-m4.patch
index b842f14..f387801 100644
--- a/poky/meta/recipes-devtools/autoconf/autoconf/remove-usr-local-lib-from-m4.patch
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/remove-usr-local-lib-from-m4.patch
@@ -3,6 +3,7 @@
 Date: Thu, 12 Mar 2020 17:25:37 +0000
 Subject: [PATCH 1/7] remove-usr-local-lib-from-m4.patch
 
+Upstream-Status: Inappropriate [oe specific]
 Signed-off-by: Ross Burton <ross.burton@intel.com>
 ---
  lib/autoconf/functions.m4 | 9 ---------
diff --git a/poky/meta/recipes-devtools/automake/automake/0001-automake-Update-for-python.m4-to-respect-libdir.patch b/poky/meta/recipes-devtools/automake/automake/0001-automake-Update-for-python.m4-to-respect-libdir.patch
new file mode 100644
index 0000000..d280456
--- /dev/null
+++ b/poky/meta/recipes-devtools/automake/automake/0001-automake-Update-for-python.m4-to-respect-libdir.patch
@@ -0,0 +1,83 @@
+From dff74c5b19935cc11b30116a7ae9c8affdff246b Mon Sep 17 00:00:00 2001
+From: Kumar Gala <galak@kernel.crashing.org>
+Date: Thu, 11 Aug 2011 01:26:33 -0500
+Subject: [PATCH] automake: Update for python.m4 to respect libdir
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
+
+Updated for automake-1.12.6
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ m4/python.m4 | 24 ++++++------------------
+ 1 file changed, 6 insertions(+), 18 deletions(-)
+
+diff --git a/m4/python.m4 b/m4/python.m4
+index 4e7de9427..40fc5b396 100644
+--- a/m4/python.m4
++++ b/m4/python.m4
+@@ -96,6 +96,8 @@ AC_DEFUN([AM_PATH_PYTHON],
+     [am_cv_python_version=`$PYTHON -c "import sys; print ('%u.%u' % sys.version_info[[:2]])"`])
+   AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
+ 
++  AC_SUBST([PYTHON_LIB_PREFIX], ['${libdir}'])
++
+   dnl At times, e.g., when building shared libraries, you may want
+   dnl to know which OS platform Python thinks this is.
+   dnl
+@@ -251,14 +253,7 @@ except ImportError:
+    else
+      am_py_prefix=$am_cv_python_prefix
+    fi
+-   am_cv_python_pythondir=`$PYTHON -c "
+-$am_python_setup_sysconfig
+-if can_use_sysconfig:
+-  sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+-else:
+-  from distutils import sysconfig
+-  sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+-sys.stdout.write(sitedir)"`
++   am_cv_python_pythondir=`echo "$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages"`
+    #
+    case $am_cv_python_pythondir in
+    $am_py_prefix*)
+@@ -268,7 +263,7 @@ sys.stdout.write(sitedir)"`
+    *)
+      case $am_py_prefix in
+        /usr|/System*) ;;
+-       *) am_cv_python_pythondir="\${PYTHON_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
++       *) am_cv_python_pythondir=$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages
+           ;;
+      esac
+      ;;
+@@ -293,14 +288,7 @@ sys.stdout.write(sitedir)"`
+    else
+      am_py_exec_prefix=$am_cv_python_exec_prefix
+    fi
+-   am_cv_python_pyexecdir=`$PYTHON -c "
+-$am_python_setup_sysconfig
+-if can_use_sysconfig:
+-  sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_exec_prefix'})
+-else:
+-  from distutils import sysconfig
+-  sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix')
+-sys.stdout.write(sitedir)"`
++   am_cv_python_pyexecdir=`echo "$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages"`
+    #
+    case $am_cv_python_pyexecdir in
+    $am_py_exec_prefix*)
+@@ -310,7 +298,7 @@ sys.stdout.write(sitedir)"`
+    *)
+      case $am_py_exec_prefix in
+        /usr|/System*) ;;
+-       *) am_cv_python_pyexecdir="\${PYTHON_EXEC_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
++       *) am_cv_python_pyexecdir=$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages
+           ;;
+      esac
+      ;;
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/automake/automake/python-libdir.patch b/poky/meta/recipes-devtools/automake/automake/python-libdir.patch
deleted file mode 100644
index f319fc0..0000000
--- a/poky/meta/recipes-devtools/automake/automake/python-libdir.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 61bd143910001aaf610416d7ca56c52c0b081318 Mon Sep 17 00:00:00 2001
-From: Kumar Gala <galak@kernel.crashing.org>
-Date: Thu, 11 Aug 2011 01:26:33 -0500
-Subject: [PATCH] automake: Update for python.m4 to respect libdir
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-
-Updated for automake-1.12.6
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- m4/python.m4 | 27 +++++++--------------------
- 1 file changed, 7 insertions(+), 20 deletions(-)
-
-diff --git a/m4/python.m4 b/m4/python.m4
-index b2302ba..dbc6954 100644
---- a/m4/python.m4
-+++ b/m4/python.m4
-@@ -96,12 +96,13 @@ AC_DEFUN([AM_PATH_PYTHON],
-     [am_cv_python_version=`$PYTHON -c "import sys; print('%u.%u' % sys.version_info[[:2]])"`])
-   AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
- 
--  dnl Use the values of $prefix and $exec_prefix for the corresponding
--  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
-+  dnl Use the values of $prefix, $libdir and $exec_prefix for the corresponding
-+  dnl values of PYTHON_PREFIX PYTHON_LIB_PREFIX, and PYTHON_EXEC_PREFIX.  These are made
-   dnl distinct variables so they can be overridden if need be.  However,
-   dnl general consensus is that you shouldn't need this ability.
- 
-   AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
-+  AC_SUBST([PYTHON_LIB_PREFIX], ['${libdir}'])
-   AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
- 
-   dnl At times (like when building shared libraries) you may want
-@@ -146,14 +147,7 @@ except ImportError:
-      else
-        am_py_prefix=$prefix
-      fi
--     am_cv_python_pythondir=`$PYTHON -c "
--$am_python_setup_sysconfig
--if can_use_sysconfig:
--    sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
--else:
--    from distutils import sysconfig
--    sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
--sys.stdout.write(sitedir)"`
-+     am_cv_python_pythondir=`echo "$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages"`
-      case $am_cv_python_pythondir in
-      $am_py_prefix*)
-        am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
-@@ -163,7 +157,7 @@ sys.stdout.write(sitedir)"`
-        case $am_py_prefix in
-          /usr|/System*) ;;
-          *)
--	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
-+	  am_cv_python_pythondir=$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages
- 	  ;;
-        esac
-        ;;
-@@ -188,14 +182,7 @@ sys.stdout.write(sitedir)"`
-      else
-        am_py_exec_prefix=$exec_prefix
-      fi
--     am_cv_python_pyexecdir=`$PYTHON -c "
--$am_python_setup_sysconfig
--if can_use_sysconfig:
--    sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
--else:
--    from distutils import sysconfig
--    sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
--sys.stdout.write(sitedir)"`
-+     am_cv_python_pyexecdir=`echo "$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages"`
-      case $am_cv_python_pyexecdir in
-      $am_py_exec_prefix*)
-        am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
-@@ -205,7 +192,7 @@ sys.stdout.write(sitedir)"`
-        case $am_py_exec_prefix in
-          /usr|/System*) ;;
-          *)
--	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
-+	   am_cv_python_pyexecdir=$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages
- 	   ;;
-        esac
-        ;;
diff --git a/poky/meta/recipes-devtools/automake/automake_1.16.3.bb b/poky/meta/recipes-devtools/automake/automake_1.16.3.bb
deleted file mode 100644
index 1882eed..0000000
--- a/poky/meta/recipes-devtools/automake/automake_1.16.3.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-require automake.inc
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS:class-native = "autoconf-native"
-
-NAMEVER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-RDEPENDS:${PN} += "\
-    autoconf \
-    perl \
-    perl-module-bytes \
-    perl-module-data-dumper \
-    perl-module-strict \
-    perl-module-text-parsewords \
-    perl-module-thread-queue \
-    perl-module-threads \
-    perl-module-vars "
-
-RDEPENDS:${PN}:class-native = "autoconf-native hostperl-runtime-native"
-
-SRC_URI += "file://python-libdir.patch \
-           file://buildtest.patch \
-           file://performance.patch \
-           file://new_rt_path_for_test-driver.patch \
-           file://0001-automake-Add-default-libtool_tag-to-cppasm.patch \
-           file://0001-build-fix-race-in-parallel-builds.patch \
-           "
-
-SRC_URI[sha256sum] = "ce010788b51f64511a1e9bb2a1ec626037c6d0e7ede32c1c103611b9d3cba65f"
-
-PERL = "${USRBINPATH}/perl"
-PERL:class-native = "${USRBINPATH}/env perl"
-PERL:class-nativesdk = "${USRBINPATH}/env perl"
-
-CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'"
-
-do_install:append () {
-    install -d ${D}${datadir}
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/automake/automake_1.16.5.bb b/poky/meta/recipes-devtools/automake/automake_1.16.5.bb
new file mode 100644
index 0000000..6a9c185
--- /dev/null
+++ b/poky/meta/recipes-devtools/automake/automake_1.16.5.bb
@@ -0,0 +1,42 @@
+require automake.inc
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+DEPENDS:class-native = "autoconf-native"
+
+NAMEVER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+RDEPENDS:${PN} += "\
+    autoconf \
+    perl \
+    perl-module-bytes \
+    perl-module-data-dumper \
+    perl-module-strict \
+    perl-module-text-parsewords \
+    perl-module-thread-queue \
+    perl-module-threads \
+    perl-module-vars "
+
+RDEPENDS:${PN}:class-native = "autoconf-native hostperl-runtime-native"
+
+SRC_URI += "\
+           file://0001-automake-Update-for-python.m4-to-respect-libdir.patch \
+           file://buildtest.patch \
+           file://performance.patch \
+           file://new_rt_path_for_test-driver.patch \
+           file://0001-automake-Add-default-libtool_tag-to-cppasm.patch \
+           file://0001-build-fix-race-in-parallel-builds.patch \
+           "
+
+SRC_URI[sha256sum] = "07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605"
+
+PERL = "${USRBINPATH}/perl"
+PERL:class-native = "${USRBINPATH}/env perl"
+PERL:class-nativesdk = "${USRBINPATH}/env perl"
+
+CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'"
+
+do_install:append () {
+    install -d ${D}${datadir}
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.37.inc b/poky/meta/recipes-devtools/binutils/binutils-2.37.inc
index 6093558..043f7f8 100644
--- a/poky/meta/recipes-devtools/binutils/binutils-2.37.inc
+++ b/poky/meta/recipes-devtools/binutils/binutils-2.37.inc
@@ -22,19 +22,17 @@
 BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${SRCBRANCH};protocol=git"
 SRC_URI = "\
      ${BINUTILS_GIT_URI} \
-     file://0004-configure-widen-the-regexp-for-SH-architectures.patch \
      file://0005-Point-scripts-location-to-libdir.patch \
      file://0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch \
      file://0007-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch \
      file://0008-warn-for-uses-of-system-directories-when-cross-linki.patch \
-     file://0009-Change-default-emulation-for-mips64-linux.patch \
-     file://0010-Add-support-for-Netlogic-XLP.patch \
      file://0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch \
-     file://0012-Detect-64-bit-MIPS-targets.patch \
      file://0013-Use-libtool-2.4.patch \
      file://0014-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch \
      file://0015-sync-with-OE-libtool-changes.patch \
      file://0016-Check-for-clang-before-checking-gcc-version.patch \
      file://0017-bfd-Close-the-file-descriptor-if-there-is-no-archive.patch \
+     file://0001-elf-Discard-input-.note.gnu.build-id-sections.patch \
+     file://0001-CVE-2021-42574.patch \
 "
 S  = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0001-CVE-2021-42574.patch b/poky/meta/recipes-devtools/binutils/binutils/0001-CVE-2021-42574.patch
new file mode 100644
index 0000000..0622ae3
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/0001-CVE-2021-42574.patch
@@ -0,0 +1,2001 @@
+From b3aa80b45c4f46029efeb204bb9f2d2c4278a0e5 Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Tue, 9 Nov 2021 13:25:42 +0000
+Subject: [PATCH] Add --unicode option to control how unicode characters are
+ handled by display tools.
+
+	* nm.c: Add --unicode option to control how unicode characters are
+	handled.
+	* objdump.c: Likewise.
+	* readelf.c: Likewise.
+	* strings.c: Likewise.
+	* binutils.texi: Document the new feature.
+	* NEWS: Document the new feature.
+	* testsuite/binutils-all/unicode.exp: New file.
+	* testsuite/binutils-all/nm.hex.unicode
+	* testsuite/binutils-all/strings.escape.unicode
+	* testsuite/binutils-all/objdump.highlight.unicode
+	* testsuite/binutils-all/readelf.invalid.unicode
+
+CVE: CVE-2021-42574
+Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=b3aa80b45c4f46029efeb204bb9f2d2c4278a0e5]
+
+RP: Added tweak uint -> unsigned int partial backport of
+https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=795588aec4f894206863c938bd6d716895886009
+
+Signed-off-by: pgowda <pgowda.cve@gmail.com>
+---
+ binutils/ChangeLog         |  15 +
+ binutils/NEWS              |   9 +
+ binutils/doc/binutils.texi |  78 ++++
+ binutils/nm.c              | 228 ++++++++++-
+ binutils/objdump.c         | 235 ++++++++++--
+ binutils/readelf.c         | 190 +++++++++-
+ binutils/strings.c         | 757 ++++++++++++++++++++++++++++++++++---
+ 7 files changed, 1409 insertions(+), 103 deletions(-)
+
+diff --git a/binutils/ChangeLog b/binutils/ChangeLog
+--- a/binutils/ChangeLog	2021-12-19 19:00:27.038540406 -0800
++++ b/binutils/ChangeLog	2021-12-19 19:28:42.733565078 -0800
+@@ -1,3 +1,18 @@
++2021-11-09  Nick Clifton  <nickc@redhat.com>
++
++	* nm.c: Add --unicode option to control how unicode characters are
++	handled.
++	* objdump.c: Likewise.
++	* readelf.c: Likewise.
++	* strings.c: Likewise.
++	* binutils.texi: Document the new feature.
++	* NEWS: Document the new feature.
++	* testsuite/binutils-all/unicode.exp: New file.
++	* testsuite/binutils-all/nm.hex.unicode
++	* testsuite/binutils-all/strings.escape.unicode
++	* testsuite/binutils-all/objdump.highlight.unicode
++	* testsuite/binutils-all/readelf.invalid.unicode
++
+ 2021-07-16  Nick Clifton  <nickc@redhat.com>
+ 
+ 	* po/sv.po: Updated Swedish translation.
+diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
+--- a/binutils/doc/binutils.texi	2021-12-19 19:00:27.042540338 -0800
++++ b/binutils/doc/binutils.texi	2021-12-19 19:27:56.526354667 -0800
+@@ -812,6 +812,7 @@ nm [@option{-A}|@option{-o}|@option{--pr
+    [@option{-s}|@option{--print-armap}]
+    [@option{-t} @var{radix}|@option{--radix=}@var{radix}]
+    [@option{-u}|@option{--undefined-only}]
++   [@option{-U} @var{method}] [@option{--unicode=}@var{method}]
+    [@option{-V}|@option{--version}]
+    [@option{-X 32_64}]
+    [@option{--defined-only}]
+@@ -1132,6 +1133,21 @@ Use @var{radix} as the radix for printin
+ @cindex undefined symbols
+ Display only undefined symbols (those external to each object file).
+ 
++@item -U @var{[d|i|l|e|x|h]}
++@itemx --unicode=@var{[default|invalid|locale|escape|hex|highlight]}
++Controls the display of UTF-8 encoded mulibyte characters in strings.
++The default (@option{--unicode=default}) is to give them no special
++treatment.  The @option{--unicode=locale} option displays the sequence
++in the current locale, which may or may not support them.  The options
++@option{--unicode=hex} and @option{--unicode=invalid} display them as
++hex byte sequences enclosed by either angle brackets or curly braces.
++
++The @option{--unicode=escape} option displays them as escape sequences
++(@var{\uxxxx}) and the @option{--unicode=highlight} option displays
++them as escape sequences highlighted in red (if supported by the
++output device).  The colouring is intended to draw attention to the
++presence of unicode sequences where they might not be expected.
++
+ @item -V
+ @itemx --version
+ Show the version number of @command{nm} and exit.
+@@ -2247,6 +2263,7 @@ objdump [@option{-a}|@option{--archive-h
+         [@option{--prefix-strip=}@var{level}]
+         [@option{--insn-width=}@var{width}]
+         [@option{--visualize-jumps[=color|=extended-color|=off]}
++        [@option{-U} @var{method}] [@option{--unicode=}@var{method}]
+         [@option{-V}|@option{--version}]
+         [@option{-H}|@option{--help}]
+         @var{objfile}@dots{}
+@@ -2921,6 +2938,21 @@ When displaying symbols include those wh
+ special in some way and which would not normally be of interest to the
+ user.
+ 
++@item -U @var{[d|i|l|e|x|h]}
++@itemx --unicode=@var{[default|invalid|locale|escape|hex|highlight]}
++Controls the display of UTF-8 encoded mulibyte characters in strings.
++The default (@option{--unicode=default}) is to give them no special
++treatment.  The @option{--unicode=locale} option displays the sequence
++in the current locale, which may or may not support them.  The options
++@option{--unicode=hex} and @option{--unicode=invalid} display them as
++hex byte sequences enclosed by either angle brackets or curly braces.
++
++The @option{--unicode=escape} option displays them as escape sequences
++(@var{\uxxxx}) and the @option{--unicode=highlight} option displays
++them as escape sequences highlighted in red (if supported by the
++output device).  The colouring is intended to draw attention to the
++presence of unicode sequences where they might not be expected.
++
+ @item -V
+ @itemx --version
+ Print the version number of @command{objdump} and exit.
+@@ -3197,6 +3229,7 @@ strings [@option{-afovV}] [@option{-}@va
+         [@option{-n} @var{min-len}] [@option{--bytes=}@var{min-len}]
+         [@option{-t} @var{radix}] [@option{--radix=}@var{radix}]
+         [@option{-e} @var{encoding}] [@option{--encoding=}@var{encoding}]
++        [@option{-U} @var{method}] [@option{--unicode=}@var{method}]
+         [@option{-}] [@option{--all}] [@option{--print-file-name}]
+         [@option{-T} @var{bfdname}] [@option{--target=}@var{bfdname}]
+         [@option{-w}] [@option{--include-all-whitespace}]
+@@ -3288,6 +3321,28 @@ single-8-bit-byte characters, @samp{b} =
+ littleendian.  Useful for finding wide character strings. (@samp{l}
+ and @samp{b} apply to, for example, Unicode UTF-16/UCS-2 encodings).
+ 
++@item -U @var{[d|i|l|e|x|h]}
++@itemx --unicode=@var{[default|invalid|locale|escape|hex|highlight]}
++Controls the display of UTF-8 encoded mulibyte characters in strings.
++The default (@option{--unicode=default}) is to give them no special
++treatment, and instead rely upon the setting of the
++@option{--encoding} option.  The other values for this option
++automatically enable @option{--encoding=S}.
++
++The @option{--unicode=invalid} option treats them as non-graphic
++characters and hence not part of a valid string.  All the remaining
++options treat them as valid string characters.
++
++The @option{--unicode=locale} option displays them in the current
++locale, which may or may not support UTF-8 encoding.  The
++@option{--unicode=hex} option displays them as hex byte sequences
++enclosed between @var{<>} characters.  The @option{--unicode=escape}
++option displays them as escape sequences (@var{\uxxxx}) and the
++@option{--unicode=highlight} option displays them as escape sequences
++highlighted in red (if supported by the output device).  The colouring
++is intended to draw attention to the presence of unicode sequences
++where they might not be expected.
++
+ @item -T @var{bfdname}
+ @itemx --target=@var{bfdname}
+ @cindex object code format
+@@ -4796,6 +4851,7 @@ readelf [@option{-a}|@option{--all}]
+         [@option{--demangle@var{=style}}|@option{--no-demangle}]
+         [@option{--quiet}]
+         [@option{--recurse-limit}|@option{--no-recurse-limit}]
++        [@option{-U} @var{method}|@option{--unicode=}@var{method}]
+         [@option{-n}|@option{--notes}]
+         [@option{-r}|@option{--relocs}]
+         [@option{-u}|@option{--unwind}]
+@@ -4962,6 +5018,28 @@ necessary in order to demangle truly com
+ that if the recursion limit is disabled then stack exhaustion is
+ possible and any bug reports about such an event will be rejected.
+ 
++@item -U @var{[d|i|l|e|x|h]}
++@itemx --unicode=[default|invalid|locale|escape|hex|highlight]
++Controls the display of non-ASCII characters in identifier names.
++The default (@option{--unicode=locale} or @option{--unicode=default}) is
++to treat them as multibyte characters and display them in the current
++locale.  All other versions of this option treat the bytes as UTF-8
++encoded values and attempt to interpret them.  If they cannot be
++interpreted or if the @option{--unicode=invalid} option is used then
++they are displayed as a sequence of hex bytes, encloses in curly
++parethesis characters.
++
++Using the @option{--unicode=escape} option will display the characters
++as as unicode escape sequences (@var{\uxxxx}).  Using the
++@option{--unicode=hex} will display the characters as hex byte
++sequences enclosed between angle brackets.
++
++Using the @option{--unicode=highlight} will display the characters as 
++unicode escape sequences but it will also highlighted them in red,
++assuming that colouring is supported by the output device.  The
++colouring is intended to draw attention to the presence of unicode
++sequences when they might not be expected.
++
+ @item -e
+ @itemx --headers
+ Display all the headers in the file.  Equivalent to @option{-h -l -S}.
+diff --git a/binutils/NEWS b/binutils/NEWS
+--- a/binutils/NEWS	2021-12-19 19:00:27.038540406 -0800
++++ b/binutils/NEWS	2021-12-19 19:30:04.764162972 -0800
+@@ -1,5 +1,14 @@
+ -*- text -*-
+ 
++* Tools which display symbols or strings (readelf, strings, nm, objdump)
++  have a new command line option which controls how unicode characters are
++  handled.  By default they are treated as normal for the tool.  Using
++  --unicode=locale will display them according to the current locale.
++  Using --unicode=hex will display them as hex byte values, whilst
++  --unicode=escape will display them as escape sequences.  In addition
++  using --unicode=highlight will display them as unicode escape sequences
++  highlighted in red (if supported by the output device).
++
+ Changes in 2.37:
+ 
+ * The readelf tool has a new command line option which can be used to specify
+diff --git a/binutils/nm.c b/binutils/nm.c
+--- a/binutils/nm.c	2021-12-19 19:00:27.046540270 -0800
++++ b/binutils/nm.c	2021-12-19 19:36:34.797491555 -0800
+@@ -38,6 +38,11 @@
+ #include "bucomm.h"
+ #include "plugin-api.h"
+ #include "plugin.h"
++#include "safe-ctype.h"
++
++#ifndef streq
++#define streq(a,b) (strcmp ((a),(b)) == 0)
++#endif
+ 
+ /* When sorting by size, we use this structure to hold the size and a
+    pointer to the minisymbol.  */
+@@ -216,6 +221,18 @@ static const char *plugin_target = NULL;
+ static bfd *lineno_cache_bfd;
+ static bfd *lineno_cache_rel_bfd;
+ 
++typedef enum unicode_display_type
++{
++  unicode_default = 0,
++  unicode_locale,
++  unicode_escape,
++  unicode_hex,
++  unicode_highlight,
++  unicode_invalid
++} unicode_display_type;
++
++static unicode_display_type unicode_display = unicode_default;
++
+ enum long_option_values
+ {
+   OPTION_TARGET = 200,
+@@ -260,6 +277,7 @@ static struct option long_options[] =
+   {"target", required_argument, 0, OPTION_TARGET},
+   {"defined-only", no_argument, &defined_only, 1},
+   {"undefined-only", no_argument, &undefined_only, 1},
++  {"unicode", required_argument, NULL, 'U'},
+   {"version", no_argument, &show_version, 1},
+   {"with-symbol-versions", no_argument, &with_symbol_versions, 1},
+   {"without-symbol-versions", no_argument, &with_symbol_versions, 0},
+@@ -313,6 +331,8 @@ usage (FILE *stream, int status)
+   -t, --radix=RADIX      Use RADIX for printing symbol values\n\
+       --target=BFDNAME   Specify the target object format as BFDNAME\n\
+   -u, --undefined-only   Display only undefined symbols\n\
++  -U {d|s|i|x|e|h}       Specify how to treat UTF-8 encoded unicode characters\n\
++      --unicode={default|show|invalid|hex|escape|highlight}\n\
+       --with-symbol-versions  Display version strings after symbol names\n\
+   -X 32_64               (ignored)\n\
+   @FILE                  Read options from FILE\n\
+@@ -432,6 +452,187 @@ get_coff_symbol_type (const struct inter
+   return bufp;
+ }
+ 
++/* Convert a potential UTF-8 encoded sequence in IN into characters in OUT.
++   The conversion format is controlled by the unicode_display variable.
++   Returns the number of characters added to OUT.
++   Returns the number of bytes consumed from IN in CONSUMED.
++   Always consumes at least one byte and displays at least one character.  */
++   
++static unsigned int
++display_utf8 (const unsigned char * in, char * out, unsigned int * consumed)
++{
++  char *        orig_out = out;
++  unsigned int  nchars = 0;
++  unsigned int j;
++
++  if (unicode_display == unicode_default)
++    goto invalid;
++
++  if (in[0] < 0xc0)
++    goto invalid;
++
++  if ((in[1] & 0xc0) != 0x80)
++    goto invalid;
++
++  if ((in[0] & 0x20) == 0)
++    {
++      nchars = 2;
++      goto valid;
++    }
++
++  if ((in[2] & 0xc0) != 0x80)
++    goto invalid;
++
++  if ((in[0] & 0x10) == 0)
++    {
++      nchars = 3;
++      goto valid;
++    }
++
++  if ((in[3] & 0xc0) != 0x80)
++    goto invalid;
++
++  nchars = 4;
++
++ valid:
++  switch (unicode_display)
++    {
++    case unicode_locale:
++      /* Copy the bytes into the output buffer as is.  */
++      memcpy (out, in, nchars);
++      out += nchars;
++      break;
++
++    case unicode_invalid:
++    case unicode_hex:
++      out += sprintf (out, "%c", unicode_display == unicode_hex ? '<' : '{');
++      out += sprintf (out, "0x");
++      for (j = 0; j < nchars; j++)
++	out += sprintf (out, "%02x", in [j]);
++      out += sprintf (out, "%c", unicode_display == unicode_hex ? '>' : '}');
++      break;
++      
++    case unicode_highlight:
++      if (isatty (1))
++	out += sprintf (out, "\x1B[31;47m"); /* Red.  */
++      /* Fall through.  */
++    case unicode_escape:
++      switch (nchars)
++	{
++	case 2:
++	  out += sprintf (out, "\\u%02x%02x",
++		  ((in[0] & 0x1c) >> 2), 
++		  ((in[0] & 0x03) << 6) | (in[1] & 0x3f));
++	  break;
++
++	case 3:
++	  out += sprintf (out, "\\u%02x%02x",
++		  ((in[0] & 0x0f) << 4) | ((in[1] & 0x3c) >> 2),
++		  ((in[1] & 0x03) << 6) | ((in[2] & 0x3f)));
++	  break;
++
++	case 4:
++	  out += sprintf (out, "\\u%02x%02x%02x",
++		  ((in[0] & 0x07) << 6) | ((in[1] & 0x3c) >> 2),
++		  ((in[1] & 0x03) << 6) | ((in[2] & 0x3c) >> 2),
++		  ((in[2] & 0x03) << 6) | ((in[3] & 0x3f)));
++	  break;
++	default:
++	  /* URG.  */
++	  break;
++	}
++
++      if (unicode_display == unicode_highlight && isatty (1))
++	out += sprintf (out, "\033[0m"); /* Default colour.  */
++      break;
++
++    default:
++      /* URG */
++      break;
++    }
++
++  * consumed = nchars;
++  return out - orig_out;
++
++ invalid:
++  /* Not a valid UTF-8 sequence.  */
++  *out = *in;
++  * consumed = 1;
++  return 1;
++}
++
++/* Convert any UTF-8 encoded characters in NAME into the form specified by
++   unicode_display.  Also converts control characters.  Returns a static
++   buffer if conversion was necessary.
++   Code stolen from objdump.c:sanitize_string().  */
++
++static const char *
++convert_utf8 (const char * in)
++{
++  static char *  buffer = NULL;
++  static size_t  buffer_len = 0;
++  const char *   original = in;
++  char *         out;
++
++  /* Paranoia.  */
++  if (in == NULL)
++    return "";
++
++  /* See if any conversion is necessary.
++     In the majority of cases it will not be needed.  */
++  do
++    {
++      unsigned char c = *in++;
++
++      if (c == 0)
++	return original;
++
++      if (ISCNTRL (c))
++	break;
++
++      if (unicode_display != unicode_default && c >= 0xc0)
++	break;
++    }
++  while (1);
++
++  /* Copy the input, translating as needed.  */
++  in = original;
++  if (buffer_len < (strlen (in) * 9))
++    {
++      free ((void *) buffer);
++      buffer_len = strlen (in) * 9;
++      buffer = xmalloc (buffer_len + 1);
++    }
++
++  out = buffer;
++  do
++    {
++      unsigned char c = *in++;
++
++      if (c == 0)
++	break;
++
++      if (ISCNTRL (c))
++	{
++	  *out++ = '^';
++	  *out++ = c + 0x40;
++	}
++      else if (unicode_display != unicode_default && c >= 0xc0)
++	{
++	  unsigned int num_consumed;
++
++	  out += display_utf8 ((const unsigned char *)(in - 1), out, & num_consumed);
++	  in += num_consumed - 1;
++	}
++      else
++	*out++ = c;
++    }
++  while (1);
++
++  *out = 0;
++  return buffer;
++}
++
+ /* Print symbol name NAME, read from ABFD, with printf format FORM,
+    demangling it if requested.  */
+ 
+@@ -444,6 +645,7 @@ print_symname (const char *form, struct
+ 
+   if (name == NULL)
+     name = info->sinfo->name;
++
+   if (!with_symbol_versions
+       && bfd_get_flavour (abfd) == bfd_target_elf_flavour)
+     {
+@@ -451,6 +653,7 @@ print_symname (const char *form, struct
+       if (atver)
+ 	*atver = 0;
+     }
++
+   if (do_demangle && *name)
+     {
+       alloc = bfd_demangle (abfd, name, demangle_flags);
+@@ -458,6 +661,11 @@ print_symname (const char *form, struct
+ 	name = alloc;
+     }
+ 
++  if (unicode_display != unicode_default)
++    {
++      name = convert_utf8 (name);
++    }
++
+   if (info != NULL && info->elfinfo && with_symbol_versions)
+     {
+       const char *version_string;
+@@ -1807,7 +2015,7 @@ main (int argc, char **argv)
+     fatal (_("fatal error: libbfd ABI mismatch"));
+   set_default_bfd_target ();
+ 
+-  while ((c = getopt_long (argc, argv, "aABCDef:gHhjJlnopPrSst:uvVvX:",
++  while ((c = getopt_long (argc, argv, "aABCDef:gHhjJlnopPrSst:uU:vVvX:",
+ 			   long_options, (int *) 0)) != EOF)
+     {
+       switch (c)
+@@ -1900,6 +2108,24 @@ main (int argc, char **argv)
+ 	case 'u':
+ 	  undefined_only = 1;
+ 	  break;
++
++	case 'U':
++	  if (streq (optarg, "default") || streq (optarg, "d"))
++	    unicode_display = unicode_default;
++	  else if (streq (optarg, "locale") || streq (optarg, "l"))
++	    unicode_display = unicode_locale;
++	  else if (streq (optarg, "escape") || streq (optarg, "e"))
++	    unicode_display = unicode_escape;
++	  else if (streq (optarg, "invalid") || streq (optarg, "i"))
++	    unicode_display = unicode_invalid;
++	  else if (streq (optarg, "hex") || streq (optarg, "x"))
++	    unicode_display = unicode_hex;
++	  else if (streq (optarg, "highlight") || streq (optarg, "h"))
++	    unicode_display = unicode_highlight;
++	  else
++	    fatal (_("invalid argument to -U/--unicode: %s"), optarg);
++	  break;
++
+ 	case 'V':
+ 	  show_version = 1;
+ 	  break;
+diff --git a/binutils/objdump.c b/binutils/objdump.c
+--- a/binutils/objdump.c	2021-12-19 19:00:27.046540270 -0800
++++ b/binutils/objdump.c	2021-12-19 19:43:09.438736729 -0800
+@@ -204,6 +204,18 @@ static const struct objdump_private_desc
+ 
+ /* The list of detected jumps inside a function.  */
+ static struct jump_info *detected_jumps = NULL;
++
++typedef enum unicode_display_type
++{
++  unicode_default = 0,
++  unicode_locale,
++  unicode_escape,
++  unicode_hex,
++  unicode_highlight,
++  unicode_invalid
++} unicode_display_type;
++
++static unicode_display_type unicode_display = unicode_default;
+ 
+ static void usage (FILE *, int) ATTRIBUTE_NORETURN;
+ static void
+@@ -330,6 +342,9 @@ usage (FILE *stream, int status)
+       fprintf (stream, _("\
+   -w, --wide                     Format output for more than 80 columns\n"));
+       fprintf (stream, _("\
++  -U[d|l|i|x|e|h]                Controls the display of UTF-8 unicode characters\n\
++  --unicode=[default|locale|invalid|hex|escape|highlight]\n"));
++      fprintf (stream, _("\
+   -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n"));
+       fprintf (stream, _("\
+       --start-address=ADDR       Only process data whose address is >= ADDR\n"));
+@@ -420,17 +435,23 @@ static struct option long_options[]=
+ {
+   {"adjust-vma", required_argument, NULL, OPTION_ADJUST_VMA},
+   {"all-headers", no_argument, NULL, 'x'},
+-  {"private-headers", no_argument, NULL, 'p'},
+-  {"private", required_argument, NULL, 'P'},
+   {"architecture", required_argument, NULL, 'm'},
+   {"archive-headers", no_argument, NULL, 'a'},
++#ifdef ENABLE_LIBCTF
++  {"ctf", required_argument, NULL, OPTION_CTF},
++  {"ctf-parent", required_argument, NULL, OPTION_CTF_PARENT},
++#endif
+   {"debugging", no_argument, NULL, 'g'},
+   {"debugging-tags", no_argument, NULL, 'e'},
+   {"demangle", optional_argument, NULL, 'C'},
+   {"disassemble", optional_argument, NULL, 'd'},
+   {"disassemble-all", no_argument, NULL, 'D'},
+-  {"disassembler-options", required_argument, NULL, 'M'},
+   {"disassemble-zeroes", no_argument, NULL, 'z'},
++  {"disassembler-options", required_argument, NULL, 'M'},
++  {"dwarf", optional_argument, NULL, OPTION_DWARF},
++  {"dwarf-check", no_argument, 0, OPTION_DWARF_CHECK},
++  {"dwarf-depth", required_argument, 0, OPTION_DWARF_DEPTH},
++  {"dwarf-start", required_argument, 0, OPTION_DWARF_START},
+   {"dynamic-reloc", no_argument, NULL, 'R'},
+   {"dynamic-syms", no_argument, NULL, 'T'},
+   {"endian", required_argument, NULL, OPTION_ENDIAN},
+@@ -440,16 +461,23 @@ static struct option long_options[]=
+   {"full-contents", no_argument, NULL, 's'},
+   {"headers", no_argument, NULL, 'h'},
+   {"help", no_argument, NULL, 'H'},
++  {"include", required_argument, NULL, 'I'},
+   {"info", no_argument, NULL, 'i'},
++  {"inlines", no_argument, 0, OPTION_INLINES},
++  {"insn-width", required_argument, NULL, OPTION_INSN_WIDTH},
+   {"line-numbers", no_argument, NULL, 'l'},
+-  {"no-show-raw-insn", no_argument, &show_raw_insn, -1},
+   {"no-addresses", no_argument, &no_addresses, 1},
+-  {"process-links", no_argument, &process_links, true},
++  {"no-recurse-limit", no_argument, NULL, OPTION_NO_RECURSE_LIMIT},
++  {"no-recursion-limit", no_argument, NULL, OPTION_NO_RECURSE_LIMIT},
++  {"no-show-raw-insn", no_argument, &show_raw_insn, -1},
++  {"prefix", required_argument, NULL, OPTION_PREFIX},
+   {"prefix-addresses", no_argument, &prefix_addresses, 1},
++  {"prefix-strip", required_argument, NULL, OPTION_PREFIX_STRIP},
++  {"private", required_argument, NULL, 'P'},
++  {"private-headers", no_argument, NULL, 'p'},
++  {"process-links", no_argument, &process_links, true},
+   {"recurse-limit", no_argument, NULL, OPTION_RECURSE_LIMIT},
+   {"recursion-limit", no_argument, NULL, OPTION_RECURSE_LIMIT},
+-  {"no-recurse-limit", no_argument, NULL, OPTION_NO_RECURSE_LIMIT},
+-  {"no-recursion-limit", no_argument, NULL, OPTION_NO_RECURSE_LIMIT},
+   {"reloc", no_argument, NULL, 'r'},
+   {"section", required_argument, NULL, 'j'},
+   {"section-headers", no_argument, NULL, 'h'},
+@@ -457,28 +485,16 @@ static struct option long_options[]=
+   {"source", no_argument, NULL, 'S'},
+   {"source-comment", optional_argument, NULL, OPTION_SOURCE_COMMENT},
+   {"special-syms", no_argument, &dump_special_syms, 1},
+-  {"include", required_argument, NULL, 'I'},
+-  {"dwarf", optional_argument, NULL, OPTION_DWARF},
+-#ifdef ENABLE_LIBCTF
+-  {"ctf", required_argument, NULL, OPTION_CTF},
+-  {"ctf-parent", required_argument, NULL, OPTION_CTF_PARENT},
+-#endif
+   {"stabs", no_argument, NULL, 'G'},
+   {"start-address", required_argument, NULL, OPTION_START_ADDRESS},
+   {"stop-address", required_argument, NULL, OPTION_STOP_ADDRESS},
+   {"syms", no_argument, NULL, 't'},
+   {"target", required_argument, NULL, 'b'},
++  {"unicode", required_argument, NULL, 'U'},
+   {"version", no_argument, NULL, 'V'},
+-  {"wide", no_argument, NULL, 'w'},
+-  {"prefix", required_argument, NULL, OPTION_PREFIX},
+-  {"prefix-strip", required_argument, NULL, OPTION_PREFIX_STRIP},
+-  {"insn-width", required_argument, NULL, OPTION_INSN_WIDTH},
+-  {"dwarf-depth", required_argument, 0, OPTION_DWARF_DEPTH},
+-  {"dwarf-start", required_argument, 0, OPTION_DWARF_START},
+-  {"dwarf-check", no_argument, 0, OPTION_DWARF_CHECK},
+-  {"inlines", no_argument, 0, OPTION_INLINES},
+   {"visualize-jumps", optional_argument, 0, OPTION_VISUALIZE_JUMPS},
+-  {0, no_argument, 0, 0}
++  {"wide", no_argument, NULL, 'w'},
++  {NULL, no_argument, NULL, 0}
+ };
+ 
+ static void
+@@ -488,9 +504,121 @@ nonfatal (const char *msg)
+   exit_status = 1;
+ }
+ 
++/* Convert a potential UTF-8 encoded sequence in IN into characters in OUT.
++   The conversion format is controlled by the unicode_display variable.
++   Returns the number of characters added to OUT.
++   Returns the number of bytes consumed from IN in CONSUMED.
++   Always consumes at least one byte and displays at least one character.  */
++   
++static unsigned int
++display_utf8 (const unsigned char * in, char * out, unsigned int * consumed)
++{
++  char *        orig_out = out;
++  unsigned int  nchars = 0;
++  unsigned int j;
++
++  if (unicode_display == unicode_default)
++    goto invalid;
++
++  if (in[0] < 0xc0)
++    goto invalid;
++
++  if ((in[1] & 0xc0) != 0x80)
++    goto invalid;
++
++  if ((in[0] & 0x20) == 0)
++    {
++      nchars = 2;
++      goto valid;
++    }
++
++  if ((in[2] & 0xc0) != 0x80)
++    goto invalid;
++
++  if ((in[0] & 0x10) == 0)
++    {
++      nchars = 3;
++      goto valid;
++    }
++
++  if ((in[3] & 0xc0) != 0x80)
++    goto invalid;
++
++  nchars = 4;
++
++ valid:
++  switch (unicode_display)
++    {
++    case unicode_locale:
++      /* Copy the bytes into the output buffer as is.  */
++      memcpy (out, in, nchars);
++      out += nchars;
++      break;
++
++    case unicode_invalid:
++    case unicode_hex:
++      out += sprintf (out, "%c", unicode_display == unicode_hex ? '<' : '{');
++      out += sprintf (out, "0x");
++      for (j = 0; j < nchars; j++)
++	out += sprintf (out, "%02x", in [j]);
++      out += sprintf (out, "%c", unicode_display == unicode_hex ? '>' : '}');
++      break;
++      
++    case unicode_highlight:
++      if (isatty (1))
++	out += sprintf (out, "\x1B[31;47m"); /* Red.  */
++      /* Fall through.  */
++    case unicode_escape:
++      switch (nchars)
++	{
++	case 2:
++	  out += sprintf (out, "\\u%02x%02x",
++		  ((in[0] & 0x1c) >> 2), 
++		  ((in[0] & 0x03) << 6) | (in[1] & 0x3f));
++	  break;
++
++	case 3:
++	  out += sprintf (out, "\\u%02x%02x",
++		  ((in[0] & 0x0f) << 4) | ((in[1] & 0x3c) >> 2),
++		  ((in[1] & 0x03) << 6) | ((in[2] & 0x3f)));
++	  break;
++
++	case 4:
++	  out += sprintf (out, "\\u%02x%02x%02x",
++		  ((in[0] & 0x07) << 6) | ((in[1] & 0x3c) >> 2),
++		  ((in[1] & 0x03) << 6) | ((in[2] & 0x3c) >> 2),
++		  ((in[2] & 0x03) << 6) | ((in[3] & 0x3f)));
++	  break;
++	default:
++	  /* URG.  */
++	  break;
++	}
++
++      if (unicode_display == unicode_highlight && isatty (1))
++	out += sprintf (out, "\033[0m"); /* Default colour.  */
++      break;
++
++    default:
++      /* URG */
++      break;
++    }
++
++  * consumed = nchars;
++  return out - orig_out;
++
++ invalid:
++  /* Not a valid UTF-8 sequence.  */
++  *out = *in;
++  * consumed = 1;
++  return 1;
++}
++
+ /* Returns a version of IN with any control characters
+    replaced by escape sequences.  Uses a static buffer
+-   if necessary.  */
++   if necessary.
++
++   If unicode display is enabled, then also handles the
++   conversion of unicode characters.  */
+ 
+ static const char *
+ sanitize_string (const char * in)
+@@ -508,40 +636,50 @@ sanitize_string (const char * in)
+      of cases it will not be needed.  */
+   do
+     {
+-      char c = *in++;
++      unsigned char c = *in++;
+ 
+       if (c == 0)
+ 	return original;
+ 
+       if (ISCNTRL (c))
+ 	break;
++
++      if (unicode_display != unicode_default && c >= 0xc0)
++	break;
+     }
+   while (1);
+ 
+   /* Copy the input, translating as needed.  */
+   in = original;
+-  if (buffer_len < (strlen (in) * 2))
++  if (buffer_len < (strlen (in) * 9))
+     {
+       free ((void *) buffer);
+-      buffer_len = strlen (in) * 2;
++      buffer_len = strlen (in) * 9;
+       buffer = xmalloc (buffer_len + 1);
+     }
+ 
+   out = buffer;
+   do
+     {
+-      char c = *in++;
++      unsigned char c = *in++;
+ 
+       if (c == 0)
+ 	break;
+ 
+-      if (!ISCNTRL (c))
+-	*out++ = c;
+-      else
++      if (ISCNTRL (c))
+ 	{
+ 	  *out++ = '^';
+ 	  *out++ = c + 0x40;
+ 	}
++      else if (unicode_display != unicode_default && c >= 0xc0)
++	{
++	  unsigned int num_consumed;
++
++	  out += display_utf8 ((const unsigned char *)(in - 1), out, & num_consumed);
++	  in += num_consumed - 1;
++	}
++      else
++	*out++ = c;
+     }
+   while (1);
+ 
+@@ -4529,6 +4667,24 @@ dump_symbols (bfd *abfd ATTRIBUTE_UNUSED
+ 		  free (alloc);
+ 		}
+ 	    }
++	  else if (unicode_display != unicode_default
++		   && name != NULL && *name != '\0')
++	    {
++	      const char * sanitized_name;
++
++	      /* If we want to sanitize the name, we do it here, and
++		 temporarily clobber it while calling bfd_print_symbol.
++		 FIXME: This is a gross hack.  */
++	      sanitized_name = sanitize_string (name);
++	      if (sanitized_name != name)
++		(*current)->name = sanitized_name;
++	      else
++		sanitized_name = NULL;
++	      bfd_print_symbol (cur_bfd, stdout, *current,
++				bfd_print_symbol_all);
++	      if (sanitized_name != NULL)
++		(*current)->name = name;
++	    }
+ 	  else
+ 	    bfd_print_symbol (cur_bfd, stdout, *current,
+ 			      bfd_print_symbol_all);
+@@ -5212,7 +5368,7 @@ main (int argc, char **argv)
+   set_default_bfd_target ();
+ 
+   while ((c = getopt_long (argc, argv,
+-			   "pP:ib:m:M:VvCdDlfFaHhrRtTxsSI:j:wE:zgeGW::",
++			   "CDE:FGHI:LM:P:RSTU:VW::ab:defghij:lm:prstvwxz",
+ 			   long_options, (int *) 0))
+ 	 != EOF)
+     {
+@@ -5495,6 +5651,23 @@ main (int argc, char **argv)
+ 	  seenflag = true;
+ 	  break;
+ 
++	case 'U':
++	  if (streq (optarg, "default") || streq (optarg, "d"))
++	    unicode_display = unicode_default;
++	  else if (streq (optarg, "locale") || streq (optarg, "l"))
++	    unicode_display = unicode_locale;
++	  else if (streq (optarg, "escape") || streq (optarg, "e"))
++	    unicode_display = unicode_escape;
++	  else if (streq (optarg, "invalid") || streq (optarg, "i"))
++	    unicode_display = unicode_invalid;
++	  else if (streq (optarg, "hex") || streq (optarg, "x"))
++	    unicode_display = unicode_hex;
++	  else if (streq (optarg, "highlight") || streq (optarg, "h"))
++	    unicode_display = unicode_highlight;
++	  else
++	    fatal (_("invalid argument to -U/--unicode: %s"), optarg);
++	  break;
++
+ 	case 'H':
+ 	  usage (stdout, 0);
+ 	  /* No need to set seenflag or to break - usage() does not return.  */
+diff --git a/binutils/readelf.c b/binutils/readelf.c
+--- a/binutils/readelf.c	2021-12-19 19:00:27.058540065 -0800
++++ b/binutils/readelf.c	2021-12-19 19:27:56.538354462 -0800
+@@ -328,6 +328,19 @@ typedef enum print_mode
+ }
+ print_mode;
+ 
++typedef enum unicode_display_type
++{
++  unicode_default = 0,
++  unicode_locale,
++  unicode_escape,
++  unicode_hex,
++  unicode_highlight,
++  unicode_invalid
++} unicode_display_type;
++
++static unicode_display_type unicode_display = unicode_default;
++
++  
+ /* Versioned symbol info.  */
+ enum versioned_symbol_info
+ {
+@@ -632,11 +645,18 @@ print_symbol (signed int width, const ch
+       if (c == 0)
+ 	break;
+ 
+-      /* Do not print control characters directly as they can affect terminal
+-	 settings.  Such characters usually appear in the names generated
+-	 by the assembler for local labels.  */
+-      if (ISCNTRL (c))
++      if (ISPRINT (c))
++	{
++	  putchar (c);
++	  width_remaining --;
++	  num_printed ++;
++	}
++      else if (ISCNTRL (c))
+ 	{
++	  /* Do not print control characters directly as they can affect terminal
++	     settings.  Such characters usually appear in the names generated
++	     by the assembler for local labels.  */
++
+ 	  if (width_remaining < 2)
+ 	    break;
+ 
+@@ -644,11 +664,137 @@ print_symbol (signed int width, const ch
+ 	  width_remaining -= 2;
+ 	  num_printed += 2;
+ 	}
+-      else if (ISPRINT (c))
++      else if (c == 0x7f)
+ 	{
+-	  putchar (c);
+-	  width_remaining --;
+-	  num_printed ++;
++	  if (width_remaining < 5)
++	    break;
++	  printf ("<DEL>");
++	  width_remaining -= 5;
++	  num_printed += 5;
++	}
++      else if (unicode_display != unicode_locale
++	       && unicode_display != unicode_default)
++	{
++	  /* Display unicode characters as something else.  */
++	  unsigned char bytes[4];
++	  bool          is_utf8;
++	  unsigned int          nbytes;
++
++	  bytes[0] = c;
++
++	  if (bytes[0] < 0xc0)
++	    {
++	      nbytes = 1;
++	      is_utf8 = false;
++	    }
++	  else
++	    {
++	      bytes[1] = *symbol++;
++
++	      if ((bytes[1] & 0xc0) != 0x80)
++		{
++		  is_utf8 = false;
++		  /* Do not consume this character.  It may only
++		     be the first byte in the sequence that was
++		     corrupt.  */
++		  --symbol;
++		  nbytes = 1;
++		}
++	      else if ((bytes[0] & 0x20) == 0)
++		{
++		  is_utf8 = true;
++		  nbytes = 2;
++		}
++	      else
++		{
++		  bytes[2] = *symbol++;
++
++		  if ((bytes[2] & 0xc0) != 0x80)
++		    {
++		      is_utf8 = false;
++		      symbol -= 2;
++		      nbytes = 1;
++		    }
++		  else if ((bytes[0] & 0x10) == 0)
++		    {
++		      is_utf8 = true;
++		      nbytes = 3;
++		    }
++		  else
++		    {
++		      bytes[3] = *symbol++;
++
++		      nbytes = 4;
++
++		      if ((bytes[3] & 0xc0) != 0x80)
++			{
++			  is_utf8 = false;
++			  symbol -= 3;
++			  nbytes = 1;
++			}
++		      else
++			is_utf8 = true;
++		    }
++		}
++	    }
++
++	  if (unicode_display == unicode_invalid)
++	    is_utf8 = false;
++
++	  if (unicode_display == unicode_hex || ! is_utf8)
++	    {
++	      unsigned int i;
++
++	      if (width_remaining < (nbytes * 2) + 2)
++		break;
++	  
++	      putchar (is_utf8 ? '<' : '{');
++	      printf ("0x");
++	      for (i = 0; i < nbytes; i++)
++		printf ("%02x", bytes[i]);
++	      putchar (is_utf8 ? '>' : '}');
++	    }
++	  else
++	    {
++	      if (unicode_display == unicode_highlight && isatty (1))
++		printf ("\x1B[31;47m"); /* Red.  */
++	      
++	      switch (nbytes)
++		{
++		case 2:
++		  if (width_remaining < 6)
++		    break;
++		  printf ("\\u%02x%02x",
++			  (bytes[0] & 0x1c) >> 2, 
++			  ((bytes[0] & 0x03) << 6) | (bytes[1] & 0x3f));
++		  break;
++		case 3:
++		  if (width_remaining < 6)
++		    break;
++		  printf ("\\u%02x%02x",
++			  ((bytes[0] & 0x0f) << 4) | ((bytes[1] & 0x3c) >> 2),
++			  ((bytes[1] & 0x03) << 6) | (bytes[2] & 0x3f));
++		  break;
++		case 4:
++		  if (width_remaining < 8)
++		    break;
++		  printf ("\\u%02x%02x%02x",
++			  ((bytes[0] & 0x07) << 6) | ((bytes[1] & 0x3c) >> 2),
++			  ((bytes[1] & 0x03) << 6) | ((bytes[2] & 0x3c) >> 2),
++			  ((bytes[2] & 0x03) << 6) | (bytes[3] & 0x3f));
++		  
++		  break;
++		default:
++		  /* URG.  */
++		  break;
++		}
++
++	      if (unicode_display == unicode_highlight && isatty (1))
++		printf ("\033[0m"); /* Default colour.  */
++	    }
++	  
++	  if (bytes[nbytes - 1] == 0)
++	    break;
+ 	}
+       else
+ 	{
+@@ -4668,6 +4814,7 @@ static struct option options[] =
+   {"syms",	       no_argument, 0, 's'},
+   {"silent-truncation",no_argument, 0, 'T'},
+   {"section-details",  no_argument, 0, 't'},
++  {"unicode",          required_argument, NULL, 'U'},
+   {"unwind",	       no_argument, 0, 'u'},
+   {"version-info",     no_argument, 0, 'V'},
+   {"version",	       no_argument, 0, 'v'},
+@@ -4744,6 +4891,12 @@ usage (FILE * stream)
+   fprintf (stream, _("\
+      --no-recurse-limit  Disable a demangling recursion limit\n"));
+   fprintf (stream, _("\
++     -U[dlexhi] --unicode=[default|locale|escape|hex|highlight|invalid]\n\
++                         Display unicode characters as determined by the current locale\n\
++                          (default), escape sequences, \"<hex sequences>\", highlighted\n\
++                          escape sequences, or treat them as invalid and display as\n\
++                          \"{hex sequences}\"\n"));
++  fprintf (stream, _("\
+   -n --notes             Display the core notes (if present)\n"));
+   fprintf (stream, _("\
+   -r --relocs            Display the relocations (if present)\n"));
+@@ -4928,7 +5081,7 @@ parse_args (struct dump_data *dumpdata,
+     usage (stderr);
+ 
+   while ((c = getopt_long
+-	  (argc, argv, "ACDHILNPR:STVWacdeghi:lnp:rstuvw::x:z", options, NULL)) != EOF)
++	  (argc, argv, "ACDHILNPR:STU:VWacdeghi:lnp:rstuvw::x:z", options, NULL)) != EOF)
+     {
+       switch (c)
+ 	{
+@@ -5130,6 +5283,25 @@ parse_args (struct dump_data *dumpdata,
+ 	  /* Ignored for backward compatibility.  */
+ 	  break;
+ 
++	case 'U':
++	  if (optarg == NULL)
++	    error (_("Missing arg to -U/--unicode")); /* Can this happen ?  */
++	  else if (streq (optarg, "default") || streq (optarg, "d"))
++	    unicode_display = unicode_default;
++	  else if (streq (optarg, "locale") || streq (optarg, "l"))
++	    unicode_display = unicode_locale;
++	  else if (streq (optarg, "escape") || streq (optarg, "e"))
++	    unicode_display = unicode_escape;
++	  else if (streq (optarg, "invalid") || streq (optarg, "i"))
++	    unicode_display = unicode_invalid;
++	  else if (streq (optarg, "hex") || streq (optarg, "x"))
++	    unicode_display = unicode_hex;
++	  else if (streq (optarg, "highlight") || streq (optarg, "h"))
++	    unicode_display = unicode_highlight;
++	  else
++	    error (_("invalid argument to -U/--unicode: %s"), optarg);
++	  break;
++
+ 	case OPTION_SYM_BASE:
+ 	  sym_base = 0;
+ 	  if (optarg != NULL)
+diff --git a/binutils/strings.c b/binutils/strings.c
+--- a/binutils/strings.c	2021-12-19 19:00:27.058540065 -0800
++++ b/binutils/strings.c	2021-12-19 19:48:26.205313218 -0800
+@@ -55,6 +55,19 @@
+    -T {bfdname}
+ 		Specify a non-default object file format.
+ 
++  --unicode={default|locale|invalid|hex|escape|highlight}
++  -u {d|l|i|x|e|h}
++                Determine how to handle UTF-8 unicode characters.  The default
++		is no special treatment.  All other versions of this option
++		only apply if the encoding is valid and enabling the option
++		implies --encoding=S.
++		The 'locale' option displays the characters according to the
++		current locale.  The 'invalid' option treats them as
++		non-string characters.  The 'hex' option displays them as hex
++		byte sequences.  The 'escape' option displays them as escape
++		sequences and the 'highlight' option displays them as
++		coloured escape sequences.
++
+   --output-separator=sep_string
+   -s sep_string	String used to separate parsed strings in output.
+ 		Default is newline.
+@@ -76,6 +89,22 @@
+ #include "safe-ctype.h"
+ #include "bucomm.h"
+ 
++#ifndef streq
++#define streq(a,b) (strcmp ((a),(b)) == 0)
++#endif
++
++typedef enum unicode_display_type
++{
++  unicode_default = 0,
++  unicode_locale,
++  unicode_escape,
++  unicode_hex,
++  unicode_highlight,
++  unicode_invalid
++} unicode_display_type;
++
++static unicode_display_type unicode_display = unicode_default;
++
+ #define STRING_ISGRAPHIC(c) \
+       (   (c) >= 0 \
+        && (c) <= 255 \
+@@ -94,7 +123,7 @@ extern int errno;
+ static int address_radix;
+ 
+ /* Minimum length of sequence of graphic chars to trigger output.  */
+-static int string_min;
++static unsigned int string_min;
+ 
+ /* Whether or not we include all whitespace as a graphic char.   */
+ static bool include_all_whitespace;
+@@ -121,21 +150,22 @@ static char *output_separator;
+ static struct option long_options[] =
+ {
+   {"all", no_argument, NULL, 'a'},
++  {"bytes", required_argument, NULL, 'n'},
+   {"data", no_argument, NULL, 'd'},
++  {"encoding", required_argument, NULL, 'e'},
++  {"help", no_argument, NULL, 'h'},
++  {"include-all-whitespace", no_argument, NULL, 'w'},
++  {"output-separator", required_argument, NULL, 's'},
+   {"print-file-name", no_argument, NULL, 'f'},
+-  {"bytes", required_argument, NULL, 'n'},
+   {"radix", required_argument, NULL, 't'},
+-  {"include-all-whitespace", no_argument, NULL, 'w'},
+-  {"encoding", required_argument, NULL, 'e'},
+   {"target", required_argument, NULL, 'T'},
+-  {"output-separator", required_argument, NULL, 's'},
+-  {"help", no_argument, NULL, 'h'},
++  {"unicode", required_argument, NULL, 'U'},
+   {"version", no_argument, NULL, 'v'},
+   {NULL, 0, NULL, 0}
+ };
+ 
+ static bool strings_file (char *);
+-static void print_strings (const char *, FILE *, file_ptr, int, int, char *);
++static void print_strings (const char *, FILE *, file_ptr, int, char *);
+ static void usage (FILE *, int) ATTRIBUTE_NORETURN;
+ 
+ int main (int, char **);
+@@ -171,7 +201,7 @@ main (int argc, char **argv)
+   encoding = 's';
+   output_separator = NULL;
+ 
+-  while ((optc = getopt_long (argc, argv, "adfhHn:wot:e:T:s:Vv0123456789",
++  while ((optc = getopt_long (argc, argv, "adfhHn:wot:e:T:s:U:Vv0123456789",
+ 			      long_options, (int *) 0)) != EOF)
+     {
+       switch (optc)
+@@ -244,6 +274,23 @@ main (int argc, char **argv)
+ 	  output_separator = optarg;
+           break;
+ 
++	case 'U':
++	  if (streq (optarg, "default") || streq (optarg, "d"))
++	    unicode_display = unicode_default;
++	  else if (streq (optarg, "locale") || streq (optarg, "l"))
++	    unicode_display = unicode_locale;
++	  else if (streq (optarg, "escape") || streq (optarg, "e"))
++	    unicode_display = unicode_escape;
++	  else if (streq (optarg, "invalid") || streq (optarg, "i"))
++	    unicode_display = unicode_invalid;
++	  else if (streq (optarg, "hex") || streq (optarg, "x"))
++	    unicode_display = unicode_hex;
++	  else if (streq (optarg, "highlight") || streq (optarg, "h"))
++	    unicode_display = unicode_highlight;
++	  else
++	    fatal (_("invalid argument to -U/--unicode: %s"), optarg);
++	  break;
++
+ 	case 'V':
+ 	case 'v':
+ 	  print_version ("strings");
+@@ -258,6 +305,9 @@ main (int argc, char **argv)
+ 	}
+     }
+ 
++  if (unicode_display != unicode_default)
++    encoding = 'S';
++
+   if (numeric_opt != 0)
+     {
+       string_min = (int) strtoul (argv[numeric_opt - 1] + 1, &s, 0);
+@@ -293,14 +343,14 @@ main (int argc, char **argv)
+     {
+       datasection_only = false;
+       SET_BINARY (fileno (stdin));
+-      print_strings ("{standard input}", stdin, 0, 0, 0, (char *) NULL);
++      print_strings ("{standard input}", stdin, 0, 0, (char *) NULL);
+       files_given = true;
+     }
+   else
+     {
+       for (; optind < argc; ++optind)
+ 	{
+-	  if (strcmp (argv[optind], "-") == 0)
++	  if (streq (argv[optind], "-"))
+ 	    datasection_only = false;
+ 	  else
+ 	    {
+@@ -342,7 +392,7 @@ strings_a_section (bfd *abfd, asection *
+     }
+ 
+   *got_a_section = true;
+-  print_strings (filename, NULL, sect->filepos, 0, sectsize, (char *) mem);
++  print_strings (filename, NULL, sect->filepos, sectsize, (char *) mem);
+   free (mem);
+ }
+ 
+@@ -427,7 +477,7 @@ strings_file (char *file)
+ 	  return false;
+ 	}
+ 
+-      print_strings (file, stream, (file_ptr) 0, 0, 0, (char *) 0);
++      print_strings (file, stream, (file_ptr) 0, 0, (char *) NULL);
+ 
+       if (fclose (stream) == EOF)
+ 	{
+@@ -551,6 +601,626 @@ unget_part_char (long c, file_ptr *addre
+ 	}
+     }
+ }
++
++static void
++print_filename_and_address (const char * filename, file_ptr address)
++{
++  if (print_filenames)
++    printf ("%s: ", filename);
++
++  if (! print_addresses)
++    return;
++
++  switch (address_radix)
++    {
++    case 8:
++      if (sizeof (address) > sizeof (long))
++	{
++#ifndef __MSVCRT__
++	  printf ("%7llo ", (unsigned long long) address);
++#else
++	  printf ("%7I64o ", (unsigned long long) address);
++#endif
++	}
++      else
++	printf ("%7lo ", (unsigned long) address);
++      break;
++
++    case 10:
++      if (sizeof (address) > sizeof (long))
++	{
++#ifndef __MSVCRT__
++	  printf ("%7llu ", (unsigned long long) address);
++#else
++	  printf ("%7I64d ", (unsigned long long) address);
++#endif
++	}
++      else
++	printf ("%7ld ", (long) address);
++      break;
++
++    case 16:
++      if (sizeof (address) > sizeof (long))
++	{
++#ifndef __MSVCRT__
++	  printf ("%7llx ", (unsigned long long) address);
++#else
++	  printf ("%7I64x ", (unsigned long long) address);
++#endif
++	}
++      else
++	printf ("%7lx ", (unsigned long) address);
++      break;
++    }
++}
++
++/* Return non-zero if the bytes starting at BUFFER form a valid UTF-8 encoding.
++   If the encoding is valid then returns the number of bytes it uses.  */
++
++static unsigned int
++is_valid_utf8 (const unsigned char * buffer, unsigned long buflen)
++{
++  if (buffer[0] < 0xc0)
++    return 0;
++
++  if (buflen < 2)
++    return 0;
++
++  if ((buffer[1] & 0xc0) != 0x80)
++    return 0;
++
++  if ((buffer[0] & 0x20) == 0)
++    return 2;
++
++  if (buflen < 3)
++    return 0;
++
++  if ((buffer[2] & 0xc0) != 0x80)
++    return 0;
++
++  if ((buffer[0] & 0x10) == 0)
++    return 3;
++
++  if (buflen < 4)
++    return 0;
++
++  if ((buffer[3] & 0xc0) != 0x80)
++    return 0;
++
++  return 4;
++}
++
++/* Display a UTF-8 encoded character in BUFFER according to the setting
++   of unicode_display.  The character is known to be valid.
++   Returns the number of bytes consumed.  */
++
++static unsigned int
++display_utf8_char (const unsigned char * buffer)
++{
++  unsigned int j;
++  unsigned int utf8_len;
++
++  switch (buffer[0] & 0x30)
++    {
++    case 0x00:
++    case 0x10:
++      utf8_len = 2;
++      break;
++    case 0x20:
++      utf8_len = 3;
++      break;
++    default:
++      utf8_len = 4;
++    }
++
++  switch (unicode_display)
++    {
++    default:
++      fprintf (stderr, "ICE: unexpected unicode display type\n");
++      break;
++
++    case unicode_escape:
++    case unicode_highlight:
++      if (unicode_display == unicode_highlight && isatty (1))
++	printf ("\x1B[31;47m"); /* Red.  */
++
++      switch (utf8_len)
++	{
++	case 2:
++	  printf ("\\u%02x%02x",
++		  ((buffer[0] & 0x1c) >> 2),
++		  ((buffer[0] & 0x03) << 6) | (buffer[1] & 0x3f));
++	  break;
++
++	case 3:
++	  printf ("\\u%02x%02x",
++		  ((buffer[0] & 0x0f) << 4) | ((buffer[1] & 0x3c) >> 2),
++		  ((buffer[1] & 0x03) << 6) | ((buffer[2] & 0x3f)));
++	  break;
++
++	case 4:
++	  printf ("\\u%02x%02x%02x",
++		  ((buffer[0] & 0x07) << 6) | ((buffer[1] & 0x3c) >> 2),
++		  ((buffer[1] & 0x03) << 6) | ((buffer[2] & 0x3c) >> 2),
++		  ((buffer[2] & 0x03) << 6) | ((buffer[3] & 0x3f)));
++	  break;
++	default:
++	  /* URG.  */
++	  break;
++	}
++
++      if (unicode_display == unicode_highlight && isatty (1))
++	printf ("\033[0m"); /* Default colour.  */
++      break;
++
++    case unicode_hex:
++      putchar ('<');
++      printf ("0x");
++      for (j = 0; j < utf8_len; j++)
++	printf ("%02x", buffer [j]);
++      putchar ('>');
++      break;
++
++    case unicode_locale:
++      printf ("%.1s", buffer);
++      break;
++    }
++
++  return utf8_len;
++}
++
++/* Display strings in BUFFER.  Treat any UTF-8 encoded characters encountered
++   according to the setting of the unicode_display variable.  The buffer
++   contains BUFLEN bytes.
++
++   Display the characters as if they started at ADDRESS and are contained in
++   FILENAME.  */
++
++static void
++print_unicode_buffer (const char *            filename,
++		      file_ptr                address,
++		      const unsigned char *   buffer,
++		      unsigned long           buflen)
++{
++  /* Paranoia checks...  */
++  if (filename == NULL
++      || buffer == NULL
++      || unicode_display == unicode_default
++      || encoding != 'S'
++      || encoding_bytes != 1)
++    {
++      fprintf (stderr, "ICE: bad arguments to print_unicode_buffer\n");
++      return;
++    }
++
++  if (buflen == 0)
++    return;
++
++  /* We must only display strings that are at least string_min *characters*
++     long.  So we scan the buffer in two stages.  First we locate the start
++     of a potential string.  Then we walk along it until we have found
++     string_min characters.  Then we go back to the start point and start
++     displaying characters according to the unicode_display setting.  */
++
++  unsigned long start_point = 0;
++  unsigned long i = 0;
++  unsigned int char_len = 1;
++  unsigned int num_found = 0;
++
++  for (i = 0; i < buflen; i += char_len)
++    {
++      int c = buffer[i];
++
++      char_len = 1;
++
++      /* Find the first potential character of a string.  */
++      if (! STRING_ISGRAPHIC (c))
++	{
++	  num_found = 0;
++	  continue;
++	}
++
++      if (c > 126)
++	{
++	  if (c < 0xc0)
++	    {
++	      num_found = 0;
++	      continue;
++	    }
++
++	  if ((char_len = is_valid_utf8 (buffer + i, buflen - i)) == 0)
++	    {
++	      char_len = 1;
++	      num_found = 0;
++	      continue;
++	    }
++
++	  if (unicode_display == unicode_invalid)
++	    {
++	      /* We have found a valid UTF-8 character, but we treat it as non-graphic.  */
++	      num_found = 0;
++	      continue;
++	    }
++	}
++
++      if (num_found == 0)
++	/* We have found a potential starting point for a string.  */
++	start_point = i;
++
++      ++ num_found;
++
++      if (num_found >= string_min)
++	break;
++    }
++
++  if (num_found < string_min)
++    return;
++
++  print_filename_and_address (filename, address + start_point);
++
++  /* We have found string_min characters.  Display them and any
++     more that follow.  */
++  for (i = start_point; i < buflen; i += char_len)
++    {
++      int c = buffer[i];
++
++      char_len = 1;
++
++      if (! STRING_ISGRAPHIC (c))
++	break;
++      else if (c < 127)
++	putchar (c);
++      else if (! is_valid_utf8 (buffer + i, buflen - i))
++	break;
++      else if (unicode_display == unicode_invalid)
++	break;
++      else
++	char_len = display_utf8_char (buffer + i);
++    }
++
++  if (output_separator)
++    fputs (output_separator, stdout);
++  else
++    putchar ('\n');
++
++  /* FIXME: Using tail recursion here is lazy programming...  */
++  print_unicode_buffer (filename, address + i, buffer + i, buflen - i);
++}
++
++static int
++get_unicode_byte (FILE *          stream,
++		  unsigned char * putback,
++		  unsigned int *  num_putback,
++		  unsigned int *  num_read)
++{
++  if (* num_putback > 0)
++    {
++      * num_putback = * num_putback - 1;
++      return putback [* num_putback];
++    }
++
++  * num_read = * num_read + 1;
++
++#if defined(HAVE_GETC_UNLOCKED) && HAVE_DECL_GETC_UNLOCKED
++  return getc_unlocked (stream);
++#else
++  return getc (stream);
++#endif
++}
++
++/* Helper function for print_unicode_stream.  */
++
++static void
++print_unicode_stream_body (const char *     filename,
++			   file_ptr         address,
++			   FILE *           stream,
++			   unsigned char *  putback_buf,
++			   unsigned int     num_putback,
++			   unsigned char *  print_buf)
++{
++  /* It would be nice if we could just read the stream into a buffer
++     and then process if with print_unicode_buffer.  But the input
++     might be huge or it might time-locked (eg stdin).  So instead
++     we go one byte at a time...  */
++
++  file_ptr start_point = 0;
++  unsigned int num_read = 0;
++  unsigned int num_chars = 0;
++  unsigned int num_print = 0;
++  int c = 0;
++
++  /* Find a series of string_min characters.  Put them into print_buf.  */
++  do
++    {
++      if (num_chars >= string_min)
++	break;
++
++      c = get_unicode_byte (stream, putback_buf, & num_putback, & num_read);
++      if (c == EOF)
++	break;
++
++      if (! STRING_ISGRAPHIC (c))
++	{
++	  num_chars = num_print = 0;
++	  continue;
++	}
++
++      if (num_chars == 0)
++	start_point = num_read - 1;
++
++      if (c < 127)
++	{
++	  print_buf[num_print] = c;
++	  num_chars ++;
++	  num_print ++;
++	  continue;
++	}
++
++      if (c < 0xc0)
++	{
++	  num_chars = num_print = 0;
++	  continue;
++	}
++
++      /* We *might* have a UTF-8 sequence.  Time to start peeking.  */
++      char utf8[4];
++
++      utf8[0] = c;
++      c = get_unicode_byte (stream, putback_buf, & num_putback, & num_read);
++      if (c == EOF)
++	break;
++      utf8[1] = c;
++
++      if ((utf8[1] & 0xc0) != 0x80)
++	{
++	  /* Invalid UTF-8.  */
++	  putback_buf[num_putback++] = utf8[1];
++	  num_chars = num_print = 0;
++	  continue;
++	}
++      else if ((utf8[0] & 0x20) == 0)
++	{
++	  /* A valid 2-byte UTF-8 encoding.  */
++	  if (unicode_display == unicode_invalid)
++	    {
++	      putback_buf[num_putback++] = utf8[1];
++	      num_chars = num_print = 0;
++	    }
++	  else
++	    {
++	      print_buf[num_print ++] = utf8[0];
++	      print_buf[num_print ++] = utf8[1];
++	      num_chars ++;
++	    }
++	  continue;
++	}
++
++      c = get_unicode_byte (stream, putback_buf, & num_putback, & num_read);
++      if (c == EOF)
++	break;
++      utf8[2] = c;
++
++      if ((utf8[2] & 0xc0) != 0x80)
++	{
++	  /* Invalid UTF-8.  */
++	  putback_buf[num_putback++] = utf8[2];
++	  putback_buf[num_putback++] = utf8[1];
++	  num_chars = num_print = 0;
++	  continue;
++	}
++      else if ((utf8[0] & 0x10) == 0)
++	{
++	  /* A valid 3-byte UTF-8 encoding.  */
++	  if (unicode_display == unicode_invalid)
++	    {
++	      putback_buf[num_putback++] = utf8[2];
++	      putback_buf[num_putback++] = utf8[1];
++	      num_chars = num_print = 0;
++	    }
++	  else
++	    {
++	      print_buf[num_print ++] = utf8[0];
++	      print_buf[num_print ++] = utf8[1];
++	      print_buf[num_print ++] = utf8[2];
++	      num_chars ++;
++	    }
++	  continue;
++	}
++
++      c = get_unicode_byte (stream, putback_buf, & num_putback, & num_read);
++      if (c == EOF)
++	break;
++      utf8[3] = c;
++
++      if ((utf8[3] & 0xc0) != 0x80)
++	{
++	  /* Invalid UTF-8.  */
++	  putback_buf[num_putback++] = utf8[3];
++	  putback_buf[num_putback++] = utf8[2];
++	  putback_buf[num_putback++] = utf8[1];
++	  num_chars = num_print = 0;
++	}
++      /* We have a valid 4-byte UTF-8 encoding.  */
++      else if (unicode_display == unicode_invalid)
++	{
++	  putback_buf[num_putback++] = utf8[3];
++	  putback_buf[num_putback++] = utf8[1];
++	  putback_buf[num_putback++] = utf8[2];
++	  num_chars = num_print = 0;
++	}
++      else
++	{
++	  print_buf[num_print ++] = utf8[0];
++	  print_buf[num_print ++] = utf8[1];
++	  print_buf[num_print ++] = utf8[2];
++	  print_buf[num_print ++] = utf8[3];
++	  num_chars ++;
++	}
++    }
++  while (1);
++
++  if (num_chars >= string_min)
++    {
++      /* We know that we have string_min valid characters in print_buf,
++	 and there may be more to come in the stream.  Start displaying
++	 them.  */
++
++      print_filename_and_address (filename, address + start_point);
++
++      unsigned int i;
++      for (i = 0; i < num_print;)
++	{
++	  if (print_buf[i] < 127)
++	    putchar (print_buf[i++]);
++	  else
++	    i += display_utf8_char (print_buf + i);
++	}
++
++      /* OK so now we have to start read unchecked bytes.  */
++
++      /* Find a series of string_min characters.  Put them into print_buf.  */
++      do
++	{
++	  c = get_unicode_byte (stream, putback_buf, & num_putback, & num_read);
++	  if (c == EOF)
++	    break;
++
++	  if (! STRING_ISGRAPHIC (c))
++	    break;
++
++	  if (c < 127)
++	    {
++	      putchar (c);
++	      continue;
++	    }
++
++	  if (c < 0xc0)
++	    break;
++
++	  /* We *might* have a UTF-8 sequence.  Time to start peeking.  */
++	  unsigned char utf8[4];
++
++	  utf8[0] = c;
++	  c = get_unicode_byte (stream, putback_buf, & num_putback, & num_read);
++	  if (c == EOF)
++	    break;
++	  utf8[1] = c;
++
++	  if ((utf8[1] & 0xc0) != 0x80)
++	    {
++	      /* Invalid UTF-8.  */
++	      putback_buf[num_putback++] = utf8[1];
++	      break;
++	    }
++	  else if ((utf8[0] & 0x20) == 0)
++	    {
++	      /* Valid 2-byte UTF-8.  */
++	      if (unicode_display == unicode_invalid)
++		{
++		  putback_buf[num_putback++] = utf8[1];
++		  break;
++		}
++	      else
++		{
++		  (void) display_utf8_char (utf8);
++		  continue;
++		}
++	    }
++
++	  c = get_unicode_byte (stream, putback_buf, & num_putback, & num_read);
++	  if (c == EOF)
++	    break;
++	  utf8[2] = c;
++
++	  if ((utf8[2] & 0xc0) != 0x80)
++	    {
++	      /* Invalid UTF-8.  */
++	      putback_buf[num_putback++] = utf8[2];
++	      putback_buf[num_putback++] = utf8[1];
++	      break;
++	    }
++	  else if ((utf8[0] & 0x10) == 0)
++	    {
++	      /* Valid 3-byte UTF-8.  */
++	      if (unicode_display == unicode_invalid)
++		{
++		  putback_buf[num_putback++] = utf8[2];
++		  putback_buf[num_putback++] = utf8[1];
++		  break;
++		}
++	      else
++		{
++		  (void) display_utf8_char (utf8);
++		  continue;
++		}
++	    }
++
++	  c = get_unicode_byte (stream, putback_buf, & num_putback, & num_read);
++	  if (c == EOF)
++	    break;
++	  utf8[3] = c;
++
++	  if ((utf8[3] & 0xc0) != 0x80)
++	    {
++	      /* Invalid UTF-8.  */
++	      putback_buf[num_putback++] = utf8[3];
++	      putback_buf[num_putback++] = utf8[2];
++	      putback_buf[num_putback++] = utf8[1];
++	      break;
++	    }
++	  else if (unicode_display == unicode_invalid)
++	    {
++	      putback_buf[num_putback++] = utf8[3];
++	      putback_buf[num_putback++] = utf8[2];
++	      putback_buf[num_putback++] = utf8[1];
++	      break;
++	    }
++	  else
++	    /* A valid 4-byte UTF-8 encoding.  */
++	    (void) display_utf8_char (utf8);
++	}
++      while (1);
++
++      if (output_separator)
++	fputs (output_separator, stdout);
++      else
++	putchar ('\n');
++    }
++
++  if (c != EOF)
++    /* FIXME: Using tail recursion here is lazy, but it works.  */
++    print_unicode_stream_body (filename, address + num_read, stream, putback_buf, num_putback, print_buf);
++}
++
++/* Display strings read in from STREAM.  Treat any UTF-8 encoded characters
++   encountered according to the setting of the unicode_display variable.
++   The stream is positioned at ADDRESS and is attached to FILENAME.  */
++
++static void
++print_unicode_stream (const char * filename,
++		      file_ptr     address,
++		      FILE *       stream)
++{
++  /* Paranoia checks...  */
++  if (filename == NULL
++      || stream == NULL
++      || unicode_display == unicode_default
++      || encoding != 'S'
++      || encoding_bytes != 1)
++    {
++      fprintf (stderr, "ICE: bad arguments to print_unicode_stream\n");
++      return;
++    }
++
++  /* Allocate space for string_min 4-byte utf-8 characters.  */
++  unsigned char * print_buf = xmalloc ((4 * string_min) + 1);
++  /* We should never have to put back more than 4 bytes.  */
++  unsigned char putback_buf[5];
++  unsigned int num_putback = 0;
++
++  print_unicode_stream_body (filename, address, stream, putback_buf, num_putback, print_buf);
++  free (print_buf);
++}
+ 
+ /* Find the strings in file FILENAME, read from STREAM.
+    Assume that STREAM is positioned so that the next byte read
+@@ -566,20 +1236,29 @@ unget_part_char (long c, file_ptr *addre
+ 
+ static void
+ print_strings (const char *filename, FILE *stream, file_ptr address,
+-	       int stop_point, int magiccount, char *magic)
++	       int magiccount, char *magic)
+ {
++  if (unicode_display != unicode_default)
++    {
++      if (magic != NULL)
++	print_unicode_buffer (filename, address,
++			      (const unsigned char *) magic, magiccount);
++
++      if (stream != NULL)
++	print_unicode_stream (filename, address, stream);
++      return;
++    }
++
+   char *buf = (char *) xmalloc (sizeof (char) * (string_min + 1));
+ 
+   while (1)
+     {
+       file_ptr start;
+-      int i;
++      unsigned int i;
+       long c;
+ 
+       /* See if the next `string_min' chars are all graphic chars.  */
+     tryline:
+-      if (stop_point && address >= stop_point)
+-	break;
+       start = address;
+       for (i = 0; i < string_min; i++)
+ 	{
+@@ -601,51 +1280,7 @@ print_strings (const char *filename, FIL
+ 
+       /* We found a run of `string_min' graphic characters.  Print up
+ 	 to the next non-graphic character.  */
+-
+-      if (print_filenames)
+-	printf ("%s: ", filename);
+-      if (print_addresses)
+-	switch (address_radix)
+-	  {
+-	  case 8:
+-	    if (sizeof (start) > sizeof (long))
+-	      {
+-#ifndef __MSVCRT__
+-		printf ("%7llo ", (unsigned long long) start);
+-#else
+-		printf ("%7I64o ", (unsigned long long) start);
+-#endif
+-	      }
+-	    else
+-	      printf ("%7lo ", (unsigned long) start);
+-	    break;
+-
+-	  case 10:
+-	    if (sizeof (start) > sizeof (long))
+-	      {
+-#ifndef __MSVCRT__
+-		printf ("%7llu ", (unsigned long long) start);
+-#else
+-		printf ("%7I64d ", (unsigned long long) start);
+-#endif
+-	      }
+-	    else
+-	      printf ("%7ld ", (long) start);
+-	    break;
+-
+-	  case 16:
+-	    if (sizeof (start) > sizeof (long))
+-	      {
+-#ifndef __MSVCRT__
+-		printf ("%7llx ", (unsigned long long) start);
+-#else
+-		printf ("%7I64x ", (unsigned long long) start);
+-#endif
+-	      }
+-	    else
+-	      printf ("%7lx ", (unsigned long) start);
+-	    break;
+-	  }
++      print_filename_and_address (filename, start);
+ 
+       buf[i] = '\0';
+       fputs (buf, stdout);
+@@ -697,6 +1332,8 @@ usage (FILE *stream, int status)
+   -T --target=<BFDNAME>     Specify the binary file format\n\
+   -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n\
+                             s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n\
++  --unicode={default|show|invalid|hex|escape|highlight}\n\
++  -u {d|s|i|x|e|h}          Specify how to treat UTF-8 encoded unicode characters\n\
+   -s --output-separator=<string> String used to separate strings in output.\n\
+   @<file>                   Read options from <file>\n\
+   -h --help                 Display this information\n\
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0001-elf-Discard-input-.note.gnu.build-id-sections.patch b/poky/meta/recipes-devtools/binutils/binutils/0001-elf-Discard-input-.note.gnu.build-id-sections.patch
new file mode 100644
index 0000000..c93af4e
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/0001-elf-Discard-input-.note.gnu.build-id-sections.patch
@@ -0,0 +1,215 @@
+From b2e18d3ea300f7491705b6e86a7cc3d6366e3b1f Mon Sep 17 00:00:00 2001
+From: "H.J. Lu" <hjl.tools@gmail.com>
+Date: Tue, 30 Nov 2021 20:40:38 -0800
+Subject: [PATCH] elf: Discard input .note.gnu.build-id sections
+
+1. Discard input .note.gnu.build-id sections.
+2. Clear the build ID field before writing.
+3. Use bfd_make_section_anyway_with_flags to create the output
+.note.gnu.build-id section.
+
+	PR ld/28639
+	* ldelf.c (ldelf_after_open): Discard input .note.gnu.build-id
+	sections, excluding the first one.
+	(write_build_id): Clear the build ID field before writing.
+	(ldelf_setup_build_id): Use bfd_make_section_anyway_with_flags
+	to create the output .note.gnu.build-id section.
+	* testsuite/ld-elf/build-id.exp: New file.
+	* testsuite/ld-elf/pr28639a.rd: Likewise.
+	* testsuite/ld-elf/pr28639b.rd: Likewise.
+	* testsuite/ld-elf/pr28639c.rd: Likewise.
+	* testsuite/ld-elf/pr28639d.rd: Likewise.
+
+Upstream-Status: Backport
+
+Reference to upstream patch:
+[https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=1f1d0f8888a6c944e612b416a2a6e11abcf5199f]
+---
+ ld/ldelf.c                       | 15 ++++++-
+ ld/testsuite/ld-elf/build-id.exp | 77 ++++++++++++++++++++++++++++++++
+ ld/testsuite/ld-elf/pr28639a.rd  |  6 +++
+ ld/testsuite/ld-elf/pr28639b.rd  |  6 +++
+ ld/testsuite/ld-elf/pr28639c.rd  | 10 +++++
+ ld/testsuite/ld-elf/pr28639d.rd  |  4 ++
+ 6 files changed, 117 insertions(+), 1 deletion(-)
+ create mode 100644 ld/testsuite/ld-elf/build-id.exp
+ create mode 100644 ld/testsuite/ld-elf/pr28639a.rd
+ create mode 100644 ld/testsuite/ld-elf/pr28639b.rd
+ create mode 100644 ld/testsuite/ld-elf/pr28639c.rd
+ create mode 100644 ld/testsuite/ld-elf/pr28639d.rd
+
+diff --git a/ld/ldelf.c b/ld/ldelf.c
+index 21e655bb55c..8501d98b48f 100644
+--- a/ld/ldelf.c
++++ b/ld/ldelf.c
+@@ -1043,6 +1043,15 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
+   /* Do not allow executable files to be used as inputs to the link.  */
+   for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
+     {
++      /* Discard input .note.gnu.build-id sections.  */
++      s = bfd_get_section_by_name (abfd, ".note.gnu.build-id");
++      while (s != NULL)
++	{
++	  if (s != elf_tdata (link_info.output_bfd)->o->build_id.sec)
++	    s->flags |= SEC_EXCLUDE;
++	  s = bfd_get_next_section_by_name (NULL, s);
++	}
++
+       if (abfd->xvec->flavour == bfd_target_elf_flavour
+ 	  && !bfd_input_just_syms (abfd)
+ 	  && elf_tdata (abfd) != NULL
+@@ -1387,6 +1396,9 @@ write_build_id (bfd *abfd)
+   id_bits = contents + size;
+   size = asec->size - size;
+ 
++  /* Clear the build ID field.  */
++  memset (id_bits, 0, size);
++
+   bfd_h_put_32 (abfd, sizeof "GNU", &e_note->namesz);
+   bfd_h_put_32 (abfd, size, &e_note->descsz);
+   bfd_h_put_32 (abfd, NT_GNU_BUILD_ID, &e_note->type);
+@@ -1418,7 +1430,8 @@ ldelf_setup_build_id (bfd *ibfd)
+ 
+   flags = (SEC_ALLOC | SEC_LOAD | SEC_IN_MEMORY
+ 	   | SEC_LINKER_CREATED | SEC_READONLY | SEC_DATA);
+-  s = bfd_make_section_with_flags (ibfd, ".note.gnu.build-id", flags);
++  s = bfd_make_section_anyway_with_flags (ibfd, ".note.gnu.build-id",
++					  flags);
+   if (s != NULL && bfd_set_section_alignment (s, 2))
+     {
+       struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd);
+diff --git a/ld/testsuite/ld-elf/build-id.exp b/ld/testsuite/ld-elf/build-id.exp
+new file mode 100644
+index 00000000000..19c22a75c4d
+--- /dev/null
++++ b/ld/testsuite/ld-elf/build-id.exp
+@@ -0,0 +1,77 @@
++# Expect script for --build-id tests.
++#   Copyright (C) 2021 Free Software Foundation, Inc.
++#
++# This file is part of the GNU Binutils.
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
++# MA 02110-1301, USA.
++#
++
++# Exclude non-ELF targets.
++
++if ![is_elf_format] {
++    return
++}
++
++if { [istarget frv-*-*] || [istarget lm32-*-*] } {
++    return
++}
++
++if { !([istarget *-*-linux*]
++       || [istarget arm*-*-uclinuxfdpiceabi]
++       || [istarget *-*-nacl*]
++       || [istarget *-*-gnu*]) } then {
++    return
++}
++
++run_ld_link_tests [list \
++    [list \
++	"pr28639a.o" \
++	"-r --build-id=md5" \
++	"" \
++	"" \
++	{start.s} \
++	{{readelf {--notes} pr28639a.rd}} \
++	"pr28639a.o" \
++    ] \
++    [list \
++	"pr28639a.o" \
++	"-r --build-id" \
++	"" \
++	"" \
++	{dummy.s} \
++	{{readelf {--notes} pr28639b.rd}} \
++	"pr28639b.o" \
++    ] \
++    [list \
++	"pr28639a" \
++	"--build-id tmpdir/pr28639a.o tmpdir/pr28639b.o" \
++	"" \
++	"" \
++	{dummy.s} \
++	{{readelf {--notes} pr28639b.rd}  \
++	 {readelf {--notes} pr28639c.rd}} \
++	"pr28639a" \
++    ] \
++    [list \
++	"pr28639b" \
++	"--build-id=none tmpdir/pr28639a.o tmpdir/pr28639b.o" \
++	"" \
++	"" \
++	{dummy.s} \
++	{{readelf {--notes} pr28639d.rd}} \
++	"pr28639b" \
++    ] \
++]
+diff --git a/ld/testsuite/ld-elf/pr28639a.rd b/ld/testsuite/ld-elf/pr28639a.rd
+new file mode 100644
+index 00000000000..e85087064d0
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr28639a.rd
+@@ -0,0 +1,6 @@
++#...
++Displaying notes found in: \.note\.gnu\.build-id
++  Owner                Data size 	Description
++  GNU                  0x00000010	NT_GNU_BUILD_ID \(unique build ID bitstring\)
++    Build ID: [0-9a-f]+
++#pass
+diff --git a/ld/testsuite/ld-elf/pr28639b.rd b/ld/testsuite/ld-elf/pr28639b.rd
+new file mode 100644
+index 00000000000..04dcb04bec2
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr28639b.rd
+@@ -0,0 +1,6 @@
++#...
++Displaying notes found in: \.note\.gnu\.build-id
++  Owner                Data size 	Description
++  GNU                  0x00000014	NT_GNU_BUILD_ID \(unique build ID bitstring\)
++    Build ID: [0-9a-f]+
++#pass
+diff --git a/ld/testsuite/ld-elf/pr28639c.rd b/ld/testsuite/ld-elf/pr28639c.rd
+new file mode 100644
+index 00000000000..64221e5fa51
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr28639c.rd
+@@ -0,0 +1,10 @@
++#failif
++#...
++Displaying notes found in: \.note\.gnu\.build-id
++  Owner                Data size 	Description
++  GNU                  0x[0-9a-f]+	NT_GNU_BUILD_ID \(unique build ID bitstring\)
++    Build ID: [0-9a-f]+
++  Owner                Data size 	Description
++  GNU                  0x[0-9a-f]+	NT_GNU_BUILD_ID \(unique build ID bitstring\)
++    Build ID: [0-9a-f]+
++#...
+diff --git a/ld/testsuite/ld-elf/pr28639d.rd b/ld/testsuite/ld-elf/pr28639d.rd
+new file mode 100644
+index 00000000000..897c8493efa
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr28639d.rd
+@@ -0,0 +1,4 @@
++#failif
++#...
++Displaying notes found in: \.note\.gnu\.build-id
++#...
+-- 
+
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch b/poky/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch
deleted file mode 100644
index f476ff2..0000000
--- a/poky/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From b8d43b6b8d98e176346871c92935458b06598c5b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 2 Mar 2015 01:07:33 +0000
-Subject: [PATCH] configure: widen the regexp for SH architectures
-
-gprof needs to know about uclibc
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure    | 2 +-
- configure.ac | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure b/configure
-index 3dd206525a7..e8ba1a1d3de 100755
---- a/configure
-+++ b/configure
-@@ -3892,7 +3892,7 @@ case "${target}" in
-   nvptx*-*-*)
-     noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
-     ;;
--  sh-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;
-diff --git a/configure.ac b/configure.ac
-index 797a624621e..3a8a3ae1f3b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1175,7 +1175,7 @@ case "${target}" in
-   nvptx*-*-*)
-     noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
-     ;;
--  sh-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0009-Change-default-emulation-for-mips64-linux.patch b/poky/meta/recipes-devtools/binutils/binutils/0009-Change-default-emulation-for-mips64-linux.patch
deleted file mode 100644
index fab92d5..0000000
--- a/poky/meta/recipes-devtools/binutils/binutils/0009-Change-default-emulation-for-mips64-linux.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From fb6d52dda9c230baf869ed5f981581a7b5094b70 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 2 Mar 2015 01:44:14 +0000
-Subject: [PATCH] Change default emulation for mips64*-*-linux
-
-we change the default emulations to be N64 instead of N32
-
-Upstream-Status: Inappropriate [ OE configuration Specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- bfd/config.bfd   | 8 ++++----
- ld/configure.tgt | 8 ++++----
- 2 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/bfd/config.bfd b/bfd/config.bfd
-index 30087e3b8f8..1896e11790c 100644
---- a/bfd/config.bfd
-+++ b/bfd/config.bfd
-@@ -891,12 +891,12 @@ case "${targ}" in
-     targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
-     ;;
-   mips64*el-*-linux*)
--    targ_defvec=mips_elf32_ntrad_le_vec
--    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
-+    targ_defvec=mips_elf64_trad_le_vec
-+    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec"
-     ;;
-   mips64*-*-linux*)
--    targ_defvec=mips_elf32_ntrad_be_vec
--    targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
-+    targ_defvec=mips_elf64_trad_be_vec
-+    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_be_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
-     ;;
-   mips*el-*-linux*)
-     targ_defvec=mips_elf32_trad_le_vec
-diff --git a/ld/configure.tgt b/ld/configure.tgt
-index 6205d7c9872..c08533658e5 100644
---- a/ld/configure.tgt
-+++ b/ld/configure.tgt
-@@ -530,12 +530,12 @@ mips*-*-vxworks*)	targ_emul=elf32ebmipvxworks
- 			;;
- mips*-*-windiss)	targ_emul=elf32mipswindiss
- 			;;
--mips64*el-*-linux-*)	targ_emul=elf32ltsmipn32
--			targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
-+mips64*el-*-linux-*)	targ_emul=elf64ltsmip
-+			targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
- 			targ_extra_libpath=$targ_extra_emuls
- 			;;
--mips64*-*-linux-*)	targ_emul=elf32btsmipn32
--			targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
-+mips64*-*-linux-*)	targ_emul=elf64btsmip
-+			targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
- 			targ_extra_libpath=$targ_extra_emuls
- 			;;
- mips*el-*-linux-*)	targ_emul=elf32ltsmip
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0010-Add-support-for-Netlogic-XLP.patch b/poky/meta/recipes-devtools/binutils/binutils/0010-Add-support-for-Netlogic-XLP.patch
deleted file mode 100644
index b2f7448..0000000
--- a/poky/meta/recipes-devtools/binutils/binutils/0010-Add-support-for-Netlogic-XLP.patch
+++ /dev/null
@@ -1,415 +0,0 @@
-From 21920b7a3d10a7dae4c1f18a4bb185de78048e3f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 14 Feb 2016 17:06:19 +0000
-Subject: [PATCH] Add support for Netlogic XLP
-
-Patch From: Nebu Philips <nphilips@netlogicmicro.com>
-
-Using the mipsisa64r2nlm target, add support for XLP from
-Netlogic. Also, update vendor name to NLM wherever applicable.
-
-Use 0x00000080 for INSN_XLP, the value 0x00000040 has already been
-assigned to INSN_OCTEON3
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Baoshan Pang <baoshan.pang@windriver.com>
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
----
- bfd/aoutx.h           |  1 +
- bfd/archures.c        |  1 +
- bfd/bfd-in2.h         |  1 +
- bfd/config.bfd        |  5 +++++
- bfd/cpu-mips.c        |  6 ++++--
- bfd/elfxx-mips.c      |  8 ++++++++
- binutils/readelf.c    |  1 +
- gas/config/tc-mips.c  |  4 +++-
- gas/configure         |  3 +++
- gas/configure.ac      |  3 +++
- include/elf/mips.h    |  1 +
- include/opcode/mips.h |  8 +++++++-
- ld/configure.tgt      |  3 +++
- opcodes/mips-dis.c    | 12 +++++-------
- opcodes/mips-opc.c    | 31 ++++++++++++++++++++-----------
- 15 files changed, 66 insertions(+), 22 deletions(-)
-
-diff --git a/bfd/aoutx.h b/bfd/aoutx.h
-index 17560bd8f54..10b1cad74e6 100644
---- a/bfd/aoutx.h
-+++ b/bfd/aoutx.h
-@@ -810,6 +810,7 @@ NAME (aout, machine_type) (enum bfd_architecture arch,
- 	case bfd_mach_mipsisa64r6:
- 	case bfd_mach_mips_sb1:
- 	case bfd_mach_mips_xlr:
-+	case bfd_mach_mips_xlp:
- 	  /* FIXME: These should be MIPS3, MIPS4, MIPS16, MIPS32, etc.  */
- 	  arch_flags = M_MIPS2;
- 	  break;
-diff --git a/bfd/archures.c b/bfd/archures.c
-index 390691bfba1..b0b7a5fa7a0 100644
---- a/bfd/archures.c
-+++ b/bfd/archures.c
-@@ -185,6 +185,7 @@ DESCRIPTION
- .#define bfd_mach_mips_octeon3		6503
- .#define bfd_mach_mips_xlr		887682	 {* decimal 'XLR'.  *}
- .#define bfd_mach_mips_interaptiv_mr2	736550	 {* decimal 'IA2'.  *}
-+.#define bfd_mach_mips_xlp              887680   {* decimal 'XLP'.  *}
- .#define bfd_mach_mipsisa32		32
- .#define bfd_mach_mipsisa32r2		33
- .#define bfd_mach_mipsisa32r3		34
-diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
-index 57b3c453649..a00b0d44359 100644
---- a/bfd/bfd-in2.h
-+++ b/bfd/bfd-in2.h
-@@ -1562,6 +1562,7 @@ enum bfd_architecture
- #define bfd_mach_mips_octeon3          6503
- #define bfd_mach_mips_xlr              887682   /* decimal 'XLR'.  */
- #define bfd_mach_mips_interaptiv_mr2   736550   /* decimal 'IA2'.  */
-+#define bfd_mach_mips_xlp              887680   /* decimal 'XLP'.  */
- #define bfd_mach_mipsisa32             32
- #define bfd_mach_mipsisa32r2           33
- #define bfd_mach_mipsisa32r3           34
-diff --git a/bfd/config.bfd b/bfd/config.bfd
-index 1896e11790c..8270fd2708d 100644
---- a/bfd/config.bfd
-+++ b/bfd/config.bfd
-@@ -874,6 +874,11 @@ case "${targ}" in
-     targ_defvec=mips_elf32_le_vec
-     targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
-     ;;
-+  mipsisa64*-*-elf*)
-+	targ_defvec=mips_elf32_trad_be_vec
-+	targ_selvecs="mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
-+	want64=true
-+	;;
-   mips*-*-elf* | mips*-*-rtems* | mips*-*-windiss | mips*-*-none)
-     targ_defvec=mips_elf32_be_vec
-     targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
-diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c
-index 76b507e3c77..c1563cf4319 100644
---- a/bfd/cpu-mips.c
-+++ b/bfd/cpu-mips.c
-@@ -108,7 +108,8 @@ enum
-   I_mipsocteon3,
-   I_xlr,
-   I_interaptiv_mr2,
--  I_micromips
-+  I_micromips,
-+  I_xlp
- };
- 
- #define NN(index) (&arch_info_struct[(index) + 1])
-@@ -163,7 +164,8 @@ static const bfd_arch_info_type arch_info_struct[] =
-   N (64, 64, bfd_mach_mips_xlr, "mips:xlr",	   false, NN(I_xlr)),
-   N (32, 32, bfd_mach_mips_interaptiv_mr2, "mips:interaptiv-mr2", false,
-      NN(I_interaptiv_mr2)),
--  N (64, 64, bfd_mach_mips_micromips, "mips:micromips", false, NULL)
-+  N (64, 64, bfd_mach_mips_micromips, "mips:micromips", false, NN(I_micromips)),
-+  N (64, 64, bfd_mach_mips_xlp, "mips:xlp", false, NULL)
- };
- 
- /* The default architecture is mips:3000, but with a machine number of
-diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
-index e4827fd17de..fa8c2512837 100644
---- a/bfd/elfxx-mips.c
-+++ b/bfd/elfxx-mips.c
-@@ -6980,6 +6980,9 @@ _bfd_elf_mips_mach (flagword flags)
-     case E_MIPS_MACH_IAMR2:
-       return bfd_mach_mips_interaptiv_mr2;
- 
-+    case E_MIPS_MACH_XLP:
-+      return bfd_mach_mips_xlp;
-+
-     default:
-       switch (flags & EF_MIPS_ARCH)
- 	{
-@@ -12339,6 +12342,10 @@ mips_set_isa_flags (bfd *abfd)
-       val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON2;
-       break;
- 
-+	case bfd_mach_mips_xlp:
-+	  val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_XLP;
-+	  break;
-+
-     case bfd_mach_mipsisa32:
-       val = E_MIPS_ARCH_32;
-       break;
-@@ -14428,6 +14435,7 @@ static const struct mips_mach_extension mips_mach_extensions[] =
-   { bfd_mach_mips_gs264e, bfd_mach_mips_gs464e },
-   { bfd_mach_mips_gs464e, bfd_mach_mips_gs464 },
-   { bfd_mach_mips_gs464, bfd_mach_mipsisa64r2 },
-+  { bfd_mach_mips_xlp, bfd_mach_mipsisa64r2 },
- 
-   /* MIPS64 extensions.  */
-   { bfd_mach_mipsisa64r2, bfd_mach_mipsisa64 },
-diff --git a/binutils/readelf.c b/binutils/readelf.c
-index a6073f7ec80..2f2448b5eba 100644
---- a/binutils/readelf.c
-+++ b/binutils/readelf.c
-@@ -3613,6 +3613,7 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine)
- 	    case E_MIPS_MACH_OCTEON3: strcat (buf, ", octeon3"); break;
- 	    case E_MIPS_MACH_XLR:  strcat (buf, ", xlr"); break;
- 	    case E_MIPS_MACH_IAMR2:  strcat (buf, ", interaptiv-mr2"); break;
-+	    case E_MIPS_MACH_XLP:  strcat (buf, ", xlp"); break;
- 	    case 0:
- 	    /* We simply ignore the field in this case to avoid confusion:
- 	       MIPS ELF does not specify EF_MIPS_MACH, it is a GNU
-diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
-index 0201f816814..a3cfcdbe982 100644
---- a/gas/config/tc-mips.c
-+++ b/gas/config/tc-mips.c
-@@ -570,6 +570,7 @@ static int mips_32bitmode = 0;
-    || mips_opts.arch == CPU_RM7000                    \
-    || mips_opts.arch == CPU_VR5500                    \
-    || mips_opts.micromips                             \
-+   || mips_opts.arch == CPU_XLP                       \
-    )
- 
- /* Whether the processor uses hardware interlocks to protect reads
-@@ -599,6 +600,7 @@ static int mips_32bitmode = 0;
-     && mips_opts.isa != ISA_MIPS3)                    \
-    || mips_opts.arch == CPU_R4300                     \
-    || mips_opts.micromips                             \
-+   || mips_opts.arch == CPU_XLP                       \
-    )
- 
- /* Whether the processor uses hardware interlocks to protect reads
-@@ -20157,7 +20159,7 @@ static const struct mips_cpu_info mips_cpu_info_table[] =
-   /* Broadcom XLP.
-      XLP is mostly like XLR, with the prominent exception that it is
-      MIPS64R2 rather than MIPS64.  */
--  { "xlp",	      0, 0,			ISA_MIPS64R2, CPU_XLR },
-+  { "xlp",	      0, 0,			ISA_MIPS64R2, CPU_XLP },
- 
-   /* MIPS 64 Release 6.  */
-   { "i6400",	      0, ASE_VIRT | ASE_MSA,	ISA_MIPS64R6, CPU_MIPS64R6},
-diff --git a/gas/configure b/gas/configure
-index 110d707f079..789d1b38b33 100755
---- a/gas/configure
-+++ b/gas/configure
-@@ -12083,6 +12083,9 @@ _ACEOF
- 	  mipsisa64r6 | mipsisa64r6el)
- 	    mips_cpu=mips64r6
- 	    ;;
-+	  mipsisa64r2nlm | mipsisa64r2nlmel)
-+	    mips_cpu=xlp
-+	    ;;
- 	  mipstx39 | mipstx39el)
- 	    mips_cpu=r3900
- 	    ;;
-diff --git a/gas/configure.ac b/gas/configure.ac
-index 78efba88e23..c1b4ef6b3b0 100644
---- a/gas/configure.ac
-+++ b/gas/configure.ac
-@@ -331,6 +331,9 @@ changequote([,])dnl
- 	  mipsisa64r6 | mipsisa64r6el)
- 	    mips_cpu=mips64r6
- 	    ;;
-+	  mipsisa64r2nlm | mipsisa64r2nlmel)
-+	    mips_cpu=xlp
-+	    ;;
- 	  mipstx39 | mipstx39el)
- 	    mips_cpu=r3900
- 	    ;;
-diff --git a/include/elf/mips.h b/include/elf/mips.h
-index 4bd86307120..2d7df22abf2 100644
---- a/include/elf/mips.h
-+++ b/include/elf/mips.h
-@@ -290,6 +290,7 @@ END_RELOC_NUMBERS (R_MIPS_maxext)
- #define E_MIPS_MACH_SB1         0x008a0000
- #define E_MIPS_MACH_OCTEON	0x008b0000
- #define E_MIPS_MACH_XLR     	0x008c0000
-+#define E_MIPS_MACH_XLP         0x008f0000
- #define E_MIPS_MACH_OCTEON2	0x008d0000
- #define E_MIPS_MACH_OCTEON3	0x008e0000
- #define E_MIPS_MACH_5400	0x00910000
-diff --git a/include/opcode/mips.h b/include/opcode/mips.h
-index 9add3c9d5bf..a99c53f652f 100644
---- a/include/opcode/mips.h
-+++ b/include/opcode/mips.h
-@@ -1157,7 +1157,7 @@ mips_opcode_32bit_p (const struct mips_opcode *mo)
- #define INSN_ISA32R3              8
- #define INSN_ISA32R5              9
- #define INSN_ISA32R6              10
--#define INSN_ISA64                11 
-+#define INSN_ISA64                11
- #define INSN_ISA64R2              12
- #define INSN_ISA64R3              13
- #define INSN_ISA64R5              14
-@@ -1265,6 +1265,8 @@ static const unsigned int mips_isa_table[] = {
- #define INSN_XLR                 0x00000020
- /* Imagination interAptiv MR2.  */
- #define INSN_INTERAPTIV_MR2	  0x04000000
-+/* Netlogic XlP instruction */
-+#define INSN_XLP		0x00000080
- 
- /* DSP ASE */
- #define ASE_DSP			0x00000001
-@@ -1389,6 +1391,7 @@ static const unsigned int mips_isa_table[] = {
- #define CPU_OCTEON3	6503
- #define CPU_XLR     	887682   	/* decimal 'XLR'   */
- #define CPU_INTERAPTIV_MR2 736550	/* decimal 'IA2'  */
-+#define CPU_XLP         887680      /* decimal 'XLP'   */
- 
- /* Return true if the given CPU is included in INSN_* mask MASK.  */
- 
-@@ -1459,6 +1462,9 @@ cpu_is_member (int cpu, unsigned int mask)
-     case CPU_INTERAPTIV_MR2:
-       return (mask & INSN_INTERAPTIV_MR2) != 0;
- 
-+    case CPU_XLP:
-+      return (mask & INSN_XLP) != 0;
-+
-     default:
-       return false;
-     }
-diff --git a/ld/configure.tgt b/ld/configure.tgt
-index c08533658e5..7abf32215c2 100644
---- a/ld/configure.tgt
-+++ b/ld/configure.tgt
-@@ -509,6 +509,9 @@ mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
- 			targ_emul=elf32btsmip
- 			targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
- 			;;
-+mipsisa64*-*-elf*)	targ_emul=elf32btsmip
-+			targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip"
-+			;;
- mips64*el-ps2-elf*)	targ_emul=elf32lr5900n32
- 			targ_extra_emuls="elf32lr5900"
- 			targ_extra_libpath=$targ_extra_emuls
-diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
-index 591caf11e28..00120afed47 100644
---- a/opcodes/mips-dis.c
-+++ b/opcodes/mips-dis.c
-@@ -698,13 +698,11 @@ const struct mips_arch_choice mips_arch_choices[] =
-     mips_cp0sel_names_xlr, ARRAY_SIZE (mips_cp0sel_names_xlr),
-     mips_cp1_names_mips3264, mips_hwr_names_numeric },
- 
--  /* XLP is mostly like XLR, with the prominent exception it is being
--     MIPS64R2.  */
--  { "xlp", 1, bfd_mach_mips_xlr, CPU_XLR,
--    ISA_MIPS64R2 | INSN_XLR, 0,
--    mips_cp0_names_xlr,
--    mips_cp0sel_names_xlr, ARRAY_SIZE (mips_cp0sel_names_xlr),
--    mips_cp1_names_mips3264, mips_hwr_names_numeric },
-+  { "xlp", 1, bfd_mach_mips_xlp, CPU_XLP,
-+    ISA_MIPS64R2 | INSN_XLP, 0,
-+    mips_cp0_names_mips3264r2,
-+    mips_cp0sel_names_mips3264r2, ARRAY_SIZE (mips_cp0sel_names_mips3264r2),
-+    mips_cp1_names_mips3264, mips_hwr_names_mips3264r2 },
- 
-   /* This entry, mips16, is here only for ISA/processor selection; do
-      not print its name.  */
-diff --git a/opcodes/mips-opc.c b/opcodes/mips-opc.c
-index db72c039bfd..ff2fa614de1 100644
---- a/opcodes/mips-opc.c
-+++ b/opcodes/mips-opc.c
-@@ -329,6 +329,7 @@ decode_mips_operand (const char *p)
- #define IOCT3	INSN_OCTEON3
- #define XLR     INSN_XLR
- #define IAMR2	INSN_INTERAPTIV_MR2
-+#define XLP	INSN_XLP
- #define IVIRT	ASE_VIRT
- #define IVIRT64	ASE_VIRT64
- 
-@@ -991,6 +992,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
- {"clo",			"U,s",		0x70000021, 0xfc0007ff, WR_1|RD_2,		0,		I32|N55,	0,	I37 },
- {"clz",			"d,s",		0x00000050, 0xfc1f07ff, WR_1|RD_2,		0,		I37,		0,	0 },
- {"clz",			"U,s",		0x70000020, 0xfc0007ff, WR_1|RD_2,		0,		I32|N55,	0,	I37 },
-+{"crc",			"d,s,t",	0x7000001c, 0xfc0007ff,	WR_1|RD_2|RD_3,	0,		XLP, 		0,	0 },
- /* ctc0 is at the bottom of the table.  */
- {"ctc1",		"t,g",		0x44c00000, 0xffe007ff,	RD_1|WR_CC|CM,		0,		I1,		0,	0 },
- {"ctc1",		"t,S",		0x44c00000, 0xffe007ff,	RD_1|WR_CC|CM,		0,		I1,		0,	0 },
-@@ -1023,12 +1025,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
- {"daddiu",		"t,r,j",	0x64000000, 0xfc000000, WR_1|RD_2,		0,		I3,		0,	0 },
- {"daddu",		"d,v,t",	0x0000002d, 0xfc0007ff, WR_1|RD_2|RD_3,		0,		I3,		0,	0 },
- {"daddu",		"t,r,I",	0,    (int) M_DADDU_I,	INSN_MACRO,		0,		I3,		0,	0 },
--{"daddwc",		"d,s,t", 	0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0,		XLR,		0,	0 },
-+{"daddwc",		"d,s,t", 	0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0,		XLR|XLP,	0,	0 },
- {"dbreak",		"",		0x7000003f, 0xffffffff,	0,			0,		N5,		0,	0 },
- {"dclo",		"d,s",		0x00000053, 0xfc1f07ff, WR_1|RD_2,		0,		I69,		0,	0 },
- {"dclo",		"U,s",	 	0x70000025, 0xfc0007ff, WR_1|RD_2, 	0,		I64|N55,	0,	I69 },
- {"dclz",		"d,s",		0x00000052, 0xfc1f07ff, WR_1|RD_2,		0,		I69,		0,	0 },
- {"dclz",		"U,s",	 	0x70000024, 0xfc0007ff, WR_1|RD_2, 	0,		I64|N55,	0,	I69 },
-+{"dcrc",		"d,s,t",	0x7000001d, 0xfc0007ff, WR_1|RD_2|RD_3,	0,		XLP, 		0,	0 },
- /* dctr and dctw are used on the r5000.  */
- {"dctr",		"o(b)",	 	0xbc050000, 0xfc1f0000, RD_2,			0,		I3,		0,	0 },
- {"dctw",		"o(b)",		0xbc090000, 0xfc1f0000, RD_2,			0,		I3,		0,	0 },
-@@ -1100,6 +1103,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
- {"dmfc0",		"t,G,H",	0x40200000, 0xffe007f8,	WR_1|RD_C0|LC,		0,		I64,		0,	0 },
- {"dmfgc0",		"t,G",		0x40600100, 0xffe007ff, WR_1|RD_C0|LC,		0,		0,		IVIRT64, 0 },
- {"dmfgc0",		"t,G,H",	0x40600100, 0xffe007f8, WR_1|RD_C0|LC,		0,		0,		IVIRT64, 0 },
-+{"dmfur",		"t,d",		0x7000001e, 0xffe007ff, WR_1,			0,		XLP,		0,	0 },
- {"dmt",			"",		0x41600bc1, 0xffffffff, TRAP,			0,		0,		MT32,	0 },
- {"dmt",			"t",		0x41600bc1, 0xffe0ffff, WR_1|TRAP,		0,		0,		MT32,	0 },
- {"dmtc0",		"t,G",		0x40a00000, 0xffe007ff,	RD_1|WR_C0|WR_CC|CM,	0,		I3,		0,	EE },
-@@ -1113,6 +1117,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
- /* dmfc2 is at the bottom of the table.  */
- /* dmtc2 is at the bottom of the table.  */
- {"dmuh",		"d,s,t",	0x000000dc, 0xfc0007ff, WR_1|RD_2|RD_3,		0,		I69,		0,	0 },
-+{"dmtur",		"t,d",		0x7000001f, 0xffe007ff,	RD_1,			0,		XLP,		0,	0 },
-+{"dmul",		"d,s,t",	0x70000006, 0xfc0007ff,	WR_1|RD_2|RD_3,		0,		XLP,		0,	0 },
- {"dmul",		"d,s,t",	0x0000009c, 0xfc0007ff, WR_1|RD_2|RD_3,		0,		I69,		0,	0 },
- {"dmul",		"d,v,t",	0x70000003, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO,	0,		IOCT,		0,	0 },
- {"dmul",		"d,v,t",	0,    (int) M_DMUL,	INSN_MACRO,		0,		I3,		0,	M32|I69 },
-@@ -1266,9 +1272,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
- {"ld",			"s,-b(+R)",	0xec180000, 0xfc1c0000, WR_1,			RD_pc,		I69,		0,	0 },
- {"ld",			"t,A(b)",	0,    (int) M_LD_AB,	INSN_MACRO,		0,		I1,		0,	0 },
- {"ld",			"t,o(b)",	0xdc000000, 0xfc000000, WR_1|RD_3|LM,		0,		I3,		0,	0 },
--{"ldaddw",		"t,b",		0x70000010, 0xfc00ffff,	MOD_1|RD_2|LM|SM,	0,		XLR,		0,	0 },
--{"ldaddwu",		"t,b",		0x70000011, 0xfc00ffff,	MOD_1|RD_2|LM|SM,	0,		XLR,		0,	0 },
--{"ldaddd",		"t,b",		0x70000012, 0xfc00ffff,	MOD_1|RD_2|LM|SM,	0,		XLR,		0,	0 },
-+{"ldaddw",		"t,b",		0x70000010, 0xfc00ffff,	MOD_1|RD_2|SM,		0,		XLR|XLP,	0,	0 },
-+{"ldaddwu",		"t,b",		0x70000011, 0xfc00ffff,	MOD_1|RD_2|SM,		0,		XLR|XLP,	0,	0 },
-+{"ldaddd",		"t,b",		0x70000012, 0xfc00ffff,	MOD_1|RD_2|SM,		0,		XLR|XLP,	0,	0 },
- {"ldc1",		"T,o(b)",	0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D,	0,		I2,		0,	SF },
- {"ldc1",		"E,o(b)",	0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D,	0,		I2,		0,	SF },
- {"ldc1",		"T,A(b)",	0,    (int) M_LDC1_AB,	INSN_MACRO,		INSN2_M_FP_D,	I2,		0,	SF },
-@@ -1437,7 +1443,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
- {"mflo",		"d,9",		0x00000012, 0xff9f07ff, WR_1|RD_LO,		0,		0,		D32,	0 },
- {"mflo1",		"d",		0x70000012, 0xffff07ff,	WR_1|RD_LO,		0,		EE,		0,	0 },
- {"mflhxu",		"d",		0x00000052, 0xffff07ff,	WR_1|MOD_HILO,		0,		0,		SMT,	0 },
--{"mfcr",		"t,s",		0x70000018, 0xfc00ffff, WR_1|RD_2,		0,		XLR,		0,	0 },
-+{"mfcr",		"t,s",		0x70000018, 0xfc00ffff, WR_1,			0,		XLR|XLP,	0,	0 },
- {"mfsa",		"d",		0x00000028, 0xffff07ff,	WR_1,			0,		EE,		0,	0 },
- {"min.ob",		"X,Y,Q",	0x78000006, 0xfc20003f,	WR_1|RD_2|RD_3|FP_D,	0,		SB1,		MX,	0 },
- {"min.ob",		"D,S,Q",	0x48000006, 0xfc20003f,	WR_1|RD_2|RD_3|FP_D,	0,		N54,		0,	0 },
-@@ -1482,10 +1488,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
- /* move is at the top of the table.  */
- {"msgn.qh",		"X,Y,Q",	0x78200000, 0xfc20003f,	WR_1|RD_2|RD_3|FP_D,	0,		0,		MX,	0 },
- {"msgsnd",		"t",		0,    (int) M_MSGSND,	INSN_MACRO,		0,		XLR,		0,	0 },
-+{"msgsnds",		"d,t",		0x4a000001, 0xffe007ff,	WR_1|RD_2|RD_C0|WR_C0,	0,		XLP,		0,	0 },
- {"msgld",		"", 		0,    (int) M_MSGLD,	INSN_MACRO,		0,		XLR,		0,	0 },
- {"msgld",		"t",		0,    (int) M_MSGLD_T,	INSN_MACRO,		0,		XLR,		0,	0 },
--{"msgwait",		"", 		0,    (int) M_MSGWAIT,	INSN_MACRO,		0,		XLR,		0,	0 },
--{"msgwait",		"t",		0,    (int) M_MSGWAIT_T,INSN_MACRO,		0,		XLR,		0,	0 },
-+{"msglds",		"d,t",		0x4a000002, 0xffe007ff,	WR_1|RD_2|RD_C0|WR_C0,	0,		XLP,		0,	0 },
-+{"msgwait",		"",		0,    (int) M_MSGWAIT,  INSN_MACRO,		0,		XLR|XLP,	0,	0 },
-+{"msgwait",		"t",		0,    (int) M_MSGWAIT_T,INSN_MACRO,		0,		XLR|XLP,	0,	0 },
-+{"msgsync",		"",		0x4a000004, 0xffffffff,0,			0,		XLP,		0,	0 },
- {"msub.d",		"D,R,S,T",	0x4c000029, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0,		I4_33,		0,	I37 },
- {"msub.d",		"D,S,T",	0x46200019, 0xffe0003f,	WR_1|RD_2|RD_3|FP_D,	0,		IL2E,		0,	0 },
- {"msub.d",		"D,S,T",	0x72200019, 0xffe0003f,	WR_1|RD_2|RD_3|FP_D,	0,		IL2F,		0,	0 },
-@@ -1535,7 +1544,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
- {"mtlo",		"s,7",		0x00000013, 0xfc1fe7ff, RD_1|WR_LO,		0,		0,		D32,	0 },
- {"mtlo1",		"s",		0x70000013, 0xfc1fffff,	RD_1|WR_LO,		0,		EE,		0,	0 },
- {"mtlhx",		"s",		0x00000053, 0xfc1fffff,	RD_1|MOD_HILO,		0,		0,		SMT,	0 },
--{"mtcr",		"t,s",		0x70000019, 0xfc00ffff, RD_1|RD_2,		0,		XLR,		0,	0 },
-+{"mtcr",		"t,s",		0x70000019, 0xfc00ffff, RD_1,			0,		XLR|XLP,	0,	0 },
- {"mtm0",		"s",		0x70000008, 0xfc1fffff, RD_1,			0,		IOCT,		0,	0 },
- {"mtm0",    		"s,t",		0x70000008, 0xfc00ffff, RD_1|RD_2,		0,		IOCT3,		0,	0 },
- {"mtm1",		"s",		0x7000000c, 0xfc1fffff, RD_1,			0,		IOCT,		0,	0 },
-@@ -1977,9 +1986,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
- {"suxc1",		"S,t(b)",	0x4c00000d, 0xfc0007ff, RD_1|RD_2|RD_3|SM|FP_D,	0,		I5_33|N55,	0,	I37},
- {"sw",			"t,o(b)",	0xac000000, 0xfc000000,	RD_1|RD_3|SM,		0,		I1,		0,	0 },
- {"sw",			"t,A(b)",	0,    (int) M_SW_AB,	INSN_MACRO,		0,		I1,		0,	0 },
--{"swapw",		"t,b",		0x70000014, 0xfc00ffff, MOD_1|RD_2|LM|SM,	0,		XLR,		0,	0 },
--{"swapwu",		"t,b",		0x70000015, 0xfc00ffff, MOD_1|RD_2|LM|SM,	0,		XLR,		0,	0 },
--{"swapd",		"t,b",		0x70000016, 0xfc00ffff, MOD_1|RD_2|LM|SM,	0,		XLR,		0,	0 },
-+{"swapw",		"t,b",		0x70000014, 0xfc00ffff, MOD_1|RD_2|SM,		0,		XLR|XLP,	0,	0 },
-+{"swapwu",		"t,b",		0x70000015, 0xfc00ffff, MOD_1|RD_2|SM,		0,		XLR|XLP,	0,	0 },
-+{"swapd",		"t,b",		0x70000016, 0xfc00ffff, MOD_1|RD_2|SM,		0,		XLR|XLP,	0,	0 },
- {"swc0",		"E,o(b)",	0xe0000000, 0xfc000000,	RD_3|RD_C0|SM,		0,		I1,		0,	I2 },
- {"swc0",		"E,A(b)",	0,    (int) M_SWC0_AB,	INSN_MACRO,		0,		I1,		0,	I2 },
- {"swc1",		"T,o(b)",	0xe4000000, 0xfc000000,	RD_1|RD_3|SM|FP_S,	0,		I1,		0,	0 },
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch b/poky/meta/recipes-devtools/binutils/binutils/0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch
index 389232c..a271f55 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch
@@ -3,6 +3,10 @@
 Date: Sat, 11 Jun 2016 22:08:29 -0500
 Subject: [PATCH] fix the incorrect assembling for ppc wait mnemonic
 
+The wait mnemonic for ppc targets is incorrectly assembled into 0x7c00003c due
+to duplicated address definition with waitasec instruction. The issue causes
+kernel boot calltrace for ppc targets when wait instruction is executed.
+
 Signed-off-by: Zhenhua Luo <zhenhua.luo@nxp.com>
 
 Upstream-Status: Pending
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0012-Detect-64-bit-MIPS-targets.patch b/poky/meta/recipes-devtools/binutils/binutils/0012-Detect-64-bit-MIPS-targets.patch
deleted file mode 100644
index 04f81c6..0000000
--- a/poky/meta/recipes-devtools/binutils/binutils/0012-Detect-64-bit-MIPS-targets.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 02374940dd34fddd2b04624af3f23e01f9cb81cd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 31 Mar 2017 11:42:03 -0700
-Subject: [PATCH] Detect 64-bit MIPS targets
-
-Add mips64 target triplets and default to N64
-
-Upstream-Status: Submitted
-https://sourceware.org/ml/binutils/2016-08/msg00048.html
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gold/configure.tgt | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/gold/configure.tgt b/gold/configure.tgt
-index cac0866e628..24fbf641456 100644
---- a/gold/configure.tgt
-+++ b/gold/configure.tgt
-@@ -153,6 +153,13 @@ aarch64*-*)
-  targ_big_endian=false
-  targ_extra_big_endian=true
-  ;;
-+mips*64*el*-*-*|mips*64*le*-*-*)
-+ targ_obj=mips
-+ targ_machine=EM_MIPS_RS3_LE
-+ targ_size=64
-+ targ_big_endian=false
-+ targ_extra_big_endian=true
-+ ;;
- mips*el*-*-*|mips*le*-*-*)
-  targ_obj=mips
-  targ_machine=EM_MIPS_RS3_LE
-@@ -160,6 +167,13 @@ mips*el*-*-*|mips*le*-*-*)
-  targ_big_endian=false
-  targ_extra_big_endian=true
-  ;;
-+mips*64*-*-*)
-+ targ_obj=mips
-+ targ_machine=EM_MIPS
-+ targ_size=64
-+ targ_big_endian=true
-+ targ_extra_big_endian=false
-+ ;;
- mips*-*-*)
-  targ_obj=mips
-  targ_machine=EM_MIPS
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch b/poky/meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch
index a75e721..8f87cfd 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch
@@ -796,25 +796,6 @@
        cat > conftest.c << _LT_EOF
  int main() { return 0;}
  _LT_EOF
-@@ -7706,7 +8201,8 @@ fi
- LIBTOOL_DEPS="$ltmain"
- 
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='$(SHELL) $(top_builddir)'
-+LIBTOOL="$LIBTOOL/${host_alias}-libtool"
- 
- 
- 
-@@ -7795,7 +8291,7 @@ aix3*)
- esac
- 
- # Global variables:
--ofile=libtool
-+ofile=${host_alias}-libtool
- can_build_shared=yes
- 
- # All known linkers require a `.a' archive for static linking (except MSVC,
 @@ -8093,8 +8589,6 @@ fi
  lt_prog_compiler_pic=
  lt_prog_compiler_static=
@@ -2757,25 +2738,6 @@
        cat > conftest.c << _LT_EOF
  int main() { return 0;}
  _LT_EOF
-@@ -7593,7 +8088,8 @@ fi
- LIBTOOL_DEPS="$ltmain"
- 
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='$(SHELL) $(top_builddir)'
-+LIBTOOL="$LIBTOOL/${host_alias}-libtool"
- 
- 
- 
-@@ -7682,7 +8178,7 @@ aix3*)
- esac
- 
- # Global variables:
--ofile=libtool
-+ofile=${host_alias}-libtool
- can_build_shared=yes
- 
- # All known linkers require a `.a' archive for static linking (except MSVC,
 @@ -7980,8 +8476,6 @@ fi
  lt_prog_compiler_pic=
  lt_prog_compiler_static=
@@ -4696,25 +4658,6 @@
        cat > conftest.c << _LT_EOF
  int main() { return 0;}
  _LT_EOF
-@@ -7318,7 +7813,8 @@ fi
- LIBTOOL_DEPS="$ltmain"
- 
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='$(SHELL) $(top_builddir)'
-+LIBTOOL="$LIBTOOL/${host_alias}-libtool"
- 
- 
- 
-@@ -7407,7 +7903,7 @@ aix3*)
- esac
- 
- # Global variables:
--ofile=libtool
-+ofile=${host_alias}-libtool
- can_build_shared=yes
- 
- # All known linkers require a `.a' archive for static linking (except MSVC,
 @@ -7705,8 +8201,6 @@ fi
  lt_prog_compiler_pic=
  lt_prog_compiler_static=
@@ -6638,25 +6581,6 @@
        cat > conftest.c << _LT_EOF
  int main() { return 0;}
  _LT_EOF
-@@ -7220,7 +7715,8 @@ fi
- LIBTOOL_DEPS="$ltmain"
- 
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='$(SHELL) $(top_builddir)'
-+LIBTOOL="$LIBTOOL/${host_alias}-libtool"
- 
- 
- 
-@@ -7309,7 +7805,7 @@ aix3*)
- esac
- 
- # Global variables:
--ofile=libtool
-+ofile=${host_alias}-libtool
- can_build_shared=yes
- 
- # All known linkers require a `.a' archive for static linking (except MSVC,
 @@ -7607,8 +8103,6 @@ fi
  lt_prog_compiler_pic=
  lt_prog_compiler_static=
@@ -8597,25 +8521,6 @@
  
  
  # Set options
-@@ -8077,7 +8582,8 @@ fi
- LIBTOOL_DEPS="$ltmain"
- 
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='$(SHELL) $(top_builddir)'
-+LIBTOOL="$LIBTOOL/${host_alias}-libtool"
- 
- 
- 
-@@ -8166,7 +8672,7 @@ aix3*)
- esac
- 
- # Global variables:
--ofile=libtool
-+ofile=${host_alias}-libtool
- can_build_shared=yes
- 
- # All known linkers require a `.a' archive for static linking (except MSVC,
 @@ -8464,8 +8970,6 @@ fi
  lt_prog_compiler_pic=
  lt_prog_compiler_static=
@@ -11220,25 +11125,6 @@
        cat > conftest.c << _LT_EOF
  int main() { return 0;}
  _LT_EOF
-@@ -8248,7 +8742,8 @@ fi
- LIBTOOL_DEPS="$ltmain"
- 
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='$(SHELL) $(top_builddir)'
-+LIBTOOL="$LIBTOOL/${host_alias}-libtool"
- 
- 
- 
-@@ -8337,7 +8832,7 @@ aix3*)
- esac
- 
- # Global variables:
--ofile=libtool
-+ofile=${host_alias}-libtool
- can_build_shared=yes
- 
- # All known linkers require a `.a' archive for static linking (except MSVC,
 @@ -8635,8 +9130,6 @@ fi
  lt_prog_compiler_pic=
  lt_prog_compiler_static=
@@ -12422,16 +12308,6 @@
  
  
  # LT_PREREQ(VERSION)
-@@ -92,7 +94,8 @@ _LT_SET_OPTIONS([$0], [$1])
- LIBTOOL_DEPS="$ltmain"
- 
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='$(SHELL) $(top_builddir)'
-+LIBTOOL="$LIBTOOL/${host_alias}-libtool"
- AC_SUBST(LIBTOOL)dnl
- 
- _LT_SETUP
 @@ -166,10 +169,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
  dnl
  m4_require([_LT_FILEUTILS_DEFAULTS])dnl
@@ -12446,15 +12322,6 @@
  
  _LT_CONFIG_LIBTOOL_INIT([
  # See if we are running on zsh, and set the options which allow our
-@@ -199,7 +205,7 @@ aix3*)
- esac
- 
- # Global variables:
--ofile=libtool
-+ofile=${host_alias}-libtool
- can_build_shared=yes
- 
- # All known linkers require a `.a' archive for static linking (except MSVC,
 @@ -632,7 +638,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
  m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
  configured by $[0], generated by m4_PACKAGE_STRING.
@@ -20267,25 +20134,6 @@
        cat > conftest.c << _LT_EOF
  int main() { return 0;}
  _LT_EOF
-@@ -7470,7 +7965,8 @@ fi
- LIBTOOL_DEPS="$ltmain"
- 
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='$(SHELL) $(top_builddir)'
-+LIBTOOL="$LIBTOOL/${host_alias}-libtool"
- 
- 
- 
-@@ -7559,7 +8055,7 @@ aix3*)
- esac
- 
- # Global variables:
--ofile=libtool
-+ofile=${host_alias}-libtool
- can_build_shared=yes
- 
- # All known linkers require a `.a' archive for static linking (except MSVC,
 @@ -7857,8 +8353,6 @@ fi
  lt_prog_compiler_pic=
  lt_prog_compiler_static=
@@ -22209,25 +22057,6 @@
        cat > conftest.c << _LT_EOF
  int main() { return 0;}
  _LT_EOF
-@@ -7300,7 +7795,8 @@ fi
- LIBTOOL_DEPS="$ltmain"
- 
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='$(SHELL) $(top_builddir)'
-+LIBTOOL="$LIBTOOL/${host_alias}-libtool"
- 
- 
- 
-@@ -7389,7 +7885,7 @@ aix3*)
- esac
- 
- # Global variables:
--ofile=libtool
-+ofile=${host_alias}-libtool
- can_build_shared=yes
- 
- # All known linkers require a `.a' archive for static linking (except MSVC,
 @@ -7687,8 +8183,6 @@ fi
  lt_prog_compiler_pic=
  lt_prog_compiler_static=
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0017-bfd-Close-the-file-descriptor-if-there-is-no-archive.patch b/poky/meta/recipes-devtools/binutils/binutils/0017-bfd-Close-the-file-descriptor-if-there-is-no-archive.patch
index 9becee3..924980b 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0017-bfd-Close-the-file-descriptor-if-there-is-no-archive.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0017-bfd-Close-the-file-descriptor-if-there-is-no-archive.patch
@@ -33,7 +33,7 @@
 (cherry picked from commit 5a98fb7513b559e20dfebdbaa2a471afda3b4742)
 (cherry picked from commit 7dc37e1e1209c80e0bab784df6b6bac335e836f2)
 
-Upstream-Status: Accepted[https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=1c611b40e6bfc8029bff7696814330b5bc0ee5c0]
+Upstream-Status: Accepted [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=1c611b40e6bfc8029bff7696814330b5bc0ee5c0]
 ---
  bfd/plugin.c                       |  8 +++++++
  ld/testsuite/ld-plugin/lto.exp     | 34 ++++++++++++++++++++++++++++++
diff --git a/poky/meta/recipes-devtools/binutils/binutils_2.37.bb b/poky/meta/recipes-devtools/binutils/binutils_2.37.bb
index 7430bf1..12a6fb5 100644
--- a/poky/meta/recipes-devtools/binutils/binutils_2.37.bb
+++ b/poky/meta/recipes-devtools/binutils/binutils_2.37.bb
@@ -27,10 +27,6 @@
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'debuginfod', d)}"
 PACKAGECONFIG[debuginfod] = "--with-debuginfod, --without-debuginfod, elfutils"
-# gcc9.0 end up mis-compiling libbfd.so with O2 which then crashes on target
-# So remove -O2 and use -Os as workaround
-SELECTED_OPTIMIZATION:remove:mipsarch = "-O2"
-SELECTED_OPTIMIZATION:append:mipsarch = " -Os"
 
 do_install:class-native () {
 	autotools_do_install
diff --git a/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchart2-support-usrmerge.patch b/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchart2-support-usrmerge.patch
index 8ee6723..88597cf 100644
--- a/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchart2-support-usrmerge.patch
+++ b/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchart2-support-usrmerge.patch
@@ -3,7 +3,7 @@
 Date: Thu, 5 Sep 2019 18:37:31 +0800
 Subject: [PATCH] bootchart2: support usrmerge
 
-Upstream-Status: Inappropriate[oe-specific]
+Upstream-Status: Inappropriate [oe-specific]
 
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
diff --git a/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchartd.in-make-sure-only-one-bootchartd-process.patch b/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchartd.in-make-sure-only-one-bootchartd-process.patch
new file mode 100644
index 0000000..3cb8a3c
--- /dev/null
+++ b/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchartd.in-make-sure-only-one-bootchartd-process.patch
@@ -0,0 +1,68 @@
+From 988ca784d4840c87509e770a21d5d22105af8668 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 5 Nov 2021 11:18:07 +0800
+Subject: [PATCH] bootchartd.in: make sure only one bootchartd process
+
+When boot with "init=/sbin/bootchartd" as below:
+ # runqemu qemux86 bootparams="init=/sbin/bootchartd"
+
+There are two bootchartd process after boot [1].
+ # ps -ef | grep bootchart
+root       101     1  0 03:27 ?        00:00:00 /bin/sh /sbin/bootchartd
+root       103   101  8 03:27 ?        00:00:02 /lib64/bootchart/bootchart-collector 50
+root       106     1  0 03:27 ?        00:00:00 /bin/sh /sbin/bootchartd
+root       792   106  0 03:27 ?        00:00:00 /lib64/bootchart/bootchart-collector --usleep 1000000
+root       794   725  0 03:27 ttyS0    00:00:00 grep bootchart
+
+ # /sbin/bootchartd stop
+[bootchart] bootchart-collector started as pid 596 with 2 args:
+[bootchart] '--dump'
+[bootchart] '/tmp/bootchart.3lXpVDAq3v'
+[bootchart] Extracting profile data from pid 204
+[bootchart] map 0xbed9a000 -> 0xbedbb000 size: 132k from 'bed9a000' 'bedbb000'
+[bootchart] read 135168 bytes of 135168
+[bootchart] reading 150 chunks (of 150) ...
+[bootchart] wrote 18760 kbB
+[bootchart] bootchart-collector pid: 596 unmounted proc / clean exit
+
+But there still one process exist after the above stop command finish.
+ # ps -ef | grep bootchartd
+root 202 1 0 09:09 ? 00:00:00 /bin/sh /sbin/bootchartd
+root 629 516 0 09:10 ? 00:00:00 grep bootchartd
+
+Remove the wait_boot which used to wait the boot process to finish to
+make sure only one bootchartd process and meanwhile we don't need the
+wait_boot logic because we either use "/sbin/bootchartd stop" to stop
+the bootchartd manually or install package bootchartd-stop-initscript
+altogether with bootchart2 to stop bootchartd automatically after boot.
+
+After patch:
+ # ps -ef | grep bootchart
+ root       101     1  0 03:36 ?        00:00:00 /bin/sh /sbin/bootchartd
+ root       103   101  6 03:36 ?        00:00:04 /lib64/bootchart/bootchart-collector 50
+ root       596   592  0 03:37 ttyS0    00:00:00 grep bootchart
+
+[1] https://github.com/xrmx/bootchart/issues/94
+
+Upstream-Status: Submitted [https://github.com/xrmx/bootchart/pull/95]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ bootchartd.in | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/bootchartd.in b/bootchartd.in
+index 7979ef9..f0e466d 100755
+--- a/bootchartd.in
++++ b/bootchartd.in
+@@ -183,7 +183,6 @@ if [ $$ -eq 1 ]; then
+ 	else # running inside the main system
+ 		echo "bootchart: no initrd used; starting"
+ 		start &
+-		wait_boot &
+ 		# wait a little, until the collector is going, before allowing
+ 		# the rest of the system to charge ahead, so we catch it
+ 		$USLEEP 250000
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb b/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
index c24613b..f0349da 100644
--- a/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
+++ b/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
@@ -90,10 +90,11 @@
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
 
-SRC_URI = "git://github.com/xrmx/bootchart.git \
+SRC_URI = "git://github.com/xrmx/bootchart.git;branch=master;protocol=https \
            file://bootchartd_stop.sh \
            file://0001-collector-Allocate-space-on-heap-for-chunks.patch \
            file://0001-bootchart2-support-usrmerge.patch \
+           file://0001-bootchartd.in-make-sure-only-one-bootchartd-process.patch \
           "
 
 S = "${WORKDIR}/git"
@@ -150,7 +151,7 @@
 
 PACKAGES =+ "pybootchartgui"
 FILES:pybootchartgui += "${PYTHON_SITEPACKAGES_DIR}/pybootchartgui ${bindir}/pybootchartgui"
-RDEPENDS:pybootchartgui = "python3-pycairo python3-compression python3-image python3-shell python3-compression python3-codecs"
+RDEPENDS:pybootchartgui = "python3-pycairo python3-compression python3-image python3-math python3-shell python3-compression python3-codecs"
 RDEPENDS:${PN}:class-target += "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'sysvinit-pidof', 'procps', d)}"
 RDEPENDS:${PN}:class-target += "lsb-release"
 DEPENDS:append:class-native = " python3-pycairo-native"
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-btrfs-progs-kerncompat-add-local-definition-for-alig.patch b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-btrfs-progs-kerncompat-add-local-definition-for-alig.patch
new file mode 100644
index 0000000..b0fe679
--- /dev/null
+++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-btrfs-progs-kerncompat-add-local-definition-for-alig.patch
@@ -0,0 +1,46 @@
+From b0cfe12c4d4b8b4ef335cdf4ddefcbdcd1b70d58 Mon Sep 17 00:00:00 2001
+From: David Sterba <dsterba@suse.com>
+Date: Thu, 13 Jan 2022 14:47:08 +0100
+Subject: [PATCH] btrfs-progs: kerncompat: add local definition for alignment
+ macros
+
+There's still problem left with compilation on musl and kernel < 5.11,
+because __ALIGN_KERNEL is not defined anymore:
+
+../bin/ld: kernel-shared/volumes.o: in function `create_chunk':
+volumes.c:(.text+0x17f8): undefined reference to `__ALIGN_KERNEL'
+
+Due to the entangled includes and unconditional definition of
+__ALIGN_KERNEL, we can't use #ifdef in kerncompat.h to define it
+eventually (as kerncompat.h is the first include). Instead add local
+definitions of the macros and rename them to avoid name clashes.
+
+Pull-request: #433
+
+Upstream-Status: Backport [https://github.com/kdave/btrfs-progs/commit/b0cfe12c4d4b8b4ef335cdf4ddefcbdcd1b70d58]
+
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ kerncompat.h | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/kerncompat.h b/kerncompat.h
+index 6ca1526e2..f0a6e196e 100644
+--- a/kerncompat.h
++++ b/kerncompat.h
+@@ -359,7 +359,14 @@ do {					\
+ 
+ /* Alignment check */
+ #define IS_ALIGNED(x, a)                (((x) & ((typeof(x))(a) - 1)) == 0)
+-#define ALIGN(x, a)		__ALIGN_KERNEL((x), (a))
++
++/*
++ * Alignment, copied and renamed from /usr/include/linux/const.h to work around
++ * issues caused by moving the definition in 5.12
++ */
++#define __ALIGN_KERNEL__(x, a)		__ALIGN_KERNEL_MASK__(x, (typeof(x))(a) - 1)
++#define __ALIGN_KERNEL_MASK__(x, mask)	(((x) + (mask)) & ~(mask))
++#define ALIGN(x, a)		__ALIGN_KERNEL__((x), (a))
+ 
+ static inline int is_power_of_2(unsigned long n)
+ {
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-btrfs-tools-include-linux-const.h-to-fix-build-with-.patch b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-btrfs-tools-include-linux-const.h-to-fix-build-with-.patch
deleted file mode 100644
index be94238..0000000
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-btrfs-tools-include-linux-const.h-to-fix-build-with-.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 3d19b0fb882c5e195362a9f0909c474e60070ca0 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@gmail.com>
-Date: Fri, 18 Jun 2021 11:10:36 -0400
-Subject: [PATCH] btrfs-progs: include linux/const.h to fix build with 5.12+
- headers
-
-btrfs-tools compile fails with mips, musl and 5.12+ headers.
-
-The definition of __ALIGN_KERNEL has moved in 5.12+ kernels, so we
-add an explicit include of const.h to pickup the macro:
-
-  | make: *** [Makefile:595: mkfs.btrfs] Error 1
-  | make: *** Waiting for unfinished jobs....
-  | libbtrfs.a(volumes.o): in function `dev_extent_search_start':
-  | /usr/src/debug/btrfs-tools/5.12.1-r0/git/kernel-shared/volumes.c:464: undefined reference to `__ALIGN_KERNEL'
-  | collect2: error: ld returned 1 exit status
-
-This is safe for older kernel's as well, since the header still
-exists, and is valid to include.
-
-Upstream-Status: Inappropriate [mips64 + musl + libc-headers]
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- kerncompat.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/kerncompat.h b/kerncompat.h
-index df167fe6..254235bd 100644
---- a/kerncompat.h
-+++ b/kerncompat.h
-@@ -30,6 +30,7 @@
- #include <linux/types.h>
- #include <linux/kernel.h>
- #include <stdint.h>
-+#include <linux/const.h>
- 
- #include <features.h>
- 
--- 
-2.25.1
-
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.14.2.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.14.2.bb
deleted file mode 100644
index 3270527..0000000
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.14.2.bb
+++ /dev/null
@@ -1,72 +0,0 @@
-SUMMARY = "Checksumming Copy on Write Filesystem utilities"
-DESCRIPTION = "Btrfs is a new copy on write filesystem for Linux aimed at \
-implementing advanced features while focusing on fault tolerance, repair and \
-easy administration. \
-This package contains utilities (mkfs, fsck, btrfsctl) used to work with \
-btrfs and an utility (btrfs-convert) to make a btrfs filesystem from an ext3."
-
-HOMEPAGE = "https://btrfs.wiki.kernel.org"
-
-LICENSE = "GPLv2 & LGPLv2.1+"
-LIC_FILES_CHKSUM = " \
-    file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067 \
-    file://libbtrfsutil/COPYING;md5=4fbd65380cdd255951079008b364516c \
-"
-SECTION = "base"
-DEPENDS = "lzo util-linux zlib"
-
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \
-           file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
-           file://0001-btrfs-tools-include-linux-const.h-to-fix-build-with-.patch \
-           "
-SRCREV = "35f17bc49cdf760d8f3710fe2c301b933d991fd6"
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= " \
-    programs \
-    convert \
-    python \
-    crypto-builtin \
-"
-PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native"
-PACKAGECONFIG[programs] = "--enable-programs,--disable-programs"
-PACKAGECONFIG[convert] = "--enable-convert --with-convert=ext2,--disable-convert --without-convert,e2fsprogs"
-PACKAGECONFIG[zoned] = "--enable-zoned,--disable-zoned"
-PACKAGECONFIG[python] = "--enable-python,--disable-python,python3-setuptools-native"
-PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd"
-PACKAGECONFIG[udev] = "--enable-libudev,--disable-libudev,udev"
-
-# Pick only one crypto provider
-PACKAGECONFIG[crypto-builtin] = "--with-crypto=builtin"
-PACKAGECONFIG[crypto-libgcrypt] = "--with-crypto=libgcrypt,,libgcrypt"
-PACKAGECONFIG[crypto-libsodium] = "--with-crypto=libsodium,,libsodium"
-PACKAGECONFIG[crypto-libkcapi] = "--with-crypto=libkcapi,,libkcapi"
-
-inherit autotools-brokensep pkgconfig manpages
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'distutils3-base', '', d)}
-
-CLEANBROKEN = "1"
-
-EXTRA_OECONF = "--enable-largefile"
-EXTRA_OECONF:append:libc-musl = " --disable-backtrace "
-EXTRA_PYTHON_CFLAGS = "${DEBUG_PREFIX_MAP}"
-EXTRA_PYTHON_CFLAGS:class-native = ""
-EXTRA_PYTHON_LDFLAGS = "${LDFLAGS}"
-EXTRA_OEMAKE = "V=1 'EXTRA_PYTHON_CFLAGS=${EXTRA_PYTHON_CFLAGS}' 'EXTRA_PYTHON_LDFLAGS=${EXTRA_PYTHON_LDFLAGS}'"
-
-do_configure:prepend() {
-	# Upstream doesn't ship this and autoreconf won't install it as automake isn't used.
-	mkdir -p ${S}/config
-	cp -f $(automake --print-libdir)/install-sh ${S}/config/
-}
-
-
-do_install:append() {
-    if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then
-        oe_runmake 'DESTDIR=${D}' 'PYTHON_SITEPACKAGES_DIR=${PYTHON_SITEPACKAGES_DIR}' install_python
-    fi
-}
-
-RDEPENDS:${PN} = "libgcc"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.16.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.16.bb
new file mode 100644
index 0000000..fa7abcf
--- /dev/null
+++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.16.bb
@@ -0,0 +1,72 @@
+SUMMARY = "Checksumming Copy on Write Filesystem utilities"
+DESCRIPTION = "Btrfs is a new copy on write filesystem for Linux aimed at \
+implementing advanced features while focusing on fault tolerance, repair and \
+easy administration. \
+This package contains utilities (mkfs, fsck, btrfsctl) used to work with \
+btrfs and an utility (btrfs-convert) to make a btrfs filesystem from an ext3."
+
+HOMEPAGE = "https://btrfs.wiki.kernel.org"
+
+LICENSE = "GPLv2 & LGPLv2.1+"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067 \
+    file://libbtrfsutil/COPYING;md5=4fbd65380cdd255951079008b364516c \
+"
+SECTION = "base"
+DEPENDS = "lzo util-linux zlib"
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git;branch=master \
+           file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
+           file://0001-btrfs-progs-kerncompat-add-local-definition-for-alig.patch \
+           "
+SRCREV = "8ad326b2f28c044cb6ed9016d7c3285e23b673c8"
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= " \
+    programs \
+    convert \
+    python \
+    crypto-builtin \
+"
+PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native"
+PACKAGECONFIG[programs] = "--enable-programs,--disable-programs"
+PACKAGECONFIG[convert] = "--enable-convert --with-convert=ext2,--disable-convert --without-convert,e2fsprogs"
+PACKAGECONFIG[zoned] = "--enable-zoned,--disable-zoned"
+PACKAGECONFIG[python] = "--enable-python,--disable-python,python3-setuptools-native"
+PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd"
+PACKAGECONFIG[udev] = "--enable-libudev,--disable-libudev,udev"
+
+# Pick only one crypto provider
+PACKAGECONFIG[crypto-builtin] = "--with-crypto=builtin"
+PACKAGECONFIG[crypto-libgcrypt] = "--with-crypto=libgcrypt,,libgcrypt"
+PACKAGECONFIG[crypto-libsodium] = "--with-crypto=libsodium,,libsodium"
+PACKAGECONFIG[crypto-libkcapi] = "--with-crypto=libkcapi,,libkcapi"
+
+inherit autotools-brokensep pkgconfig manpages
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'setuptools3-base', '', d)}
+
+CLEANBROKEN = "1"
+
+EXTRA_OECONF = "--enable-largefile"
+EXTRA_OECONF:append:libc-musl = " --disable-backtrace "
+EXTRA_PYTHON_CFLAGS = "${DEBUG_PREFIX_MAP}"
+EXTRA_PYTHON_CFLAGS:class-native = ""
+EXTRA_PYTHON_LDFLAGS = "${LDFLAGS}"
+EXTRA_OEMAKE = "V=1 'EXTRA_PYTHON_CFLAGS=${EXTRA_PYTHON_CFLAGS}' 'EXTRA_PYTHON_LDFLAGS=${EXTRA_PYTHON_LDFLAGS}'"
+
+do_configure:prepend() {
+	# Upstream doesn't ship this and autoreconf won't install it as automake isn't used.
+	mkdir -p ${S}/config
+	cp -f $(automake --print-libdir)/install-sh ${S}/config/
+}
+
+
+do_install:append() {
+    if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then
+        oe_runmake 'DESTDIR=${D}' 'PYTHON_SITEPACKAGES_DIR=${PYTHON_SITEPACKAGES_DIR}' install_python
+    fi
+}
+
+RDEPENDS:${PN} = "libgcc"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/cargo/cargo-cross-canadian_1.56.0.bb b/poky/meta/recipes-devtools/cargo/cargo-cross-canadian_1.58.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/cargo/cargo-cross-canadian_1.56.0.bb
rename to poky/meta/recipes-devtools/cargo/cargo-cross-canadian_1.58.0.bb
diff --git a/poky/meta/recipes-devtools/cargo/cargo_1.56.0.bb b/poky/meta/recipes-devtools/cargo/cargo_1.58.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/cargo/cargo_1.56.0.bb
rename to poky/meta/recipes-devtools/cargo/cargo_1.58.0.bb
diff --git a/poky/meta/recipes-devtools/ccache/ccache_4.4.2.bb b/poky/meta/recipes-devtools/ccache/ccache_4.4.2.bb
deleted file mode 100644
index dd0ad64..0000000
--- a/poky/meta/recipes-devtools/ccache/ccache_4.4.2.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "a fast C/C++ compiler cache"
-DESCRIPTION = "ccache is a compiler cache. It speeds up recompilation \
-by caching the result of previous compilations and detecting when the \
-same compilation is being done again. Supported languages are C, C\+\+, \
-Objective-C and Objective-C++."
-HOMEPAGE = "http://ccache.samba.org"
-SECTION = "devel"
-
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=985be6d06a50f60a9893a19a6d2550b8"
-
-DEPENDS = "zstd"
-
-SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz"
-SRC_URI[sha256sum] = "357a2ac55497b39ad6885c14b00cda6cf21d1851c6290f4288e62972665de417"
-
-UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/"
-
-inherit cmake
-
-PATCHTOOL = "patch"
-
-BBCLASSEXTEND = "native nativesdk"
-
-PACKAGECONFIG[docs] = "-DENABLE_DOCUMENTATION=ON,-DENABLE_DOCUMENTATION=OFF,asciidoc"
-PACKAGECONFIG[redis] = "-DREDIS_STORAGE_BACKEND=ON,-DREDIS_STORAGE_BACKEND=OFF,hiredis"
diff --git a/poky/meta/recipes-devtools/ccache/ccache_4.5.1.bb b/poky/meta/recipes-devtools/ccache/ccache_4.5.1.bb
new file mode 100644
index 0000000..26f8089
--- /dev/null
+++ b/poky/meta/recipes-devtools/ccache/ccache_4.5.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "a fast C/C++ compiler cache"
+DESCRIPTION = "ccache is a compiler cache. It speeds up recompilation \
+by caching the result of previous compilations and detecting when the \
+same compilation is being done again. Supported languages are C, C\+\+, \
+Objective-C and Objective-C++."
+HOMEPAGE = "http://ccache.samba.org"
+SECTION = "devel"
+
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=8fe0fdfdc7a892516526b86c28d06a16"
+
+DEPENDS = "zstd"
+
+SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "f0d3cff5d555d6868f14a7d05696f0370074e475304fd5aa152b98f892364981"
+
+UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/"
+
+inherit cmake
+
+PATCHTOOL = "patch"
+
+BBCLASSEXTEND = "native nativesdk"
+
+PACKAGECONFIG[docs] = "-DENABLE_DOCUMENTATION=ON,-DENABLE_DOCUMENTATION=OFF,asciidoc"
+PACKAGECONFIG[redis] = "-DREDIS_STORAGE_BACKEND=ON,-DREDIS_STORAGE_BACKEND=OFF,hiredis"
diff --git a/poky/meta/recipes-devtools/cmake/cmake-native_3.21.3.bb b/poky/meta/recipes-devtools/cmake/cmake-native_3.22.1.bb
similarity index 100%
rename from poky/meta/recipes-devtools/cmake/cmake-native_3.21.3.bb
rename to poky/meta/recipes-devtools/cmake/cmake-native_3.22.1.bb
diff --git a/poky/meta/recipes-devtools/cmake/cmake.inc b/poky/meta/recipes-devtools/cmake/cmake.inc
index 43d4fe5..628734a 100644
--- a/poky/meta/recipes-devtools/cmake/cmake.inc
+++ b/poky/meta/recipes-devtools/cmake/cmake.inc
@@ -21,7 +21,7 @@
            file://0004-Fail-silently-if-system-Qt-installation-is-broken.patch \
 "
 
-SRC_URI[sha256sum] = "d14d06df4265134ee42c4d50f5a60cb8b471b7b6a47da8e5d914d49dd783794f"
+SRC_URI[sha256sum] = "0e998229549d7b3f368703d20e248e7ee1f853910d42704aa87918c213ea82c0"
 
 UPSTREAM_CHECK_REGEX = "cmake-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-devtools/cmake/cmake_3.21.3.bb b/poky/meta/recipes-devtools/cmake/cmake_3.22.1.bb
similarity index 100%
rename from poky/meta/recipes-devtools/cmake/cmake_3.21.3.bb
rename to poky/meta/recipes-devtools/cmake/cmake_3.22.1.bb
diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.7.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.7.bb
deleted file mode 100644
index 739a2dc..0000000
--- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.7.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-DESCRIPTION = "C implementation of createrepo."
-HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "git://github.com/rpm-software-management/createrepo_c \
-           file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
-           "
-
-SRCREV = "c4e6808c710ec68e56bd93b0366f3b6cbeee3167"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm"
-DEPENDS:append:class-native = " file-replacement-native"
-
-inherit cmake pkgconfig bash-completion distutils3-base
-
-EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DWITH_ZCHUNK=OFF -DENABLE_DRPM=OFF -DWITH_LIBMODULEMD=OFF"
-
-BBCLASSEXTEND = "native nativesdk"
-
-# Direct createrepo to read rpm configuration from our sysroot, not the one it was compiled in
-do_install:append:class-native() {
-        create_wrapper ${D}/${bindir}/createrepo_c \
-                RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \
-                MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc
-        create_wrapper ${D}/${bindir}/modifyrepo_c \
-                MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc
-}
-
-do_install:append:class-nativesdk() {
-        create_wrapper ${D}/${bindir}/createrepo_c \
-                RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm \
-                MAGIC=${datadir}/misc/magic.mgc
-        create_wrapper ${D}/${bindir}/modifyrepo_c \
-                MAGIC=${datadir}/misc/magic.mgc
-        rm -rf ${D}/etc
-}
diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.18.0.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.18.0.bb
new file mode 100644
index 0000000..d5fa38d
--- /dev/null
+++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.18.0.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "C implementation of createrepo."
+HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://github.com/rpm-software-management/createrepo_c;branch=master;protocol=https \
+           file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
+           "
+
+SRCREV = "09ea861c8ef11927de5a276116ecb83ab8e93462"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm"
+DEPENDS:append:class-native = " file-replacement-native"
+
+inherit cmake pkgconfig bash-completion setuptools3-base
+
+EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DWITH_ZCHUNK=OFF -DENABLE_DRPM=OFF -DWITH_LIBMODULEMD=OFF"
+
+BBCLASSEXTEND = "native nativesdk"
+
+# Direct createrepo to read rpm configuration from our sysroot, not the one it was compiled in
+do_install:append:class-native() {
+        create_wrapper ${D}/${bindir}/createrepo_c \
+                RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \
+                MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc
+        create_wrapper ${D}/${bindir}/modifyrepo_c \
+                MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc
+}
+
+do_install:append:class-nativesdk() {
+        create_wrapper ${D}/${bindir}/createrepo_c \
+                RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm \
+                MAGIC=${datadir}/misc/magic.mgc
+        create_wrapper ${D}/${bindir}/modifyrepo_c \
+                MAGIC=${datadir}/misc/magic.mgc
+        rm -rf ${D}/etc
+}
diff --git a/poky/meta/recipes-devtools/diffstat/diffstat/0001-aclocal.m4-add-missing-header-defines.patch b/poky/meta/recipes-devtools/diffstat/diffstat/0001-aclocal.m4-add-missing-header-defines.patch
deleted file mode 100644
index 5bd94d7..0000000
--- a/poky/meta/recipes-devtools/diffstat/diffstat/0001-aclocal.m4-add-missing-header-defines.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 004bd80d2523f538467b5ada2623eb207b55dad7 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 20 Dec 2019 15:44:28 +0100
-Subject: [PATCH] aclocal.m4: add missing header defines
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- aclocal.m4 | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 3b19e82..c0c4acb 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -1927,3 +1927,8 @@ make an error
- fi
- fi # cf_cv_posix_visible
- ])
-+
-+AC_DEFINE([HAVE_TCGETATTR], [], [Description])
-+AC_DEFINE([HAVE_TCSETATTR], [], [Description])
-+AC_DEFINE([HAVE_TERMIOS_H], [], [Description])
-+
diff --git a/poky/meta/recipes-devtools/diffstat/diffstat_1.64.bb b/poky/meta/recipes-devtools/diffstat/diffstat_1.64.bb
index 76ca30c..717f503 100644
--- a/poky/meta/recipes-devtools/diffstat/diffstat_1.64.bb
+++ b/poky/meta/recipes-devtools/diffstat/diffstat_1.64.bb
@@ -10,7 +10,6 @@
 SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz \
            file://run-ptest \
            file://avoid-check-user-break-cc.patch \
-           file://0001-aclocal.m4-add-missing-header-defines.patch \
            "
 
 SRC_URI[sha256sum] = "b8aee38d9d2e1d05926e6b55810a9d2c2dd407f24d6a267387563a4436e3f7fc"
diff --git a/poky/meta/recipes-devtools/distcc/distcc_3.4.bb b/poky/meta/recipes-devtools/distcc/distcc_3.4.bb
index 7adf8a8..93983f6 100644
--- a/poky/meta/recipes-devtools/distcc/distcc_3.4.bb
+++ b/poky/meta/recipes-devtools/distcc/distcc_3.4.bb
@@ -15,7 +15,7 @@
 
 RRECOMMENDS:${PN}-server = "avahi-daemon"
 
-SRC_URI = "git://github.com/distcc/distcc.git \
+SRC_URI = "git://github.com/distcc/distcc.git;branch=master;protocol=https \
            file://default \
            file://distcc \
            file://distcc.service \
diff --git a/poky/meta/recipes-devtools/dnf/dnf_4.10.0.bb b/poky/meta/recipes-devtools/dnf/dnf_4.10.0.bb
index b7273d4..3fc24b1 100644
--- a/poky/meta/recipes-devtools/dnf/dnf_4.10.0.bb
+++ b/poky/meta/recipes-devtools/dnf/dnf_4.10.0.bb
@@ -8,7 +8,7 @@
                     file://PACKAGE-LICENSING;md5=4a0548e303dbc77f067335b4d688e745 \
                     "
 
-SRC_URI = "git://github.com/rpm-software-management/dnf.git \
+SRC_URI = "git://github.com/rpm-software-management/dnf.git;branch=master;protocol=https \
            file://0001-Corretly-install-tmpfiles.d-configuration.patch \
            file://0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch \
            file://0005-Do-not-prepend-installroot-to-logdir.patch \
@@ -23,7 +23,7 @@
 
 S = "${WORKDIR}/git"
 
-inherit cmake gettext bash-completion distutils3-base systemd
+inherit cmake gettext bash-completion setuptools3-base systemd
 
 DEPENDS += "libdnf librepo libcomps python3-iniparse"
 
@@ -38,7 +38,6 @@
   python3-netclient \
   python3-email \
   python3-threading \
-  python3-distutils \
   python3-logging \
   python3-fcntl \
   librepo \
@@ -63,8 +62,8 @@
 # .spec file in dnf source tree does (and then Fedora and dnf documentation
 # says that dnf binary is plain 'dnf').
 do_install:append() {
-        lnr ${D}/${bindir}/dnf-3 ${D}/${bindir}/dnf
-        lnr ${D}/${bindir}/dnf-automatic-3 ${D}/${bindir}/dnf-automatic
+        ln -rs ${D}/${bindir}/dnf-3 ${D}/${bindir}/dnf
+        ln -rs ${D}/${bindir}/dnf-automatic-3 ${D}/${bindir}/dnf-automatic
 }
 
 # Direct dnf-native to read rpm configuration from our sysroot, not the one it was compiled in
diff --git a/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4/docbook-xml-update-catalog.xml.patch b/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4/docbook-xml-update-catalog.xml.patch
index 5970360..c138563 100644
--- a/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4/docbook-xml-update-catalog.xml.patch
+++ b/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4/docbook-xml-update-catalog.xml.patch
@@ -2,7 +2,7 @@
 
 Refer Ubuntu 13.04 to update catalog.xml
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [docbook 4.x development has ceased, docbook 5 is entirely different]
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
 ---
  docbook-4.0/catalog.xml   | 72 +++++++++++++++++++++++++++++++++++++++++++++++
diff --git a/poky/meta/recipes-devtools/dpkg/dpkg.inc b/poky/meta/recipes-devtools/dpkg/dpkg.inc
index b6807b0..00b1e91 100644
--- a/poky/meta/recipes-devtools/dpkg/dpkg.inc
+++ b/poky/meta/recipes-devtools/dpkg/dpkg.inc
@@ -15,7 +15,7 @@
 
 PERL:class-native = "${STAGING_BINDIR_NATIVE}/perl-native/perl"
 
-export PERL_LIBDIR = "${libdir}/perl/${@get_perl_version(d)}"
+export PERL_LIBDIR = "${libdir}/perl5/${@get_perl_version(d)}"
 PERL_LIBDIR:class-native = "${libdir}/perl-native/perl/${@get_perl_version(d)}"
 
 EXTRA_OECONF = "\
@@ -49,9 +49,9 @@
 	if [ "${PN}" = "dpkg-native" ]; then
 		# update-alternatives doesn't have an offline mode
 		rm ${D}${bindir}/update-alternatives
-		sed -i -e 's|^#!.*${STAGING_BINDIR_NATIVE}/perl-native.*/perl|#!/usr/bin/env nativeperl|' ${D}${bindir}/dpkg-*
+		sed -i -e 's|^#!.*${STAGING_BINDIR_NATIVE}/perl-native.*/perl|#!/usr/bin/env nativeperl|' ${D}${bindir}/dpkg-* ${D}${sbindir}/dpkg-*
 	else
-		sed -i -e 's|^#!.*${STAGING_BINDIR_NATIVE}/perl-native.*/perl|#!/usr/bin/env perl|' ${D}${bindir}/dpkg-*
+		sed -i -e 's|^#!.*${STAGING_BINDIR_NATIVE}/perl-native.*/perl|#!/usr/bin/env perl|' ${D}${bindir}/dpkg-* ${D}${sbindir}/dpkg-*
 	fi
 }
 
@@ -61,12 +61,14 @@
 
 PROVIDES += "${PROV}"
 
+FILES:${PN} += "${datadir}/zsh"
+
 PACKAGES =+ "update-alternatives-dpkg"
 FILES:update-alternatives-dpkg = "${bindir}/update-alternatives ${localstatedir}/lib/dpkg/alternatives ${sysconfdir}/alternatives"
 RPROVIDES:update-alternatives-dpkg += "update-alternatives"
 
 PACKAGES += "${PN}-perl"
-FILES:${PN}-perl = "${libdir}/perl/${@get_perl_version(d)}"
+FILES:${PN}-perl = "${libdir}/perl5/${@get_perl_version(d)}"
 
 RDEPENDS:${PN}-perl += "perl-module-carp perl-module-constant \
                         perl-module-cwd perl-module-digest \
diff --git a/poky/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch b/poky/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch
index 2dc68e2..4d3f238 100644
--- a/poky/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch
+++ b/poky/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch
@@ -1,4 +1,4 @@
-From d6f5fed6bc56e1f3b885a796a43aa2868ace57bc Mon Sep 17 00:00:00 2001
+From cb47e9cd6735fcafd231748dab8884ae991b669c Mon Sep 17 00:00:00 2001
 From: Paul Eggleton <paul.eggleton@linux.microsoft.com>
 Date: Tue, 16 Jun 2020 03:57:25 +0000
 Subject: [PATCH] build.c: ignore return of 1 from tar -cf
@@ -29,10 +29,10 @@
  1 file changed, 4 insertions(+), 1 deletion(-)
 
 diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
-index d13a21c1e..059f2be6d 100644
+index 76613adec..7c216d1a9 100644
 --- a/dpkg-deb/build.c
 +++ b/dpkg-deb/build.c
-@@ -480,6 +480,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
+@@ -482,6 +482,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
  {
    int pipe_filenames[2], pipe_tarball[2];
    pid_t pid_tar, pid_comp;
@@ -40,7 +40,7 @@
  
    /* Fork off a tar. We will feed it a list of filenames on stdin later. */
    m_pipe(pipe_filenames);
-@@ -532,7 +533,9 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
+@@ -534,7 +535,9 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
    /* All done, clean up wait for tar and <compress> to finish their job. */
    close(pipe_filenames[1]);
    subproc_reap(pid_comp, _("<compress> from tar -cf"), 0);
diff --git a/poky/meta/recipes-devtools/dpkg/dpkg/0001-dpkg-Support-muslx32-build.patch b/poky/meta/recipes-devtools/dpkg/dpkg/0001-dpkg-Support-muslx32-build.patch
index 50e6894..d66ab44 100644
--- a/poky/meta/recipes-devtools/dpkg/dpkg/0001-dpkg-Support-muslx32-build.patch
+++ b/poky/meta/recipes-devtools/dpkg/dpkg/0001-dpkg-Support-muslx32-build.patch
@@ -3,7 +3,7 @@
 Date: Sun, 10 Sep 2017 00:14:15 -0700
 Subject: [PATCH] dpkg: Support muslx32 build
 
-Upstream-Status: Pending.
+Upstream-Status: Pending
 Changes made on ostable and tupletable to enable muslx32 build.
 
 Signed-off-by: sweeaun <swee.aun.khor@intel.com>
diff --git a/poky/meta/recipes-devtools/dpkg/dpkg/0013-scripts-dpkg-fsys-usrunmess.pl-correct-shebang.patch b/poky/meta/recipes-devtools/dpkg/dpkg/0013-scripts-dpkg-fsys-usrunmess.pl-correct-shebang.patch
deleted file mode 100644
index 292b72a..0000000
--- a/poky/meta/recipes-devtools/dpkg/dpkg/0013-scripts-dpkg-fsys-usrunmess.pl-correct-shebang.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 0decc62904571582147f2273fa1b521e00485dda Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 3 Feb 2021 20:47:58 +0100
-Subject: [PATCH] scripts/dpkg-fsys-usrunmess.pl: correct shebang
-
-Otherwise automake will write the full native perl path into it.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- scripts/dpkg-fsys-usrunmess.pl | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/dpkg-fsys-usrunmess.pl b/scripts/dpkg-fsys-usrunmess.pl
-index 9220df3c0..9ce368955 100755
---- a/scripts/dpkg-fsys-usrunmess.pl
-+++ b/scripts/dpkg-fsys-usrunmess.pl
-@@ -1,4 +1,4 @@
--#!/usr/bin/perl
-+#!/usr/bin/env perl
- #
- # dpkg-fsys-usrunmess - Undoes the merged-/usr-via-aliased-dirs mess
- #
diff --git a/poky/meta/recipes-devtools/dpkg/dpkg/0014-arch-Add-support-for-ARCv2-CPU.patch b/poky/meta/recipes-devtools/dpkg/dpkg/0014-arch-Add-support-for-ARCv2-CPU.patch
deleted file mode 100644
index ece18a3..0000000
--- a/poky/meta/recipes-devtools/dpkg/dpkg/0014-arch-Add-support-for-ARCv2-CPU.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From c6acfba64b470c7e919fd5bd29124d7228492537 Mon Sep 17 00:00:00 2001
-From: Guillem Jover <guillem@debian.org>
-Date: Fri, 28 May 2021 04:07:49 +0200
-Subject: [PATCH] arch: Add support for ARCv2 CPU
-
-This is based on the ARCv2 32-bit little-endian hard-float ISA.
-
-Closes: #980963
-
-Upstream-Status: Backport [https://salsa.debian.org/dpkg-team/dpkg/-/commit/0d134cdcb0dcc6b21fa7926964c1426a5821181d]
-
-Based-on-patch-by: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
-Signed-off-by: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
----
- data/cputable                  | 1 +
- scripts/Dpkg/Shlibs/Objdump.pm | 1 +
- scripts/t/Dpkg_Arch.t          | 4 ++--
- 3 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/data/cputable b/data/cputable
-index 9f2a8e0e4..277bed88f 100644
---- a/data/cputable
-+++ b/data/cputable
-@@ -20,6 +20,7 @@ i386		i686		(i[34567]86|pentium)	32	little
- ia64		ia64		ia64			64	little
- alpha		alpha		alpha.*			64	little
- amd64		x86_64		(amd64|x86_64)		64	little
-+arc		arc		arc			32	little
- armeb		armeb		arm.*b			32	big
- arm		arm		arm.*			32	little
- arm64		aarch64		aarch64			64	little
-diff --git a/scripts/Dpkg/Shlibs/Objdump.pm b/scripts/Dpkg/Shlibs/Objdump.pm
-index 4cee866e7..93319d1eb 100644
---- a/scripts/Dpkg/Shlibs/Objdump.pm
-+++ b/scripts/Dpkg/Shlibs/Objdump.pm
-@@ -100,6 +100,7 @@ use constant {
-     ELF_MACH_OR1K           => 92,
-     ELF_MACH_XTENSA         => 94,
-     ELF_MACH_MICROBLAZE     => 189,
-+    ELF_MACH_ARCV2          => 195,
-     ELF_MACH_AVR_OLD        => 0x1057,
-     ELF_MACH_OR1K_OLD       => 0x8472,
-     ELF_MACH_ALPHA          => 0x9026,
-diff --git a/scripts/t/Dpkg_Arch.t b/scripts/t/Dpkg_Arch.t
-index a3a9e6fee..f0bba272a 100644
---- a/scripts/t/Dpkg_Arch.t
-+++ b/scripts/t/Dpkg_Arch.t
-@@ -16,7 +16,7 @@
- use strict;
- use warnings;
- 
--use Test::More tests => 16836;
-+use Test::More tests => 18407;
- 
- use_ok('Dpkg::Arch', qw(debarch_to_debtuple debarch_to_multiarch
-                         debarch_eq debarch_is debarch_is_wildcard
-@@ -174,7 +174,7 @@ is(gnutriplet_to_debarch(undef), undef, 'undef gnutriplet');
- is(gnutriplet_to_debarch('unknown-unknown-unknown'), undef, 'unknown gnutriplet');
- is(gnutriplet_to_debarch('x86_64-linux-gnu'), 'amd64', 'known gnutriplet');
- 
--is(scalar get_valid_arches(), 539, 'expected amount of known architectures');
-+is(scalar get_valid_arches(), 554, 'expected amount of known architectures');
- 
- {
-     local $ENV{CC} = 'false';
--- 
-2.16.2
-
diff --git a/poky/meta/recipes-devtools/dpkg/dpkg_1.20.9.bb b/poky/meta/recipes-devtools/dpkg/dpkg_1.20.9.bb
deleted file mode 100644
index 34b6bfe..0000000
--- a/poky/meta/recipes-devtools/dpkg/dpkg_1.20.9.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-require dpkg.inc
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI = "git://salsa.debian.org/dpkg-team/dpkg.git;protocol=https;branch=1.20.x \
-           file://noman.patch \
-           file://remove-tar-no-timestamp.patch \
-           file://arch_pm.patch \
-           file://add_armeb_triplet_entry.patch \
-           file://0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch \
-           file://0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch \
-           file://0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch \
-           file://0006-add-musleabi-to-known-target-tripets.patch \
-           file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \
-           file://0001-dpkg-Support-muslx32-build.patch \
-           file://pager.patch \
-           file://0001-Add-support-for-riscv32-CPU.patch \
-           file://0013-scripts-dpkg-fsys-usrunmess.pl-correct-shebang.patch \
-           file://0014-arch-Add-support-for-ARCv2-CPU.patch \
-           "
-
-SRC_URI:append:class-native = " file://0001-build.c-ignore-return-of-1-from-tar-cf.patch"
-
-SRCREV = "2177b782b16e77e97c9643961a5ae3c639bcc4a3"
-
-S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/dpkg/dpkg_1.21.1.bb b/poky/meta/recipes-devtools/dpkg/dpkg_1.21.1.bb
new file mode 100644
index 0000000..ccb4f06
--- /dev/null
+++ b/poky/meta/recipes-devtools/dpkg/dpkg_1.21.1.bb
@@ -0,0 +1,23 @@
+require dpkg.inc
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "git://salsa.debian.org/dpkg-team/dpkg.git;protocol=https;branch=main \
+           file://noman.patch \
+           file://remove-tar-no-timestamp.patch \
+           file://arch_pm.patch \
+           file://add_armeb_triplet_entry.patch \
+           file://0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch \
+           file://0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch \
+           file://0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch \
+           file://0006-add-musleabi-to-known-target-tripets.patch \
+           file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \
+           file://0001-dpkg-Support-muslx32-build.patch \
+           file://pager.patch \
+           file://0001-Add-support-for-riscv32-CPU.patch \
+           "
+
+SRC_URI:append:class-native = " file://0001-build.c-ignore-return-of-1-from-tar-cf.patch"
+
+SRCREV = "9b52f8fa74571049d868cb2af0643ee7f89a6151"
+
+S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
index bcffa77..a030fa6 100644
--- a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
+++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
@@ -19,7 +19,7 @@
 SECTION = "base"
 DEPENDS = "util-linux attr autoconf-archive"
 
-SRC_URI = "git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git"
+SRC_URI = "git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git;branch=master"
 S = "${WORKDIR}/git"
 
 inherit autotools gettext texinfo pkgconfig multilib_header update-alternatives ptest
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-tests-u_direct_io-expect-correct-expected-output.patch b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-tests-u_direct_io-expect-correct-expected-output.patch
deleted file mode 100644
index f198df8..0000000
--- a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-tests-u_direct_io-expect-correct-expected-output.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From ea5adf259e01c790f9ba69d6fe88d691de410b6f Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Sun, 22 Aug 2021 14:37:32 +0200
-Subject: [PATCH] tests/u_direct_io/expect: correct expected output
-
-This is likely the right fix, but upstream needs to confirm.
-
-Upstream-Status: Inappropriate [issue reported https://github.com/tytso/e2fsprogs/issues/80]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- tests/u_direct_io/expect | 16 +++++++++-------
- 1 file changed, 9 insertions(+), 7 deletions(-)
-
-diff --git a/tests/u_direct_io/expect b/tests/u_direct_io/expect
-index b0cdc730..830cbd75 100644
---- a/tests/u_direct_io/expect
-+++ b/tests/u_direct_io/expect
-@@ -19,8 +19,8 @@ Filesystem OS type:       Linux
- Inode count:              32768
- Block count:              32768
- Reserved block count:     1638
--Overhead clusters:        5131
--Free blocks:              27631
-+Overhead clusters:        6155
-+Free blocks:              26607
- Free inodes:              32757
- First block:              0
- Block size:               4096
-@@ -29,27 +29,29 @@ Reserved GDT blocks:      7
- Blocks per group:         32768
- Fragments per group:      32768
- Inodes per group:         32768
--Inode blocks per group:   1024
-+Inode blocks per group:   2048
- Flex block group size:    16
- Mount count:              0
- Check interval:           15552000 (6 months)
- Reserved blocks uid:      0
- Reserved blocks gid:      0
- First inode:              11
--Inode size:	          128
-+Inode size:	          256
-+Required extra isize:     32
-+Desired extra isize:      32
- Journal inode:            8
- Default directory hash:   half_md4
- Journal backup:           inode blocks
- Directories:              2
-  Group  0: block bitmap at 9, inode bitmap at 25, inode table at 41
--           27631 free blocks, 32757 free inodes, 2 used directories
-+           26607 free blocks, 32757 free inodes, 2 used directories
- e2fsck -fn -N test_filesys $LOOP
- Pass 1: Checking inodes, blocks, and sizes
- Pass 2: Checking directory structure
- Pass 3: Checking directory connectivity
- Pass 4: Checking reference counts
- Pass 5: Checking group summary information
--test_filesys: 11/32768 files (9.1% non-contiguous), 5137/32768 blocks
-+test_filesys: 11/32768 files (9.1% non-contiguous), 6161/32768 blocks
- Exit status is 0
- e2fsck -fn -N test_filesys $TMPFILE
- Pass 1: Checking inodes, blocks, and sizes
-@@ -57,5 +59,5 @@ Pass 2: Checking directory structure
- Pass 3: Checking directory connectivity
- Pass 4: Checking reference counts
- Pass 5: Checking group summary information
--test_filesys: 11/32768 files (9.1% non-contiguous), 5137/32768 blocks
-+test_filesys: 11/32768 files (9.1% non-contiguous), 6161/32768 blocks
- Exit status is 0
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch
index a4f9824..29078f9 100644
--- a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch
+++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch
@@ -1,4 +1,4 @@
-From f1e161a48f74b46ae3c99921971c4b5ae8d587c9 Mon Sep 17 00:00:00 2001
+From 22d7557905534d9e1b39f7d2a6d2036a40bf0c4e Mon Sep 17 00:00:00 2001
 From: Jackie Huang <jackie.huang@windriver.com>
 Date: Wed, 10 Aug 2016 11:19:44 +0800
 Subject: [PATCH] Fix missing check for permission denied.
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
index 41a4047..902a369 100644
--- a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
+++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
@@ -1,4 +1,4 @@
-From 550b5fbece84dde16ce9910c2cad390ea4a2f5d5 Mon Sep 17 00:00:00 2001
+From 5408b6463ee700a080a15102bccccdeb2615d734 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Mon, 23 Dec 2013 13:38:34 +0000
 Subject: [PATCH] e2fsprogs: silence debugfs
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.46.4.bb b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.46.4.bb
deleted file mode 100644
index f42cefc..0000000
--- a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.46.4.bb
+++ /dev/null
@@ -1,141 +0,0 @@
-require e2fsprogs.inc
-
-SRC_URI += "file://remove.ldconfig.call.patch \
-           file://run-ptest \
-           file://ptest.patch \
-           file://mkdir_p.patch \
-           file://0001-tests-u_direct_io-expect-correct-expected-output.patch \
-           "
-
-SRC_URI:append:class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch \
-                                file://quiet-debugfs.patch \
-"
-
-SRCREV = "849005eac51ea2097bd9e5f2b0adc16b53c5486d"
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+(\.\d+)*)$"
-
-EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \
-                --enable-elf-shlibs --disable-libuuid --disable-uuidd \
-                --disable-libblkid --enable-verbose-makecmds \
-                --with-crond-dir=no"
-
-EXTRA_OECONF:darwin = "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-bsd-shlibs"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[fuse] = '--enable-fuse2fs,--disable-fuse2fs,fuse'
-
-# make locale rules sometimes fire, sometimes don't as git doesn't preserve
-# file mktime. Touch the files introducing non-determinism to the build
-do_compile:prepend (){
-	find ${S}/po -type f -name "*.po" -exec touch {} +
-}
-
-do_install () {
-	oe_runmake 'DESTDIR=${D}' install
-	oe_runmake 'DESTDIR=${D}' install-libs
-	# We use blkid from util-linux now so remove from here
-	rm -f ${D}${base_libdir}/libblkid*
-	rm -rf ${D}${includedir}/blkid
-	rm -f ${D}${base_libdir}/pkgconfig/blkid.pc
-	rm -f ${D}${base_sbindir}/blkid
-	rm -f ${D}${base_sbindir}/fsck
-	rm -f ${D}${base_sbindir}/findfs
-
-	# e2initrd_helper and the pkgconfig files belong in libdir
-	if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
-		install -d ${D}${libdir}
-		mv ${D}${base_libdir}/e2initrd_helper ${D}${libdir}
-		mv ${D}${base_libdir}/pkgconfig ${D}${libdir}
-	fi
-
-	oe_multilib_header ext2fs/ext2_types.h
-	install -d ${D}${base_bindir}
-	mv ${D}${bindir}/chattr ${D}${base_bindir}/chattr.e2fsprogs
-
-	install -v -m 755 ${S}/contrib/populate-extfs.sh ${D}${base_sbindir}/
-
-	# Clean host path (build directory) in compile_et, mk_cmds
-	sed -i -e "s,\(ET_DIR=.*\)${S}/lib/et\(.*\),\1${datadir}/et\2,g" ${D}${bindir}/compile_et
-	sed -i -e "s,\(SS_DIR=.*\)${S}/lib/ss\(.*\),\1${datadir}/ss\2,g" ${D}${bindir}/mk_cmds
-}
-
-# Need to find the right mke2fs.conf file
-e2fsprogs_conf_fixup () {
-	for i in mke2fs mkfs.ext2 mkfs.ext3 mkfs.ext4; do
-		create_wrapper ${D}${base_sbindir}/$i MKE2FS_CONFIG=${sysconfdir}/mke2fs.conf
-	done
-}
-
-do_install:append:class-native() {
-	e2fsprogs_conf_fixup
-}
-
-do_install:append:class-nativesdk() {
-	e2fsprogs_conf_fixup
-}
-
-do_install:append:class-target() {
-	mv ${D}${base_sbindir}/mke2fs ${D}${base_sbindir}/mke2fs.e2fsprogs
-	mv ${D}${base_sbindir}/mkfs.ext2 ${D}${base_sbindir}/mkfs.ext2.e2fsprogs
-	mv ${D}${base_sbindir}/tune2fs ${D}${base_sbindir}/tune2fs.e2fsprogs
-}
-
-RDEPENDS:e2fsprogs = "e2fsprogs-badblocks e2fsprogs-dumpe2fs"
-RRECOMMENDS:e2fsprogs = "e2fsprogs-mke2fs e2fsprogs-e2fsck"
-
-PACKAGES =+ "e2fsprogs-badblocks e2fsprogs-dumpe2fs e2fsprogs-e2fsck e2fsprogs-e2scrub e2fsprogs-mke2fs e2fsprogs-resize2fs e2fsprogs-tune2fs"
-PACKAGES =+ "libcomerr libss libe2p libext2fs"
-
-FILES:e2fsprogs-dumpe2fs = "${base_sbindir}/dumpe2fs"
-FILES:e2fsprogs-resize2fs = "${base_sbindir}/resize2fs*"
-FILES:e2fsprogs-e2fsck = "${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext*"
-FILES:e2fsprogs-e2scrub = "${base_sbindir}/e2scrub*"
-FILES:e2fsprogs-mke2fs = "${base_sbindir}/mke2fs.e2fsprogs ${base_sbindir}/mkfs.ext* ${sysconfdir}/mke2fs.conf"
-FILES:e2fsprogs-tune2fs = "${base_sbindir}/tune2fs.e2fsprogs ${base_sbindir}/e2label"
-FILES:e2fsprogs-badblocks = "${base_sbindir}/badblocks"
-FILES:libcomerr = "${base_libdir}/libcom_err.so.*"
-FILES:libss = "${base_libdir}/libss.so.*"
-FILES:libe2p = "${base_libdir}/libe2p.so.*"
-FILES:libext2fs = "${libdir}/e2initrd_helper ${base_libdir}/libext2fs.so.*"
-FILES:${PN}-dev += "${datadir}/*/*.awk ${datadir}/*/*.sed ${base_libdir}/*.so ${bindir}/compile_et ${bindir}/mk_cmds"
-
-ALTERNATIVE:${PN} = "chattr"
-ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_LINK_NAME[chattr] = "${base_bindir}/chattr"
-ALTERNATIVE_TARGET[chattr] = "${base_bindir}/chattr.e2fsprogs"
-
-ALTERNATIVE:${PN}-doc = "fsck.8"
-ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8"
-
-ALTERNATIVE:${PN}-mke2fs = "mke2fs mkfs.ext2"
-ALTERNATIVE_LINK_NAME[mke2fs] = "${base_sbindir}/mke2fs"
-ALTERNATIVE_LINK_NAME[mkfs.ext2] = "${base_sbindir}/mkfs.ext2"
-
-ALTERNATIVE:${PN}-tune2fs = "tune2fs"
-ALTERNATIVE_LINK_NAME[tune2fs] = "${base_sbindir}/tune2fs"
-
-RDEPENDS:e2fsprogs-e2scrub = "bash"
-RDEPENDS:${PN}-ptest += "coreutils procps bash bzip2 diffutils perl sed"
-RDEPENDS:${PN}-ptest += "e2fsprogs-badblocks e2fsprogs-dumpe2fs e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-resize2fs e2fsprogs-tune2fs"
-
-do_compile_ptest() {
-	oe_runmake -C ${B}/tests
-}
-
-do_install_ptest() {
-	# This file's permissions depends on the host umask so be deterministic
-	chmod 0644 ${B}/tests/test_data.tmp
-	cp -R --no-dereference --preserve=mode,links -v ${B}/tests ${D}${PTEST_PATH}/test
-	cp -R --no-dereference --preserve=mode,links -v ${S}/tests/* ${D}${PTEST_PATH}/test
-	sed -e 's!../e2fsck/e2fsck!e2fsck!g' \
-	    -e 's!../misc/tune2fs!tune2fs!g' -i ${D}${PTEST_PATH}/test/*/expect*
-	sed -e 's!../e2fsck/e2fsck!${base_sbindir}/e2fsck!g' -i ${D}${PTEST_PATH}/test/*/script
-
-	# Remove various files
-	find "${D}${PTEST_PATH}" -type f \
-	    \( -name 'Makefile' -o -name 'Makefile.in' -o -name '*.o' -o -name '*.c' -o -name '*.h' \)\
-	    -exec  rm -f {} +
-
-        install -d ${D}${PTEST_PATH}/lib
-        install -m 0644 ${B}/lib/config.h  ${D}${PTEST_PATH}/lib/
-}
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.46.5.bb b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.46.5.bb
new file mode 100644
index 0000000..16c183e
--- /dev/null
+++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.46.5.bb
@@ -0,0 +1,140 @@
+require e2fsprogs.inc
+
+SRC_URI += "file://remove.ldconfig.call.patch \
+           file://run-ptest \
+           file://ptest.patch \
+           file://mkdir_p.patch \
+           "
+SRC_URI:append:class-native = " \
+           file://e2fsprogs-fix-missing-check-for-permission-denied.patch \
+           file://quiet-debugfs.patch \
+           "
+
+SRCREV = "02540dedd3ddc52c6ae8aaa8a95ce75c3f8be1c0"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+(\.\d+)*)$"
+
+EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \
+                --enable-elf-shlibs --disable-libuuid --disable-uuidd \
+                --disable-libblkid --enable-verbose-makecmds \
+                --with-crond-dir=no"
+
+EXTRA_OECONF:darwin = "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-bsd-shlibs"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[fuse] = '--enable-fuse2fs,--disable-fuse2fs,fuse'
+
+# make locale rules sometimes fire, sometimes don't as git doesn't preserve
+# file mktime. Touch the files introducing non-determinism to the build
+do_compile:prepend (){
+	find ${S}/po -type f -name "*.po" -exec touch {} +
+}
+
+do_install () {
+	oe_runmake 'DESTDIR=${D}' install
+	oe_runmake 'DESTDIR=${D}' install-libs
+	# We use blkid from util-linux now so remove from here
+	rm -f ${D}${base_libdir}/libblkid*
+	rm -rf ${D}${includedir}/blkid
+	rm -f ${D}${base_libdir}/pkgconfig/blkid.pc
+	rm -f ${D}${base_sbindir}/blkid
+	rm -f ${D}${base_sbindir}/fsck
+	rm -f ${D}${base_sbindir}/findfs
+
+	# e2initrd_helper and the pkgconfig files belong in libdir
+	if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
+		install -d ${D}${libdir}
+		mv ${D}${base_libdir}/e2initrd_helper ${D}${libdir}
+		mv ${D}${base_libdir}/pkgconfig ${D}${libdir}
+	fi
+
+	oe_multilib_header ext2fs/ext2_types.h
+	install -d ${D}${base_bindir}
+	mv ${D}${bindir}/chattr ${D}${base_bindir}/chattr.e2fsprogs
+
+	install -v -m 755 ${S}/contrib/populate-extfs.sh ${D}${base_sbindir}/
+
+	# Clean host path (build directory) in compile_et, mk_cmds
+	sed -i -e "s,\(ET_DIR=.*\)${S}/lib/et\(.*\),\1${datadir}/et\2,g" ${D}${bindir}/compile_et
+	sed -i -e "s,\(SS_DIR=.*\)${S}/lib/ss\(.*\),\1${datadir}/ss\2,g" ${D}${bindir}/mk_cmds
+}
+
+# Need to find the right mke2fs.conf file
+e2fsprogs_conf_fixup () {
+	for i in mke2fs mkfs.ext2 mkfs.ext3 mkfs.ext4; do
+		create_wrapper ${D}${base_sbindir}/$i MKE2FS_CONFIG=${sysconfdir}/mke2fs.conf
+	done
+}
+
+do_install:append:class-native() {
+	e2fsprogs_conf_fixup
+}
+
+do_install:append:class-nativesdk() {
+	e2fsprogs_conf_fixup
+}
+
+do_install:append:class-target() {
+	mv ${D}${base_sbindir}/mke2fs ${D}${base_sbindir}/mke2fs.e2fsprogs
+	mv ${D}${base_sbindir}/mkfs.ext2 ${D}${base_sbindir}/mkfs.ext2.e2fsprogs
+	mv ${D}${base_sbindir}/tune2fs ${D}${base_sbindir}/tune2fs.e2fsprogs
+}
+
+RDEPENDS:e2fsprogs = "e2fsprogs-badblocks e2fsprogs-dumpe2fs"
+RRECOMMENDS:e2fsprogs = "e2fsprogs-mke2fs e2fsprogs-e2fsck"
+
+PACKAGES =+ "e2fsprogs-badblocks e2fsprogs-dumpe2fs e2fsprogs-e2fsck e2fsprogs-e2scrub e2fsprogs-mke2fs e2fsprogs-resize2fs e2fsprogs-tune2fs"
+PACKAGES =+ "libcomerr libss libe2p libext2fs"
+
+FILES:e2fsprogs-dumpe2fs = "${base_sbindir}/dumpe2fs"
+FILES:e2fsprogs-resize2fs = "${base_sbindir}/resize2fs*"
+FILES:e2fsprogs-e2fsck = "${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext*"
+FILES:e2fsprogs-e2scrub = "${base_sbindir}/e2scrub*"
+FILES:e2fsprogs-mke2fs = "${base_sbindir}/mke2fs.e2fsprogs ${base_sbindir}/mkfs.ext* ${sysconfdir}/mke2fs.conf"
+FILES:e2fsprogs-tune2fs = "${base_sbindir}/tune2fs.e2fsprogs ${base_sbindir}/e2label"
+FILES:e2fsprogs-badblocks = "${base_sbindir}/badblocks"
+FILES:libcomerr = "${base_libdir}/libcom_err.so.*"
+FILES:libss = "${base_libdir}/libss.so.*"
+FILES:libe2p = "${base_libdir}/libe2p.so.*"
+FILES:libext2fs = "${libdir}/e2initrd_helper ${base_libdir}/libext2fs.so.*"
+FILES:${PN}-dev += "${datadir}/*/*.awk ${datadir}/*/*.sed ${base_libdir}/*.so ${bindir}/compile_et ${bindir}/mk_cmds"
+
+ALTERNATIVE:${PN} = "chattr"
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_LINK_NAME[chattr] = "${base_bindir}/chattr"
+ALTERNATIVE_TARGET[chattr] = "${base_bindir}/chattr.e2fsprogs"
+
+ALTERNATIVE:${PN}-doc = "fsck.8"
+ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8"
+
+ALTERNATIVE:${PN}-mke2fs = "mke2fs mkfs.ext2"
+ALTERNATIVE_LINK_NAME[mke2fs] = "${base_sbindir}/mke2fs"
+ALTERNATIVE_LINK_NAME[mkfs.ext2] = "${base_sbindir}/mkfs.ext2"
+
+ALTERNATIVE:${PN}-tune2fs = "tune2fs"
+ALTERNATIVE_LINK_NAME[tune2fs] = "${base_sbindir}/tune2fs"
+
+RDEPENDS:e2fsprogs-e2scrub = "bash"
+RDEPENDS:${PN}-ptest += "coreutils procps bash bzip2 diffutils perl sed"
+RDEPENDS:${PN}-ptest += "e2fsprogs-badblocks e2fsprogs-dumpe2fs e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-resize2fs e2fsprogs-tune2fs"
+
+do_compile_ptest() {
+	oe_runmake -C ${B}/tests
+}
+
+do_install_ptest() {
+	# This file's permissions depends on the host umask so be deterministic
+	chmod 0644 ${B}/tests/test_data.tmp
+	cp -R --no-dereference --preserve=mode,links -v ${B}/tests ${D}${PTEST_PATH}/test
+	cp -R --no-dereference --preserve=mode,links -v ${S}/tests/* ${D}${PTEST_PATH}/test
+	sed -e 's!../e2fsck/e2fsck!e2fsck!g' \
+	    -e 's!../misc/tune2fs!tune2fs!g' -i ${D}${PTEST_PATH}/test/*/expect*
+	sed -e 's!../e2fsck/e2fsck!${base_sbindir}/e2fsck!g' -i ${D}${PTEST_PATH}/test/*/script
+
+	# Remove various files
+	find "${D}${PTEST_PATH}" -type f \
+	    \( -name 'Makefile' -o -name 'Makefile.in' -o -name '*.o' -o -name '*.c' -o -name '*.h' \)\
+	    -exec  rm -f {} +
+
+        install -d ${D}${PTEST_PATH}/lib
+        install -m 0644 ${B}/lib/config.h  ${D}${PTEST_PATH}/lib/
+}
diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.185.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.185.bb
deleted file mode 100644
index f4769e3..0000000
--- a/poky/meta/recipes-devtools/elfutils/elfutils_0.185.bb
+++ /dev/null
@@ -1,170 +0,0 @@
-SUMMARY = "Utilities and libraries for handling compiled object files"
-HOMEPAGE = "https://sourceware.org/elfutils"
-DESCRIPTION = "elfutils is a collection of utilities and libraries to read, create and modify ELF binary files, find and handle DWARF debug data, symbols, thread state and stacktraces for processes and core files on GNU/Linux."
-SECTION = "base"
-LICENSE = "GPLv2 & GPLv2+ & LGPLv3+ & GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
-                    file://debuginfod/debuginfod-client.c;endline=27;md5=f8e9d171c401c493ec45a0b2992ea2ed \
-                    "
-DEPENDS = "zlib virtual/libintl"
-DEPENDS:append:libc-musl = " argp-standalone fts musl-obstack "
-# The Debian patches below are from:
-# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz
-SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \
-           file://0001-dso-link-change.patch \
-           file://0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch \
-           file://0003-fixheadercheck.patch \
-           file://0006-Fix-build-on-aarch64-musl.patch \
-           file://0001-libasm-may-link-with-libbz2-if-found.patch \
-           file://0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch \
-           file://0001-skip-the-test-when-gcc-not-deployed.patch \
-           file://run-ptest \
-           file://ptest.patch \
-           file://0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch \
-           file://0001-debuginfod-debuginfod-client.c-correct-string-format.patch \
-           file://glibc-2.34-fix.patch \
-           "
-SRC_URI:append:libc-musl = " \
-           file://0002-musl-libs.patch \
-           file://0003-musl-utils.patch \
-           file://0004-Fix-error-on-musl.patch \
-           file://0015-config-eu.am-do-not-use-Werror.patch \
-           "
-SRC_URI[sha256sum] = "dc8d3e74ab209465e7f568e1b3bb9a5a142f8656e2b57d10049a73da2ae6b5a6"
-
-# remove at next version upgrade or when output changes
-PR = "r1"
-
-inherit autotools gettext ptest pkgconfig
-
-EXTRA_OECONF = "--program-prefix=eu-"
-
-DEPENDS_BZIP2 = "bzip2-replacement-native"
-DEPENDS_BZIP2:class-target = "bzip2"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'debuginfod', 'debuginfod libdebuginfod', '', d)}"
-PACKAGECONFIG[bzip2] = "--with-bzlib,--without-bzlib,${DEPENDS_BZIP2}"
-PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz"
-PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
-PACKAGECONFIG[libdebuginfod] = "--enable-libdebuginfod,--disable-libdebuginfod,curl"
-PACKAGECONFIG[debuginfod] = "--enable-debuginfod,--disable-debuginfod,libarchive sqlite3 libmicrohttpd"
-
-RDEPENDS:${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils iproute2-ss bsdtar gcc-symlinks binutils-symlinks libgcc-dev"
-
-EXTRA_OECONF:append:class-target = " --disable-tests-rpath"
-
-RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils glibc-dbg glibc-dev"
-INSANE_SKIP:${PN}-ptest = "debug-deps dev-deps"
-
-do_compile_ptest() {
-	cd ${B}/tests
-	oe_runmake buildtest-TESTS oecheck
-}
-
-do_install_ptest() {
-	if [ ${PTEST_ENABLED} = "1" ]; then
-		# copy the files which needed by the cases
-		TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint elfcompress elfclassify stack unstrip"
-		install -d -m 755                       ${D}${PTEST_PATH}/src
-		install -d -m 755                       ${D}${PTEST_PATH}/libelf
-		install -d -m 755                       ${D}${PTEST_PATH}/libdw
-		install -d -m 755                       ${D}${PTEST_PATH}/libdwfl
-		install -d -m 755                       ${D}${PTEST_PATH}/libdwelf
-		install -d -m 755                       ${D}${PTEST_PATH}/libasm
-		install -d -m 755                       ${D}${PTEST_PATH}/libcpu
-		install -d -m 755                       ${D}${PTEST_PATH}/libebl
-		for test_file in ${TEST_FILES}; do
-			if [ -f ${B}/src/${test_file} ]; then
-				cp -r ${B}/src/${test_file} ${D}${PTEST_PATH}/src
-			fi
-		done
-		cp ${D}${libdir}/libelf-${PV}.so ${D}${PTEST_PATH}/libelf/libelf.so
-		cp ${D}${libdir}/libdw-${PV}.so ${D}${PTEST_PATH}/libdw/libdw.so
-		cp ${D}${libdir}/libasm-${PV}.so ${D}${PTEST_PATH}/libasm/libasm.so
-		cp ${B}/libcpu/libcpu.a ${D}${PTEST_PATH}/libcpu/
-		cp ${B}/libebl/libebl.a ${D}${PTEST_PATH}/libebl/
-		cp ${S}/libelf/*.h             ${D}${PTEST_PATH}/libelf/
-		cp ${S}/libdw/*.h              ${D}${PTEST_PATH}/libdw/
-		cp ${S}/libdwfl/*.h            ${D}${PTEST_PATH}/libdwfl/
-		cp ${S}/libdwelf/*.h           ${D}${PTEST_PATH}/libdwelf/
-		cp ${S}/libasm/*.h             ${D}${PTEST_PATH}/libasm/
-		cp -r ${S}/tests/                       ${D}${PTEST_PATH}
-		cp -r ${B}/tests/*                      ${D}${PTEST_PATH}/tests
-		cp -r ${B}/config.h                     ${D}${PTEST_PATH}
-		cp -r ${B}/backends                     ${D}${PTEST_PATH}
-		cp -r ${B}/debuginfod                   ${D}${PTEST_PATH}
-		sed -i '/^Makefile:/c Makefile:'        ${D}${PTEST_PATH}/tests/Makefile
-		find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {}
-	fi
-}
-
-EXTRA_OEMAKE:class-native = ""
-EXTRA_OEMAKE:class-nativesdk = ""
-
-BBCLASSEXTEND = "native nativesdk"
-
-# Package utilities separately
-PACKAGES =+ "${PN}-binutils libelf libasm libdw libdebuginfod"
-
-# shared libraries are licensed GPLv2 or GPLv3+, binaries GPLv3+
-# according to NEWS file:
-# "The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone
-# programs. There is now also a formal CONTRIBUTING document describing how to
-# submit patches."
-LICENSE:${PN}-binutils = "GPLv3+"
-LICENSE:${PN} = "GPLv3+"
-LICENSE:libelf = "GPLv2 | LGPLv3+"
-LICENSE:libasm = "GPLv2 | LGPLv3+"
-LICENSE:libdw = "GPLv2 | LGPLv3+"
-LICENSE:libdebuginfod = "GPLv2+ | LGPLv3+"
-
-FILES:${PN}-binutils = "\
-    ${bindir}/eu-addr2line \
-    ${bindir}/eu-ld \
-    ${bindir}/eu-nm \
-    ${bindir}/eu-readelf \
-    ${bindir}/eu-size \
-    ${bindir}/eu-strip"
-
-FILES:libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*"
-FILES:libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*"
-FILES:libdw  = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*"
-FILES:libdebuginfod = "${libdir}/libdebuginfod-${PV}.so ${libdir}/libdebuginfod.so.*"
-# Some packages have the version preceeding the .so instead properly
-# versioned .so.<version>, so we need to reorder and repackage.
-#FILES:${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so"
-#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so"
-
-# The package contains symlinks that trip up insane
-INSANE_SKIP:${MLPREFIX}libdw = "dev-so"
-# The nlist binary in the tests uses explicitly minimal compiler flags
-INSANE_SKIP:${PN}-ptest += "ldflags"
-
-# avoid stripping some generated binaries otherwise some of the tests such as test-nlist,
-# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail
-INHIBIT_PACKAGE_STRIP_FILES = "\
-    ${PKGD}${PTEST_PATH}/tests/test-nlist \
-    ${PKGD}${PTEST_PATH}/tests/elfstrmerge \
-    ${PKGD}${PTEST_PATH}/tests/backtrace-child \
-    ${PKGD}${PTEST_PATH}/tests/backtrace-data \
-    ${PKGD}${PTEST_PATH}/tests/backtrace-dwarf \
-    ${PKGD}${PTEST_PATH}/tests/deleted \
-    ${PKGD}${PTEST_PATH}/tests/dwfllines \
-    ${PKGD}${PTEST_PATH}/src/strip \
-    ${PKGD}${PTEST_PATH}/src/addr2line \
-    ${PKGD}${PTEST_PATH}/src/elfcmp \
-    ${PKGD}${PTEST_PATH}/src/objdump \
-    ${PKGD}${PTEST_PATH}/src/readelf \
-    ${PKGD}${PTEST_PATH}/src/nm \
-    ${PKGD}${PTEST_PATH}/src/elflint \
-    ${PKGD}${PTEST_PATH}/src/elfclassify \
-    ${PKGD}${PTEST_PATH}/src/stack \
-    ${PKGD}${PTEST_PATH}/src/unstrip \
-    ${PKGD}${PTEST_PATH}/libelf/libelf.so \
-    ${PKGD}${PTEST_PATH}/libdw/libdw.so \
-    ${PKGD}${PTEST_PATH}/libasm/libasm.so \
-    ${PKGD}${PTEST_PATH}/backends/libebl_i386.so \
-    ${PKGD}${PTEST_PATH}/backends/libebl_x86_64.so \
-"
-
-PRIVATE_LIBS:${PN}-ptest = "libdw.so.1 libelf.so.1 libasm.so.1 libdebuginfod.so.1"
diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.186.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.186.bb
new file mode 100644
index 0000000..93f53c1
--- /dev/null
+++ b/poky/meta/recipes-devtools/elfutils/elfutils_0.186.bb
@@ -0,0 +1,166 @@
+SUMMARY = "Utilities and libraries for handling compiled object files"
+HOMEPAGE = "https://sourceware.org/elfutils"
+DESCRIPTION = "elfutils is a collection of utilities and libraries to read, create and modify ELF binary files, find and handle DWARF debug data, symbols, thread state and stacktraces for processes and core files on GNU/Linux."
+SECTION = "base"
+LICENSE = "GPLv2 & GPLv2+ & LGPLv3+ & GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://debuginfod/debuginfod-client.c;endline=27;md5=d2adfd8f5347d4c96e3c280393ce66da \
+                    "
+DEPENDS = "zlib virtual/libintl"
+DEPENDS:append:libc-musl = " argp-standalone fts musl-obstack "
+# The Debian patches below are from:
+# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz
+SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \
+           file://0001-dso-link-change.patch \
+           file://0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch \
+           file://0003-fixheadercheck.patch \
+           file://0006-Fix-build-on-aarch64-musl.patch \
+           file://0001-libasm-may-link-with-libbz2-if-found.patch \
+           file://0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch \
+           file://0001-skip-the-test-when-gcc-not-deployed.patch \
+           file://run-ptest \
+           file://ptest.patch \
+           file://0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch \
+           file://0001-debuginfod-fix-compilation-on-platforms-without-erro.patch \
+           file://0001-debuginfod-debuginfod-client.c-use-long-for-cache-ti.patch \
+           "
+SRC_URI:append:libc-musl = " \
+           file://0003-musl-utils.patch \
+           file://0015-config-eu.am-do-not-use-Werror.patch \
+           "
+SRC_URI[sha256sum] = "7f6fb9149b1673d38d9178a0d3e0fb8a1ec4f53a9f4c2ff89469609879641177"
+
+inherit autotools gettext ptest pkgconfig
+PTEST_ENABLED:libc-musl = "0"
+
+EXTRA_OECONF = "--program-prefix=eu-"
+
+DEPENDS_BZIP2 = "bzip2-replacement-native"
+DEPENDS_BZIP2:class-target = "bzip2"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'debuginfod', 'debuginfod libdebuginfod', '', d)}"
+PACKAGECONFIG[bzip2] = "--with-bzlib,--without-bzlib,${DEPENDS_BZIP2}"
+PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz"
+PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
+PACKAGECONFIG[libdebuginfod] = "--enable-libdebuginfod,--disable-libdebuginfod,curl"
+PACKAGECONFIG[debuginfod] = "--enable-debuginfod,--disable-debuginfod,libarchive sqlite3 libmicrohttpd"
+
+RDEPENDS:${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils iproute2-ss bsdtar gcc-symlinks binutils-symlinks libgcc-dev"
+
+EXTRA_OECONF:append:class-target = " --disable-tests-rpath"
+
+RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils glibc-dbg glibc-dev"
+INSANE_SKIP:${PN}-ptest = "debug-deps dev-deps"
+
+do_compile_ptest() {
+	cd ${B}/tests
+	oe_runmake buildtest-TESTS oecheck
+}
+
+do_install_ptest() {
+	if [ ${PTEST_ENABLED} = "1" ]; then
+		# copy the files which needed by the cases
+		TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint elfcompress elfclassify stack unstrip"
+		install -d -m 755                       ${D}${PTEST_PATH}/src
+		install -d -m 755                       ${D}${PTEST_PATH}/libelf
+		install -d -m 755                       ${D}${PTEST_PATH}/libdw
+		install -d -m 755                       ${D}${PTEST_PATH}/libdwfl
+		install -d -m 755                       ${D}${PTEST_PATH}/libdwelf
+		install -d -m 755                       ${D}${PTEST_PATH}/libasm
+		install -d -m 755                       ${D}${PTEST_PATH}/libcpu
+		install -d -m 755                       ${D}${PTEST_PATH}/libebl
+		for test_file in ${TEST_FILES}; do
+			if [ -f ${B}/src/${test_file} ]; then
+				cp -r ${B}/src/${test_file} ${D}${PTEST_PATH}/src
+			fi
+		done
+		cp ${D}${libdir}/libelf-${PV}.so ${D}${PTEST_PATH}/libelf/libelf.so
+		cp ${D}${libdir}/libdw-${PV}.so ${D}${PTEST_PATH}/libdw/libdw.so
+		cp ${D}${libdir}/libasm-${PV}.so ${D}${PTEST_PATH}/libasm/libasm.so
+		cp ${B}/libcpu/libcpu.a ${D}${PTEST_PATH}/libcpu/
+		cp ${B}/libebl/libebl.a ${D}${PTEST_PATH}/libebl/
+		cp ${S}/libelf/*.h             ${D}${PTEST_PATH}/libelf/
+		cp ${S}/libdw/*.h              ${D}${PTEST_PATH}/libdw/
+		cp ${S}/libdwfl/*.h            ${D}${PTEST_PATH}/libdwfl/
+		cp ${S}/libdwelf/*.h           ${D}${PTEST_PATH}/libdwelf/
+		cp ${S}/libasm/*.h             ${D}${PTEST_PATH}/libasm/
+		cp -r ${S}/tests/                       ${D}${PTEST_PATH}
+		cp -r ${B}/tests/*                      ${D}${PTEST_PATH}/tests
+		cp -r ${B}/config.h                     ${D}${PTEST_PATH}
+		cp -r ${B}/backends                     ${D}${PTEST_PATH}
+		cp -r ${B}/debuginfod                   ${D}${PTEST_PATH}
+		sed -i '/^Makefile:/c Makefile:'        ${D}${PTEST_PATH}/tests/Makefile
+		find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {}
+	fi
+}
+
+EXTRA_OEMAKE:class-native = ""
+EXTRA_OEMAKE:class-nativesdk = ""
+
+BBCLASSEXTEND = "native nativesdk"
+
+# Package utilities separately
+PACKAGES =+ "${PN}-binutils libelf libasm libdw libdebuginfod"
+
+# shared libraries are licensed GPLv2 or GPLv3+, binaries GPLv3+
+# according to NEWS file:
+# "The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone
+# programs. There is now also a formal CONTRIBUTING document describing how to
+# submit patches."
+LICENSE:${PN}-binutils = "GPLv3+"
+LICENSE:${PN} = "GPLv3+"
+LICENSE:libelf = "GPLv2 | LGPLv3+"
+LICENSE:libasm = "GPLv2 | LGPLv3+"
+LICENSE:libdw = "GPLv2 | LGPLv3+"
+LICENSE:libdebuginfod = "GPLv2+ | LGPLv3+"
+
+FILES:${PN}-binutils = "\
+    ${bindir}/eu-addr2line \
+    ${bindir}/eu-ld \
+    ${bindir}/eu-nm \
+    ${bindir}/eu-readelf \
+    ${bindir}/eu-size \
+    ${bindir}/eu-strip"
+
+FILES:libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*"
+FILES:libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*"
+FILES:libdw  = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*"
+FILES:libdebuginfod = "${libdir}/libdebuginfod-${PV}.so ${libdir}/libdebuginfod.so.*"
+# Some packages have the version preceeding the .so instead properly
+# versioned .so.<version>, so we need to reorder and repackage.
+#FILES:${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so"
+#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so"
+
+# The package contains symlinks that trip up insane
+INSANE_SKIP:${MLPREFIX}libdw = "dev-so"
+# The nlist binary in the tests uses explicitly minimal compiler flags
+INSANE_SKIP:${PN}-ptest += "ldflags"
+
+# avoid stripping some generated binaries otherwise some of the tests such as test-nlist,
+# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail
+INHIBIT_PACKAGE_STRIP_FILES = "\
+    ${PKGD}${PTEST_PATH}/tests/test-nlist \
+    ${PKGD}${PTEST_PATH}/tests/elfstrmerge \
+    ${PKGD}${PTEST_PATH}/tests/backtrace-child \
+    ${PKGD}${PTEST_PATH}/tests/backtrace-data \
+    ${PKGD}${PTEST_PATH}/tests/backtrace-dwarf \
+    ${PKGD}${PTEST_PATH}/tests/deleted \
+    ${PKGD}${PTEST_PATH}/tests/dwfllines \
+    ${PKGD}${PTEST_PATH}/src/strip \
+    ${PKGD}${PTEST_PATH}/src/addr2line \
+    ${PKGD}${PTEST_PATH}/src/elfcmp \
+    ${PKGD}${PTEST_PATH}/src/objdump \
+    ${PKGD}${PTEST_PATH}/src/readelf \
+    ${PKGD}${PTEST_PATH}/src/nm \
+    ${PKGD}${PTEST_PATH}/src/elflint \
+    ${PKGD}${PTEST_PATH}/src/elfclassify \
+    ${PKGD}${PTEST_PATH}/src/stack \
+    ${PKGD}${PTEST_PATH}/src/unstrip \
+    ${PKGD}${PTEST_PATH}/libelf/libelf.so \
+    ${PKGD}${PTEST_PATH}/libdw/libdw.so \
+    ${PKGD}${PTEST_PATH}/libasm/libasm.so \
+    ${PKGD}${PTEST_PATH}/backends/libebl_i386.so \
+    ${PKGD}${PTEST_PATH}/backends/libebl_x86_64.so \
+"
+
+PRIVATE_LIBS:${PN}-ptest = "libdw.so.1 libelf.so.1 libasm.so.1 libdebuginfod.so.1"
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-correct-string-format.patch b/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-correct-string-format.patch
deleted file mode 100644
index 5b225c5..0000000
--- a/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-correct-string-format.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From c3055ce9eb32d0d24abc5cea5e1d231c499312a7 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 19 Apr 2021 23:29:10 +0200
-Subject: [PATCH] debuginfod/debuginfod-client.c: correct string format on
- 32bit arches with 64bit time_t
-
-Use intmax_t to print time_t
-
-time_t is platform dependent and some of architectures e.g.
-x32, riscv32, arc use 64bit time_t even while they are 32bit
-architectures, therefore directly using integer printf formats will not
-work portably, use intmax_t to typecast time_t into printf family of
-functions
-
-Upstream-Status: Pending
-
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- debuginfod/debuginfod-client.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
-index ee7eda2..083ec2c 100644
---- a/debuginfod/debuginfod-client.c
-+++ b/debuginfod/debuginfod-client.c
-@@ -226,7 +226,7 @@ debuginfod_config_cache(char *config_path,
-       if (fd < 0)
-         return -errno;
- 
--      if (dprintf(fd, "%ld", cache_config_default_s) < 0)
-+      if (dprintf(fd, "%jd", (intmax_t)cache_config_default_s) < 0)
-         return -errno;
-     }
- 
-@@ -234,7 +234,7 @@ debuginfod_config_cache(char *config_path,
-   FILE *config_file = fopen(config_path, "r");
-   if (config_file)
-     {
--      if (fscanf(config_file, "%ld", &cache_config) != 1)
-+      if (fscanf(config_file, "%jd", (intmax_t*)(&cache_config)) != 1)
-         cache_config = cache_config_default_s;
-       fclose(config_file);
-     }
-@@ -267,7 +267,7 @@ debuginfod_init_cache (char *cache_path, char *interval_path, char *maxage_path)
-   if (fd < 0)
-     return -errno;
- 
--  if (dprintf(fd, "%ld", cache_clean_default_interval_s) < 0)
-+  if (dprintf(fd, "%jd", (intmax_t)cache_clean_default_interval_s) < 0)
-     return -errno;
- 
-   /* init max age config file.  */
-@@ -275,7 +275,7 @@ debuginfod_init_cache (char *cache_path, char *interval_path, char *maxage_path)
-       && (fd = open(maxage_path, O_CREAT | O_RDWR, DEFFILEMODE)) < 0)
-     return -errno;
- 
--  if (dprintf(fd, "%ld", cache_default_max_unused_age_s) < 0)
-+  if (dprintf(fd, "%jd", (intmax_t)cache_default_max_unused_age_s) < 0)
-     return -errno;
- 
-   return 0;
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-use-long-for-cache-ti.patch b/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-use-long-for-cache-ti.patch
new file mode 100644
index 0000000..089f1a2
--- /dev/null
+++ b/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-use-long-for-cache-ti.patch
@@ -0,0 +1,45 @@
+From a0852044907110479d0fb212dda2c5e45af2d3aa Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Thu, 9 Dec 2021 10:43:06 +0100
+Subject: [PATCH] debuginfod/debuginfod-client.c: use long for cache time
+ configurations
+
+time_t is platform dependent and some of architectures e.g.
+x32, riscv32, arc use 64bit time_t even while they are 32bit
+architectures, therefore directly using integer printf formats will not
+work portably.
+
+Use a plain long everywhere as the intervals are small enough
+that it will not be problematic.
+
+Upstream-Status: Submitted [via email to mark@klomp.org,elfutils-devel@sourceware.org]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ debuginfod/debuginfod-client.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
+index c875ee6..11e0fd5 100644
+--- a/debuginfod/debuginfod-client.c
++++ b/debuginfod/debuginfod-client.c
+@@ -134,17 +134,17 @@ struct debuginfod_client
+    how frequently the cache should be cleaned. The file's st_mtime represents
+    the time of last cleaning.  */
+ static const char *cache_clean_interval_filename = "cache_clean_interval_s";
+-static const time_t cache_clean_default_interval_s = 86400; /* 1 day */
++static const long cache_clean_default_interval_s = 86400; /* 1 day */
+ 
+ /* The cache_miss_default_s within the debuginfod cache specifies how
+    frequently the 000-permision file should be released.*/
+-static const time_t cache_miss_default_s = 600; /* 10 min */
++static const long cache_miss_default_s = 600; /* 10 min */
+ static const char *cache_miss_filename = "cache_miss_s";
+ 
+ /* The cache_max_unused_age_s file within the debuginfod cache specifies the
+    the maximum time since last access that a file will remain in the cache.  */
+ static const char *cache_max_unused_age_filename = "max_unused_age_s";
+-static const time_t cache_default_max_unused_age_s = 604800; /* 1 week */
++static const long cache_default_max_unused_age_s = 604800; /* 1 week */
+ 
+ /* Location of the cache of files downloaded from debuginfods.
+    The default parent directory is $HOME, or '/' if $HOME doesn't exist.  */
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-fix-compilation-on-platforms-without-erro.patch b/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-fix-compilation-on-platforms-without-erro.patch
new file mode 100644
index 0000000..e80d96a
--- /dev/null
+++ b/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-fix-compilation-on-platforms-without-erro.patch
@@ -0,0 +1,54 @@
+From 99617d7ab5b01c322b0f27d4aa0dd91c61793a5e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=89rico=20Nogueira?= <erico.erc@gmail.com>
+Date: Wed, 10 Nov 2021 21:17:48 -0300
+Subject: [PATCH] debuginfod: fix compilation on platforms without <error.h>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+"system.h" only declares the error() function, so it needs to be in an
+'extern "C"' block, otherwise linking fails.
+
+Since we are here, use quotes for "system.h" header, since it's a local
+header, not a system one.
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=elfutils.git;a=commit;h=90b9e91b961b794a4e58ab76d9191a5e7343584e]
+Signed-off-by: Érico Nogueira <erico.erc@gmail.com>
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ debuginfod/ChangeLog      | 4 ++++
+ debuginfod/debuginfod.cxx | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog
+index f06d3ee..822bd63 100644
+--- a/debuginfod/ChangeLog
++++ b/debuginfod/ChangeLog
+@@ -1,3 +1,7 @@
++2021-11-10  Érico N. Rolim  <erico.erc@gmail.com>
++
++	* debuginfod.cxx: include "system.h" under 'extern "C"' block.
++
+ 2021-11-05  Frank Ch. Eigler  <fche@redhat.com>
+ 
+ 	PR28430
+diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx
+index 521cb52..764e7b9 100644
+--- a/debuginfod/debuginfod.cxx
++++ b/debuginfod/debuginfod.cxx
+@@ -33,11 +33,11 @@
+ 
+ extern "C" {
+ #include "printversion.h"
++#include "system.h"
+ }
+ 
+ #include "debuginfod.h"
+ #include <dwarf.h>
+-#include <system.h>
+ 
+ #include <argp.h>
+ #ifdef __GNUC__
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch b/poky/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch
index 114ca63..0e6bf55 100644
--- a/poky/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch
+++ b/poky/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch
@@ -6,7 +6,7 @@
 Skip the tests which depend on gcc when
 gcc not deployed.
 
-Upstream-Status: Submitted[https://sourceware.org/ml/elfutils-devel/2019-q2/msg00091.html]
+Upstream-Status: Submitted [https://sourceware.org/ml/elfutils-devel/2019-q2/msg00091.html]
 
 Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
 
diff --git a/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch b/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch
deleted file mode 100644
index c7360da..0000000
--- a/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 0f4667f0bb4b000d74ade07e90bd690b7217a19d Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 23 Aug 2019 10:18:47 +0800
-Subject: [PATCH] musl-libs
-
-Collection of fixes needed to compile libelf and other libraries
-provided by elfutils for musl targets
-
-error is glibc specific API, so this patch will mostly not accepted
-upstream given that elfutils has been closely tied to glibc
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Inappropriate [workaround for musl]
-
-Rebase to 0.177
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- lib/error.h                    | 27 +++++++++++++++++++++++++++
- lib/fixedsizehash.h            |  1 -
- lib/libeu.h                    |  1 +
- libdwfl/linux-kernel-modules.c |  1 +
- libelf/elf.h                   |  7 +++++++
- 5 files changed, 36 insertions(+), 1 deletion(-)
- create mode 100644 lib/error.h
-
-diff --git a/lib/error.h b/lib/error.h
-new file mode 100644
-index 0000000..ef06827
---- /dev/null
-+++ b/lib/error.h
-@@ -0,0 +1,27 @@
-+#ifndef _ERROR_H_
-+#define _ERROR_H_
-+
-+#include <stdarg.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <errno.h>
-+
-+static unsigned int error_message_count = 0;
-+
-+static inline void error(int status, int errnum, const char* format, ...)
-+{
-+	va_list ap;
-+	fprintf(stderr, "%s: ", program_invocation_name);
-+	va_start(ap, format);
-+	vfprintf(stderr, format, ap);
-+	va_end(ap);
-+	if (errnum)
-+		fprintf(stderr, ": %s", strerror(errnum));
-+	fprintf(stderr, "\n");
-+	error_message_count++;
-+	if (status)
-+		exit(status);
-+}
-+
-+#endif	/* _ERROR_H_ */
-diff --git a/lib/fixedsizehash.h b/lib/fixedsizehash.h
-index dac2a5f..43016fc 100644
---- a/lib/fixedsizehash.h
-+++ b/lib/fixedsizehash.h
-@@ -30,7 +30,6 @@
- #include <errno.h>
- #include <stdlib.h>
- #include <string.h>
--#include <sys/cdefs.h>
- 
- #include <system.h>
- 
-diff --git a/lib/libeu.h b/lib/libeu.h
-index ecb4d01..edc85e3 100644
---- a/lib/libeu.h
-+++ b/lib/libeu.h
-@@ -29,6 +29,7 @@
- #ifndef LIBEU_H
- #define LIBEU_H
- 
-+#include "system.h"
- #include <stddef.h>
- #include <stdint.h>
- 
-diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c
-index c0f8dfa..aa78033 100644
---- a/libdwfl/linux-kernel-modules.c
-+++ b/libdwfl/linux-kernel-modules.c
-@@ -50,6 +50,7 @@
- #include <sys/utsname.h>
- #include <fcntl.h>
- #include <unistd.h>
-+#include "system.h"
- 
- /* If fts.h is included before config.h, its indirect inclusions may not
-    give us the right LFS aliases of these functions, so map them manually.  */
-diff --git a/libelf/elf.h b/libelf/elf.h
-index 8e3e618..1353890 100644
---- a/libelf/elf.h
-+++ b/libelf/elf.h
-@@ -19,6 +19,10 @@
- #ifndef _ELF_H
- #define	_ELF_H 1
- 
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
- /* Standard ELF types.  */
- 
- #include <stdint.h>
-@@ -4102,4 +4106,7 @@ enum
- #define R_ARC_TLS_LE_S9		0x4a
- #define R_ARC_TLS_LE_32		0x4b
- 
-+#ifdef __cplusplus
-+}
-+#endif
- #endif	/* elf.h */
diff --git a/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch b/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch
index 2e379cd..cbc9fce 100644
--- a/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch
+++ b/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch
@@ -1,4 +1,4 @@
-From 2f94d488bf3daaa6a8548ee77120fc2506a9bbe3 Mon Sep 17 00:00:00 2001
+From 8b48c580bae0b0ffc773b0b829c50d33a907853c Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Fri, 23 Aug 2019 10:19:48 +0800
 Subject: [PATCH] musl-utils
@@ -57,7 +57,7 @@
  ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
  
 diff --git a/src/strip.c b/src/strip.c
-index 70fc8c0..d035d9e 100644
+index d5b753d..d6e1b64 100644
 --- a/src/strip.c
 +++ b/src/strip.c
 @@ -46,6 +46,13 @@
@@ -75,7 +75,7 @@
  
  /* Name and version of program.  */
 diff --git a/src/unstrip.c b/src/unstrip.c
-index e488e81..0e44456 100644
+index aacc9aa..5e71290 100644
 --- a/src/unstrip.c
 +++ b/src/unstrip.c
 @@ -52,6 +52,15 @@
diff --git a/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch b/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch
deleted file mode 100644
index 2fa60c3..0000000
--- a/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 72819106d0e5666d172d39c24c19e4e7a3b8be0e Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Wed, 1 May 2019 22:15:03 +0100
-Subject: [PATCH] Fix error on musl:
-
-| ../../elfutils-0.176/tests/elfstrmerge.c: In function 'main':
-| ../../elfutils-0.176/tests/elfstrmerge.c:370:60: error: 'ALLPERMS' undeclared (first use in this function); did you mean 'EPERM'?
-|        fdnew = open (fnew, O_WRONLY | O_CREAT, st.st_mode & ALLPERMS);
-|                                                             ^~~~~~~~
-|                                                             EPERM
-| ../../elfutils-0.176/tests/elfstrmerge.c:370:60: note: each undeclared identifier is reported only once for each function it appears in
-
-Upstream-Status: Inappropriate [workaround in musl]
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
----
- tests/elfstrmerge.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/tests/elfstrmerge.c b/tests/elfstrmerge.c
-index 197c6a5..3683672 100644
---- a/tests/elfstrmerge.c
-+++ b/tests/elfstrmerge.c
-@@ -33,6 +33,11 @@
- #include ELFUTILS_HEADER(dwelf)
- #include "elf-knowledge.h"
- 
-+/* for musl */
-+#ifndef ALLPERMS
-+# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)/* 07777 */
-+#endif
-+
- /* The original ELF file.  */
- static int fd = -1;
- static Elf *elf = NULL;
diff --git a/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch b/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch
index 5cd6fff..9952070 100644
--- a/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch
+++ b/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch
@@ -1,4 +1,4 @@
-From cfced441d4a6f2eca51d29c52240275bd6f54e49 Mon Sep 17 00:00:00 2001
+From 5e39da062929a60a07ddfc8b6d435ea65ea3e31f Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 22 Jun 2020 21:35:16 +0000
 Subject: [PATCH] config/eu.am: do not use -Werror
@@ -16,10 +16,10 @@
  1 file changed, 2 deletions(-)
 
 diff --git a/config/eu.am b/config/eu.am
-index 2c3e457..8fb0411 100644
+index 58cd3c4..ac42390 100644
 --- a/config/eu.am
 +++ b/config/eu.am
-@@ -89,7 +89,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+@@ -91,7 +91,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
  	    -Wold-style-definition -Wstrict-prototypes $(TRAMPOLINES_WARNING) \
  	    $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
  	    $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
@@ -27,7 +27,7 @@
  	    $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
  	    $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
  	    $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \
-@@ -99,7 +98,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \
+@@ -101,7 +100,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \
  	   $(TRAMPOLINES_WARNING) \
  	   $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
  	   $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
diff --git a/poky/meta/recipes-devtools/elfutils/files/glibc-2.34-fix.patch b/poky/meta/recipes-devtools/elfutils/files/glibc-2.34-fix.patch
deleted file mode 100644
index 9509fb4..0000000
--- a/poky/meta/recipes-devtools/elfutils/files/glibc-2.34-fix.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-glibc 2.34 calls pthread_kill from the raise function. Before raise
-directly called the (tg)kill syscall. So allow pthread_kill to be the
-first frame in a backtrace where raise is expected. Also change some
-asserts to fprintf plus abort to make it more clear why the testcase
-fails.
-
-https://sourceware.org/bugzilla/show_bug.cgi?id=28190
-
-Signed-off-by: Mark Wielaard <mark@klomp.org>
-Upstream-Status: Submitted [https://sourceware.org/pipermail/elfutils-devel/2021q3/004019.html]
----
- tests/ChangeLog   |  6 +++++
- tests/backtrace.c | 62 +++++++++++++++++++++++++++++++++++++++++------
- 2 files changed, 61 insertions(+), 7 deletions(-)
-
-Index: elfutils-0.185/tests/ChangeLog
-===================================================================
---- elfutils-0.185.orig/tests/ChangeLog
-+++ elfutils-0.185/tests/ChangeLog
-@@ -1,3 +1,9 @@
-+2021-08-04  Mark Wielaard  <mark@klomp.org>
-+
-+	PR28190
-+	* backtrace.c (callback_verify): Check for pthread_kill as first
-+	frame. Change asserts to fprintf plus abort.
-+
- 2021-05-14  Frank Ch. Eigler <fche@redhat.com>
- 
- 	PR27859
-Index: elfutils-0.185/tests/backtrace.c
-===================================================================
---- elfutils-0.185.orig/tests/backtrace.c
-+++ elfutils-0.185/tests/backtrace.c
-@@ -97,6 +97,9 @@ callback_verify (pid_t tid, unsigned fra
-   static bool reduce_frameno = false;
-   if (reduce_frameno)
-     frameno--;
-+  static bool pthread_kill_seen = false;
-+  if (pthread_kill_seen)
-+    frameno--;
-   if (! use_raise_jmp_patching && frameno >= 2)
-     frameno += 2;
-   const char *symname2 = NULL;
-@@ -107,11 +110,26 @@ callback_verify (pid_t tid, unsigned fra
- 	       && (strcmp (symname, "__kernel_vsyscall") == 0
- 		   || strcmp (symname, "__libc_do_syscall") == 0))
- 	reduce_frameno = true;
-+      else if (! pthread_kill_seen && symname
-+	       && strstr (symname, "pthread_kill") != NULL)
-+	pthread_kill_seen = true;
-       else
--	assert (symname && strcmp (symname, "raise") == 0);
-+	{
-+	  if (!symname || strcmp (symname, "raise") != 0)
-+	    {
-+	      fprintf (stderr,
-+		       "case 0: expected symname 'raise' got '%s'\n", symname);
-+	      abort ();
-+	    }
-+	}
-       break;
-     case 1:
--      assert (symname != NULL && strcmp (symname, "sigusr2") == 0);
-+      if (symname == NULL || strcmp (symname, "sigusr2") != 0)
-+	{
-+	  fprintf (stderr,
-+		   "case 1: expected symname 'sigusr2' got '%s'\n", symname);
-+	  abort ();
-+	}
-       break;
-     case 2: // x86_64 only
-       /* __restore_rt - glibc maybe does not have to have this symbol.  */
-@@ -120,11 +138,21 @@ callback_verify (pid_t tid, unsigned fra
-       if (use_raise_jmp_patching)
- 	{
- 	  /* Verify we trapped on the very first instruction of jmp.  */
--	  assert (symname != NULL && strcmp (symname, "jmp") == 0);
-+	  if (symname == NULL || strcmp (symname, "jmp") != 0)
-+	    {
-+	      fprintf (stderr,
-+		       "case 3: expected symname 'raise' got '%s'\n", symname);
-+	      abort ();
-+	    }
- 	  mod = dwfl_addrmodule (dwfl, pc - 1);
- 	  if (mod)
- 	    symname2 = dwfl_module_addrname (mod, pc - 1);
--	  assert (symname2 == NULL || strcmp (symname2, "jmp") != 0);
-+	  if (symname2 == NULL || strcmp (symname2, "jmp") != 0)
-+	    {
-+	      fprintf (stderr,
-+		       "case 3: expected symname2 'jmp' got '%s'\n", symname2);
-+	      abort ();
-+	    }
- 	  break;
- 	}
-       FALLTHROUGH;
-@@ -137,11 +165,22 @@ callback_verify (pid_t tid, unsigned fra
- 	  duplicate_sigusr2 = true;
- 	  break;
- 	}
--      assert (symname != NULL && strcmp (symname, "stdarg") == 0);
-+      if (symname == NULL || strcmp (symname, "stdarg") != 0)
-+	{
-+	  fprintf (stderr,
-+		   "case 4: expected symname 'stdarg' got '%s'\n", symname);
-+	  abort ();
-+	}
-       break;
-     case 5:
-       /* Verify we trapped on the very last instruction of child.  */
--      assert (symname != NULL && strcmp (symname, "backtracegen") == 0);
-+      if (symname == NULL || strcmp (symname, "backtracegen") != 0)
-+	{
-+	  fprintf (stderr,
-+		   "case 5: expected symname 'backtracegen' got '%s'\n",
-+		   symname);
-+	  abort ();
-+	}
-       mod = dwfl_addrmodule (dwfl, pc);
-       if (mod)
- 	symname2 = dwfl_module_addrname (mod, pc);
-@@ -151,7 +190,15 @@ callback_verify (pid_t tid, unsigned fra
-       // instructions or even inserts some padding instructions at the end
-       // (which apparently happens on ppc64).
-       if (use_raise_jmp_patching)
--        assert (symname2 == NULL || strcmp (symname2, "backtracegen") != 0);
-+	{
-+          if (symname2 != NULL && strcmp (symname2, "backtracegen") == 0)
-+	    {
-+	      fprintf (stderr,
-+		       "use_raise_jmp_patching didn't expect symname2 "
-+		       "'backtracegen'\n");
-+	      abort ();
-+	    }
-+	}
-       break;
-   }
- }
diff --git a/poky/meta/recipes-devtools/erofs-utils/erofs-utils/0001-fsck-main.c-add-missing-include.patch b/poky/meta/recipes-devtools/erofs-utils/erofs-utils/0001-fsck-main.c-add-missing-include.patch
new file mode 100644
index 0000000..c3b3c0b
--- /dev/null
+++ b/poky/meta/recipes-devtools/erofs-utils/erofs-utils/0001-fsck-main.c-add-missing-include.patch
@@ -0,0 +1,26 @@
+From 821778286843b8e88d0cd73a97d20b5a2fff8ea1 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Mon, 6 Dec 2021 20:12:54 +0100
+Subject: [PATCH] fsck/main.c: add missing include
+
+Otherwise musl C library builds fail with missing S_IFMT/S_IFDIR
+definitions.
+
+Upstream-Status: Submitted [email to linux-erofs@lists.ozlabs.org,hsiangkao@linux.alibaba.com]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ fsck/main.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/fsck/main.c b/fsck/main.c
+index aefa881..ad48e35 100644
+--- a/fsck/main.c
++++ b/fsck/main.c
+@@ -6,6 +6,7 @@
+ #include <stdlib.h>
+ #include <getopt.h>
+ #include <time.h>
++#include <sys/stat.h>
+ #include "erofs/print.h"
+ #include "erofs/io.h"
+ #include "erofs/decompress.h"
diff --git a/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.3.bb b/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.3.bb
deleted file mode 100644
index d07d5c4..0000000
--- a/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.3.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Tools for erofs filesystems"
-LICENSE = "GPLv2+"
-SECTION = "base"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94fa01670a2a8f2d3ab2de15004e0848"
-HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/tree/README"
-
-SRCREV = "2cd522105ea771ec30b269cd4c57e2265a4d6349"
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git"
-
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(\d+(\.\d+)+))"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "util-linux-libuuid"
-
-inherit pkgconfig autotools
-
-PACKAGECONFIG ??= "lz4"
-PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4"
-
-EXTRA_OECONF = "${PACKAGECONFIG_CONFARGS} --disable-fuse"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.4.bb b/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.4.bb
new file mode 100644
index 0000000..6ac8a37
--- /dev/null
+++ b/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.4.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Tools for erofs filesystems"
+LICENSE = "GPLv2+"
+SECTION = "base"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94fa01670a2a8f2d3ab2de15004e0848"
+HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/tree/README"
+
+SRCREV = "ee97fe5fb77c737df0f77d92ab0d92edd3a11be6"
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git;branch=master \
+           file://0001-fsck-main.c-add-missing-include.patch \
+           "
+
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(\d+(\.\d+)+))"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "util-linux-libuuid"
+
+inherit pkgconfig autotools
+
+PACKAGECONFIG ??= "lz4"
+PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4"
+
+EXTRA_OECONF = "${PACKAGECONFIG_CONFARGS} --disable-fuse"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/expect/expect/01-example-shebang.patch b/poky/meta/recipes-devtools/expect/expect/01-example-shebang.patch
deleted file mode 100644
index 8597f31..0000000
--- a/poky/meta/recipes-devtools/expect/expect/01-example-shebang.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-Author: Mike Markley <mike@markley.org>
-Author: Sergei Golovan <sgolovan@debian.org>
-Description: Fixes shebangs in examples (Closes: #152367).
-
-Backported from Debian
-
-Upstream-Status: Pending
-Index: expect5.45/example/beer.exp
-===================================================================
---- expect5.45.orig/example/beer.exp	2006-01-25 13:51:39.000000000 -0800
-+++ expect5.45/example/beer.exp	2013-11-01 17:35:19.817318341 -0700
-@@ -1,4 +1,9 @@
--#!/depot/path/expect -f
-+#!/bin/sh
-+# -*- tcl -*-
-+# The next line is executed by /bin/sh, but not tcl \
-+exec tclsh "$0" ${1+"$@"}
-+
-+package require Expect
- 
- # 99 bottles of beer on the wall, Expect-style
- # Author: Don Libes <libes@nist.gov>
-Index: expect5.45/example/expectd.proto
-===================================================================
---- expect5.45.orig/example/expectd.proto	2010-07-02 09:03:31.000000000 -0700
-+++ expect5.45/example/expectd.proto	2013-11-01 17:35:19.821318341 -0700
-@@ -1,4 +1,10 @@
--#!/depot/tcl/src/expect/e --
-+#!/bin/sh
-+# -*- tcl -*-
-+# The next line is executed by /bin/sh, but not tcl \
-+exec tclsh "$0" ${1+"$@"}
-+
-+package require Expect
-+
- # Description: Simple fragment to begin a telnet daemon
- # For more information, see Chapter 17 of "Exploring Expect"
- # Author: Don Libes, NIST
-Index: expect5.45/example/irsh
-===================================================================
---- expect5.45.orig/example/irsh	2010-07-02 09:03:31.000000000 -0700
-+++ expect5.45/example/irsh	2013-11-01 17:35:19.821318341 -0700
-@@ -1,4 +1,9 @@
--#!/depot/path/expect --
-+#!/bin/sh
-+# -*- tcl -*-
-+# The next line is executed by /bin/sh, but not tcl \
-+exec tclsh "$0" ${1+"$@"}
-+
-+package require Expect
- 
- # Do rsh interactively.  For example, consider the following command:
- #    rsh <remote> ls -l "|" more
-Index: expect5.45/example/passwd.cgi
-===================================================================
---- expect5.45.orig/example/passwd.cgi	2000-01-06 15:22:07.000000000 -0800
-+++ expect5.45/example/passwd.cgi	2013-11-01 17:35:19.821318341 -0700
-@@ -1,4 +1,9 @@
--#!/depot/path/expect --
-+#!/bin/sh
-+# -*- tcl -*-
-+# The next line is executed by /bin/sh, but not tcl \
-+exec tclsh "$0" ${1+"$@"}
-+
-+package require Expect
- 
- # This is a CGI script to process requests created by the accompanying
- # passwd.html form.  This script is pretty basic, although it is
-Index: expect5.45/example/passwdprompt
-===================================================================
---- expect5.45.orig/example/passwdprompt	2003-09-05 12:01:59.000000000 -0700
-+++ expect5.45/example/passwdprompt	2013-11-01 17:35:19.821318341 -0700
-@@ -1,4 +1,9 @@
--#!/depot/path/expect
-+#!/bin/sh
-+# -*- tcl -*-
-+# The next line is executed by /bin/sh, but not tcl \
-+exec tclsh "$0" ${1+"$@"}
-+
-+package require Expect
- 
- # This script prompts for a passwd from stdin while echoing *'s
- 
-Index: expect5.45/example/reprompt
-===================================================================
---- expect5.45.orig/example/reprompt	2000-01-06 15:22:07.000000000 -0800
-+++ expect5.45/example/reprompt	2013-11-01 17:35:19.821318341 -0700
-@@ -1,4 +1,9 @@
--#!/depot/path/expect --
-+#!/bin/sh
-+# -*- tcl -*-
-+# The next line is executed by /bin/sh, but not tcl \
-+exec tclsh "$0" ${1+"$@"}
-+
-+package require Expect
- 
- # Name: reprompt
- # Description: reprompt every so often until user enters something
-Index: expect5.45/example/term_expect
-===================================================================
---- expect5.45.orig/example/term_expect	2005-02-15 10:11:31.000000000 -0800
-+++ expect5.45/example/term_expect	2013-11-01 17:35:19.821318341 -0700
-@@ -1,4 +1,9 @@
--#!/depot/path/expectk
-+#!/bin/sh
-+# -*- tcl -*-
-+# The next line is executed by /bin/sh, but not tcl \
-+exec wish "$0" ${1+"$@"}
-+
-+package require Expect
- 
- # Name: tkterm - terminal emulator using Expect and Tk text widget, v3.0
- # Author: Don Libes, July '94
-Index: expect5.45/example/vrfy
-===================================================================
---- expect5.45.orig/example/vrfy	2010-07-02 09:03:31.000000000 -0700
-+++ expect5.45/example/vrfy	2013-11-01 17:35:19.821318341 -0700
-@@ -1,4 +1,9 @@
--#!/depot/path/expect -f
-+#!/bin/sh
-+# -*- tcl -*-
-+# The next line is executed by /bin/sh, but not tcl \
-+exec tclsh "$0" ${1+"$@"}
-+
-+package require Expect
- 
- 
- # separate address into user and host
-Index: expect5.45/example/xrlogin
-===================================================================
---- expect5.45.orig/example/xrlogin	2000-01-06 15:22:08.000000000 -0800
-+++ expect5.45/example/xrlogin	2013-11-01 17:35:19.821318341 -0700
-@@ -1,4 +1,10 @@
--#!/depot/path/expect --
-+#!/bin/sh
-+# -*- tcl -*-
-+# The next line is executed by /bin/sh, but not tcl \
-+exec tclsh "$0" ${1+"$@"}
-+
-+package require Expect
-+
- # xrlogin - rlogin but with current DISPLAY
- #
- # You can extend this idea to save any arbitrary information across rlogin
diff --git a/poky/meta/recipes-devtools/expect/expect_5.45.4.bb b/poky/meta/recipes-devtools/expect/expect_5.45.4.bb
index e27b0d9..4214ab0 100644
--- a/poky/meta/recipes-devtools/expect/expect_5.45.4.bb
+++ b/poky/meta/recipes-devtools/expect/expect_5.45.4.bb
@@ -21,7 +21,6 @@
 SRC_URI = "${SOURCEFORGE_MIRROR}/expect/Expect/${PV}/${BPN}${PV}.tar.gz \
            file://0001-configure.in.patch \
            file://0002-tcl.m4.patch \
-           file://01-example-shebang.patch \
            file://0001-expect-install-scripts-without-using-the-fixline1-tc.patch \
            file://0001-Resolve-string-formatting-issues.patch \
            file://0001-expect-Fix-segfaults-if-Tcl-is-built-with-stubs-and-.patch \
@@ -39,7 +38,6 @@
 	install -d ${D}${libdir}
         install -m 0755 ${D}${libdir}/expect${PV}/libexpect*.so   ${D}${libdir}/
         install -m 0755 ${S}/fixline1           ${D}${libdir}/expect${PV}/
-        install -m 0755 ${S}/example/*          ${D}${libdir}/expect${PV}/
         rm ${D}${libdir}/expect${PV}/libexpect*.so
         sed -e 's|$dir|${libdir}|' -i ${D}${libdir}/expect${PV}/pkgIndex.tcl
 }
diff --git a/poky/meta/recipes-devtools/fdisk/gptfdisk/0001-gptcurses-correct-ncurses-6.3-errors.patch b/poky/meta/recipes-devtools/fdisk/gptfdisk/0001-gptcurses-correct-ncurses-6.3-errors.patch
index 9d0443e..cbd1365 100644
--- a/poky/meta/recipes-devtools/fdisk/gptfdisk/0001-gptcurses-correct-ncurses-6.3-errors.patch
+++ b/poky/meta/recipes-devtools/fdisk/gptfdisk/0001-gptcurses-correct-ncurses-6.3-errors.patch
@@ -3,7 +3,7 @@
 Date: Mon, 25 Oct 2021 17:27:51 +0200
 Subject: [PATCH] gptcurses: correct ncurses 6.3 errors
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [by email to rodsmith@rodsbooks.com]
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
 ---
  gptcurses.cc | 28 ++++++++++++++--------------
diff --git a/poky/meta/recipes-devtools/file/file_5.41.bb b/poky/meta/recipes-devtools/file/file_5.41.bb
index 9cc8308..653887e 100644
--- a/poky/meta/recipes-devtools/file/file_5.41.bb
+++ b/poky/meta/recipes-devtools/file/file_5.41.bb
@@ -11,7 +11,7 @@
 DEPENDS = "file-replacement-native"
 DEPENDS:class-native = "bzip2-replacement-native"
 
-SRC_URI = "git://github.com/file/file.git"
+SRC_URI = "git://github.com/file/file.git;branch=master;protocol=https"
 
 SRCREV = "504206e53a89fd6eed71aeaf878aa3512418eab1"
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/gcc/gcc-11.2.inc b/poky/meta/recipes-devtools/gcc/gcc-11.2.inc
index d39307d..f07a5be 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-11.2.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-11.2.inc
@@ -34,11 +34,8 @@
            file://0002-gcc-poison-system-directories.patch \
            file://0004-64-bit-multilib-hack.patch \
            file://0005-optional-libstdc.patch \
-           file://0006-COLLECT_GCC_OPTIONS.patch \
            file://0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \
-           file://0008-fortran-cross-compile-hack.patch \
            file://0009-cpp-honor-sysroot.patch \
-           file://0010-MIPS64-Default-to-N64-ABI.patch \
            file://0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \
            file://0012-gcc-Fix-argument-list-too-long-error.patch \
            file://0014-libtool.patch \
@@ -55,7 +52,6 @@
            file://0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \
            file://0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \
            file://0030-sync-gcc-stddef.h-with-musl.patch \
-           file://0031-fix-segmentation-fault-in-precompiled-header-generat.patch \
            file://0033-Re-introduce-spe-commandline-options.patch \
            file://0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \
            file://0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \
@@ -63,6 +59,15 @@
            file://0037-libatomic-Do-not-enforce-march-on-aarch64.patch \
            file://0041-apply-debug-prefix-maps-before-checksumming-DIEs.patch \
            file://0006-If-CXXFLAGS-contains-something-unsupported-by-the-bu.patch \
+           file://0001-Fix-install-path-of-linux64.h.patch \
+           file://0001-CVE-2021-35465.patch \
+           file://0002-CVE-2021-35465.patch \
+           file://0003-CVE-2021-35465.patch \
+           file://0004-CVE-2021-35465.patch \
+           file://0001-CVE-2021-42574.patch \
+           file://0002-CVE-2021-42574.patch \
+           file://0003-CVE-2021-42574.patch \
+           file://0004-CVE-2021-42574.patch \
 "
 SRC_URI[sha256sum] = "d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b"
 
@@ -112,3 +117,6 @@
     --with-sysroot=/not/exist \
     --with-build-sysroot=${STAGING_DIR_TARGET} \
 "
+
+# Is a binutils 2.26 issue, not gcc
+CVE_CHECK_WHITELIST += "CVE-2021-37322"
diff --git a/poky/meta/recipes-devtools/gcc/gcc-common.inc b/poky/meta/recipes-devtools/gcc/gcc-common.inc
index 7419064..0f70be7 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-common.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-common.inc
@@ -86,11 +86,7 @@
 DEBIANNAME:${MLPREFIX}libgcc = "libgcc1"
 
 MIRRORS =+ "\
-${GNU_MIRROR}/gcc    ftp://gcc.gnu.org/pub/gcc/releases/ \n \
-${GNU_MIRROR}/gcc	ftp://gd.tuwien.ac.at/gnu/gcc/ \n \
-${GNU_MIRROR}/gcc	http://mirrors.rcn.net/pub/sourceware/gcc/releases/ \n \
-${GNU_MIRROR}/gcc   http://gcc.get-software.com/releases/ \n \
-${GNU_MIRROR}/gcc	http://gcc.get-software.com/releases/ \n \
+    ${GNU_MIRROR}/gcc https://gcc.gnu.org/pub/gcc/releases/ \
 "
 #
 # Set some default values
diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
index 495dd90..168486b 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
@@ -45,6 +45,9 @@
 export ARCH_FLAGS_FOR_TARGET = "--sysroot=${STAGING_DIR_TARGET}"
 
 do_configure () {
+        if [ ! -d ${RECIPE_SYSROOT}/${target_includedir} ]; then
+            mkdir -p ${RECIPE_SYSROOT}/${target_includedir}
+        fi
 	export CC_FOR_BUILD="${BUILD_CC}"
 	export CXX_FOR_BUILD="${BUILD_CXX}"
 	export CFLAGS_FOR_BUILD="${BUILD_CFLAGS}"
@@ -180,9 +183,6 @@
 SYSTEMLIBS1 = "${target_libdir}/"
 
 EXTRA_OECONF += "--enable-poison-system-directories"
-EXTRA_OECONF:remove:elf = "--with-sysroot=/not/exist"
-EXTRA_OECONF:remove:eabi = "--with-sysroot=/not/exist"
-EXTRA_OECONF:append:elf = " --without-headers --with-newlib"
-EXTRA_OECONF:append:eabi = " --without-headers --with-newlib"
+
 # gcc 4.7 needs -isystem
 export ARCH_FLAGS_FOR_TARGET = "--sysroot=${STAGING_DIR_TARGET} -isystem=${target_includedir}"
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-CVE-2021-35465.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-CVE-2021-35465.patch
new file mode 100644
index 0000000..e4aee10
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0001-CVE-2021-35465.patch
@@ -0,0 +1,138 @@
+From 3929bca9ca95de9d35e82ae8828b188029e3eb70 Mon Sep 17 00:00:00 2001
+From: Richard Earnshaw <rearnsha@arm.com>
+Date: Fri, 11 Jun 2021 16:02:05 +0100
+Subject: [PATCH] arm: Add command-line option for enabling CVE-2021-35465
+ mitigation [PR102035]
+
+Add a new option, -mfix-cmse-cve-2021-35465 and document it.  Enable it
+automatically for cortex-m33, cortex-m35p and cortex-m55.
+
+gcc:
+	PR target/102035
+	* config/arm/arm.opt (mfix-cmse-cve-2021-35465): New option.
+	* doc/invoke.texi (Arm Options): Document it.
+	* config/arm/arm-cpus.in (quirk_vlldm): New feature bit.
+	(ALL_QUIRKS): Add quirk_vlldm.
+	(cortex-m33): Add quirk_vlldm.
+	(cortex-m35p, cortex-m55): Likewise.
+	* config/arm/arm.c (arm_option_override): Enable fix_vlldm if
+	targetting an affected CPU and not explicitly controlled on
+	the command line.
+
+CVE: CVE-2021-35465
+Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=3929bca9ca95de9d35e82ae8828b188029e3eb70]
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+
+---
+ gcc/config/arm/arm-cpus.in | 9 +++++++--
+ gcc/config/arm/arm.c       | 9 +++++++++
+ gcc/config/arm/arm.opt     | 4 ++++
+ gcc/doc/invoke.texi        | 9 +++++++++
+ 4 files changed, 29 insertions(+), 2 deletions(-)
+
+diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
+--- a/gcc/config/arm/arm.c	2021-11-15 02:13:11.100579812 -0800
++++ b/gcc/config/arm/arm.c	2021-11-15 02:17:36.988237692 -0800
+@@ -3610,6 +3610,15 @@ arm_option_override (void)
+ 	fix_cm3_ldrd = 0;
+     }
+ 
++  /* Enable fix_vlldm by default if required.  */
++  if (fix_vlldm == 2)
++    {
++      if (bitmap_bit_p (arm_active_target.isa, isa_bit_quirk_vlldm))
++	fix_vlldm = 1;
++      else
++	fix_vlldm = 0;
++    }
++
+   /* Hot/Cold partitioning is not currently supported, since we can't
+      handle literal pool placement in that case.  */
+   if (flag_reorder_blocks_and_partition)
+diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in
+--- a/gcc/config/arm/arm-cpus.in	2021-11-15 02:13:11.104579747 -0800
++++ b/gcc/config/arm/arm-cpus.in	2021-11-15 02:17:36.984237757 -0800
+@@ -186,6 +186,9 @@ define feature quirk_armv6kz
+ # Cortex-M3 LDRD quirk.
+ define feature quirk_cm3_ldrd
+ 
++# v8-m/v8.1-m VLLDM errata.
++define feature quirk_vlldm
++
+ # Don't use .cpu assembly directive
+ define feature quirk_no_asmcpu
+ 
+@@ -322,7 +325,7 @@ define implied vfp_base MVE MVE_FP ALL_F
+ # architectures.
+ # xscale isn't really a 'quirk', but it isn't an architecture either and we
+ # need to ignore it for matching purposes.
+-define fgroup ALL_QUIRKS   quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd xscale quirk_no_asmcpu
++define fgroup ALL_QUIRKS   quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd quirk_vlldm xscale quirk_no_asmcpu
+ 
+ define fgroup IGNORE_FOR_MULTILIB cdecp0 cdecp1 cdecp2 cdecp3 cdecp4 cdecp5 cdecp6 cdecp7
+ 
+@@ -1570,6 +1573,7 @@ begin cpu cortex-m33
+  architecture armv8-m.main+dsp+fp
+  option nofp remove ALL_FP
+  option nodsp remove armv7em
++ isa quirk_vlldm
+  costs v7m
+ end cpu cortex-m33
+ 
+@@ -1579,6 +1583,7 @@ begin cpu cortex-m35p
+  architecture armv8-m.main+dsp+fp
+  option nofp remove ALL_FP
+  option nodsp remove armv7em
++ isa quirk_vlldm
+  costs v7m
+ end cpu cortex-m35p
+ 
+@@ -1590,7 +1595,7 @@ begin cpu cortex-m55
+  option nomve remove mve mve_float
+  option nofp remove ALL_FP mve_float
+  option nodsp remove MVE mve_float
+- isa quirk_no_asmcpu
++ isa quirk_no_asmcpu quirk_vlldm
+  costs v7m
+  vendor 41
+ end cpu cortex-m55
+diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt
+--- a/gcc/config/arm/arm.opt	2021-11-15 02:13:11.104579747 -0800
++++ b/gcc/config/arm/arm.opt	2021-11-15 02:17:36.988237692 -0800
+@@ -268,6 +268,10 @@ Target Var(fix_cm3_ldrd) Init(2)
+ Avoid overlapping destination and address registers on LDRD instructions
+ that may trigger Cortex-M3 errata.
+ 
++mfix-cmse-cve-2021-35465
++Target Var(fix_vlldm) Init(2)
++Mitigate issues with VLLDM on some M-profile devices (CVE-2021-35465).
++
+ munaligned-access
+ Target Var(unaligned_access) Init(2) Save
+ Enable unaligned word and halfword accesses to packed data.
+diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
+--- a/gcc/doc/invoke.texi	2021-11-15 02:13:11.112579616 -0800
++++ b/gcc/doc/invoke.texi	2021-11-15 02:17:36.996237562 -0800
+@@ -804,6 +804,7 @@ Objective-C and Objective-C++ Dialects}.
+ -mverbose-cost-dump @gol
+ -mpure-code @gol
+ -mcmse @gol
++-mfix-cmse-cve-2021-35465 @gol
+ -mfdpic}
+ 
+ @emph{AVR Options}
+@@ -20487,6 +20488,14 @@ Generate secure code as per the "ARMv8-M
+ Development Tools Engineering Specification", which can be found on
+ @url{https://developer.arm.com/documentation/ecm0359818/latest/}.
+ 
++@item -mfix-cmse-cve-2021-35465
++@opindex mfix-cmse-cve-2021-35465
++Mitigate against a potential security issue with the @code{VLLDM} instruction
++in some M-profile devices when using CMSE (CVE-2021-365465).  This option is
++enabled by default when the option @option{-mcpu=} is used with
++@code{cortex-m33}, @code{cortex-m35p} or @code{cortex-m55}.  The option
++@option{-mno-fix-cmse-cve-2021-35465} can be used to disable the mitigation.
++
+ @item -mfdpic
+ @itemx -mno-fdpic
+ @opindex mfdpic
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-CVE-2021-42574.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-CVE-2021-42574.patch
new file mode 100644
index 0000000..4d680cc
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0001-CVE-2021-42574.patch
@@ -0,0 +1,2282 @@
+From bd5e882cf6e0def3dd1bc106075d59a303fe0d1e Mon Sep 17 00:00:00 2001
+From: David Malcolm <dmalcolm@redhat.com>
+Date: Mon, 18 Oct 2021 18:55:31 -0400
+Subject: [PATCH] diagnostics: escape non-ASCII source bytes for certain
+ diagnostics
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+This patch adds support to GCC's diagnostic subsystem for escaping certain
+bytes and Unicode characters when quoting source code.
+
+Specifically, this patch adds a new flag rich_location::m_escape_on_output
+which is a hint from a diagnostic that non-ASCII bytes in the pertinent
+lines of the user's source code should be escaped when printed.
+
+The patch sets this for the following diagnostics:
+- when complaining about stray bytes in the program (when these
+are non-printable)
+- when complaining about "null character(s) ignored");
+- for -Wnormalized= (and generate source ranges for such warnings)
+
+The escaping is controlled by a new option:
+  -fdiagnostics-escape-format=[unicode|bytes]
+
+For example, consider a diagnostic involing a source line containing the
+string "before" followed by the Unicode character U+03C0 ("GREEK SMALL
+LETTER PI", with UTF-8 encoding 0xCF 0x80) followed by the byte 0xBF
+(a stray UTF-8 trailing byte), followed by the string "after", where the
+diagnostic highlights the U+03C0 character.
+
+By default, this line will be printed verbatim to the user when
+reporting a diagnostic at it, as:
+
+ beforeÏXafter
+       ^
+
+(using X for the stray byte to avoid putting invalid UTF-8 in this
+commit message)
+
+If the diagnostic sets the "escape" flag, it will be printed as:
+
+ before<U+03C0><BF>after
+       ^~~~~~~~
+
+with -fdiagnostics-escape-format=unicode (the default), or as:
+
+  before<CF><80><BF>after
+        ^~~~~~~~
+
+if the user supplies -fdiagnostics-escape-format=bytes.
+
+This only affects how the source is printed; it does not affect
+how column numbers that are printed (as per -fdiagnostics-column-unit=
+and -fdiagnostics-column-origin=).
+
+gcc/c-family/ChangeLog:
+	* c-lex.c (c_lex_with_flags): When complaining about non-printable
+	CPP_OTHER tokens, set the "escape on output" flag.
+
+gcc/ChangeLog:
+	* common.opt (fdiagnostics-escape-format=): New.
+	(diagnostics_escape_format): New enum.
+	(DIAGNOSTICS_ESCAPE_FORMAT_UNICODE): New enum value.
+	(DIAGNOSTICS_ESCAPE_FORMAT_BYTES): Likewise.
+	* diagnostic-format-json.cc (json_end_diagnostic): Add
+	"escape-source" attribute.
+	* diagnostic-show-locus.c
+	(exploc_with_display_col::exploc_with_display_col): Replace
+	"tabstop" param with a cpp_char_column_policy and add an "aspect"
+	param.  Use these to compute m_display_col accordingly.
+	(struct char_display_policy): New struct.
+	(layout::m_policy): New field.
+	(layout::m_escape_on_output): New field.
+	(def_policy): New function.
+	(make_range): Update for changes to exploc_with_display_col ctor.
+	(default_print_decoded_ch): New.
+	(width_per_escaped_byte): New.
+	(escape_as_bytes_width): New.
+	(escape_as_bytes_print): New.
+	(escape_as_unicode_width): New.
+	(escape_as_unicode_print): New.
+	(make_policy): New.
+	(layout::layout): Initialize new fields.  Update m_exploc ctor
+	call for above change to ctor.
+	(layout::maybe_add_location_range): Update for changes to
+	exploc_with_display_col ctor.
+	(layout::calculate_x_offset_display): Update for change to
+	cpp_display_width.
+	(layout::print_source_line): Pass policy
+	to cpp_display_width_computation. Capture cpp_decoded_char when
+	calling process_next_codepoint.  Move printing of source code to
+	m_policy.m_print_cb.
+	(line_label::line_label): Pass in policy rather than context.
+	(layout::print_any_labels): Update for change to line_label ctor.
+	(get_affected_range): Pass in policy rather than context, updating
+	calls to location_compute_display_column accordingly.
+	(get_printed_columns): Likewise, also for cpp_display_width.
+	(correction::correction): Pass in policy rather than tabstop.
+	(correction::compute_display_cols): Pass m_policy rather than
+	m_tabstop to cpp_display_width.
+	(correction::m_tabstop): Replace with...
+	(correction::m_policy): ...this.
+	(line_corrections::line_corrections): Pass in policy rather than
+	context.
+	(line_corrections::m_context): Replace with...
+	(line_corrections::m_policy): ...this.
+	(line_corrections::add_hint): Update to use m_policy rather than
+	m_context.
+	(line_corrections::add_hint): Likewise.
+	(layout::print_trailing_fixits): Likewise.
+	(selftest::test_display_widths): New.
+	(selftest::test_layout_x_offset_display_utf8): Update to use
+	policy rather than tabstop.
+	(selftest::test_one_liner_labels_utf8): Add test of escaping
+	source lines.
+	(selftest::test_diagnostic_show_locus_one_liner_utf8): Update to
+	use policy rather than tabstop.
+	(selftest::test_overlapped_fixit_printing): Likewise.
+	(selftest::test_overlapped_fixit_printing_utf8): Likewise.
+	(selftest::test_overlapped_fixit_printing_2): Likewise.
+	(selftest::test_tab_expansion): Likewise.
+	(selftest::test_escaping_bytes_1): New.
+	(selftest::test_escaping_bytes_2): New.
+	(selftest::diagnostic_show_locus_c_tests): Call the new tests.
+	* diagnostic.c (diagnostic_initialize): Initialize
+	context->escape_format.
+	(convert_column_unit): Update to use default character width policy.
+	(selftest::test_diagnostic_get_location_text): Likewise.
+	* diagnostic.h (enum diagnostics_escape_format): New enum.
+	(diagnostic_context::escape_format): New field.
+	* doc/invoke.texi (-fdiagnostics-escape-format=): New option.
+	(-fdiagnostics-format=): Add "escape-source" attribute to examples
+	of JSON output, and document it.
+	* input.c (location_compute_display_column): Pass in "policy"
+	rather than "tabstop", passing to
+	cpp_byte_column_to_display_column.
+	(selftest::test_cpp_utf8): Update to use cpp_char_column_policy.
+	* input.h (class cpp_char_column_policy): New forward decl.
+	(location_compute_display_column): Pass in "policy" rather than
+	"tabstop".
+	* opts.c (common_handle_option): Handle
+	OPT_fdiagnostics_escape_format_.
+	* selftest.c (temp_source_file::temp_source_file): New ctor
+	overload taking a size_t.
+	* selftest.h (temp_source_file::temp_source_file): Likewise.
+
+gcc/testsuite/ChangeLog:
+	* c-c++-common/diagnostic-format-json-1.c: Add regexp to consume
+	"escape-source" attribute.
+	* c-c++-common/diagnostic-format-json-2.c: Likewise.
+	* c-c++-common/diagnostic-format-json-3.c: Likewise.
+	* c-c++-common/diagnostic-format-json-4.c: Likewise, twice.
+	* c-c++-common/diagnostic-format-json-5.c: Likewise.
+	* gcc.dg/cpp/warn-normalized-4-bytes.c: New test.
+	* gcc.dg/cpp/warn-normalized-4-unicode.c: New test.
+	* gcc.dg/encoding-issues-bytes.c: New test.
+	* gcc.dg/encoding-issues-unicode.c: New test.
+	* gfortran.dg/diagnostic-format-json-1.F90: Add regexp to consume
+	"escape-source" attribute.
+	* gfortran.dg/diagnostic-format-json-2.F90: Likewise.
+	* gfortran.dg/diagnostic-format-json-3.F90: Likewise.
+
+libcpp/ChangeLog:
+	* charset.c (convert_escape): Use encoding_rich_location when
+	complaining about nonprintable unknown escape sequences.
+	(cpp_display_width_computation::::cpp_display_width_computation):
+	Pass in policy rather than tabstop.
+	(cpp_display_width_computation::process_next_codepoint): Add "out"
+	param and populate *out if non-NULL.
+	(cpp_display_width_computation::advance_display_cols): Pass NULL
+	to process_next_codepoint.
+	(cpp_byte_column_to_display_column): Pass in policy rather than
+	tabstop.  Pass NULL to process_next_codepoint.
+	(cpp_display_column_to_byte_column): Pass in policy rather than
+	tabstop.
+	* errors.c (cpp_diagnostic_get_current_location): New function,
+	splitting out the logic from...
+	(cpp_diagnostic): ...here.
+	(cpp_warning_at): New function.
+	(cpp_pedwarning_at): New function.
+	* include/cpplib.h (cpp_warning_at): New decl for rich_location.
+	(cpp_pedwarning_at): Likewise.
+	(struct cpp_decoded_char): New.
+	(struct cpp_char_column_policy): New.
+	(cpp_display_width_computation::cpp_display_width_computation):
+	Replace "tabstop" param with "policy".
+	(cpp_display_width_computation::process_next_codepoint): Add "out"
+	param.
+	(cpp_display_width_computation::m_tabstop): Replace with...
+	(cpp_display_width_computation::m_policy): ...this.
+	(cpp_byte_column_to_display_column): Replace "tabstop" param with
+	"policy".
+	(cpp_display_width): Likewise.
+	(cpp_display_column_to_byte_column): Likewise.
+	* include/line-map.h (rich_location::escape_on_output_p): New.
+	(rich_location::set_escape_on_output): New.
+	(rich_location::m_escape_on_output): New.
+	* internal.h (cpp_diagnostic_get_current_location): New decl.
+	(class encoding_rich_location): New.
+	* lex.c (skip_whitespace): Use encoding_rich_location when
+	complaining about null characters.
+	(warn_about_normalization): Generate a source range when
+	complaining about improperly normalized tokens, rather than just a
+	point, and use encoding_rich_location so that the source code
+	is escaped on printing.
+	* line-map.c (rich_location::rich_location): Initialize
+	m_escape_on_output.
+
+Signed-off-by: David Malcolm <dmalcolm@redhat.com>
+
+CVE: CVE-2021-42574
+Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=bd5e882cf6e0def3dd1bc106075d59a303fe0d1e]
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+
+---
+ gcc/c-family/c-lex.c                          |   6 +-
+ gcc/common.opt                                |  13 +
+ gcc/diagnostic-format-json.cc                 |   3 +
+ gcc/diagnostic-show-locus.c                   | 580 +++++++++++++++---
+ gcc/diagnostic.c                              |  10 +-
+ gcc/diagnostic.h                              |  18 +
+ gcc/doc/invoke.texi                           |  43 +-
+ gcc/input.c                                   |  62 +-
+ gcc/input.h                                   |   7 +-
+ gcc/opts.c                                    |   4 +
+ gcc/selftest.c                                |  15 +
+ gcc/selftest.h                                |   2 +
+ .../c-c++-common/diagnostic-format-json-1.c   |   1 +
+ .../c-c++-common/diagnostic-format-json-2.c   |   1 +
+ .../c-c++-common/diagnostic-format-json-3.c   |   1 +
+ .../c-c++-common/diagnostic-format-json-4.c   |   2 +
+ .../c-c++-common/diagnostic-format-json-5.c   |   1 +
+ .../gcc.dg/cpp/warn-normalized-4-bytes.c      |  21 +
+ .../gcc.dg/cpp/warn-normalized-4-unicode.c    |  19 +
+ gcc/testsuite/gcc.dg/encoding-issues-bytes.c  | Bin 0 -> 595 bytes
+ .../gcc.dg/encoding-issues-unicode.c          | Bin 0 -> 613 bytes
+ .../gfortran.dg/diagnostic-format-json-1.F90  |   1 +
+ .../gfortran.dg/diagnostic-format-json-2.F90  |   1 +
+ .../gfortran.dg/diagnostic-format-json-3.F90  |   1 +
+ libcpp/charset.c                              |  63 +-
+ libcpp/errors.c                               |  82 ++-
+ libcpp/include/cpplib.h                       |  76 ++-
+ libcpp/include/line-map.h                     |  13 +
+ libcpp/internal.h                             |  23 +
+ libcpp/lex.c                                  |  38 +-
+ libcpp/line-map.c                             |   3 +-
+ 31 files changed, 942 insertions(+), 168 deletions(-)
+ create mode 100644 gcc/testsuite/gcc.dg/cpp/warn-normalized-4-bytes.c
+ create mode 100644 gcc/testsuite/gcc.dg/cpp/warn-normalized-4-unicode.c
+ create mode 100644 gcc/testsuite/gcc.dg/encoding-issues-bytes.c
+ create mode 100644 gcc/testsuite/gcc.dg/encoding-issues-unicode.c
+
+diff --git a/gcc/c-family/c-lex.c b/gcc/c-family/c-lex.c
+--- a/gcc/c-family/c-lex.c	2021-07-27 23:55:06.980283060 -0700
++++ b/gcc/c-family/c-lex.c	2021-12-14 01:16:01.541943272 -0800
+@@ -603,7 +603,11 @@ c_lex_with_flags (tree *value, location_
+ 	else if (ISGRAPH (c))
+ 	  error_at (*loc, "stray %qc in program", (int) c);
+ 	else
+-	  error_at (*loc, "stray %<\\%o%> in program", (int) c);
++	  {
++	    rich_location rich_loc (line_table, *loc);
++	    rich_loc.set_escape_on_output (true);
++	    error_at (&rich_loc, "stray %<\\%o%> in program", (int) c);
++	  }
+       }
+       goto retry;
+ 
+diff --git a/gcc/common.opt b/gcc/common.opt
+--- a/gcc/common.opt	2021-12-13 22:08:44.939137107 -0800
++++ b/gcc/common.opt	2021-12-14 01:16:01.541943272 -0800
+@@ -1348,6 +1348,10 @@ fdiagnostics-format=
+ Common Joined RejectNegative Enum(diagnostics_output_format)
+ -fdiagnostics-format=[text|json]	Select output format.
+ 
++fdiagnostics-escape-format=
++Common Joined RejectNegative Enum(diagnostics_escape_format)
++-fdiagnostics-escape-format=[unicode|bytes]	Select how to escape non-printable-ASCII bytes in the source for diagnostics that suggest it.
++
+ ; Required for these enum values.
+ SourceInclude
+ diagnostic.h
+@@ -1362,6 +1366,15 @@ EnumValue
+ Enum(diagnostics_column_unit) String(byte) Value(DIAGNOSTICS_COLUMN_UNIT_BYTE)
+ 
+ Enum
++Name(diagnostics_escape_format) Type(int)
++
++EnumValue
++Enum(diagnostics_escape_format) String(unicode) Value(DIAGNOSTICS_ESCAPE_FORMAT_UNICODE)
++
++EnumValue
++Enum(diagnostics_escape_format) String(bytes) Value(DIAGNOSTICS_ESCAPE_FORMAT_BYTES)
++
++Enum
+ Name(diagnostics_output_format) Type(int)
+ 
+ EnumValue
+diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
+--- a/gcc/diagnostic.c	2021-07-27 23:55:07.232286576 -0700
++++ b/gcc/diagnostic.c	2021-12-14 01:16:01.545943202 -0800
+@@ -230,6 +230,7 @@ diagnostic_initialize (diagnostic_contex
+   context->column_unit = DIAGNOSTICS_COLUMN_UNIT_DISPLAY;
+   context->column_origin = 1;
+   context->tabstop = 8;
++  context->escape_format = DIAGNOSTICS_ESCAPE_FORMAT_UNICODE;
+   context->edit_context_ptr = NULL;
+   context->diagnostic_group_nesting_depth = 0;
+   context->diagnostic_group_emission_count = 0;
+@@ -382,7 +383,10 @@ convert_column_unit (enum diagnostics_co
+       gcc_unreachable ();
+ 
+     case DIAGNOSTICS_COLUMN_UNIT_DISPLAY:
+-      return location_compute_display_column (s, tabstop);
++      {
++	cpp_char_column_policy policy (tabstop, cpp_wcwidth);
++	return location_compute_display_column (s, policy);
++      }
+ 
+     case DIAGNOSTICS_COLUMN_UNIT_BYTE:
+       return s.column;
+@@ -2275,8 +2279,8 @@ test_diagnostic_get_location_text ()
+     const char *const content = "smile \xf0\x9f\x98\x82\n";
+     const int line_bytes = strlen (content) - 1;
+     const int def_tabstop = 8;
+-    const int display_width = cpp_display_width (content, line_bytes,
+-						 def_tabstop);
++    const cpp_char_column_policy policy (def_tabstop, cpp_wcwidth);
++    const int display_width = cpp_display_width (content, line_bytes, policy);
+     ASSERT_EQ (line_bytes - 2, display_width);
+     temp_source_file tmp (SELFTEST_LOCATION, ".c", content);
+     const char *const fname = tmp.get_filename ();
+diff --git a/gcc/diagnostic-format-json.cc b/gcc/diagnostic-format-json.cc
+--- a/gcc/diagnostic-format-json.cc	2021-07-27 23:55:07.232286576 -0700
++++ b/gcc/diagnostic-format-json.cc	2021-12-14 01:16:01.541943272 -0800
+@@ -264,6 +264,9 @@ json_end_diagnostic (diagnostic_context
+       json::value *path_value = context->make_json_for_path (context, path);
+       diag_obj->set ("path", path_value);
+     }
++
++  diag_obj->set ("escape-source",
++		 new json::literal (richloc->escape_on_output_p ()));
+ }
+ 
+ /* No-op implementation of "begin_group_cb" for JSON output.  */
+diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h
+--- a/gcc/diagnostic.h	2021-07-27 23:55:07.236286632 -0700
++++ b/gcc/diagnostic.h	2021-12-14 01:16:01.545943202 -0800
+@@ -38,6 +38,20 @@ enum diagnostics_column_unit
+   DIAGNOSTICS_COLUMN_UNIT_BYTE
+ };
+ 
++/* An enum for controlling how to print non-ASCII characters/bytes when
++   a diagnostic suggests escaping the source code on output.  */
++
++enum diagnostics_escape_format
++{
++  /* Escape non-ASCII Unicode characters in the form <U+XXXX> and
++     non-UTF-8 bytes in the form <XX>.  */
++  DIAGNOSTICS_ESCAPE_FORMAT_UNICODE,
++
++  /* Escape non-ASCII bytes in the form <XX> (thus showing the underlying
++     encoding of non-ASCII Unicode characters).  */
++  DIAGNOSTICS_ESCAPE_FORMAT_BYTES
++};
++
+ /* Enum for overriding the standard output format.  */
+ 
+ enum diagnostics_output_format
+@@ -320,6 +334,10 @@ struct diagnostic_context
+   /* The size of the tabstop for tab expansion.  */
+   int tabstop;
+ 
++  /* How should non-ASCII/non-printable bytes be escaped when
++     a diagnostic suggests escaping the source code on output.  */
++  enum diagnostics_escape_format escape_format;
++
+   /* If non-NULL, an edit_context to which fix-it hints should be
+      applied, for generating patches.  */
+   edit_context *edit_context_ptr;
+diff --git a/gcc/diagnostic-show-locus.c b/gcc/diagnostic-show-locus.c
+--- a/gcc/diagnostic-show-locus.c	2021-07-27 23:55:07.232286576 -0700
++++ b/gcc/diagnostic-show-locus.c	2021-12-14 01:16:01.545943202 -0800
+@@ -175,10 +175,26 @@ enum column_unit {
+ class exploc_with_display_col : public expanded_location
+ {
+  public:
+-  exploc_with_display_col (const expanded_location &exploc, int tabstop)
+-    : expanded_location (exploc),
+-      m_display_col (location_compute_display_column (exploc, tabstop))
+-  {}
++  exploc_with_display_col (const expanded_location &exploc,
++			   const cpp_char_column_policy &policy,
++			   enum location_aspect aspect)
++  : expanded_location (exploc),
++    m_display_col (location_compute_display_column (exploc, policy))
++  {
++    if (exploc.column > 0)
++      {
++	/* m_display_col is now the final column of the byte.
++	   If escaping has happened, we may want the first column instead.  */
++	if (aspect != LOCATION_ASPECT_FINISH)
++	  {
++	    expanded_location prev_exploc (exploc);
++	    prev_exploc.column--;
++	    int prev_display_col
++	      = (location_compute_display_column (prev_exploc, policy));
++	    m_display_col = prev_display_col + 1;
++	  }
++      }
++  }
+ 
+   int m_display_col;
+ };
+@@ -313,6 +329,31 @@ test_line_span ()
+ 
+ #endif /* #if CHECKING_P */
+ 
++/* A bundle of information containing how to print unicode
++   characters and bytes when quoting source code.
++
++   Provides a unified place to support escaping some subset
++   of characters to some format.
++
++   Extends char_column_policy; printing is split out to avoid
++   libcpp having to know about pretty_printer.  */
++
++struct char_display_policy : public cpp_char_column_policy
++{
++ public:
++  char_display_policy (int tabstop,
++		       int (*width_cb) (cppchar_t c),
++		       void (*print_cb) (pretty_printer *pp,
++					 const cpp_decoded_char &cp))
++  : cpp_char_column_policy (tabstop, width_cb),
++    m_print_cb (print_cb)
++  {
++  }
++
++  void (*m_print_cb) (pretty_printer *pp,
++		      const cpp_decoded_char &cp);
++};
++
+ /* A class to control the overall layout when printing a diagnostic.
+ 
+    The layout is determined within the constructor.
+@@ -345,6 +386,8 @@ class layout
+ 
+   void print_line (linenum_type row);
+ 
++  void on_bad_codepoint (const char *ptr, cppchar_t ch, size_t ch_sz);
++
+  private:
+   bool will_show_line_p (linenum_type row) const;
+   void print_leading_fixits (linenum_type row);
+@@ -386,6 +429,7 @@ class layout
+  private:
+   diagnostic_context *m_context;
+   pretty_printer *m_pp;
++  char_display_policy m_policy;
+   location_t m_primary_loc;
+   exploc_with_display_col m_exploc;
+   colorizer m_colorizer;
+@@ -398,6 +442,7 @@ class layout
+   auto_vec <line_span> m_line_spans;
+   int m_linenum_width;
+   int m_x_offset_display;
++  bool m_escape_on_output;
+ };
+ 
+ /* Implementation of "class colorizer".  */
+@@ -646,6 +691,11 @@ layout_range::intersects_line_p (linenum
+ /* Default for when we don't care what the tab expansion is set to.  */
+ static const int def_tabstop = 8;
+ 
++static cpp_char_column_policy def_policy ()
++{
++  return cpp_char_column_policy (8, cpp_wcwidth);
++}
++
+ /* Create some expanded locations for testing layout_range.  The filename
+    member of the explocs is set to the empty string.  This member will only be
+    inspected by the calls to location_compute_display_column() made from the
+@@ -662,10 +712,13 @@ make_range (int start_line, int start_co
+     = {"", start_line, start_col, NULL, false};
+   const expanded_location finish_exploc
+     = {"", end_line, end_col, NULL, false};
+-  return layout_range (exploc_with_display_col (start_exploc, def_tabstop),
+-		       exploc_with_display_col (finish_exploc, def_tabstop),
++  return layout_range (exploc_with_display_col (start_exploc, def_policy (),
++						LOCATION_ASPECT_START),
++		       exploc_with_display_col (finish_exploc, def_policy (),
++						LOCATION_ASPECT_FINISH),
+ 		       SHOW_RANGE_WITHOUT_CARET,
+-		       exploc_with_display_col (start_exploc, def_tabstop),
++		       exploc_with_display_col (start_exploc, def_policy (),
++						LOCATION_ASPECT_CARET),
+ 		       0, NULL);
+ }
+ 
+@@ -959,6 +1012,164 @@ fixit_cmp (const void *p_a, const void *
+   return hint_a->get_start_loc () - hint_b->get_start_loc ();
+ }
+ 
++/* Callbacks for use when not escaping the source.  */
++
++/* The default callback for char_column_policy::m_width_cb is cpp_wcwidth.  */
++
++/* Callback for char_display_policy::m_print_cb for printing source chars
++   when not escaping the source.  */
++
++static void
++default_print_decoded_ch (pretty_printer *pp,
++			  const cpp_decoded_char &decoded_ch)
++{
++  for (const char *ptr = decoded_ch.m_start_byte;
++       ptr != decoded_ch.m_next_byte; ptr++)
++    {
++      if (*ptr == '\0' || *ptr == '\r')
++	{
++	  pp_space (pp);
++	  continue;
++	}
++
++      pp_character (pp, *ptr);
++    }
++}
++
++/* Callbacks for use with DIAGNOSTICS_ESCAPE_FORMAT_BYTES.  */
++
++static const int width_per_escaped_byte = 4;
++
++/* Callback for char_column_policy::m_width_cb for determining the
++   display width when escaping with DIAGNOSTICS_ESCAPE_FORMAT_BYTES.  */
++
++static int
++escape_as_bytes_width (cppchar_t ch)
++{
++  if (ch < 0x80 && ISPRINT (ch))
++    return cpp_wcwidth (ch);
++  else
++    {
++      if (ch <=   0x7F) return 1 * width_per_escaped_byte;
++      if (ch <=  0x7FF) return 2 * width_per_escaped_byte;
++      if (ch <= 0xFFFF) return 3 * width_per_escaped_byte;
++      return 4 * width_per_escaped_byte;
++    }
++}
++
++/* Callback for char_display_policy::m_print_cb for printing source chars
++   when escaping with DIAGNOSTICS_ESCAPE_FORMAT_BYTES.  */
++
++static void
++escape_as_bytes_print (pretty_printer *pp,
++		       const cpp_decoded_char &decoded_ch)
++{
++  if (!decoded_ch.m_valid_ch)
++    {
++      for (const char *iter = decoded_ch.m_start_byte;
++	   iter != decoded_ch.m_next_byte; ++iter)
++	{
++	  char buf[16];
++	  sprintf (buf, "<%02x>", (unsigned char)*iter);
++	  pp_string (pp, buf);
++	}
++      return;
++    }
++
++  cppchar_t ch = decoded_ch.m_ch;
++  if (ch < 0x80 && ISPRINT (ch))
++    pp_character (pp, ch);
++  else
++    {
++      for (const char *iter = decoded_ch.m_start_byte;
++	   iter < decoded_ch.m_next_byte; ++iter)
++	{
++	  char buf[16];
++	  sprintf (buf, "<%02x>", (unsigned char)*iter);
++	  pp_string (pp, buf);
++	}
++    }
++}
++
++/* Callbacks for use with DIAGNOSTICS_ESCAPE_FORMAT_UNICODE.  */
++
++/* Callback for char_column_policy::m_width_cb for determining the
++   display width when escaping with DIAGNOSTICS_ESCAPE_FORMAT_UNICODE.  */
++
++static int
++escape_as_unicode_width (cppchar_t ch)
++{
++  if (ch < 0x80 && ISPRINT (ch))
++    return cpp_wcwidth (ch);
++  else
++    {
++      // Width of "<U+%04x>"
++      if (ch > 0xfffff)
++	return 10;
++      else if (ch > 0xffff)
++	return 9;
++      else
++	return 8;
++    }
++}
++
++/* Callback for char_display_policy::m_print_cb for printing source chars
++   when escaping with DIAGNOSTICS_ESCAPE_FORMAT_UNICODE.  */
++
++static void
++escape_as_unicode_print (pretty_printer *pp,
++			 const cpp_decoded_char &decoded_ch)
++{
++  if (!decoded_ch.m_valid_ch)
++    {
++      escape_as_bytes_print (pp, decoded_ch);
++      return;
++    }
++
++  cppchar_t ch = decoded_ch.m_ch;
++  if (ch < 0x80 && ISPRINT (ch))
++    pp_character (pp, ch);
++  else
++    {
++      char buf[16];
++      sprintf (buf, "<U+%04X>", ch);
++      pp_string (pp, buf);
++    }
++}
++
++/* Populate a char_display_policy based on DC and RICHLOC.  */
++
++static char_display_policy
++make_policy (const diagnostic_context &dc,
++	     const rich_location &richloc)
++{
++  /* The default is to not escape non-ASCII bytes.  */
++  char_display_policy result
++    (dc.tabstop, cpp_wcwidth, default_print_decoded_ch);
++
++  /* If the diagnostic suggests escaping non-ASCII bytes, then
++     use policy from user-supplied options.  */
++  if (richloc.escape_on_output_p ())
++    {
++      result.m_undecoded_byte_width = width_per_escaped_byte;
++      switch (dc.escape_format)
++	{
++	default:
++	  gcc_unreachable ();
++	case DIAGNOSTICS_ESCAPE_FORMAT_UNICODE:
++	  result.m_width_cb = escape_as_unicode_width;
++	  result.m_print_cb = escape_as_unicode_print;
++	  break;
++	case DIAGNOSTICS_ESCAPE_FORMAT_BYTES:
++	  result.m_width_cb = escape_as_bytes_width;
++	  result.m_print_cb = escape_as_bytes_print;
++	  break;
++	}
++    }
++
++  return result;
++}
++
+ /* Implementation of class layout.  */
+ 
+ /* Constructor for class layout.
+@@ -975,8 +1186,10 @@ layout::layout (diagnostic_context * con
+ 		diagnostic_t diagnostic_kind)
+ : m_context (context),
+   m_pp (context->printer),
++  m_policy (make_policy (*context, *richloc)),
+   m_primary_loc (richloc->get_range (0)->m_loc),
+-  m_exploc (richloc->get_expanded_location (0), context->tabstop),
++  m_exploc (richloc->get_expanded_location (0), m_policy,
++	    LOCATION_ASPECT_CARET),
+   m_colorizer (context, diagnostic_kind),
+   m_colorize_source_p (context->colorize_source_p),
+   m_show_labels_p (context->show_labels_p),
+@@ -986,7 +1199,8 @@ layout::layout (diagnostic_context * con
+   m_fixit_hints (richloc->get_num_fixit_hints ()),
+   m_line_spans (1 + richloc->get_num_locations ()),
+   m_linenum_width (0),
+-  m_x_offset_display (0)
++  m_x_offset_display (0),
++  m_escape_on_output (richloc->escape_on_output_p ())
+ {
+   for (unsigned int idx = 0; idx < richloc->get_num_locations (); idx++)
+     {
+@@ -1072,10 +1286,13 @@ layout::maybe_add_location_range (const
+ 
+   /* Everything is now known to be in the correct source file,
+      but it may require further sanitization.  */
+-  layout_range ri (exploc_with_display_col (start, m_context->tabstop),
+-		   exploc_with_display_col (finish, m_context->tabstop),
++  layout_range ri (exploc_with_display_col (start, m_policy,
++					    LOCATION_ASPECT_START),
++		   exploc_with_display_col (finish, m_policy,
++					    LOCATION_ASPECT_FINISH),
+ 		   loc_range->m_range_display_kind,
+-		   exploc_with_display_col (caret, m_context->tabstop),
++		   exploc_with_display_col (caret, m_policy,
++					    LOCATION_ASPECT_CARET),
+ 		   original_idx, loc_range->m_label);
+ 
+   /* If we have a range that finishes before it starts (perhaps
+@@ -1409,7 +1626,7 @@ layout::calculate_x_offset_display ()
+     = get_line_bytes_without_trailing_whitespace (line.get_buffer (),
+ 						  line.length ());
+   int eol_display_column
+-    = cpp_display_width (line.get_buffer (), line_bytes, m_context->tabstop);
++    = cpp_display_width (line.get_buffer (), line_bytes, m_policy);
+   if (caret_display_column > eol_display_column
+       || !caret_display_column)
+     {
+@@ -1488,7 +1705,7 @@ layout::print_source_line (linenum_type
+   /* This object helps to keep track of which display column we are at, which is
+      necessary for computing the line bounds in display units, for doing
+      tab expansion, and for implementing m_x_offset_display.  */
+-  cpp_display_width_computation dw (line, line_bytes, m_context->tabstop);
++  cpp_display_width_computation dw (line, line_bytes, m_policy);
+ 
+   /* Skip the first m_x_offset_display display columns.  In case the leading
+      portion that will be skipped ends with a character with wcwidth > 1, then
+@@ -1536,7 +1753,8 @@ layout::print_source_line (linenum_type
+ 	 tabs and replacing some control bytes with spaces as necessary.  */
+       const char *c = dw.next_byte ();
+       const int start_disp_col = dw.display_cols_processed () + 1;
+-      const int this_display_width = dw.process_next_codepoint ();
++      cpp_decoded_char cp;
++      const int this_display_width = dw.process_next_codepoint (&cp);
+       if (*c == '\t')
+ 	{
+ 	  /* The returned display width is the number of spaces into which the
+@@ -1545,15 +1763,6 @@ layout::print_source_line (linenum_type
+ 	    pp_space (m_pp);
+ 	  continue;
+ 	}
+-      if (*c == '\0' || *c == '\r')
+-	{
+-	  /* cpp_wcwidth() promises to return 1 for all control bytes, and we
+-	     want to output these as a single space too, so this case is
+-	     actually the same as the '\t' case.  */
+-	  gcc_assert (this_display_width == 1);
+-	  pp_space (m_pp);
+-	  continue;
+-	}
+ 
+       /* We have a (possibly multibyte) character to output; update the line
+ 	 bounds if it is not whitespace.  */
+@@ -1565,7 +1774,8 @@ layout::print_source_line (linenum_type
+ 	}
+ 
+       /* Output the character.  */
+-      while (c != dw.next_byte ()) pp_character (m_pp, *c++);
++      m_policy.m_print_cb (m_pp, cp);
++      c = dw.next_byte ();
+     }
+   print_newline ();
+   return lbounds;
+@@ -1664,14 +1874,14 @@ layout::print_annotation_line (linenum_t
+ class line_label
+ {
+ public:
+-  line_label (diagnostic_context *context, int state_idx, int column,
++  line_label (const cpp_char_column_policy &policy,
++	      int state_idx, int column,
+ 	      label_text text)
+   : m_state_idx (state_idx), m_column (column),
+     m_text (text), m_label_line (0), m_has_vbar (true)
+   {
+     const int bytes = strlen (text.m_buffer);
+-    m_display_width
+-      = cpp_display_width (text.m_buffer, bytes, context->tabstop);
++    m_display_width = cpp_display_width (text.m_buffer, bytes, policy);
+   }
+ 
+   /* Sorting is primarily by column, then by state index.  */
+@@ -1731,7 +1941,7 @@ layout::print_any_labels (linenum_type r
+ 	if (text.m_buffer == NULL)
+ 	  continue;
+ 
+-	labels.safe_push (line_label (m_context, i, disp_col, text));
++	labels.safe_push (line_label (m_policy, i, disp_col, text));
+       }
+   }
+ 
+@@ -2011,7 +2221,7 @@ public:
+ 
+ /* Get the range of bytes or display columns that HINT would affect.  */
+ static column_range
+-get_affected_range (diagnostic_context *context,
++get_affected_range (const cpp_char_column_policy &policy,
+ 		    const fixit_hint *hint, enum column_unit col_unit)
+ {
+   expanded_location exploc_start = expand_location (hint->get_start_loc ());
+@@ -2022,13 +2232,11 @@ get_affected_range (diagnostic_context *
+   int finish_column;
+   if (col_unit == CU_DISPLAY_COLS)
+     {
+-      start_column
+-	= location_compute_display_column (exploc_start, context->tabstop);
++      start_column = location_compute_display_column (exploc_start, policy);
+       if (hint->insertion_p ())
+ 	finish_column = start_column - 1;
+       else
+-	finish_column
+-	  = location_compute_display_column (exploc_finish, context->tabstop);
++	finish_column = location_compute_display_column (exploc_finish, policy);
+     }
+   else
+     {
+@@ -2041,12 +2249,13 @@ get_affected_range (diagnostic_context *
+ /* Get the range of display columns that would be printed for HINT.  */
+ 
+ static column_range
+-get_printed_columns (diagnostic_context *context, const fixit_hint *hint)
++get_printed_columns (const cpp_char_column_policy &policy,
++		     const fixit_hint *hint)
+ {
+   expanded_location exploc = expand_location (hint->get_start_loc ());
+-  int start_column = location_compute_display_column (exploc, context->tabstop);
++  int start_column = location_compute_display_column (exploc, policy);
+   int hint_width = cpp_display_width (hint->get_string (), hint->get_length (),
+-				      context->tabstop);
++				      policy);
+   int final_hint_column = start_column + hint_width - 1;
+   if (hint->insertion_p ())
+     {
+@@ -2056,8 +2265,7 @@ get_printed_columns (diagnostic_context
+     {
+       exploc = expand_location (hint->get_next_loc ());
+       --exploc.column;
+-      int finish_column
+-	= location_compute_display_column (exploc, context->tabstop);
++      int finish_column = location_compute_display_column (exploc, policy);
+       return column_range (start_column,
+ 			   MAX (finish_column, final_hint_column));
+     }
+@@ -2075,13 +2283,13 @@ public:
+ 	      column_range affected_columns,
+ 	      column_range printed_columns,
+ 	      const char *new_text, size_t new_text_len,
+-	      int tabstop)
++	      const cpp_char_column_policy &policy)
+   : m_affected_bytes (affected_bytes),
+     m_affected_columns (affected_columns),
+     m_printed_columns (printed_columns),
+     m_text (xstrdup (new_text)),
+     m_byte_length (new_text_len),
+-    m_tabstop (tabstop),
++    m_policy (policy),
+     m_alloc_sz (new_text_len + 1)
+   {
+     compute_display_cols ();
+@@ -2099,7 +2307,7 @@ public:
+ 
+   void compute_display_cols ()
+   {
+-    m_display_cols = cpp_display_width (m_text, m_byte_length, m_tabstop);
++    m_display_cols = cpp_display_width (m_text, m_byte_length, m_policy);
+   }
+ 
+   void overwrite (int dst_offset, const char_span &src_span)
+@@ -2127,7 +2335,7 @@ public:
+   char *m_text;
+   size_t m_byte_length; /* Not including null-terminator.  */
+   int m_display_cols;
+-  int m_tabstop;
++  const cpp_char_column_policy &m_policy;
+   size_t m_alloc_sz;
+ };
+ 
+@@ -2163,15 +2371,16 @@ correction::ensure_terminated ()
+ class line_corrections
+ {
+ public:
+-  line_corrections (diagnostic_context *context, const char *filename,
++  line_corrections (const char_display_policy &policy,
++		    const char *filename,
+ 		    linenum_type row)
+-    : m_context (context), m_filename (filename), m_row (row)
++  : m_policy (policy), m_filename (filename), m_row (row)
+   {}
+   ~line_corrections ();
+ 
+   void add_hint (const fixit_hint *hint);
+ 
+-  diagnostic_context *m_context;
++  const char_display_policy &m_policy;
+   const char *m_filename;
+   linenum_type m_row;
+   auto_vec <correction *> m_corrections;
+@@ -2217,10 +2426,10 @@ source_line::source_line (const char *fi
+ void
+ line_corrections::add_hint (const fixit_hint *hint)
+ {
+-  column_range affected_bytes = get_affected_range (m_context, hint, CU_BYTES);
+-  column_range affected_columns = get_affected_range (m_context, hint,
++  column_range affected_bytes = get_affected_range (m_policy, hint, CU_BYTES);
++  column_range affected_columns = get_affected_range (m_policy, hint,
+ 						      CU_DISPLAY_COLS);
+-  column_range printed_columns = get_printed_columns (m_context, hint);
++  column_range printed_columns = get_printed_columns (m_policy, hint);
+ 
+   /* Potentially consolidate.  */
+   if (!m_corrections.is_empty ())
+@@ -2289,7 +2498,7 @@ line_corrections::add_hint (const fixit_
+ 					   printed_columns,
+ 					   hint->get_string (),
+ 					   hint->get_length (),
+-					   m_context->tabstop));
++					   m_policy));
+ }
+ 
+ /* If there are any fixit hints on source line ROW, print them.
+@@ -2303,7 +2512,7 @@ layout::print_trailing_fixits (linenum_t
+ {
+   /* Build a list of correction instances for the line,
+      potentially consolidating hints (for the sake of readability).  */
+-  line_corrections corrections (m_context, m_exploc.file, row);
++  line_corrections corrections (m_policy, m_exploc.file, row);
+   for (unsigned int i = 0; i < m_fixit_hints.length (); i++)
+     {
+       const fixit_hint *hint = m_fixit_hints[i];
+@@ -2646,6 +2855,59 @@ namespace selftest {
+ 
+ /* Selftests for diagnostic_show_locus.  */
+ 
++/* Verify that cpp_display_width correctly handles escaping.  */
++
++static void
++test_display_widths ()
++{
++  gcc_rich_location richloc (UNKNOWN_LOCATION);
++
++  /* U+03C0 "GREEK SMALL LETTER PI".  */
++  const char *pi = "\xCF\x80";
++  /* U+1F642 "SLIGHTLY SMILING FACE".  */
++  const char *emoji = "\xF0\x9F\x99\x82";
++  /* Stray trailing byte of a UTF-8 character.  */
++  const char *stray = "\xBF";
++  /* U+10FFFF.  */
++  const char *max_codepoint = "\xF4\x8F\xBF\xBF";
++
++  /* No escaping.  */
++  {
++    test_diagnostic_context dc;
++    char_display_policy policy (make_policy (dc, richloc));
++    ASSERT_EQ (cpp_display_width (pi, strlen (pi), policy), 1);
++    ASSERT_EQ (cpp_display_width (emoji, strlen (emoji), policy), 2);
++    ASSERT_EQ (cpp_display_width (stray, strlen (stray), policy), 1);
++    /* Don't check width of U+10FFFF; it's in a private use plane.  */
++  }
++
++  richloc.set_escape_on_output (true);
++
++  {
++    test_diagnostic_context dc;
++    dc.escape_format = DIAGNOSTICS_ESCAPE_FORMAT_UNICODE;
++    char_display_policy policy (make_policy (dc, richloc));
++    ASSERT_EQ (cpp_display_width (pi, strlen (pi), policy), 8);
++    ASSERT_EQ (cpp_display_width (emoji, strlen (emoji), policy), 9);
++    ASSERT_EQ (cpp_display_width (stray, strlen (stray), policy), 4);
++    ASSERT_EQ (cpp_display_width (max_codepoint, strlen (max_codepoint),
++				  policy),
++	       strlen ("<U+10FFFF>"));
++  }
++
++  {
++    test_diagnostic_context dc;
++    dc.escape_format = DIAGNOSTICS_ESCAPE_FORMAT_BYTES;
++    char_display_policy policy (make_policy (dc, richloc));
++    ASSERT_EQ (cpp_display_width (pi, strlen (pi), policy), 8);
++    ASSERT_EQ (cpp_display_width (emoji, strlen (emoji), policy), 16);
++    ASSERT_EQ (cpp_display_width (stray, strlen (stray), policy), 4);
++    ASSERT_EQ (cpp_display_width (max_codepoint, strlen (max_codepoint),
++				  policy),
++	       16);
++  }
++}
++
+ /* For precise tests of the layout, make clear where the source line will
+    start.  test_left_margin sets the total byte count from the left side of the
+    screen to the start of source lines, after the line number and the separator,
+@@ -2715,10 +2977,10 @@ test_layout_x_offset_display_utf8 (const
+   char_span lspan = location_get_source_line (tmp.get_filename (), 1);
+   ASSERT_EQ (line_display_cols,
+ 	     cpp_display_width (lspan.get_buffer (), lspan.length (),
+-				def_tabstop));
++				def_policy ()));
+   ASSERT_EQ (line_display_cols,
+ 	     location_compute_display_column (expand_location (line_end),
+-					      def_tabstop));
++					      def_policy ()));
+   ASSERT_EQ (0, memcmp (lspan.get_buffer () + (emoji_col - 1),
+ 			"\xf0\x9f\x98\x82\xf0\x9f\x98\x82", 8));
+ 
+@@ -2866,12 +3128,13 @@ test_layout_x_offset_display_tab (const
+   ASSERT_EQ ('\t', *(lspan.get_buffer () + (tab_col - 1)));
+   for (int tabstop = 1; tabstop != num_tabstops; ++tabstop)
+     {
++      cpp_char_column_policy policy (tabstop, cpp_wcwidth);
+       ASSERT_EQ (line_bytes + extra_width[tabstop],
+ 		 cpp_display_width (lspan.get_buffer (), lspan.length (),
+-				    tabstop));
++				    policy));
+       ASSERT_EQ (line_bytes + extra_width[tabstop],
+ 		 location_compute_display_column (expand_location (line_end),
+-						  tabstop));
++						  policy));
+     }
+ 
+   /* Check that the tab is expanded to the expected number of spaces.  */
+@@ -4003,6 +4266,43 @@ test_one_liner_labels_utf8 ()
+ 			   " bb\xf0\x9f\x98\x82\xf0\x9f\x98\x82\n",
+ 		  pp_formatted_text (dc.printer));
+   }
++
++  /* Example of escaping the source lines.  */
++  {
++    text_range_label label0 ("label 0\xf0\x9f\x98\x82");
++    text_range_label label1 ("label 1\xcf\x80");
++    text_range_label label2 ("label 2\xcf\x80");
++    gcc_rich_location richloc (foo, &label0);
++    richloc.add_range (bar, SHOW_RANGE_WITHOUT_CARET, &label1);
++    richloc.add_range (field, SHOW_RANGE_WITHOUT_CARET, &label2);
++    richloc.set_escape_on_output (true);
++
++    {
++      test_diagnostic_context dc;
++      dc.escape_format = DIAGNOSTICS_ESCAPE_FORMAT_UNICODE;
++      diagnostic_show_locus (&dc, &richloc, DK_ERROR);
++      ASSERT_STREQ (" <U+1F602>_foo = <U+03C0>_bar.<U+1F602>_field<U+03C0>;\n"
++		    " ^~~~~~~~~~~~~   ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~\n"
++		    " |               |            |\n"
++		    " |               |            label 2\xcf\x80\n"
++		    " |               label 1\xcf\x80\n"
++		    " label 0\xf0\x9f\x98\x82\n",
++		    pp_formatted_text (dc.printer));
++    }
++    {
++      test_diagnostic_context dc;
++      dc.escape_format = DIAGNOSTICS_ESCAPE_FORMAT_BYTES;
++      diagnostic_show_locus (&dc, &richloc, DK_ERROR);
++      ASSERT_STREQ
++	(" <f0><9f><98><82>_foo = <cf><80>_bar.<f0><9f><98><82>_field<cf><80>;\n"
++	 " ^~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
++	 " |                      |            |\n"
++	 " |                      |            label 2\xcf\x80\n"
++	 " |                      label 1\xcf\x80\n"
++	 " label 0\xf0\x9f\x98\x82\n",
++	 pp_formatted_text (dc.printer));
++    }
++  }
+ }
+ 
+ /* Make sure that colorization codes don't interrupt a multibyte
+@@ -4057,9 +4357,9 @@ test_diagnostic_show_locus_one_liner_utf
+ 
+   char_span lspan = location_get_source_line (tmp.get_filename (), 1);
+   ASSERT_EQ (25, cpp_display_width (lspan.get_buffer (), lspan.length (),
+-				    def_tabstop));
++				    def_policy ()));
+   ASSERT_EQ (25, location_compute_display_column (expand_location (line_end),
+-						  def_tabstop));
++						  def_policy ()));
+ 
+   test_one_liner_simple_caret_utf8 ();
+   test_one_liner_caret_and_range_utf8 ();
+@@ -4445,30 +4745,31 @@ test_overlapped_fixit_printing (const li
+ 		  pp_formatted_text (dc.printer));
+ 
+     /* Unit-test the line_corrections machinery.  */
++    char_display_policy policy (make_policy (dc, richloc));
+     ASSERT_EQ (3, richloc.get_num_fixit_hints ());
+     const fixit_hint *hint_0 = richloc.get_fixit_hint (0);
+     ASSERT_EQ (column_range (12, 12),
+-	       get_affected_range (&dc, hint_0, CU_BYTES));
++	       get_affected_range (policy, hint_0, CU_BYTES));
+     ASSERT_EQ (column_range (12, 12),
+-	       get_affected_range (&dc, hint_0, CU_DISPLAY_COLS));
+-    ASSERT_EQ (column_range (12, 22), get_printed_columns (&dc, hint_0));
++	       get_affected_range (policy, hint_0, CU_DISPLAY_COLS));
++    ASSERT_EQ (column_range (12, 22), get_printed_columns (policy, hint_0));
+     const fixit_hint *hint_1 = richloc.get_fixit_hint (1);
+     ASSERT_EQ (column_range (18, 18),
+-	       get_affected_range (&dc, hint_1, CU_BYTES));
++	       get_affected_range (policy, hint_1, CU_BYTES));
+     ASSERT_EQ (column_range (18, 18),
+-	       get_affected_range (&dc, hint_1, CU_DISPLAY_COLS));
+-    ASSERT_EQ (column_range (18, 20), get_printed_columns (&dc, hint_1));
++	       get_affected_range (policy, hint_1, CU_DISPLAY_COLS));
++    ASSERT_EQ (column_range (18, 20), get_printed_columns (policy, hint_1));
+     const fixit_hint *hint_2 = richloc.get_fixit_hint (2);
+     ASSERT_EQ (column_range (29, 28),
+-	       get_affected_range (&dc, hint_2, CU_BYTES));
++	       get_affected_range (policy, hint_2, CU_BYTES));
+     ASSERT_EQ (column_range (29, 28),
+-	       get_affected_range (&dc, hint_2, CU_DISPLAY_COLS));
+-    ASSERT_EQ (column_range (29, 29), get_printed_columns (&dc, hint_2));
++	       get_affected_range (policy, hint_2, CU_DISPLAY_COLS));
++    ASSERT_EQ (column_range (29, 29), get_printed_columns (policy, hint_2));
+ 
+     /* Add each hint in turn to a line_corrections instance,
+        and verify that they are consolidated into one correction instance
+        as expected.  */
+-    line_corrections lc (&dc, tmp.get_filename (), 1);
++    line_corrections lc (policy, tmp.get_filename (), 1);
+ 
+     /* The first replace hint by itself.  */
+     lc.add_hint (hint_0);
+@@ -4660,30 +4961,31 @@ test_overlapped_fixit_printing_utf8 (con
+ 		  pp_formatted_text (dc.printer));
+ 
+     /* Unit-test the line_corrections machinery.  */
++    char_display_policy policy (make_policy (dc, richloc));
+     ASSERT_EQ (3, richloc.get_num_fixit_hints ());
+     const fixit_hint *hint_0 = richloc.get_fixit_hint (0);
+     ASSERT_EQ (column_range (14, 14),
+-	       get_affected_range (&dc, hint_0, CU_BYTES));
++	       get_affected_range (policy, hint_0, CU_BYTES));
+     ASSERT_EQ (column_range (12, 12),
+-	       get_affected_range (&dc, hint_0, CU_DISPLAY_COLS));
+-    ASSERT_EQ (column_range (12, 22), get_printed_columns (&dc, hint_0));
++	       get_affected_range (policy, hint_0, CU_DISPLAY_COLS));
++    ASSERT_EQ (column_range (12, 22), get_printed_columns (policy, hint_0));
+     const fixit_hint *hint_1 = richloc.get_fixit_hint (1);
+     ASSERT_EQ (column_range (22, 22),
+-	       get_affected_range (&dc, hint_1, CU_BYTES));
++	       get_affected_range (policy, hint_1, CU_BYTES));
+     ASSERT_EQ (column_range (18, 18),
+-	       get_affected_range (&dc, hint_1, CU_DISPLAY_COLS));
+-    ASSERT_EQ (column_range (18, 20), get_printed_columns (&dc, hint_1));
++	       get_affected_range (policy, hint_1, CU_DISPLAY_COLS));
++    ASSERT_EQ (column_range (18, 20), get_printed_columns (policy, hint_1));
+     const fixit_hint *hint_2 = richloc.get_fixit_hint (2);
+     ASSERT_EQ (column_range (35, 34),
+-	       get_affected_range (&dc, hint_2, CU_BYTES));
++	       get_affected_range (policy, hint_2, CU_BYTES));
+     ASSERT_EQ (column_range (30, 29),
+-	       get_affected_range (&dc, hint_2, CU_DISPLAY_COLS));
+-    ASSERT_EQ (column_range (30, 30), get_printed_columns (&dc, hint_2));
++	       get_affected_range (policy, hint_2, CU_DISPLAY_COLS));
++    ASSERT_EQ (column_range (30, 30), get_printed_columns (policy, hint_2));
+ 
+     /* Add each hint in turn to a line_corrections instance,
+        and verify that they are consolidated into one correction instance
+        as expected.  */
+-    line_corrections lc (&dc, tmp.get_filename (), 1);
++    line_corrections lc (policy, tmp.get_filename (), 1);
+ 
+     /* The first replace hint by itself.  */
+     lc.add_hint (hint_0);
+@@ -4877,15 +5179,16 @@ test_overlapped_fixit_printing_2 (const
+     richloc.add_fixit_insert_before (col_21, "}");
+ 
+     /* These fixits should be accepted; they can't be consolidated.  */
++    char_display_policy policy (make_policy (dc, richloc));
+     ASSERT_EQ (2, richloc.get_num_fixit_hints ());
+     const fixit_hint *hint_0 = richloc.get_fixit_hint (0);
+     ASSERT_EQ (column_range (23, 22),
+-	       get_affected_range (&dc, hint_0, CU_BYTES));
+-    ASSERT_EQ (column_range (23, 23), get_printed_columns (&dc, hint_0));
++	       get_affected_range (policy, hint_0, CU_BYTES));
++    ASSERT_EQ (column_range (23, 23), get_printed_columns (policy, hint_0));
+     const fixit_hint *hint_1 = richloc.get_fixit_hint (1);
+     ASSERT_EQ (column_range (21, 20),
+-	       get_affected_range (&dc, hint_1, CU_BYTES));
+-    ASSERT_EQ (column_range (21, 21), get_printed_columns (&dc, hint_1));
++	       get_affected_range (policy, hint_1, CU_BYTES));
++    ASSERT_EQ (column_range (21, 21), get_printed_columns (policy, hint_1));
+ 
+     /* Verify that they're printed correctly.  */
+     diagnostic_show_locus (&dc, &richloc, DK_ERROR);
+@@ -5152,10 +5455,11 @@ test_tab_expansion (const line_table_cas
+      ....................123 45678901234 56789012345  columns  */
+ 
+   const int tabstop = 8;
++  cpp_char_column_policy policy (tabstop, cpp_wcwidth);
+   const int first_non_ws_byte_col = 7;
+   const int right_quote_byte_col = 15;
+   const int last_byte_col = 25;
+-  ASSERT_EQ (35, cpp_display_width (content, last_byte_col, tabstop));
++  ASSERT_EQ (35, cpp_display_width (content, last_byte_col, policy));
+ 
+   temp_source_file tmp (SELFTEST_LOCATION, ".c", content);
+   line_table_test ltt (case_);
+@@ -5198,6 +5502,114 @@ test_tab_expansion (const line_table_cas
+   }
+ }
+ 
++/* Verify that the escaping machinery can cope with a variety of different
++   invalid bytes.  */
++
++static void
++test_escaping_bytes_1 (const line_table_case &case_)
++{
++  const char content[] = "before\0\1\2\3\r\x80\xff""after\n";
++  const size_t sz = sizeof (content);
++  temp_source_file tmp (SELFTEST_LOCATION, ".c", content, sz);
++  line_table_test ltt (case_);
++  const line_map_ordinary *ord_map = linemap_check_ordinary
++    (linemap_add (line_table, LC_ENTER, false, tmp.get_filename (), 0));
++  linemap_line_start (line_table, 1, 100);
++
++  location_t finish
++    = linemap_position_for_line_and_column (line_table, ord_map, 1,
++					    strlen (content));
++
++  if (finish > LINE_MAP_MAX_LOCATION_WITH_COLS)
++    return;
++
++  /* Locations of the NUL and \r bytes.  */
++  location_t nul_loc
++    = linemap_position_for_line_and_column (line_table, ord_map, 1, 7);
++  location_t r_loc
++    = linemap_position_for_line_and_column (line_table, ord_map, 1, 11);
++  gcc_rich_location richloc (nul_loc);
++  richloc.add_range (r_loc);
++
++  {
++    test_diagnostic_context dc;
++    diagnostic_show_locus (&dc, &richloc, DK_ERROR);
++    ASSERT_STREQ (" before \1\2\3 \x80\xff""after\n"
++		  "       ^   ~\n",
++		  pp_formatted_text (dc.printer));
++  }
++  richloc.set_escape_on_output (true);
++  {
++    test_diagnostic_context dc;
++    dc.escape_format = DIAGNOSTICS_ESCAPE_FORMAT_UNICODE;
++    diagnostic_show_locus (&dc, &richloc, DK_ERROR);
++    ASSERT_STREQ
++      (" before<U+0000><U+0001><U+0002><U+0003><U+000D><80><ff>after\n"
++       "       ^~~~~~~~                        ~~~~~~~~\n",
++       pp_formatted_text (dc.printer));
++  }
++  {
++    test_diagnostic_context dc;
++    dc.escape_format = DIAGNOSTICS_ESCAPE_FORMAT_BYTES;
++    diagnostic_show_locus (&dc, &richloc, DK_ERROR);
++    ASSERT_STREQ (" before<00><01><02><03><0d><80><ff>after\n"
++		  "       ^~~~            ~~~~\n",
++		  pp_formatted_text (dc.printer));
++  }
++}
++
++/* As above, but verify that we handle the initial byte of a line
++   correctly.  */
++
++static void
++test_escaping_bytes_2 (const line_table_case &case_)
++{
++  const char content[]  = "\0after\n";
++  const size_t sz = sizeof (content);
++  temp_source_file tmp (SELFTEST_LOCATION, ".c", content, sz);
++  line_table_test ltt (case_);
++  const line_map_ordinary *ord_map = linemap_check_ordinary
++    (linemap_add (line_table, LC_ENTER, false, tmp.get_filename (), 0));
++  linemap_line_start (line_table, 1, 100);
++
++  location_t finish
++    = linemap_position_for_line_and_column (line_table, ord_map, 1,
++					    strlen (content));
++
++  if (finish > LINE_MAP_MAX_LOCATION_WITH_COLS)
++    return;
++
++  /* Location of the NUL byte.  */
++  location_t nul_loc
++    = linemap_position_for_line_and_column (line_table, ord_map, 1, 1);
++  gcc_rich_location richloc (nul_loc);
++
++  {
++    test_diagnostic_context dc;
++    diagnostic_show_locus (&dc, &richloc, DK_ERROR);
++    ASSERT_STREQ ("  after\n"
++		  " ^\n",
++		  pp_formatted_text (dc.printer));
++  }
++  richloc.set_escape_on_output (true);
++  {
++    test_diagnostic_context dc;
++    dc.escape_format = DIAGNOSTICS_ESCAPE_FORMAT_UNICODE;
++    diagnostic_show_locus (&dc, &richloc, DK_ERROR);
++    ASSERT_STREQ (" <U+0000>after\n"
++		  " ^~~~~~~~\n",
++		  pp_formatted_text (dc.printer));
++  }
++  {
++    test_diagnostic_context dc;
++    dc.escape_format = DIAGNOSTICS_ESCAPE_FORMAT_BYTES;
++    diagnostic_show_locus (&dc, &richloc, DK_ERROR);
++    ASSERT_STREQ (" <00>after\n"
++		  " ^~~~\n",
++		  pp_formatted_text (dc.printer));
++  }
++}
++
+ /* Verify that line numbers are correctly printed for the case of
+    a multiline range in which the width of the line numbers changes
+    (e.g. from "9" to "10").  */
+@@ -5254,6 +5666,8 @@ diagnostic_show_locus_c_tests ()
+   test_layout_range_for_single_line ();
+   test_layout_range_for_multiple_lines ();
+ 
++  test_display_widths ();
++
+   for_each_line_table_case (test_layout_x_offset_display_utf8);
+   for_each_line_table_case (test_layout_x_offset_display_tab);
+ 
+@@ -5274,6 +5688,8 @@ diagnostic_show_locus_c_tests ()
+   for_each_line_table_case (test_fixit_replace_containing_newline);
+   for_each_line_table_case (test_fixit_deletion_affecting_newline);
+   for_each_line_table_case (test_tab_expansion);
++  for_each_line_table_case (test_escaping_bytes_1);
++  for_each_line_table_case (test_escaping_bytes_2);
+ 
+   test_line_numbers_multiline_range ();
+ }
+diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
+--- a/gcc/doc/invoke.texi	2021-12-13 23:23:05.764437151 -0800
++++ b/gcc/doc/invoke.texi	2021-12-14 01:16:01.553943061 -0800
+@@ -312,7 +312,8 @@ Objective-C and Objective-C++ Dialects}.
+ -fdiagnostics-show-path-depths @gol
+ -fno-show-column @gol
+ -fdiagnostics-column-unit=@r{[}display@r{|}byte@r{]} @gol
+--fdiagnostics-column-origin=@var{origin}}
++-fdiagnostics-column-origin=@var{origin} @gol
++-fdiagnostics-escape-format=@r{[}unicode@r{|}bytes@r{]}}
+ 
+ @item Warning Options
+ @xref{Warning Options,,Options to Request or Suppress Warnings}.
+@@ -5083,6 +5084,38 @@ first column.  The default value of 1 co
+ behavior and to the GNU style guide.  Some utilities may perform better with an
+ origin of 0; any non-negative value may be specified.
+ 
++@item -fdiagnostics-escape-format=@var{FORMAT}
++@opindex fdiagnostics-escape-format
++When GCC prints pertinent source lines for a diagnostic it normally attempts
++to print the source bytes directly.  However, some diagnostics relate to encoding
++issues in the source file, such as malformed UTF-8, or issues with Unicode
++normalization.  These diagnostics are flagged so that GCC will escape bytes
++that are not printable ASCII when printing their pertinent source lines.
++
++This option controls how such bytes should be escaped.
++
++The default @var{FORMAT}, @samp{unicode} displays Unicode characters that
++are not printable ASCII in the form @samp{<U+XXXX>}, and bytes that do not
++correspond to a Unicode character validly-encoded in UTF-8-encoded will be
++displayed as hexadecimal in the form @samp{<XX>}.
++
++For example, a source line containing the string @samp{before} followed by the
++Unicode character U+03C0 (``GREEK SMALL LETTER PI'', with UTF-8 encoding
++0xCF 0x80) followed by the byte 0xBF (a stray UTF-8 trailing byte), followed by
++the string @samp{after} will be printed for such a diagnostic as:
++
++@smallexample
++ before<U+03C0><BF>after
++@end smallexample
++
++Setting @var{FORMAT} to @samp{bytes} will display all non-printable-ASCII bytes
++in the form @samp{<XX>}, thus showing the underlying encoding of non-ASCII
++Unicode characters.  For the example above, the following will be printed:
++
++@smallexample
++ before<CF><80><BF>after
++@end smallexample
++
+ @item -fdiagnostics-format=@var{FORMAT}
+ @opindex fdiagnostics-format
+ Select a different format for printing diagnostics.
+@@ -5150,9 +5183,11 @@ might be printed in JSON form (after for
+                         @}
+                     @}
+                 ],
++                "escape-source": false,
+                 "message": "...this statement, but the latter is @dots{}"
+             @}
+         ]
++	"escape-source": false,
+ 	"column-origin": 1,
+     @},
+     @dots{}
+@@ -5239,6 +5274,7 @@ of the expression, which have labels.  I
+                 "label": "T @{aka struct t@}"
+             @}
+         ],
++        "escape-source": false,
+         "message": "invalid operands to binary + @dots{}"
+     @}
+ @end smallexample
+@@ -5292,6 +5328,7 @@ might be printed in JSON form as:
+                 @}
+             @}
+         ],
++        "escape-source": false,
+         "message": "\u2018struct s\u2019 has no member named @dots{}"
+     @}
+ @end smallexample
+@@ -5349,6 +5386,10 @@ For example, the intraprocedural example
+     ]
+ @end smallexample
+ 
++Diagnostics have a boolean attribute @code{escape-source}, hinting whether
++non-ASCII bytes should be escaped when printing the pertinent lines of
++source code (@code{true} for diagnostics involving source encoding issues).
++
+ @end table
+ 
+ @node Warning Options
+diff --git a/gcc/input.c b/gcc/input.c
+--- a/gcc/input.c	2021-07-27 23:55:07.328287915 -0700
++++ b/gcc/input.c	2021-12-14 01:16:01.553943061 -0800
+@@ -913,7 +913,8 @@ make_location (location_t caret, source_
+    source line in order to calculate the display width.  If that cannot be done
+    for any reason, then returns the byte column as a fallback.  */
+ int
+-location_compute_display_column (expanded_location exploc, int tabstop)
++location_compute_display_column (expanded_location exploc,
++				 const cpp_char_column_policy &policy)
+ {
+   if (!(exploc.file && *exploc.file && exploc.line && exploc.column))
+     return exploc.column;
+@@ -921,7 +922,7 @@ location_compute_display_column (expande
+   /* If line is NULL, this function returns exploc.column which is the
+      desired fallback.  */
+   return cpp_byte_column_to_display_column (line.get_buffer (), line.length (),
+-					    exploc.column, tabstop);
++					    exploc.column, policy);
+ }
+ 
+ /* Dump statistics to stderr about the memory usage of the line_table
+@@ -3611,43 +3612,50 @@ test_line_offset_overflow ()
+ void test_cpp_utf8 ()
+ {
+   const int def_tabstop = 8;
++  cpp_char_column_policy policy (def_tabstop, cpp_wcwidth);
++
+   /* Verify that wcwidth of invalid UTF-8 or control bytes is 1.  */
+   {
+-    int w_bad = cpp_display_width ("\xf0!\x9f!\x98!\x82!", 8, def_tabstop);
++    int w_bad = cpp_display_width ("\xf0!\x9f!\x98!\x82!", 8, policy);
+     ASSERT_EQ (8, w_bad);
+-    int w_ctrl = cpp_display_width ("\r\n\v\0\1", 5, def_tabstop);
++    int w_ctrl = cpp_display_width ("\r\n\v\0\1", 5, policy);
+     ASSERT_EQ (5, w_ctrl);
+   }
+ 
+   /* Verify that wcwidth of valid UTF-8 is as expected.  */
+   {
+-    const int w_pi = cpp_display_width ("\xcf\x80", 2, def_tabstop);
++    const int w_pi = cpp_display_width ("\xcf\x80", 2, policy);
+     ASSERT_EQ (1, w_pi);
+-    const int w_emoji = cpp_display_width ("\xf0\x9f\x98\x82", 4, def_tabstop);
++    const int w_emoji = cpp_display_width ("\xf0\x9f\x98\x82", 4, policy);
+     ASSERT_EQ (2, w_emoji);
+     const int w_umlaut_precomposed = cpp_display_width ("\xc3\xbf", 2,
+-							def_tabstop);
++							policy);
+     ASSERT_EQ (1, w_umlaut_precomposed);
+     const int w_umlaut_combining = cpp_display_width ("y\xcc\x88", 3,
+-						      def_tabstop);
++						      policy);
+     ASSERT_EQ (1, w_umlaut_combining);
+-    const int w_han = cpp_display_width ("\xe4\xb8\xba", 3, def_tabstop);
++    const int w_han = cpp_display_width ("\xe4\xb8\xba", 3, policy);
+     ASSERT_EQ (2, w_han);
+-    const int w_ascii = cpp_display_width ("GCC", 3, def_tabstop);
++    const int w_ascii = cpp_display_width ("GCC", 3, policy);
+     ASSERT_EQ (3, w_ascii);
+     const int w_mixed = cpp_display_width ("\xcf\x80 = 3.14 \xf0\x9f\x98\x82"
+ 					   "\x9f! \xe4\xb8\xba y\xcc\x88",
+-					   24, def_tabstop);
++					   24, policy);
+     ASSERT_EQ (18, w_mixed);
+   }
+ 
+   /* Verify that display width properly expands tabs.  */
+   {
+     const char *tstr = "\tabc\td";
+-    ASSERT_EQ (6, cpp_display_width (tstr, 6, 1));
+-    ASSERT_EQ (10, cpp_display_width (tstr, 6, 3));
+-    ASSERT_EQ (17, cpp_display_width (tstr, 6, 8));
+-    ASSERT_EQ (1, cpp_display_column_to_byte_column (tstr, 6, 7, 8));
++    ASSERT_EQ (6, cpp_display_width (tstr, 6,
++				     cpp_char_column_policy (1, cpp_wcwidth)));
++    ASSERT_EQ (10, cpp_display_width (tstr, 6,
++				      cpp_char_column_policy (3, cpp_wcwidth)));
++    ASSERT_EQ (17, cpp_display_width (tstr, 6,
++				      cpp_char_column_policy (8, cpp_wcwidth)));
++    ASSERT_EQ (1,
++	       cpp_display_column_to_byte_column
++		 (tstr, 6, 7, cpp_char_column_policy (8, cpp_wcwidth)));
+   }
+ 
+   /* Verify that cpp_byte_column_to_display_column can go past the end,
+@@ -3660,13 +3668,13 @@ void test_cpp_utf8 ()
+       /* 111122223456
+ 	 Byte columns.  */
+ 
+-    ASSERT_EQ (5, cpp_display_width (str, 6, def_tabstop));
++    ASSERT_EQ (5, cpp_display_width (str, 6, policy));
+     ASSERT_EQ (105,
+-	       cpp_byte_column_to_display_column (str, 6, 106, def_tabstop));
++	       cpp_byte_column_to_display_column (str, 6, 106, policy));
+     ASSERT_EQ (10000,
+-	       cpp_byte_column_to_display_column (NULL, 0, 10000, def_tabstop));
++	       cpp_byte_column_to_display_column (NULL, 0, 10000, policy));
+     ASSERT_EQ (0,
+-	       cpp_byte_column_to_display_column (NULL, 10000, 0, def_tabstop));
++	       cpp_byte_column_to_display_column (NULL, 10000, 0, policy));
+   }
+ 
+   /* Verify that cpp_display_column_to_byte_column can go past the end,
+@@ -3680,25 +3688,25 @@ void test_cpp_utf8 ()
+       /* 000000000000000000000000000000000111111
+ 	 111122223333444456666777788889999012345
+ 	 Byte columns.  */
+-    ASSERT_EQ (4, cpp_display_column_to_byte_column (str, 15, 2, def_tabstop));
++    ASSERT_EQ (4, cpp_display_column_to_byte_column (str, 15, 2, policy));
+     ASSERT_EQ (15,
+-	       cpp_display_column_to_byte_column (str, 15, 11, def_tabstop));
++	       cpp_display_column_to_byte_column (str, 15, 11, policy));
+     ASSERT_EQ (115,
+-	       cpp_display_column_to_byte_column (str, 15, 111, def_tabstop));
++	       cpp_display_column_to_byte_column (str, 15, 111, policy));
+     ASSERT_EQ (10000,
+-	       cpp_display_column_to_byte_column (NULL, 0, 10000, def_tabstop));
++	       cpp_display_column_to_byte_column (NULL, 0, 10000, policy));
+     ASSERT_EQ (0,
+-	       cpp_display_column_to_byte_column (NULL, 10000, 0, def_tabstop));
++	       cpp_display_column_to_byte_column (NULL, 10000, 0, policy));
+ 
+     /* Verify that we do not interrupt a UTF-8 sequence.  */
+-    ASSERT_EQ (4, cpp_display_column_to_byte_column (str, 15, 1, def_tabstop));
++    ASSERT_EQ (4, cpp_display_column_to_byte_column (str, 15, 1, policy));
+ 
+     for (int byte_col = 1; byte_col <= 15; ++byte_col)
+       {
+ 	const int disp_col
+-	  = cpp_byte_column_to_display_column (str, 15, byte_col, def_tabstop);
++	  = cpp_byte_column_to_display_column (str, 15, byte_col, policy);
+ 	const int byte_col2
+-	  = cpp_display_column_to_byte_column (str, 15, disp_col, def_tabstop);
++	  = cpp_display_column_to_byte_column (str, 15, disp_col, policy);
+ 
+ 	/* If we ask for the display column in the middle of a UTF-8
+ 	   sequence, it will return the length of the partial sequence,
+diff --git a/gcc/input.h b/gcc/input.h
+--- a/gcc/input.h	2021-07-27 23:55:07.328287915 -0700
++++ b/gcc/input.h	2021-12-14 01:16:01.553943061 -0800
+@@ -39,8 +39,11 @@ STATIC_ASSERT (BUILTINS_LOCATION < RESER
+ extern bool is_location_from_builtin_token (location_t);
+ extern expanded_location expand_location (location_t);
+ 
+-extern int location_compute_display_column (expanded_location exploc,
+-					    int tabstop);
++class cpp_char_column_policy;
++
++extern int
++location_compute_display_column (expanded_location exploc,
++				 const cpp_char_column_policy &policy);
+ 
+ /* A class capturing the bounds of a buffer, to allow for run-time
+    bounds-checking in a checked build.  */
+diff --git a/gcc/opts.c b/gcc/opts.c
+--- a/gcc/opts.c	2021-07-27 23:55:07.364288417 -0700
++++ b/gcc/opts.c	2021-12-14 01:16:01.553943061 -0800
+@@ -2573,6 +2573,10 @@ common_handle_option (struct gcc_options
+       dc->column_origin = value;
+       break;
+ 
++    case OPT_fdiagnostics_escape_format_:
++      dc->escape_format = (enum diagnostics_escape_format)value;
++      break;
++
+     case OPT_fdiagnostics_show_cwe:
+       dc->show_cwe = value;
+       break;
+diff --git a/gcc/selftest.c b/gcc/selftest.c
+--- a/gcc/selftest.c	2021-07-27 23:55:07.500290315 -0700
++++ b/gcc/selftest.c	2021-12-14 01:16:01.557942991 -0800
+@@ -193,6 +193,21 @@ temp_source_file::temp_source_file (cons
+   fclose (out);
+ }
+ 
++/* As above, but with a size, to allow for NUL bytes in CONTENT.  */
++
++temp_source_file::temp_source_file (const location &loc,
++				    const char *suffix,
++				    const char *content,
++				    size_t sz)
++: named_temp_file (suffix)
++{
++  FILE *out = fopen (get_filename (), "w");
++  if (!out)
++    fail_formatted (loc, "unable to open tempfile: %s", get_filename ());
++  fwrite (content, sz, 1, out);
++  fclose (out);
++}
++
+ /* Avoid introducing locale-specific differences in the results
+    by hardcoding open_quote and close_quote.  */
+ 
+diff --git a/gcc/selftest.h b/gcc/selftest.h
+--- a/gcc/selftest.h	2021-07-27 23:55:07.500290315 -0700
++++ b/gcc/selftest.h	2021-12-14 01:16:01.557942991 -0800
+@@ -112,6 +112,8 @@ class temp_source_file : public named_te
+  public:
+   temp_source_file (const location &loc, const char *suffix,
+ 		    const char *content);
++  temp_source_file (const location &loc, const char *suffix,
++		    const char *content, size_t sz);
+ };
+ 
+ /* RAII-style class for avoiding introducing locale-specific differences
+diff --git a/gcc/testsuite/c-c++-common/diagnostic-format-json-1.c b/gcc/testsuite/c-c++-common/diagnostic-format-json-1.c
+--- a/gcc/testsuite/c-c++-common/diagnostic-format-json-1.c	2021-07-27 23:55:07.596291654 -0700
++++ b/gcc/testsuite/c-c++-common/diagnostic-format-json-1.c	2021-12-14 01:16:01.557942991 -0800
+@@ -9,6 +9,7 @@
+ 
+ /* { dg-regexp "\"kind\": \"error\"" } */
+ /* { dg-regexp "\"column-origin\": 1" } */
++/* { dg-regexp "\"escape-source\": false" } */
+ /* { dg-regexp "\"message\": \"#error message\"" } */
+ 
+ /* { dg-regexp "\"caret\": \{" } */
+diff --git a/gcc/testsuite/c-c++-common/diagnostic-format-json-2.c b/gcc/testsuite/c-c++-common/diagnostic-format-json-2.c
+--- a/gcc/testsuite/c-c++-common/diagnostic-format-json-2.c	2021-07-27 23:55:07.596291654 -0700
++++ b/gcc/testsuite/c-c++-common/diagnostic-format-json-2.c	2021-12-14 01:16:01.557942991 -0800
+@@ -9,6 +9,7 @@
+ 
+ /* { dg-regexp "\"kind\": \"warning\"" } */
+ /* { dg-regexp "\"column-origin\": 1" } */
++/* { dg-regexp "\"escape-source\": false" } */
+ /* { dg-regexp "\"message\": \"#warning message\"" } */
+ /* { dg-regexp "\"option\": \"-Wcpp\"" } */
+ /* { dg-regexp "\"option_url\": \"https:\[^\n\r\"\]*#index-Wcpp\"" } */
+diff --git a/gcc/testsuite/c-c++-common/diagnostic-format-json-3.c b/gcc/testsuite/c-c++-common/diagnostic-format-json-3.c
+--- a/gcc/testsuite/c-c++-common/diagnostic-format-json-3.c	2021-07-27 23:55:07.596291654 -0700
++++ b/gcc/testsuite/c-c++-common/diagnostic-format-json-3.c	2021-12-14 01:16:01.557942991 -0800
+@@ -9,6 +9,7 @@
+ 
+ /* { dg-regexp "\"kind\": \"error\"" } */
+ /* { dg-regexp "\"column-origin\": 1" } */
++/* { dg-regexp "\"escape-source\": false" } */
+ /* { dg-regexp "\"message\": \"#warning message\"" } */
+ /* { dg-regexp "\"option\": \"-Werror=cpp\"" } */
+ /* { dg-regexp "\"option_url\": \"https:\[^\n\r\"\]*#index-Wcpp\"" } */
+diff --git a/gcc/testsuite/c-c++-common/diagnostic-format-json-4.c b/gcc/testsuite/c-c++-common/diagnostic-format-json-4.c
+--- a/gcc/testsuite/c-c++-common/diagnostic-format-json-4.c	2021-07-27 23:55:07.596291654 -0700
++++ b/gcc/testsuite/c-c++-common/diagnostic-format-json-4.c	2021-12-14 01:16:01.557942991 -0800
+@@ -19,6 +19,7 @@ int test (void)
+ 
+ /* { dg-regexp "\"kind\": \"note\"" } */
+ /* { dg-regexp "\"message\": \"...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'\"" } */
++/* { dg-regexp "\"escape-source\": false" } */
+ 
+ /* { dg-regexp "\"caret\": \{" } */
+ /* { dg-regexp "\"file\": \"\[^\n\r\"\]*diagnostic-format-json-4.c\"" } */
+@@ -39,6 +40,7 @@ int test (void)
+ /* { dg-regexp "\"kind\": \"warning\"" } */
+ /* { dg-regexp "\"column-origin\": 1" } */
+ /* { dg-regexp "\"message\": \"this 'if' clause does not guard...\"" } */
++/* { dg-regexp "\"escape-source\": false" } */
+ /* { dg-regexp "\"option\": \"-Wmisleading-indentation\"" } */
+ /* { dg-regexp "\"option_url\": \"https:\[^\n\r\"\]*#index-Wmisleading-indentation\"" } */
+ 
+diff --git a/gcc/testsuite/c-c++-common/diagnostic-format-json-5.c b/gcc/testsuite/c-c++-common/diagnostic-format-json-5.c
+--- a/gcc/testsuite/c-c++-common/diagnostic-format-json-5.c	2021-07-27 23:55:07.596291654 -0700
++++ b/gcc/testsuite/c-c++-common/diagnostic-format-json-5.c	2021-12-14 01:16:01.557942991 -0800
+@@ -14,6 +14,7 @@ int test (struct s *ptr)
+ 
+ /* { dg-regexp "\"kind\": \"error\"" } */
+ /* { dg-regexp "\"column-origin\": 1" } */
++/* { dg-regexp "\"escape-source\": false" } */
+ /* { dg-regexp "\"message\": \".*\"" } */
+ 
+ /* Verify fix-it hints.  */
+diff --git a/gcc/testsuite/gcc.dg/cpp/warn-normalized-4-bytes.c b/gcc/testsuite/gcc.dg/cpp/warn-normalized-4-bytes.c
+--- a/gcc/testsuite/gcc.dg/cpp/warn-normalized-4-bytes.c	1969-12-31 16:00:00.000000000 -0800
++++ b/gcc/testsuite/gcc.dg/cpp/warn-normalized-4-bytes.c	2021-12-14 01:16:01.557942991 -0800
+@@ -0,0 +1,21 @@
++// { dg-do preprocess }
++// { dg-options "-std=gnu99 -Werror=normalized=nfc -fdiagnostics-show-caret -fdiagnostics-escape-format=bytes" }
++/* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */
++
++/* འ= U+0F43 TIBETAN LETTER GHA, which has decomposition "0F42 0FB7" i.e.
++   U+0F42 TIBETAN LETTER GA: à½
++   U+0FB7 TIBETAN SUBJOINED LETTER HA: ྷ
++
++   The UTF-8 encoding of U+0F43 TIBETAN LETTER GHA is: E0 BD 83.  */
++
++foo before_\u0F43_after bar // { dg-error "`before_.U00000f43_after' is not in NFC .-Werror=normalized=." }
++/* { dg-begin-multiline-output "" }
++ foo before_\u0F43_after bar
++     ^~~~~~~~~~~~~~~~~~~
++   { dg-end-multiline-output "" } */
++
++foo before_à½_after bar // { dg-error "`before_.U00000f43_after' is not in NFC .-Werror=normalized=." }
++/* { dg-begin-multiline-output "" }
++ foo before_<e0><bd><83>_after bar
++     ^~~~~~~~~~~~~~~~~~~~~~~~~
++   { dg-end-multiline-output "" } */
+diff --git a/gcc/testsuite/gcc.dg/cpp/warn-normalized-4-unicode.c b/gcc/testsuite/gcc.dg/cpp/warn-normalized-4-unicode.c
+--- a/gcc/testsuite/gcc.dg/cpp/warn-normalized-4-unicode.c	1969-12-31 16:00:00.000000000 -0800
++++ b/gcc/testsuite/gcc.dg/cpp/warn-normalized-4-unicode.c	2021-12-14 01:16:01.557942991 -0800
+@@ -0,0 +1,19 @@
++// { dg-do preprocess }
++// { dg-options "-std=gnu99 -Werror=normalized=nfc -fdiagnostics-show-caret -fdiagnostics-escape-format=unicode" }
++/* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */
++
++/* འ= U+0F43 TIBETAN LETTER GHA, which has decomposition "0F42 0FB7" i.e.
++   U+0F42 TIBETAN LETTER GA: à½
++   U+0FB7 TIBETAN SUBJOINED LETTER HA: ྷ  */
++
++foo before_\u0F43_after bar  // { dg-error "`before_.U00000f43_after' is not in NFC .-Werror=normalized=." }
++/* { dg-begin-multiline-output "" }
++ foo before_\u0F43_after bar
++     ^~~~~~~~~~~~~~~~~~~
++   { dg-end-multiline-output "" } */
++
++foo before_à½_after bar // { dg-error "`before_.U00000f43_after' is not in NFC .-Werror=normalized=." }
++/* { dg-begin-multiline-output "" }
++ foo before_<U+0F43>_after bar
++     ^~~~~~~~~~~~~~~~~~~~~
++   { dg-end-multiline-output "" } */
+diff --git a/gcc/testsuite/gfortran.dg/diagnostic-format-json-1.F90 b/gcc/testsuite/gfortran.dg/diagnostic-format-json-1.F90
+--- a/gcc/testsuite/gfortran.dg/diagnostic-format-json-1.F90	2021-07-27 23:55:08.472303878 -0700
++++ b/gcc/testsuite/gfortran.dg/diagnostic-format-json-1.F90	2021-12-14 01:16:01.557942991 -0800
+@@ -9,6 +9,7 @@
+ 
+ ! { dg-regexp "\"kind\": \"error\"" }
+ ! { dg-regexp "\"column-origin\": 1" }
++! { dg-regexp "\"escape-source\": false" }
+ ! { dg-regexp "\"message\": \"#error message\"" }
+ 
+ ! { dg-regexp "\"caret\": \{" }
+diff --git a/gcc/testsuite/gfortran.dg/diagnostic-format-json-2.F90 b/gcc/testsuite/gfortran.dg/diagnostic-format-json-2.F90
+--- a/gcc/testsuite/gfortran.dg/diagnostic-format-json-2.F90	2021-07-27 23:55:08.472303878 -0700
++++ b/gcc/testsuite/gfortran.dg/diagnostic-format-json-2.F90	2021-12-14 01:16:01.557942991 -0800
+@@ -9,6 +9,7 @@
+ 
+ ! { dg-regexp "\"kind\": \"warning\"" }
+ ! { dg-regexp "\"column-origin\": 1" }
++! { dg-regexp "\"escape-source\": false" }
+ ! { dg-regexp "\"message\": \"#warning message\"" }
+ ! { dg-regexp "\"option\": \"-Wcpp\"" }
+ ! { dg-regexp "\"option_url\": \"\[^\n\r\"\]*#index-Wcpp\"" }
+diff --git a/gcc/testsuite/gfortran.dg/diagnostic-format-json-3.F90 b/gcc/testsuite/gfortran.dg/diagnostic-format-json-3.F90
+--- a/gcc/testsuite/gfortran.dg/diagnostic-format-json-3.F90	2021-07-27 23:55:08.472303878 -0700
++++ b/gcc/testsuite/gfortran.dg/diagnostic-format-json-3.F90	2021-12-14 01:16:01.557942991 -0800
+@@ -9,6 +9,7 @@
+ 
+ ! { dg-regexp "\"kind\": \"error\"" }
+ ! { dg-regexp "\"column-origin\": 1" }
++! { dg-regexp "\"escape-source\": false" }
+ ! { dg-regexp "\"message\": \"#warning message\"" }
+ ! { dg-regexp "\"option\": \"-Werror=cpp\"" }
+ ! { dg-regexp "\"option_url\": \"\[^\n\r\"\]*#index-Wcpp\"" }
+diff --git a/libcpp/charset.c b/libcpp/charset.c
+--- a/libcpp/charset.c	2021-07-27 23:55:08.712307227 -0700
++++ b/libcpp/charset.c	2021-12-14 01:16:01.557942991 -0800
+@@ -1552,12 +1552,14 @@ convert_escape (cpp_reader *pfile, const
+ 		   "unknown escape sequence: '\\%c'", (int) c);
+       else
+ 	{
++	  encoding_rich_location rich_loc (pfile);
++
+ 	  /* diagnostic.c does not support "%03o".  When it does, this
+ 	     code can use %03o directly in the diagnostic again.  */
+ 	  char buf[32];
+ 	  sprintf(buf, "%03o", (int) c);
+-	  cpp_error (pfile, CPP_DL_PEDWARN,
+-		     "unknown escape sequence: '\\%s'", buf);
++	  cpp_error_at (pfile, CPP_DL_PEDWARN, &rich_loc,
++			"unknown escape sequence: '\\%s'", buf);
+ 	}
+     }
+ 
+@@ -2280,14 +2282,16 @@ cpp_string_location_reader::get_next ()
+ }
+ 
+ cpp_display_width_computation::
+-cpp_display_width_computation (const char *data, int data_length, int tabstop) :
++cpp_display_width_computation (const char *data, int data_length,
++			       const cpp_char_column_policy &policy) :
+   m_begin (data),
+   m_next (m_begin),
+   m_bytes_left (data_length),
+-  m_tabstop (tabstop),
++  m_policy (policy),
+   m_display_cols (0)
+ {
+-  gcc_assert (m_tabstop > 0);
++  gcc_assert (policy.m_tabstop > 0);
++  gcc_assert (policy.m_width_cb);
+ }
+ 
+ 
+@@ -2299,19 +2303,28 @@ cpp_display_width_computation (const cha
+    point to a valid UTF-8-encoded sequence, then it will be treated as a single
+    byte with display width 1.  m_cur_display_col is the current display column,
+    relative to which tab stops should be expanded.  Returns the display width of
+-   the codepoint just processed.  */
++   the codepoint just processed.
++   If OUT is non-NULL, it is populated.  */
+ 
+ int
+-cpp_display_width_computation::process_next_codepoint ()
++cpp_display_width_computation::process_next_codepoint (cpp_decoded_char *out)
+ {
+   cppchar_t c;
+   int next_width;
+ 
++  if (out)
++    out->m_start_byte = m_next;
++
+   if (*m_next == '\t')
+     {
+       ++m_next;
+       --m_bytes_left;
+-      next_width = m_tabstop - (m_display_cols % m_tabstop);
++      next_width = m_policy.m_tabstop - (m_display_cols % m_policy.m_tabstop);
++      if (out)
++	{
++	  out->m_ch = '\t';
++	  out->m_valid_ch = true;
++	}
+     }
+   else if (one_utf8_to_cppchar ((const uchar **) &m_next, &m_bytes_left, &c)
+ 	   != 0)
+@@ -2321,14 +2334,24 @@ cpp_display_width_computation::process_n
+ 	 of one.  */
+       ++m_next;
+       --m_bytes_left;
+-      next_width = 1;
++      next_width = m_policy.m_undecoded_byte_width;
++      if (out)
++	out->m_valid_ch = false;
+     }
+   else
+     {
+       /*  one_utf8_to_cppchar() has updated m_next and m_bytes_left for us.  */
+-      next_width = cpp_wcwidth (c);
++      next_width = m_policy.m_width_cb (c);
++      if (out)
++	{
++	  out->m_ch = c;
++	  out->m_valid_ch = true;
++	}
+     }
+ 
++  if (out)
++    out->m_next_byte = m_next;
++
+   m_display_cols += next_width;
+   return next_width;
+ }
+@@ -2344,7 +2367,7 @@ cpp_display_width_computation::advance_d
+   const int start = m_display_cols;
+   const int target = start + n;
+   while (m_display_cols < target && !done ())
+-    process_next_codepoint ();
++    process_next_codepoint (NULL);
+   return m_display_cols - start;
+ }
+ 
+@@ -2352,29 +2375,33 @@ cpp_display_width_computation::advance_d
+     how many display columns are occupied by the first COLUMN bytes.  COLUMN
+     may exceed DATA_LENGTH, in which case the phantom bytes at the end are
+     treated as if they have display width 1.  Tabs are expanded to the next tab
+-    stop, relative to the start of DATA.  */
++    stop, relative to the start of DATA, and non-printable-ASCII characters
++    will be escaped as per POLICY.  */
+ 
+ int
+ cpp_byte_column_to_display_column (const char *data, int data_length,
+-				   int column, int tabstop)
++				   int column,
++				   const cpp_char_column_policy &policy)
+ {
+   const int offset = MAX (0, column - data_length);
+-  cpp_display_width_computation dw (data, column - offset, tabstop);
++  cpp_display_width_computation dw (data, column - offset, policy);
+   while (!dw.done ())
+-    dw.process_next_codepoint ();
++    dw.process_next_codepoint (NULL);
+   return dw.display_cols_processed () + offset;
+ }
+ 
+ /*  For the string of length DATA_LENGTH bytes that begins at DATA, compute
+     the least number of bytes that will result in at least DISPLAY_COL display
+     columns.  The return value may exceed DATA_LENGTH if the entire string does
+-    not occupy enough display columns.  */
++    not occupy enough display columns.  Non-printable-ASCII characters
++    will be escaped as per POLICY.  */
+ 
+ int
+ cpp_display_column_to_byte_column (const char *data, int data_length,
+-				   int display_col, int tabstop)
++				   int display_col,
++				   const cpp_char_column_policy &policy)
+ {
+-  cpp_display_width_computation dw (data, data_length, tabstop);
++  cpp_display_width_computation dw (data, data_length, policy);
+   const int avail_display = dw.advance_display_cols (display_col);
+   return dw.bytes_processed () + MAX (0, display_col - avail_display);
+ }
+diff --git a/libcpp/errors.c b/libcpp/errors.c
+--- a/libcpp/errors.c	2021-07-27 23:55:08.712307227 -0700
++++ b/libcpp/errors.c	2021-12-14 01:16:01.557942991 -0800
+@@ -27,6 +27,31 @@ along with this program; see the file CO
+ #include "cpplib.h"
+ #include "internal.h"
+ 
++/* Get a location_t for the current location in PFILE,
++   generally that of the previously lexed token.  */
++
++location_t
++cpp_diagnostic_get_current_location (cpp_reader *pfile)
++{
++  if (CPP_OPTION (pfile, traditional))
++    {
++      if (pfile->state.in_directive)
++	return pfile->directive_line;
++      else
++	return pfile->line_table->highest_line;
++    }
++  /* We don't want to refer to a token before the beginning of the
++     current run -- that is invalid.  */
++  else if (pfile->cur_token == pfile->cur_run->base)
++    {
++      return 0;
++    }
++  else
++    {
++      return pfile->cur_token[-1].src_loc;
++    }
++}
++
+ /* Print a diagnostic at the given location.  */
+ 
+ ATTRIBUTE_FPTR_PRINTF(5,0)
+@@ -52,25 +77,7 @@ cpp_diagnostic (cpp_reader * pfile, enum
+ 		enum cpp_warning_reason reason,
+ 		const char *msgid, va_list *ap)
+ {
+-  location_t src_loc;
+-
+-  if (CPP_OPTION (pfile, traditional))
+-    {
+-      if (pfile->state.in_directive)
+-	src_loc = pfile->directive_line;
+-      else
+-	src_loc = pfile->line_table->highest_line;
+-    }
+-  /* We don't want to refer to a token before the beginning of the
+-     current run -- that is invalid.  */
+-  else if (pfile->cur_token == pfile->cur_run->base)
+-    {
+-      src_loc = 0;
+-    }
+-  else
+-    {
+-      src_loc = pfile->cur_token[-1].src_loc;
+-    }
++  location_t src_loc = cpp_diagnostic_get_current_location (pfile);
+   rich_location richloc (pfile->line_table, src_loc);
+   return cpp_diagnostic_at (pfile, level, reason, &richloc, msgid, ap);
+ }
+@@ -142,6 +149,43 @@ cpp_warning_syshdr (cpp_reader * pfile,
+ 
+   va_end (ap);
+   return ret;
++}
++
++/* As cpp_warning above, but use RICHLOC as the location of the diagnostic.  */
++
++bool cpp_warning_at (cpp_reader *pfile, enum cpp_warning_reason reason,
++		     rich_location *richloc, const char *msgid, ...)
++{
++  va_list ap;
++  bool ret;
++
++  va_start (ap, msgid);
++
++  ret = cpp_diagnostic_at (pfile, CPP_DL_WARNING, reason, richloc,
++			   msgid, &ap);
++
++  va_end (ap);
++  return ret;
++
++}
++
++/* As cpp_pedwarning above, but use RICHLOC as the location of the
++   diagnostic.  */
++
++bool
++cpp_pedwarning_at (cpp_reader * pfile, enum cpp_warning_reason reason,
++		   rich_location *richloc, const char *msgid, ...)
++{
++  va_list ap;
++  bool ret;
++
++  va_start (ap, msgid);
++
++  ret = cpp_diagnostic_at (pfile, CPP_DL_PEDWARN, reason, richloc,
++			   msgid, &ap);
++
++  va_end (ap);
++  return ret;
+ }
+ 
+ /* Print a diagnostic at a specific location.  */
+diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h
+--- a/libcpp/include/cpplib.h	2021-12-13 23:23:05.768437079 -0800
++++ b/libcpp/include/cpplib.h	2021-12-14 01:20:16.189507386 -0800
+@@ -1275,6 +1275,14 @@ extern bool cpp_warning_syshdr (cpp_read
+ 				const char *msgid, ...)
+   ATTRIBUTE_PRINTF_3;
+ 
++/* As their counterparts above, but use RICHLOC.  */
++extern bool cpp_warning_at (cpp_reader *, enum cpp_warning_reason,
++			    rich_location *richloc, const char *msgid, ...)
++  ATTRIBUTE_PRINTF_4;
++extern bool cpp_pedwarning_at (cpp_reader *, enum cpp_warning_reason,
++			       rich_location *richloc, const char *msgid, ...)
++  ATTRIBUTE_PRINTF_4;
++
+ /* Output a diagnostic with "MSGID: " preceding the
+    error string of errno.  No location is printed.  */
+ extern bool cpp_errno (cpp_reader *, enum cpp_diagnostic_level,
+@@ -1435,42 +1443,95 @@ extern const char * cpp_get_userdef_suff
+ 
+ /* In charset.c */
+ 
++/* The result of attempting to decode a run of UTF-8 bytes.  */
++
++struct cpp_decoded_char
++{
++  const char *m_start_byte;
++  const char *m_next_byte;
++
++  bool m_valid_ch;
++  cppchar_t m_ch;
++};
++
++/* Information for mapping between code points and display columns.
++
++   This is a tabstop value, along with a callback for getting the
++   widths of characters.  Normally this callback is cpp_wcwidth, but we
++   support other schemes for escaping non-ASCII unicode as a series of
++   ASCII chars when printing the user's source code in diagnostic-show-locus.c
++
++   For example, consider:
++   - the Unicode character U+03C0 "GREEK SMALL LETTER PI" (UTF-8: 0xCF 0x80)
++   - the Unicode character U+1F642 "SLIGHTLY SMILING FACE"
++     (UTF-8: 0xF0 0x9F 0x99 0x82)
++   - the byte 0xBF (a stray trailing byte of a UTF-8 character)
++   Normally U+03C0 would occupy one display column, U+1F642
++   would occupy two display columns, and the stray byte would be
++   printed verbatim as one display column.
++
++   However when escaping them as unicode code points as "<U+03C0>"
++   and "<U+1F642>" they occupy 8 and 9 display columns respectively,
++   and when escaping them as bytes as "<CF><80>" and "<F0><9F><99><82>"
++   they occupy 8 and 16 display columns respectively.  In both cases
++   the stray byte is escaped to <BF> as 4 display columns.  */
++
++struct cpp_char_column_policy
++{
++  cpp_char_column_policy (int tabstop,
++			  int (*width_cb) (cppchar_t c))
++  : m_tabstop (tabstop),
++    m_undecoded_byte_width (1),
++    m_width_cb (width_cb)
++  {}
++
++  int m_tabstop;
++  /* Width in display columns of a stray byte that isn't decodable
++     as UTF-8.  */
++  int m_undecoded_byte_width;
++  int (*m_width_cb) (cppchar_t c);
++};
++
+ /* A class to manage the state while converting a UTF-8 sequence to cppchar_t
+    and computing the display width one character at a time.  */
+ class cpp_display_width_computation {
+  public:
+   cpp_display_width_computation (const char *data, int data_length,
+-				 int tabstop);
++				 const cpp_char_column_policy &policy);
+   const char *next_byte () const { return m_next; }
+   int bytes_processed () const { return m_next - m_begin; }
+   int bytes_left () const { return m_bytes_left; }
+   bool done () const { return !bytes_left (); }
+   int display_cols_processed () const { return m_display_cols; }
+ 
+-  int process_next_codepoint ();
++  int process_next_codepoint (cpp_decoded_char *out);
+   int advance_display_cols (int n);
+ 
+  private:
+   const char *const m_begin;
+   const char *m_next;
+   size_t m_bytes_left;
+-  const int m_tabstop;
++  const cpp_char_column_policy &m_policy;
+   int m_display_cols;
+ };
+ 
+ /* Convenience functions that are simple use cases for class
+    cpp_display_width_computation.  Tab characters will be expanded to spaces
+-   as determined by TABSTOP.  */
++   as determined by POLICY.m_tabstop, and non-printable-ASCII characters
++   will be escaped as per POLICY.  */
++
+ int cpp_byte_column_to_display_column (const char *data, int data_length,
+-				       int column, int tabstop);
++				       int column,
++				       const cpp_char_column_policy &policy);
+ inline int cpp_display_width (const char *data, int data_length,
+-			      int tabstop)
++			      const cpp_char_column_policy &policy)
+ {
+   return cpp_byte_column_to_display_column (data, data_length, data_length,
+-					    tabstop);
++					    policy);
+ }
+ int cpp_display_column_to_byte_column (const char *data, int data_length,
+-				       int display_col, int tabstop);
++				       int display_col,
++				       const cpp_char_column_policy &policy);
+ int cpp_wcwidth (cppchar_t c);
+ 
+ #endif /* ! LIBCPP_CPPLIB_H */
+diff --git a/libcpp/include/line-map.h b/libcpp/include/line-map.h
+--- a/libcpp/include/line-map.h	2021-07-27 23:55:08.716307283 -0700
++++ b/libcpp/include/line-map.h	2021-12-14 01:16:01.557942991 -0800
+@@ -1781,6 +1781,18 @@ class rich_location
+   const diagnostic_path *get_path () const { return m_path; }
+   void set_path (const diagnostic_path *path) { m_path = path; }
+ 
++  /* A flag for hinting that the diagnostic involves character encoding
++     issues, and thus that it will be helpful to the user if we show some
++     representation of how the characters in the pertinent source lines
++     are encoded.
++     The default is false (i.e. do not escape).
++     When set to true, non-ASCII bytes in the pertinent source lines will
++     be escaped in a manner controlled by the user-supplied option
++     -fdiagnostics-escape-format=, so that the user can better understand
++     what's going on with the encoding in their source file.  */
++  bool escape_on_output_p () const { return m_escape_on_output; }
++  void set_escape_on_output (bool flag) { m_escape_on_output = flag; }
++
+ private:
+   bool reject_impossible_fixit (location_t where);
+   void stop_supporting_fixits ();
+@@ -1807,6 +1819,7 @@ protected:
+   bool m_fixits_cannot_be_auto_applied;
+ 
+   const diagnostic_path *m_path;
++  bool m_escape_on_output;
+ };
+ 
+ /* A struct for the result of range_label::get_text: a NUL-terminated buffer
+diff --git a/libcpp/internal.h b/libcpp/internal.h
+--- a/libcpp/internal.h	2021-12-13 23:23:05.768437079 -0800
++++ b/libcpp/internal.h	2021-12-14 01:16:01.557942991 -0800
+@@ -776,6 +776,9 @@ extern void _cpp_do_file_change (cpp_rea
+ extern void _cpp_pop_buffer (cpp_reader *);
+ extern char *_cpp_bracket_include (cpp_reader *);
+ 
++/* In errors.c  */
++extern location_t cpp_diagnostic_get_current_location (cpp_reader *);
++
+ /* In traditional.c.  */
+ extern bool _cpp_scan_out_logical_line (cpp_reader *, cpp_macro *, bool);
+ extern bool _cpp_read_logical_line_trad (cpp_reader *);
+@@ -942,6 +945,26 @@ int linemap_get_expansion_line (class li
+ const char* linemap_get_expansion_filename (class line_maps *,
+ 					    location_t);
+ 
++/* A subclass of rich_location for emitting a diagnostic
++   at the current location of the reader, but flagging
++   it with set_escape_on_output (true).  */
++class encoding_rich_location : public rich_location
++{
++ public:
++  encoding_rich_location (cpp_reader *pfile)
++  : rich_location (pfile->line_table,
++		   cpp_diagnostic_get_current_location (pfile))
++  {
++    set_escape_on_output (true);
++  }
++
++  encoding_rich_location (cpp_reader *pfile, location_t loc)
++  : rich_location (pfile->line_table, loc)
++  {
++    set_escape_on_output (true);
++  }
++};
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/libcpp/lex.c b/libcpp/lex.c
+--- a/libcpp/lex.c	2021-12-14 01:14:48.435225968 -0800
++++ b/libcpp/lex.c	2021-12-14 01:24:37.220995816 -0800
+@@ -1774,7 +1774,11 @@ skip_whitespace (cpp_reader *pfile, cppc
+   while (is_nvspace (c));
+ 
+   if (saw_NUL)
+-    cpp_error (pfile, CPP_DL_WARNING, "null character(s) ignored");
++    {
++      encoding_rich_location rich_loc (pfile);
++      cpp_error_at (pfile, CPP_DL_WARNING, &rich_loc,
++		    "null character(s) ignored");
++    }
+ 
+   buffer->cur--;
+ }
+@@ -1803,6 +1807,28 @@ warn_about_normalization (cpp_reader *pf
+   if (CPP_OPTION (pfile, warn_normalize) < NORMALIZE_STATE_RESULT (s)
+       && !pfile->state.skipping)
+     {
++      location_t loc = token->src_loc;
++
++      /* If possible, create a location range for the token.  */
++      if (loc >= RESERVED_LOCATION_COUNT
++	  && token->type != CPP_EOF
++	  /* There must be no line notes to process.  */
++	  && (!(pfile->buffer->cur
++		>= pfile->buffer->notes[pfile->buffer->cur_note].pos
++		&& !pfile->overlaid_buffer)))
++	{
++	  source_range tok_range;
++	  tok_range.m_start = loc;
++	  tok_range.m_finish
++	    = linemap_position_for_column (pfile->line_table,
++					   CPP_BUF_COLUMN (pfile->buffer,
++							   pfile->buffer->cur));
++	  loc = COMBINE_LOCATION_DATA (pfile->line_table,
++				       loc, tok_range, NULL);
++	}
++
++      encoding_rich_location rich_loc (pfile, loc);
++
+       /* Make sure that the token is printed using UCNs, even
+ 	 if we'd otherwise happily print UTF-8.  */
+       unsigned char *buf = XNEWVEC (unsigned char, cpp_token_len (token));
+@@ -1810,11 +1836,11 @@ warn_about_normalization (cpp_reader *pf
+ 
+       sz = cpp_spell_token (pfile, token, buf, false) - buf;
+       if (NORMALIZE_STATE_RESULT (s) == normalized_C)
+-	cpp_warning_with_line (pfile, CPP_W_NORMALIZE, token->src_loc, 0,
+-			       "`%.*s' is not in NFKC", (int) sz, buf);
++	cpp_warning_at (pfile, CPP_W_NORMALIZE, &rich_loc,
++			"`%.*s' is not in NFKC", (int) sz, buf);
+       else
+-	cpp_warning_with_line (pfile, CPP_W_NORMALIZE, token->src_loc, 0,
+-			       "`%.*s' is not in NFC", (int) sz, buf);
++	cpp_warning_at (pfile, CPP_W_NORMALIZE, &rich_loc,
++			"`%.*s' is not in NFC", (int) sz, buf);
+       free (buf);
+     }
+ }
+diff --git a/libcpp/line-map.c b/libcpp/line-map.c
+--- a/libcpp/line-map.c	2021-07-27 23:55:08.716307283 -0700
++++ b/libcpp/line-map.c	2021-12-14 01:16:01.561942921 -0800
+@@ -2086,7 +2086,8 @@ rich_location::rich_location (line_maps
+   m_fixit_hints (),
+   m_seen_impossible_fixit (false),
+   m_fixits_cannot_be_auto_applied (false),
+-  m_path (NULL)
++  m_path (NULL),
++  m_escape_on_output (false)
+ {
+   add_range (loc, SHOW_RANGE_WITH_CARET, label);
+ }
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-Fix-install-path-of-linux64.h.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-Fix-install-path-of-linux64.h.patch
new file mode 100644
index 0000000..5bf895d
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0001-Fix-install-path-of-linux64.h.patch
@@ -0,0 +1,33 @@
+From 58211c7ceb0510b2a11a7f1da3c7fa968c658749 Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei.gherzan@huawei.com>
+Date: Wed, 22 Dec 2021 12:49:25 +0100
+Subject: [PATCH] Fix install path of linux64.h
+
+We add linux64.h to tm includes[1] as a relative path to B. This patch
+adapts the install path of linux64.h to match the include in tm.h.
+
+[1] 0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch
+
+Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
+
+Upstream-Status: Inappropriate [configuration]
+---
+ gcc/Makefile.in | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+index 9b17d120a..d175ec4e3 100644
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -3693,6 +3693,8 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
+ 	  "$(srcdir)"/config/* | "$(srcdir)"/common/config/* \
+ 	  | "$(srcdir)"/c-family/* | "$(srcdir)"/*.def ) \
+ 	    base=`echo "$$path" | sed -e "s|$$srcdirstrip/||"`;; \
++	  */linux64.h ) \
++	    base=`dirname $$path`;;\
+ 	  *) base=`basename $$path` ;; \
+ 	  esac; \
+ 	  dest=$(plugin_includedir)/$$base; \
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0002-CVE-2021-35465.patch b/poky/meta/recipes-devtools/gcc/gcc/0002-CVE-2021-35465.patch
new file mode 100644
index 0000000..e09818f
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0002-CVE-2021-35465.patch
@@ -0,0 +1,39 @@
+From 574e7950bd6b34e9e2cacce18c802b45505d1d0a Mon Sep 17 00:00:00 2001
+From: Richard Earnshaw <rearnsha@arm.com>
+Date: Fri, 18 Jun 2021 17:16:25 +0100
+Subject: [PATCH] arm: add erratum mitigation to __gnu_cmse_nonsecure_call
+ [PR102035]
+
+Add the recommended erratum mitigation sequence to
+__gnu_cmse_nonsecure_call for use on Armv8-m.main devices. Since this
+is in the library code we cannot know in advance whether the core we
+are running on will be affected by this, so always enable it.
+
+libgcc:
+	PR target/102035
+	* config/arm/cmse_nonsecure_call.S (__gnu_cmse_nonsecure_call):
+	Add vlldm erratum work-around.
+
+CVE: CVE-2021-35465
+Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=574e7950bd6b34e9e2cacce18c802b45505d1d0a]
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+
+---
+ libgcc/config/arm/cmse_nonsecure_call.S | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/libgcc/config/arm/cmse_nonsecure_call.S b/libgcc/config/arm/cmse_nonsecure_call.S
+--- a/libgcc/config/arm/cmse_nonsecure_call.S
++++ b/libgcc/config/arm/cmse_nonsecure_call.S
+@@ -102,6 +102,11 @@ blxns	    r4
+ #ifdef __ARM_PCS_VFP
+ vpop.f64    {d8-d15}
+ #else
++/* VLLDM erratum mitigation sequence. */
++mrs	    r5, control
++tst	    r5, #8	  /* CONTROL_S.SFPA */
++it	    ne
++.inst.w	    0xeeb00a40	  /* vmovne s0, s0 */
+ vlldm	    sp		  /* Lazy restore of d0-d16 and FPSCR.  */
+ add	    sp, sp, #0x88 /* Free space used to save floating point registers.  */
+ #endif /* __ARM_PCS_VFP */
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0002-CVE-2021-42574.patch b/poky/meta/recipes-devtools/gcc/gcc/0002-CVE-2021-42574.patch
new file mode 100644
index 0000000..9bad81d
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0002-CVE-2021-42574.patch
@@ -0,0 +1,1765 @@
+From 51c500269bf53749b107807d84271385fad35628 Mon Sep 17 00:00:00 2001
+From: Marek Polacek <polacek@redhat.com>
+Date: Wed, 6 Oct 2021 14:33:59 -0400
+Subject: [PATCH] libcpp: Implement -Wbidi-chars for CVE-2021-42574 [PR103026]
+
+From a link below:
+"An issue was discovered in the Bidirectional Algorithm in the Unicode
+Specification through 14.0. It permits the visual reordering of
+characters via control sequences, which can be used to craft source code
+that renders different logic than the logical ordering of tokens
+ingested by compilers and interpreters. Adversaries can leverage this to
+encode source code for compilers accepting Unicode such that targeted
+vulnerabilities are introduced invisibly to human reviewers."
+
+More info:
+https://nvd.nist.gov/vuln/detail/CVE-2021-42574
+https://trojansource.codes/
+
+This is not a compiler bug.  However, to mitigate the problem, this patch
+implements -Wbidi-chars=[none|unpaired|any] to warn about possibly
+misleading Unicode bidirectional control characters the preprocessor may
+encounter.
+
+The default is =unpaired, which warns about improperly terminated
+bidirectional control characters; e.g. a LRE without its corresponding PDF.
+The level =any warns about any use of bidirectional control characters.
+
+This patch handles both UCNs and UTF-8 characters.  UCNs designating
+bidi characters in identifiers are accepted since r204886.  Then r217144
+enabled -fextended-identifiers by default.  Extended characters in C/C++
+identifiers have been accepted since r275979.  However, this patch still
+warns about mixing UTF-8 and UCN bidi characters; there seems to be no
+good reason to allow mixing them.
+
+We warn in different contexts: comments (both C and C++-style), string
+literals, character constants, and identifiers.  Expectedly, UCNs are ignored
+in comments and raw string literals.  The bidirectional control characters
+can nest so this patch handles that as well.
+
+I have not included nor tested this at all with Fortran (which also has
+string literals and line comments).
+
+Dave M. posted patches improving diagnostic involving Unicode characters.
+This patch does not make use of this new infrastructure yet.
+
+	PR preprocessor/103026
+
+gcc/c-family/ChangeLog:
+
+	* c.opt (Wbidi-chars, Wbidi-chars=): New option.
+
+gcc/ChangeLog:
+
+	* doc/invoke.texi: Document -Wbidi-chars.
+
+libcpp/ChangeLog:
+
+	* include/cpplib.h (enum cpp_bidirectional_level): New.
+	(struct cpp_options): Add cpp_warn_bidirectional.
+	(enum cpp_warning_reason): Add CPP_W_BIDIRECTIONAL.
+	* internal.h (struct cpp_reader): Add warn_bidi_p member
+	function.
+	* init.c (cpp_create_reader): Set cpp_warn_bidirectional.
+	* lex.c (bidi): New namespace.
+	(get_bidi_utf8): New function.
+	(get_bidi_ucn): Likewise.
+	(maybe_warn_bidi_on_close): Likewise.
+	(maybe_warn_bidi_on_char): Likewise.
+	(_cpp_skip_block_comment): Implement warning about bidirectional
+	control characters.
+	(skip_line_comment): Likewise.
+	(forms_identifier_p): Likewise.
+	(lex_identifier): Likewise.
+	(lex_string): Likewise.
+	(lex_raw_string): Likewise.
+
+gcc/testsuite/ChangeLog:
+
+	* c-c++-common/Wbidi-chars-1.c: New test.
+	* c-c++-common/Wbidi-chars-2.c: New test.
+	* c-c++-common/Wbidi-chars-3.c: New test.
+	* c-c++-common/Wbidi-chars-4.c: New test.
+	* c-c++-common/Wbidi-chars-5.c: New test.
+	* c-c++-common/Wbidi-chars-6.c: New test.
+	* c-c++-common/Wbidi-chars-7.c: New test.
+	* c-c++-common/Wbidi-chars-8.c: New test.
+	* c-c++-common/Wbidi-chars-9.c: New test.
+	* c-c++-common/Wbidi-chars-10.c: New test.
+	* c-c++-common/Wbidi-chars-11.c: New test.
+	* c-c++-common/Wbidi-chars-12.c: New test.
+	* c-c++-common/Wbidi-chars-13.c: New test.
+	* c-c++-common/Wbidi-chars-14.c: New test.
+	* c-c++-common/Wbidi-chars-15.c: New test.
+	* c-c++-common/Wbidi-chars-16.c: New test.
+	* c-c++-common/Wbidi-chars-17.c: New test.
+
+CVE: CVE-2021-42574
+Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=51c500269bf53749b107807d84271385fad35628]
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+
+---
+ gcc/c-family/c.opt                          |  24 ++
+ gcc/doc/invoke.texi                         |  21 +-
+ gcc/testsuite/c-c++-common/Wbidi-chars-1.c  |  12 +
+ gcc/testsuite/c-c++-common/Wbidi-chars-10.c |  27 ++
+ gcc/testsuite/c-c++-common/Wbidi-chars-11.c |  13 +
+ gcc/testsuite/c-c++-common/Wbidi-chars-12.c |  19 +
+ gcc/testsuite/c-c++-common/Wbidi-chars-13.c |  17 +
+ gcc/testsuite/c-c++-common/Wbidi-chars-14.c |  38 ++
+ gcc/testsuite/c-c++-common/Wbidi-chars-15.c |  59 +++
+ gcc/testsuite/c-c++-common/Wbidi-chars-16.c |  26 ++
+ gcc/testsuite/c-c++-common/Wbidi-chars-17.c |  30 ++
+ gcc/testsuite/c-c++-common/Wbidi-chars-2.c  |   9 +
+ gcc/testsuite/c-c++-common/Wbidi-chars-3.c  |  11 +
+ gcc/testsuite/c-c++-common/Wbidi-chars-4.c  | 188 +++++++++
+ gcc/testsuite/c-c++-common/Wbidi-chars-5.c  | 188 +++++++++
+ gcc/testsuite/c-c++-common/Wbidi-chars-6.c  | 155 ++++++++
+ gcc/testsuite/c-c++-common/Wbidi-chars-7.c  |   9 +
+ gcc/testsuite/c-c++-common/Wbidi-chars-8.c  |  13 +
+ gcc/testsuite/c-c++-common/Wbidi-chars-9.c  |  29 ++
+ libcpp/include/cpplib.h                     |  18 +-
+ libcpp/init.c                               |   1 +
+ libcpp/internal.h                           |   7 +
+ libcpp/lex.c                                | 408 +++++++++++++++++++-
+ 23 files changed, 1315 insertions(+), 7 deletions(-)
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-1.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-10.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-11.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-12.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-13.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-14.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-15.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-16.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-17.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-2.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-3.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-4.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-5.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-6.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-7.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-8.c
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-9.c
+
+diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
+index 8a4cd634f77..3976fc368db 100644
+--- a/gcc/c-family/c.opt
++++ b/gcc/c-family/c.opt
+@@ -370,6 +370,30 @@ Wbad-function-cast
+ C ObjC Var(warn_bad_function_cast) Warning
+ Warn about casting functions to incompatible types.
+ 
++Wbidi-chars
++C ObjC C++ ObjC++ Warning Alias(Wbidi-chars=,any,none)
++;
++
++Wbidi-chars=
++C ObjC C++ ObjC++ RejectNegative Joined Warning CPP(cpp_warn_bidirectional) CppReason(CPP_W_BIDIRECTIONAL) Var(warn_bidirectional) Init(bidirectional_unpaired) Enum(cpp_bidirectional_level)
++-Wbidi-chars=[none|unpaired|any] Warn about UTF-8 bidirectional control characters.
++
++; Required for these enum values.
++SourceInclude
++cpplib.h
++
++Enum
++Name(cpp_bidirectional_level) Type(int) UnknownError(argument %qs to %<-Wbidi-chars%> not recognized)
++
++EnumValue
++Enum(cpp_bidirectional_level) String(none) Value(bidirectional_none)
++
++EnumValue
++Enum(cpp_bidirectional_level) String(unpaired) Value(bidirectional_unpaired)
++
++EnumValue
++Enum(cpp_bidirectional_level) String(any) Value(bidirectional_any)
++
+ Wbool-compare
+ C ObjC C++ ObjC++ Var(warn_bool_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
+ Warn about boolean expression compared with an integer value different from true/false.
+diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
+index 6070288856c..a22758d18ee 100644
+--- a/gcc/doc/invoke.texi
++++ b/gcc/doc/invoke.texi
+@@ -326,7 +326,9 @@ Objective-C and Objective-C++ Dialects}.
+ -Warith-conversion @gol
+ -Warray-bounds  -Warray-bounds=@var{n} @gol
+ -Wno-attributes  -Wattribute-alias=@var{n} -Wno-attribute-alias @gol
+--Wno-attribute-warning  -Wbool-compare  -Wbool-operation @gol
++-Wno-attribute-warning  @gol
++-Wbidi-chars=@r{[}none@r{|}unpaired@r{|}any@r{]} @gol
++-Wbool-compare  -Wbool-operation @gol
+ -Wno-builtin-declaration-mismatch @gol
+ -Wno-builtin-macro-redefined  -Wc90-c99-compat  -Wc99-c11-compat @gol
+ -Wc11-c2x-compat @gol
+@@ -7559,6 +7561,23 @@ Attributes considered include @code{allo
+ This is the default.  You can disable these warnings with either
+ @option{-Wno-attribute-alias} or @option{-Wattribute-alias=0}.
+ 
++@item -Wbidi-chars=@r{[}none@r{|}unpaired@r{|}any@r{]}
++@opindex Wbidi-chars=
++@opindex Wbidi-chars
++@opindex Wno-bidi-chars
++Warn about possibly misleading UTF-8 bidirectional control characters in
++comments, string literals, character constants, and identifiers.  Such
++characters can change left-to-right writing direction into right-to-left
++(and vice versa), which can cause confusion between the logical order and
++visual order.  This may be dangerous; for instance, it may seem that a piece
++of code is not commented out, whereas it in fact is.
++
++There are three levels of warning supported by GCC@.  The default is
++@option{-Wbidi-chars=unpaired}, which warns about improperly terminated
++bidi contexts.  @option{-Wbidi-chars=none} turns the warning off.
++@option{-Wbidi-chars=any} warns about any use of bidirectional control
++characters.
++
+ @item -Wbool-compare
+ @opindex Wno-bool-compare
+ @opindex Wbool-compare
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-10.c b/gcc/testsuite/c-c++-common/Wbidi-chars-10.c
+new file mode 100644
+index 00000000000..34f5ac19271
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-10.c
+@@ -0,0 +1,27 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++/* { dg-options "-Wbidi-chars=unpaired" } */
++/* More nesting testing.  */
++
++/* RLEâ« LRI⦠PDF⬠PDIâ©*/
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int LRE_\u202a_PDF_\u202c;
++int LRE_\u202a_PDF_\u202c_LRE_\u202a_PDF_\u202c;
++int LRE_\u202a_LRI_\u2066_PDF_\u202c_PDI_\u2069;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int RLE_\u202b_RLI_\u2067_PDF_\u202c_PDI_\u2069;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int RLE_\u202b_RLI_\u2067_PDI_\u2069_PDF_\u202c;
++int FSI_\u2068_LRO_\u202d_PDI_\u2069_PDF_\u202c;
++int FSI_\u2068;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int FSI_\u2068_PDI_\u2069;
++int FSI_\u2068_FSI_\u2068_PDI_\u2069;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int RLI_\u2067_RLI_\u2067_RLI_\u2067_RLI_\u2067_RLI_\u2067_RLI_\u2067_RLI_\u2067_PDI_\u2069_PDI_\u2069_PDI_\u2069_PDI_\u2069_PDI_\u2069_PDI_\u2069_PDI_\u2069;
++int RLI_\u2067_RLI_\u2067_RLI_\u2067_RLI_\u2067_RLI_\u2067_RLI_\u2067_RLI_\u2067_PDI_\u2069_PDI_\u2069_PDI_\u2069_PDI_\u2069_PDI_\u2069_PDI_\u2069;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int RLI_\u2067_RLI_\u2067_RLI_\u2067_RLI_\u2067_RLI_\u2067_RLI_\u2067_RLI_\u2067_PDI_\u2069_PDI_\u2069_PDI_\u2069_PDI_\u2069_PDI_\u2069_PDI_\u2069_PDF_\u202c;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int RLI_\u2067_RLI_\u2067_RLI_\u2067_RLI_\u2067_FSI_\u2068_PDI_\u2069_PDI_\u2069_PDI_\u2069_PDI_\u2069;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-11.c b/gcc/testsuite/c-c++-common/Wbidi-chars-11.c
+new file mode 100644
+index 00000000000..270ce2368a9
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-11.c
+@@ -0,0 +1,13 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++/* { dg-options "-Wbidi-chars=unpaired" } */
++/* Test that we warn when mixing UCN and UTF-8.  */
++
++int LRE_âª_PDF_\u202c;
++/* { dg-warning "mismatch" "" { target *-*-* } .-1 } */
++int LRE_\u202a_PDF_â¬_;
++/* { dg-warning "mismatch" "" { target *-*-* } .-1 } */
++const char *s1 = "LRE_âª_PDF_\u202c";
++/* { dg-warning "mismatch" "" { target *-*-* } .-1 } */
++const char *s2 = "LRE_\u202a_PDF_â¬";
++/* { dg-warning "mismatch" "" { target *-*-* } .-1 } */
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-12.c b/gcc/testsuite/c-c++-common/Wbidi-chars-12.c
+new file mode 100644
+index 00000000000..b07eec1da91
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-12.c
+@@ -0,0 +1,19 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile { target { c || c++11 } } } */
++/* { dg-options "-Wbidi-chars=any" } */
++/* Test raw strings.  */
++
++const char *s1 = R"(a b c LRE⪠1 2 3 PDF⬠x y z)";
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++const char *s2 = R"(a b c RLE⫠1 2 3 PDF⬠x y z)";
++/* { dg-warning "U\\+202B" "" { target *-*-* } .-1 } */
++const char *s3 = R"(a b c LRO⭠1 2 3 PDF⬠x y z)";
++/* { dg-warning "U\\+202D" "" { target *-*-* } .-1 } */
++const char *s4 = R"(a b c RLO⮠1 2 3 PDF⬠x y z)";
++/* { dg-warning "U\\+202E" "" { target *-*-* } .-1 } */
++const char *s7 = R"(a b c FSI⨠1 2 3 PDI⩠x y) z";
++/* { dg-warning "U\\+2068" "" { target *-*-* } .-1 } */
++const char *s8 = R"(a b c PDIâ© x y )z";
++/* { dg-warning "U\\+2069" "" { target *-*-* } .-1 } */
++const char *s9 = R"(a b c PDF⬠x y z)";
++/* { dg-warning "U\\+202C" "" { target *-*-* } .-1 } */
+diff -uprN '-x*.orig' '-x*.rej' del/gcc-11.2.0/gcc/testsuite/c-c++-common/Wbidi-chars-13.c gcc-11.2.0/gcc/testsuite/c-c++-common/Wbidi-chars-13.c
+--- del/gcc-11.2.0/gcc/testsuite/c-c++-common/Wbidi-chars-13.c	1969-12-31 16:00:00.000000000 -0800
++++ gcc-11.2.0/gcc/testsuite/c-c++-common/Wbidi-chars-13.c	2021-12-13 23:11:22.328439287 -0800
+@@ -0,0 +1,17 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile { target { c || c++11 } } } */
++/* { dg-options "-Wbidi-chars=unpaired" } */
++/* Test raw strings.  */
++
++const char *s1 = R"(a b c LRE⪠1 2 3)";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++const char *s2 = R"(a b c RLEâ« 1 2 3)";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++const char *s3 = R"(a b c LROâ­ 1 2 3)";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++const char *s4 = R"(a b c FSI⨠1 2 3)";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++const char *s5 = R"(a b c LRI⦠1 2 3)";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++const char *s6 = R"(a b c RLI⧠1 2 3)";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-14.c b/gcc/testsuite/c-c++-common/Wbidi-chars-14.c
+new file mode 100644
+index 00000000000..ba5f75d9553
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-14.c
+@@ -0,0 +1,38 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++/* { dg-options "-Wbidi-chars=unpaired" } */
++/* Test PDI handling, which also pops any subsequent LREs, RLEs, LROs,
++   or RLOs.  */
++
++/* LRI_â¦_LRI_â¦_RLE_â«_RLE_â«_RLE_â«_PDI_â©*/
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++// LRI_â¦_RLE_â«_RLE_â«_RLE_â«_PDI_â©
++// LRI_â¦_RLO_â®_RLE_â«_RLE_â«_PDI_â©
++// LRI_â¦_RLO_â®_RLE_â«_PDI_â©
++// FSI_â¨_RLO_â®_PDI_â©
++// FSI_â¨_FSI_â¨_RLO_â®_PDI_â©
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++
++int LRI_\u2066_LRI_\u2066_LRE_\u202a_LRE_\u202a_LRE_\u202a_PDI_\u2069;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int LRI_\u2066_LRI_\u2066_LRE_\u202a_LRE_\u202a_LRE_\u202a_PDI_\u2069_PDI_\u2069;
++int LRI_\u2066_LRI_\u2066_LRI_\u2066_LRE_\u202a_LRE_\u202a_LRE_\u202a_PDI_\u2069_PDI_\u2069;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int PDI_\u2069;
++int LRI_\u2066_PDI_\u2069;
++int RLI_\u2067_PDI_\u2069;
++int LRE_\u202a_LRI_\u2066_PDI_\u2069;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int LRI_\u2066_LRE_\u202a_PDF_\u202c_PDI_\u2069;
++int LRI_\u2066_LRE_\u202a_LRE_\u202a_PDF_\u202c_PDI_\u2069;
++int RLI_\u2067_LRI_\u2066_LRE_\u202a_LRE_\u202a_PDF_\u202c_PDI_\u2069;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int FSI_\u2068_LRI_\u2066_LRE_\u202a_LRE_\u202a_PDF_\u202c_PDI_\u2069;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int RLO_\u202e_PDI_\u2069;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int RLI_\u2067_PDI_\u2069_RLI_\u2067;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int FSI_\u2068_PDF_\u202c_PDI_\u2069;
++int FSI_\u2068_FSI_\u2068_PDF_\u202c_PDI_\u2069;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-15.c b/gcc/testsuite/c-c++-common/Wbidi-chars-15.c
+new file mode 100644
+index 00000000000..a0ce8ff5e2c
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-15.c
+@@ -0,0 +1,59 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++/* { dg-options "-Wbidi-chars=unpaired" } */
++/* Test unpaired bidi control chars in multiline comments.  */
++
++/*
++ * LRE⪠end
++ */
++/* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
++/*
++ * RLEâ« end
++ */
++/* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
++/*
++ * LROâ­ end
++ */
++/* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
++/*
++ * RLOâ® end
++ */
++/* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
++/*
++ * LRI⦠end
++ */
++/* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
++/*
++ * RLI⧠end
++ */
++/* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
++/*
++ * FSI⨠end
++ */
++/* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
++/* LREâª
++   PDF⬠*/
++/* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
++/* FSIâ¨
++   PDIâ© */
++/* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
++
++/* LRE<âª>
++ *
++ */
++/* { dg-warning "unpaired" "" { target *-*-* } .-3 } */
++
++/*
++ * LRE<âª>
++ */
++/* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
++
++/*
++ *
++ * LRE<âª> */
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++
++/* RLI<â§> */ /* PDI<â©> */
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* LRE<âª> */ /* PDF<â¬> */
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-16.c b/gcc/testsuite/c-c++-common/Wbidi-chars-16.c
+new file mode 100644
+index 00000000000..baa0159861c
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-16.c
+@@ -0,0 +1,26 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++/* { dg-options "-Wbidi-chars=any" } */
++/* Test LTR/RTL chars.  */
++
++/* LTR<â> */
++/* { dg-warning "U\\+200E" "" { target *-*-* } .-1 } */
++// LTR<â>
++/* { dg-warning "U\\+200E" "" { target *-*-* } .-1 } */
++/* RTL<â> */
++/* { dg-warning "U\\+200F" "" { target *-*-* } .-1 } */
++// RTL<â>
++/* { dg-warning "U\\+200F" "" { target *-*-* } .-1 } */
++
++const char *s1 = "LTR<â>";
++/* { dg-warning "U\\+200E" "" { target *-*-* } .-1 } */
++const char *s2 = "LTR\u200e";
++/* { dg-warning "U\\+200E" "" { target *-*-* } .-1 } */
++const char *s3 = "LTR\u200E";
++/* { dg-warning "U\\+200E" "" { target *-*-* } .-1 } */
++const char *s4 = "RTL<â>";
++/* { dg-warning "U\\+200F" "" { target *-*-* } .-1 } */
++const char *s5 = "RTL\u200f";
++/* { dg-warning "U\\+200F" "" { target *-*-* } .-1 } */
++const char *s6 = "RTL\u200F";
++/* { dg-warning "U\\+200F" "" { target *-*-* } .-1 } */
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-17.c b/gcc/testsuite/c-c++-common/Wbidi-chars-17.c
+new file mode 100644
+index 00000000000..07cb4321f96
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-17.c
+@@ -0,0 +1,30 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++/* { dg-options "-Wbidi-chars=unpaired" } */
++/* Test LTR/RTL chars.  */
++
++/* LTR<â> */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++// LTR<â>
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++/* RTL<â> */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++// RTL<â>
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int ltr_\u200e;
++/* { dg-error "universal character " "" { target *-*-* } .-1 } */
++int rtl_\u200f;
++/* { dg-error "universal character " "" { target *-*-* } .-1 } */
++
++const char *s1 = "LTR<â>";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++const char *s2 = "LTR\u200e";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++const char *s3 = "LTR\u200E";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++const char *s4 = "RTL<â>";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++const char *s5 = "RTL\u200f";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++const char *s6 = "RTL\u200F";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-1.c b/gcc/testsuite/c-c++-common/Wbidi-chars-1.c
+new file mode 100644
+index 00000000000..2340374f276
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-1.c
+@@ -0,0 +1,12 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++
++int main() {
++    int isAdmin = 0;
++    /*â® } â¦if (isAdmin)⩠⦠begin admins only */
++/* { dg-warning "bidirectional" "" { target *-*-* } .-1 } */
++        __builtin_printf("You are an admin.\n");
++    /* end admins only â® { â¦*/
++/* { dg-warning "bidirectional" "" { target *-*-* } .-1 } */
++    return 0;
++}
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-2.c b/gcc/testsuite/c-c++-common/Wbidi-chars-2.c
+new file mode 100644
+index 00000000000..2340374f276
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-2.c
+@@ -0,0 +1,9 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++
++int main() {
++    /* Say hello; newlineâ§/*/ return 0 ;
++/* { dg-warning "bidirectional" "" { target *-*-* } .-1 } */
++    __builtin_printf("Hello world.\n");
++    return 0;
++}
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-3.c b/gcc/testsuite/c-c++-common/Wbidi-chars-3.c
+new file mode 100644
+index 00000000000..9dc7edb6e64
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-3.c
+@@ -0,0 +1,11 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++
++int main() {
++    const char* access_level = "user";
++    if (__builtin_strcmp(access_level, "userâ® â¦// Check if adminâ© â¦")) {
++/* { dg-warning "bidirectional" "" { target *-*-* } .-1 } */
++        __builtin_printf("You are an admin.\n");
++    }
++    return 0;
++}
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-4.c b/gcc/testsuite/c-c++-common/Wbidi-chars-4.c
+new file mode 100644
+index 00000000000..639e5c62e88
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-4.c
+@@ -0,0 +1,188 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++/* { dg-options "-Wbidi-chars=any -Wno-multichar -Wno-overflow" } */
++/* Test all bidi chars in various contexts (identifiers, comments,
++   string literals, character constants), both UCN and UTF-8.  The bidi
++   chars here are properly terminated, except for the character constants.  */
++
++/* a b c LRE⪠1 2 3 PDF⬠x y z */
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++/* a b c RLE⫠1 2 3 PDF⬠x y z */
++/* { dg-warning "U\\+202B" "" { target *-*-* } .-1 } */
++/* a b c LRO⭠1 2 3 PDF⬠x y z */
++/* { dg-warning "U\\+202D" "" { target *-*-* } .-1 } */
++/* a b c RLO⮠1 2 3 PDF⬠x y z */
++/* { dg-warning "U\\+202E" "" { target *-*-* } .-1 } */
++/* a b c LRI⦠1 2 3 PDI⩠x y z */
++/* { dg-warning "U\\+2066" "" { target *-*-* } .-1 } */
++/* a b c RLI⧠1 2 3 PDI⩠x y */
++/* { dg-warning "U\\+2067" "" { target *-*-* } .-1 } */
++/* a b c FSI⨠1 2 3 PDI⩠x y z */
++/* { dg-warning "U\\+2068" "" { target *-*-* } .-1 } */
++
++/* Same but C++ comments instead.  */
++// a b c LRE⪠1 2 3 PDF⬠x y z
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++// a b c RLE⫠1 2 3 PDF⬠x y z
++/* { dg-warning "U\\+202B" "" { target *-*-* } .-1 } */
++// a b c LRO⭠1 2 3 PDF⬠x y z
++/* { dg-warning "U\\+202D" "" { target *-*-* } .-1 } */
++// a b c RLO⮠1 2 3 PDF⬠x y z
++/* { dg-warning "U\\+202E" "" { target *-*-* } .-1 } */
++// a b c LRI⦠1 2 3 PDI⩠x y z
++/* { dg-warning "U\\+2066" "" { target *-*-* } .-1 } */
++// a b c RLI⧠1 2 3 PDI⩠x y
++/* { dg-warning "U\\+2067" "" { target *-*-* } .-1 } */
++// a b c FSI⨠1 2 3 PDI⩠x y z
++/* { dg-warning "U\\+2068" "" { target *-*-* } .-1 } */
++
++/* Here we're closing an unopened context, warn when =any.  */
++/* a b c PDIâ© x y z */
++/* { dg-warning "U\\+2069" "" { target *-*-* } .-1 } */
++/* a b c PDF⬠x y z */
++/* { dg-warning "U\\+202C" "" { target *-*-* } .-1 } */
++// a b c PDIâ© x y z
++/* { dg-warning "U\\+2069" "" { target *-*-* } .-1 } */
++// a b c PDF⬠x y z
++/* { dg-warning "U\\+202C" "" { target *-*-* } .-1 } */
++
++/* Multiline comments.  */
++/* a b c PDIâ© x y z
++   */
++/* { dg-warning "U\\+2069" "" { target *-*-* } .-2 } */
++/* a b c PDF⬠x y z
++   */
++/* { dg-warning "U\\+202C" "" { target *-*-* } .-2 } */
++/* first
++   a b c PDIâ© x y z
++   */
++/* { dg-warning "U\\+2069" "" { target *-*-* } .-2 } */
++/* first
++   a b c PDF⬠x y z
++   */
++/* { dg-warning "U\\+202C" "" { target *-*-* } .-2 } */
++/* first
++   a b c PDIâ© x y z */
++/* { dg-warning "U\\+2069" "" { target *-*-* } .-1 } */
++/* first
++   a b c PDF⬠x y z */
++/* { dg-warning "U\\+202C" "" { target *-*-* } .-1 } */
++
++void
++g1 ()
++{
++  const char *s1 = "a b c LRE⪠1 2 3 PDF⬠x y z";
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++  const char *s2 = "a b c RLE⫠1 2 3 PDF⬠x y z";
++/* { dg-warning "U\\+202B" "" { target *-*-* } .-1 } */
++  const char *s3 = "a b c LRO⭠1 2 3 PDF⬠x y z";
++/* { dg-warning "U\\+202D" "" { target *-*-* } .-1 } */
++  const char *s4 = "a b c RLO⮠1 2 3 PDF⬠x y z";
++/* { dg-warning "U\\+202E" "" { target *-*-* } .-1 } */
++  const char *s5 = "a b c LRI⦠1 2 3 PDI⩠x y z";
++/* { dg-warning "U\\+2066" "" { target *-*-* } .-1 } */
++  const char *s6 = "a b c RLI⧠1 2 3 PDI⩠x y z";
++/* { dg-warning "U\\+2067" "" { target *-*-* } .-1 } */
++  const char *s7 = "a b c FSI⨠1 2 3 PDI⩠x y z";
++/* { dg-warning "U\\+2068" "" { target *-*-* } .-1 } */
++  const char *s8 = "a b c PDIâ© x y z";
++/* { dg-warning "U\\+2069" "" { target *-*-* } .-1 } */
++  const char *s9 = "a b c PDF⬠x y z";
++/* { dg-warning "U\\+202C" "" { target *-*-* } .-1 } */
++
++  const char *s10 = "a b c LRE\u202a 1 2 3 PDF\u202c x y z";
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++  const char *s11 = "a b c LRE\u202A 1 2 3 PDF\u202c x y z";
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++  const char *s12 = "a b c RLE\u202b 1 2 3 PDF\u202c x y z";
++/* { dg-warning "U\\+202B" "" { target *-*-* } .-1 } */
++  const char *s13 = "a b c RLE\u202B 1 2 3 PDF\u202c x y z";
++/* { dg-warning "U\\+202B" "" { target *-*-* } .-1 } */
++  const char *s14 = "a b c LRO\u202d 1 2 3 PDF\u202c x y z";
++/* { dg-warning "U\\+202D" "" { target *-*-* } .-1 } */
++  const char *s15 = "a b c LRO\u202D 1 2 3 PDF\u202c x y z";
++/* { dg-warning "U\\+202D" "" { target *-*-* } .-1 } */
++  const char *s16 = "a b c RLO\u202e 1 2 3 PDF\u202c x y z";
++/* { dg-warning "U\\+202E" "" { target *-*-* } .-1 } */
++  const char *s17 = "a b c RLO\u202E 1 2 3 PDF\u202c x y z";
++/* { dg-warning "U\\+202E" "" { target *-*-* } .-1 } */
++  const char *s18 = "a b c LRI\u2066 1 2 3 PDI\u2069 x y z";
++/* { dg-warning "U\\+2066" "" { target *-*-* } .-1 } */
++  const char *s19 = "a b c RLI\u2067 1 2 3 PDI\u2069 x y z";
++/* { dg-warning "U\\+2067" "" { target *-*-* } .-1 } */
++  const char *s20 = "a b c FSI\u2068 1 2 3 PDI\u2069 x y z";
++/* { dg-warning "U\\+2068" "" { target *-*-* } .-1 } */
++}
++
++void
++g2 ()
++{
++  const char c1 = '\u202a';
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++  const char c2 = '\u202A';
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++  const char c3 = '\u202b';
++/* { dg-warning "U\\+202B" "" { target *-*-* } .-1 } */
++  const char c4 = '\u202B';
++/* { dg-warning "U\\+202B" "" { target *-*-* } .-1 } */
++  const char c5 = '\u202d';
++/* { dg-warning "U\\+202D" "" { target *-*-* } .-1 } */
++  const char c6 = '\u202D';
++/* { dg-warning "U\\+202D" "" { target *-*-* } .-1 } */
++  const char c7 = '\u202e';
++/* { dg-warning "U\\+202E" "" { target *-*-* } .-1 } */
++  const char c8 = '\u202E';
++/* { dg-warning "U\\+202E" "" { target *-*-* } .-1 } */
++  const char c9 = '\u2066';
++/* { dg-warning "U\\+2066" "" { target *-*-* } .-1 } */
++  const char c10 = '\u2067';
++/* { dg-warning "U\\+2067" "" { target *-*-* } .-1 } */
++  const char c11 = '\u2068';
++/* { dg-warning "U\\+2068" "" { target *-*-* } .-1 } */
++}
++
++int aâªbâ¬c;
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++int aâ«bâ¬c;
++/* { dg-warning "U\\+202B" "" { target *-*-* } .-1 } */
++int aâ­bâ¬c;
++/* { dg-warning "U\\+202D" "" { target *-*-* } .-1 } */
++int aâ®bâ¬c;
++/* { dg-warning "U\\+202E" "" { target *-*-* } .-1 } */
++int aâ¦bâ©c;
++/* { dg-warning "U\\+2066" "" { target *-*-* } .-1 } */
++int aâ§bâ©c;
++/* { dg-warning "U\\+2067" "" { target *-*-* } .-1 } */
++int aâ¨bâ©c;
++/* { dg-warning "U\\+2068" "" { target *-*-* } .-1 } */
++int Aâ¬X;
++/* { dg-warning "U\\+202C" "" { target *-*-* } .-1 } */
++int A\u202cY;
++/* { dg-warning "U\\+202C" "" { target *-*-* } .-1 } */
++int A\u202CY2;
++/* { dg-warning "U\\+202C" "" { target *-*-* } .-1 } */
++
++int d\u202ae\u202cf;
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++int d\u202Ae\u202cf2;
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++int d\u202be\u202cf;
++/* { dg-warning "U\\+202B" "" { target *-*-* } .-1 } */
++int d\u202Be\u202cf2;
++/* { dg-warning "U\\+202B" "" { target *-*-* } .-1 } */
++int d\u202de\u202cf;
++/* { dg-warning "U\\+202D" "" { target *-*-* } .-1 } */
++int d\u202De\u202cf2;
++/* { dg-warning "U\\+202D" "" { target *-*-* } .-1 } */
++int d\u202ee\u202cf;
++/* { dg-warning "U\\+202E" "" { target *-*-* } .-1 } */
++int d\u202Ee\u202cf2;
++/* { dg-warning "U\\+202E" "" { target *-*-* } .-1 } */
++int d\u2066e\u2069f;
++/* { dg-warning "U\\+2066" "" { target *-*-* } .-1 } */
++int d\u2067e\u2069f;
++/* { dg-warning "U\\+2067" "" { target *-*-* } .-1 } */
++int d\u2068e\u2069f;
++/* { dg-warning "U\\+2068" "" { target *-*-* } .-1 } */
++int X\u2069;
++/* { dg-warning "U\\+2069" "" { target *-*-* } .-1 } */
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-5.c b/gcc/testsuite/c-c++-common/Wbidi-chars-5.c
+new file mode 100644
+index 00000000000..68cb053144b
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-5.c
+@@ -0,0 +1,188 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++/* { dg-options "-Wbidi-chars=unpaired -Wno-multichar -Wno-overflow" } */
++/* Test all bidi chars in various contexts (identifiers, comments,
++   string literals, character constants), both UCN and UTF-8.  The bidi
++   chars here are properly terminated, except for the character constants.  */
++
++/* a b c LRE⪠1 2 3 PDF⬠x y z */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++/* a b c RLE⫠1 2 3 PDF⬠x y z */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++/* a b c LRO⭠1 2 3 PDF⬠x y z */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++/* a b c RLO⮠1 2 3 PDF⬠x y z */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++/* a b c LRI⦠1 2 3 PDI⩠x y z */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++/* a b c RLI⧠1 2 3 PDI⩠x y */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++/* a b c FSI⨠1 2 3 PDI⩠x y z */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++
++/* Same but C++ comments instead.  */
++// a b c LRE⪠1 2 3 PDF⬠x y z
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++// a b c RLE⫠1 2 3 PDF⬠x y z
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++// a b c LRO⭠1 2 3 PDF⬠x y z
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++// a b c RLO⮠1 2 3 PDF⬠x y z
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++// a b c LRI⦠1 2 3 PDI⩠x y z
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++// a b c RLI⧠1 2 3 PDI⩠x y
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++// a b c FSI⨠1 2 3 PDI⩠x y z
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++
++/* Here we're closing an unopened context, warn when =any.  */
++/* a b c PDIâ© x y z */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++/* a b c PDF⬠x y z */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++// a b c PDIâ© x y z
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++// a b c PDF⬠x y z
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++
++/* Multiline comments.  */
++/* a b c PDIâ© x y z
++   */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-2 } */
++/* a b c PDF⬠x y z
++   */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-2 } */
++/* first
++   a b c PDIâ© x y z
++   */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-2 } */
++/* first
++   a b c PDF⬠x y z
++   */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-2 } */
++/* first
++   a b c PDIâ© x y z */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++/* first
++   a b c PDF⬠x y z */
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++
++void
++g1 ()
++{
++  const char *s1 = "a b c LRE⪠1 2 3 PDF⬠x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s2 = "a b c RLE⫠1 2 3 PDF⬠x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s3 = "a b c LRO⭠1 2 3 PDF⬠x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s4 = "a b c RLO⮠1 2 3 PDF⬠x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s5 = "a b c LRI⦠1 2 3 PDI⩠x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s6 = "a b c RLI⧠1 2 3 PDI⩠x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s7 = "a b c FSI⨠1 2 3 PDI⩠x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s8 = "a b c PDIâ© x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s9 = "a b c PDF⬠x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++
++  const char *s10 = "a b c LRE\u202a 1 2 3 PDF\u202c x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s11 = "a b c LRE\u202A 1 2 3 PDF\u202c x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s12 = "a b c RLE\u202b 1 2 3 PDF\u202c x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s13 = "a b c RLE\u202B 1 2 3 PDF\u202c x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s14 = "a b c LRO\u202d 1 2 3 PDF\u202c x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s15 = "a b c LRO\u202D 1 2 3 PDF\u202c x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s16 = "a b c RLO\u202e 1 2 3 PDF\u202c x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s17 = "a b c RLO\u202E 1 2 3 PDF\u202c x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s18 = "a b c LRI\u2066 1 2 3 PDI\u2069 x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s19 = "a b c RLI\u2067 1 2 3 PDI\u2069 x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++  const char *s20 = "a b c FSI\u2068 1 2 3 PDI\u2069 x y z";
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++}
++
++void
++g2 ()
++{
++  const char c1 = '\u202a';
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char c2 = '\u202A';
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char c3 = '\u202b';
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char c4 = '\u202B';
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char c5 = '\u202d';
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char c6 = '\u202D';
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char c7 = '\u202e';
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char c8 = '\u202E';
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char c9 = '\u2066';
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char c10 = '\u2067';
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char c11 = '\u2068';
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++}
++
++int aâªbâ¬c;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int aâ«bâ¬c;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int aâ­bâ¬c;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int aâ®bâ¬c;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int aâ¦bâ©c;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int aâ§bâ©c;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int aâ¨bâ©c;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int Aâ¬X;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int A\u202cY;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int A\u202CY2;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++
++int d\u202ae\u202cf;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int d\u202Ae\u202cf2;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int d\u202be\u202cf;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int d\u202Be\u202cf2;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int d\u202de\u202cf;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int d\u202De\u202cf2;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int d\u202ee\u202cf;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int d\u202Ee\u202cf2;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int d\u2066e\u2069f;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int d\u2067e\u2069f;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int d\u2068e\u2069f;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
++int X\u2069;
++/* { dg-bogus "unpaired" "" { target *-*-* } .-1 } */
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-6.c b/gcc/testsuite/c-c++-common/Wbidi-chars-6.c
+new file mode 100644
+index 00000000000..0ce6fff2dee
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-6.c
+@@ -0,0 +1,155 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++/* { dg-options "-Wbidi-chars=unpaired" } */
++/* Test nesting of bidi chars in various contexts.  */
++
++/* Terminated by the wrong char:  */
++/* a b c LRE⪠1 2 3 PDI⩠x y z */
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* a b c RLEâ« 1 2 3 PDIâ© x y  z*/
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* a b c LROâ­ 1 2 3 PDIâ© x y z */
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* a b c RLOâ® 1 2 3 PDIâ© x y z */
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* a b c LRI⦠1 2 3 PDF⬠x y z */
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* a b c RLI⧠1 2 3 PDF⬠x y z */
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* a b c FSI⨠1 2 3 PDF⬠x y  z*/
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++
++/* LRE⪠PDF⬠*/
++/* LRE⪠LRE⪠PDF⬠PDF⬠*/
++/* PDF⬠LRE⪠PDF⬠*/
++/* LRE⪠PDF⬠LRE⪠PDF⬠*/
++/* LRE⪠LRE⪠PDF⬠*/
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* PDF⬠LRE⪠*/
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++
++// a b c LRE⪠1 2 3 PDI⩠x y z
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++// a b c RLEâ« 1 2 3 PDIâ© x y  z*/
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++// a b c LROâ­ 1 2 3 PDIâ© x y z 
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++// a b c RLOâ® 1 2 3 PDIâ© x y z 
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++// a b c LRI⦠1 2 3 PDF⬠x y z 
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++// a b c RLI⧠1 2 3 PDF⬠x y z 
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++// a b c FSI⨠1 2 3 PDF⬠x y  z
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++
++// LRE⪠PDF⬠
++// LRE⪠LRE⪠PDF⬠PDFâ¬
++// PDF⬠LRE⪠PDFâ¬
++// LRE⪠PDF⬠LRE⪠PDFâ¬
++// LRE⪠LRE⪠PDFâ¬
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++// PDF⬠LREâª
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++
++void
++g1 ()
++{
++  const char *s1 = "a b c LRE⪠1 2 3 PDI⩠x y z";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s2 = "a b c LRE\u202a 1 2 3 PDI\u2069 x y z";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s3 = "a b c RLEâ« 1 2 3 PDIâ© x y ";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s4 = "a b c RLE\u202b 1 2 3 PDI\u2069 x y z";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s5 = "a b c LROâ­ 1 2 3 PDIâ© x y z";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s6 = "a b c LRO\u202d 1 2 3 PDI\u2069 x y z";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s7 = "a b c RLOâ® 1 2 3 PDIâ© x y z";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s8 = "a b c RLO\u202e 1 2 3 PDI\u2069 x y z";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s9 = "a b c LRI⦠1 2 3 PDF⬠x y z";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s10 = "a b c LRI\u2066 1 2 3 PDF\u202c x y z";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s11 = "a b c RLI⧠1 2 3 PDF⬠x y z\
++    ";
++/* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
++  const char *s12 = "a b c RLI\u2067 1 2 3 PDF\u202c x y z";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s13 = "a b c FSI⨠1 2 3 PDF⬠x y z";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s14 = "a b c FSI\u2068 1 2 3 PDF\u202c x y z";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s15 = "PDF⬠LREâª";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s16 = "PDF\u202c LRE\u202a";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s17 = "LRE⪠PDFâ¬";
++  const char *s18 = "LRE\u202a PDF\u202c";
++  const char *s19 = "LRE⪠LRE⪠PDF⬠PDFâ¬";
++  const char *s20 = "LRE\u202a LRE\u202a PDF\u202c PDF\u202c";
++  const char *s21 = "PDF⬠LRE⪠PDFâ¬";
++  const char *s22 = "PDF\u202c LRE\u202a PDF\u202c";
++  const char *s23 = "LRE⪠LRE⪠PDFâ¬";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s24 = "LRE\u202a LRE\u202a PDF\u202c";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s25 = "PDF⬠LREâª";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s26 = "PDF\u202c LRE\u202a";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s27 = "PDF⬠LRE\u202a";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++  const char *s28 = "PDF\u202c LREâª";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++}
++
++int aLREâªbPDIâ©;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int A\u202aB\u2069C;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int aRLEâ«bPDIâ©;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int a\u202bB\u2069c;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int aLROâ­bPDIâ©;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int a\u202db\u2069c2;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int aRLOâ®bPDIâ©;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int a\u202eb\u2069;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int aLRIâ¦bPDFâ¬;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int a\u2066b\u202c;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int aRLIâ§bPDFâ¬c
++;
++/* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
++int a\u2067b\u202c;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int aFSIâ¨bPDFâ¬;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int a\u2068b\u202c;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int aFSIâ¨bPD\u202C;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int aFSI\u2068bPDFâ¬_;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int aLREâªbPDFâ¬b; 
++int A\u202aB\u202c;
++int a_LREâª_LREâª_b_PDFâ¬_PDFâ¬;
++int A\u202aA\u202aB\u202cB\u202c;
++int aPDFâ¬bLREadPDFâ¬;
++int a_\u202C_\u202a_\u202c;
++int a_LREâª_b_PDFâ¬_c_LREâª_PDFâ¬;
++int a_\u202a_\u202c_\u202a_\u202c_;
++int a_LREâª_b_PDFâ¬_c_LREâª;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int a_\u202a_\u202c_\u202a_;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-7.c b/gcc/testsuite/c-c++-common/Wbidi-chars-7.c
+new file mode 100644
+index 00000000000..d012d420ec0
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-7.c
+@@ -0,0 +1,9 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++/* { dg-options "-Wbidi-chars=any" } */
++/* Test we ignore UCNs in comments.  */
++
++// a b c \u202a 1 2 3
++// a b c \u202A 1 2 3
++/* a b c \u202a 1 2 3 */
++/* a b c \u202A 1 2 3 */
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-8.c b/gcc/testsuite/c-c++-common/Wbidi-chars-8.c
+new file mode 100644
+index 00000000000..4f54c5092ec
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-8.c
+@@ -0,0 +1,13 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++/* { dg-options "-Wbidi-chars=any" } */
++/* Test \u vs \U.  */
++
++int a_\u202A;
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++int a_\u202a_2;
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++int a_\U0000202A_3;
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
++int a_\U0000202a_4;
++/* { dg-warning "U\\+202A" "" { target *-*-* } .-1 } */
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-9.c b/gcc/testsuite/c-c++-common/Wbidi-chars-9.c
+new file mode 100644
+index 00000000000..e2af1b1ca97
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-9.c
+@@ -0,0 +1,29 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++/* { dg-options "-Wbidi-chars=unpaired" } */
++/* Test that we properly separate bidi contexts (comment/identifier/character
++   constant/string literal).  */
++
++/* LRE ->âª<- */ int pdf_\u202c_1;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* RLE ->â«<- */ int pdf_\u202c_2;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* LRO ->â­<- */ int pdf_\u202c_3;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* RLO ->â®<- */ int pdf_\u202c_4;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* LRI ->â¦<-*/ int pdi_\u2069_1;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* RLI ->â§<- */ int pdi_\u2069_12;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* FSI ->â¨<- */ int pdi_\u2069_3;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++
++const char *s1 = "LRE\u202a"; /* PDF ->â¬<- */
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++/* LRE ->âª<- */ const char *s2 = "PDF\u202c";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++const char *s3 = "LRE\u202a"; int pdf_\u202c_5;
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
++int lre_\u202a; const char *s4 = "PDF\u202c";
++/* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
+diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h
+index 176f8c5bbce..112b9c24751 100644
+--- a/libcpp/include/cpplib.h
++++ b/libcpp/include/cpplib.h
+@@ -318,6 +318,17 @@ enum cpp_main_search
+   CMS_system,  /* Search the system INCLUDE path.  */
+ };
+ 
++/* The possible bidirectional control characters checking levels, from least
++   restrictive to most.  */
++enum cpp_bidirectional_level {
++  /* No checking.  */
++  bidirectional_none,
++  /* Only detect unpaired uses of bidirectional control characters.  */
++  bidirectional_unpaired,
++  /* Detect any use of bidirectional control characters.  */
++  bidirectional_any
++};
++
+ /* This structure is nested inside struct cpp_reader, and
+    carries all the options visible to the command line.  */
+ struct cpp_options
+@@ -531,6 +542,10 @@ struct cpp_options
+   /* True if warn about differences between C++98 and C++11.  */
+   bool cpp_warn_cxx11_compat;
+ 
++  /* Nonzero if bidirectional control characters checking is on.  See enum
++     cpp_bidirectional_level.  */
++  unsigned char cpp_warn_bidirectional;
++
+   /* Dependency generation.  */
+   struct
+   {
+@@ -635,7 +650,8 @@ enum cpp_warning_reason {
+   CPP_W_C90_C99_COMPAT,
+   CPP_W_C11_C2X_COMPAT,
+   CPP_W_CXX11_COMPAT,
+-  CPP_W_EXPANSION_TO_DEFINED
++  CPP_W_EXPANSION_TO_DEFINED,
++  CPP_W_BIDIRECTIONAL
+ };
+ 
+ /* Callback for header lookup for HEADER, which is the name of a
+diff --git a/libcpp/init.c b/libcpp/init.c
+index 5a424e23553..f9a8f5f088f 100644
+--- a/libcpp/init.c
++++ b/libcpp/init.c
+@@ -219,6 +219,7 @@ cpp_create_reader (enum c_lang lang, cpp
+       = ENABLE_CANONICAL_SYSTEM_HEADERS;
+   CPP_OPTION (pfile, ext_numeric_literals) = 1;
+   CPP_OPTION (pfile, warn_date_time) = 0;
++  CPP_OPTION (pfile, cpp_warn_bidirectional) = bidirectional_unpaired;
+ 
+   /* Default CPP arithmetic to something sensible for the host for the
+      benefit of dumb users like fix-header.  */
+diff --git a/libcpp/internal.h b/libcpp/internal.h
+index 8577cab6c83..0ce0246c5a2 100644
+--- a/libcpp/internal.h
++++ b/libcpp/internal.h
+@@ -597,6 +597,13 @@ struct cpp_reader
+   /* Location identifying the main source file -- intended to be line
+      zero of said file.  */
+   location_t main_loc;
++
++  /* Returns true iff we should warn about UTF-8 bidirectional control
++     characters.  */
++  bool warn_bidi_p () const
++  {
++    return CPP_OPTION (this, cpp_warn_bidirectional) != bidirectional_none;
++  }
+ };
+ 
+ /* Character classes.  Based on the more primitive macros in safe-ctype.h.
+diff --git a/libcpp/lex.c b/libcpp/lex.c
+index fa2253d41c3..6a4fbce6030 100644
+--- a/libcpp/lex.c
++++ b/libcpp/lex.c
+@@ -1164,6 +1164,324 @@ _cpp_process_line_notes (cpp_reader *pfi
+     }
+ }
+ 
++namespace bidi {
++  enum class kind {
++    NONE, LRE, RLE, LRO, RLO, LRI, RLI, FSI, PDF, PDI, LTR, RTL
++  };
++
++  /* All the UTF-8 encodings of bidi characters start with E2.  */
++  constexpr uchar utf8_start = 0xe2;
++
++  /* A vector holding currently open bidi contexts.  We use a char for
++     each context, its LSB is 1 if it represents a PDF context, 0 if it
++     represents a PDI context.  The next bit is 1 if this context was open
++     by a bidi character written as a UCN, and 0 when it was UTF-8.  */
++  semi_embedded_vec <unsigned char, 16> vec;
++
++  /* Close the whole comment/identifier/string literal/character constant
++     context.  */
++  void on_close ()
++  {
++    vec.truncate (0);
++  }
++
++  /* Pop the last element in the vector.  */
++  void pop ()
++  {
++    unsigned int len = vec.count ();
++    gcc_checking_assert (len > 0);
++    vec.truncate (len - 1);
++  }
++
++  /* Return the context of the Ith element.  */
++  kind ctx_at (unsigned int i)
++  {
++    return (vec[i] & 1) ? kind::PDF : kind::PDI;
++  }
++
++  /* Return which context is currently opened.  */
++  kind current_ctx ()
++  {
++    unsigned int len = vec.count ();
++    if (len == 0)
++      return kind::NONE;
++    return ctx_at (len - 1);
++  }
++
++  /* Return true if the current context comes from a UCN origin, that is,
++     the bidi char which started this bidi context was written as a UCN.  */
++  bool current_ctx_ucn_p ()
++  {
++    unsigned int len = vec.count ();
++    gcc_checking_assert (len > 0);
++    return (vec[len - 1] >> 1) & 1;
++  }
++
++  /* We've read a bidi char, update the current vector as necessary.  */
++  void on_char (kind k, bool ucn_p)
++  {
++    switch (k)
++      {
++      case kind::LRE:
++      case kind::RLE:
++      case kind::LRO:
++      case kind::RLO:
++	vec.push (ucn_p ? 3u : 1u);
++	break;
++      case kind::LRI:
++      case kind::RLI:
++      case kind::FSI:
++	vec.push (ucn_p ? 2u : 0u);
++	break;
++      /* PDF terminates the scope of the last LRE, RLE, LRO, or RLO
++	 whose scope has not yet been terminated.  */
++      case kind::PDF:
++	if (current_ctx () == kind::PDF)
++	  pop ();
++	break;
++      /* PDI terminates the scope of the last LRI, RLI, or FSI whose
++	 scope has not yet been terminated, as well as the scopes of
++	 any subsequent LREs, RLEs, LROs, or RLOs whose scopes have not
++	 yet been terminated.  */
++      case kind::PDI:
++	for (int i = vec.count () - 1; i >= 0; --i)
++	  if (ctx_at (i) == kind::PDI)
++	    {
++	      vec.truncate (i);
++	      break;
++	    }
++	break;
++      case kind::LTR:
++      case kind::RTL:
++	/* These aren't popped by a PDF/PDI.  */
++	break;
++      [[likely]] case kind::NONE:
++	break;
++      default:
++	abort ();
++      }
++  }
++
++  /* Return a descriptive string for K.  */
++  const char *to_str (kind k)
++  {
++    switch (k)
++      {
++      case kind::LRE:
++	return "U+202A (LEFT-TO-RIGHT EMBEDDING)";
++      case kind::RLE:
++	return "U+202B (RIGHT-TO-LEFT EMBEDDING)";
++      case kind::LRO:
++	return "U+202D (LEFT-TO-RIGHT OVERRIDE)";
++      case kind::RLO:
++	return "U+202E (RIGHT-TO-LEFT OVERRIDE)";
++      case kind::LRI:
++	return "U+2066 (LEFT-TO-RIGHT ISOLATE)";
++      case kind::RLI:
++	return "U+2067 (RIGHT-TO-LEFT ISOLATE)";
++      case kind::FSI:
++	return "U+2068 (FIRST STRONG ISOLATE)";
++      case kind::PDF:
++	return "U+202C (POP DIRECTIONAL FORMATTING)";
++      case kind::PDI:
++	return "U+2069 (POP DIRECTIONAL ISOLATE)";
++      case kind::LTR:
++	return "U+200E (LEFT-TO-RIGHT MARK)";
++      case kind::RTL:
++	return "U+200F (RIGHT-TO-LEFT MARK)";
++      default:
++	abort ();
++      }
++  }
++}
++
++/* Parse a sequence of 3 bytes starting with P and return its bidi code.  */
++
++static bidi::kind
++get_bidi_utf8 (const unsigned char *const p)
++{
++  gcc_checking_assert (p[0] == bidi::utf8_start);
++
++  if (p[1] == 0x80)
++    switch (p[2])
++      {
++      case 0xaa:
++	return bidi::kind::LRE;
++      case 0xab:
++	return bidi::kind::RLE;
++      case 0xac:
++	return bidi::kind::PDF;
++      case 0xad:
++	return bidi::kind::LRO;
++      case 0xae:
++	return bidi::kind::RLO;
++      case 0x8e:
++	return bidi::kind::LTR;
++      case 0x8f:
++	return bidi::kind::RTL;
++      default:
++	break;
++      }
++  else if (p[1] == 0x81)
++    switch (p[2])
++      {
++      case 0xa6:
++	return bidi::kind::LRI;
++      case 0xa7:
++	return bidi::kind::RLI;
++      case 0xa8:
++	return bidi::kind::FSI;
++      case 0xa9:
++	return bidi::kind::PDI;
++      default:
++	break;
++      }
++
++  return bidi::kind::NONE;
++}
++
++/* Parse a UCN where P points just past \u or \U and return its bidi code.  */
++
++static bidi::kind
++get_bidi_ucn (const unsigned char *p, bool is_U)
++{
++  /* 6.4.3 Universal Character Names
++      \u hex-quad
++      \U hex-quad hex-quad
++     where \unnnn means \U0000nnnn.  */
++
++  if (is_U)
++    {
++      if (p[0] != '0' || p[1] != '0' || p[2] != '0' || p[3] != '0')
++	return bidi::kind::NONE;
++      /* Skip 4B so we can treat \u and \U the same below.  */
++      p += 4;
++    }
++
++  /* All code points we are looking for start with 20xx.  */
++  if (p[0] != '2' || p[1] != '0')
++    return bidi::kind::NONE;
++  else if (p[2] == '2')
++    switch (p[3])
++      {
++      case 'a':
++      case 'A':
++	return bidi::kind::LRE;
++      case 'b':
++      case 'B':
++	return bidi::kind::RLE;
++      case 'c':
++      case 'C':
++	return bidi::kind::PDF;
++      case 'd':
++      case 'D':
++	return bidi::kind::LRO;
++      case 'e':
++      case 'E':
++	return bidi::kind::RLO;
++      default:
++	break;
++      }
++  else if (p[2] == '6')
++    switch (p[3])
++      {
++      case '6':
++	return bidi::kind::LRI;
++      case '7':
++	return bidi::kind::RLI;
++      case '8':
++	return bidi::kind::FSI;
++      case '9':
++	return bidi::kind::PDI;
++      default:
++	break;
++      }
++  else if (p[2] == '0')
++    switch (p[3])
++      {
++      case 'e':
++      case 'E':
++	return bidi::kind::LTR;
++      case 'f':
++      case 'F':
++	return bidi::kind::RTL;
++      default:
++	break;
++      }
++
++  return bidi::kind::NONE;
++}
++
++/* We're closing a bidi context, that is, we've encountered a newline,
++   are closing a C-style comment, or are at the end of a string literal,
++   character constant, or identifier.  Warn if this context was not
++   properly terminated by a PDI or PDF.  P points to the last character
++   in this context.  */
++
++static void
++maybe_warn_bidi_on_close (cpp_reader *pfile, const uchar *p)
++{
++  if (CPP_OPTION (pfile, cpp_warn_bidirectional) == bidirectional_unpaired
++      && bidi::vec.count () > 0)
++    {
++      const location_t loc
++	= linemap_position_for_column (pfile->line_table,
++				       CPP_BUF_COLUMN (pfile->buffer, p));
++      cpp_warning_with_line (pfile, CPP_W_BIDIRECTIONAL, loc, 0,
++			     "unpaired UTF-8 bidirectional control character "
++			     "detected");
++    }
++  /* We're done with this context.  */
++  bidi::on_close ();
++}
++
++/* We're at the beginning or in the middle of an identifier/comment/string
++   literal/character constant.  Warn if we've encountered a bidi character.
++   KIND says which bidi character it was; P points to it in the character
++   stream.  UCN_P is true iff this bidi character was written as a UCN.  */
++
++static void
++maybe_warn_bidi_on_char (cpp_reader *pfile, const uchar *p, bidi::kind kind,
++			 bool ucn_p)
++{
++  if (__builtin_expect (kind == bidi::kind::NONE, 1))
++    return;
++
++  const auto warn_bidi = CPP_OPTION (pfile, cpp_warn_bidirectional);
++
++  if (warn_bidi != bidirectional_none)
++    {
++      const location_t loc
++	= linemap_position_for_column (pfile->line_table,
++				       CPP_BUF_COLUMN (pfile->buffer, p));
++      /* It seems excessive to warn about a PDI/PDF that is closing
++	 an opened context because we've already warned about the
++	 opening character.  Except warn when we have a UCN x UTF-8
++	 mismatch.  */
++      if (kind == bidi::current_ctx ())
++	{
++	  if (warn_bidi == bidirectional_unpaired
++	      && bidi::current_ctx_ucn_p () != ucn_p)
++	    cpp_warning_with_line (pfile, CPP_W_BIDIRECTIONAL, loc, 0,
++				   "UTF-8 vs UCN mismatch when closing "
++				   "a context by \"%s\"", bidi::to_str (kind));
++	}
++      else if (warn_bidi == bidirectional_any)
++	{
++	  if (kind == bidi::kind::PDF || kind == bidi::kind::PDI)
++	    cpp_warning_with_line (pfile, CPP_W_BIDIRECTIONAL, loc, 0,
++				   "\"%s\" is closing an unopened context",
++				   bidi::to_str (kind));
++	  else
++	    cpp_warning_with_line (pfile, CPP_W_BIDIRECTIONAL, loc, 0,
++				   "found problematic Unicode character \"%s\"",
++				   bidi::to_str (kind));
++	}
++    }
++  /* We're done with this context.  */
++  bidi::on_char (kind, ucn_p);
++}
++
+ /* Skip a C-style block comment.  We find the end of the comment by
+    seeing if an asterisk is before every '/' we encounter.  Returns
+    nonzero if comment terminated by EOF, zero otherwise.
+@@ -1175,6 +1493,7 @@ _cpp_skip_block_comment (cpp_reader *pfi
+   cpp_buffer *buffer = pfile->buffer;
+   const uchar *cur = buffer->cur;
+   uchar c;
++  const bool warn_bidi_p = pfile->warn_bidi_p ();
+ 
+   cur++;
+   if (*cur == '/')
+@@ -1189,7 +1508,11 @@ _cpp_skip_block_comment (cpp_reader *pfi
+       if (c == '/')
+ 	{
+ 	  if (cur[-2] == '*')
+-	    break;
++	    {
++	      if (warn_bidi_p)
++		maybe_warn_bidi_on_close (pfile, cur);
++	      break;
++	    }
+ 
+ 	  /* Warn about potential nested comments, but not if the '/'
+ 	     comes immediately before the true comment delimiter.
+@@ -1208,6 +1531,8 @@ _cpp_skip_block_comment (cpp_reader *pfi
+ 	{
+ 	  unsigned int cols;
+ 	  buffer->cur = cur - 1;
++	  if (warn_bidi_p)
++	    maybe_warn_bidi_on_close (pfile, cur);
+ 	  _cpp_process_line_notes (pfile, true);
+ 	  if (buffer->next_line >= buffer->rlimit)
+ 	    return true;
+@@ -1218,6 +1543,13 @@ _cpp_skip_block_comment (cpp_reader *pfi
+ 
+ 	  cur = buffer->cur;
+ 	}
++      /* If this is a beginning of a UTF-8 encoding, it might be
++	 a bidirectional control character.  */
++      else if (__builtin_expect (c == bidi::utf8_start, 0) && warn_bidi_p)
++	{
++	  bidi::kind kind = get_bidi_utf8 (cur - 1);
++	  maybe_warn_bidi_on_char (pfile, cur, kind, /*ucn_p=*/false);
++	}
+     }
+ 
+   buffer->cur = cur;
+@@ -1233,9 +1565,31 @@ skip_line_comment (cpp_reader *pfile)
+ {
+   cpp_buffer *buffer = pfile->buffer;
+   location_t orig_line = pfile->line_table->highest_line;
++  const bool warn_bidi_p = pfile->warn_bidi_p ();
+ 
+-  while (*buffer->cur != '\n')
+-    buffer->cur++;
++  if (!warn_bidi_p)
++    while (*buffer->cur != '\n')
++      buffer->cur++;
++  else
++    {
++      while (*buffer->cur != '\n'
++	     && *buffer->cur != bidi::utf8_start)
++	buffer->cur++;
++      if (__builtin_expect (*buffer->cur == bidi::utf8_start, 0))
++	{
++	  while (*buffer->cur != '\n')
++	    {
++	      if (__builtin_expect (*buffer->cur == bidi::utf8_start, 0))
++		{
++		  bidi::kind kind = get_bidi_utf8 (buffer->cur);
++		  maybe_warn_bidi_on_char (pfile, buffer->cur, kind,
++					   /*ucn_p=*/false);
++		}
++	      buffer->cur++;
++	    }
++	  maybe_warn_bidi_on_close (pfile, buffer->cur);
++	}
++    }
+ 
+   _cpp_process_line_notes (pfile, true);
+   return orig_line != pfile->line_table->highest_line;
+@@ -1317,11 +1671,13 @@ static const cppchar_t utf8_signifier =
+ 
+ /* Returns TRUE if the sequence starting at buffer->cur is valid in
+    an identifier.  FIRST is TRUE if this starts an identifier.  */
++
+ static bool
+ forms_identifier_p (cpp_reader *pfile, int first,
+ 		    struct normalize_state *state)
+ {
+   cpp_buffer *buffer = pfile->buffer;
++  const bool warn_bidi_p = pfile->warn_bidi_p ();
+ 
+   if (*buffer->cur == '$')
+     {
+@@ -1344,6 +1700,13 @@ forms_identifier_p (cpp_reader *pfile, i
+       cppchar_t s;
+       if (*buffer->cur >= utf8_signifier)
+ 	{
++	  if (__builtin_expect (*buffer->cur == bidi::utf8_start, 0)
++	      && warn_bidi_p)
++	    {
++	      bidi::kind kind = get_bidi_utf8 (buffer->cur);
++	      maybe_warn_bidi_on_char (pfile, buffer->cur, kind,
++				       /*ucn_p=*/false);
++	    }
+ 	  if (_cpp_valid_utf8 (pfile, &buffer->cur, buffer->rlimit, 1 + !first,
+ 			       state, &s))
+ 	    return true;
+@@ -1352,6 +1715,13 @@ forms_identifier_p (cpp_reader *pfile, i
+ 	       && (buffer->cur[1] == 'u' || buffer->cur[1] == 'U'))
+ 	{
+ 	  buffer->cur += 2;
++	  if (warn_bidi_p)
++	    {
++	      bidi::kind kind = get_bidi_ucn (buffer->cur,
++					      buffer->cur[-1] == 'U');
++	      maybe_warn_bidi_on_char (pfile, buffer->cur, kind,
++				       /*ucn_p=*/true);
++	    }
+ 	  if (_cpp_valid_ucn (pfile, &buffer->cur, buffer->rlimit, 1 + !first,
+ 			      state, &s, NULL, NULL))
+ 	    return true;
+@@ -1460,6 +1830,7 @@ lex_identifier (cpp_reader *pfile, const
+   const uchar *cur;
+   unsigned int len;
+   unsigned int hash = HT_HASHSTEP (0, *base);
++  const bool warn_bidi_p = pfile->warn_bidi_p ();
+ 
+   cur = pfile->buffer->cur;
+   if (! starts_ucn)
+@@ -1483,6 +1854,8 @@ lex_identifier (cpp_reader *pfile, const
+ 	    pfile->buffer->cur++;
+ 	  }
+       } while (forms_identifier_p (pfile, false, nst));
++      if (warn_bidi_p)
++	maybe_warn_bidi_on_close (pfile, pfile->buffer->cur);
+       result = _cpp_interpret_identifier (pfile, base,
+ 					  pfile->buffer->cur - base);
+       *spelling = cpp_lookup (pfile, base, pfile->buffer->cur - base);
+@@ -1719,6 +2092,7 @@ static void
+ lex_raw_string (cpp_reader *pfile, cpp_token *token, const uchar *base)
+ {
+   const uchar *pos = base;
++  const bool warn_bidi_p = pfile->warn_bidi_p ();
+ 
+   /* 'tis a pity this information isn't passed down from the lexer's
+      initial categorization of the token.  */
+@@ -1955,8 +2329,15 @@ lex_raw_string (cpp_reader *pfile, cpp_t
+ 	  pos = base = pfile->buffer->cur;
+ 	  note = &pfile->buffer->notes[pfile->buffer->cur_note];
+ 	}
++      else if (__builtin_expect ((unsigned char) c == bidi::utf8_start, 0)
++	       && warn_bidi_p)
++	maybe_warn_bidi_on_char (pfile, pos - 1, get_bidi_utf8 (pos - 1),
++				 /*ucn_p=*/false);
+     }
+ 
++  if (warn_bidi_p)
++    maybe_warn_bidi_on_close (pfile, pos);
++
+   if (CPP_OPTION (pfile, user_literals))
+     {
+       /* If a string format macro, say from inttypes.h, is placed touching
+@@ -2051,15 +2432,27 @@ lex_string (cpp_reader *pfile, cpp_token
+   else
+     terminator = '>', type = CPP_HEADER_NAME;
+ 
++  const bool warn_bidi_p = pfile->warn_bidi_p ();
+   for (;;)
+     {
+       cppchar_t c = *cur++;
+ 
+       /* In #include-style directives, terminators are not escapable.  */
+       if (c == '\\' && !pfile->state.angled_headers && *cur != '\n')
+-	cur++;
++	{
++	  if ((cur[0] == 'u' || cur[0] == 'U') && warn_bidi_p)
++	    {
++	      bidi::kind kind = get_bidi_ucn (cur + 1, cur[0] == 'U');
++	      maybe_warn_bidi_on_char (pfile, cur, kind, /*ucn_p=*/true);
++	    }
++	  cur++;
++	}
+       else if (c == terminator)
+-	break;
++	{
++	  if (warn_bidi_p)
++	    maybe_warn_bidi_on_close (pfile, cur - 1);
++	  break;
++	}
+       else if (c == '\n')
+ 	{
+ 	  cur--;
+@@ -2076,6 +2469,11 @@ lex_string (cpp_reader *pfile, cpp_token
+ 	}
+       else if (c == '\0')
+ 	saw_NUL = true;
++      else if (__builtin_expect (c == bidi::utf8_start, 0) && warn_bidi_p)
++	{
++	  bidi::kind kind = get_bidi_utf8 (cur - 1);
++	  maybe_warn_bidi_on_char (pfile, cur - 1, kind, /*ucn_p=*/false);
++	}
+     }
+ 
+   if (saw_NUL && !pfile->state.skipping)
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0003-CVE-2021-35465.patch b/poky/meta/recipes-devtools/gcc/gcc/0003-CVE-2021-35465.patch
new file mode 100644
index 0000000..c7a7c76
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0003-CVE-2021-35465.patch
@@ -0,0 +1,103 @@
+From 30461cf8dba3d3adb15a125e4da48800eb2b9b8f Mon Sep 17 00:00:00 2001
+From: Richard Earnshaw <rearnsha@arm.com>
+Date: Fri, 18 Jun 2021 17:18:37 +0100
+Subject: [PATCH] arm: fix vlldm erratum for Armv8.1-m [PR102035]
+
+For Armv8.1-m we generate code that emits VLLDM directly and do not
+rely on support code in the library, so emit the mitigation directly
+as well, when required.  In this case, we can use the compiler options
+to determine when to apply the fix and when it is safe to omit it.
+
+gcc:
+	PR target/102035
+	* config/arm/arm.md (attribute arch): Add fix_vlldm.
+	(arch_enabled): Use it.
+	* config/arm/vfp.md (lazy_store_multiple_insn): Add alternative to
+	use when erratum mitigation is needed.
+
+CVE: CVE-2021-35465
+Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=30461cf8dba3d3adb15a125e4da48800eb2b9b8f]
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+
+---
+ gcc/config/arm/arm.md | 11 +++++++++--
+ gcc/config/arm/vfp.md | 10 +++++++---
+ 2 files changed, 16 insertions(+), 5 deletions(-)
+
+diff -upr a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
+--- a/gcc/config/arm/arm.md	2020-07-22 23:35:17.344384552 -0700
++++ b/gcc/config/arm/arm.md	2021-11-11 20:33:58.431543947 -0800
+@@ -132,9 +132,12 @@
+ ; TARGET_32BIT, "t1" or "t2" to specify a specific Thumb mode.  "v6"
+ ; for ARM or Thumb-2 with arm_arch6, and nov6 for ARM without
+ ; arm_arch6.  "v6t2" for Thumb-2 with arm_arch6 and "v8mb" for ARMv8-M
+-; Baseline.  This attribute is used to compute attribute "enabled",
++; Baseline.  "fix_vlldm" is for fixing the v8-m/v8.1-m VLLDM erratum.
++; This attribute is used to compute attribute "enabled",
+ ; use type "any" to enable an alternative in all cases.
+-(define_attr "arch" "any,a,t,32,t1,t2,v6,nov6,v6t2,v8mb,iwmmxt,iwmmxt2,armv6_or_vfpv3,neon,mve"
++(define_attr "arch" "any, a, t, 32, t1, t2, v6,nov6, v6t2, \
++		     v8mb, fix_vlldm, iwmmxt, iwmmxt2, armv6_or_vfpv3, \
++		     neon, mve"
+   (const_string "any"))
+ 
+ (define_attr "arch_enabled" "no,yes"
+@@ -177,6 +180,10 @@
+ 	      (match_test "TARGET_THUMB1 && arm_arch8"))
+ 	 (const_string "yes")
+ 
++	 (and (eq_attr "arch" "fix_vlldm")
++	      (match_test "fix_vlldm"))
++	 (const_string "yes")
++
+ 	 (and (eq_attr "arch" "iwmmxt2")
+ 	      (match_test "TARGET_REALLY_IWMMXT2"))
+ 	 (const_string "yes")
+diff -upr a/gcc/config/arm/vfp.md b/gcc/config/arm/vfp.md
+--- a/gcc/config/arm/vfp.md	2020-07-22 23:35:17.356384684 -0700
++++ b/gcc/config/arm/vfp.md	2021-11-11 20:33:58.431543947 -0800
+@@ -1703,12 +1703,15 @@
+    (set_attr "type" "mov_reg")]
+ )
+ 
++;; Both this and the next instruction are treated by GCC in the same
++;; way as a blockage pattern.  That's perhaps stronger than it needs
++;; to be, but we do not want accesses to the VFP register bank to be
++;; moved across either instruction.
++
+ (define_insn "lazy_store_multiple_insn"
+-  [(set (match_operand:SI 0 "s_register_operand" "+&rk")
+-	(post_dec:SI (match_dup 0)))
+-   (unspec_volatile [(const_int 0)
+-		     (mem:SI (post_dec:SI (match_dup 0)))]
+-		    VUNSPEC_VLSTM)]
++  [(unspec_volatile
++    [(mem:BLK (match_operand:SI 0 "s_register_operand" "rk"))]
++    VUNSPEC_VLSTM)]
+   "use_cmse && reload_completed"
+   "vlstm%?\\t%0"
+   [(set_attr "predicable" "yes")
+@@ -1716,14 +1719,16 @@
+ )
+ 
+ (define_insn "lazy_load_multiple_insn"
+-  [(set (match_operand:SI 0 "s_register_operand" "+&rk")
+-	(post_inc:SI (match_dup 0)))
+-   (unspec_volatile:SI [(const_int 0)
+-			(mem:SI (match_dup 0))]
+-		       VUNSPEC_VLLDM)]
++  [(unspec_volatile
++    [(mem:BLK (match_operand:SI 0 "s_register_operand" "rk,rk"))]
++    VUNSPEC_VLLDM)]
+   "use_cmse && reload_completed"
+-  "vlldm%?\\t%0"
+-  [(set_attr "predicable" "yes")
++  "@
++   vscclrm\\t{vpr}\;vlldm\\t%0
++   vlldm\\t%0"
++  [(set_attr "arch" "fix_vlldm,*")
++   (set_attr "predicable" "no")
++   (set_attr "length" "8,4")
+    (set_attr "type" "load_4")]
+ )
+ 
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0003-CVE-2021-42574.patch b/poky/meta/recipes-devtools/gcc/gcc/0003-CVE-2021-42574.patch
new file mode 100644
index 0000000..2995a6f
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0003-CVE-2021-42574.patch
@@ -0,0 +1,142 @@
+From 1a7f2c0774129750fdf73e9f1b78f0ce983c9ab3 Mon Sep 17 00:00:00 2001
+From: David Malcolm <dmalcolm@redhat.com>
+Date: Tue, 2 Nov 2021 09:54:32 -0400
+Subject: [PATCH] libcpp: escape non-ASCII source bytes in -Wbidi-chars=
+ [PR103026]
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+This flags rich_locations associated with -Wbidi-chars= so that
+non-ASCII bytes will be escaped when printing the source lines
+(using the diagnostics support I added in
+r12-4825-gbd5e882cf6e0def3dd1bc106075d59a303fe0d1e).
+
+In particular, this ensures that the printed source lines will
+be pure ASCII, and thus the visual ordering of the characters
+will be the same as the logical ordering.
+
+Before:
+
+  Wbidi-chars-1.c: In function âmainâ:
+  Wbidi-chars-1.c:6:43: warning: unpaired UTF-8 bidirectional control character detected [-Wbidi-chars=]
+      6 |     /*â® } â¦if (isAdmin)⩠⦠begin admins only */
+        |                                           ^
+  Wbidi-chars-1.c:9:28: warning: unpaired UTF-8 bidirectional control character detected [-Wbidi-chars=]
+      9 |     /* end admins only â® { â¦*/
+        |                            ^
+
+  Wbidi-chars-11.c:6:15: warning: UTF-8 vs UCN mismatch when closing a context by "U+202C (POP DIRECTIONAL FORMATTING)" [-Wbidi-chars=]
+      6 | int LRE_âª_PDF_\u202c;
+        |               ^
+  Wbidi-chars-11.c:8:19: warning: UTF-8 vs UCN mismatch when closing a context by "U+202C (POP DIRECTIONAL FORMATTING)" [-Wbidi-chars=]
+      8 | int LRE_\u202a_PDF_â¬_;
+        |                   ^
+  Wbidi-chars-11.c:10:28: warning: UTF-8 vs UCN mismatch when closing a context by "U+202C (POP DIRECTIONAL FORMATTING)" [-Wbidi-chars=]
+     10 | const char *s1 = "LRE_âª_PDF_\u202c";
+        |                            ^
+  Wbidi-chars-11.c:12:33: warning: UTF-8 vs UCN mismatch when closing a context by "U+202C (POP DIRECTIONAL FORMATTING)" [-Wbidi-chars=]
+     12 | const char *s2 = "LRE_\u202a_PDF_â¬";
+        |                                 ^
+
+After:
+
+  Wbidi-chars-1.c: In function âmainâ:
+  Wbidi-chars-1.c:6:43: warning: unpaired UTF-8 bidirectional control character detected [-Wbidi-chars=]
+      6 |     /*<U+202E> } <U+2066>if (isAdmin)<U+2069> <U+2066> begin admins only */
+        |                                                                           ^
+  Wbidi-chars-1.c:9:28: warning: unpaired UTF-8 bidirectional control character detected [-Wbidi-chars=]
+      9 |     /* end admins only <U+202E> { <U+2066>*/
+        |                                            ^
+
+  Wbidi-chars-11.c:6:15: warning: UTF-8 vs UCN mismatch when closing a context by "U+202C (POP DIRECTIONAL FORMATTING)" [-Wbidi-chars=]
+      6 | int LRE_<U+202A>_PDF_\u202c;
+        |                       ^
+  Wbidi-chars-11.c:8:19: warning: UTF-8 vs UCN mismatch when closing a context by "U+202C (POP DIRECTIONAL FORMATTING)" [-Wbidi-chars=]
+      8 | int LRE_\u202a_PDF_<U+202C>_;
+        |                   ^
+  Wbidi-chars-11.c:10:28: warning: UTF-8 vs UCN mismatch when closing a context by "U+202C (POP DIRECTIONAL FORMATTING)" [-Wbidi-chars=]
+     10 | const char *s1 = "LRE_<U+202A>_PDF_\u202c";
+        |                                    ^
+  Wbidi-chars-11.c:12:33: warning: UTF-8 vs UCN mismatch when closing a context by "U+202C (POP DIRECTIONAL FORMATTING)" [-Wbidi-chars=]
+     12 | const char *s2 = "LRE_\u202a_PDF_<U+202C>";
+        |                                 ^
+
+libcpp/ChangeLog:
+	PR preprocessor/103026
+	* lex.c (maybe_warn_bidi_on_close): Use a rich_location
+	and call set_escape_on_output (true) on it.
+	(maybe_warn_bidi_on_char): Likewise.
+
+Signed-off-by: David Malcolm <dmalcolm@redhat.com>
+
+CVE: CVE-2021-42574
+Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=1a7f2c0774129750fdf73e9f1b78f0ce983c9ab3]
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+
+---
+ libcpp/lex.c | 29 +++++++++++++++++------------
+ 1 file changed, 17 insertions(+), 12 deletions(-)
+
+diff --git a/libcpp/lex.c b/libcpp/lex.c
+index 8188e33b07d..2421d6c0f40 100644
+--- a/libcpp/lex.c
++++ b/libcpp/lex.c
+@@ -1427,9 +1427,11 @@ maybe_warn_bidi_on_close (cpp_reader *pfile, const uchar *p)
+       const location_t loc
+ 	= linemap_position_for_column (pfile->line_table,
+ 				       CPP_BUF_COLUMN (pfile->buffer, p));
+-      cpp_warning_with_line (pfile, CPP_W_BIDIRECTIONAL, loc, 0,
+-			     "unpaired UTF-8 bidirectional control character "
+-			     "detected");
++      rich_location rich_loc (pfile->line_table, loc);
++      rich_loc.set_escape_on_output (true);
++      cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc,
++		      "unpaired UTF-8 bidirectional control character "
++		      "detected");
+     }
+   /* We're done with this context.  */
+   bidi::on_close ();
+@@ -1454,6 +1456,9 @@ maybe_warn_bidi_on_char (cpp_reader *pfile, const uchar *p, bidi::kind kind,
+       const location_t loc
+ 	= linemap_position_for_column (pfile->line_table,
+ 				       CPP_BUF_COLUMN (pfile->buffer, p));
++      rich_location rich_loc (pfile->line_table, loc);
++      rich_loc.set_escape_on_output (true);
++
+       /* It seems excessive to warn about a PDI/PDF that is closing
+ 	 an opened context because we've already warned about the
+ 	 opening character.  Except warn when we have a UCN x UTF-8
+@@ -1462,20 +1467,20 @@ maybe_warn_bidi_on_char (cpp_reader *pfile, const uchar *p, bidi::kind kind,
+ 	{
+ 	  if (warn_bidi == bidirectional_unpaired
+ 	      && bidi::current_ctx_ucn_p () != ucn_p)
+-	    cpp_warning_with_line (pfile, CPP_W_BIDIRECTIONAL, loc, 0,
+-				   "UTF-8 vs UCN mismatch when closing "
+-				   "a context by \"%s\"", bidi::to_str (kind));
++	    cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc,
++			    "UTF-8 vs UCN mismatch when closing "
++			    "a context by \"%s\"", bidi::to_str (kind));
+ 	}
+       else if (warn_bidi == bidirectional_any)
+ 	{
+ 	  if (kind == bidi::kind::PDF || kind == bidi::kind::PDI)
+-	    cpp_warning_with_line (pfile, CPP_W_BIDIRECTIONAL, loc, 0,
+-				   "\"%s\" is closing an unopened context",
+-				   bidi::to_str (kind));
++	    cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc,
++			    "\"%s\" is closing an unopened context",
++			    bidi::to_str (kind));
+ 	  else
+-	    cpp_warning_with_line (pfile, CPP_W_BIDIRECTIONAL, loc, 0,
+-				   "found problematic Unicode character \"%s\"",
+-				   bidi::to_str (kind));
++	    cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc,
++			    "found problematic Unicode character \"%s\"",
++			    bidi::to_str (kind));
+ 	}
+     }
+   /* We're done with this context.  */
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch b/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
index 8184e68..5f14dd2 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
@@ -23,7 +23,7 @@
 
 RP 15/8/11
 
-Upstream-Status: Inappropriate[OE-Specific]
+Upstream-Status: Inappropriate [OE-Specific]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0004-CVE-2021-35465.patch b/poky/meta/recipes-devtools/gcc/gcc/0004-CVE-2021-35465.patch
new file mode 100644
index 0000000..9dd6a31
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0004-CVE-2021-35465.patch
@@ -0,0 +1,304 @@
+From 809330ab8450261e05919b472783bf15e4b000f7 Mon Sep 17 00:00:00 2001
+From: Richard Earnshaw <rearnsha@arm.com>
+Date: Tue, 6 Jul 2021 15:10:18 +0100
+Subject: [PATCH] arm: Add tests for VLLDM mitigation [PR102035]
+
+New tests for the erratum mitigation.
+
+gcc/testsuite:
+	PR target/102035
+	* gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13a.c: New test.
+	* gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7a.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8a.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7a.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8a.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13a.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7a.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8a.c: Likewise.
+
+CVE: CVE-2021-35465
+Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=809330ab8450261e05919b472783bf15e4b000f7]
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+
+---
+ .../arm/cmse/mainline/8_1m/soft/cmse-13a.c    | 31 +++++++++++++++++++
+ .../arm/cmse/mainline/8_1m/soft/cmse-7a.c     | 28 +++++++++++++++++
+ .../arm/cmse/mainline/8_1m/soft/cmse-8a.c     | 30 ++++++++++++++++++
+ .../cmse/mainline/8_1m/softfp-sp/cmse-7a.c    | 27 ++++++++++++++++
+ .../cmse/mainline/8_1m/softfp-sp/cmse-8a.c    | 29 +++++++++++++++++
+ .../arm/cmse/mainline/8_1m/softfp/cmse-13a.c  | 30 ++++++++++++++++++
+ .../arm/cmse/mainline/8_1m/softfp/cmse-7a.c   | 27 ++++++++++++++++
+ .../arm/cmse/mainline/8_1m/softfp/cmse-8a.c   | 29 +++++++++++++++++
+ 8 files changed, 231 insertions(+)
+ create mode 100644 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13a.c
+ create mode 100644 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7a.c
+ create mode 100644 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8a.c
+ create mode 100644 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7a.c
+ create mode 100644 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8a.c
+ create mode 100644 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13a.c
+ create mode 100644 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7a.c
+ create mode 100644 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8a.c
+
+diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13a.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13a.c
+--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13a.c	1969-12-31 16:00:00.000000000 -0800
++++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13a.c	2021-11-15 02:30:37.210637445 -0800
+@@ -0,0 +1,31 @@
++/* { dg-do compile } */
++/* { dg-options "-mcmse -mfloat-abi=soft -mfix-cmse-cve-2021-35465" }  */
++/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=soft" } } */
++
++#include "../../../cmse-13.x"
++
++/* Checks for saving and clearing prior to function call.  */
++/* Shift on the same register as blxns.  */
++/* { dg-final { scan-assembler "lsrs\t(r\[1,4-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler "lsls\t(r\[1,4-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler-not "mov\tr0, r4" } } */
++/* { dg-final { scan-assembler-not "mov\tr2, r4" } } */
++/* { dg-final { scan-assembler-not "mov\tr3, r4" } } */
++/* { dg-final { scan-assembler "push\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++/* { dg-final { scan-assembler "vlstm\tsp" } } */
++/* Check the right registers are cleared and none appears twice.  */
++/* { dg-final { scan-assembler "clrm\t\{(r1, )?(r4, )?(r5, )?(r6, )?(r7, )?(r8, )?(r9, )?(r10, )?(fp, )?(ip, )?APSR\}" } } */
++/* Check that the right number of registers is cleared and thus only one
++   register is missing.  */
++/* { dg-final { scan-assembler "clrm\t\{((r\[1,4-9\]|r10|fp|ip), ){9}APSR\}" } } */
++/* Check that no cleared register is used for blxns.  */
++/* { dg-final { scan-assembler-not "clrm\t\{\[^\}\]\+(r\[1,4-9\]|r10|fp|ip),\[^\}\]\+\}.*blxns\t\\1" } } */
++/* Check for v8.1-m variant of erratum work-around.  */
++/* { dg-final { scan-assembler "vscclrm\t\{vpr\}" } } */
++/* { dg-final { scan-assembler "vlldm\tsp" } } */
++/* { dg-final { scan-assembler "pop\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++/* { dg-final { scan-assembler-not "vmov" } } */
++/* { dg-final { scan-assembler-not "vmsr" } } */
++
++/* Now we check that we use the correct intrinsic to call.  */
++/* { dg-final { scan-assembler "blxns" } } */
+diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7a.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7a.c
+--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7a.c	1969-12-31 16:00:00.000000000 -0800
++++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7a.c	2021-11-15 02:30:37.210637445 -0800
+@@ -0,0 +1,28 @@
++/* { dg-do compile } */
++/* { dg-options "-mcmse -mfloat-abi=soft -mfix-cmse-cve-2021-35465" }  */
++/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=soft" } } */
++
++#include "../../../cmse-7.x"
++
++/* Checks for saving and clearing prior to function call.  */
++/* Shift on the same register as blxns.  */
++/* { dg-final { scan-assembler "lsrs\t(r\[0-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler "lsls\t(r\[0-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler "push\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++/* { dg-final { scan-assembler "vlstm\tsp" } } */
++/* Check the right registers are cleared and none appears twice.  */
++/* { dg-final { scan-assembler "clrm\t\{(r0, )?(r1, )?(r2, )?(r3, )?(r4, )?(r5, )?(r6, )?(r7, )?(r8, )?(r9, )?(r10, )?(fp, )?(ip, )?APSR\}" } } */
++/* Check that the right number of registers is cleared and thus only one
++   register is missing.  */
++/* { dg-final { scan-assembler "clrm\t\{((r\[0-9\]|r10|fp|ip), ){12}APSR\}" } } */
++/* Check that no cleared register is used for blxns.  */
++/* { dg-final { scan-assembler-not "clrm\t\{\[^\}\]\+(r\[0-9\]|r10|fp|ip),\[^\}\]\+\}.*blxns\t\\1" } } */
++/* Check for v8.1-m variant of erratum work-around.  */
++/* { dg-final { scan-assembler "vscclrm\t\{vpr\}" } } */
++/* { dg-final { scan-assembler "vlldm\tsp" } } */
++/* { dg-final { scan-assembler "pop\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++/* { dg-final { scan-assembler-not "vmov" } } */
++/* { dg-final { scan-assembler-not "vmsr" } } */
++
++/* Now we check that we use the correct intrinsic to call.  */
++/* { dg-final { scan-assembler "blxns" } } */
+diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8a.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8a.c
+--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8a.c	1969-12-31 16:00:00.000000000 -0800
++++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8a.c	2021-11-15 02:30:37.210637445 -0800
+@@ -0,0 +1,30 @@
++/* { dg-do compile } */
++/* { dg-options "-mcmse -mfloat-abi=soft -mfix-cmse-cve-2021-35465" }  */
++/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=soft" } } */
++
++#include "../../../cmse-8.x"
++
++/* Checks for saving and clearing prior to function call.  */
++/* Shift on the same register as blxns.  */
++/* { dg-final { scan-assembler "lsrs\t(r\[2-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler "lsls\t(r\[2-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler-not "mov\tr0, r4" } } */
++/* { dg-final { scan-assembler-not "mov\tr1, r4" } } */
++/* { dg-final { scan-assembler "push\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++/* { dg-final { scan-assembler "vlstm\tsp" } } */
++/* Check the right registers are cleared and none appears twice.  */
++/* { dg-final { scan-assembler "clrm\t\{(r2, )?(r3, )?(r4, )?(r5, )?(r6, )?(r7, )?(r8, )?(r9, )?(r10, )?(fp, )?(ip, )?APSR\}" } } */
++/* Check that the right number of registers is cleared and thus only one
++   register is missing.  */
++/* { dg-final { scan-assembler "clrm\t\{((r\[2-9\]|r10|fp|ip), ){10}APSR\}" } } */
++/* Check that no cleared register is used for blxns.  */
++/* { dg-final { scan-assembler-not "clrm\t\{\[^\}\]\+(r\[2-9\]|r10|fp|ip),\[^\}\]\+\}.*blxns\t\\1" } } */
++/* Check for v8.1-m variant of erratum work-around.  */
++/* { dg-final { scan-assembler "vscclrm\t\{vpr\}" } } */
++/* { dg-final { scan-assembler "vlldm\tsp" } } */
++/* { dg-final { scan-assembler "pop\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++/* { dg-final { scan-assembler-not "vmov" } } */
++/* { dg-final { scan-assembler-not "vmsr" } } */
++
++/* Now we check that we use the correct intrinsic to call.  */
++/* { dg-final { scan-assembler "blxns" } } */
+diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13a.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13a.c
+--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13a.c	1969-12-31 16:00:00.000000000 -0800
++++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13a.c	2021-11-15 02:30:37.210637445 -0800
+@@ -0,0 +1,30 @@
++/* { dg-do compile } */
++/* { dg-options "-mcmse -mfloat-abi=softfp -mfpu=fpv5-d16 -mfix-cmse-cve-2021-35465" }  */
++/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=softfp" } } */
++/* { dg-skip-if "Skip these if testing single precision" {*-*-*} {"-mfpu=*-sp-*"} {""} } */
++
++#include "../../../cmse-13.x"
++
++/* Checks for saving and clearing prior to function call.  */
++/* Shift on the same register as blxns.  */
++/* { dg-final { scan-assembler "lsrs\t(r\[1,4-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler "lsls\t(r\[1,4-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler-not "mov\tr0, r4" } } */
++/* { dg-final { scan-assembler-not "mov\tr2, r4" } } */
++/* { dg-final { scan-assembler-not "mov\tr3, r4" } } */
++/* { dg-final { scan-assembler "push\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++/* { dg-final { scan-assembler "vlstm\tsp" } } */
++/* Check the right registers are cleared and none appears twice.  */
++/* { dg-final { scan-assembler "clrm\t\{(r1, )?(r4, )?(r5, )?(r6, )?(r7, )?(r8, )?(r9, )?(r10, )?(fp, )?(ip, )?APSR\}" } } */
++/* Check that the right number of registers is cleared and thus only one
++   register is missing.  */
++/* { dg-final { scan-assembler "clrm\t\{((r\[1,4-9\]|r10|fp|ip), ){9}APSR\}" } } */
++/* Check that no cleared register is used for blxns.  */
++/* { dg-final { scan-assembler-not "clrm\t\{\[^\}\]\+(r\[1,4-9\]|r10|fp|ip),\[^\}\]\+\}.*blxns\t\\1" } } */
++/* Check for v8.1-m variant of erratum work-around.  */
++/* { dg-final { scan-assembler "vscclrm\t\{vpr\}" } } */
++/* { dg-final { scan-assembler "vlldm\tsp" } } */
++/* { dg-final { scan-assembler "pop\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++
++/* Now we check that we use the correct intrinsic to call.  */
++/* { dg-final { scan-assembler "blxns" } } */
+diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7a.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7a.c
+--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7a.c	1969-12-31 16:00:00.000000000 -0800
++++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7a.c	2021-11-15 02:30:37.210637445 -0800
+@@ -0,0 +1,27 @@
++/* { dg-do compile } */
++/* { dg-options "-mcmse -mfloat-abi=softfp -mfpu=fpv5-d16 -mfix-cmse-cve-2021-35465" }  */
++/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=softfp" } } */
++/* { dg-skip-if "Skip these if testing single precision" {*-*-*} {"-mfpu=*-sp-*"} {""} } */
++
++#include "../../../cmse-7.x"
++
++/* Checks for saving and clearing prior to function call.  */
++/* Shift on the same register as blxns.  */
++/* { dg-final { scan-assembler "lsrs\t(r\[0-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler "lsls\t(r\[0-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler "push\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++/* { dg-final { scan-assembler "vlstm\tsp" } } */
++/* Check the right registers are cleared and none appears twice.  */
++/* { dg-final { scan-assembler "clrm\t\{(r0, )?(r1, )?(r2, )?(r3, )?(r4, )?(r5, )?(r6, )?(r7, )?(r8, )?(r9, )?(r10, )?(fp, )?(ip, )?APSR\}" } } */
++/* Check that the right number of registers is cleared and thus only one
++   register is missing.  */
++/* { dg-final { scan-assembler "clrm\t\{((r\[0-9\]|r10|fp|ip), ){12}APSR\}" } } */
++/* Check that no cleared register is used for blxns.  */
++/* { dg-final { scan-assembler-not "clrm\t\{\[^\}\]\+(r\[0-9\]|r10|fp|ip),\[^\}\]\+\}.*blxns\t\\1" } } */
++/* Check for v8.1-m variant of erratum work-around.  */
++/* { dg-final { scan-assembler "vscclrm\t\{vpr\}" } } */
++/* { dg-final { scan-assembler "vlldm\tsp" } } */
++/* { dg-final { scan-assembler "pop\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++
++/* Now we check that we use the correct intrinsic to call.  */
++/* { dg-final { scan-assembler "blxns" } } */
+diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8a.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8a.c
+--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8a.c	1969-12-31 16:00:00.000000000 -0800
++++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8a.c	2021-11-15 02:30:37.210637445 -0800
+@@ -0,0 +1,29 @@
++/* { dg-do compile } */
++/* { dg-options "-mcmse -mfloat-abi=softfp -mfpu=fpv5-d16 -mfix-cmse-cve-2021-35465" }  */
++/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=softfp" } } */
++/* { dg-skip-if "Skip these if testing single precision" {*-*-*} {"-mfpu=*-sp-*"} {""} } */
++
++#include "../../../cmse-8.x"
++
++/* Checks for saving and clearing prior to function call.  */
++/* Shift on the same register as blxns.  */
++/* { dg-final { scan-assembler "lsrs\t(r\[2-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler "lsls\t(r\[2-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler-not "mov\tr0, r4" } } */
++/* { dg-final { scan-assembler-not "mov\tr1, r4" } } */
++/* { dg-final { scan-assembler "push\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++/* { dg-final { scan-assembler "vlstm\tsp" } } */
++/* Check the right registers are cleared and none appears twice.  */
++/* { dg-final { scan-assembler "clrm\t\{(r2, )?(r3, )?(r4, )?(r5, )?(r6, )?(r7, )?(r8, )?(r9, )?(r10, )?(fp, )?(ip, )?APSR\}" } } */
++/* Check that the right number of registers is cleared and thus only one
++   register is missing.  */
++/* { dg-final { scan-assembler "clrm\t\{((r\[2-9\]|r10|fp|ip), ){10}APSR\}" } } */
++/* Check that no cleared register is used for blxns.  */
++/* { dg-final { scan-assembler-not "clrm\t\{\[^\}\]\+(r\[2-9\]|r10|fp|ip),\[^\}\]\+\}.*blxns\t\\1" } } */
++/* Check for v8.1-m variant of erratum work-around.  */
++/* { dg-final { scan-assembler "vscclrm\t\{vpr\}" } } */
++/* { dg-final { scan-assembler "vlldm\tsp" } } */
++/* { dg-final { scan-assembler "pop\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++
++/* Now we check that we use the correct intrinsic to call.  */
++/* { dg-final { scan-assembler "blxns" } } */
+diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7a.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7a.c
+--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7a.c	1969-12-31 16:00:00.000000000 -0800
++++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7a.c	2021-11-15 02:30:37.210637445 -0800
+@@ -0,0 +1,27 @@
++/* { dg-do compile } */
++/* { dg-options "-mcmse -mfloat-abi=softfp -mfpu=fpv5-sp-d16 -mfix-cmse-cve-2021-35465" }  */
++/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=softfp" } } */
++/* { dg-skip-if "Skip these if testing double precision" {*-*-*} {"-mfpu=fpv[4-5]-d16"} {""} } */
++
++#include "../../../cmse-7.x"
++
++/* Checks for saving and clearing prior to function call.  */
++/* Shift on the same register as blxns.  */
++/* { dg-final { scan-assembler "lsrs\t(r\[0-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler "lsls\t(r\[0-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler "push\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++/* { dg-final { scan-assembler "vlstm\tsp" } } */
++/* Check the right registers are cleared and none appears twice.  */
++/* { dg-final { scan-assembler "clrm\t\{(r0, )?(r1, )?(r2, )?(r3, )?(r4, )?(r5, )?(r6, )?(r7, )?(r8, )?(r9, )?(r10, )?(fp, )?(ip, )?APSR\}" } } */
++/* Check that the right number of registers is cleared and thus only one
++   register is missing.  */
++/* { dg-final { scan-assembler "clrm\t\{((r\[0-9\]|r10|fp|ip), ){12}APSR\}" } } */
++/* Check that no cleared register is used for blxns.  */
++/* { dg-final { scan-assembler-not "clrm\t\{\[^\}\]\+(r\[0-9\]|r10|fp|ip),\[^\}\]\+\}.*blxns\t\\1" } } */
++/* Check for v8.1-m variant of erratum work-around.  */
++/* { dg-final { scan-assembler "vscclrm\t\{vpr\}" } } */
++/* { dg-final { scan-assembler "vlldm\tsp" } } */
++/* { dg-final { scan-assembler "pop\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++
++/* Now we check that we use the correct intrinsic to call.  */
++/* { dg-final { scan-assembler "blxns" } } */
+diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8a.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8a.c
+--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8a.c	1969-12-31 16:00:00.000000000 -0800
++++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8a.c	2021-11-15 02:30:37.210637445 -0800
+@@ -0,0 +1,29 @@
++/* { dg-do compile } */
++/* { dg-options "-mcmse -mfloat-abi=softfp -mfpu=fpv5-sp-d16 -mfix-cmse-cve-2021-35465" }  */
++/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=softfp" } } */
++/* { dg-skip-if "Skip these if testing double precision" {*-*-*} {"-mfpu=fpv[4-5]-d16"} {""} } */
++
++#include "../../../cmse-8.x"
++
++/* Checks for saving and clearing prior to function call.  */
++/* Shift on the same register as blxns.  */
++/* { dg-final { scan-assembler "lsrs\t(r\[2-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler "lsls\t(r\[2-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
++/* { dg-final { scan-assembler-not "mov\tr0, r4" } } */
++/* { dg-final { scan-assembler-not "mov\tr1, r4" } } */
++/* { dg-final { scan-assembler "push\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++/* { dg-final { scan-assembler "vlstm\tsp" } } */
++/* Check the right registers are cleared and none appears twice.  */
++/* { dg-final { scan-assembler "clrm\t\{(r2, )?(r3, )?(r4, )?(r5, )?(r6, )?(r7, )?(r8, )?(r9, )?(r10, )?(fp, )?(ip, )?APSR\}" } } */
++/* Check that the right number of registers is cleared and thus only one
++   register is missing.  */
++/* { dg-final { scan-assembler "clrm\t\{((r\[2-9\]|r10|fp|ip), ){10}APSR\}" } } */
++/* Check that no cleared register is used for blxns.  */
++/* { dg-final { scan-assembler-not "clrm\t\{\[^\}\]\+(r\[2-9\]|r10|fp|ip),\[^\}\]\+\}.*blxns\t\\1" } } */
++/* Check for v8.1-m variant of erratum work-around.  */
++/* { dg-final { scan-assembler "vscclrm\t\{vpr\}" } } */
++/* { dg-final { scan-assembler "vlldm\tsp" } } */
++/* { dg-final { scan-assembler "pop\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
++
++/* Now we check that we use the correct intrinsic to call.  */
++/* { dg-final { scan-assembler "blxns" } } */
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0004-CVE-2021-42574.patch b/poky/meta/recipes-devtools/gcc/gcc/0004-CVE-2021-42574.patch
new file mode 100644
index 0000000..4999c71
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0004-CVE-2021-42574.patch
@@ -0,0 +1,573 @@
+From bef32d4a28595e933f24fef378cf052a30b674a7 Mon Sep 17 00:00:00 2001
+From: David Malcolm <dmalcolm@redhat.com>
+Date: Tue, 2 Nov 2021 15:45:22 -0400
+Subject: [PATCH] libcpp: capture and underline ranges in -Wbidi-chars=
+ [PR103026]
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+This patch converts the bidi::vec to use a struct so that we can
+capture location_t values for the bidirectional control characters.
+
+Before:
+
+  Wbidi-chars-1.c: In function âmainâ:
+  Wbidi-chars-1.c:6:43: warning: unpaired UTF-8 bidirectional control character detected [-Wbidi-chars=]
+      6 |     /*<U+202E> } <U+2066>if (isAdmin)<U+2069> <U+2066> begin admins only */
+        |                                                                           ^
+  Wbidi-chars-1.c:9:28: warning: unpaired UTF-8 bidirectional control character detected [-Wbidi-chars=]
+      9 |     /* end admins only <U+202E> { <U+2066>*/
+        |                                            ^
+
+After:
+
+  Wbidi-chars-1.c: In function âmainâ:
+  Wbidi-chars-1.c:6:43: warning: unpaired UTF-8 bidirectional control characters detected [-Wbidi-chars=]
+      6 |     /*<U+202E> } <U+2066>if (isAdmin)<U+2069> <U+2066> begin admins only */
+        |       ~~~~~~~~                                ~~~~~~~~                    ^
+        |       |                                       |                           |
+        |       |                                       |                           end of bidirectional context
+        |       U+202E (RIGHT-TO-LEFT OVERRIDE)         U+2066 (LEFT-TO-RIGHT ISOLATE)
+  Wbidi-chars-1.c:9:28: warning: unpaired UTF-8 bidirectional control characters detected [-Wbidi-chars=]
+      9 |     /* end admins only <U+202E> { <U+2066>*/
+        |                        ~~~~~~~~   ~~~~~~~~ ^
+        |                        |          |        |
+        |                        |          |        end of bidirectional context
+        |                        |          U+2066 (LEFT-TO-RIGHT ISOLATE)
+        |                        U+202E (RIGHT-TO-LEFT OVERRIDE)
+
+Signed-off-by: David Malcolm <dmalcolm@redhat.com>
+
+gcc/testsuite/ChangeLog:
+	PR preprocessor/103026
+	* c-c++-common/Wbidi-chars-ranges.c: New test.
+
+libcpp/ChangeLog:
+	PR preprocessor/103026
+	* lex.c (struct bidi::context): New.
+	(bidi::vec): Convert to a vec of context rather than unsigned
+	char.
+	(bidi::ctx_at): Rename to...
+	(bidi::pop_kind_at): ...this and reimplement for above change.
+	(bidi::current_ctx): Update for change to vec.
+	(bidi::current_ctx_ucn_p): Likewise.
+	(bidi::current_ctx_loc): New.
+	(bidi::on_char): Update for usage of context struct.  Add "loc"
+	param and pass it when pushing contexts.
+	(get_location_for_byte_range_in_cur_line): New.
+	(get_bidi_utf8): Rename to...
+	(get_bidi_utf8_1): ...this, reintroducing...
+	(get_bidi_utf8): ...as a wrapper, setting *OUT when the result is
+	not NONE.
+	(get_bidi_ucn): Rename to...
+	(get_bidi_ucn_1): ...this, reintroducing...
+	(get_bidi_ucn): ...as a wrapper, setting *OUT when the result is
+	not NONE.
+	(class unpaired_bidi_rich_location): New.
+	(maybe_warn_bidi_on_close): Use unpaired_bidi_rich_location when
+	reporting on unpaired bidi chars.  Split into singular vs plural
+	spellings.
+	(maybe_warn_bidi_on_char): Pass in a location_t rather than a
+	const uchar * and use it when emitting warnings, and when calling
+	bidi::on_char.
+	(_cpp_skip_block_comment): Capture location when kind is not NONE
+	and pass it to maybe_warn_bidi_on_char.
+	(skip_line_comment): Likewise.
+	(forms_identifier_p): Likewise.
+	(lex_raw_string): Likewise.
+	(lex_string): Likewise.
+
+Signed-off-by: David Malcolm <dmalcolm@redhat.com>
+
+CVE: CVE-2021-42574
+Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=bef32d4a28595e933f24fef378cf052a30b674a7]
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+
+---
+ .../c-c++-common/Wbidi-chars-ranges.c         |  54 ++++
+ libcpp/lex.c                                  | 251 ++++++++++++++----
+ 2 files changed, 257 insertions(+), 48 deletions(-)
+ create mode 100644 gcc/testsuite/c-c++-common/Wbidi-chars-ranges.c
+
+diff --git a/gcc/testsuite/c-c++-common/Wbidi-chars-ranges.c b/gcc/testsuite/c-c++-common/Wbidi-chars-ranges.c
+new file mode 100644
+index 00000000000..298750a2a64
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/Wbidi-chars-ranges.c
+@@ -0,0 +1,54 @@
++/* PR preprocessor/103026 */
++/* { dg-do compile } */
++/* { dg-options "-Wbidi-chars=unpaired -fdiagnostics-show-caret" } */
++/* Verify that we escape and underline pertinent bidirectional
++   control characters when quoting the source.  */
++
++int test_unpaired_bidi () {
++    int isAdmin = 0;
++    /*â® } â¦if (isAdmin)⩠⦠begin admins only */
++/* { dg-warning "bidirectional" "" { target *-*-* } .-1 } */
++#if 0
++   { dg-begin-multiline-output "" }
++     /*<U+202E> } <U+2066>if (isAdmin)<U+2069> <U+2066> begin admins only */
++       ~~~~~~~~                                ~~~~~~~~                    ^
++       |                                       |                           |
++       |                                       |                           end of bidirectional context
++       U+202E (RIGHT-TO-LEFT OVERRIDE)         U+2066 (LEFT-TO-RIGHT ISOLATE)
++   { dg-end-multiline-output "" }
++#endif
++
++        __builtin_printf("You are an admin.\n");
++    /* end admins only â® { â¦*/
++/* { dg-warning "bidirectional" "" { target *-*-* } .-1 } */
++#if 0
++   { dg-begin-multiline-output "" }
++     /* end admins only <U+202E> { <U+2066>*/
++                        ~~~~~~~~   ~~~~~~~~ ^
++                        |          |        |
++                        |          |        end of bidirectional context
++                        |          U+2066 (LEFT-TO-RIGHT ISOLATE)
++                        U+202E (RIGHT-TO-LEFT OVERRIDE)
++   { dg-end-multiline-output "" }
++#endif
++
++    return 0;
++}
++
++int LRE_âª_PDF_\u202c;
++/* { dg-warning "mismatch" "" { target *-*-* } .-1 } */
++#if 0
++   { dg-begin-multiline-output "" }
++ int LRE_<U+202A>_PDF_\u202c;
++         ~~~~~~~~     ^~~~~~
++   { dg-end-multiline-output "" }
++#endif
++
++const char *s1 = "LRE_âª_PDF_\u202c";
++/* { dg-warning "mismatch" "" { target *-*-* } .-1 } */
++#if 0
++   { dg-begin-multiline-output "" }
++ const char *s1 = "LRE_<U+202A>_PDF_\u202c";
++                       ~~~~~~~~     ^~~~~~
++   { dg-end-multiline-output "" }
++#endif
+diff --git a/libcpp/lex.c b/libcpp/lex.c
+index 2421d6c0f40..94c36f0d014 100644
+--- a/libcpp/lex.c
++++ b/libcpp/lex.c
+@@ -1172,11 +1172,34 @@ namespace bidi {
+   /* All the UTF-8 encodings of bidi characters start with E2.  */
+   constexpr uchar utf8_start = 0xe2;
+ 
++  struct context
++  {
++    context () {}
++    context (location_t loc, kind k, bool pdf, bool ucn)
++    : m_loc (loc), m_kind (k), m_pdf (pdf), m_ucn (ucn)
++    {
++    }
++
++    kind get_pop_kind () const
++    {
++      return m_pdf ? kind::PDF : kind::PDI;
++    }
++    bool ucn_p () const
++    {
++      return m_ucn;
++    }
++
++    location_t m_loc;
++    kind m_kind;
++    unsigned m_pdf : 1;
++    unsigned m_ucn : 1;
++  };
++
+   /* A vector holding currently open bidi contexts.  We use a char for
+      each context, its LSB is 1 if it represents a PDF context, 0 if it
+      represents a PDI context.  The next bit is 1 if this context was open
+      by a bidi character written as a UCN, and 0 when it was UTF-8.  */
+-  semi_embedded_vec <unsigned char, 16> vec;
++  semi_embedded_vec <context, 16> vec;
+ 
+   /* Close the whole comment/identifier/string literal/character constant
+      context.  */
+@@ -1193,19 +1216,19 @@ namespace bidi {
+     vec.truncate (len - 1);
+   }
+ 
+-  /* Return the context of the Ith element.  */
+-  kind ctx_at (unsigned int i)
++  /* Return the pop kind of the context of the Ith element.  */
++  kind pop_kind_at (unsigned int i)
+   {
+-    return (vec[i] & 1) ? kind::PDF : kind::PDI;
++    return vec[i].get_pop_kind ();
+   }
+ 
+-  /* Return which context is currently opened.  */
++  /* Return the pop kind of the context that is currently opened.  */
+   kind current_ctx ()
+   {
+     unsigned int len = vec.count ();
+     if (len == 0)
+       return kind::NONE;
+-    return ctx_at (len - 1);
++    return vec[len - 1].get_pop_kind ();
+   }
+ 
+   /* Return true if the current context comes from a UCN origin, that is,
+@@ -1214,11 +1237,19 @@ namespace bidi {
+   {
+     unsigned int len = vec.count ();
+     gcc_checking_assert (len > 0);
+-    return (vec[len - 1] >> 1) & 1;
++    return vec[len - 1].m_ucn;
+   }
+ 
+-  /* We've read a bidi char, update the current vector as necessary.  */
+-  void on_char (kind k, bool ucn_p)
++  location_t current_ctx_loc ()
++  {
++    unsigned int len = vec.count ();
++    gcc_checking_assert (len > 0);
++    return vec[len - 1].m_loc;
++  }
++
++  /* We've read a bidi char, update the current vector as necessary.
++     LOC is only valid when K is not kind::NONE.  */
++  void on_char (kind k, bool ucn_p, location_t loc)
+   {
+     switch (k)
+       {
+@@ -1226,12 +1257,12 @@ namespace bidi {
+       case kind::RLE:
+       case kind::LRO:
+       case kind::RLO:
+-	vec.push (ucn_p ? 3u : 1u);
++	vec.push (context (loc, k, true, ucn_p));
+ 	break;
+       case kind::LRI:
+       case kind::RLI:
+       case kind::FSI:
+-	vec.push (ucn_p ? 2u : 0u);
++	vec.push (context (loc, k, false, ucn_p));
+ 	break;
+       /* PDF terminates the scope of the last LRE, RLE, LRO, or RLO
+ 	 whose scope has not yet been terminated.  */
+@@ -1245,7 +1276,7 @@ namespace bidi {
+ 	 yet been terminated.  */
+       case kind::PDI:
+ 	for (int i = vec.count () - 1; i >= 0; --i)
+-	  if (ctx_at (i) == kind::PDI)
++	  if (pop_kind_at (i) == kind::PDI)
+ 	    {
+ 	      vec.truncate (i);
+ 	      break;
+@@ -1295,10 +1326,47 @@ namespace bidi {
+   }
+ }
+ 
++/* Get location_t for the range of bytes [START, START + NUM_BYTES)
++   within the current line in FILE, with the caret at START.  */
++
++static location_t
++get_location_for_byte_range_in_cur_line (cpp_reader *pfile,
++					 const unsigned char *const start,
++					 size_t num_bytes)
++{
++  gcc_checking_assert (num_bytes > 0);
++
++  /* CPP_BUF_COLUMN and linemap_position_for_column both refer
++     to offsets in bytes, but CPP_BUF_COLUMN is 0-based,
++     whereas linemap_position_for_column is 1-based.  */
++
++  /* Get 0-based offsets within the line.  */
++  size_t start_offset = CPP_BUF_COLUMN (pfile->buffer, start);
++  size_t end_offset = start_offset + num_bytes - 1;
++
++  /* Now convert to location_t, where "columns" are 1-based byte offsets.  */
++  location_t start_loc = linemap_position_for_column (pfile->line_table,
++						      start_offset + 1);
++  location_t end_loc = linemap_position_for_column (pfile->line_table,
++						     end_offset + 1);
++
++  if (start_loc == end_loc)
++    return start_loc;
++
++  source_range src_range;
++  src_range.m_start = start_loc;
++  src_range.m_finish = end_loc;
++  location_t combined_loc = COMBINE_LOCATION_DATA (pfile->line_table,
++						   start_loc,
++						   src_range,
++						   NULL);
++  return combined_loc;
++}
++
+ /* Parse a sequence of 3 bytes starting with P and return its bidi code.  */
+ 
+ static bidi::kind
+-get_bidi_utf8 (const unsigned char *const p)
++get_bidi_utf8_1 (const unsigned char *const p)
+ {
+   gcc_checking_assert (p[0] == bidi::utf8_start);
+ 
+@@ -1340,10 +1408,25 @@ get_bidi_utf8 (const unsigned char *cons
+   return bidi::kind::NONE;
+ }
+ 
++/* Parse a sequence of 3 bytes starting with P and return its bidi code.
++   If the kind is not NONE, write the location to *OUT.*/
++
++static bidi::kind
++get_bidi_utf8 (cpp_reader *pfile, const unsigned char *const p, location_t *out)
++{
++  bidi::kind result = get_bidi_utf8_1 (p);
++  if (result != bidi::kind::NONE)
++    {
++      /* We have a sequence of 3 bytes starting at P.  */
++      *out = get_location_for_byte_range_in_cur_line (pfile, p, 3);
++    }
++  return result;
++}
++
+ /* Parse a UCN where P points just past \u or \U and return its bidi code.  */
+ 
+ static bidi::kind
+-get_bidi_ucn (const unsigned char *p, bool is_U)
++get_bidi_ucn_1 (const unsigned char *p, bool is_U)
+ {
+   /* 6.4.3 Universal Character Names
+       \u hex-quad
+@@ -1412,6 +1495,62 @@ get_bidi_ucn (const unsigned char *p, bo
+   return bidi::kind::NONE;
+ }
+ 
++/* Parse a UCN where P points just past \u or \U and return its bidi code.
++   If the kind is not NONE, write the location to *OUT.*/
++
++static bidi::kind
++get_bidi_ucn (cpp_reader *pfile,  const unsigned char *p, bool is_U,
++	      location_t *out)
++{
++  bidi::kind result = get_bidi_ucn_1 (p, is_U);
++  if (result != bidi::kind::NONE)
++    {
++      const unsigned char *start = p - 2;
++      size_t num_bytes = 2 + (is_U ? 8 : 4);
++      *out = get_location_for_byte_range_in_cur_line (pfile, start, num_bytes);
++    }
++  return result;
++}
++
++/* Subclass of rich_location for reporting on unpaired UTF-8
++   bidirectional control character(s).
++   Escape the source lines on output, and show all unclosed
++   bidi context, labelling everything.  */
++
++class unpaired_bidi_rich_location : public rich_location
++{
++ public:
++  class custom_range_label : public range_label
++  {
++   public:
++     label_text get_text (unsigned range_idx) const FINAL OVERRIDE
++     {
++       /* range 0 is the primary location; each subsequent range i + 1
++	  is for bidi::vec[i].  */
++       if (range_idx > 0)
++	 {
++	   const bidi::context &ctxt (bidi::vec[range_idx - 1]);
++	   return label_text::borrow (bidi::to_str (ctxt.m_kind));
++	 }
++       else
++	 return label_text::borrow (_("end of bidirectional context"));
++     }
++  };
++
++  unpaired_bidi_rich_location (cpp_reader *pfile, location_t loc)
++  : rich_location (pfile->line_table, loc, &m_custom_label)
++  {
++    set_escape_on_output (true);
++    for (unsigned i = 0; i < bidi::vec.count (); i++)
++      add_range (bidi::vec[i].m_loc,
++		 SHOW_RANGE_WITHOUT_CARET,
++		 &m_custom_label);
++  }
++
++ private:
++   custom_range_label m_custom_label;
++};
++
+ /* We're closing a bidi context, that is, we've encountered a newline,
+    are closing a C-style comment, or are at the end of a string literal,
+    character constant, or identifier.  Warn if this context was not
+@@ -1427,11 +1566,17 @@ maybe_warn_bidi_on_close (cpp_reader *pf
+       const location_t loc
+ 	= linemap_position_for_column (pfile->line_table,
+ 				       CPP_BUF_COLUMN (pfile->buffer, p));
+-      rich_location rich_loc (pfile->line_table, loc);
+-      rich_loc.set_escape_on_output (true);
+-      cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc,
+-		      "unpaired UTF-8 bidirectional control character "
+-		      "detected");
++      unpaired_bidi_rich_location rich_loc (pfile, loc);
++      /* cpp_callbacks doesn't yet have a way to handle singular vs plural
++	 forms of a diagnostic, so fake it for now.  */
++      if (bidi::vec.count () > 1)
++	cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc,
++			"unpaired UTF-8 bidirectional control characters "
++			"detected");
++      else
++	cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc,
++			"unpaired UTF-8 bidirectional control character "
++			"detected");
+     }
+   /* We're done with this context.  */
+   bidi::on_close ();
+@@ -1439,12 +1584,13 @@ maybe_warn_bidi_on_close (cpp_reader *pf
+ 
+ /* We're at the beginning or in the middle of an identifier/comment/string
+    literal/character constant.  Warn if we've encountered a bidi character.
+-   KIND says which bidi character it was; P points to it in the character
+-   stream.  UCN_P is true iff this bidi character was written as a UCN.  */
++   KIND says which bidi control character it was; UCN_P is true iff this bidi
++   control character was written as a UCN.  LOC is the location of the
++   character, but is only valid if KIND != bidi::kind::NONE.  */
+ 
+ static void
+-maybe_warn_bidi_on_char (cpp_reader *pfile, const uchar *p, bidi::kind kind,
+-			 bool ucn_p)
++maybe_warn_bidi_on_char (cpp_reader *pfile, bidi::kind kind,
++			 bool ucn_p, location_t loc)
+ {
+   if (__builtin_expect (kind == bidi::kind::NONE, 1))
+     return;
+@@ -1453,9 +1599,6 @@ maybe_warn_bidi_on_char (cpp_reader *pfi
+ 
+   if (warn_bidi != bidirectional_none)
+     {
+-      const location_t loc
+-	= linemap_position_for_column (pfile->line_table,
+-				       CPP_BUF_COLUMN (pfile->buffer, p));
+       rich_location rich_loc (pfile->line_table, loc);
+       rich_loc.set_escape_on_output (true);
+ 
+@@ -1467,9 +1610,12 @@ maybe_warn_bidi_on_char (cpp_reader *pfi
+ 	{
+ 	  if (warn_bidi == bidirectional_unpaired
+ 	      && bidi::current_ctx_ucn_p () != ucn_p)
+-	    cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc,
+-			    "UTF-8 vs UCN mismatch when closing "
+-			    "a context by \"%s\"", bidi::to_str (kind));
++	    {
++	      rich_loc.add_range (bidi::current_ctx_loc ());
++	      cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc,
++			      "UTF-8 vs UCN mismatch when closing "
++			      "a context by \"%s\"", bidi::to_str (kind));
++	    }
+ 	}
+       else if (warn_bidi == bidirectional_any)
+ 	{
+@@ -1484,7 +1630,7 @@ maybe_warn_bidi_on_char (cpp_reader *pfi
+ 	}
+     }
+   /* We're done with this context.  */
+-  bidi::on_char (kind, ucn_p);
++  bidi::on_char (kind, ucn_p, loc);
+ }
+ 
+ /* Skip a C-style block comment.  We find the end of the comment by
+@@ -1552,8 +1698,9 @@ _cpp_skip_block_comment (cpp_reader *pfi
+ 	 a bidirectional control character.  */
+       else if (__builtin_expect (c == bidi::utf8_start, 0) && warn_bidi_p)
+ 	{
+-	  bidi::kind kind = get_bidi_utf8 (cur - 1);
+-	  maybe_warn_bidi_on_char (pfile, cur, kind, /*ucn_p=*/false);
++	  location_t loc;
++	  bidi::kind kind = get_bidi_utf8 (pfile, cur - 1, &loc);
++	  maybe_warn_bidi_on_char (pfile, kind, /*ucn_p=*/false, loc);
+ 	}
+     }
+ 
+@@ -1586,9 +1733,9 @@ skip_line_comment (cpp_reader *pfile)
+ 	    {
+ 	      if (__builtin_expect (*buffer->cur == bidi::utf8_start, 0))
+ 		{
+-		  bidi::kind kind = get_bidi_utf8 (buffer->cur);
+-		  maybe_warn_bidi_on_char (pfile, buffer->cur, kind,
+-					   /*ucn_p=*/false);
++		  location_t loc;
++		  bidi::kind kind = get_bidi_utf8 (pfile, buffer->cur, &loc);
++		  maybe_warn_bidi_on_char (pfile, kind, /*ucn_p=*/false, loc);
+ 		}
+ 	      buffer->cur++;
+ 	    }
+@@ -1708,9 +1855,9 @@ forms_identifier_p (cpp_reader *pfile, i
+ 	  if (__builtin_expect (*buffer->cur == bidi::utf8_start, 0)
+ 	      && warn_bidi_p)
+ 	    {
+-	      bidi::kind kind = get_bidi_utf8 (buffer->cur);
+-	      maybe_warn_bidi_on_char (pfile, buffer->cur, kind,
+-				       /*ucn_p=*/false);
++	      location_t loc;
++	      bidi::kind kind = get_bidi_utf8 (pfile, buffer->cur, &loc);
++	      maybe_warn_bidi_on_char (pfile, kind, /*ucn_p=*/false, loc);
+ 	    }
+ 	  if (_cpp_valid_utf8 (pfile, &buffer->cur, buffer->rlimit, 1 + !first,
+ 			       state, &s))
+@@ -1722,10 +1869,12 @@ forms_identifier_p (cpp_reader *pfile, i
+ 	  buffer->cur += 2;
+ 	  if (warn_bidi_p)
+ 	    {
+-	      bidi::kind kind = get_bidi_ucn (buffer->cur,
+-					      buffer->cur[-1] == 'U');
+-	      maybe_warn_bidi_on_char (pfile, buffer->cur, kind,
+-				       /*ucn_p=*/true);
++	      location_t loc;
++	      bidi::kind kind = get_bidi_ucn (pfile,
++					      buffer->cur,
++					      buffer->cur[-1] == 'U',
++					      &loc);
++	      maybe_warn_bidi_on_char (pfile, kind, /*ucn_p=*/true, loc);
+ 	    }
+ 	  if (_cpp_valid_ucn (pfile, &buffer->cur, buffer->rlimit, 1 + !first,
+ 			      state, &s, NULL, NULL))
+@@ -2336,8 +2485,11 @@ lex_raw_string (cpp_reader *pfile, cpp_t
+ 	}
+       else if (__builtin_expect ((unsigned char) c == bidi::utf8_start, 0)
+ 	       && warn_bidi_p)
+-	maybe_warn_bidi_on_char (pfile, pos - 1, get_bidi_utf8 (pos - 1),
+-				 /*ucn_p=*/false);
++	{
++	  location_t loc;
++	  bidi::kind kind = get_bidi_utf8 (pfile, pos - 1, &loc);
++	  maybe_warn_bidi_on_char (pfile, kind, /*ucn_p=*/false, loc);
++	}
+     }
+ 
+   if (warn_bidi_p)
+@@ -2447,8 +2599,10 @@ lex_string (cpp_reader *pfile, cpp_token
+ 	{
+ 	  if ((cur[0] == 'u' || cur[0] == 'U') && warn_bidi_p)
+ 	    {
+-	      bidi::kind kind = get_bidi_ucn (cur + 1, cur[0] == 'U');
+-	      maybe_warn_bidi_on_char (pfile, cur, kind, /*ucn_p=*/true);
++	      location_t loc;
++	      bidi::kind kind = get_bidi_ucn (pfile, cur + 1, cur[0] == 'U',
++					      &loc);
++	      maybe_warn_bidi_on_char (pfile, kind, /*ucn_p=*/true, loc);
+ 	    }
+ 	  cur++;
+ 	}
+@@ -2476,8 +2630,9 @@ lex_string (cpp_reader *pfile, cpp_token
+ 	saw_NUL = true;
+       else if (__builtin_expect (c == bidi::utf8_start, 0) && warn_bidi_p)
+ 	{
+-	  bidi::kind kind = get_bidi_utf8 (cur - 1);
+-	  maybe_warn_bidi_on_char (pfile, cur - 1, kind, /*ucn_p=*/false);
++	  location_t loc;
++	  bidi::kind kind = get_bidi_utf8 (pfile, cur - 1, &loc);
++	  maybe_warn_bidi_on_char (pfile, kind, /*ucn_p=*/false, loc);
+ 	}
+     }
+ 
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch b/poky/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch
deleted file mode 100644
index 265ca0e..0000000
--- a/poky/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 127716a32a11ca2a6b3aac068054bfc69c4dcfd8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:16:28 +0400
-Subject: [PATCH] COLLECT_GCC_OPTIONS
-
-This patch adds --sysroot into COLLECT_GCC_OPTIONS which is used to
-invoke collect2.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- gcc/gcc.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index be7630ffd8c..1bc45285384 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -5383,6 +5383,15 @@ set_collect_gcc_options (void)
- 		sizeof ("COLLECT_GCC_OPTIONS=") - 1);
- 
-   first_time = TRUE;
-+#ifdef HAVE_LD_SYSROOT
-+  if (target_system_root_changed && target_system_root)
-+    {
-+      obstack_grow (&collect_obstack, "'--sysroot=", sizeof("'--sysroot=")-1);
-+      obstack_grow (&collect_obstack, target_system_root,strlen(target_system_root));
-+      obstack_grow (&collect_obstack, "'", 1);
-+      first_time = FALSE;
-+    }
-+#endif
-   for (i = 0; (int) i < n_switches; i++)
-     {
-       const char *const *args;
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch b/poky/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch
deleted file mode 100644
index 47f611e..0000000
--- a/poky/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 904d102e3ccb93296b16ceb2e283a6ccf3c1d718 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:20:01 +0400
-Subject: [PATCH] fortran cross-compile hack.
-
-* Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used
-used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross
-directory.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- libgfortran/configure    | 2 +-
- libgfortran/configure.ac | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libgfortran/configure b/libgfortran/configure
-index f3634389cf8..f974e874b8e 100755
---- a/libgfortran/configure
-+++ b/libgfortran/configure
-@@ -13102,7 +13102,7 @@ esac
- 
- # We need gfortran to compile parts of the library
- #AC_PROG_FC(gfortran)
--FC="$GFORTRAN"
-+#FC="$GFORTRAN"
- ac_ext=${ac_fc_srcext-f}
- ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
- ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
-diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac
-index 8961e314d82..49c8221cb6b 100644
---- a/libgfortran/configure.ac
-+++ b/libgfortran/configure.ac
-@@ -271,7 +271,7 @@ AC_SUBST(enable_static)
- 
- # We need gfortran to compile parts of the library
- #AC_PROG_FC(gfortran)
--FC="$GFORTRAN"
-+#FC="$GFORTRAN"
- AC_PROG_FC(gfortran)
- 
- # extra LD Flags which are required for targets
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch b/poky/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch
deleted file mode 100644
index f385f8c..0000000
--- a/poky/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From a2dc2fa4cc7e5d54544d4a7b6601eef79bc26cad Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:23:08 +0400
-Subject: [PATCH] MIPS64: Default to N64 ABI
-
-MIPS64 defaults to n32 ABI, this patch makes it
-so that it defaults to N64 ABI
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate [OE config specific]
----
- gcc/config.gcc | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/gcc/config.gcc b/gcc/config.gcc
-index 3ec7582f5dd..a046fa6945c 100644
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -2543,29 +2543,29 @@ mips*-*-linux*)				# Linux MIPS, either endian.
- 			default_mips_arch=mips32
- 			;;
- 		mips64el-st-linux-gnu)
--			default_mips_abi=n32
-+			default_mips_abi=64
- 			tm_file="${tm_file} mips/st.h"
- 			tmake_file="${tmake_file} mips/t-st"
- 			enable_mips_multilibs="yes"
- 			;;
- 		mips64octeon*-*-linux*)
--			default_mips_abi=n32
-+			default_mips_abi=64
- 			tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
- 			target_cpu_default=MASK_SOFT_FLOAT_ABI
- 			enable_mips_multilibs="yes"
- 			;;
- 		mipsisa64r6*-*-linux*)
--			default_mips_abi=n32
-+			default_mips_abi=64
- 			default_mips_arch=mips64r6
- 			enable_mips_multilibs="yes"
- 			;;
- 		mipsisa64r2*-*-linux*)
--			default_mips_abi=n32
-+			default_mips_abi=64
- 			default_mips_arch=mips64r2
- 			enable_mips_multilibs="yes"
- 			;;
- 		mips64*-*-linux* | mipsisa64*-*-linux*)
--			default_mips_abi=n32
-+			default_mips_abi=64
- 			enable_mips_multilibs="yes"
- 			;;
- 	esac
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch b/poky/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch
index 6b69257..ebee30b 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch
@@ -17,7 +17,8 @@
 
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
 
-Upstream-Status: Submitted [https://gcc.gnu.org/pipermail/gcc-patches/2021-October/582722.html]
+Submitted [https://gcc.gnu.org/pipermail/gcc-patches/2021-October/582722.html]
+Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=66e157188bd2f789809e17e85f917534c9381599]
 ---
  gcc/Makefile.in | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch b/poky/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch
index 86f75d0..fd7d604 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch
@@ -6,7 +6,7 @@
 musl defines ptrdiff_t size_t and wchar_t
 so dont define them here if musl is definining them
 
-Upstream-Status: Pending
+Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=85a438fc78dd12249ca854a3e5c577fefeb1a5cd]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch b/poky/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch
deleted file mode 100644
index 70afa4f..0000000
--- a/poky/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 3d59f763b824ac11f8360931092baf0bc1719562 Mon Sep 17 00:00:00 2001
-From: Juro Bystricky <juro.bystricky@intel.com>
-Date: Mon, 19 Mar 2018 22:31:20 -0700
-Subject: [PATCH] fix segmentation fault in precompiled header generation
-
-Prevent a segmentation fault which occurs when using incorrect
-structure trying to access name of some named operators, such as
-CPP_NOT, CPP_AND etc. "token->val.node.spelling" cannot be used in
-those cases, as is may not be initialized at all.
-
-[YOCTO #11738]
-
-Upstream-Status: Pending
-
-Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libcpp/lex.c | 26 +++++++++++++++++++++-----
- 1 file changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/libcpp/lex.c b/libcpp/lex.c
-index 06bcc31c87e..24bed9a35fa 100644
---- a/libcpp/lex.c
-+++ b/libcpp/lex.c
-@@ -3531,11 +3531,27 @@ cpp_spell_token (cpp_reader *pfile, const cpp_token *token,
-     spell_ident:
-     case SPELL_IDENT:
-       if (forstring)
--	{
--	  memcpy (buffer, NODE_NAME (token->val.node.spelling),
--		  NODE_LEN (token->val.node.spelling));
--	  buffer += NODE_LEN (token->val.node.spelling);
--	}
-+        {
-+          if (token->type == CPP_NAME)
-+            {
-+              memcpy (buffer, NODE_NAME (token->val.node.spelling),
-+                    NODE_LEN (token->val.node.spelling));
-+              buffer += NODE_LEN (token->val.node.spelling);
-+              break;
-+            }
-+          /* NAMED_OP, cannot use node.spelling */
-+          if (token->flags & NAMED_OP)
-+            {
-+              const char *str = cpp_named_operator2name (token->type);
-+              if (str)
-+                {
-+                  size_t len = strlen(str);
-+                  memcpy(buffer, str, len);
-+                  buffer += len;
-+                }
-+              break;
-+            }
-+        }
-       else
- 	buffer = _cpp_spell_ident_ucns (buffer, token->val.node.node);
-       break;
diff --git a/poky/meta/recipes-devtools/gcc/libgfortran.inc b/poky/meta/recipes-devtools/gcc/libgfortran.inc
index 344ec5e..e810146 100644
--- a/poky/meta/recipes-devtools/gcc/libgfortran.inc
+++ b/poky/meta/recipes-devtools/gcc/libgfortran.inc
@@ -5,6 +5,11 @@
     --with-build-sysroot=${STAGING_DIR_TARGET} \
 "
 
+# An arm hard float target like raspberrypi4 won't build
+# as CFLAGS don't make it to the fortran compiler otherwise
+# (the configure script sets FC to $GFORTRAN unconditionally)
+export GFORTRAN = "${FC}"
+
 do_configure () {
 	for target in libbacktrace libgfortran
 	do
diff --git a/poky/meta/recipes-devtools/gdb/gdb-10.2.inc b/poky/meta/recipes-devtools/gdb/gdb-10.2.inc
deleted file mode 100644
index 0d27507..0000000
--- a/poky/meta/recipes-devtools/gdb/gdb-10.2.inc
+++ /dev/null
@@ -1,23 +0,0 @@
-LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
-		    file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
-		    file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
-		    file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
-
-SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
-           file://0001-make-man-install-relative-to-DESTDIR.patch \
-           file://0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \
-           file://0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \
-           file://0004-Add-support-for-Renesas-SH-sh4-architecture.patch \
-           file://0005-Dont-disable-libreadline.a-when-using-disable-static.patch \
-           file://0006-use-asm-sgidefs.h.patch \
-           file://0008-Change-order-of-CFLAGS.patch \
-           file://0009-resolve-restrict-keyword-conflict.patch \
-           file://0010-Fix-invalid-sigprocmask-call.patch \
-           file://0011-gdbserver-ctrl-c-handling.patch \
-           file://0012-arc-Add-support-for-signal-handlers.patch \
-           file://0013-arc-Add-support-for-signal-frames-for-Linux-targets.patch \
-           file://0014-arc-Take-into-account-the-REGNUM-in-supply-collect-g.patch \
-           file://0015-gdb-Add-native-support-for-ARC-in-GNU-Linux.patch \
-           "
-SRC_URI[sha256sum] = "aaa1223d534c9b700a8bec952d9748ee1977513f178727e1bee520ee000b4f29"
diff --git a/poky/meta/recipes-devtools/gdb/gdb-11.1.inc b/poky/meta/recipes-devtools/gdb/gdb-11.1.inc
new file mode 100644
index 0000000..5364a88
--- /dev/null
+++ b/poky/meta/recipes-devtools/gdb/gdb-11.1.inc
@@ -0,0 +1,19 @@
+LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+		    file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
+		    file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
+		    file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
+
+SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
+           file://0001-make-man-install-relative-to-DESTDIR.patch \
+           file://0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \
+           file://0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \
+           file://0005-Dont-disable-libreadline.a-when-using-disable-static.patch \
+           file://0006-use-asm-sgidefs.h.patch \
+           file://0007-Change-order-of-CFLAGS.patch \
+           file://0008-resolve-restrict-keyword-conflict.patch \
+           file://0009-Fix-invalid-sigprocmask-call.patch \
+           file://0010-gdbserver-ctrl-c-handling.patch \
+           file://0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch \
+           "
+SRC_URI[sha256sum] = "cccfcc407b20d343fb320d4a9a2110776dd3165118ffd41f4b1b162340333f94"
diff --git a/poky/meta/recipes-devtools/gdb/gdb-common.inc b/poky/meta/recipes-devtools/gdb/gdb-common.inc
index 0fe7b4e..925b0c2 100644
--- a/poky/meta/recipes-devtools/gdb/gdb-common.inc
+++ b/poky/meta/recipes-devtools/gdb/gdb-common.inc
@@ -2,7 +2,7 @@
 HOMEPAGE = "http://www.gnu.org/software/gdb/"
 DESCRIPTION = "GDB, the GNU Project debugger, allows you to see what is going on inside another program while it executes -- or what another program was doing at the moment it crashed."
 SECTION = "devel"
-DEPENDS = "expat zlib ncurses virtual/libiconv ${LTTNGUST} bison-native"
+DEPENDS = "expat gmp zlib ncurses virtual/libiconv ${LTTNGUST} bison-native"
 
 LTTNGUST = "lttng-ust"
 LTTNGUST:arc = ""
@@ -27,6 +27,7 @@
                 --disable-gas --disable-binutils \
                 --disable-ld --disable-gold \
                 --disable-gprof \
+                --with-libgmp-prefix=${STAGING_EXECPREFIXDIR} \
 "
 
 PACKAGECONFIG ??= "readline ${@bb.utils.filter('DISTRO_FEATURES', 'debuginfod', d)}"
@@ -36,7 +37,7 @@
 PACKAGECONFIG[babeltrace] = "--with-babeltrace,--without-babeltrace,babeltrace"
 # ncurses is already a hard DEPENDS, but would be added here if it weren't
 PACKAGECONFIG[tui] = "--enable-tui,--disable-tui"
-PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz"
+PACKAGECONFIG[xz] = "--with-lzma --with-liblzma-prefix=${STAGING_DIR_HOST},--without-lzma,xz"
 PACKAGECONFIG[debuginfod] = "--with-debuginfod, --without-debuginfod, elfutils"
 
 GDBPROPREFIX = "--program-prefix=''"
diff --git a/poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc b/poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc
index dfacba2..836c51a 100644
--- a/poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc
+++ b/poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc
@@ -6,7 +6,7 @@
 PN = "gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}"
 BPN = "gdb"
 
-DEPENDS = "nativesdk-ncurses nativesdk-expat nativesdk-gettext \
+DEPENDS = "nativesdk-ncurses nativesdk-expat nativesdk-gettext nativesdk-gmp \
            virtual/${HOST_PREFIX}gcc-crosssdk virtual/${HOST_PREFIX}binutils-crosssdk virtual/nativesdk-libc"
 
 GDBPROPREFIX = "--program-prefix='${TARGET_PREFIX}'"
diff --git a/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_10.2.bb b/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_11.1.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gdb/gdb-cross-canadian_10.2.bb
rename to poky/meta/recipes-devtools/gdb/gdb-cross-canadian_11.1.bb
diff --git a/poky/meta/recipes-devtools/gdb/gdb-cross.inc b/poky/meta/recipes-devtools/gdb/gdb-cross.inc
index 4e50cd5..9f9675c 100644
--- a/poky/meta/recipes-devtools/gdb/gdb-cross.inc
+++ b/poky/meta/recipes-devtools/gdb/gdb-cross.inc
@@ -1,6 +1,6 @@
 require gdb-common.inc
 
-DEPENDS = "expat-native ncurses-native flex-native bison-native"
+DEPENDS = "expat-native gmp-native ncurses-native flex-native bison-native"
 
 inherit python3native pkgconfig
 
diff --git a/poky/meta/recipes-devtools/gdb/gdb-cross_10.2.bb b/poky/meta/recipes-devtools/gdb/gdb-cross_11.1.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gdb/gdb-cross_10.2.bb
rename to poky/meta/recipes-devtools/gdb/gdb-cross_11.1.bb
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch b/poky/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch
index 84d1783..824b96f 100644
--- a/poky/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch
+++ b/poky/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch
@@ -1,22 +1,22 @@
-From e5126c7167e26f865990dc5f86344602603aa8c6 Mon Sep 17 00:00:00 2001
+From a6d3df9d84463ec500d9d01558ab8a17e824e9e5 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 2 Mar 2015 02:27:55 +0000
-Subject: [PATCH 01/11] make man install relative to DESTDIR
+Subject: [PATCH 01/10] make man install relative to DESTDIR
 
 Upstream-Status: Pending
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
- sim/common/Makefile.in | 2 +-
+ sim/common/Make-common.in | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/sim/common/Makefile.in b/sim/common/Makefile.in
-index f713fcaa35b..7c553709d3f 100644
---- a/sim/common/Makefile.in
-+++ b/sim/common/Makefile.in
-@@ -35,7 +35,7 @@ tooldir = $(libdir)/$(target_alias)
- datarootdir = @datarootdir@
+diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in
+index 8c2cacea1e5..4a52eef2203 100644
+--- a/sim/common/Make-common.in
++++ b/sim/common/Make-common.in
+@@ -63,7 +63,7 @@ tooldir = $(libdir)/$(target_alias)
  datadir = @datadir@
+ datarootdir = @datarootdir@
  mandir = @mandir@
 -man1dir = $(mandir)/man1
 +man1dir = $(DESTDIR)$(mandir)/man1
@@ -24,5 +24,5 @@
  includedir = @includedir@
  
 -- 
-2.29.2
+2.33.1
 
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch b/poky/meta/recipes-devtools/gdb/gdb/0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
index f830993d..591c9bf 100644
--- a/poky/meta/recipes-devtools/gdb/gdb/0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
+++ b/poky/meta/recipes-devtools/gdb/gdb/0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
@@ -1,7 +1,7 @@
-From 0680242c9a3a0149a23e63034ecb4404de2293dd Mon Sep 17 00:00:00 2001
+From 7f1f25eaaace289bc33c5aaa1c5fe9e04e719651 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 23 Mar 2016 06:30:09 +0000
-Subject: [PATCH 02/11] mips-linux-nat: Define _ABIO32 if not defined
+Subject: [PATCH 02/10] mips-linux-nat: Define _ABIO32 if not defined
 
 This helps building gdb on mips64 on musl, since
 musl does not provide sgidefs.h this define is
@@ -16,7 +16,7 @@
  1 file changed, 4 insertions(+)
 
 diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
-index 38ff461a35b..4337795bac8 100644
+index b21c7cb2ea6..6614b4de31e 100644
 --- a/gdb/mips-linux-nat.c
 +++ b/gdb/mips-linux-nat.c
 @@ -41,6 +41,10 @@
@@ -31,5 +31,5 @@
  class mips_linux_nat_target final : public linux_nat_trad_target
  {
 -- 
-2.29.2
+2.33.1
 
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch b/poky/meta/recipes-devtools/gdb/gdb/0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
index cbe1779..09ea533 100644
--- a/poky/meta/recipes-devtools/gdb/gdb/0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
+++ b/poky/meta/recipes-devtools/gdb/gdb/0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
@@ -1,7 +1,7 @@
-From afbb66c244b1ae0aaaa90d88d3cd484f741c614f Mon Sep 17 00:00:00 2001
+From 0cb233ec3951582fa1a051a16bfd644ef4969df5 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 30 Apr 2016 18:32:14 -0700
-Subject: [PATCH 03/11] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC
+Subject: [PATCH 03/10] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC
  systems
 
 Upstream-Status: Pending
@@ -13,7 +13,7 @@
  2 files changed, 12 insertions(+)
 
 diff --git a/gdb/nat/ppc-linux.h b/gdb/nat/ppc-linux.h
-index d937a65b69c..1fd54b4a0e0 100644
+index e712a9a5713..76bbcca0928 100644
 --- a/gdb/nat/ppc-linux.h
 +++ b/gdb/nat/ppc-linux.h
 @@ -18,7 +18,13 @@
@@ -31,7 +31,7 @@
  
  /* This sometimes isn't defined.  */
 diff --git a/gdbserver/linux-ppc-low.cc b/gdbserver/linux-ppc-low.cc
-index 337d555aee7..5d518f37268 100644
+index db9a88219ea..151e4183bb1 100644
 --- a/gdbserver/linux-ppc-low.cc
 +++ b/gdbserver/linux-ppc-low.cc
 @@ -23,7 +23,13 @@
@@ -49,5 +49,5 @@
  #include "arch/ppc-linux-common.h"
  #include "arch/ppc-linux-tdesc.h"
 -- 
-2.29.2
+2.33.1
 
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0004-Add-support-for-Renesas-SH-sh4-architecture.patch b/poky/meta/recipes-devtools/gdb/gdb/0004-Add-support-for-Renesas-SH-sh4-architecture.patch
deleted file mode 100644
index 561cfff..0000000
--- a/poky/meta/recipes-devtools/gdb/gdb/0004-Add-support-for-Renesas-SH-sh4-architecture.patch
+++ /dev/null
@@ -1,913 +0,0 @@
-From 26e406962cf7298837b350b979afff0ac34ecb0b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 2 Mar 2015 02:31:12 +0000
-Subject: [PATCH 04/11] Add support for Renesas SH (sh4) architecture.
-
-gdb (7.4-1~cvs20111117.2) experimental; urgency=low
- .
-   * Add Renesas SH (sh4) support (Closes: #576242)
-     - Thanks Nobuhiro Iwamatsu, Takashi Yoshii.
-Author: Hector Oron <zumbi@debian.org>
-Bug-Debian: http://bugs.debian.org/576242
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/Makefile.in                      |   2 +
- gdb/configure.host                   |   1 +
- gdb/sh-linux-tdep.c                  | 519 +++++++++++++++++++++++++++
- gdb/sh-tdep.c                        |  52 +--
- gdb/sh-tdep.h                        |  49 +++
- gdb/testsuite/gdb.asm/asm-source.exp |   5 +
- gdb/testsuite/gdb.asm/sh.inc         |   3 +-
- gdb/testsuite/gdb.base/annota1.c     |   3 +
- gdb/testsuite/gdb.base/annota3.c     |   4 +
- gdb/testsuite/gdb.base/sigall.c      |   3 +
- gdb/testsuite/gdb.base/signals.c     |   4 +
- 11 files changed, 617 insertions(+), 28 deletions(-)
-
-diff --git a/gdb/Makefile.in b/gdb/Makefile.in
-index 4808357e651..a009004ab05 100644
---- a/gdb/Makefile.in
-+++ b/gdb/Makefile.in
-@@ -2273,6 +2273,8 @@ ALLDEPFILES = \
- 	sh-nbsd-nat.c \
- 	sh-nbsd-tdep.c \
- 	sh-tdep.c \
-+	sh-linux-tdep.c \
-+	sh-linux-nat.c \
- 	sol2-tdep.c \
- 	solib-aix.c \
- 	solib-svr4.c \
-diff --git a/gdb/configure.host b/gdb/configure.host
-index ce528237291..5b5173a71aa 100644
---- a/gdb/configure.host
-+++ b/gdb/configure.host
-@@ -148,6 +148,7 @@ riscv*-*-linux*)	gdb_host=linux ;;
- 
- s390*-*-linux*)		gdb_host=linux ;;
- 
-+sh*-*-linux*)		gdb_host=linux ;;
- sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu)
- 			gdb_host=nbsd ;;
- sh*-*-openbsd*)		gdb_host=nbsd ;;
-diff --git a/gdb/sh-linux-tdep.c b/gdb/sh-linux-tdep.c
-index 5d2f38f5801..06a45b74827 100644
---- a/gdb/sh-linux-tdep.c
-+++ b/gdb/sh-linux-tdep.c
-@@ -18,14 +18,37 @@
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
- 
- #include "defs.h"
-+#include "gdbcore.h"
-+#include "frame.h"
-+#include "frame-base.h"
-+#include "frame-unwind.h"
-+#include "dwarf2-frame.h"
-+#include "value.h"
-+#include "regcache.h"
-+#include "inferior.h"
- #include "osabi.h"
- 
-+#include "reggroups.h"
-+#include "arch-utils.h"
-+#include "floatformat.h"
- #include "solib-svr4.h"
- #include "symtab.h"
-+#include "gdb_string.h"
-+#include "command.h"
-+#include "gdb_assert.h"
- 
- #include "trad-frame.h"
- #include "tramp-frame.h"
- 
-+#include <sys/ptrace.h>
-+#include <sys/types.h>
-+#include <sys/param.h>
-+#include <sys/user.h>
-+#include <sys/syscall.h>
-+
-+#include <asm/ptrace.h>
-+
-+#include "regset.h"
- #include "glibc-tdep.h"
- #include "sh-tdep.h"
- #include "linux-tdep.h"
-@@ -181,9 +204,505 @@ static struct tramp_frame sh_linux_rt_sigreturn_tramp_frame = {
-   sh_linux_rt_sigreturn_init
- };
- 
-+/* Recognizing signal handler frames.  */
-+
-+/* GNU/Linux has two flavors of signals.  Normal signal handlers, and
-+   "realtime" (RT) signals.  The RT signals can provide additional
-+   information to the signal handler if the SA_SIGINFO flag is set
-+   when establishing a signal handler using `sigaction'.  It is not
-+   unlikely that future versions of GNU/Linux will support SA_SIGINFO
-+   for normal signals too.  */
-+
-+/* When the SH Linux kernel calls a signal handler and the
-+   SA_RESTORER flag isn't set, the return address points to a bit of
-+   code on the stack.  This function returns whether the PC appears to
-+   be within this bit of code.
-+
-+   The instruction sequence for normal signals is
-+       mov.w  1f,r3
-+       trapa  #16
-+       or     r0, r0
-+       or     r0, r0
-+       or     r0, r0
-+       or     r0, r0
-+       or     r0, r0
-+    1: .word  __NR_sigreturn
-+   or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x0077.
-+
-+   Checking for the code sequence should be somewhat reliable, because
-+   the effect is to call the system call sigreturn.  This is unlikely
-+   to occur anywhere other than a signal trampoline.
-+
-+   It kind of sucks that we have to read memory from the process in
-+   order to identify a signal trampoline, but there doesn't seem to be
-+   any other way.  The PC_IN_SIGTRAMP macro in tm-linux.h arranges to
-+   only call us if no function name could be identified, which should
-+   be the case since the code is on the stack.
-+
-+   Detection of signal trampolines for handlers that set the
-+   SA_RESTORER flag is in general not possible.  Unfortunately this is
-+   what the GNU C Library has been doing for quite some time now.
-+   However, as of version 2.1.2, the GNU C Library uses signal
-+   trampolines (named __restore and __restore_rt) that are identical
-+   to the ones used by the kernel.  Therefore, these trampolines are
-+   supported too.  */
-+
-+#define MOVW(n)	 (0x9300|((n)-2))	/* Move mem word at PC+n to R3 */
-+#define TRAP16	 0xc310			/* Syscall w/no args (NR in R3) */
-+#define OR_R0_R0 0x200b			/* or r0,r0 (insert to avoid hardware bug) */
-+
-+#define LINUX_SIGTRAMP_INSN0	MOVW(7)		/* Move mem word at PC+7 to R3 */
-+#define LINUX_SIGTRAMP_INSN1	TRAP16		/* Syscall w/no args (NR in R3) */
-+#define LINUX_SIGTRAMP_INSN2	OR_R0_R0	/* or r0,r0 (insert to avoid hardware bug) */
-+
-+static const unsigned short linux_sigtramp_code[] =
-+{
-+  LINUX_SIGTRAMP_INSN0,
-+  LINUX_SIGTRAMP_INSN1,
-+  LINUX_SIGTRAMP_INSN2,
-+  LINUX_SIGTRAMP_INSN2,
-+  LINUX_SIGTRAMP_INSN2,
-+  LINUX_SIGTRAMP_INSN2,
-+  LINUX_SIGTRAMP_INSN2,
-+  __NR_sigreturn
-+};
-+
-+#define LINUX_SIGTRAMP_LEN (sizeof linux_sigtramp_code)
-+
-+/* If PC is in a sigtramp routine, return the address of the start of
-+   the routine.  Otherwise, return 0.  */
-+
-+static CORE_ADDR
-+sh_linux_sigtramp_start (struct frame_info *next_frame)
-+{
-+  CORE_ADDR pc = get_frame_pc (next_frame);
-+  gdb_byte buf[LINUX_SIGTRAMP_LEN];
-+
-+  /* We only recognize a signal trampoline if PC is at the start of
-+     one of the three instructions.  We optimize for finding the PC at
-+     the start, as will be the case when the trampoline is not the
-+     first frame on the stack.  We assume that in the case where the
-+     PC is not at the start of the instruction sequence, there will be
-+     a few trailing readable bytes on the stack.  */
-+
-+  if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN))
-+    return 0;
-+
-+  if (buf[0] != LINUX_SIGTRAMP_INSN0)
-+    {
-+      if (buf[0] != LINUX_SIGTRAMP_INSN1)
-+        return 0;
-+
-+      pc -= 2;
-+
-+      if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN))
-+	return 0;
-+    }
-+
-+  if (memcmp (buf, linux_sigtramp_code, LINUX_SIGTRAMP_LEN) != 0)
-+    return 0;
-+
-+  return pc;
-+}
-+
-+/* This function does the same for RT signals.  Here the instruction
-+   sequence is
-+       mov.w  1f,r3
-+       trapa  #16
-+       or     r0, r0
-+       or     r0, r0
-+       or     r0, r0
-+       or     r0, r0
-+       or     r0, r0
-+    1: .word  __NR_rt_sigreturn
-+   or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x00ad.
-+
-+   The effect is to call the system call rt_sigreturn.  */
-+
-+#define LINUX_RT_SIGTRAMP_INSN0		MOVW(7)		/* Move mem word at PC+7 to R3 */
-+#define LINUX_RT_SIGTRAMP_INSN1		TRAP16		/* Syscall w/no args (NR in R3) */
-+#define LINUX_RT_SIGTRAMP_INSN2		OR_R0_R0	/* or r0,r0 (insert to avoid hardware bug) */
-+
-+static const unsigned short linux_rt_sigtramp_code[] =
-+{
-+  LINUX_RT_SIGTRAMP_INSN0,
-+  LINUX_RT_SIGTRAMP_INSN1,
-+  LINUX_RT_SIGTRAMP_INSN2,
-+  LINUX_RT_SIGTRAMP_INSN2,
-+  LINUX_RT_SIGTRAMP_INSN2,
-+  LINUX_RT_SIGTRAMP_INSN2,
-+  LINUX_RT_SIGTRAMP_INSN2,
-+  __NR_rt_sigreturn
-+};
-+
-+#define LINUX_RT_SIGTRAMP_LEN (sizeof linux_rt_sigtramp_code)
-+
-+/* If PC is in a RT sigtramp routine, return the address of the start
-+   of the routine.  Otherwise, return 0.  */
-+
-+static CORE_ADDR
-+sh_linux_rt_sigtramp_start (struct frame_info *next_frame)
-+{
-+  CORE_ADDR pc = get_frame_pc (next_frame);
-+  gdb_byte buf[LINUX_RT_SIGTRAMP_LEN];
-+
-+  /* We only recognize a signal trampoline if PC is at the start of
-+     one of the two instructions.  We optimize for finding the PC at
-+     the start, as will be the case when the trampoline is not the
-+     first frame on the stack.  We assume that in the case where the
-+     PC is not at the start of the instruction sequence, there will be
-+     a few trailing readable bytes on the stack.  */
-+
-+  if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_RT_SIGTRAMP_LEN))
-+    return 0;
-+
-+  if (buf[0] != LINUX_RT_SIGTRAMP_INSN0)
-+    {
-+      if (buf[0] != LINUX_RT_SIGTRAMP_INSN1)
-+	return 0;
-+
-+      pc -= 2;
-+
-+      if (!safe_frame_unwind_memory (next_frame, pc, buf,
-+				     LINUX_RT_SIGTRAMP_LEN))
-+	return 0;
-+    }
-+
-+  if (memcmp (buf, linux_rt_sigtramp_code, LINUX_RT_SIGTRAMP_LEN) != 0)
-+    return 0;
-+
-+  return pc;
-+}
-+
-+/* Return whether PC is in a GNU/Linux sigtramp routine.  */
-+
-+static int
-+sh_linux_sigtramp_p (struct frame_info *this_frame)
-+{
-+  CORE_ADDR pc = get_frame_pc (this_frame);
-+  char *name;
-+
-+  find_pc_partial_function (pc, &name, NULL, NULL);
-+
-+  /* If we have NAME, we can optimize the search.  The trampolines are
-+     named __restore and __restore_rt.  However, they aren't dynamically
-+     exported from the shared C library, so the trampoline may appear to
-+     be part of the preceding function.  This should always be sigaction,
-+     __sigaction, or __libc_sigaction (all aliases to the same function).  */
-+  if (name == NULL || strstr (name, "sigaction") != NULL)
-+    return (sh_linux_sigtramp_start (this_frame) != 0
-+	    || sh_linux_rt_sigtramp_start (this_frame) != 0);
-+
-+  return (strcmp ("__restore", name) == 0
-+	  || strcmp ("__restore_rt", name) == 0);
-+}
-+
-+/* Offset to struct sigcontext in ucontext, from <asm/ucontext.h>.  */
-+#define SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET 12
-+
-+
-+/* Assuming NEXT_FRAME is a frame following a GNU/Linux sigtramp
-+   routine, return the address of the associated sigcontext structure.  */
-+
-+static CORE_ADDR
-+sh_linux_sigcontext_addr (struct frame_info *this_frame)
-+{
-+  CORE_ADDR pc;
-+  CORE_ADDR sp;
-+
-+  sp = get_frame_register_unsigned (this_frame, SP_REGNUM);
-+
-+  pc = sh_linux_sigtramp_start (this_frame);
-+  if (pc)
-+    {
-+      return sp;
-+    }
-+
-+  pc = sh_linux_rt_sigtramp_start (this_frame);
-+  if (pc)
-+    {
-+      CORE_ADDR ucontext_addr;
-+
-+      /* The sigcontext structure is part of the user context.  A
-+	 pointer to the user context is passed as the third argument
-+	 to the signal handler.  */
-+      ucontext_addr = get_frame_register_unsigned (this_frame, ARG0_REGNUM+2);
-+      return ucontext_addr + SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET;
-+    }
-+
-+  error ("Couldn't recognize signal trampoline.");
-+  return 0;
-+}
-+
-+/* Signal trampolines.  */
-+extern struct sh_frame_cache *sh_alloc_frame_cache (void);
-+
-+static struct sh_frame_cache *
-+sh_linux_sigtramp_frame_cache (struct frame_info *this_frame, void **this_cache)
-+{
-+  struct sh_frame_cache *cache;
-+  struct gdbarch_tdep *tdep = gdbarch_tdep (get_current_arch ());
-+  CORE_ADDR sigcontext_addr;
-+
-+  if (*this_cache)
-+    return *this_cache;
-+
-+  cache = sh_alloc_frame_cache ();
-+
-+  cache->base = get_frame_register_unsigned (this_frame, SP_REGNUM);
-+  sigcontext_addr = tdep->sigcontext_addr (this_frame);
-+  if (tdep->sc_reg_offset)
-+    {
-+      int i;
-+
-+      gdb_assert (tdep->sc_num_regs <= SH_NUM_REGS);
-+
-+      for (i = 0; i < tdep->sc_num_regs; i++)
-+	if (tdep->sc_reg_offset[i] != -1)
-+	  cache->saved_regs[i] = sigcontext_addr + tdep->sc_reg_offset[i];
-+    }
-+
-+  *this_cache = cache;
-+  return cache;
-+}
-+
-+static void
-+sh_linux_sigtramp_frame_this_id (struct frame_info *this_frame, void **this_cache,
-+			     struct frame_id *this_id)
-+{
-+  struct sh_frame_cache *cache =
-+    sh_linux_sigtramp_frame_cache (this_frame, this_cache);
-+
-+  (*this_id) = frame_id_build (cache->base + 64, cache->pc);
-+}
-+
-+extern struct value * sh_frame_prev_register ();
-+static struct value *
-+sh_linux_sigtramp_frame_prev_register (struct frame_info *this_frame,
-+                   void **this_cache, int regnum)
-+{
-+  sh_linux_sigtramp_frame_cache (this_frame, this_cache);
-+
-+  return sh_frame_prev_register (this_frame, this_cache, regnum);
-+}
-+
-+static int
-+sh_linux_sigtramp_frame_sniffer (const struct frame_unwind *self,
-+                 struct frame_info *this_frame,
-+                 void **this_prologue_cache)
-+{
-+  struct gdbarch_tdep *tdep = gdbarch_tdep (get_frame_arch (this_frame));
-+
-+  /* We shouldn't even bother if we don't have a sigcontext_addr
-+     handler.  */
-+  if (tdep->sigcontext_addr == NULL)
-+    return 0;
-+
-+  if (tdep->sigtramp_p != NULL)
-+    {
-+      if (tdep->sigtramp_p (this_frame))
-+    return 1;
-+    }
-+
-+  return 0;
-+}
-+
-+static const struct frame_unwind sh_linux_sigtramp_frame_unwind =
-+{
-+  SIGTRAMP_FRAME,
-+  sh_linux_sigtramp_frame_this_id,
-+  sh_linux_sigtramp_frame_prev_register,
-+  NULL,
-+  sh_linux_sigtramp_frame_sniffer
-+};
-+
-+/* Supply register REGNUM from the buffer specified by GREGS and LEN
-+   in the general-purpose register set REGSET to register cache
-+   REGCACHE.  If REGNUM is -1, do this for all registers in REGSET.  */
-+
-+void
-+sh_supply_gregset (const struct regset *regset, struct regcache *regcache,
-+             int regnum, const void *gregs, size_t len)
-+{
-+  const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+  const char *regs = gregs;
-+  int i;
-+
-+  gdb_assert (len == tdep->sizeof_gregset);
-+
-+  for (i = 0; i < tdep->gregset_num_regs; i++)
-+    {
-+      if ((regnum == i || regnum == -1)
-+      && tdep->gregset_reg_offset[i] != -1)
-+    regcache_raw_supply (regcache, i, regs + tdep->gregset_reg_offset[i]);
-+    }
-+}
-+
-+/* Collect register REGNUM from the register cache REGCACHE and store
-+   it in the buffer specified by GREGS and LEN as described by the
-+   general-purpose register set REGSET.  If REGNUM is -1, do this for
-+   all registers in REGSET.  */
-+
-+void
-+sh_collect_gregset (const struct regset *regset,
-+              const struct regcache *regcache,
-+              int regnum, void *gregs, size_t len)
-+{
-+  const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+  char *regs = gregs;
-+  int i;
-+
-+  gdb_assert (len == tdep->sizeof_gregset);
-+
-+  for (i = 0; i < tdep->gregset_num_regs; i++)
-+    {
-+      if ((regnum == i || regnum == -1)
-+      && tdep->gregset_reg_offset[i] != -1)
-+    regcache_raw_collect (regcache, i, regs + tdep->gregset_reg_offset[i]);
-+    }
-+}
-+
-+/* Supply register REGNUM from the buffer specified by FPREGS and LEN
-+   in the floating-point register set REGSET to register cache
-+   REGCACHE.  If REGNUM is -1, do this for all registers in REGSET.  */
-+
-+static void
-+sh_supply_fpregset (const struct regset *regset, struct regcache *regcache,
-+              int regnum, const void *fpregs, size_t len)
-+{
-+  const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+  const char *regs = fpregs;
-+  int i;
-+
-+  gdb_assert (len == tdep->sizeof_fpregset);
-+  for (i = 0; i < 16; i++)
-+    {
-+      if (regnum == i+25 || regnum == -1)
-+    regcache_raw_supply (regcache, i+25, regs + i*4);
-+    }
-+  if (regnum == FPSCR_REGNUM || regnum == -1)
-+    regcache_raw_supply (regcache, FPSCR_REGNUM, regs + 32*4);
-+  if (regnum == FPUL_REGNUM || regnum == -1)
-+    regcache_raw_supply (regcache, FPUL_REGNUM, regs + 33*4);
-+}
-+
-+/* Collect register REGNUM from the register cache REGCACHE and store
-+   it in the buffer specified by FPREGS and LEN as described by the
-+   floating-point register set REGSET.  If REGNUM is -1, do this for
-+   all registers in REGSET.  */
-+
-+static void
-+sh_collect_fpregset (const struct regset *regset,
-+               const struct regcache *regcache,
-+               int regnum, void *fpregs, size_t len)
-+{
-+  const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+  char *regs = fpregs;
-+  int i;
-+
-+  gdb_assert (len == tdep->sizeof_fpregset);
-+  for (i = 0; i < 16; i++)
-+    {
-+      if (regnum == i+25 || regnum == -1)
-+    regcache_raw_collect (regcache, i+25, regs + i*4);
-+    }
-+  if (regnum == FPSCR_REGNUM || regnum == -1)
-+    regcache_raw_collect (regcache, FPSCR_REGNUM, regs + 32*4);
-+  if (regnum == FPUL_REGNUM || regnum == -1)
-+    regcache_raw_collect (regcache, FPUL_REGNUM, regs + 33*4);
-+}
-+
-+/* Return the appropriate register set for the core section identified
-+   by SECT_NAME and SECT_SIZE.  */
-+
-+const struct regset *
-+sh_linux_regset_from_core_section (struct gdbarch *gdbarch,
-+                   const char *sect_name, size_t sect_size)
-+{
-+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-+
-+  if (strcmp (sect_name, ".reg") == 0 && sect_size == tdep->sizeof_gregset)
-+    {
-+      if (tdep->gregset == NULL)
-+    tdep->gregset = regset_alloc (gdbarch, sh_supply_gregset,
-+                      sh_collect_gregset);
-+      return tdep->gregset;
-+    }
-+
-+  if ((strcmp (sect_name, ".reg2") == 0 && sect_size == tdep->sizeof_fpregset))
-+    {
-+      if (tdep->fpregset == NULL)
-+    tdep->fpregset = regset_alloc (gdbarch, sh_supply_fpregset,
-+                       sh_collect_fpregset);
-+      return tdep->fpregset;
-+    }
-+
-+  return NULL;
-+}
-+
-+/* The register sets used in GNU/Linux ELF core-dumps are identical to
-+   the register sets in `struct user' that are used for a.out
-+   core-dumps.  These are also used by ptrace(2).  The corresponding
-+   types are `elf_gregset_t' for the general-purpose registers (with
-+   `elf_greg_t' the type of a single GP register) and `elf_fpregset_t'
-+   for the floating-point registers.
-+
-+   Those types used to be available under the names `gregset_t' and
-+   `fpregset_t' too, and GDB used those names in the past.  But those
-+   names are now used for the register sets used in the `mcontext_t'
-+   type, which have a different size and layout.  */
-+
-+/* Mapping between the general-purpose registers in `struct user'
-+   format and GDB's register cache layout.  */
-+
-+/* From <sys/reg.h>.  */
-+static int sh_linux_gregset_reg_offset[] =
-+{
-+ 0,	4,	8,	12,	16,	20,	24,	28,
-+ 32,	36,	40,	44,	48,	52,	56,	60,
-+
-+ REG_PC*4,   REG_PR*4,   REG_GBR*4,  -1,
-+ REG_MACH*4, REG_MACL*4, REG_SR*4,
-+};
-+
-+/* Mapping between the general-purpose registers in `struct
-+   sigcontext' format and GDB's register cache layout.  */
-+
-+/* From <asm/sigcontext.h>.  */
-+static int sh_linux_sc_reg_offset[] =
-+{
-+ 4,	8,	12,	16,	20,	24,	28,	32,
-+ 36,	40,	44,	48,	52,	56,	60,	64,
-+ 68,	72,	80,	-1,
-+ 84,	88,	76
-+};
-+
- static void
- sh_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
- {
-+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-+  bfd abfd;
-+
-+  tdep->gregset_reg_offset = sh_linux_gregset_reg_offset;
-+  tdep->gregset_num_regs = ARRAY_SIZE (sh_linux_gregset_reg_offset);
-+  tdep->sizeof_gregset = 23 * 4;
-+
-+  tdep->jb_pc_offset = 32;     /* From <bits/setjmp.h>.  */
-+
-+  tdep->sigtramp_p = sh_linux_sigtramp_p;
-+  tdep->sigcontext_addr = sh_linux_sigcontext_addr;
-+  tdep->sc_reg_offset = sh_linux_sc_reg_offset;
-+  tdep->sc_num_regs = ARRAY_SIZE (sh_linux_sc_reg_offset);
-+
-+  frame_unwind_append_unwinder(gdbarch, &sh_linux_sigtramp_frame_unwind);
-+
-+  /* If we have a register mapping, enable the generic core file
-+     support, unless it has already been enabled.  */
-+  if (tdep->gregset_reg_offset
-+      && !gdbarch_regset_from_core_section_p (gdbarch))
-+    set_gdbarch_regset_from_core_section (gdbarch,
-+                                         sh_linux_regset_from_core_section);
-+
-   linux_init_abi (info, gdbarch);
- 
-   /* GNU/Linux uses SVR4-style shared libraries.  */
-diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
-index 7aadf9165ca..e173e215a2d 100644
---- a/gdb/sh-tdep.c
-+++ b/gdb/sh-tdep.c
-@@ -21,6 +21,9 @@
-    sac@cygnus.com.  */
- 
- #include "defs.h"
-+#include "arch-utils.h"
-+#include "command.h"
-+#include "dummy-frame.h"
- #include "frame.h"
- #include "frame-base.h"
- #include "frame-unwind.h"
-@@ -66,23 +69,6 @@ static const char *const sh_cc_enum[] = {
- 
- static const char *sh_active_calling_convention = sh_cc_gcc;
- 
--#define SH_NUM_REGS 67
--
--struct sh_frame_cache
--{
--  /* Base address.  */
--  CORE_ADDR base;
--  LONGEST sp_offset;
--  CORE_ADDR pc;
--
--  /* Flag showing that a frame has been created in the prologue code.  */
--  int uses_fp;
--
--  /* Saved registers.  */
--  CORE_ADDR saved_regs[SH_NUM_REGS];
--  CORE_ADDR saved_sp;
--};
--
- static int
- sh_is_renesas_calling_convention (struct type *func_type)
- {
-@@ -1050,6 +1036,7 @@ sh_treat_as_flt_p (struct type *type)
-     return 0;
-   /* Otherwise if the type of that member is float, the whole type is
-      treated as float.  */
-+  type = check_typedef (type);
-   if (type->field (0).type ()->code () == TYPE_CODE_FLT)
-     return 1;
-   /* Otherwise it's not treated as float.  */
-@@ -1100,7 +1087,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch,
-      in four registers available.  Loop thru args from first to last.  */
-   for (argnum = 0; argnum < nargs; argnum++)
-     {
--      type = value_type (args[argnum]);
-+      type = check_typedef (value_type (args[argnum]));
-       len = TYPE_LENGTH (type);
-       val = sh_justify_value_in_reg (gdbarch, args[argnum], len);
- 
-@@ -1835,7 +1822,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
-     reg->how = DWARF2_FRAME_REG_UNDEFINED;
- }
- 
--static struct sh_frame_cache *
-+struct sh_frame_cache *
- sh_alloc_frame_cache (void)
- {
-   struct sh_frame_cache *cache;
-@@ -1862,7 +1849,7 @@ sh_alloc_frame_cache (void)
-   return cache;
- }
- 
--static struct sh_frame_cache *
-+struct sh_frame_cache *
- sh_frame_cache (struct frame_info *this_frame, void **this_cache)
- {
-   struct gdbarch *gdbarch = get_frame_arch (this_frame);
-@@ -1929,9 +1916,9 @@ sh_frame_cache (struct frame_info *this_frame, void **this_cache)
-   return cache;
- }
- 
--static struct value *
--sh_frame_prev_register (struct frame_info *this_frame,
--			void **this_cache, int regnum)
-+struct value *
-+sh_frame_prev_register (struct frame_info *this_frame, void **this_cache,
-+			int regnum)
- {
-   struct gdbarch *gdbarch = get_frame_arch (this_frame);
-   struct sh_frame_cache *cache = sh_frame_cache (this_frame, this_cache);
-@@ -1945,7 +1932,7 @@ sh_frame_prev_register (struct frame_info *this_frame,
-      the current frame.  Frob regnum so that we pull the value from
-      the correct place.  */
-   if (regnum == gdbarch_pc_regnum (gdbarch))
--    regnum = PR_REGNUM;
-+    regnum = PR_REGNUM; /* XXX: really? */
- 
-   if (regnum < SH_NUM_REGS && cache->saved_regs[regnum] != -1)
-     return frame_unwind_got_memory (this_frame, regnum,
-@@ -2234,8 +2221,8 @@ sh_return_in_first_hidden_param_p (struct gdbarch *gdbarch,
- static struct gdbarch *
- sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
- {
--  struct gdbarch *gdbarch;
-   struct gdbarch_tdep *tdep;
-+  struct gdbarch *gdbarch;
- 
-   /* If there is already a candidate, use it.  */
-   arches = gdbarch_list_lookup_by_info (arches, &info);
-@@ -2247,6 +2234,18 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
-   tdep = XCNEW (struct gdbarch_tdep);
-   gdbarch = gdbarch_alloc (&info, tdep);
- 
-+  /* General-purpose registers.  */
-+  tdep->gregset = NULL;
-+  tdep->gregset_reg_offset = NULL;
-+  tdep->gregset_num_regs = 23;
-+  tdep->sizeof_gregset = 0;
-+
-+  /* Floating-point registers.  */
-+  tdep->fpregset = NULL;
-+  tdep->sizeof_fpregset = 34*4;
-+
-+  tdep->jb_pc_offset = -1;
-+
-   set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT);
-   set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
-   set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
-@@ -2398,10 +2397,11 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
-       break;
-     }
- 
-+  dwarf2_append_unwinders (gdbarch);
-+
-   /* Hook in ABI-specific overrides, if they have been registered.  */
-   gdbarch_init_osabi (info, gdbarch);
- 
--  dwarf2_append_unwinders (gdbarch);
-   frame_unwind_append_unwinder (gdbarch, &sh_stub_unwind);
-   frame_unwind_append_unwinder (gdbarch, &sh_frame_unwind);
- 
-diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h
-index 76e2e76e39b..2710f63010c 100644
---- a/gdb/sh-tdep.h
-+++ b/gdb/sh-tdep.h
-@@ -21,6 +21,12 @@
- 
- /* Contributed by Steve Chamberlain sac@cygnus.com.  */
- 
-+struct frame_info;
-+struct gdbarch;
-+struct reggroup;
-+struct regset;
-+struct regcache;
-+
- /* Registers for all SH variants.  Used also by sh3-rom.c.  */
- enum
-   {
-@@ -29,6 +35,7 @@ enum
-     ARG0_REGNUM = 4,
-     ARGLAST_REGNUM = 7,
-     FP_REGNUM = 14,
-+    SP_REGNUM = 15,
-     PC_REGNUM = 16,
-     PR_REGNUM = 17,
-     GBR_REGNUM = 18,
-@@ -81,6 +88,24 @@ enum
-     FV0_REGNUM = 76,
-     FV_LAST_REGNUM = 79
-   };
-+#define SH_NUM_REGS 67
-+
-+struct sh_frame_cache
-+{
-+  /* Base address.  */
-+  CORE_ADDR base;
-+  LONGEST sp_offset;
-+  CORE_ADDR pc;
-+
-+  /* Flag showing that a frame has been created in the prologue code. */
-+  int uses_fp;
-+
-+  /* Saved registers.  */
-+  CORE_ADDR saved_regs[SH_NUM_REGS];
-+  CORE_ADDR saved_sp;
-+};
-+
-+extern struct sh_frame_cache *sh_frame_cache (struct frame_info *next_frame, void **this_cache);
- 
- /* This structure describes a register in a core-file.  */
- struct sh_corefile_regmap
-@@ -89,8 +114,32 @@ struct sh_corefile_regmap
-   unsigned int offset;
- };
- 
-+/* sh architecture specific information.  */
- struct gdbarch_tdep
- {
-+  /* General-purpose registers.  */
-+  struct regset *gregset;
-+  int *gregset_reg_offset;
-+  int gregset_num_regs;
-+  size_t sizeof_gregset;
-+
-+  /* Floating-point registers.  */
-+  struct regset *fpregset;
-+  size_t sizeof_fpregset;
-+
-+  /* Offset of saved PC in jmp_buf.  */
-+  int jb_pc_offset;
-+
-+  /* Detect sigtramp.  */
-+  int (*sigtramp_p) (struct frame_info *);
-+
-+  /* Get address of sigcontext for sigtramp.  */
-+  CORE_ADDR (*sigcontext_addr) (struct frame_info *);
-+
-+  /* Offset of registers in `struct sigcontext'.  */
-+  int *sc_reg_offset;
-+  int sc_num_regs;
-+
-   /* Non-NULL when debugging from a core file.  Provides the offset
-      where each general-purpose register is stored inside the associated
-      core file section.  */
-diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
-index 4914498f98c..6e25cbed185 100644
---- a/gdb/testsuite/gdb.asm/asm-source.exp
-+++ b/gdb/testsuite/gdb.asm/asm-source.exp
-@@ -116,6 +116,11 @@ switch -glob -- [istarget] {
-             append link-flags " -m elf32ppc"
-         }
-     }
-+    "sh*-linux*" {
-+        set asm-arch sh-linux
-+        set asm-flags "-I${srcdir}/${subdir} -I${objdir}/${subdir}"
-+	set debug-flags "-gdwarf-2"
-+    }
-     "sh*-*-*" {
-         set asm-arch sh
- 	set debug-flags "-gdwarf-2"
-diff --git a/gdb/testsuite/gdb.asm/sh.inc b/gdb/testsuite/gdb.asm/sh.inc
-index a4a5fc545e4..89efed7795c 100644
---- a/gdb/testsuite/gdb.asm/sh.inc
-+++ b/gdb/testsuite/gdb.asm/sh.inc
-@@ -40,9 +40,8 @@
- 	mov.l   .Lconst\@,r1
- 	bra	.Lafterconst\@
- 	nop
--	nop
--.Lconst\@:
- 	.align	2
-+.Lconst\@:
- 	.long	\subr
- 	.align	1
- .Lafterconst\@:
-diff --git a/gdb/testsuite/gdb.base/annota1.c b/gdb/testsuite/gdb.base/annota1.c
-index 424e1b83278..0de2e7b633a 100644
---- a/gdb/testsuite/gdb.base/annota1.c
-+++ b/gdb/testsuite/gdb.base/annota1.c
-@@ -1,6 +1,9 @@
- #include <stdio.h>
- #include <signal.h>
- 
-+#ifdef __sh__
-+#define signal(a,b)    /* Signals not supported on this target - make them go away */
-+#endif
- 
- void
- handle_USR1 (int sig)
-diff --git a/gdb/testsuite/gdb.base/annota3.c b/gdb/testsuite/gdb.base/annota3.c
-index 424e1b83278..952aaf218ab 100644
---- a/gdb/testsuite/gdb.base/annota3.c
-+++ b/gdb/testsuite/gdb.base/annota3.c
-@@ -1,6 +1,10 @@
- #include <stdio.h>
- #include <signal.h>
- 
-+#ifdef __sh__
-+#define signal(a,b)    /* Signals not supported on this target - make them go away */
-+#endif
-+
- 
- void
- handle_USR1 (int sig)
-diff --git a/gdb/testsuite/gdb.base/sigall.c b/gdb/testsuite/gdb.base/sigall.c
-index 81f3b08d6bc..1574b2d6cb8 100644
---- a/gdb/testsuite/gdb.base/sigall.c
-+++ b/gdb/testsuite/gdb.base/sigall.c
-@@ -1,6 +1,9 @@
- #include <signal.h>
- #include <unistd.h>
- 
-+#ifdef __sh__
-+#define signal(a,b)    /* Signals not supported on this target - make them go away */
-+#endif
- 
- /* Signal handlers, we set breakpoints in them to make sure that the
-    signals really get delivered.  */
-diff --git a/gdb/testsuite/gdb.base/signals.c b/gdb/testsuite/gdb.base/signals.c
-index 756606880fa..1205a9bc9c5 100644
---- a/gdb/testsuite/gdb.base/signals.c
-+++ b/gdb/testsuite/gdb.base/signals.c
-@@ -3,6 +3,10 @@
- #include <signal.h>
- #include <unistd.h>
- 
-+#ifdef __sh__
-+#define signal(a,b)    /* Signals not supported on this target - make them go away */
-+#define alarm(a)       /* Ditto for alarm() */
-+#endif
- 
- static int count = 0;
- 
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0005-Dont-disable-libreadline.a-when-using-disable-static.patch b/poky/meta/recipes-devtools/gdb/gdb/0005-Dont-disable-libreadline.a-when-using-disable-static.patch
index 71eab1c..02ea30f 100644
--- a/poky/meta/recipes-devtools/gdb/gdb/0005-Dont-disable-libreadline.a-when-using-disable-static.patch
+++ b/poky/meta/recipes-devtools/gdb/gdb/0005-Dont-disable-libreadline.a-when-using-disable-static.patch
@@ -1,7 +1,7 @@
-From ec566877c50bdae0013a38dd457004e1db725d86 Mon Sep 17 00:00:00 2001
+From e2efd044c479895767f1b929f5a54fa0c689f318 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 30 Apr 2016 15:25:03 -0700
-Subject: [PATCH 05/11] Dont disable libreadline.a when using --disable-static
+Subject: [PATCH 05/10] Dont disable libreadline.a when using --disable-static
 
 If gdb is configured with --disable-static then this is dutifully passed to
 readline which then disables libreadline.a, which causes a problem when gdb
@@ -19,7 +19,7 @@
  2 files changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/Makefile.def b/Makefile.def
-index 76d062bb671..e0a1e2b14b1 100644
+index 5a460f1dbbc..77a702ac6d6 100644
 --- a/Makefile.def
 +++ b/Makefile.def
 @@ -105,7 +105,8 @@ host_modules= { module= libiconv;
@@ -33,10 +33,10 @@
  host_modules= { module= sim; };
  host_modules= { module= texinfo; no_install= true; };
 diff --git a/Makefile.in b/Makefile.in
-index 9dfd39fae13..eaf1dd0f229 100644
+index 9b3a5d75735..98cbe844fca 100644
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -25548,7 +25548,7 @@ configure-readline:
+@@ -25607,7 +25607,7 @@ configure-readline:
  	  $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
@@ -46,5 +46,5 @@
  @endif readline
  
 -- 
-2.29.2
+2.33.1
 
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0006-use-asm-sgidefs.h.patch b/poky/meta/recipes-devtools/gdb/gdb/0006-use-asm-sgidefs.h.patch
index a2932be..ef271c4 100644
--- a/poky/meta/recipes-devtools/gdb/gdb/0006-use-asm-sgidefs.h.patch
+++ b/poky/meta/recipes-devtools/gdb/gdb/0006-use-asm-sgidefs.h.patch
@@ -1,7 +1,7 @@
-From 4b02e54b87d435e1715ce871bcce720561a7afb1 Mon Sep 17 00:00:00 2001
+From 5077518c11e8d75e9bf65cdf9ca21c59564e1037 Mon Sep 17 00:00:00 2001
 From: Andre McCurdy <amccurdy@gmail.com>
 Date: Sat, 30 Apr 2016 15:29:06 -0700
-Subject: [PATCH 06/11] use <asm/sgidefs.h>
+Subject: [PATCH 06/10] use <asm/sgidefs.h>
 
 Build fix for MIPS with musl libc
 
@@ -19,7 +19,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
-index 4337795bac8..7c8e54cabe0 100644
+index 6614b4de31e..237eb6eb975 100644
 --- a/gdb/mips-linux-nat.c
 +++ b/gdb/mips-linux-nat.c
 @@ -31,7 +31,7 @@
@@ -32,5 +32,5 @@
  #include <asm/ptrace.h>
  #include "inf-ptrace.h"
 -- 
-2.29.2
+2.33.1
 
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0007-Change-order-of-CFLAGS.patch b/poky/meta/recipes-devtools/gdb/gdb/0007-Change-order-of-CFLAGS.patch
new file mode 100644
index 0000000..40d1257
--- /dev/null
+++ b/poky/meta/recipes-devtools/gdb/gdb/0007-Change-order-of-CFLAGS.patch
@@ -0,0 +1,30 @@
+From 80080e6c8425ac51498f49c2063b960a08f9a27d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Apr 2016 15:35:39 -0700
+Subject: [PATCH 07/10] Change order of CFLAGS
+
+Lets us override Werror if need be
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gdbserver/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in
+index 12e9b2777ae..ad44fbc3309 100644
+--- a/gdbserver/Makefile.in
++++ b/gdbserver/Makefile.in
+@@ -172,7 +172,7 @@ WIN32APILIBS = @WIN32APILIBS@
+ INTERNAL_CFLAGS_BASE = ${GLOBAL_CFLAGS} \
+ 	${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS} $(PTHREAD_CFLAGS)
+ INTERNAL_WARN_CFLAGS = ${INTERNAL_CFLAGS_BASE} $(WARN_CFLAGS)
+-INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) -DGDBSERVER
++INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) ${COMPILER_CFLAGS} -DGDBSERVER
+ 
+ # LDFLAGS is specifically reserved for setting from the command line
+ # when running make.
+-- 
+2.33.1
+
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0008-Change-order-of-CFLAGS.patch b/poky/meta/recipes-devtools/gdb/gdb/0008-Change-order-of-CFLAGS.patch
deleted file mode 100644
index 4622752..0000000
--- a/poky/meta/recipes-devtools/gdb/gdb/0008-Change-order-of-CFLAGS.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 07175ae348c9d07581e1db94762d5a2d577a75ad Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 30 Apr 2016 15:35:39 -0700
-Subject: [PATCH 08/11] Change order of CFLAGS
-
-Lets us override Werror if need be
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdbserver/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in
-index 2b1a77f2de7..cb5ddb12fd5 100644
---- a/gdbserver/Makefile.in
-+++ b/gdbserver/Makefile.in
-@@ -161,7 +161,7 @@ WIN32APILIBS = @WIN32APILIBS@
- INTERNAL_CFLAGS_BASE = ${CXXFLAGS} ${GLOBAL_CFLAGS} \
- 	${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS} $(PTHREAD_CFLAGS)
- INTERNAL_WARN_CFLAGS = ${INTERNAL_CFLAGS_BASE} $(WARN_CFLAGS)
--INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) -DGDBSERVER
-+INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) ${COMPILER_CFLAGS} -DGDBSERVER
- 
- # LDFLAGS is specifically reserved for setting from the command line
- # when running make.
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0008-resolve-restrict-keyword-conflict.patch b/poky/meta/recipes-devtools/gdb/gdb/0008-resolve-restrict-keyword-conflict.patch
new file mode 100644
index 0000000..9095f90
--- /dev/null
+++ b/poky/meta/recipes-devtools/gdb/gdb/0008-resolve-restrict-keyword-conflict.patch
@@ -0,0 +1,48 @@
+From 4ee7e8afb9ff259e889ac938c673fda9ddc5e15a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 10 May 2016 08:47:05 -0700
+Subject: [PATCH 08/10] resolve restrict keyword conflict
+
+GCC detects that we call 'restrict' as param name in function
+signatures and complains since both params are called 'restrict'
+therefore we use __restrict to denote the C99 keywork
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gnulib/import/sys_time.in.h | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/gnulib/import/sys_time.in.h b/gnulib/import/sys_time.in.h
+index 90a67d18426..664641a1fe8 100644
+--- a/gnulib/import/sys_time.in.h
++++ b/gnulib/import/sys_time.in.h
+@@ -93,20 +93,20 @@ struct timeval
+ #   define gettimeofday rpl_gettimeofday
+ #  endif
+ _GL_FUNCDECL_RPL (gettimeofday, int,
+-                  (struct timeval *restrict, void *restrict)
++                  (struct timeval *__restrict, void *__restrict)
+                   _GL_ARG_NONNULL ((1)));
+ _GL_CXXALIAS_RPL (gettimeofday, int,
+-                  (struct timeval *restrict, void *restrict));
++                  (struct timeval *__restrict, void *__restrict));
+ # else
+ #  if !@HAVE_GETTIMEOFDAY@
+ _GL_FUNCDECL_SYS (gettimeofday, int,
+-                  (struct timeval *restrict, void *restrict)
++                  (struct timeval *__restrict, void *__restrict)
+                   _GL_ARG_NONNULL ((1)));
+ #  endif
+ /* Need to cast, because on glibc systems, by default, the second argument is
+                                                   struct timezone *.  */
+ _GL_CXXALIAS_SYS_CAST (gettimeofday, int,
+-                       (struct timeval *restrict, void *restrict));
++                       (struct timeval *__restrict, void *__restrict));
+ # endif
+ _GL_CXXALIASWARN (gettimeofday);
+ # if defined __cplusplus && defined GNULIB_NAMESPACE
+-- 
+2.33.1
+
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0009-Fix-invalid-sigprocmask-call.patch b/poky/meta/recipes-devtools/gdb/gdb/0009-Fix-invalid-sigprocmask-call.patch
new file mode 100644
index 0000000..5b9d1cf
--- /dev/null
+++ b/poky/meta/recipes-devtools/gdb/gdb/0009-Fix-invalid-sigprocmask-call.patch
@@ -0,0 +1,49 @@
+From 5740876d92ddb67b039d5fbcd1b71e6c58823c08 Mon Sep 17 00:00:00 2001
+From: Yousong Zhou <yszhou4tech@gmail.com>
+Date: Fri, 24 Mar 2017 10:36:03 +0800
+Subject: [PATCH 09/10] Fix invalid sigprocmask call
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The POSIX document says
+
+    The pthread_sigmask() and sigprocmask() functions shall fail if:
+
+    [EINVAL]
+    The value of the how argument is not equal to one of the defined values.
+
+and this is how musl-libc is currently doing.  Fix the call to be safe
+and correct
+
+ [1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_sigmask.html
+
+gdb/ChangeLog:
+2017-03-24  Yousong Zhou  <yszhou4tech@gmail.com>
+
+    * common/signals-state-save-restore.c (save_original_signals_state):
+    Fix invalid sigprocmask call.
+
+Upstream-Status: Pending [not author, cherry-picked from LEDE https://bugs.lede-project.org/index.php?do=details&task_id=637&openedfrom=-1%2Bweek]
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gdbsupport/signals-state-save-restore.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gdbsupport/signals-state-save-restore.cc b/gdbsupport/signals-state-save-restore.cc
+index 95c156e5036..f4aa512d105 100644
+--- a/gdbsupport/signals-state-save-restore.cc
++++ b/gdbsupport/signals-state-save-restore.cc
+@@ -38,7 +38,7 @@ save_original_signals_state (bool quiet)
+   int i;
+   int res;
+ 
+-  res = gdb_sigmask (0,  NULL, &original_signal_mask);
++  res = gdb_sigmask (SIG_BLOCK,  NULL, &original_signal_mask);
+   if (res == -1)
+     perror_with_name (("sigprocmask"));
+ 
+-- 
+2.33.1
+
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0009-resolve-restrict-keyword-conflict.patch b/poky/meta/recipes-devtools/gdb/gdb/0009-resolve-restrict-keyword-conflict.patch
deleted file mode 100644
index 698fdb0..0000000
--- a/poky/meta/recipes-devtools/gdb/gdb/0009-resolve-restrict-keyword-conflict.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 73a3babe48c7948f71683d0862eddc1609fdaa3d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 10 May 2016 08:47:05 -0700
-Subject: [PATCH 09/11] resolve restrict keyword conflict
-
-GCC detects that we call 'restrict' as param name in function
-signatures and complains since both params are called 'restrict'
-therefore we use __restrict to denote the C99 keywork
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gnulib/import/sys_time.in.h | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/gnulib/import/sys_time.in.h b/gnulib/import/sys_time.in.h
-index d30b26719b2..fd76af5e6d9 100644
---- a/gnulib/import/sys_time.in.h
-+++ b/gnulib/import/sys_time.in.h
-@@ -93,20 +93,20 @@ struct timeval
- #   define gettimeofday rpl_gettimeofday
- #  endif
- _GL_FUNCDECL_RPL (gettimeofday, int,
--                  (struct timeval *restrict, void *restrict)
-+                  (struct timeval *__restrict, void *__restrict)
-                   _GL_ARG_NONNULL ((1)));
- _GL_CXXALIAS_RPL (gettimeofday, int,
--                  (struct timeval *restrict, void *restrict));
-+                  (struct timeval *__restrict, void *__restrict));
- # else
- #  if !@HAVE_GETTIMEOFDAY@
- _GL_FUNCDECL_SYS (gettimeofday, int,
--                  (struct timeval *restrict, void *restrict)
-+                  (struct timeval *__restrict, void *__restrict)
-                   _GL_ARG_NONNULL ((1)));
- #  endif
- /* Need to cast, because on glibc systems, by default, the second argument is
-                                                   struct timezone *.  */
- _GL_CXXALIAS_SYS_CAST (gettimeofday, int,
--                       (struct timeval *restrict, void *restrict));
-+                       (struct timeval *__restrict, void *__restrict));
- # endif
- _GL_CXXALIASWARN (gettimeofday);
- # if defined __cplusplus && defined GNULIB_NAMESPACE
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0010-Fix-invalid-sigprocmask-call.patch b/poky/meta/recipes-devtools/gdb/gdb/0010-Fix-invalid-sigprocmask-call.patch
deleted file mode 100644
index 7cf3eae..0000000
--- a/poky/meta/recipes-devtools/gdb/gdb/0010-Fix-invalid-sigprocmask-call.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From c5c5372c6a319cac8b3f9f86304fcebcbb5ea06f Mon Sep 17 00:00:00 2001
-From: Yousong Zhou <yszhou4tech@gmail.com>
-Date: Fri, 24 Mar 2017 10:36:03 +0800
-Subject: [PATCH 10/11] Fix invalid sigprocmask call
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The POSIX document says
-
-    The pthread_sigmask() and sigprocmask() functions shall fail if:
-
-    [EINVAL]
-    The value of the how argument is not equal to one of the defined values.
-
-and this is how musl-libc is currently doing.  Fix the call to be safe
-and correct
-
- [1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_sigmask.html
-
-gdb/ChangeLog:
-2017-03-24  Yousong Zhou  <yszhou4tech@gmail.com>
-
-    * common/signals-state-save-restore.c (save_original_signals_state):
-    Fix invalid sigprocmask call.
-
-Upstream-Status: Pending [not author, cherry-picked from LEDE https://bugs.lede-project.org/index.php?do=details&task_id=637&openedfrom=-1%2Bweek]
-Signed-off-by: André Draszik <adraszik@tycoint.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdbsupport/signals-state-save-restore.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gdbsupport/signals-state-save-restore.cc b/gdbsupport/signals-state-save-restore.cc
-index c292d498daf..af9dcaeb08e 100644
---- a/gdbsupport/signals-state-save-restore.cc
-+++ b/gdbsupport/signals-state-save-restore.cc
-@@ -38,7 +38,7 @@ save_original_signals_state (bool quiet)
-   int i;
-   int res;
- 
--  res = gdb_sigmask (0,  NULL, &original_signal_mask);
-+  res = gdb_sigmask (SIG_BLOCK,  NULL, &original_signal_mask);
-   if (res == -1)
-     perror_with_name (("sigprocmask"));
- 
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0010-gdbserver-ctrl-c-handling.patch b/poky/meta/recipes-devtools/gdb/gdb/0010-gdbserver-ctrl-c-handling.patch
new file mode 100644
index 0000000..cb4744e
--- /dev/null
+++ b/poky/meta/recipes-devtools/gdb/gdb/0010-gdbserver-ctrl-c-handling.patch
@@ -0,0 +1,40 @@
+From d611a68f05c0c86af27bf6beae189a90a946e2e3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 29 Nov 2018 18:00:23 -0800
+Subject: [PATCH 10/10] gdbserver ctrl-c handling
+
+This problem was created by the upstream commit 78708b7c8c
+After applying the commit, it will send SIGINT to the process
+group(-signal_pid).
+But if we use gdbserver send SIGINT, and the attached process is not a
+process
+group leader, then the "kill (-signal_pid, SIGINT)" returns error and
+fails  to
+interrupt the attached process.
+
+Upstream-Status: Submitted
+[https://sourceware.org/bugzilla/show_bug.cgi?id=18945]
+
+Author: Josh Gao
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gdbserver/linux-low.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
+index 5c6191d941c..7f7acf6700d 100644
+--- a/gdbserver/linux-low.cc
++++ b/gdbserver/linux-low.cc
+@@ -5733,7 +5733,7 @@ linux_process_target::request_interrupt ()
+ {
+   /* Send a SIGINT to the process group.  This acts just like the user
+      typed a ^C on the controlling terminal.  */
+-  ::kill (-signal_pid, SIGINT);
++  ::kill (signal_pid, SIGINT);
+ }
+ 
+ bool
+-- 
+2.33.1
+
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch b/poky/meta/recipes-devtools/gdb/gdb/0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch
new file mode 100644
index 0000000..6fc1859
--- /dev/null
+++ b/poky/meta/recipes-devtools/gdb/gdb/0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch
@@ -0,0 +1,317 @@
+From eb79b2318066cafb75ffdce310e3bbd44f7c79e3 Mon Sep 17 00:00:00 2001
+From: Luis Machado <luis.machado@linaro.org>
+Date: Fri, 29 Oct 2021 14:54:36 -0300
+Subject: [PATCH] [AArch64] Make gdbserver register set selection dynamic
+
+The current register set selection mechanism for AArch64 is static, based
+on a pre-populated array of register sets.
+
+This means that we might potentially probe register sets that are not
+available. This is OK if the kernel errors out during ptrace, but probing the
+tag_ctl register, for example, does not result in a ptrace error if the kernel
+supports the tagged address ABI but not MTE (PR 28355).
+
+Making the register set selection dynamic, based on feature checks, solves
+this and simplifies the code a bit. It allows us to list all of the register
+sets only once, and pick and choose based on HWCAP/HWCAP2 or other properties.
+
+gdb/ChangeLog:
+
+2021-11-03  Luis Machado  <luis.machado@linaro.org>
+
+	PR gdb/28355
+
+	* arch/aarch64.h (struct aarch64_features): New struct.
+
+gdbserver/ChangeLog:
+
+2021-11-03  Luis Machado  <luis.machado@linaro.org>
+
+	PR gdb/28355
+
+	* linux-aarch64-low.cc (is_sve_tdesc): Remove.
+	(aarch64_target::low_arch_setup): Rework to adjust the register sets.
+	(aarch64_regsets): Update to list all register sets.
+	(aarch64_regsets_info, regs_info_aarch64): Replace NULL with nullptr.
+	(aarch64_sve_regsets, aarch64_sve_regsets_info)
+	(regs_info_aarch64_sve): Remove.
+	(aarch64_adjust_register_sets): New.
+	(aarch64_target::get_regs_info): Remove references to removed structs.
+	(initialize_low_arch): Likewise.
+
+[ChangeLog entry stripped so that patch applies cleanly]
+Upstream-Status: Accepted
+---
+
+diff --git a/gdb/arch/aarch64.h b/gdb/arch/aarch64.h
+index 0eb702c5b5e..95edb664b55 100644
+--- a/gdb/arch/aarch64.h
++++ b/gdb/arch/aarch64.h
+@@ -22,6 +22,15 @@
+ 
+ #include "gdbsupport/tdesc.h"
+ 
++/* Holds information on what architectural features are available.  This is
++   used to select register sets.  */
++struct aarch64_features
++{
++  bool sve = false;
++  bool pauth = false;
++  bool mte = false;
++};
++
+ /* Create the aarch64 target description.  A non zero VQ value indicates both
+    the presence of SVE and the Vector Quotient - the number of 128bit chunks in
+    an SVE Z register.  HAS_PAUTH_P indicates the presence of the PAUTH
+diff --git a/gdbserver/linux-aarch64-low.cc b/gdbserver/linux-aarch64-low.cc
+index daccfef746e..9a8cb4169a7 100644
+--- a/gdbserver/linux-aarch64-low.cc
++++ b/gdbserver/linux-aarch64-low.cc
+@@ -196,16 +196,6 @@ is_64bit_tdesc (void)
+   return register_size (regcache->tdesc, 0) == 8;
+ }
+ 
+-/* Return true if the regcache contains the number of SVE registers.  */
+-
+-static bool
+-is_sve_tdesc (void)
+-{
+-  struct regcache *regcache = get_thread_regcache (current_thread, 0);
+-
+-  return tdesc_contains_feature (regcache->tdesc, "org.gnu.gdb.aarch64.sve");
+-}
+-
+ static void
+ aarch64_fill_gregset (struct regcache *regcache, void *buf)
+ {
+@@ -680,40 +670,6 @@ aarch64_target::low_new_fork (process_info *parent,
+   *child->priv->arch_private = *parent->priv->arch_private;
+ }
+ 
+-/* Matches HWCAP_PACA in kernel header arch/arm64/include/uapi/asm/hwcap.h.  */
+-#define AARCH64_HWCAP_PACA (1 << 30)
+-
+-/* Implementation of linux target ops method "low_arch_setup".  */
+-
+-void
+-aarch64_target::low_arch_setup ()
+-{
+-  unsigned int machine;
+-  int is_elf64;
+-  int tid;
+-
+-  tid = lwpid_of (current_thread);
+-
+-  is_elf64 = linux_pid_exe_is_elf_64_file (tid, &machine);
+-
+-  if (is_elf64)
+-    {
+-      uint64_t vq = aarch64_sve_get_vq (tid);
+-      unsigned long hwcap = linux_get_hwcap (8);
+-      unsigned long hwcap2 = linux_get_hwcap2 (8);
+-      bool pauth_p = hwcap & AARCH64_HWCAP_PACA;
+-      /* MTE is AArch64-only.  */
+-      bool mte_p = hwcap2 & HWCAP2_MTE;
+-
+-      current_process ()->tdesc
+-	= aarch64_linux_read_description (vq, pauth_p, mte_p);
+-    }
+-  else
+-    current_process ()->tdesc = aarch32_linux_read_description ();
+-
+-  aarch64_linux_get_debug_reg_capacity (lwpid_of (current_thread));
+-}
+-
+ /* Wrapper for aarch64_sve_regs_copy_to_reg_buf.  */
+ 
+ static void
+@@ -730,21 +686,36 @@ aarch64_sve_regs_copy_from_regcache (struct regcache *regcache, void *buf)
+   return aarch64_sve_regs_copy_from_reg_buf (regcache, buf);
+ }
+ 
++/* Array containing all the possible register sets for AArch64/Linux.  During
++   architecture setup, these will be checked against the HWCAP/HWCAP2 bits for
++   validity and enabled/disabled accordingly.
++
++   Their sizes are set to 0 here, but they will be adjusted later depending
++   on whether each register set is available or not.  */
+ static struct regset_info aarch64_regsets[] =
+ {
++  /* GPR registers.  */
+   { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_PRSTATUS,
+-    sizeof (struct user_pt_regs), GENERAL_REGS,
++    0, GENERAL_REGS,
+     aarch64_fill_gregset, aarch64_store_gregset },
++  /* Floating Point (FPU) registers.  */
+   { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_FPREGSET,
+-    sizeof (struct user_fpsimd_state), FP_REGS,
++    0, FP_REGS,
+     aarch64_fill_fpregset, aarch64_store_fpregset
+   },
++  /* Scalable Vector Extension (SVE) registers.  */
++  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_SVE,
++    0, EXTENDED_REGS,
++    aarch64_sve_regs_copy_from_regcache, aarch64_sve_regs_copy_to_regcache
++  },
++  /* PAC registers.  */
+   { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_PAC_MASK,
+-    AARCH64_PAUTH_REGS_SIZE, OPTIONAL_REGS,
+-    NULL, aarch64_store_pauthregset },
++    0, OPTIONAL_REGS,
++    nullptr, aarch64_store_pauthregset },
++  /* Tagged address control / MTE registers.  */
+   { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_TAGGED_ADDR_CTRL,
+-    AARCH64_LINUX_SIZEOF_MTE, OPTIONAL_REGS, aarch64_fill_mteregset,
+-    aarch64_store_mteregset },
++    0, OPTIONAL_REGS,
++    aarch64_fill_mteregset, aarch64_store_mteregset },
+   NULL_REGSET
+ };
+ 
+@@ -752,47 +723,95 @@ static struct regsets_info aarch64_regsets_info =
+   {
+     aarch64_regsets, /* regsets */
+     0, /* num_regsets */
+-    NULL, /* disabled_regsets */
++    nullptr, /* disabled_regsets */
+   };
+ 
+ static struct regs_info regs_info_aarch64 =
+   {
+-    NULL, /* regset_bitmap */
+-    NULL, /* usrregs */
++    nullptr, /* regset_bitmap */
++    nullptr, /* usrregs */
+     &aarch64_regsets_info,
+   };
+ 
+-static struct regset_info aarch64_sve_regsets[] =
++/* Given FEATURES, adjust the available register sets by setting their
++   sizes.  A size of 0 means the register set is disabled and won't be
++   used.  */
++
++static void
++aarch64_adjust_register_sets (const struct aarch64_features &features)
+ {
+-  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_PRSTATUS,
+-    sizeof (struct user_pt_regs), GENERAL_REGS,
+-    aarch64_fill_gregset, aarch64_store_gregset },
+-  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_SVE,
+-    SVE_PT_SIZE (AARCH64_MAX_SVE_VQ, SVE_PT_REGS_SVE), EXTENDED_REGS,
+-    aarch64_sve_regs_copy_from_regcache, aarch64_sve_regs_copy_to_regcache
+-  },
+-  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_PAC_MASK,
+-    AARCH64_PAUTH_REGS_SIZE, OPTIONAL_REGS,
+-    NULL, aarch64_store_pauthregset },
+-  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_TAGGED_ADDR_CTRL,
+-    AARCH64_LINUX_SIZEOF_MTE, OPTIONAL_REGS, aarch64_fill_mteregset,
+-    aarch64_store_mteregset },
+-  NULL_REGSET
+-};
++  struct regset_info *regset;
+ 
+-static struct regsets_info aarch64_sve_regsets_info =
+-  {
+-    aarch64_sve_regsets, /* regsets.  */
+-    0, /* num_regsets.  */
+-    NULL, /* disabled_regsets.  */
+-  };
++  for (regset = aarch64_regsets; regset->size >= 0; regset++)
++    {
++      switch (regset->nt_type)
++	{
++	case NT_PRSTATUS:
++	  /* General purpose registers are always present.  */
++	  regset->size = sizeof (struct user_pt_regs);
++	  break;
++	case NT_FPREGSET:
++	  /* This is unavailable when SVE is present.  */
++	  if (!features.sve)
++	    regset->size = sizeof (struct user_fpsimd_state);
++	  break;
++	case NT_ARM_SVE:
++	  if (features.sve)
++	    regset->size = SVE_PT_SIZE (AARCH64_MAX_SVE_VQ, SVE_PT_REGS_SVE);
++	  break;
++	case NT_ARM_PAC_MASK:
++	  if (features.pauth)
++	    regset->size = AARCH64_PAUTH_REGS_SIZE;
++	  break;
++	case NT_ARM_TAGGED_ADDR_CTRL:
++	  if (features.mte)
++	    regset->size = AARCH64_LINUX_SIZEOF_MTE;
++	  break;
++	default:
++	  gdb_assert_not_reached ("Unknown register set found.");
++	}
++    }
++}
+ 
+-static struct regs_info regs_info_aarch64_sve =
+-  {
+-    NULL, /* regset_bitmap.  */
+-    NULL, /* usrregs.  */
+-    &aarch64_sve_regsets_info,
+-  };
++/* Matches HWCAP_PACA in kernel header arch/arm64/include/uapi/asm/hwcap.h.  */
++#define AARCH64_HWCAP_PACA (1 << 30)
++
++/* Implementation of linux target ops method "low_arch_setup".  */
++
++void
++aarch64_target::low_arch_setup ()
++{
++  unsigned int machine;
++  int is_elf64;
++  int tid;
++
++  tid = lwpid_of (current_thread);
++
++  is_elf64 = linux_pid_exe_is_elf_64_file (tid, &machine);
++
++  if (is_elf64)
++    {
++      struct aarch64_features features;
++
++      uint64_t vq = aarch64_sve_get_vq (tid);
++      features.sve = (vq > 0);
++      /* A-profile PAC is 64-bit only.  */
++      features.pauth = linux_get_hwcap (8) & AARCH64_HWCAP_PACA;
++      /* A-profile MTE is 64-bit only.  */
++      features.mte = linux_get_hwcap2 (8) & HWCAP2_MTE;
++
++      current_process ()->tdesc
++	= aarch64_linux_read_description (vq, features.pauth, features.mte);
++
++      /* Adjust the register sets we should use for this particular set of
++	 features.  */
++      aarch64_adjust_register_sets (features);
++    }
++  else
++    current_process ()->tdesc = aarch32_linux_read_description ();
++
++  aarch64_linux_get_debug_reg_capacity (lwpid_of (current_thread));
++}
+ 
+ /* Implementation of linux target ops method "get_regs_info".  */
+ 
+@@ -802,9 +821,7 @@ aarch64_target::get_regs_info ()
+   if (!is_64bit_tdesc ())
+     return &regs_info_aarch32;
+ 
+-  if (is_sve_tdesc ())
+-    return &regs_info_aarch64_sve;
+-
++  /* AArch64 64-bit registers.  */
+   return &regs_info_aarch64;
+ }
+ 
+@@ -3294,5 +3311,4 @@ initialize_low_arch (void)
+   initialize_low_arch_aarch32 ();
+ 
+   initialize_regsets_info (&aarch64_regsets_info);
+-  initialize_regsets_info (&aarch64_sve_regsets_info);
+ }
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0011-gdbserver-ctrl-c-handling.patch b/poky/meta/recipes-devtools/gdb/gdb/0011-gdbserver-ctrl-c-handling.patch
deleted file mode 100644
index 0a596b5..0000000
--- a/poky/meta/recipes-devtools/gdb/gdb/0011-gdbserver-ctrl-c-handling.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 63df98fa78c8a6e12b40ebdc5c155838d2bf8b5f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 29 Nov 2018 18:00:23 -0800
-Subject: [PATCH 11/11] gdbserver ctrl-c handling
-
-This problem was created by the upstream commit 78708b7c8c
-After applying the commit, it will send SIGINT to the process
-group(-signal_pid).
-But if we use gdbserver send SIGINT, and the attached process is not a
-process
-group leader, then the "kill (-signal_pid, SIGINT)" returns error and
-fails  to
-interrupt the attached process.
-
-Upstream-Status: Submitted
-[https://sourceware.org/bugzilla/show_bug.cgi?id=18945]
-
-Author: Josh Gao
-Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdbserver/linux-low.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
-index e45493339d2..aabc099b456 100644
---- a/gdbserver/linux-low.cc
-+++ b/gdbserver/linux-low.cc
-@@ -5714,7 +5714,7 @@ linux_process_target::request_interrupt ()
- {
-   /* Send a SIGINT to the process group.  This acts just like the user
-      typed a ^C on the controlling terminal.  */
--  ::kill (-signal_pid, SIGINT);
-+  ::kill (signal_pid, SIGINT);
- }
- 
- bool
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0012-arc-Add-support-for-signal-handlers.patch b/poky/meta/recipes-devtools/gdb/gdb/0012-arc-Add-support-for-signal-handlers.patch
deleted file mode 100644
index 6a98b65..0000000
--- a/poky/meta/recipes-devtools/gdb/gdb/0012-arc-Add-support-for-signal-handlers.patch
+++ /dev/null
@@ -1,218 +0,0 @@
-From bfee93403b46ae4f050282b7721ba39073905c69 Mon Sep 17 00:00:00 2001
-From: Anton Kolesov <Anton.Kolesov@synopsys.com>
-Date: Mon, 22 Aug 2016 19:39:46 +0300
-Subject: [PATCH 1/4] arc: Add support for signal handlers
-
-This patch adds the necessary infrastructure to handle signal frames for
-ARC architecture.  It is fairly similar to what any other architecture
-would have.  Linux specific parts will be in a separate patch.
-
-v2 [1]:
-- Make the logic of "arc_sigtramp_frame_sniffer ()" simpler.
-
-[1] Tom's remark for the first version
-https://sourceware.org/pipermail/gdb-patches/2020-November/173221.html
-
-gdb/ChangeLog:
-
-	* arc-tdep.c (arc_make_sigtramp_frame_cache): New function.
-	(arc_sigtramp_frame_this_id): Likewise.
-	(arc_sigtramp_frame_prev_register): Likewise.
-	(arc_sigtramp_frame_sniffer): Likewise.
-	(arc_siftramp_frame_unwind): New global variable.
-	(arc_gdbarch_init): Use sigtramp capabilities.
-	(arc_dump_tdep): Print sigtramp fields.
-	* arc-tdep.h (gdbarch_tdep): Add sigtramp fields.
-
-Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=b4e3cd0440109d0a5552d3313ccbd35c8103335b]
-
-Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
-Signed-off-by: Shahab Vahedi <shahab@synopsys.com>
-Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
----
- gdb/arc-tdep.c | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- gdb/arc-tdep.h |  13 ++++++
- 2 files changed, 136 insertions(+)
-
-diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c
-index 93e2fd88a9a..3356252525d 100644
---- a/gdb/arc-tdep.c
-+++ b/gdb/arc-tdep.c
-@@ -1843,6 +1843,104 @@ arc_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
-     reg->how = DWARF2_FRAME_REG_CFA;
- }
- 
-+/*  Signal trampoline frame unwinder.  Allows frame unwinding to happen
-+    from within signal handlers.  */
-+
-+static struct arc_frame_cache *
-+arc_make_sigtramp_frame_cache (struct frame_info *this_frame)
-+{
-+  if (arc_debug)
-+    debug_printf ("arc: sigtramp_frame_cache\n");
-+
-+  struct gdbarch_tdep *tdep = gdbarch_tdep (get_frame_arch (this_frame));
-+
-+  /* Allocate new frame cache instance and space for saved register info.  */
-+  struct arc_frame_cache *cache = FRAME_OBSTACK_ZALLOC (struct arc_frame_cache);
-+  cache->saved_regs = trad_frame_alloc_saved_regs (this_frame);
-+
-+  /* Get the stack pointer and use it as the frame base.  */
-+  cache->prev_sp = arc_frame_base_address (this_frame, NULL);
-+
-+  /* If the ARC-private target-dependent info doesn't have a table of
-+     offsets of saved register contents within an OS signal context
-+     structure, then there is nothing to analyze.  */
-+  if (tdep->sc_reg_offset == NULL)
-+    return cache;
-+
-+  /* Find the address of the sigcontext structure.  */
-+  CORE_ADDR addr = tdep->sigcontext_addr (this_frame);
-+
-+  /* For each register, if its contents have been saved within the
-+     sigcontext structure, determine the address of those contents.  */
-+  gdb_assert (tdep->sc_num_regs <= (ARC_LAST_REGNUM + 1));
-+  for (int i = 0; i < tdep->sc_num_regs; i++)
-+    {
-+      if (tdep->sc_reg_offset[i] != ARC_OFFSET_NO_REGISTER)
-+	cache->saved_regs[i].addr = addr + tdep->sc_reg_offset[i];
-+    }
-+
-+  return cache;
-+}
-+
-+/* Implement the "this_id" frame_unwind method for signal trampoline
-+   frames.  */
-+
-+static void
-+arc_sigtramp_frame_this_id (struct frame_info *this_frame,
-+			    void **this_cache, struct frame_id *this_id)
-+{
-+  if (arc_debug)
-+    debug_printf ("arc: sigtramp_frame_this_id\n");
-+
-+  if (*this_cache == NULL)
-+    *this_cache = arc_make_sigtramp_frame_cache (this_frame);
-+
-+  struct gdbarch *gdbarch = get_frame_arch (this_frame);
-+  struct arc_frame_cache *cache = (struct arc_frame_cache *) *this_cache;
-+  CORE_ADDR stack_addr = cache->prev_sp;
-+  CORE_ADDR code_addr
-+    = get_frame_register_unsigned (this_frame, gdbarch_pc_regnum (gdbarch));
-+  *this_id = frame_id_build (stack_addr, code_addr);
-+}
-+
-+/* Get a register from a signal handler frame.  */
-+
-+static struct value *
-+arc_sigtramp_frame_prev_register (struct frame_info *this_frame,
-+				  void **this_cache, int regnum)
-+{
-+  if (arc_debug)
-+    debug_printf ("arc: sigtramp_frame_prev_register (regnum = %d)\n", regnum);
-+
-+  /* Make sure we've initialized the cache.  */
-+  if (*this_cache == NULL)
-+    *this_cache = arc_make_sigtramp_frame_cache (this_frame);
-+
-+  struct arc_frame_cache *cache = (struct arc_frame_cache *) *this_cache;
-+  return trad_frame_get_prev_register (this_frame, cache->saved_regs, regnum);
-+}
-+
-+/* Frame sniffer for signal handler frame.  Only recognize a frame if we
-+   have a sigcontext_addr handler in the target dependency.  */
-+
-+static int
-+arc_sigtramp_frame_sniffer (const struct frame_unwind *self,
-+			    struct frame_info *this_frame,
-+			    void **this_cache)
-+{
-+  struct gdbarch_tdep *tdep;
-+
-+  if (arc_debug)
-+    debug_printf ("arc: sigtramp_frame_sniffer\n");
-+
-+  tdep = gdbarch_tdep (get_frame_arch (this_frame));
-+
-+  /* If we have a sigcontext_addr handler, then just return 1 (same as the
-+     "default_frame_sniffer ()").  */
-+  return (tdep->sigcontext_addr != NULL && tdep->is_sigtramp != NULL
-+	  && tdep->is_sigtramp (this_frame));
-+}
-+
- /* Structure defining the ARC ordinary frame unwind functions.  Since we are
-    the fallback unwinder, we use the default frame sniffer, which always
-    accepts the frame.  */
-@@ -1858,6 +1956,21 @@ static const struct frame_unwind arc_frame_unwind = {
-   NULL
- };
- 
-+/* Structure defining the ARC signal frame unwind functions.  Custom
-+   sniffer is used, because this frame must be accepted only in the right
-+   context.  */
-+
-+static const struct frame_unwind arc_sigtramp_frame_unwind = {
-+  SIGTRAMP_FRAME,
-+  default_frame_unwind_stop_reason,
-+  arc_sigtramp_frame_this_id,
-+  arc_sigtramp_frame_prev_register,
-+  NULL,
-+  arc_sigtramp_frame_sniffer,
-+  NULL,
-+  NULL
-+};
-+
- 
- static const struct frame_base arc_normal_base = {
-   &arc_frame_unwind,
-@@ -2272,6 +2385,7 @@ arc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
-   /* Frame unwinders and sniffers.  */
-   dwarf2_frame_set_init_reg (gdbarch, arc_dwarf2_frame_init_reg);
-   dwarf2_append_unwinders (gdbarch);
-+  frame_unwind_append_unwinder (gdbarch, &arc_sigtramp_frame_unwind);
-   frame_unwind_append_unwinder (gdbarch, &arc_frame_unwind);
-   frame_base_set_default (gdbarch, &arc_normal_base);
- 
-@@ -2350,6 +2464,15 @@ arc_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file)
-   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- 
-   fprintf_unfiltered (file, "arc_dump_tdep: jb_pc = %i\n", tdep->jb_pc);
-+
-+  fprintf_unfiltered (file, "arc_dump_tdep: is_sigtramp = <%s>\n",
-+		      host_address_to_string (tdep->is_sigtramp));
-+  fprintf_unfiltered (file, "arc_dump_tdep: sigcontext_addr = <%s>\n",
-+		      host_address_to_string (tdep->sigcontext_addr));
-+  fprintf_unfiltered (file, "arc_dump_tdep: sc_reg_offset = <%s>\n",
-+		      host_address_to_string (tdep->sc_reg_offset));
-+  fprintf_unfiltered (file, "arc_dump_tdep: sc_num_regs = %d\n",
-+		      tdep->sc_num_regs);
- }
- 
- /* This command accepts single argument - address of instruction to
-diff --git a/gdb/arc-tdep.h b/gdb/arc-tdep.h
-index 50b14905134..70fc3d95c48 100644
---- a/gdb/arc-tdep.h
-+++ b/gdb/arc-tdep.h
-@@ -124,6 +124,19 @@ struct gdbarch_tdep
- 
-   /* Whether target has hardware (aka zero-delay) loops.  */
-   bool has_hw_loops;
-+
-+  /* Detect sigtramp.  */
-+  bool (*is_sigtramp) (struct frame_info *);
-+
-+  /* Get address of sigcontext for sigtramp.  */
-+  CORE_ADDR (*sigcontext_addr) (struct frame_info *);
-+
-+  /* Offset of registers in `struct sigcontext'.  */
-+  const int *sc_reg_offset;
-+
-+  /* Number of registers in sc_reg_offsets.  Most likely a ARC_LAST_REGNUM,
-+     but in theory it could be less, so it is kept separate.  */
-+  int sc_num_regs;
- };
- 
- /* Utility functions used by other ARC-specific modules.  */
--- 
-2.16.2
-
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0013-arc-Add-support-for-signal-frames-for-Linux-targets.patch b/poky/meta/recipes-devtools/gdb/gdb/0013-arc-Add-support-for-signal-frames-for-Linux-targets.patch
deleted file mode 100644
index f699a58..0000000
--- a/poky/meta/recipes-devtools/gdb/gdb/0013-arc-Add-support-for-signal-frames-for-Linux-targets.patch
+++ /dev/null
@@ -1,232 +0,0 @@
-From 16ddc17b4f403a38701e0108b02aff967900cc66 Mon Sep 17 00:00:00 2001
-From: Anton Kolesov <Anton.Kolesov@synopsys.com>
-Date: Thu, 22 Dec 2016 21:52:16 +0300
-Subject: [PATCH 2/4] arc: Add support for signal frames for Linux targets
-
-Implement functions needed to unwind signal frames on ARC Linux targets.
-
-gdb/ChangeLog
-
-	* arc-linux-tdep.c (arc_linux_sc_reg_offsets): New static variable.
-	(arc_linux_is_sigtramp): New function.
-	(arc_linux_sigcontext_addr): Likewise.
-	(arc_linux_init_osabi): Use them.
-
-Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=d4af727286e3a9f177ba11677fbd3a012d36558a]
-
-Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
-Signed-off-by: Shahab Vahedi <shahab@synopsys.com>
-Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
----
- gdb/arc-linux-tdep.c | 181 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 181 insertions(+)
-
-diff --git a/gdb/arc-linux-tdep.c b/gdb/arc-linux-tdep.c
-index a7bace12623..17bb3e7b276 100644
---- a/gdb/arc-linux-tdep.c
-+++ b/gdb/arc-linux-tdep.c
-@@ -33,6 +33,60 @@
- 
- #define REGOFF(offset) (offset * ARC_REGISTER_SIZE)
- 
-+/* arc_linux_sc_reg_offsets[i] is the offset of register i in the `struct
-+   sigcontext'.  Array index is an internal GDB register number, as defined in
-+   arc-tdep.h:arc_regnum.
-+
-+   From <include/uapi/asm/sigcontext.h> and <include/uapi/asm/ptrace.h>.
-+
-+   The layout of this struct is tightly bound to "arc_regnum" enum
-+   in arc-tdep.h.  Any change of order in there, must be reflected
-+   here as well.  */
-+static const int arc_linux_sc_reg_offsets[] = {
-+  /* R0 - R12.  */
-+  REGOFF (22), REGOFF (21), REGOFF (20), REGOFF (19),
-+  REGOFF (18), REGOFF (17), REGOFF (16), REGOFF (15),
-+  REGOFF (14), REGOFF (13), REGOFF (12), REGOFF (11),
-+  REGOFF (10),
-+
-+  /* R13 - R25.  */
-+  ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER,
-+  ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER,
-+  ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER,
-+  ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER,
-+  ARC_OFFSET_NO_REGISTER,
-+
-+  REGOFF (9),			/* R26 (GP) */
-+  REGOFF (8),			/* FP */
-+  REGOFF (23),			/* SP */
-+  ARC_OFFSET_NO_REGISTER,	/* ILINK */
-+  ARC_OFFSET_NO_REGISTER,	/* R30 */
-+  REGOFF (7),			/* BLINK */
-+
-+  /* R32 - R59.  */
-+  ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER,
-+  ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER,
-+  ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER,
-+  ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER,
-+  ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER,
-+  ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER,
-+  ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER,
-+  ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER,
-+  ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER,
-+  ARC_OFFSET_NO_REGISTER,
-+
-+  REGOFF (4),			/* LP_COUNT */
-+  ARC_OFFSET_NO_REGISTER,	/* RESERVED */
-+  ARC_OFFSET_NO_REGISTER,	/* LIMM */
-+  ARC_OFFSET_NO_REGISTER,	/* PCL */
-+
-+  REGOFF (6),			/* PC  */
-+  REGOFF (5),			/* STATUS32 */
-+  REGOFF (2),			/* LP_START */
-+  REGOFF (3),			/* LP_END */
-+  REGOFF (1),			/* BTA */
-+};
-+
- /* arc_linux_core_reg_offsets[i] is the offset in the .reg section of GDB
-    regnum i.  Array index is an internal GDB register number, as defined in
-    arc-tdep.h:arc_regnum.
-@@ -87,6 +141,127 @@ static const int arc_linux_core_reg_offsets[] = {
-   REGOFF (6)			/* ERET */
- };
- 
-+/* Is THIS_FRAME a sigtramp function - the function that returns from
-+   signal handler into normal execution flow? This is the case if the PC is
-+   either at the start of, or in the middle of the two instructions:
-+
-+     mov r8, __NR_rt_sigreturn ; __NR_rt_sigreturn == 139
-+     trap_s 0 ; `swi' for ARC700
-+
-+   On ARC uClibc Linux this function is called __default_rt_sa_restorer.
-+
-+   Returns TRUE if this is a sigtramp frame.  */
-+
-+static bool
-+arc_linux_is_sigtramp (struct frame_info *this_frame)
-+{
-+  struct gdbarch *gdbarch = get_frame_arch (this_frame);
-+  CORE_ADDR pc = get_frame_pc (this_frame);
-+
-+  if (arc_debug)
-+    {
-+      debug_printf ("arc-linux: arc_linux_is_sigtramp, pc=%s\n",
-+		    paddress(gdbarch, pc));
-+    }
-+
-+  static const gdb_byte insns_be_hs[] = {
-+    0x20, 0x8a, 0x12, 0xc2,	/* mov  r8,nr_rt_sigreturn */
-+    0x78, 0x1e			/* trap_s 0 */
-+  };
-+  static const gdb_byte insns_be_700[] = {
-+    0x20, 0x8a, 0x12, 0xc2,	/* mov  r8,nr_rt_sigreturn */
-+    0x22, 0x6f, 0x00, 0x3f	/* swi */
-+  };
-+
-+  gdb_byte arc_sigtramp_insns[sizeof (insns_be_700)];
-+  size_t insns_sz;
-+  if (arc_mach_is_arcv2 (gdbarch))
-+    {
-+      insns_sz = sizeof (insns_be_hs);
-+      memcpy (arc_sigtramp_insns, insns_be_hs, insns_sz);
-+    }
-+  else
-+    {
-+      insns_sz = sizeof (insns_be_700);
-+      memcpy (arc_sigtramp_insns, insns_be_700, insns_sz);
-+    }
-+  if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_LITTLE)
-+    {
-+      /* On little endian targets, ARC code section is in what is called
-+	 "middle endian", where half-words are in the big-endian order,
-+	 only bytes inside the halfwords are in the little endian order.
-+	 As a result it is very easy to convert big endian instruction to
-+	 little endian, since it is needed to swap bytes in the halfwords,
-+	 so there is no need to have information on whether that is a
-+	 4-byte instruction or 2-byte.  */
-+      gdb_assert ((insns_sz % 2) == 0);
-+      for (int i = 0; i < insns_sz; i += 2)
-+	std::swap (arc_sigtramp_insns[i], arc_sigtramp_insns[i+1]);
-+    }
-+
-+  gdb_byte buf[insns_sz];
-+
-+  /* Read the memory at the PC.  Since we are stopped, any breakpoint must
-+     have been removed.  */
-+  if (!safe_frame_unwind_memory (this_frame, pc, buf, insns_sz))
-+    {
-+      /* Failed to unwind frame.  */
-+      return FALSE;
-+    }
-+
-+  /* Is that code the sigtramp instruction sequence?  */
-+  if (memcmp (buf, arc_sigtramp_insns, insns_sz) == 0)
-+    return TRUE;
-+
-+  /* No - look one instruction earlier in the code...  */
-+  if (!safe_frame_unwind_memory (this_frame, pc - 4, buf, insns_sz))
-+    {
-+      /* Failed to unwind frame.  */
-+      return FALSE;
-+    }
-+
-+  return (memcmp (buf, arc_sigtramp_insns, insns_sz) == 0);
-+}
-+
-+/* Get sigcontext structure of sigtramp frame - it contains saved
-+   registers of interrupted frame.
-+
-+   Stack pointer points to the rt_sigframe structure, and sigcontext can
-+   be found as in:
-+
-+   struct rt_sigframe {
-+     struct siginfo info;
-+     struct ucontext uc;
-+     ...
-+   };
-+
-+   struct ucontext {
-+     unsigned long uc_flags;
-+     struct ucontext *uc_link;
-+     stack_t uc_stack;
-+     struct sigcontext uc_mcontext;
-+     sigset_t uc_sigmask;
-+   };
-+
-+   sizeof (struct siginfo) == 0x80
-+   offsetof (struct ucontext, uc_mcontext) == 0x14
-+
-+   GDB cannot include linux headers and use offsetof () because those are
-+   target headers and GDB might be built for a different run host.  There
-+   doesn't seem to be an established mechanism to figure out those offsets
-+   via gdbserver, so the only way is to hardcode values in the GDB,
-+   meaning that GDB will be broken if values will change.  That seems to
-+   be a very unlikely scenario and other arches (aarch64, alpha, amd64,
-+   etc) in GDB hardcode values.  */
-+
-+static CORE_ADDR
-+arc_linux_sigcontext_addr (struct frame_info *this_frame)
-+{
-+  const int ucontext_offset = 0x80;
-+  const int sigcontext_offset = 0x14;
-+  return get_frame_sp (this_frame) + ucontext_offset + sigcontext_offset;
-+}
-+
- /* Implement the "cannot_fetch_register" gdbarch method.  */
- 
- static int
-@@ -504,6 +679,12 @@ arc_linux_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch)
-   if (arc_debug)
-     debug_printf ("arc-linux: GNU/Linux OS/ABI initialization.\n");
- 
-+  /* Fill in target-dependent info in ARC-private structure.  */
-+  tdep->is_sigtramp = arc_linux_is_sigtramp;
-+  tdep->sigcontext_addr = arc_linux_sigcontext_addr;
-+  tdep->sc_reg_offset = arc_linux_sc_reg_offsets;
-+  tdep->sc_num_regs = ARRAY_SIZE (arc_linux_sc_reg_offsets);
-+
-   /* If we are using Linux, we have in uClibc
-      (libc/sysdeps/linux/arc/bits/setjmp.h):
- 
--- 
-2.16.2
-
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0014-arc-Take-into-account-the-REGNUM-in-supply-collect-g.patch b/poky/meta/recipes-devtools/gdb/gdb/0014-arc-Take-into-account-the-REGNUM-in-supply-collect-g.patch
deleted file mode 100644
index a725606..0000000
--- a/poky/meta/recipes-devtools/gdb/gdb/0014-arc-Take-into-account-the-REGNUM-in-supply-collect-g.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 5eb97d5e92ad23ee81cebc1ebd5eafe0aa55fc17 Mon Sep 17 00:00:00 2001
-From: Shahab Vahedi <shahab@synopsys.com>
-Date: Tue, 10 Nov 2020 19:34:57 +0100
-Subject: [PATCH 3/4] arc: Take into account the REGNUM in supply/collect gdb
- hooks
-
-All the arc_linux_supply_*() target operations and the
-arc_linux_collect_v2_regset() in arc-linux-tdep.c were
-supplying/collecting all the registers in regcache as if the
-REGNUM was set to -1.
-
-The more efficient behavior is to examine the REGNUM and act
-accordingly.  That is what this patch does.
-
-gdb/ChangeLog:
-
-	* arc-linux-tdep.c (supply_register): New.
-	(arc_linux_supply_gregset, arc_linux_supply_v2_regset,
-	arc_linux_collect_v2_regset): Consider REGNUM.
-
-Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=46023bbe81355230b4e7b76d3084337823d02362]
-
-Signed-off-by: Shahab Vahedi <shahab@synopsys.com>
-Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
----
- gdb/arc-linux-tdep.c | 41 ++++++++++++++++++++++++++++++++---------
- 1 file changed, 32 insertions(+), 9 deletions(-)
-
-diff --git a/gdb/arc-linux-tdep.c b/gdb/arc-linux-tdep.c
-index 17bb3e7b276..e83d82b6f5c 100644
---- a/gdb/arc-linux-tdep.c
-+++ b/gdb/arc-linux-tdep.c
-@@ -535,6 +535,18 @@ arc_linux_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
-     }
- }
- 
-+/* Populate REGCACHE with register REGNUM from BUF.  */
-+
-+static void
-+supply_register (struct regcache *regcache, int regnum, const gdb_byte *buf)
-+{
-+  /* Skip non-existing registers.  */
-+  if ((arc_linux_core_reg_offsets[regnum] == ARC_OFFSET_NO_REGISTER))
-+    return;
-+
-+  regcache->raw_supply (regnum, buf + arc_linux_core_reg_offsets[regnum]);
-+}
-+
- void
- arc_linux_supply_gregset (const struct regset *regset,
- 			  struct regcache *regcache,
-@@ -545,9 +557,14 @@ arc_linux_supply_gregset (const struct regset *regset,
- 
-   const bfd_byte *buf = (const bfd_byte *) gregs;
- 
--  for (int reg = 0; reg <= ARC_LAST_REGNUM; reg++)
--      if (arc_linux_core_reg_offsets[reg] != ARC_OFFSET_NO_REGISTER)
--	regcache->raw_supply (reg, buf + arc_linux_core_reg_offsets[reg]);
-+  /* regnum == -1 means writing all the registers.  */
-+  if (regnum == -1)
-+    for (int reg = 0; reg <= ARC_LAST_REGNUM; reg++)
-+      supply_register (regcache, reg, buf);
-+  else if (regnum <= ARC_LAST_REGNUM)
-+    supply_register (regcache, regnum, buf);
-+  else
-+    gdb_assert_not_reached ("Invalid regnum in arc_linux_supply_gregset.");
- }
- 
- void
-@@ -558,9 +575,12 @@ arc_linux_supply_v2_regset (const struct regset *regset,
-   const bfd_byte *buf = (const bfd_byte *) v2_regs;
- 
-   /* user_regs_arcv2 is defined in linux arch/arc/include/uapi/asm/ptrace.h.  */
--  regcache->raw_supply (ARC_R30_REGNUM, buf);
--  regcache->raw_supply (ARC_R58_REGNUM, buf + REGOFF (1));
--  regcache->raw_supply (ARC_R59_REGNUM, buf + REGOFF (2));
-+  if (regnum == -1 || regnum == ARC_R30_REGNUM)
-+    regcache->raw_supply (ARC_R30_REGNUM, buf);
-+  if (regnum == -1 || regnum == ARC_R58_REGNUM)
-+    regcache->raw_supply (ARC_R58_REGNUM, buf + REGOFF (1));
-+  if (regnum == -1 || regnum == ARC_R59_REGNUM)
-+    regcache->raw_supply (ARC_R59_REGNUM, buf + REGOFF (2));
- }
- 
- /* Populate BUF with register REGNUM from the REGCACHE.  */
-@@ -618,9 +638,12 @@ arc_linux_collect_v2_regset (const struct regset *regset,
- {
-   bfd_byte *buf = (bfd_byte *) v2_regs;
- 
--  regcache->raw_collect (ARC_R30_REGNUM, buf);
--  regcache->raw_collect (ARC_R58_REGNUM, buf + REGOFF (1));
--  regcache->raw_collect (ARC_R59_REGNUM, buf + REGOFF (2));
-+  if (regnum == -1 || regnum == ARC_R30_REGNUM)
-+    regcache->raw_collect (ARC_R30_REGNUM, buf);
-+  if (regnum == -1 || regnum == ARC_R58_REGNUM)
-+    regcache->raw_collect (ARC_R58_REGNUM, buf + REGOFF (1));
-+  if (regnum == -1 || regnum == ARC_R59_REGNUM)
-+    regcache->raw_collect (ARC_R59_REGNUM, buf + REGOFF (2));
- }
- 
- /* Linux regset definitions.  */
--- 
-2.16.2
-
diff --git a/poky/meta/recipes-devtools/gdb/gdb/0015-gdb-Add-native-support-for-ARC-in-GNU-Linux.patch b/poky/meta/recipes-devtools/gdb/gdb/0015-gdb-Add-native-support-for-ARC-in-GNU-Linux.patch
deleted file mode 100644
index 31cf0b0..0000000
--- a/poky/meta/recipes-devtools/gdb/gdb/0015-gdb-Add-native-support-for-ARC-in-GNU-Linux.patch
+++ /dev/null
@@ -1,414 +0,0 @@
-From 32b366249fd42d74cbc4a91039431554ebadcfd0 Mon Sep 17 00:00:00 2001
-From: Anton Kolesov <anton.kolesov@synopsys.com>
-Date: Fri, 14 Feb 2014 11:56:23 +0400
-Subject: [PATCH 4/4] gdb: Add native support for ARC in GNU/Linux
-
-With this patch in place it is possible to build a GDB that
-can run on ARC (GNU/Linux) hosts for debugging ARC targets.
-
-The "arc-linux-nat.c" is a rather small one that mostly deals
-with registers and a few thread related hooks.
-
-v2 [1]:
-- Remove "void" from the input of "_initialize_arc_linux_nat ()"
-
-[1] Tom's remark after the first patch
-https://sourceware.org/pipermail/gdb-patches/2020-November/173223.html
-
-gdb/ChangeLog:
-
-	* Makefile.in (ALLDEPFILES): Add arc-linux-nat.c.
-	* configure.host (host to gdb names): Add arc*-*-linux*.
-	* configure.nat (gdb_host_cpu): Add arc.
-	* arc-linux-nat.c: New.
-
-Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=04c9f85efcd8df5fc482ce97c0104cc7dd5d19e6]
-
-Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
-Signed-off-by: Shahab Vahedi <shahab@synopsys.com>
-Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
----
- gdb/Makefile.in     |   1 +
- gdb/arc-linux-nat.c | 320 ++++++++++++++++++++++++++++++++++++++++++++++++++++
- gdb/configure.host  |   3 +
- gdb/configure.nat   |   4 +
- 4 files changed, 328 insertions(+)
- create mode 100644 gdb/arc-linux-nat.c
-
-diff --git a/gdb/Makefile.in b/gdb/Makefile.in
-index ec371fc7e52..c76136907ae 100644
---- a/gdb/Makefile.in
-+++ b/gdb/Makefile.in
-@@ -2136,6 +2136,7 @@ ALLDEPFILES = \
- 	amd64-obsd-tdep.c \
- 	amd64-sol2-tdep.c \
- 	amd64-tdep.c \
-+	arc-linux-nat.c \
- 	arc-tdep.c \
- 	arm.c \
- 	arm-bsd-tdep.c \
-diff --git a/gdb/arc-linux-nat.c b/gdb/arc-linux-nat.c
-new file mode 100644
-index 00000000000..41301fd4fed
---- /dev/null
-+++ b/gdb/arc-linux-nat.c
-@@ -0,0 +1,320 @@
-+/* Native-dependent code for GNU/Linux ARC.
-+
-+   Copyright 2020 Free Software Foundation, Inc.
-+
-+   This file is part of GDB.
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 3 of the License, or
-+   (at your option) any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-+
-+#include "defs.h"
-+#include "frame.h"
-+#include "inferior.h"
-+#include "gdbcore.h"
-+#include "regcache.h"
-+#include "gdbsupport/gdb_assert.h"
-+#include "target.h"
-+#include "linux-nat.h"
-+#include "nat/gdb_ptrace.h"
-+
-+#include <stdint.h>
-+#include <sys/types.h>
-+#include <sys/param.h>
-+#include <signal.h>
-+#include <sys/user.h>
-+#include <sys/ioctl.h>
-+#include "gdbsupport/gdb_wait.h"
-+#include <fcntl.h>
-+#include <sys/procfs.h>
-+#include <linux/elf.h>
-+
-+#include "gregset.h"
-+#include "arc-tdep.h"
-+#include "arc-linux-tdep.h"
-+#include "arch/arc.h"
-+
-+/* Defines ps_err_e, struct ps_prochandle.  */
-+#include "gdb_proc_service.h"
-+
-+/* Linux starting with 4.12 supports NT_ARC_V2 note type, which adds R30,
-+   R58 and R59 registers, which are specific to ARC HS and aren't
-+   available in ARC 700.  */
-+#if defined (NT_ARC_V2) && defined (__ARCHS__)
-+#define ARC_HAS_V2_REGSET
-+#endif
-+
-+class arc_linux_nat_target final : public linux_nat_target
-+{
-+public:
-+  /* Add ARC register access methods.  */
-+  void fetch_registers (struct regcache *, int) override;
-+  void store_registers (struct regcache *, int) override;
-+
-+  const struct target_desc *read_description () override;
-+
-+  /* Handle threads  */
-+  void low_prepare_to_resume (struct lwp_info *lp) override;
-+};
-+
-+static arc_linux_nat_target the_arc_linux_nat_target;
-+
-+/* Read general registers from target process/thread (via ptrace)
-+   into REGCACHE.  */
-+
-+static void
-+fetch_gregs (struct regcache *regcache, int regnum)
-+{
-+  const int tid = get_ptrace_pid (regcache->ptid ());
-+  struct iovec iov;
-+  gdb_gregset_t regs;
-+
-+  iov.iov_base = &regs;
-+  iov.iov_len = sizeof (gdb_gregset_t);
-+
-+  if (ptrace (PTRACE_GETREGSET, tid, NT_PRSTATUS, (void *) &iov) < 0)
-+    perror_with_name (_("Couldn't get general registers"));
-+  else
-+    arc_linux_supply_gregset (NULL, regcache, regnum, &regs, 0);
-+}
-+
-+#ifdef ARC_HAS_V2_REGSET
-+/* Read ARC v2 registers from target process/thread (via ptrace)
-+   into REGCACHE.  */
-+
-+static void
-+fetch_v2_regs (struct regcache *regcache, int regnum)
-+{
-+  const int tid = get_ptrace_pid (regcache->ptid ());
-+  struct iovec iov;
-+  bfd_byte v2_buffer[ARC_LINUX_SIZEOF_V2_REGSET];
-+
-+  iov.iov_base = &v2_buffer;
-+  iov.iov_len = ARC_LINUX_SIZEOF_V2_REGSET;
-+
-+  if (ptrace (PTRACE_GETREGSET, tid, NT_ARC_V2, (void *) &iov) < 0)
-+    perror_with_name (_("Couldn't get ARC HS registers"));
-+  else
-+    arc_linux_supply_v2_regset (NULL, regcache, regnum, v2_buffer, 0);
-+}
-+#endif
-+
-+/* Store general registers from REGCACHE into the target process/thread.  */
-+
-+static void
-+store_gregs (const struct regcache *regcache, int regnum)
-+{
-+  const int tid = get_ptrace_pid (regcache->ptid ());
-+  struct iovec iov;
-+  gdb_gregset_t regs;
-+
-+  iov.iov_base = &regs;
-+  iov.iov_len = sizeof (gdb_gregset_t);
-+
-+  if (ptrace (PTRACE_GETREGSET, tid, NT_PRSTATUS, (void *) &iov) < 0)
-+    perror_with_name (_("Couldn't get general registers"));
-+  else
-+    {
-+      arc_linux_collect_gregset (NULL, regcache, regnum, regs, 0);
-+
-+      if (ptrace (PTRACE_SETREGSET, tid, NT_PRSTATUS, (void *) &iov) < 0)
-+	perror_with_name (_("Couldn't write general registers"));
-+    }
-+}
-+
-+#ifdef ARC_HAS_V2_REGSET
-+/* Store ARC v2 registers from REGCACHE into the target process/thread.  */
-+
-+static void
-+store_v2_regs (const struct regcache *regcache, int regnum)
-+{
-+  const int tid = get_ptrace_pid (regcache->ptid ());
-+  struct iovec iov;
-+  bfd_byte v2_buffer[ARC_LINUX_SIZEOF_V2_REGSET];
-+
-+  iov.iov_base = &v2_buffer;
-+  iov.iov_len = ARC_LINUX_SIZEOF_V2_REGSET;
-+
-+  if (ptrace (PTRACE_GETREGSET, tid, NT_ARC_V2, (void *) &iov) < 0)
-+    perror_with_name (_("Couldn't get ARC HS registers"));
-+  else
-+    {
-+      arc_linux_collect_v2_regset (NULL, regcache, regnum, v2_buffer, 0);
-+
-+      if (ptrace (PTRACE_SETREGSET, tid, NT_ARC_V2, (void *) &iov) < 0)
-+	perror_with_name (_("Couldn't write ARC HS registers"));
-+    }
-+}
-+#endif
-+
-+/* Target operation: Read REGNUM register (all registers if REGNUM == -1)
-+   from target process into REGCACHE.  */
-+
-+void
-+arc_linux_nat_target::fetch_registers (struct regcache *regcache, int regnum)
-+{
-+
-+  if (regnum == -1 || regnum <= ARC_LAST_REGNUM)
-+    fetch_gregs (regcache, regnum);
-+
-+#ifdef ARC_HAS_V2_REGSET
-+  if (regnum == -1
-+      || regnum == ARC_R30_REGNUM
-+      || regnum == ARC_R58_REGNUM
-+      || regnum == ARC_R59_REGNUM)
-+      fetch_v2_regs (regcache, regnum);
-+#endif
-+}
-+
-+/* Target operation: Store REGNUM register (all registers if REGNUM == -1)
-+   to the target process from REGCACHE.  */
-+
-+void
-+arc_linux_nat_target::store_registers (struct regcache *regcache, int regnum)
-+{
-+  if (regnum == -1 || regnum <= ARC_LAST_REGNUM)
-+    store_gregs (regcache, regnum);
-+
-+#ifdef ARC_HAS_V2_REGSET
-+  if (regnum == -1
-+      || regnum == ARC_R30_REGNUM
-+      || regnum == ARC_R58_REGNUM
-+      || regnum == ARC_R59_REGNUM)
-+    store_v2_regs (regcache, regnum);
-+#endif
-+}
-+
-+/* Copy general purpose register(s) from REGCACHE into regset GREGS.
-+   This function is exported to proc-service.c  */
-+
-+void
-+fill_gregset (const struct regcache *regcache,
-+	      gdb_gregset_t *gregs, int regnum)
-+{
-+  arc_linux_collect_gregset (NULL, regcache, regnum, gregs, 0);
-+}
-+
-+/* Copy all the general purpose registers from regset GREGS into REGCACHE.
-+   This function is exported to proc-service.c.  */
-+
-+void
-+supply_gregset (struct regcache *regcache, const gdb_gregset_t *gregs)
-+{
-+  arc_linux_supply_gregset (NULL, regcache, -1, gregs, 0);
-+}
-+
-+/* ARC doesn't have separate FP registers.  This function is exported
-+   to proc-service.c.  */
-+
-+void
-+fill_fpregset (const struct regcache *regcache,
-+	       gdb_fpregset_t *fpregsetp, int regnum)
-+{
-+  if (arc_debug)
-+    debug_printf ("arc-linux-nat: fill_fpregset called.");
-+  return;
-+}
-+
-+/* ARC doesn't have separate FP registers.  This function is exported
-+   to proc-service.c.  */
-+
-+void
-+supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *fpregsetp)
-+{
-+  if (arc_debug)
-+    debug_printf ("arc-linux-nat: supply_fpregset called.");
-+  return;
-+}
-+
-+/* Implement the "read_description" method of linux_nat_target.  */
-+
-+const struct target_desc *
-+arc_linux_nat_target::read_description ()
-+{
-+  /* This is a native target, hence description is hardcoded.  */
-+#ifdef __ARCHS__
-+  arc_arch_features features (4, ARC_ISA_ARCV2);
-+#else
-+  arc_arch_features features (4, ARC_ISA_ARCV1);
-+#endif
-+  return arc_lookup_target_description (features);
-+}
-+
-+/* As described in arc_linux_collect_gregset(), we need to write resume-PC
-+   to ERET.  However by default GDB for native targets doesn't write
-+   registers if they haven't been changed.  This is a callback called by
-+   generic GDB, and in this callback we have to rewrite PC value so it
-+   would force rewrite of register on target.  It seems that the only
-+   other arch that utilizes this hook is x86/x86-64 for HW breakpoint
-+   support.  But then, AFAIK no other arch has this stop_pc/eret
-+   complexity.
-+
-+   No better way was found, other than this fake write of register value,
-+   to force GDB into writing register to target.  Is there any?  */
-+
-+void
-+arc_linux_nat_target::low_prepare_to_resume (struct lwp_info *lwp)
-+{
-+  /* When new processes and threads are created we do not have the address
-+     space for them and calling get_thread_regcache will cause an internal
-+     error in GDB.  It looks like that checking for last_resume_kind is the
-+     sensible way to determine processes for which we cannot get regcache.
-+     Ultimately, a better way would be removing the need for
-+     low_prepare_to_resume in the first place.  */
-+  if (lwp->last_resume_kind == resume_stop)
-+    return;
-+
-+  struct regcache *regcache = get_thread_regcache (this, lwp->ptid);
-+  struct gdbarch *gdbarch = regcache->arch ();
-+
-+  /* Read current PC value, then write it back.  It is required to call
-+     invalidate(), otherwise GDB will note that new value is equal to old
-+     value and will skip write.  */
-+  ULONGEST new_pc;
-+  regcache_cooked_read_unsigned (regcache, gdbarch_pc_regnum (gdbarch),
-+				 &new_pc);
-+  regcache->invalidate (gdbarch_pc_regnum (gdbarch));
-+  regcache_cooked_write_unsigned (regcache, gdbarch_pc_regnum (gdbarch),
-+				  new_pc);
-+}
-+
-+/* Fetch the thread-local storage pointer for libthread_db.  Note that
-+   this function is not called from GDB, but is called from libthread_db.
-+   This is required to debug multithreaded applications with NPTL.  */
-+
-+ps_err_e
-+ps_get_thread_area (struct ps_prochandle *ph, lwpid_t lwpid, int idx,
-+		    void **base)
-+{
-+  if (arc_debug >= 2)
-+    debug_printf ("arc-linux-nat: ps_get_thread_area called");
-+
-+  if (ptrace (PTRACE_GET_THREAD_AREA, lwpid, NULL, base) != 0)
-+    return PS_ERR;
-+
-+  /* IDX is the bias from the thread pointer to the beginning of the
-+     thread descriptor.  It has to be subtracted due to implementation
-+     quirks in libthread_db.  */
-+  *base = (void *) ((char *) *base - idx);
-+
-+  return PS_OK;
-+}
-+
-+/* Suppress warning from -Wmissing-prototypes.  */
-+void _initialize_arc_linux_nat ();
-+void
-+_initialize_arc_linux_nat ()
-+{
-+  /* Register the target.  */
-+  linux_target = &the_arc_linux_nat_target;
-+  add_inf_child_target (&the_arc_linux_nat_target);
-+}
-diff --git a/gdb/configure.host b/gdb/configure.host
-index ce528237291..e94a19b0332 100644
---- a/gdb/configure.host
-+++ b/gdb/configure.host
-@@ -60,6 +60,7 @@ case "${host_cpu}" in
- 
- aarch64*)		gdb_host_cpu=aarch64 ;;
- alpha*)			gdb_host_cpu=alpha ;;
-+arc*)			gdb_host_cpu=arc ;;
- arm*)			gdb_host_cpu=arm ;;
- hppa*)			gdb_host_cpu=pa ;;
- i[34567]86*)		gdb_host_cpu=i386 ;;
-@@ -91,6 +92,8 @@ alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu)
- 			gdb_host=nbsd ;;
- alpha*-*-openbsd*)	gdb_host=nbsd ;;
- 
-+arc*-*-linux*)		gdb_host=linux ;;
-+
- arm*-*-freebsd*)	gdb_host=fbsd ;;
- arm*-*-linux*)		gdb_host=linux ;;
- arm*-*-netbsdelf* | arm*-*-knetbsd*-gnu)
-diff --git a/gdb/configure.nat b/gdb/configure.nat
-index bb70e303384..cd11bc86dca 100644
---- a/gdb/configure.nat
-+++ b/gdb/configure.nat
-@@ -238,6 +238,10 @@ case ${gdb_host} in
- 		nat/aarch64-linux.o \
- 		nat/aarch64-sve-linux-ptrace.o"
- 		;;
-+	    arc)
-+		# Host: ARC based machine running GNU/Linux
-+		NATDEPFILES="${NATDEPFILES} arc-linux-nat.o"
-+		;;
- 	    arm)
- 		# Host: ARM based machine running GNU/Linux
- 		NATDEPFILES="${NATDEPFILES} arm-linux-nat.o \
--- 
-2.16.2
-
diff --git a/poky/meta/recipes-devtools/gdb/gdb_10.2.bb b/poky/meta/recipes-devtools/gdb/gdb_11.1.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gdb/gdb_10.2.bb
rename to poky/meta/recipes-devtools/gdb/gdb_11.1.bb
diff --git a/poky/meta/recipes-devtools/git/git.inc b/poky/meta/recipes-devtools/git/git.inc
index 9dd2cf4..1d74270 100644
--- a/poky/meta/recipes-devtools/git/git.inc
+++ b/poky/meta/recipes-devtools/git/git.inc
@@ -33,6 +33,7 @@
 
 EXTRA_OEMAKE = "NO_PYTHON=1 CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
 EXTRA_OEMAKE += "'PERL_PATH=/usr/bin/env perl'"
+EXTRA_OEMAKE += "COMPUTE_HEADER_DEPENDENCIES=no"
 EXTRA_OEMAKE:append:class-native = " NO_CROSS_DIRECTORY_HARDLINKS=1"
 
 do_compile:prepend () {
diff --git a/poky/meta/recipes-devtools/git/git_2.33.1.bb b/poky/meta/recipes-devtools/git/git_2.33.1.bb
deleted file mode 100644
index 0dbde7f..0000000
--- a/poky/meta/recipes-devtools/git/git_2.33.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require git.inc
-
-EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
-                 ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
-                 "
-EXTRA_OEMAKE += "NO_GETTEXT=1"
-
-SRC_URI[tarball.sha256sum] = "02047f8dc8934d57ff5e02aadd8a2fe8e0bcf94a7158da375e48086cc46fce1d"
-SRC_URI[manpages.sha256sum] = "292b08ca1b79422ff478a6221980099c5e3c0a38aba39d952063eedb68e27d93"
-
diff --git a/poky/meta/recipes-devtools/git/git_2.34.1.bb b/poky/meta/recipes-devtools/git/git_2.34.1.bb
new file mode 100644
index 0000000..2408176
--- /dev/null
+++ b/poky/meta/recipes-devtools/git/git_2.34.1.bb
@@ -0,0 +1,9 @@
+require git.inc
+
+EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
+                 ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
+                 "
+EXTRA_OEMAKE += "NO_GETTEXT=1"
+
+SRC_URI[tarball.sha256sum] = "fc4eb5ecb9299db91cdd156c06cdeb41833f53adc5631ddf8c0cb13eaa2911c1"
+SRC_URI[manpages.sha256sum] = "220f1ed68582caeddf79c4db15e4eaa4808ec01fd11889e19232f0a74d7f31b0"
diff --git a/poky/meta/recipes-devtools/glide/glide_0.13.3.bb b/poky/meta/recipes-devtools/glide/glide_0.13.3.bb
index e943dc1..db703c2 100644
--- a/poky/meta/recipes-devtools/glide/glide_0.13.3.bb
+++ b/poky/meta/recipes-devtools/glide/glide_0.13.3.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=54905cf894f8cc416a92f4fc350c35b2"
 
 GO_IMPORT = "github.com/Masterminds/glide"
-SRC_URI = "git://${GO_IMPORT}"
+SRC_URI = "git://${GO_IMPORT};branch=master;protocol=https"
 SRCREV = "8ed5b9292379d86c39592a7e6a58eb9c903877cf"
 
 inherit go
diff --git a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
index 34b4250..6b025fc 100644
--- a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
+++ b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
@@ -9,10 +9,10 @@
 
 INHIBIT_DEFAULT_DEPS = "1"
 
-SRCREV = "805517123cbfe33d17c989a18e78c5789fab0437"
-PV = "20210722+git${SRCPV}"
+SRCREV = "191bcb948f7191c36eefe634336f5fc5c0c4c2be"
+PV = "20211108+git${SRCPV}"
 
-SRC_URI = "git://git.savannah.gnu.org/config.git \
+SRC_URI = "git://git.savannah.gnu.org/config.git;branch=master \
            file://gnu-configize.in"
 S = "${WORKDIR}/git"
 UPSTREAM_CHECK_COMMITS = "1"
diff --git a/poky/meta/recipes-devtools/go/go-1.16.8.inc b/poky/meta/recipes-devtools/go/go-1.16.8.inc
deleted file mode 100644
index 925bf46..0000000
--- a/poky/meta/recipes-devtools/go/go-1.16.8.inc
+++ /dev/null
@@ -1,25 +0,0 @@
-require go-common.inc
-
-GO_BASEVERSION = "1.16"
-PV = "1.16.8"
-FILESEXTRAPATHS:prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
-
-SRC_URI += "\
-    file://0001-allow-CC-and-CXX-to-have-multiple-words.patch \
-    file://0002-cmd-go-make-content-based-hash-generation-less-pedan.patch \
-    file://0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch \
-    file://0004-ld-add-soname-to-shareable-objects.patch \
-    file://0005-make.bash-override-CC-when-building-dist-and-go_boot.patch \
-    file://0006-cmd-dist-separate-host-and-target-builds.patch \
-    file://0007-cmd-go-make-GOROOT-precious-by-default.patch \
-    file://0008-use-GOBUILDMODE-to-set-buildmode.patch \
-    file://0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch \
-"
-SRC_URI[main.sha256sum] = "8f2a8c24b793375b3243df82fdb0c8387486dcc8a892ca1c991aa99ace086b98"
-
-# Upstream don't believe it is a signifiant real world issue and will only
-# fix in 1.17 onwards where we can drop this.
-# https://github.com/golang/go/issues/30999#issuecomment-910470358
-CVE_CHECK_WHITELIST += "CVE-2021-29923"
diff --git a/poky/meta/recipes-devtools/go/go-1.16/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch b/poky/meta/recipes-devtools/go/go-1.16/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch
deleted file mode 100644
index 04d0e49..0000000
--- a/poky/meta/recipes-devtools/go/go-1.16/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch
+++ /dev/null
@@ -1,219 +0,0 @@
-From a13ae484e41139094505d2834437e9262a5315f7 Mon Sep 17 00:00:00 2001
-From: Alex Kube <alexander.j.kube@gmail.com>
-Date: Wed, 23 Oct 2019 21:14:22 +0430
-Subject: [PATCH 2/9] cmd/go: make content-based hash generation less pedantic
-
-Upstream-Status: Inappropriate [OE specific]
-
-Go 1.10's build tool now uses content-based hashes to
-determine when something should be built or re-built.
-This same mechanism is used to maintain a built-artifact
-cache for speeding up builds.
-
-However, the hashes it generates include information that
-doesn't work well with OE, nor with using a shared runtime
-library.
-
-First, it embeds path names to source files, unless
-building within GOROOT.  This prevents the building
-of a package in GOPATH for later staging into GOROOT.
-
-This patch adds support for the environment variable
-GOPATH_OMIT_IN_ACTIONID.  If present, path name
-embedding is disabled.
-
-Second, if cgo is enabled, the build ID for cgo-related
-packages will include the current value of the environment
-variables for invoking the compiler (CC, CXX, FC) and
-any CGO_xxFLAGS variables.  Only if the settings used
-during a compilation exactly match, character for character,
-the values used for compiling runtime/cgo or any other
-cgo-enabled package being imported, will the tool
-decide that the imported package is up-to-date.
-
-This is done to help ensure correctness, but is overly
-simplistic and effectively prevents the reuse of built
-artifacts that use cgo (or shared runtime, which includes
-runtime/cgo).
-
-This patch filters out all compiler flags except those
-beginning with '-m'.  The default behavior can be restored
-by setting the CGO_PEDANTIC environment variable.
-
-Adapted to Go 1.13 from patches originally submitted to
-the meta/recipes-devtools/go tree by
-Matt Madison <matt@madison.systems>.
-
-Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
----
- src/cmd/go/internal/envcmd/env.go |  2 +-
- src/cmd/go/internal/work/exec.go  | 66 ++++++++++++++++++++++---------
- 2 files changed, 49 insertions(+), 19 deletions(-)
-
---- a/src/cmd/go/internal/envcmd/env.go
-+++ b/src/cmd/go/internal/envcmd/env.go
-@@ -157,7 +157,7 @@ func ExtraEnvVars() []cfg.EnvVar {
- func ExtraEnvVarsCostly() []cfg.EnvVar {
- 	var b work.Builder
- 	b.Init()
--	cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{})
-+	cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{}, false)
- 	if err != nil {
- 		// Should not happen - b.CFlags was given an empty package.
- 		fmt.Fprintf(os.Stderr, "go: invalid cflags: %v\n", err)
---- a/src/cmd/go/internal/work/exec.go
-+++ b/src/cmd/go/internal/work/exec.go
-@@ -37,6 +37,8 @@ import (
- 	"cmd/go/internal/trace"
- )
- 
-+var omitGopath = os.Getenv("GOPATH_OMIT_IN_ACTIONID") != ""
-+
- // actionList returns the list of actions in the dag rooted at root
- // as visited in a depth-first post-order traversal.
- func actionList(root *Action) []*Action {
-@@ -228,7 +230,7 @@ func (b *Builder) buildActionID(a *Actio
- 	// Assume b.WorkDir is being trimmed properly.
- 	// When -trimpath is used with a package built from the module cache,
- 	// use the module path and version instead of the directory.
--	if !p.Goroot && !cfg.BuildTrimpath && !strings.HasPrefix(p.Dir, b.WorkDir) {
-+	if !p.Goroot && !omitGopath && !cfg.BuildTrimpath && !strings.HasPrefix(p.Dir, b.WorkDir) {
- 		fmt.Fprintf(h, "dir %s\n", p.Dir)
- 	} else if cfg.BuildTrimpath && p.Module != nil {
- 		fmt.Fprintf(h, "module %s@%s\n", p.Module.Path, p.Module.Version)
-@@ -247,13 +249,13 @@ func (b *Builder) buildActionID(a *Actio
- 	}
- 	if len(p.CgoFiles)+len(p.SwigFiles) > 0 {
- 		fmt.Fprintf(h, "cgo %q\n", b.toolID("cgo"))
--		cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p)
--		fmt.Fprintf(h, "CC=%q %q %q %q\n", b.ccExe(), cppflags, cflags, ldflags)
-+		cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p, true)
-+		fmt.Fprintf(h, "CC=%q %q %q %q\n", b.ccExe(true), cppflags, cflags, ldflags)
- 		if len(p.CXXFiles)+len(p.SwigFiles) > 0 {
--			fmt.Fprintf(h, "CXX=%q %q\n", b.cxxExe(), cxxflags)
-+			fmt.Fprintf(h, "CXX=%q %q\n", b.cxxExe(true), cxxflags)
- 		}
- 		if len(p.FFiles) > 0 {
--			fmt.Fprintf(h, "FC=%q %q\n", b.fcExe(), fflags)
-+			fmt.Fprintf(h, "FC=%q %q\n", b.fcExe(true), fflags)
- 		}
- 		// TODO(rsc): Should we include the SWIG version or Fortran/GCC/G++/Objective-C compiler versions?
- 	}
-@@ -2401,33 +2403,48 @@ var (
- // gccCmd returns a gcc command line prefix
- // defaultCC is defined in zdefaultcc.go, written by cmd/dist.
- func (b *Builder) GccCmd(incdir, workdir string) []string {
--	return b.compilerCmd(b.ccExe(), incdir, workdir)
-+	return b.compilerCmd(b.ccExe(false), incdir, workdir)
- }
- 
- // gxxCmd returns a g++ command line prefix
- // defaultCXX is defined in zdefaultcc.go, written by cmd/dist.
- func (b *Builder) GxxCmd(incdir, workdir string) []string {
--	return b.compilerCmd(b.cxxExe(), incdir, workdir)
-+	return b.compilerCmd(b.cxxExe(false), incdir, workdir)
- }
- 
- // gfortranCmd returns a gfortran command line prefix.
- func (b *Builder) gfortranCmd(incdir, workdir string) []string {
--	return b.compilerCmd(b.fcExe(), incdir, workdir)
-+	return b.compilerCmd(b.fcExe(false), incdir, workdir)
- }
- 
- // ccExe returns the CC compiler setting without all the extra flags we add implicitly.
--func (b *Builder) ccExe() []string {
--	return b.compilerExe(origCC, cfg.DefaultCC(cfg.Goos, cfg.Goarch))
-+func (b *Builder) ccExe(filtered bool) []string {
-+	return b.compilerExe(origCC, cfg.DefaultCC(cfg.Goos, cfg.Goarch), filtered)
- }
- 
- // cxxExe returns the CXX compiler setting without all the extra flags we add implicitly.
--func (b *Builder) cxxExe() []string {
--	return b.compilerExe(origCXX, cfg.DefaultCXX(cfg.Goos, cfg.Goarch))
-+func (b *Builder) cxxExe(filtered bool) []string {
-+	return b.compilerExe(origCXX, cfg.DefaultCXX(cfg.Goos, cfg.Goarch), filtered)
- }
- 
- // fcExe returns the FC compiler setting without all the extra flags we add implicitly.
--func (b *Builder) fcExe() []string {
--	return b.compilerExe(cfg.Getenv("FC"), "gfortran")
-+func (b *Builder) fcExe(filtered bool) []string {
-+	return b.compilerExe(os.Getenv("FC"), "gfortran", filtered)
-+}
-+
-+var filterFlags = os.Getenv("CGO_PEDANTIC") == ""
-+
-+func filterCompilerFlags(flags []string) []string {
-+	var newflags []string
-+	if !filterFlags {
-+		return flags
-+	}
-+	for _, flag := range flags {
-+		if strings.HasPrefix(flag, "-m") {
-+			newflags = append(newflags, flag)
-+		}
-+	}
-+	return newflags
- }
- 
- // compilerExe returns the compiler to use given an
-@@ -2436,11 +2453,16 @@ func (b *Builder) fcExe() []string {
- // of the compiler but can have additional arguments if they
- // were present in the environment value.
- // For example if CC="gcc -DGOPHER" then the result is ["gcc", "-DGOPHER"].
--func (b *Builder) compilerExe(envValue string, def string) []string {
-+func (b *Builder) compilerExe(envValue string, def string, filtered bool) []string {
- 	compiler := strings.Fields(envValue)
- 	if len(compiler) == 0 {
- 		compiler = strings.Fields(def)
- 	}
-+
-+	if filtered {
-+		return append(compiler[0:1], filterCompilerFlags(compiler[1:])...)
-+	}
-+
- 	return compiler
- }
- 
-@@ -2620,7 +2642,7 @@ func envList(key, def string) []string {
- }
- 
- // CFlags returns the flags to use when invoking the C, C++ or Fortran compilers, or cgo.
--func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, ldflags []string, err error) {
-+func (b *Builder) CFlags(p *load.Package, filtered bool) (cppflags, cflags, cxxflags, fflags, ldflags []string, err error) {
- 	defaults := "-g -O2"
- 
- 	if cppflags, err = buildFlags("CPPFLAGS", "", p.CgoCPPFLAGS, checkCompilerFlags); err != nil {
-@@ -2639,6 +2661,14 @@ func (b *Builder) CFlags(p *load.Package
- 		return
- 	}
- 
-+	if filtered {
-+		cppflags = filterCompilerFlags(cppflags)
-+		cflags = filterCompilerFlags(cflags)
-+		cxxflags = filterCompilerFlags(cxxflags)
-+		fflags = filterCompilerFlags(fflags)
-+		ldflags = filterCompilerFlags(ldflags)
-+	}
-+
- 	return
- }
- 
-@@ -2653,7 +2683,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
- 
- func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, gxxfiles, mfiles, ffiles []string) (outGo, outObj []string, err error) {
- 	p := a.Package
--	cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p)
-+	cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p, false)
- 	if err != nil {
- 		return nil, nil, err
- 	}
-@@ -3104,7 +3134,7 @@ func (b *Builder) swigIntSize(objdir str
- 
- // Run SWIG on one SWIG input file.
- func (b *Builder) swigOne(a *Action, p *load.Package, file, objdir string, pcCFLAGS []string, cxx bool, intgosize string) (outGo, outC string, err error) {
--	cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p)
-+	cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p, false)
- 	if err != nil {
- 		return "", "", err
- 	}
diff --git a/poky/meta/recipes-devtools/go/go-1.16/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch b/poky/meta/recipes-devtools/go/go-1.16/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch
deleted file mode 100644
index 662c705..0000000
--- a/poky/meta/recipes-devtools/go/go-1.16/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 28ada8896b76d620240bafc22aa395071d601482 Mon Sep 17 00:00:00 2001
-From: Alex Kube <alexander.j.kube@gmail.com>
-Date: Wed, 23 Oct 2019 21:15:37 +0430
-Subject: [PATCH 3/9] cmd/go: Allow GOTOOLDIR to be overridden in the environment
-
-to allow for split host/target build roots
-
-Adapted to Go 1.13 from patches originally submitted to
-the meta/recipes-devtools/go tree by
-Matt Madison <matt@madison.systems>.
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
----
- src/cmd/dist/build.go          | 4 +++-
- src/cmd/go/internal/cfg/cfg.go | 6 +++++-
- 2 files changed, 8 insertions(+), 2 deletions(-)
-
---- a/src/cmd/dist/build.go
-+++ b/src/cmd/dist/build.go
-@@ -246,7 +246,9 @@ func xinit() {
- 	workdir = xworkdir()
- 	xatexit(rmworkdir)
- 
--	tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
-+	if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
-+		tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
-+	}
- }
- 
- // compilerEnv returns a map from "goos/goarch" to the
---- a/src/cmd/go/internal/cfg/cfg.go
-+++ b/src/cmd/go/internal/cfg/cfg.go
-@@ -64,7 +64,11 @@ func defaultContext() build.Context {
- 		// variables. This matches the initialization of ToolDir in
- 		// go/build, except for using ctxt.GOROOT rather than
- 		// runtime.GOROOT.
--		build.ToolDir = filepath.Join(ctxt.GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
-+		if s := os.Getenv("GOTOOLDIR"); s != "" {
-+			build.ToolDir = filepath.Clean(s)
-+		} else {
-+			build.ToolDir = filepath.Join(ctxt.GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
-+		}
- 	}
- 
- 	ctxt.GOPATH = envOr("GOPATH", ctxt.GOPATH)
diff --git a/poky/meta/recipes-devtools/go/go-1.16/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch b/poky/meta/recipes-devtools/go/go-1.16/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch
deleted file mode 100644
index 59c12d9..0000000
--- a/poky/meta/recipes-devtools/go/go-1.16/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From f05ef3ded52b98537c10efd0b15cd9612471524d Mon Sep 17 00:00:00 2001
-From: Alex Kube <alexander.j.kube@gmail.com>
-Date: Wed, 23 Oct 2019 21:17:16 +0430
-Subject: [PATCH 5/9] make.bash: override CC when building dist and
- go_bootstrap
-
-for handling OE cross-canadian builds.
-
-Adapted to Go 1.13 from patches originally submitted to
-the meta/recipes-devtools/go tree by
-Matt Madison <matt@madison.systems>.
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
----
- src/make.bash | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/src/make.bash
-+++ b/src/make.bash
-@@ -178,7 +178,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ];
- 	exit 1
- fi
- rm -f cmd/dist/dist
--GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
-+CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
- 
- # -e doesn't propagate out of eval, so check success by hand.
- eval $(./cmd/dist/dist env -p || echo FAIL=true)
-@@ -209,7 +209,7 @@ fi
- # Run dist bootstrap to complete make.bash.
- # Bootstrap installs a proper cmd/dist, built with the new toolchain.
- # Throw ours, built with Go 1.4, away after bootstrap.
--./cmd/dist/dist bootstrap $buildall $vflag $GO_DISTFLAGS "$@"
-+CC="${BUILD_CC:-${CC}}" ./cmd/dist/dist bootstrap $buildall $vflag $GO_DISTFLAGS "$@"
- rm -f ./cmd/dist/dist
- 
- # DO NOT ADD ANY NEW CODE HERE.
diff --git a/poky/meta/recipes-devtools/go/go-1.16/0006-cmd-dist-separate-host-and-target-builds.patch b/poky/meta/recipes-devtools/go/go-1.16/0006-cmd-dist-separate-host-and-target-builds.patch
deleted file mode 100644
index 7aee0ba..0000000
--- a/poky/meta/recipes-devtools/go/go-1.16/0006-cmd-dist-separate-host-and-target-builds.patch
+++ /dev/null
@@ -1,274 +0,0 @@
-From 10735bb84df17ba657f76835f483cd8543a879c1 Mon Sep 17 00:00:00 2001
-From: Alex Kube <alexander.j.kube@gmail.com>
-Date: Wed, 23 Oct 2019 21:18:12 +0430
-Subject: [PATCH 6/9] cmd/dist: separate host and target builds
-
-Upstream-Status: Inappropriate [OE specific]
-
-Change the dist tool to allow for OE-style cross-
-and cross-canadian builds:
-
- - command flags --host-only and --target only are added;
-   if one is present, the other changes mentioned below
-   take effect, and arguments may also be specified on
-   the command line to enumerate the package(s) to be
-   built.
-
- - for OE cross builds, go_bootstrap is always built for
-   the current build host, and is moved, along with the supporting
-   toolchain (asm, compile, etc.) to a separate 'native_native'
-   directory under GOROOT/pkg/tool.
-
- - go_bootstrap is not automatically removed after the build,
-   so it can be reused later (e.g., building both static and
-   shared runtime).
-
-Note that for --host-only builds, it would be nice to specify
-just the "cmd" package to build only the go commands/tools,
-the staleness checks in the dist tool will fail if the "std"
-library has not also been built.  So host-only builds have to
-build everything anyway.
-
-Adapted to Go 1.13 from patches originally submitted to
-the meta/recipes-devtools/go tree by
-Matt Madison <matt@madison.systems>.
-
-Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
----
- src/cmd/dist/build.go | 155 ++++++++++++++++++++++++++++++------------
- 1 file changed, 112 insertions(+), 43 deletions(-)
-
---- a/src/cmd/dist/build.go
-+++ b/src/cmd/dist/build.go
-@@ -41,6 +41,7 @@ var (
- 	goldflags        string
- 	workdir          string
- 	tooldir          string
-+	build_tooldir    string
- 	oldgoos          string
- 	oldgoarch        string
- 	exe              string
-@@ -53,6 +54,7 @@ var (
- 
- 	rebuildall   bool
- 	defaultclang bool
-+	crossBuild   bool
- 
- 	vflag int // verbosity
- )
-@@ -249,6 +251,8 @@ func xinit() {
- 	if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
- 		tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
- 	}
-+
-+	build_tooldir = pathf("%s/pkg/tool/native_native", goroot)
- }
- 
- // compilerEnv returns a map from "goos/goarch" to the
-@@ -480,8 +484,10 @@ func setup() {
- 	p := pathf("%s/pkg/%s_%s", goroot, gohostos, gohostarch)
- 	if rebuildall {
- 		xremoveall(p)
-+		xremoveall(build_tooldir)
- 	}
- 	xmkdirall(p)
-+	xmkdirall(build_tooldir)
- 
- 	if goos != gohostos || goarch != gohostarch {
- 		p := pathf("%s/pkg/%s_%s", goroot, goos, goarch)
-@@ -1244,12 +1250,29 @@ func cmdbootstrap() {
- 
- 	var noBanner bool
- 	var debug bool
-+	var hostOnly bool
-+	var targetOnly bool
-+	var toBuild = []string{"std", "cmd"}
-+
- 	flag.BoolVar(&rebuildall, "a", rebuildall, "rebuild all")
- 	flag.BoolVar(&debug, "d", debug, "enable debugging of bootstrap process")
- 	flag.BoolVar(&noBanner, "no-banner", noBanner, "do not print banner")
-+	flag.BoolVar(&hostOnly, "host-only", hostOnly, "build only host binaries, not target")
-+	flag.BoolVar(&targetOnly, "target-only", targetOnly, "build only target binaries, not host")
- 
--	xflagparse(0)
-+	xflagparse(-1)
- 
-+	if hostOnly && targetOnly {
-+		fatalf("specify only one of --host-only or --target-only\n")
-+	}
-+	crossBuild = hostOnly || targetOnly
-+	if flag.NArg() > 0 {
-+		if crossBuild {
-+			toBuild = flag.Args()
-+		} else {
-+			fatalf("package names not permitted without --host-only or --target-only\n")
-+		}
-+	}
- 	// Set GOPATH to an internal directory. We shouldn't actually
- 	// need to store files here, since the toolchain won't
- 	// depend on modules outside of vendor directories, but if
-@@ -1303,8 +1326,13 @@ func cmdbootstrap() {
- 		xprintf("\n")
- 	}
- 
--	gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
--	goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
-+	// For split host/target cross/cross-canadian builds, we don't
-+	// want to be setting these flags until after we have compiled
-+	// the toolchain that runs on the build host.
-+	if !crossBuild {
-+		gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
-+		goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
-+	}
- 	goBootstrap := pathf("%s/go_bootstrap", tooldir)
- 	cmdGo := pathf("%s/go", gobin)
- 	if debug {
-@@ -1333,7 +1361,11 @@ func cmdbootstrap() {
- 		xprintf("\n")
- 	}
- 	xprintf("Building Go toolchain2 using go_bootstrap and Go toolchain1.\n")
--	os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
-+	if crossBuild {
-+		os.Setenv("CC", defaultcc[""])
-+	} else {
-+		os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
-+	}
- 	goInstall(goBootstrap, append([]string{"-i"}, toolchain...)...)
- 	if debug {
- 		run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
-@@ -1370,50 +1402,84 @@ func cmdbootstrap() {
- 	}
- 	checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
- 
--	if goos == oldgoos && goarch == oldgoarch {
--		// Common case - not setting up for cross-compilation.
--		timelog("build", "toolchain")
--		if vflag > 0 {
--			xprintf("\n")
-+	if crossBuild {
-+		gogcflags = os.Getenv("GO_GCFLAGS")
-+		goldflags = os.Getenv("GO_LDFLAGS")
-+		tool_files, _ := filepath.Glob(pathf("%s/*", tooldir))
-+		for _, f := range tool_files {
-+			copyfile(pathf("%s/%s", build_tooldir, filepath.Base(f)), f, writeExec)
-+			xremove(f)
-+		}
-+		os.Setenv("GOTOOLDIR", build_tooldir)
-+		goBootstrap = pathf("%s/go_bootstrap", build_tooldir)
-+		if hostOnly {
-+			timelog("build", "host toolchain")
-+			if vflag > 0 {
-+				xprintf("\n")
-+			}
-+			xprintf("Building %s for host, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch)
-+			goInstall(goBootstrap, toBuild...)
-+			checkNotStale(goBootstrap, toBuild...)
-+			// Skip cmdGo staleness checks here, since we can't necessarily run the cmdGo binary
-+
-+			timelog("build", "target toolchain")
-+			if vflag > 0 {
-+				xprintf("\n")
-+			}
-+		} else if targetOnly {
-+			goos = oldgoos
-+			goarch = oldgoarch
-+			os.Setenv("GOOS", goos)
-+			os.Setenv("GOARCH", goarch)
-+			os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
-+			xprintf("Building %s for target, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch)
-+			goInstall(goBootstrap, toBuild...)
-+			checkNotStale(goBootstrap, toBuild...)
-+			// Skip cmdGo staleness checks here, since we can't run the target's cmdGo binary
- 		}
--		xprintf("Building packages and commands for %s/%s.\n", goos, goarch)
- 	} else {
--		// GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
--		// Finish GOHOSTOS/GOHOSTARCH installation and then
--		// run GOOS/GOARCH installation.
--		timelog("build", "host toolchain")
--		if vflag > 0 {
--			xprintf("\n")
-+
-+		if goos == oldgoos && goarch == oldgoarch {
-+			// Common case - not setting up for cross-compilation.
-+			timelog("build", "toolchain")
-+			if vflag > 0 {
-+				xprintf("\n")
-+			}
-+			xprintf("Building packages and commands for %s/%s.\n", goos, goarch)
-+		} else {
-+			// GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
-+			// Finish GOHOSTOS/GOHOSTARCH installation and then
-+			// run GOOS/GOARCH installation.
-+			timelog("build", "host toolchain")
-+			if vflag > 0 {
-+				xprintf("\n")
-+			}
-+			xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
-+			goInstall(goBootstrap, "std", "cmd")
-+			checkNotStale(goBootstrap, "std", "cmd")
-+			checkNotStale(cmdGo, "std", "cmd")
-+
-+			timelog("build", "target toolchain")
-+			if vflag > 0 {
-+				xprintf("\n")
-+			}
-+			goos = oldgoos
-+			goarch = oldgoarch
-+			os.Setenv("GOOS", goos)
-+			os.Setenv("GOARCH", goarch)
-+			os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
-+			xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch)
- 		}
--		xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
- 		goInstall(goBootstrap, "std", "cmd")
- 		checkNotStale(goBootstrap, "std", "cmd")
- 		checkNotStale(cmdGo, "std", "cmd")
- 
--		timelog("build", "target toolchain")
--		if vflag > 0 {
--			xprintf("\n")
--		}
--		goos = oldgoos
--		goarch = oldgoarch
--		os.Setenv("GOOS", goos)
--		os.Setenv("GOARCH", goarch)
--		os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
--		xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch)
--	}
--	targets := []string{"std", "cmd"}
--	if goos == "js" && goarch == "wasm" {
--		// Skip the cmd tools for js/wasm. They're not usable.
--		targets = targets[:1]
--	}
--	goInstall(goBootstrap, targets...)
--	checkNotStale(goBootstrap, targets...)
--	checkNotStale(cmdGo, targets...)
--	if debug {
--		run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
--		run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch))
--		checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
--		copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
-+		if debug {
-+			run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
-+			run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch))
-+			checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
-+			copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
-+		}
- 	}
- 
- 	// Check that there are no new files in $GOROOT/bin other than
-@@ -1430,8 +1496,11 @@ func cmdbootstrap() {
- 		}
- 	}
- 
--	// Remove go_bootstrap now that we're done.
--	xremove(pathf("%s/go_bootstrap", tooldir))
-+	// Except that for split host/target cross-builds, we need to
-+	// keep it.
-+	if !crossBuild {
-+		xremove(pathf("%s/go_bootstrap", tooldir))
-+	}
- 
- 	if goos == "android" {
- 		// Make sure the exec wrapper will sync a fresh $GOROOT to the device.
diff --git a/poky/meta/recipes-devtools/go/go-1.16/0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch b/poky/meta/recipes-devtools/go/go-1.16/0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch
deleted file mode 100644
index dcbdf58..0000000
--- a/poky/meta/recipes-devtools/go/go-1.16/0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From a983bc6cd48fb0da939e3329cac18d7a3b29ecf8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 22 Feb 2021 17:54:01 -0800
-Subject: [PATCH] Revert "cmd/go: make sure CC and CXX are absolute"
-
-OE uses CC/CXX values which consists of cmpiler and options together,
-secondly, the environment is canned so this check add little value to OE
-based builds
-
-Fixes go-runtime build issues
-
-go install: CXX environment variable is relative; must be absolute path: powerpc64le-yoe-linux-musl-g++ -mlittle-endian -mhard-float -m64 -mabi=elfv2 -mcpu=power9 -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/mnt/b/yoe/master/build/tmp/work/ppc64p9le-yoe-linux-musl/go/1.16-r0/recipe-sysroot
-
-This reverts commit aa161e799df7e1eba99d2be10271e76b6f758142.
-
-Upstream-Status: Inappropriate [OE-Specific]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/cmd/go/internal/envcmd/env.go        |  5 -----
- src/cmd/go/internal/work/init.go         |  7 -------
- src/cmd/go/testdata/script/env_write.txt | 24 ------------------------
- 3 files changed, 36 deletions(-)
-
-diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go
-index 6937187522..29f9057c3f 100644
---- a/src/cmd/go/internal/envcmd/env.go
-+++ b/src/cmd/go/internal/envcmd/env.go
-@@ -427,11 +427,6 @@ func checkEnvWrite(key, val string) error {
- 		if !filepath.IsAbs(val) && val != "" {
- 			return fmt.Errorf("GOPATH entry is relative; must be absolute path: %q", val)
- 		}
--	// Make sure CC and CXX are absolute paths
--	case "CC", "CXX":
--		if !filepath.IsAbs(val) && val != "" && val != filepath.Base(val) {
--			return fmt.Errorf("%s entry is relative; must be absolute path: %q", key, val)
--		}
- 	}
- 
- 	if !utf8.ValidString(val) {
-diff --git a/src/cmd/go/internal/work/init.go b/src/cmd/go/internal/work/init.go
-index ba7c7c2fbb..3a6df5f758 100644
---- a/src/cmd/go/internal/work/init.go
-+++ b/src/cmd/go/internal/work/init.go
-@@ -41,13 +41,6 @@ func BuildInit() {
- 		cfg.BuildPkgdir = p
- 	}
- 
--	// Make sure CC and CXX are absolute paths
--	for _, key := range []string{"CC", "CXX"} {
--		if path := cfg.Getenv(key); !filepath.IsAbs(path) && path != "" && path != filepath.Base(path) {
--			base.Fatalf("go %s: %s environment variable is relative; must be absolute path: %s\n", flag.Args()[0], key, path)
--		}
--	}
--
- 	// For each experiment that has been enabled in the toolchain, define a
- 	// build tag with the same name but prefixed by "goexperiment." which can be
- 	// used for compiling alternative files for the experiment. This allows
-diff --git a/src/cmd/go/testdata/script/env_write.txt b/src/cmd/go/testdata/script/env_write.txt
-index bda1e57826..c99aadb7f2 100644
---- a/src/cmd/go/testdata/script/env_write.txt
-+++ b/src/cmd/go/testdata/script/env_write.txt
-@@ -129,30 +129,6 @@ go env -w GOTMPDIR=
- go env GOTMPDIR
- stdout ^$
- 
--# go env -w rejects relative CC values
--[!windows] go env -w CC=/usr/bin/clang
--go env -w CC=clang
--[!windows] ! go env -w CC=./clang
--[!windows] ! go env -w CC=bin/clang
--[!windows] stderr 'go env -w: CC entry is relative; must be absolute path'
--
--[windows] go env -w CC=$WORK\bin\clang
--[windows] ! go env -w CC=.\clang
--[windows] ! go env -w CC=bin\clang
--[windows] stderr 'go env -w: CC entry is relative; must be absolute path'
--
--# go env -w rejects relative CXX values
--[!windows] go env -w CC=/usr/bin/cpp
--go env -w CXX=cpp
--[!windows] ! go env -w CXX=./cpp
--[!windows] ! go env -w CXX=bin/cpp
--[!windows] stderr 'go env -w: CXX entry is relative; must be absolute path'
--
--[windows] go env -w CXX=$WORK\bin\cpp
--[windows] ! go env -w CXX=.\cpp
--[windows] ! go env -w CXX=bin\cpp
--[windows] stderr 'go env -w: CXX entry is relative; must be absolute path'
--
- # go env -w/-u checks validity of GOOS/ARCH combinations
- env GOOS=
- env GOARCH=
--- 
-2.30.1
-
diff --git a/poky/meta/recipes-devtools/go/go-1.17.6.inc b/poky/meta/recipes-devtools/go/go-1.17.6.inc
new file mode 100644
index 0000000..3ea23e0
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.17.6.inc
@@ -0,0 +1,25 @@
+require go-common.inc
+
+FILESEXTRAPATHS:prepend := "${FILE_DIRNAME}/go-1.17:"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
+
+SRC_URI += "\
+    file://0001-allow-CC-and-CXX-to-have-multiple-words.patch \
+    file://0002-cmd-go-make-content-based-hash-generation-less-pedan.patch \
+    file://0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch \
+    file://0004-ld-add-soname-to-shareable-objects.patch \
+    file://0005-make.bash-override-CC-when-building-dist-and-go_boot.patch \
+    file://0006-cmd-dist-separate-host-and-target-builds.patch \
+    file://0007-cmd-go-make-GOROOT-precious-by-default.patch \
+    file://0008-use-GOBUILDMODE-to-set-buildmode.patch \
+    file://0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch \
+    file://0001-exec.go-do-not-write-linker-flags-into-buildids.patch \
+    file://0001-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \
+"
+SRC_URI[main.sha256sum] = "4dc1bbf3ff61f0c1ff2b19355e6d88151a70126268a47c761477686ef94748c8"
+
+# Upstream don't believe it is a signifiant real world issue and will only
+# fix in 1.17 onwards where we can drop this.
+# https://github.com/golang/go/issues/30999#issuecomment-910470358
+CVE_CHECK_WHITELIST += "CVE-2021-29923"
diff --git a/poky/meta/recipes-devtools/go/go-1.16/0001-allow-CC-and-CXX-to-have-multiple-words.patch b/poky/meta/recipes-devtools/go/go-1.17/0001-allow-CC-and-CXX-to-have-multiple-words.patch
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-1.16/0001-allow-CC-and-CXX-to-have-multiple-words.patch
rename to poky/meta/recipes-devtools/go/go-1.17/0001-allow-CC-and-CXX-to-have-multiple-words.patch
diff --git a/poky/meta/recipes-devtools/go/go-1.17/0001-exec.go-do-not-write-linker-flags-into-buildids.patch b/poky/meta/recipes-devtools/go/go-1.17/0001-exec.go-do-not-write-linker-flags-into-buildids.patch
new file mode 100644
index 0000000..20b6636
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.17/0001-exec.go-do-not-write-linker-flags-into-buildids.patch
@@ -0,0 +1,41 @@
+From bdd69b55387f80c8df18d0af5008bf5e1a66be6a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 23 Nov 2020 19:22:04 +0000
+Subject: [PATCH] exec.go: do not write linker flags into buildids
+
+The flags can contain build-specific paths, breaking reproducibility.
+
+To make this acceptable to upstream, we probably need to trim the flags,
+removing those known to be buildhost-specific.
+
+Upstream-Status: Inappropriate [needs upstream discussion]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/cmd/go/internal/work/exec.go | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
+index 696db23..727d40b 100644
+--- a/src/cmd/go/internal/work/exec.go
++++ b/src/cmd/go/internal/work/exec.go
+@@ -1136,7 +1136,7 @@ func (b *Builder) linkActionID(a *Action) cache.ActionID {
+ 	}
+ 
+ 	// Toolchain-dependent configuration, shared with b.linkSharedActionID.
+-	b.printLinkerConfig(h, p)
++	//b.printLinkerConfig(h, p)
+ 
+ 	// Input files.
+ 	for _, a1 := range a.Deps {
+@@ -1418,7 +1418,7 @@ func (b *Builder) linkSharedActionID(a *Action) cache.ActionID {
+ 	fmt.Fprintf(h, "goos %s goarch %s\n", cfg.Goos, cfg.Goarch)
+ 
+ 	// Toolchain-dependent configuration, shared with b.linkActionID.
+-	b.printLinkerConfig(h, nil)
++	//b.printLinkerConfig(h, nil)
+ 
+ 	// Input files.
+ 	for _, a1 := range a.Deps {
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/go/go-1.17/0001-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch b/poky/meta/recipes-devtools/go/go-1.17/0001-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
new file mode 100644
index 0000000..257454a
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.17/0001-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
@@ -0,0 +1,41 @@
+From 2055a46b396e272616c0b2273903e02c3b49a2ff Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 10 Nov 2020 16:33:27 +0000
+Subject: [PATCH] src/cmd/dist/buildgo.go: do not hardcode host compilers into
+ target binaries
+
+These come from $CC/$CXX on the build host and are not useful on targets;
+additionally as they contain host specific paths, this helps reproducibility.
+
+Upstream-Status: Inappropriate [needs upstream discussion]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/cmd/dist/buildgo.go | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/cmd/dist/buildgo.go b/src/cmd/dist/buildgo.go
+index caafc13..4eb1c96 100644
+--- a/src/cmd/dist/buildgo.go
++++ b/src/cmd/dist/buildgo.go
+@@ -34,8 +34,8 @@ func mkzdefaultcc(dir, file string) {
+ 		fmt.Fprintf(&buf, "package cfg\n")
+ 		fmt.Fprintln(&buf)
+ 		fmt.Fprintf(&buf, "const DefaultPkgConfig = `%s`\n", defaultpkgconfig)
+-		buf.WriteString(defaultCCFunc("DefaultCC", defaultcc))
+-		buf.WriteString(defaultCCFunc("DefaultCXX", defaultcxx))
++		buf.WriteString(defaultCCFunc("DefaultCC", map[string]string{"":"gcc"}))
++		buf.WriteString(defaultCCFunc("DefaultCXX", map[string]string{"":"g++"}))
+ 		writefile(buf.String(), file, writeSkipSame)
+ 		return
+ 	}
+@@ -46,8 +46,8 @@ func mkzdefaultcc(dir, file string) {
+ 	fmt.Fprintf(&buf, "package main\n")
+ 	fmt.Fprintln(&buf)
+ 	fmt.Fprintf(&buf, "const defaultPkgConfig = `%s`\n", defaultpkgconfig)
+-	buf.WriteString(defaultCCFunc("defaultCC", defaultcc))
+-	buf.WriteString(defaultCCFunc("defaultCXX", defaultcxx))
++	buf.WriteString(defaultCCFunc("defaultCC", map[string]string{"":"gcc"}))
++	buf.WriteString(defaultCCFunc("defaultCXX", map[string]string{"":"g++"}))
+ 	writefile(buf.String(), file, writeSkipSame)
+ }
+ 
diff --git a/poky/meta/recipes-devtools/go/go-1.17/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch b/poky/meta/recipes-devtools/go/go-1.17/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch
new file mode 100644
index 0000000..42cd568
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.17/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch
@@ -0,0 +1,237 @@
+From c403b45995c5daa6747ac4d95b39bc9a6feb2cda Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:14:22 +0430
+Subject: [PATCH] cmd/go: make content-based hash generation less pedantic
+
+Upstream-Status: Inappropriate [OE specific]
+
+Go 1.10's build tool now uses content-based hashes to
+determine when something should be built or re-built.
+This same mechanism is used to maintain a built-artifact
+cache for speeding up builds.
+
+However, the hashes it generates include information that
+doesn't work well with OE, nor with using a shared runtime
+library.
+
+First, it embeds path names to source files, unless
+building within GOROOT.  This prevents the building
+of a package in GOPATH for later staging into GOROOT.
+
+This patch adds support for the environment variable
+GOPATH_OMIT_IN_ACTIONID.  If present, path name
+embedding is disabled.
+
+Second, if cgo is enabled, the build ID for cgo-related
+packages will include the current value of the environment
+variables for invoking the compiler (CC, CXX, FC) and
+any CGO_xxFLAGS variables.  Only if the settings used
+during a compilation exactly match, character for character,
+the values used for compiling runtime/cgo or any other
+cgo-enabled package being imported, will the tool
+decide that the imported package is up-to-date.
+
+This is done to help ensure correctness, but is overly
+simplistic and effectively prevents the reuse of built
+artifacts that use cgo (or shared runtime, which includes
+runtime/cgo).
+
+This patch filters out all compiler flags except those
+beginning with '-m'.  The default behavior can be restored
+by setting the CGO_PEDANTIC environment variable.
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+---
+ src/cmd/go/internal/envcmd/env.go |  2 +-
+ src/cmd/go/internal/work/exec.go  | 66 ++++++++++++++++++++++---------
+ 2 files changed, 49 insertions(+), 19 deletions(-)
+
+diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go
+index 20d0587..ff6f0d8 100644
+--- a/src/cmd/go/internal/envcmd/env.go
++++ b/src/cmd/go/internal/envcmd/env.go
+@@ -160,7 +160,7 @@ func ExtraEnvVars() []cfg.EnvVar {
+ func ExtraEnvVarsCostly() []cfg.EnvVar {
+ 	var b work.Builder
+ 	b.Init()
+-	cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{})
++	cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{}, false)
+ 	if err != nil {
+ 		// Should not happen - b.CFlags was given an empty package.
+ 		fmt.Fprintf(os.Stderr, "go: invalid cflags: %v\n", err)
+diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
+index 5a225fb..a37872e 100644
+--- a/src/cmd/go/internal/work/exec.go
++++ b/src/cmd/go/internal/work/exec.go
+@@ -38,6 +38,8 @@ import (
+ 	"cmd/go/internal/trace"
+ )
+ 
++var omitGopath = os.Getenv("GOPATH_OMIT_IN_ACTIONID") != ""
++
+ // actionList returns the list of actions in the dag rooted at root
+ // as visited in a depth-first post-order traversal.
+ func actionList(root *Action) []*Action {
+@@ -229,7 +231,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+ 	// Assume b.WorkDir is being trimmed properly.
+ 	// When -trimpath is used with a package built from the module cache,
+ 	// use the module path and version instead of the directory.
+-	if !p.Goroot && !cfg.BuildTrimpath && !strings.HasPrefix(p.Dir, b.WorkDir) {
++	if !p.Goroot && !omitGopath && !cfg.BuildTrimpath && !strings.HasPrefix(p.Dir, b.WorkDir) {
+ 		fmt.Fprintf(h, "dir %s\n", p.Dir)
+ 	} else if cfg.BuildTrimpath && p.Module != nil {
+ 		fmt.Fprintf(h, "module %s@%s\n", p.Module.Path, p.Module.Version)
+@@ -248,9 +250,9 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+ 	}
+ 	if len(p.CgoFiles)+len(p.SwigFiles)+len(p.SwigCXXFiles) > 0 {
+ 		fmt.Fprintf(h, "cgo %q\n", b.toolID("cgo"))
+-		cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p)
++		cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p, true)
+ 
+-		ccExe := b.ccExe()
++		ccExe := b.ccExe(true)
+ 		fmt.Fprintf(h, "CC=%q %q %q %q\n", ccExe, cppflags, cflags, ldflags)
+ 		// Include the C compiler tool ID so that if the C
+ 		// compiler changes we rebuild the package.
+@@ -263,14 +265,14 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+ 			}
+ 		}
+ 		if len(p.CXXFiles)+len(p.SwigCXXFiles) > 0 {
+-			cxxExe := b.cxxExe()
++			cxxExe := b.cxxExe(true)
+ 			fmt.Fprintf(h, "CXX=%q %q\n", cxxExe, cxxflags)
+ 			if cxxID, err := b.gccToolID(cxxExe[0], "c++"); err == nil {
+ 				fmt.Fprintf(h, "CXX ID=%q\n", cxxID)
+ 			}
+ 		}
+ 		if len(p.FFiles) > 0 {
+-			fcExe := b.fcExe()
++			fcExe := b.fcExe(true)
+ 			fmt.Fprintf(h, "FC=%q %q\n", fcExe, fflags)
+ 			if fcID, err := b.gccToolID(fcExe[0], "f95"); err == nil {
+ 				fmt.Fprintf(h, "FC ID=%q\n", fcID)
+@@ -2438,33 +2440,48 @@ var (
+ // gccCmd returns a gcc command line prefix
+ // defaultCC is defined in zdefaultcc.go, written by cmd/dist.
+ func (b *Builder) GccCmd(incdir, workdir string) []string {
+-	return b.compilerCmd(b.ccExe(), incdir, workdir)
++	return b.compilerCmd(b.ccExe(false), incdir, workdir)
+ }
+ 
+ // gxxCmd returns a g++ command line prefix
+ // defaultCXX is defined in zdefaultcc.go, written by cmd/dist.
+ func (b *Builder) GxxCmd(incdir, workdir string) []string {
+-	return b.compilerCmd(b.cxxExe(), incdir, workdir)
++	return b.compilerCmd(b.cxxExe(false), incdir, workdir)
+ }
+ 
+ // gfortranCmd returns a gfortran command line prefix.
+ func (b *Builder) gfortranCmd(incdir, workdir string) []string {
+-	return b.compilerCmd(b.fcExe(), incdir, workdir)
++	return b.compilerCmd(b.fcExe(false), incdir, workdir)
+ }
+ 
+ // ccExe returns the CC compiler setting without all the extra flags we add implicitly.
+-func (b *Builder) ccExe() []string {
+-	return b.compilerExe(origCC, cfg.DefaultCC(cfg.Goos, cfg.Goarch))
++func (b *Builder) ccExe(filtered bool) []string {
++	return b.compilerExe(origCC, cfg.DefaultCC(cfg.Goos, cfg.Goarch), filtered)
+ }
+ 
+ // cxxExe returns the CXX compiler setting without all the extra flags we add implicitly.
+-func (b *Builder) cxxExe() []string {
+-	return b.compilerExe(origCXX, cfg.DefaultCXX(cfg.Goos, cfg.Goarch))
++func (b *Builder) cxxExe(filtered bool) []string {
++	return b.compilerExe(origCXX, cfg.DefaultCXX(cfg.Goos, cfg.Goarch), filtered)
+ }
+ 
+ // fcExe returns the FC compiler setting without all the extra flags we add implicitly.
+-func (b *Builder) fcExe() []string {
+-	return b.compilerExe(cfg.Getenv("FC"), "gfortran")
++func (b *Builder) fcExe(filtered bool) []string {
++	return b.compilerExe(os.Getenv("FC"), "gfortran", filtered)
++}
++
++var filterFlags = os.Getenv("CGO_PEDANTIC") == ""
++
++func filterCompilerFlags(flags []string) []string {
++	var newflags []string
++	if !filterFlags {
++		return flags
++	}
++	for _, flag := range flags {
++		if strings.HasPrefix(flag, "-m") {
++			newflags = append(newflags, flag)
++		}
++	}
++	return newflags
+ }
+ 
+ // compilerExe returns the compiler to use given an
+@@ -2473,11 +2490,16 @@ func (b *Builder) fcExe() []string {
+ // of the compiler but can have additional arguments if they
+ // were present in the environment value.
+ // For example if CC="gcc -DGOPHER" then the result is ["gcc", "-DGOPHER"].
+-func (b *Builder) compilerExe(envValue string, def string) []string {
++func (b *Builder) compilerExe(envValue string, def string, filtered bool) []string {
+ 	compiler := strings.Fields(envValue)
+ 	if len(compiler) == 0 {
+ 		compiler = strings.Fields(def)
+ 	}
++
++	if filtered {
++		return append(compiler[0:1], filterCompilerFlags(compiler[1:])...)
++	}
++
+ 	return compiler
+ }
+ 
+@@ -2667,7 +2689,7 @@ func envList(key, def string) []string {
+ }
+ 
+ // CFlags returns the flags to use when invoking the C, C++ or Fortran compilers, or cgo.
+-func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, ldflags []string, err error) {
++func (b *Builder) CFlags(p *load.Package, filtered bool) (cppflags, cflags, cxxflags, fflags, ldflags []string, err error) {
+ 	defaults := "-g -O2"
+ 
+ 	if cppflags, err = buildFlags("CPPFLAGS", "", p.CgoCPPFLAGS, checkCompilerFlags); err != nil {
+@@ -2686,6 +2708,14 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l
+ 		return
+ 	}
+ 
++	if filtered {
++		cppflags = filterCompilerFlags(cppflags)
++		cflags = filterCompilerFlags(cflags)
++		cxxflags = filterCompilerFlags(cxxflags)
++		fflags = filterCompilerFlags(fflags)
++		ldflags = filterCompilerFlags(ldflags)
++	}
++
+ 	return
+ }
+ 
+@@ -2700,7 +2730,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
+ 
+ func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, gxxfiles, mfiles, ffiles []string) (outGo, outObj []string, err error) {
+ 	p := a.Package
+-	cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p)
++	cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p, false)
+ 	if err != nil {
+ 		return nil, nil, err
+ 	}
+@@ -3151,7 +3181,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize string, err error) {
+ 
+ // Run SWIG on one SWIG input file.
+ func (b *Builder) swigOne(a *Action, p *load.Package, file, objdir string, pcCFLAGS []string, cxx bool, intgosize string) (outGo, outC string, err error) {
+-	cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p)
++	cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p, false)
+ 	if err != nil {
+ 		return "", "", err
+ 	}
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/go/go-1.17/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch b/poky/meta/recipes-devtools/go/go-1.17/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch
new file mode 100644
index 0000000..2a86bdc
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.17/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch
@@ -0,0 +1,52 @@
+From 8512964c0bfdfc3c9c3805743ea7de551a1d476a Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:15:37 +0430
+Subject: [PATCH] cmd/go: Allow GOTOOLDIR to be overridden in the environment
+
+to allow for split host/target build roots
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+
+---
+ src/cmd/dist/build.go          | 4 +++-
+ src/cmd/go/internal/cfg/cfg.go | 6 +++++-
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
+index bec1769..d82f612 100644
+--- a/src/cmd/dist/build.go
++++ b/src/cmd/dist/build.go
+@@ -248,7 +248,9 @@ func xinit() {
+ 	}
+ 	xatexit(rmworkdir)
+ 
+-	tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
++	if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
++		tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
++	}
+ }
+ 
+ // compilerEnv returns a map from "goos/goarch" to the
+diff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go
+index 57a3c1f..825d8c7 100644
+--- a/src/cmd/go/internal/cfg/cfg.go
++++ b/src/cmd/go/internal/cfg/cfg.go
+@@ -67,7 +67,11 @@ func defaultContext() build.Context {
+ 		// variables. This matches the initialization of ToolDir in
+ 		// go/build, except for using ctxt.GOROOT rather than
+ 		// runtime.GOROOT.
+-		build.ToolDir = filepath.Join(ctxt.GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
++		if s := os.Getenv("GOTOOLDIR"); s != "" {
++			build.ToolDir = filepath.Clean(s)
++		} else {
++			build.ToolDir = filepath.Join(ctxt.GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
++		}
+ 	}
+ 
+ 	ctxt.GOPATH = envOr("GOPATH", ctxt.GOPATH)
diff --git a/poky/meta/recipes-devtools/go/go-1.16/0004-ld-add-soname-to-shareable-objects.patch b/poky/meta/recipes-devtools/go/go-1.17/0004-ld-add-soname-to-shareable-objects.patch
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-1.16/0004-ld-add-soname-to-shareable-objects.patch
rename to poky/meta/recipes-devtools/go/go-1.17/0004-ld-add-soname-to-shareable-objects.patch
diff --git a/poky/meta/recipes-devtools/go/go-1.17/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch b/poky/meta/recipes-devtools/go/go-1.17/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch
new file mode 100644
index 0000000..2845d21
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.17/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch
@@ -0,0 +1,41 @@
+From 153e2dda6103fd9dd871be4bb495a8da5328301e Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:17:16 +0430
+Subject: [PATCH] make.bash: override CC when building dist and go_bootstrap
+
+for handling OE cross-canadian builds.
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+
+---
+ src/make.bash | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/make.bash b/src/make.bash
+index 7986125..dd67029 100755
+--- a/src/make.bash
++++ b/src/make.bash
+@@ -181,7 +181,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then
+ 	exit 1
+ fi
+ rm -f cmd/dist/dist
+-GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
++CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
+ 
+ # -e doesn't propagate out of eval, so check success by hand.
+ eval $(./cmd/dist/dist env -p || echo FAIL=true)
+@@ -206,7 +206,7 @@ fi
+ # Run dist bootstrap to complete make.bash.
+ # Bootstrap installs a proper cmd/dist, built with the new toolchain.
+ # Throw ours, built with Go 1.4, away after bootstrap.
+-./cmd/dist/dist bootstrap -a $vflag $GO_DISTFLAGS "$@"
++CC="${BUILD_CC:-${CC}}" ./cmd/dist/dist bootstrap -a $vflag $GO_DISTFLAGS "$@"
+ rm -f ./cmd/dist/dist
+ 
+ # DO NOT ADD ANY NEW CODE HERE.
diff --git a/poky/meta/recipes-devtools/go/go-1.17/0006-cmd-dist-separate-host-and-target-builds.patch b/poky/meta/recipes-devtools/go/go-1.17/0006-cmd-dist-separate-host-and-target-builds.patch
new file mode 100644
index 0000000..68e8efc
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.17/0006-cmd-dist-separate-host-and-target-builds.patch
@@ -0,0 +1,283 @@
+From 7bc891e00be4263311d75aa2b2ee6a3b7b75355f Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:18:12 +0430
+Subject: [PATCH] cmd/dist: separate host and target builds
+
+Upstream-Status: Inappropriate [OE specific]
+
+Change the dist tool to allow for OE-style cross-
+and cross-canadian builds:
+
+ - command flags --host-only and --target only are added;
+   if one is present, the other changes mentioned below
+   take effect, and arguments may also be specified on
+   the command line to enumerate the package(s) to be
+   built.
+
+ - for OE cross builds, go_bootstrap is always built for
+   the current build host, and is moved, along with the supporting
+   toolchain (asm, compile, etc.) to a separate 'native_native'
+   directory under GOROOT/pkg/tool.
+
+ - go_bootstrap is not automatically removed after the build,
+   so it can be reused later (e.g., building both static and
+   shared runtime).
+
+Note that for --host-only builds, it would be nice to specify
+just the "cmd" package to build only the go commands/tools,
+the staleness checks in the dist tool will fail if the "std"
+library has not also been built.  So host-only builds have to
+build everything anyway.
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+
+---
+ src/cmd/dist/build.go | 156 ++++++++++++++++++++++++++++++------------
+ 1 file changed, 113 insertions(+), 43 deletions(-)
+
+diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
+index d82f612..5c8459c 100644
+--- a/src/cmd/dist/build.go
++++ b/src/cmd/dist/build.go
+@@ -43,6 +43,7 @@ var (
+ 	goexperiment     string
+ 	workdir          string
+ 	tooldir          string
++	build_tooldir    string
+ 	oldgoos          string
+ 	oldgoarch        string
+ 	exe              string
+@@ -55,6 +56,7 @@ var (
+ 
+ 	rebuildall   bool
+ 	defaultclang bool
++	crossBuild   bool
+ 
+ 	vflag int // verbosity
+ )
+@@ -251,6 +253,8 @@ func xinit() {
+ 	if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
+ 		tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
+ 	}
++
++	build_tooldir = pathf("%s/pkg/tool/native_native", goroot)
+ }
+ 
+ // compilerEnv returns a map from "goos/goarch" to the
+@@ -496,8 +500,10 @@ func setup() {
+ 	p := pathf("%s/pkg/%s_%s", goroot, gohostos, gohostarch)
+ 	if rebuildall {
+ 		xremoveall(p)
++		xremoveall(build_tooldir)
+ 	}
+ 	xmkdirall(p)
++	xmkdirall(build_tooldir)
+ 
+ 	if goos != gohostos || goarch != gohostarch {
+ 		p := pathf("%s/pkg/%s_%s", goroot, goos, goarch)
+@@ -1267,17 +1273,35 @@ func cmdbootstrap() {
+ 
+ 	var noBanner, noClean bool
+ 	var debug bool
++	var hostOnly bool
++	var targetOnly bool
++	var toBuild = []string{"std", "cmd"}
++
+ 	flag.BoolVar(&rebuildall, "a", rebuildall, "rebuild all")
+ 	flag.BoolVar(&debug, "d", debug, "enable debugging of bootstrap process")
+ 	flag.BoolVar(&noBanner, "no-banner", noBanner, "do not print banner")
+ 	flag.BoolVar(&noClean, "no-clean", noClean, "print deprecation warning")
++	flag.BoolVar(&hostOnly, "host-only", hostOnly, "build only host binaries, not target")
++	flag.BoolVar(&targetOnly, "target-only", targetOnly, "build only target binaries, not host")
+ 
+-	xflagparse(0)
++	xflagparse(-1)
+ 
+ 	if noClean {
+ 		xprintf("warning: --no-clean is deprecated and has no effect; use 'go install std cmd' instead\n")
+ 	}
+ 
++	if hostOnly && targetOnly {
++		fatalf("specify only one of --host-only or --target-only\n")
++	}
++	crossBuild = hostOnly || targetOnly
++	if flag.NArg() > 0 {
++		if crossBuild {
++			toBuild = flag.Args()
++		} else {
++			fatalf("package names not permitted without --host-only or --target-only\n")
++		}
++	}
++
+ 	// Set GOPATH to an internal directory. We shouldn't actually
+ 	// need to store files here, since the toolchain won't
+ 	// depend on modules outside of vendor directories, but if
+@@ -1345,8 +1369,13 @@ func cmdbootstrap() {
+ 		xprintf("\n")
+ 	}
+ 
+-	gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
+-	goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
++	// For split host/target cross/cross-canadian builds, we don't
++	// want to be setting these flags until after we have compiled
++	// the toolchain that runs on the build host.
++	if !crossBuild {
++		gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
++		goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
++	}
+ 	goBootstrap := pathf("%s/go_bootstrap", tooldir)
+ 	cmdGo := pathf("%s/go", gobin)
+ 	if debug {
+@@ -1375,7 +1404,11 @@ func cmdbootstrap() {
+ 		xprintf("\n")
+ 	}
+ 	xprintf("Building Go toolchain2 using go_bootstrap and Go toolchain1.\n")
+-	os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
++	if crossBuild {
++		os.Setenv("CC", defaultcc[""])
++	} else {
++		os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
++	}
+ 	// Now that cmd/go is in charge of the build process, enable GOEXPERIMENT.
+ 	os.Setenv("GOEXPERIMENT", goexperiment)
+ 	goInstall(goBootstrap, append([]string{"-i"}, toolchain...)...)
+@@ -1414,50 +1447,84 @@ func cmdbootstrap() {
+ 	}
+ 	checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
+ 
+-	if goos == oldgoos && goarch == oldgoarch {
+-		// Common case - not setting up for cross-compilation.
+-		timelog("build", "toolchain")
+-		if vflag > 0 {
+-			xprintf("\n")
++	if crossBuild {
++		gogcflags = os.Getenv("GO_GCFLAGS")
++		goldflags = os.Getenv("GO_LDFLAGS")
++		tool_files, _ := filepath.Glob(pathf("%s/*", tooldir))
++		for _, f := range tool_files {
++			copyfile(pathf("%s/%s", build_tooldir, filepath.Base(f)), f, writeExec)
++			xremove(f)
++		}
++		os.Setenv("GOTOOLDIR", build_tooldir)
++		goBootstrap = pathf("%s/go_bootstrap", build_tooldir)
++		if hostOnly {
++			timelog("build", "host toolchain")
++			if vflag > 0 {
++				xprintf("\n")
++			}
++			xprintf("Building %s for host, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch)
++			goInstall(goBootstrap, toBuild...)
++			checkNotStale(goBootstrap, toBuild...)
++			// Skip cmdGo staleness checks here, since we can't necessarily run the cmdGo binary
++
++			timelog("build", "target toolchain")
++			if vflag > 0 {
++				xprintf("\n")
++			}
++		} else if targetOnly {
++			goos = oldgoos
++			goarch = oldgoarch
++			os.Setenv("GOOS", goos)
++			os.Setenv("GOARCH", goarch)
++			os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
++			xprintf("Building %s for target, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch)
++			goInstall(goBootstrap, toBuild...)
++			checkNotStale(goBootstrap, toBuild...)
++			// Skip cmdGo staleness checks here, since we can't run the target's cmdGo binary
+ 		}
+-		xprintf("Building packages and commands for %s/%s.\n", goos, goarch)
+ 	} else {
+-		// GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
+-		// Finish GOHOSTOS/GOHOSTARCH installation and then
+-		// run GOOS/GOARCH installation.
+-		timelog("build", "host toolchain")
+-		if vflag > 0 {
+-			xprintf("\n")
+-		}
+-		xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
++
++		if goos == oldgoos && goarch == oldgoarch {
++			// Common case - not setting up for cross-compilation.
++			timelog("build", "toolchain")
++			if vflag > 0 {
++				xprintf("\n")
++			}
++			xprintf("Building packages and commands for %s/%s.\n", goos, goarch)
++		} else {
++			// GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
++			// Finish GOHOSTOS/GOHOSTARCH installation and then
++			// run GOOS/GOARCH installation.
++			timelog("build", "host toolchain")
++			if vflag > 0 {
++				xprintf("\n")
++			}
++			xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
++			goInstall(goBootstrap, "std", "cmd")
++			checkNotStale(goBootstrap, "std", "cmd")
++			checkNotStale(cmdGo, "std", "cmd")
++
++			timelog("build", "target toolchain")
++			if vflag > 0 {
++				xprintf("\n")
++			}
++			goos = oldgoos
++			goarch = oldgoarch
++			os.Setenv("GOOS", goos)
++			os.Setenv("GOARCH", goarch)
++			os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
++			xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch)
++		}
+ 		goInstall(goBootstrap, "std", "cmd")
+ 		checkNotStale(goBootstrap, "std", "cmd")
+ 		checkNotStale(cmdGo, "std", "cmd")
+ 
+-		timelog("build", "target toolchain")
+-		if vflag > 0 {
+-			xprintf("\n")
++		if debug {
++			run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
++			run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch))
++			checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
++			copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
+ 		}
+-		goos = oldgoos
+-		goarch = oldgoarch
+-		os.Setenv("GOOS", goos)
+-		os.Setenv("GOARCH", goarch)
+-		os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
+-		xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch)
+-	}
+-	targets := []string{"std", "cmd"}
+-	if goos == "js" && goarch == "wasm" {
+-		// Skip the cmd tools for js/wasm. They're not usable.
+-		targets = targets[:1]
+-	}
+-	goInstall(goBootstrap, targets...)
+-	checkNotStale(goBootstrap, targets...)
+-	checkNotStale(cmdGo, targets...)
+-	if debug {
+-		run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
+-		run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch))
+-		checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
+-		copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
+ 	}
+ 
+ 	// Check that there are no new files in $GOROOT/bin other than
+@@ -1474,8 +1541,11 @@ func cmdbootstrap() {
+ 		}
+ 	}
+ 
+-	// Remove go_bootstrap now that we're done.
+-	xremove(pathf("%s/go_bootstrap", tooldir))
++	// Except that for split host/target cross-builds, we need to
++	// keep it.
++	if !crossBuild {
++		xremove(pathf("%s/go_bootstrap", tooldir))
++	}
+ 
+ 	if goos == "android" {
+ 		// Make sure the exec wrapper will sync a fresh $GOROOT to the device.
diff --git a/poky/meta/recipes-devtools/go/go-1.16/0007-cmd-go-make-GOROOT-precious-by-default.patch b/poky/meta/recipes-devtools/go/go-1.17/0007-cmd-go-make-GOROOT-precious-by-default.patch
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-1.16/0007-cmd-go-make-GOROOT-precious-by-default.patch
rename to poky/meta/recipes-devtools/go/go-1.17/0007-cmd-go-make-GOROOT-precious-by-default.patch
diff --git a/poky/meta/recipes-devtools/go/go-1.16/0008-use-GOBUILDMODE-to-set-buildmode.patch b/poky/meta/recipes-devtools/go/go-1.17/0008-use-GOBUILDMODE-to-set-buildmode.patch
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-1.16/0008-use-GOBUILDMODE-to-set-buildmode.patch
rename to poky/meta/recipes-devtools/go/go-1.17/0008-use-GOBUILDMODE-to-set-buildmode.patch
diff --git a/poky/meta/recipes-devtools/go/go-1.17/0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch b/poky/meta/recipes-devtools/go/go-1.17/0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch
new file mode 100644
index 0000000..f857b72
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.17/0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch
@@ -0,0 +1,94 @@
+From 66a45dae3af140662e17ef85c2e6fe40270a2553 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 22 Feb 2021 17:54:01 -0800
+Subject: [PATCH] Revert "cmd/go: make sure CC and CXX are absolute"
+
+OE uses CC/CXX values which consists of cmpiler and options together,
+secondly, the environment is canned so this check add little value to OE
+based builds
+
+Fixes go-runtime build issues
+
+go install: CXX environment variable is relative; must be absolute path: powerpc64le-yoe-linux-musl-g++ -mlittle-endian -mhard-float -m64 -mabi=elfv2 -mcpu=power9 -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/mnt/b/yoe/master/build/tmp/work/ppc64p9le-yoe-linux-musl/go/1.16-r0/recipe-sysroot
+
+This reverts commit aa161e799df7e1eba99d2be10271e76b6f758142.
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/cmd/go/internal/envcmd/env.go        |  5 -----
+ src/cmd/go/internal/work/init.go         |  6 ------
+ src/cmd/go/testdata/script/env_write.txt | 24 ------------------------
+ 3 files changed, 35 deletions(-)
+
+diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go
+index ff6f0d8..43b94e7 100644
+--- a/src/cmd/go/internal/envcmd/env.go
++++ b/src/cmd/go/internal/envcmd/env.go
+@@ -457,11 +457,6 @@ func checkEnvWrite(key, val string) error {
+ 		if !filepath.IsAbs(val) && val != "" {
+ 			return fmt.Errorf("GOPATH entry is relative; must be absolute path: %q", val)
+ 		}
+-	// Make sure CC and CXX are absolute paths
+-	case "CC", "CXX", "GOMODCACHE":
+-		if !filepath.IsAbs(val) && val != "" && val != filepath.Base(val) {
+-			return fmt.Errorf("%s entry is relative; must be absolute path: %q", key, val)
+-		}
+ 	}
+ 
+ 	if !utf8.ValidString(val) {
+diff --git a/src/cmd/go/internal/work/init.go b/src/cmd/go/internal/work/init.go
+index 37a3e2d..316b0cf 100644
+--- a/src/cmd/go/internal/work/init.go
++++ b/src/cmd/go/internal/work/init.go
+@@ -39,12 +39,6 @@ func BuildInit() {
+ 		cfg.BuildPkgdir = p
+ 	}
+ 
+-	// Make sure CC and CXX are absolute paths
+-	for _, key := range []string{"CC", "CXX"} {
+-		if path := cfg.Getenv(key); !filepath.IsAbs(path) && path != "" && path != filepath.Base(path) {
+-			base.Fatalf("go %s: %s environment variable is relative; must be absolute path: %s\n", flag.Args()[0], key, path)
+-		}
+-	}
+ }
+ 
+ func instrumentInit() {
+diff --git a/src/cmd/go/testdata/script/env_write.txt b/src/cmd/go/testdata/script/env_write.txt
+index b5e9739..566c876 100644
+--- a/src/cmd/go/testdata/script/env_write.txt
++++ b/src/cmd/go/testdata/script/env_write.txt
+@@ -129,30 +129,6 @@ go env -w GOTMPDIR=
+ go env GOTMPDIR
+ stdout ^$
+ 
+-# go env -w rejects relative CC values
+-[!windows] go env -w CC=/usr/bin/clang
+-go env -w CC=clang
+-[!windows] ! go env -w CC=./clang
+-[!windows] ! go env -w CC=bin/clang
+-[!windows] stderr 'go env -w: CC entry is relative; must be absolute path'
+-
+-[windows] go env -w CC=$WORK\bin\clang
+-[windows] ! go env -w CC=.\clang
+-[windows] ! go env -w CC=bin\clang
+-[windows] stderr 'go env -w: CC entry is relative; must be absolute path'
+-
+-# go env -w rejects relative CXX values
+-[!windows] go env -w CC=/usr/bin/cpp
+-go env -w CXX=cpp
+-[!windows] ! go env -w CXX=./cpp
+-[!windows] ! go env -w CXX=bin/cpp
+-[!windows] stderr 'go env -w: CXX entry is relative; must be absolute path'
+-
+-[windows] go env -w CXX=$WORK\bin\cpp
+-[windows] ! go env -w CXX=.\cpp
+-[windows] ! go env -w CXX=bin\cpp
+-[windows] stderr 'go env -w: CXX entry is relative; must be absolute path'
+-
+ # go env -w/-u checks validity of GOOS/ARCH combinations
+ env GOOS=
+ env GOARCH=
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.16.8.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.16.8.bb
deleted file mode 100644
index 9262220..0000000
--- a/poky/meta/recipes-devtools/go/go-binary-native_1.16.8.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-# This recipe is for bootstrapping our go-cross from a prebuilt binary of Go from golang.org.
-
-SUMMARY = "Go programming language compiler (upstream binary for bootstrap)"
-HOMEPAGE = " http://golang.org/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
-
-PROVIDES = "go-native"
-
-SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
-SRC_URI[go_linux_amd64.sha256sum] = "f32501aeb8b7b723bc7215f6c373abb6981bbc7e1c7b44e9f07317e1a300dce2"
-SRC_URI[go_linux_arm64.sha256sum] = "430dbe185417204f6788913197ab3b189b6deae9c9b524f262858e53dab239c2"
-
-UPSTREAM_CHECK_URI = "https://golang.org/dl/"
-UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
-
-S = "${WORKDIR}/go"
-
-inherit goarch native
-
-do_compile() {
-    :
-}
-
-make_wrapper() {
-	rm -f ${D}${bindir}/$1
-	cat <<END >${D}${bindir}/$1
-#!/bin/bash
-here=\`dirname \$0\`
-export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}"
-\$here/../lib/go/bin/$1 "\$@"
-END
-	chmod +x ${D}${bindir}/$1
-}
-
-do_install() {
-    find ${S} -depth -type d -name testdata -exec rm -rf {} +
-
-	install -d ${D}${bindir} ${D}${libdir}/go
-	cp --preserve=mode,timestamps -R ${S}/ ${D}${libdir}/
-
-	for f in ${S}/bin/*
-	do
-	  	make_wrapper `basename $f`
-	done
-}
diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.17.6.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.17.6.bb
new file mode 100644
index 0000000..674f917
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-binary-native_1.17.6.bb
@@ -0,0 +1,46 @@
+# This recipe is for bootstrapping our go-cross from a prebuilt binary of Go from golang.org.
+
+SUMMARY = "Go programming language compiler (upstream binary for bootstrap)"
+HOMEPAGE = " http://golang.org/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
+
+PROVIDES = "go-native"
+
+SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
+SRC_URI[go_linux_amd64.sha256sum] = "231654bbf2dab3d86c1619ce799e77b03d96f9b50770297c8f4dff8836fc8ca2"
+SRC_URI[go_linux_arm64.sha256sum] = "82c1a033cce9bc1b47073fd6285233133040f0378439f3c4659fe77cc534622a"
+
+UPSTREAM_CHECK_URI = "https://golang.org/dl/"
+UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
+
+S = "${WORKDIR}/go"
+
+inherit goarch native
+
+do_compile() {
+    :
+}
+
+make_wrapper() {
+	rm -f ${D}${bindir}/$1
+	cat <<END >${D}${bindir}/$1
+#!/bin/bash
+here=\`dirname \$0\`
+export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}"
+\$here/../lib/go/bin/$1 "\$@"
+END
+	chmod +x ${D}${bindir}/$1
+}
+
+do_install() {
+    find ${S} -depth -type d -name testdata -exec rm -rf {} +
+
+	install -d ${D}${bindir} ${D}${libdir}/go
+	cp --preserve=mode,timestamps -R ${S}/ ${D}${libdir}/
+
+	for f in ${S}/bin/*
+	do
+	  	make_wrapper `basename $f`
+	done
+}
diff --git a/poky/meta/recipes-devtools/go/go-common.inc b/poky/meta/recipes-devtools/go/go-common.inc
index dfccebd..83f8db7 100644
--- a/poky/meta/recipes-devtools/go/go-common.inc
+++ b/poky/meta/recipes-devtools/go/go-common.inc
@@ -23,7 +23,7 @@
 SSTATE_SCAN_CMD = "true"
 
 export GOROOT_OVERRIDE = "1"
-export GOTMPDIR ?= "${WORKDIR}/go-tmp"
+export GOTMPDIR ?= "${WORKDIR}/build-tmp"
 GOTMPDIR[vardepvalue] = ""
 export CGO_ENABLED = "1"
 
@@ -37,6 +37,8 @@
 export GOMIPS ?= "${TARGET_GOMIPS}"
 export GOROOT_FINAL ?= "${libdir}/go"
 
+export GODEBUG = "gocachehash=1"
+
 do_compile:prepend() {
 	BUILD_CC=${BUILD_CC}
 }
diff --git a/poky/meta/recipes-devtools/go/go-cross-canadian_1.16.8.bb b/poky/meta/recipes-devtools/go/go-cross-canadian_1.17.6.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross-canadian_1.16.8.bb
rename to poky/meta/recipes-devtools/go/go-cross-canadian_1.17.6.bb
diff --git a/poky/meta/recipes-devtools/go/go-cross_1.16.8.bb b/poky/meta/recipes-devtools/go/go-cross_1.17.6.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross_1.16.8.bb
rename to poky/meta/recipes-devtools/go/go-cross_1.17.6.bb
diff --git a/poky/meta/recipes-devtools/go/go-crosssdk_1.16.8.bb b/poky/meta/recipes-devtools/go/go-crosssdk_1.17.6.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-crosssdk_1.16.8.bb
rename to poky/meta/recipes-devtools/go/go-crosssdk_1.17.6.bb
diff --git a/poky/meta/recipes-devtools/go/go-native_1.16.8.bb b/poky/meta/recipes-devtools/go/go-native_1.17.6.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-native_1.16.8.bb
rename to poky/meta/recipes-devtools/go/go-native_1.17.6.bb
diff --git a/poky/meta/recipes-devtools/go/go-runtime.inc b/poky/meta/recipes-devtools/go/go-runtime.inc
index 617e6b5..ccb86d4 100644
--- a/poky/meta/recipes-devtools/go/go-runtime.inc
+++ b/poky/meta/recipes-devtools/go/go-runtime.inc
@@ -2,10 +2,16 @@
 DEPENDS:class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk"
 PROVIDES = "virtual/${TARGET_PREFIX}go-runtime"
 
+DEBUG_PREFIX_MAP = "\
+                     -fdebug-prefix-map=${STAGING_DIR_HOST}= \
+                     -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
+"
+
 export CGO_CFLAGS = "${CFLAGS}"
 export CGO_CPPFLAGS = "${CPPFLAGS}"
 export CGO_CXXFLAGS = "${CXXFLAGS}"
-export CGO_LDFLAGS = "${LDFLAGS}"
+# Filter out -fdebug-prefix-map options as they clash with the GO's build system
+export CGO_LDFLAGS = "${@ ' '.join(filter(lambda f: not f.startswith('-fdebug-prefix-map'), d.getVar('LDFLAGS').split())) }"
 export GOCACHE = "${B}/.cache"
 
 GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${LDFLAGS}"
diff --git a/poky/meta/recipes-devtools/go/go-runtime_1.16.8.bb b/poky/meta/recipes-devtools/go/go-runtime_1.17.6.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-runtime_1.16.8.bb
rename to poky/meta/recipes-devtools/go/go-runtime_1.17.6.bb
diff --git a/poky/meta/recipes-devtools/go/go-target.inc b/poky/meta/recipes-devtools/go/go-target.inc
index 47b4411..b0d487a 100644
--- a/poky/meta/recipes-devtools/go/go-target.inc
+++ b/poky/meta/recipes-devtools/go/go-target.inc
@@ -1,6 +1,17 @@
 DEPENDS = "virtual/${TUNE_PKGARCH}-go go-native"
 DEPENDS:class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk go-native"
 
+DEBUG_PREFIX_MAP = "\
+                     -fdebug-prefix-map=${STAGING_DIR_HOST}= \
+                     -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
+"
+
+export CGO_CFLAGS = "${CFLAGS}"
+export CGO_CPPFLAGS = "${CPPFLAGS}"
+export CGO_CXXFLAGS = "${CXXFLAGS}"
+# Filter out -fdebug-prefix-map options as they clash with the GO's build system
+export CGO_LDFLAGS = "${@ ' '.join(filter(lambda f: not f.startswith('-fdebug-prefix-map'), d.getVar('LDFLAGS').split())) }"
+
 export GOCACHE = "${B}/.cache"
 GO_LDFLAGS = ""
 GO_LDFLAGS:class-nativesdk = "-linkmode external"
diff --git a/poky/meta/recipes-devtools/go/go_1.16.8.bb b/poky/meta/recipes-devtools/go/go_1.17.6.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go_1.16.8.bb
rename to poky/meta/recipes-devtools/go/go_1.17.6.bb
diff --git a/poky/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch b/poky/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch
deleted file mode 100644
index 76fce19..0000000
--- a/poky/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 72065bb2b5881dc224299f302379391aebdfca3d Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 21 Nov 2018 13:09:05 +0100
-Subject: [PATCH 1/2] Add crc32.c to sources list
-
-Otherwise, there is a missing symbol runtime error under musl C library.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- libcomps/src/python/src/CMakeLists.txt | 4 ++--
- libcomps/src/python/src/crc32.c        | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/libcomps/src/python/src/CMakeLists.txt b/libcomps/src/python/src/CMakeLists.txt
-index 89b9c91..08cd6b5 100644
---- a/libcomps/src/python/src/CMakeLists.txt
-+++ b/libcomps/src/python/src/CMakeLists.txt
-@@ -9,13 +9,13 @@ set (pycomps_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR})
- set (pycomps_SRC pycomps.c pycomps_sequence.c
-      pycomps_envs.c pycomps_categories.c pycomps_groups.c
-      pycomps_gids.c pycomps_utils.c pycomps_dict.c pycomps_mdict.c
--     pycomps_hash.c pycomps_exc.c pycomps_lbw.c)
-+     pycomps_hash.c pycomps_exc.c pycomps_lbw.c crc32.c)
- 
- set (pycomps_HEADERS pycomps_macros.h pycomps_sequence.h
-      pycomps_envs.h pycomps_categories.h pycomps_groups.h
-      pycomps_gids.h pycomps_utils.h pycomps_dict.h pycomps_mdict.h
-      pycomps_hash.h pycomps_exc.h pycomps_lbw.h
--     pycomps_types.h)
-+     pycomps_types.h crc32.h)
- 
- #set(TEST_FILES ../__init__.py __test.py test_merge_comps.py test_libcomps.py
- #               utest.py)
-diff --git a/libcomps/src/python/src/crc32.c b/libcomps/src/python/src/crc32.c
-index d8f5e34..f266067 100644
---- a/libcomps/src/python/src/crc32.c
-+++ b/libcomps/src/python/src/crc32.c
-@@ -41,7 +41,7 @@
-  */
- 
- #include <sys/param.h>
--#include <sys/systm.h>
-+#include <stdint.h>
- 
- static uint32_t crc32_tab[] = {
- 	0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
--- 
-2.25.1
-
diff --git a/poky/meta/recipes-devtools/libcomps/libcomps_0.1.18.bb b/poky/meta/recipes-devtools/libcomps/libcomps_0.1.18.bb
index 8fe43ed..6603275 100644
--- a/poky/meta/recipes-devtools/libcomps/libcomps_0.1.18.bb
+++ b/poky/meta/recipes-devtools/libcomps/libcomps_0.1.18.bb
@@ -4,8 +4,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
-SRC_URI = "git://github.com/rpm-software-management/libcomps.git \
-           file://0001-Add-crc32.c-to-sources-list.patch \
+SRC_URI = "git://github.com/rpm-software-management/libcomps.git;branch=master;protocol=https \
            file://0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
            "
 
@@ -13,7 +12,7 @@
 
 S = "${WORKDIR}/git"
 
-inherit cmake distutils3-base
+inherit cmake setuptools3-base
 
 DEPENDS += "libxml2 expat libcheck"
 
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch
index 384add5..607995a 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch
+++ b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch
@@ -5,7 +5,7 @@
 
 This makes a dependency on cppunit optional.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/1382]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 
 ---
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch
index 6dd7c71..2d8213c 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch
+++ b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch
@@ -3,7 +3,7 @@
 Date: Tue, 19 Nov 2019 13:46:09 +0100
 Subject: [PATCH] Look fo sphinx only if documentation is actually enabled
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/1383]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  docs/hawkey/CMakeLists.txt | 20 +++++++++++---------
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf_0.65.0.bb b/poky/meta/recipes-devtools/libdnf/libdnf_0.65.0.bb
index 78f2002..81da04c 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf_0.65.0.bb
+++ b/poky/meta/recipes-devtools/libdnf/libdnf_0.65.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
-SRC_URI = "git://github.com/rpm-software-management/libdnf;branch=dnf-4-master \
+SRC_URI = "git://github.com/rpm-software-management/libdnf;branch=dnf-4-master;protocol=https \
            file://0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch \
            file://0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch \
            file://0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch \
@@ -22,7 +22,7 @@
 
 DEPENDS = "glib-2.0 libsolv libcheck librepo rpm gtk-doc libmodulemd json-c swig-native"
 
-inherit gtk-doc gobject-introspection cmake pkgconfig distutils3-base
+inherit gtk-doc gobject-introspection cmake pkgconfig setuptools3-base
 
 EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DWITH_MAN=OFF -DPYTHON_DESIRED=3 \
                   ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DWITH_GIR=ON', '-DWITH_GIR=OFF', d)} \
diff --git a/poky/meta/recipes-devtools/librepo/librepo_1.14.2.bb b/poky/meta/recipes-devtools/librepo/librepo_1.14.2.bb
index e7f8c08..6cd8090 100644
--- a/poky/meta/recipes-devtools/librepo/librepo_1.14.2.bb
+++ b/poky/meta/recipes-devtools/librepo/librepo_1.14.2.bb
@@ -5,7 +5,7 @@
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
-SRC_URI = "git://github.com/rpm-software-management/librepo.git \
+SRC_URI = "git://github.com/rpm-software-management/librepo.git;branch=master;protocol=https \
            file://0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch \
            file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \
            "
@@ -16,7 +16,7 @@
 
 DEPENDS = "curl glib-2.0 openssl attr gpgme libxml2"
 
-inherit cmake distutils3-base pkgconfig
+inherit cmake setuptools3-base pkgconfig
 
 EXTRA_OECMAKE = " \
     -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} \
diff --git a/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc b/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc
index 2df46aa7..a636926 100644
--- a/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc
+++ b/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc
@@ -24,6 +24,8 @@
            file://0010-Makefile.am-make-sure-autoheader-run-before-automake.patch \
            file://0011-ltmain.in-Handle-prefix-map-compiler-options-correct.patch \
            file://0012-libtool.m4-For-reproducibility-stop-encoding-hostnam.patch \
+           file://libool.m4-add-ARFLAGS-variable.patch \
+           file://ARFLAGS-use-cr-instead-of-cru-by-default.patch \
           "
 
 SRC_URI[md5sum] = "addf44b646ddb4e3919805aa88fa7c5e"
diff --git a/poky/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb b/poky/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb
index 4a43867..93f1dd7 100644
--- a/poky/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb
+++ b/poky/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb
@@ -1,7 +1,6 @@
 require libtool-${PV}.inc
 
 PACKAGES = ""
-SRC_URI += "file://prefix.patch"
 SRC_URI += "file://fixinstall.patch"
 
 datadir = "${STAGING_DIR_TARGET}${target_datadir}"
@@ -22,15 +21,16 @@
 # Find references to LTCC="ccache xxx-gcc" and CC="ccache xxx-gcc"
 #
 do_install () {
+	ln -s false ${D}
 	install -d ${D}${bindir_crossscripts}/
-	install -m 0755 ${HOST_SYS}-libtool ${D}${bindir_crossscripts}/${HOST_SYS}-libtool
+	install -m 0755 libtool ${D}${bindir_crossscripts}/libtool
 	sed -e 's@^\(predep_objects="\).*@\1"@' \
 	    -e 's@^\(postdep_objects="\).*@\1"@' \
 	    -e 's@^CC="ccache.@CC="@' \
 	    -e 's@^LTCC="ccache.@LTCC="@' \
-	    -i ${D}${bindir_crossscripts}/${HOST_SYS}-libtool
-	sed -i '/^archive_cmds=/s/\-nostdlib//g' ${D}${bindir_crossscripts}/${HOST_SYS}-libtool
-	sed -i '/^archive_expsym_cmds=/s/\-nostdlib//g' ${D}${bindir_crossscripts}/${HOST_SYS}-libtool
+	    -i ${D}${bindir_crossscripts}/libtool
+	sed -i '/^archive_cmds=/s/\-nostdlib//g' ${D}${bindir_crossscripts}/libtool
+	sed -i '/^archive_expsym_cmds=/s/\-nostdlib//g' ${D}${bindir_crossscripts}/libtool
 	GREP='/bin/grep' SED='sed' ${S}/build-aux/inline-source libtoolize > ${D}${bindir_crossscripts}/libtoolize
 	chmod 0755 ${D}${bindir_crossscripts}/libtoolize
 	install -d ${D}${target_datadir}/libtool/build-aux/
diff --git a/poky/meta/recipes-devtools/libtool/libtool-native_2.4.6.bb b/poky/meta/recipes-devtools/libtool/libtool-native_2.4.6.bb
index 3b20ce3..19024f7 100644
--- a/poky/meta/recipes-devtools/libtool/libtool-native_2.4.6.bb
+++ b/poky/meta/recipes-devtools/libtool/libtool-native_2.4.6.bb
@@ -2,8 +2,6 @@
 
 DEPENDS = ""
 
-SRC_URI += "file://prefix.patch"
-
 inherit native
 
 EXTRA_OECONF = " --with-libtool-sysroot=${STAGING_DIR_NATIVE}"
@@ -18,5 +16,5 @@
 do_install () {
 	autotools_do_install
 	install -d ${D}${bindir}/
-	install -m 0755 ${HOST_SYS}-libtool ${D}${bindir}/${HOST_SYS}-libtool
+	install -m 0755 libtool ${D}${bindir}/libtool
 }
diff --git a/poky/meta/recipes-devtools/libtool/libtool/ARFLAGS-use-cr-instead-of-cru-by-default.patch b/poky/meta/recipes-devtools/libtool/libtool/ARFLAGS-use-cr-instead-of-cru-by-default.patch
new file mode 100644
index 0000000..447640c
--- /dev/null
+++ b/poky/meta/recipes-devtools/libtool/libtool/ARFLAGS-use-cr-instead-of-cru-by-default.patch
@@ -0,0 +1,133 @@
+From 418129bc63afc312701e84cb8afa5ca413df1ab5 Mon Sep 17 00:00:00 2001
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Fri, 17 Apr 2015 16:54:58 +0200
+Subject: ARFLAGS: use 'cr' instead of 'cru' by default
+
+In some GNU/Linux distributions people started to compile 'ar'
+binary with --enable-deterministic-archives (binutils project).
+That, however, in combination with our previous long time working
+default AR_FLAGS=cru causes warnings on such installations:
+ar: `u' modifier ignored since `D' is the default (see `U')
+
+The 'u' option (at least with GNU binutils) did small optimization
+during repeated builds because it instructed 'ar' to not
+open/close unchanged *.o files and to rather read their contents
+from old archive file.  However, its removal should not cause a
+big performance hit for usual workflows.
+
+Distributions started using --enable-deterministic-archives
+knowing that it would disable the 'u', just to rather have a bit
+more deterministic builds.
+
+Also, to justify this change a bit more, keeping 'u' in ARFLAGS
+could only result in many per-project changes to override
+Libtool's ARFLAGS default, just to silent such warnings.
+
+Fixes bug#19967.  Reported by Eric Blake.
+
+* m4/libtool.m4 (_LT_PROG_AR): Default AR_FLAGS to 'cr'.
+(_LT_REQUIRED_DARWIN_CHECKS): Use $AR_FLAGS instead 'cru' string.
+* doc/libtool.texi: Do 's/ar cru/ar cr/' in whole documentation.
+* NEWS: Document.
+
+Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/libtool.git/commit/?id=418129bc63afc312701e84cb8afa5ca413df1ab5]
+
+Signed-off-by: Li Wang <li.wang@windriver.com>
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ NEWS             |  4 ++++
+ doc/libtool.texi | 10 +++++-----
+ m4/libtool.m4    |  6 +++---
+ 3 files changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index 71a932d..1518f09 100644
+--- a/NEWS
++++ b/NEWS
+@@ -13,6 +13,10 @@ NEWS - list of user-visible changes between releases of GNU Libtool
+     variable, which obsoletes AR_FLAGS.  This is due to naming conventions
+     among other *FLAGS and to be consistent with Automake's ARFLAGS.
+ 
++** Important incompatible changes:
++
++  - Libtool changed ARFLAGS/AR_FLAGS default from 'cru' to 'cr'.
++
+ ** Bug fixes:
+ 
+   - Fix a race condition in ltdl dryrun test that would cause spurious
+diff --git a/doc/libtool.texi b/doc/libtool.texi
+index 0298627..4c664bb 100644
+--- a/doc/libtool.texi
++++ b/doc/libtool.texi
+@@ -602,7 +602,7 @@ Without libtool, the programmer would invoke the @command{ar} command to
+ create a static library:
+ 
+ @example
+-burger$ @kbd{ar cru libhello.a hello.o foo.o}
++burger$ @kbd{ar cr libhello.a hello.o foo.o}
+ burger$
+ @end example
+ 
+@@ -632,7 +632,7 @@ libtool are the same ones you would use to produce an executable named
+ a23$ @kbd{libtool --mode=link gcc -g -O -o libhello.la foo.o hello.o}
+ *** Warning: Linking the shared library libhello.la against the
+ *** non-libtool objects foo.o hello.o is not portable!
+-ar cru .libs/libhello.a
++ar cr .libs/libhello.a
+ ranlib .libs/libhello.a
+ creating libhello.la
+ (cd .libs && rm -f libhello.la && ln -s ../libhello.la libhello.la)
+@@ -662,7 +662,7 @@ archive, not a shared library (@pxref{Static libraries}).}:
+ @example
+ a23$ @kbd{libtool --mode=link gcc -g -O -o libhello.la foo.lo hello.lo \
+                 -rpath /usr/local/lib -lm}
+-ar cru @value{objdir}/libhello.a foo.o hello.o
++ar cr @value{objdir}/libhello.a foo.o hello.o
+ ranlib @value{objdir}/libhello.a
+ creating libhello.la
+ (cd @value{objdir} && rm -f libhello.la && ln -s ../libhello.la libhello.la)
+@@ -676,7 +676,7 @@ burger$ @kbd{libtool --mode=link gcc -g -O -o libhello.la foo.lo hello.lo \
+                 -rpath /usr/local/lib -lm}
+ rm -fr  @value{objdir}/libhello.a @value{objdir}/libhello.la
+ ld -Bshareable -o @value{objdir}/libhello.so.0.0 @value{objdir}/foo.o @value{objdir}/hello.o -lm
+-ar cru @value{objdir}/libhello.a foo.o hello.o
++ar cr @value{objdir}/libhello.a foo.o hello.o
+ ranlib @value{objdir}/libhello.a
+ creating libhello.la
+ (cd @value{objdir} && rm -f libhello.la && ln -s ../libhello.la libhello.la)
+@@ -6001,7 +6001,7 @@ in cases where it is necessary.
+ @subsection Archivers
+ 
+ On all known systems, building a static library can be accomplished by
+-running @kbd{ar cru lib@var{name}.a @var{obj1}.o @var{obj2}.o @dots{}},
++running @kbd{ar cr lib@var{name}.a @var{obj1}.o @var{obj2}.o @dots{}},
+ where the @file{.a} file is the output library, and each @file{.o} file is an
+ object file.
+ 
+diff --git a/m4/libtool.m4 b/m4/libtool.m4
+index 6514196..add06ee 100644
+--- a/m4/libtool.m4
++++ b/m4/libtool.m4
+@@ -1041,8 +1041,8 @@ int forced_loaded() { return 2;}
+ _LT_EOF
+       echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+       $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+-      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+-      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
++      echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
++      $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+       echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+       $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+       cat > conftest.c << _LT_EOF
+@@ -1505,7 +1505,7 @@ _LT_DECL([], [AR], [1], [The archiver])
+ # ARFLAGS for automake and AR_FLAGS for libtool).  FIXME: Make the AR_FLAGS
+ # variable obsoleted/removed.
+ 
+-test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cru}
++test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
+ lt_ar_flags=$AR_FLAGS
+ _LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
+ 
+-- 
+2.23.0
+
diff --git a/poky/meta/recipes-devtools/libtool/libtool/libool.m4-add-ARFLAGS-variable.patch b/poky/meta/recipes-devtools/libtool/libtool/libool.m4-add-ARFLAGS-variable.patch
new file mode 100644
index 0000000..bb11887
--- /dev/null
+++ b/poky/meta/recipes-devtools/libtool/libtool/libool.m4-add-ARFLAGS-variable.patch
@@ -0,0 +1,77 @@
+From 4335de1dfb7d2ec728427e07a54136b94a2d40f6 Mon Sep 17 00:00:00 2001
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Fri, 17 Apr 2015 15:05:42 +0200
+Subject: libool.m4: add ARFLAGS variable
+
+Libtool has used $AR_FLAGS since 2000-05-29 commit
+8300de4c54e6f04f0d, Automake ARFLAGS since 2003-04-06 commit
+a71b3490639831ca.  Even though ARFLAGS is younger, it sounds like
+better name according GNU Coding Standards.
+
+Related to bug#20082.
+
+* m4/libtool.m4 (_LT_PROG_AR): Copy ARFLAGS value into AR_FLAGS
+variable if AR_FLAGS is not set.  Add new _LT_DECL'ed variable
+'lt_ar_flags' to keep the configure-time value of AR_FLAGS.  The
+new 'lt_ar_flags' is to be used as the default value for AR_FLAGS
+at libtool-runtime.
+* NEWS: Document.
+
+Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/libtool.git/commit/?id=4335de1dfb7d2ec728427e07a54136b94a2d40f6]
+
+Signed-off-by: Li Wang <li.wang@windriver.com>
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ NEWS          |  6 ++++++
+ m4/libtool.m4 | 17 +++++++++++++++--
+ 2 files changed, 21 insertions(+), 2 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index d7ca434..71a932d 100644
+--- a/NEWS
++++ b/NEWS
+@@ -7,6 +7,12 @@ NEWS - list of user-visible changes between releases of GNU Libtool
+   - LT_SYS_LIBRARY_PATH can be set in config.site, or at configure time
+     and persists correctly in the generated libtool script.
+ 
++** New features:
++
++  - Libtool script now supports (configure-time and runtime) ARFLAGS
++    variable, which obsoletes AR_FLAGS.  This is due to naming conventions
++    among other *FLAGS and to be consistent with Automake's ARFLAGS.
++
+ ** Bug fixes:
+ 
+   - Fix a race condition in ltdl dryrun test that would cause spurious
+diff --git a/m4/libtool.m4 b/m4/libtool.m4
+index 63acd09..6514196 100644
+--- a/m4/libtool.m4
++++ b/m4/libtool.m4
+@@ -1497,9 +1497,22 @@ need_locks=$enable_libtool_lock
+ m4_defun([_LT_PROG_AR],
+ [AC_CHECK_TOOLS(AR, [ar], false)
+ : ${AR=ar}
+-: ${AR_FLAGS=cru}
+ _LT_DECL([], [AR], [1], [The archiver])
+-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
++
++# Use ARFLAGS variable as AR's operation code to sync the variable naming with
++# Automake.  If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
++# higher priority because thats what people were doing historically (setting
++# ARFLAGS for automake and AR_FLAGS for libtool).  FIXME: Make the AR_FLAGS
++# variable obsoleted/removed.
++
++test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cru}
++lt_ar_flags=$AR_FLAGS
++_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
++
++# Make AR_FLAGS overridable by 'make ARFLAGS='.  Don't try to run-time override
++# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
++_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}],
++         [Flags to create an archive])
+ 
+ AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+   [lt_cv_ar_at_file=no
+-- 
+2.23.0
+
diff --git a/poky/meta/recipes-devtools/libtool/libtool/prefix.patch b/poky/meta/recipes-devtools/libtool/libtool/prefix.patch
deleted file mode 100644
index a73df2e..0000000
--- a/poky/meta/recipes-devtools/libtool/libtool/prefix.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-Renames "libtool" -> "${TARGET_PREFIX}libtool" which makes sure
-it can't be confused with the host libtool.
-
-Originally by: RP
-
-Updated: Date: 2010/06/28
-Nitin A Kamble <nitin.a.kamble@intel.com>
-
-It also adjusts libtool so that the header at the script is used for 
-script execution and not thevalue of $SHELL. This is because many 
-Makefiles change $SHELL so dash can get used to execute what is 
-otherwise configured as a bash shell script. Since we don't need to 
-execute scipts this way on any system I'm aware of us building upon, 
-the simplest fix is just to remove $SHELL.
-
-Updated: Date: 2011/11/09
-RP
-
-Updated by: Robert Yang <liezhi.yang@windriver.com>
-
-diff --git a/Makefile.am b/Makefile.am
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -31,7 +31,7 @@ SUBDIRS			= .
- DIST_SUBDIRS		= $(SUBDIRS)
- EXTRA_DIST		=
- 
--BUILT_SOURCES		= libtool libtoolize
-+BUILT_SOURCES		= $(host_alias)-libtool libtoolize
- 
- CLEANFILES		=
- MOSTLYCLEANFILES	=
-@@ -67,7 +67,7 @@ build_scripts	= $(srcdir)/$(aux_dir)/announce-gen \
- 
- EXTRA_DIST     += bootstrap bootstrap.conf $(build_scripts) cfg.mk maint.mk \
- 		  GNUmakefile
--CLEANFILES     += libtool libtoolize
-+CLEANFILES     += $(host_alias)-libtool libtoolize
- 
- ## If a file is named several times below, and especially if it
- ## is a distributed file created during Libtool bootstrap, we
-@@ -276,7 +276,7 @@ configure_edit = $(bootstrap_edit) \
- 	-e 's|@srcdir\@|$(srcdir)|g'
- 
- # The libtool distributor and the standalone libtool script.
--bin_SCRIPTS = libtool
-+bin_SCRIPTS = $(host_alias)-libtool
- 
- libtoolize: $(libtoolize_in) $(config_status)
- 	$(AM_V_at)rm -f '$@'
-@@ -287,7 +287,7 @@ libtoolize: $(libtoolize_in) $(config_status)
- # We used to do this with a 'stamp-vcl' file, but non-gmake builds
- # would rerun configure on every invocation, so now we manually
- # check the version numbers from the build rule when necessary.
--libtool: $(ltmain_sh) $(config_status) $(dotversion)
-+$(host_alias)-libtool: $(ltmain_sh) $(config_status) $(dotversion)
- 	@$(rebuild); \
- 	if test -f '$@'; then \
- 	  eval `'$(SED)' -n '/^package_revision=/p' '$@'`; \
-@@ -731,12 +731,12 @@ TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" \
- 
- BUILDCHECK_ENVIRONMENT = _lt_pkgdatadir="$(abs_top_srcdir)" \
- 	LIBTOOLIZE="$(abs_top_builddir)/libtoolize" \
--	LIBTOOL="$(abs_top_builddir)/libtool" \
-+	LIBTOOL="$(abs_top_builddir)/$(host_alias)-libtool" \
- 	tst_aclocaldir="$(abs_top_srcdir)/m4"
- 
- INSTALLCHECK_ENVIRONMENT = \
- 	LIBTOOLIZE="$(bindir)/`echo libtoolize |$(SED) '$(program_transform_name)'`" \
--	LIBTOOL="$(bindir)/`echo libtool |$(SED) '$(program_transform_name)'`" \
-+	LIBTOOL="$(bindir)/`echo $(host_alias)-libtool |$(SED) '$(program_transform_name)'`" \
- 	LTDLINCL="-I$(includedir)" \
- 	LIBLTDL="$(libdir)/libltdl.la" \
- 	tst_aclocaldir="$(aclocaldir)"
-diff --git a/m4/libtool.m4 b/m4/libtool.m4
---- a/m4/libtool.m4
-+++ b/m4/libtool.m4
-@@ -86,7 +86,8 @@ _LT_SET_OPTIONS([$0], [$1])
- LIBTOOL_DEPS=$ltmain
- 
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='$(top_builddir)'
-+LIBTOOL="$LIBTOOL/${host_alias}-libtool"
- AC_SUBST(LIBTOOL)dnl
- 
- _LT_SETUP
-@@ -199,7 +200,7 @@ aix3*)
- esac
- 
- # Global variables:
--ofile=libtool
-+ofile=${host_alias}-libtool
- can_build_shared=yes
- 
- # All known linkers require a '.a' archive for static linking (except MSVC,
diff --git a/poky/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.6.bb b/poky/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.6.bb
index e3ad672..86c55de 100644
--- a/poky/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.6.bb
+++ b/poky/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.6.bb
@@ -2,7 +2,6 @@
 
 FILESEXTRAPATHS =. "${FILE_DIRNAME}/libtool:"
 
-SRC_URI += "file://prefix.patch"
 SRC_URI += "file://fixinstall.patch"
 
 inherit nativesdk
@@ -20,12 +19,12 @@
 do_install () {
 	autotools_do_install
 	install -d ${D}${bindir}/
-	install -m 0755 ${HOST_SYS}-libtool ${D}${bindir}/
+	install -m 0755 libtool ${D}${bindir}/
 }
 
 SYSROOT_PREPROCESS_FUNCS += "libtoolnativesdk_sysroot_preprocess"
 
 libtoolnativesdk_sysroot_preprocess () {
 	install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
-	install -m 755 ${D}${bindir}/${HOST_SYS}-libtool ${SYSROOT_DESTDIR}${bindir_crossscripts}/${HOST_SYS}-libtool
+	install -m 755 ${D}${bindir}/libtool ${SYSROOT_DESTDIR}${bindir_crossscripts}/libtool
 }
diff --git a/poky/meta/recipes-devtools/llvm/llvm_git.bb b/poky/meta/recipes-devtools/llvm/llvm_git.bb
index 4167080..d9efa53 100644
--- a/poky/meta/recipes-devtools/llvm/llvm_git.bb
+++ b/poky/meta/recipes-devtools/llvm/llvm_git.bb
@@ -28,7 +28,7 @@
 
 BRANCH = "release/${MAJOR_VERSION}.x"
 SRCREV = "fed41342a82f5a3a9201819a82bf7a48313e296b"
-SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH} \
+SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH};protocol=https \
            file://0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch;striplevel=2 \
            file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
            file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2 \
diff --git a/poky/meta/recipes-devtools/lua/lua/74d99057a5146755e737c479850f87fd0e3b6868.patch b/poky/meta/recipes-devtools/lua/lua/74d99057a5146755e737c479850f87fd0e3b6868.patch
new file mode 100644
index 0000000..dcdc048
--- /dev/null
+++ b/poky/meta/recipes-devtools/lua/lua/74d99057a5146755e737c479850f87fd0e3b6868.patch
@@ -0,0 +1,43 @@
+From 74d99057a5146755e737c479850f87fd0e3b6868 Mon Sep 17 00:00:00 2001
+From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
+Date: Wed, 3 Nov 2021 15:04:18 -0300
+Subject: [PATCH] Bug: C stack overflow with coroutines
+
+'coroutine.resume' did not increment counter of C calls when
+continuing execution after a protected error (that is,
+while running 'precover').
+---
+ ldo.c             |  6 ++++--
+ testes/cstack.lua | 14 ++++++++++++++
+ 2 files changed, 18 insertions(+), 2 deletions(-)
+
+Upstream-Status: Backport [https://github.com/lua/lua/commit/74d99057a5146755e737c479850f87fd0e3b6868.patch]
+CVE: CVE-2021-43519
+
+diff --git a/src/ldo.c b/src/ldo.c
+index d0edc8b4f..66f890364 100644
+--- a/src/ldo.c
++++ b/src/ldo.c
+@@ -759,11 +759,10 @@ static void resume (lua_State *L, void *ud) {
+   StkId firstArg = L->top - n;  /* first argument */
+   CallInfo *ci = L->ci;
+   if (L->status == LUA_OK)  /* starting a coroutine? */
+-    ccall(L, firstArg - 1, LUA_MULTRET, 1);  /* just call its body */
++    ccall(L, firstArg - 1, LUA_MULTRET, 0);  /* just call its body */
+   else {  /* resuming from previous yield */
+     lua_assert(L->status == LUA_YIELD);
+     L->status = LUA_OK;  /* mark that it is running (again) */
+-    luaE_incCstack(L);  /* control the C stack */
+     if (isLua(ci)) {  /* yielded inside a hook? */
+       L->top = firstArg;  /* discard arguments */
+       luaV_execute(L, ci);  /* just continue running Lua code */
+@@ -814,6 +813,9 @@ LUA_API int lua_resume (lua_State *L, lua_State *from, int nargs,
+   else if (L->status != LUA_YIELD)  /* ended with errors? */
+     return resume_error(L, "cannot resume dead coroutine", nargs);
+   L->nCcalls = (from) ? getCcalls(from) : 0;
++  if (getCcalls(L) >= LUAI_MAXCCALLS)
++    return resume_error(L, "C stack overflow", nargs);
++  L->nCcalls++;
+   luai_userstateresume(L, nargs);
+   api_checknelems(L, (L->status == LUA_OK) ? nargs + 1 : nargs);
+   status = luaD_rawrunprotected(L, resume, &nargs);
diff --git a/poky/meta/recipes-devtools/lua/lua_5.4.3.bb b/poky/meta/recipes-devtools/lua/lua_5.4.3.bb
index 0224744..a204242 100644
--- a/poky/meta/recipes-devtools/lua/lua_5.4.3.bb
+++ b/poky/meta/recipes-devtools/lua/lua_5.4.3.bb
@@ -7,6 +7,7 @@
 SRC_URI = "http://www.lua.org/ftp/lua-${PV}.tar.gz;name=tarballsrc \
            file://lua.pc.in \
            ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'http://www.lua.org/tests/lua-${PV_testsuites}-tests.tar.gz;name=tarballtest file://run-ptest ', '', d)} \
+           file://74d99057a5146755e737c479850f87fd0e3b6868.patch \
            "
 
 # if no test suite matches PV release of Lua exactly, download the suite for the closest Lua release.
diff --git a/poky/meta/recipes-devtools/meson/meson.inc b/poky/meta/recipes-devtools/meson/meson.inc
deleted file mode 100644
index 174ebd9..0000000
--- a/poky/meta/recipes-devtools/meson/meson.inc
+++ /dev/null
@@ -1,37 +0,0 @@
-HOMEPAGE = "http://mesonbuild.com"
-SUMMARY = "A high performance build system"
-DESCRIPTION = "Meson is a build system designed to increase programmer \
-productivity. It does this by providing a fast, simple and easy to use \
-interface for modern software development tools and practices."
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${PV}.tar.gz \
-           file://0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch \
-           file://0001-python-module-do-not-manipulate-the-environment-when.patch \
-           file://disable-rpath-handling.patch \
-           file://0001-Make-CPU-family-warnings-fatal.patch \
-           file://0002-Support-building-allarch-recipes-again.patch \
-           file://0001-is_debianlike-always-return-False.patch \
-           "
-SRC_URI[sha256sum] = "13dee549a7ba758b7e33ce7719f28d1d337a98d10d378a4779ccc996f5a2fc49"
-
-UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases"
-UPSTREAM_CHECK_REGEX = "meson-(?P<pver>\d+(\.\d+)+)\.tar"
-
-inherit setuptools3
-
-RDEPENDS:${PN} = "ninja python3-modules python3-pkg-resources"
-
-FILES:${PN} += "${datadir}/polkit-1"
-
-do_install:append () {
-	# As per the same issue in the python recipe itself:
-	# Unfortunately the following pyc files are non-deterministc due to 'frozenset'
-	# being written without strict ordering, even with PYTHONHASHSEED = 0
-	# Upstream is discussing ways to solve the issue properly, until then let's
-	# just not install the problematic files.
-	# More info: http://benno.id.au/blog/2013/01/15/python-determinism
-	rm ${D}${libdir}/python*/site-packages/mesonbuild/dependencies/__pycache__/mpi.cpython*
-}
diff --git a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
index c5be526..848dccf 100644
--- a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
@@ -11,30 +11,34 @@
  mesonbuild/environment.py | 4 +---
  2 files changed, 2 insertions(+), 4 deletions(-)
 
-diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index 307aac3..66fb7ec 100644
---- a/mesonbuild/envconfig.py
-+++ b/mesonbuild/envconfig.py
-@@ -267,7 +267,7 @@ class MachineInfo(HoldableObject):
+Index: meson-0.60.2/mesonbuild/envconfig.py
+===================================================================
+--- meson-0.60.2.orig/mesonbuild/envconfig.py
++++ meson-0.60.2/mesonbuild/envconfig.py
+@@ -266,8 +266,8 @@ class MachineInfo(HoldableObject):
+                 'but is missing {}.'.format(minimum_literal - set(literal)))
  
          cpu_family = literal['cpu_family']
-         if cpu_family not in known_cpu_families:
+-        if cpu_family not in known_cpu_families:
 -            mlog.warning(f'Unknown CPU family {cpu_family}, please report this at https://github.com/mesonbuild/meson/issues/new')
++        if cpu_family not in known_cpu_families and cpu_family != "riscv":
 +            raise EnvironmentException('Unknown CPU family {}, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.'.format(cpu_family))
  
          endian = literal['endian']
          if endian not in ('little', 'big'):
-diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
-index 71286a5..179917e 100644
---- a/mesonbuild/environment.py
-+++ b/mesonbuild/environment.py
-@@ -352,9 +352,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
+Index: meson-0.60.2/mesonbuild/environment.py
+===================================================================
+--- meson-0.60.2.orig/mesonbuild/environment.py
++++ meson-0.60.2/mesonbuild/environment.py
+@@ -354,10 +354,8 @@ def detect_cpu_family(compilers: Compile
+         if any_compiler_has_define(compilers, '__64BIT__'):
              trial = 'ppc64'
  
-     if trial not in known_cpu_families:
+-    if trial not in known_cpu_families:
 -        mlog.warning(f'Unknown CPU family {trial!r}, please report this at '
 -                     'https://github.com/mesonbuild/meson/issues/new with the '
 -                     'output of `uname -a` and `cat /proc/cpuinfo`')
++    if trial not in known_cpu_families and trail != "riscv":
 +        raise EnvironmentException('Unknown CPU family %s, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.' % trial)
  
      return trial
diff --git a/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch b/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
deleted file mode 100644
index ce90e51..0000000
--- a/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 2f9c59e0489e569c5382404667c10f5c200a72ad Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 4 Aug 2017 16:16:41 +0300
-Subject: [PATCH] gtkdoc: fix issues that arise when cross-compiling
-
-Specifically:
-1) Make it possible to specify a wrapper for executing binaries
-(usually, some kind of target hardware emulator, such as qemu)
-2) Explicitly provide CC and LD via command line, as otherwise gtk-doc will
-try to guess them, incorrectly.
-3) If things break down, print the full command with arguments,
-not just the binary name.
-4) Correctly determine the compiler/linker executables and cross-options when cross-compiling
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- mesonbuild/modules/gnome.py | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
-index dc2979e..c9ff9bd 100644
---- a/mesonbuild/modules/gnome.py
-+++ b/mesonbuild/modules/gnome.py
-@@ -1053,6 +1053,10 @@ class GnomeModule(ExtensionModule):
-             args.append(f'--{program_name}={path}')
-         if namespace:
-             args.append('--namespace=' + namespace)
-+        gtkdoc_exe_wrapper = state.environment.properties.host.get('gtkdoc_exe_wrapper', None)
-+        if gtkdoc_exe_wrapper is not None:
-+            args.append('--run=' + gtkdoc_exe_wrapper)
-+
-         args += self._unpack_args('--htmlargs=', 'html_args', kwargs)
-         args += self._unpack_args('--scanargs=', 'scan_args', kwargs)
-         args += self._unpack_args('--scanobjsargs=', 'scanobjs_args', kwargs)
diff --git a/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch b/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
index fdadc68..86abfa9 100644
--- a/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
@@ -1,4 +1,4 @@
-From 2264e67d7c2c22ca634fd26ea8ada6f0344ab280 Mon Sep 17 00:00:00 2001
+From dd5b4a200cd2fdf7fef627c4b6752f90c00b863a Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 19 Nov 2018 14:24:26 +0100
 Subject: [PATCH] python module: do not manipulate the environment when calling
@@ -8,36 +8,31 @@
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 
 ---
- mesonbuild/modules/python.py | 12 ------------
- 1 file changed, 12 deletions(-)
+ mesonbuild/modules/python.py | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
 
 diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
-index 422155b..aaf5844 100644
+index f479ab9..b934bc6 100644
 --- a/mesonbuild/modules/python.py
 +++ b/mesonbuild/modules/python.py
-@@ -70,11 +70,6 @@ class PythonDependency(ExternalDependency):
-                 old_pkg_libdir = os.environ.get('PKG_CONFIG_LIBDIR')
-                 old_pkg_path = os.environ.get('PKG_CONFIG_PATH')
+@@ -239,10 +239,6 @@ def python_factory(env: 'Environment', for_machine: 'MachineChoice',
+         # If python-X.Y.pc exists in LIBPC, we will try to use it
+         def wrap_in_pythons_pc_dir(name: str, env: 'Environment', kwargs: T.Dict[str, T.Any],
+                                    installation: 'PythonInstallation') -> 'ExternalDependency':
+-            old_pkg_libdir = os.environ.pop('PKG_CONFIG_LIBDIR', None)
+-            old_pkg_path = os.environ.pop('PKG_CONFIG_PATH', None)
+-            if pkg_libdir:
+-                os.environ['PKG_CONFIG_LIBDIR'] = pkg_libdir
+             try:
+                 return PythonPkgConfigDependency(name, env, kwargs, installation)
+             finally:
+@@ -251,8 +247,7 @@ def python_factory(env: 'Environment', for_machine: 'MachineChoice',
+                         os.environ[name] = value
+                     elif name in os.environ:
+                         del os.environ[name]
+-                set_env('PKG_CONFIG_LIBDIR', old_pkg_libdir)
+-                set_env('PKG_CONFIG_PATH', old_pkg_path)
++                pass
  
--                os.environ.pop('PKG_CONFIG_PATH', None)
--
--                if pkg_libdir:
--                    os.environ['PKG_CONFIG_LIBDIR'] = pkg_libdir
--
-                 try:
-                     self.pkgdep = PkgConfigDependency(pkg_name, environment, kwargs)
-                     mlog.debug(f'Found "{pkg_name}" via pkgconfig lookup in LIBPC ({pkg_libdir})')
-@@ -83,13 +78,6 @@ class PythonDependency(ExternalDependency):
-                     mlog.debug(f'"{pkg_name}" could not be found in LIBPC ({pkg_libdir})')
-                     mlog.debug(e)
- 
--                if old_pkg_path is not None:
--                    os.environ['PKG_CONFIG_PATH'] = old_pkg_path
--
--                if old_pkg_libdir is not None:
--                    os.environ['PKG_CONFIG_LIBDIR'] = old_pkg_libdir
--                else:
--                    os.environ.pop('PKG_CONFIG_LIBDIR', None)
-             else:
-                 mlog.debug(f'"{pkg_name}" could not be found in LIBPC ({pkg_libdir}), this is likely due to a relocated python installation')
- 
+         candidates.extend([
+             functools.partial(wrap_in_pythons_pc_dir, pkg_name, env, kwargs, installation),
diff --git a/poky/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch b/poky/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch
index 7c766c6..7aaed8b 100644
--- a/poky/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch
+++ b/poky/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch
@@ -1,4 +1,4 @@
-From 27bbd3c9d8d86de545fcf6608564a14571c98a61 Mon Sep 17 00:00:00 2001
+From 18600f7a1cddf23aeabd188f86e66983f27ccfe3 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Fri, 23 Nov 2018 15:28:28 +0000
 Subject: [PATCH] meson: Disable rpath stripping at install time
@@ -10,26 +10,28 @@
 RP 2018/11/23
 
 Upstream-Status: Submitted [https://github.com/mesonbuild/meson/issues/2567]
-
 ---
  mesonbuild/minstall.py | 7 +++++--
  1 file changed, 5 insertions(+), 2 deletions(-)
 
 diff --git a/mesonbuild/minstall.py b/mesonbuild/minstall.py
-index 212568a..06366d4 100644
+index 7d0da13..17d50db 100644
 --- a/mesonbuild/minstall.py
 +++ b/mesonbuild/minstall.py
-@@ -653,8 +653,11 @@ class Installer:
+@@ -718,8 +718,11 @@ class Installer:
              if file_copied:
                  self.did_install_something = True
                  try:
 -                    self.fix_rpath(outname, t.rpath_dirs_to_remove, install_rpath, final_path,
--                                         install_name_mappings, verbose=False)
+-                                   install_name_mappings, verbose=False)
 +                    if install_rpath:
 +                        self.fix_rpath(outname, t.rpath_dirs_to_remove, install_rpath, final_path,
-+                                           install_name_mappings, verbose=False)
++                                       install_name_mappings, verbose=False)
 +                    else:
 +                        print("RPATH changes at install time disabled")
                  except SystemExit as e:
                      if isinstance(e.code, int) and e.code == 0:
                          pass
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/meson/meson/meson-wrapper b/poky/meta/recipes-devtools/meson/meson/meson-wrapper
index d4b5187..8fafaad 100755
--- a/poky/meta/recipes-devtools/meson/meson/meson-wrapper
+++ b/poky/meta/recipes-devtools/meson/meson/meson-wrapper
@@ -4,6 +4,10 @@
     echo "OECORE_NATIVE_SYSROOT not set; are you in a Yocto SDK environment?" >&2
 fi
 
+if [ -z "$SSL_CERT_DIR" ]; then
+    export SSL_CERT_DIR="${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/"
+fi
+
 # If these are set to a cross-compile path, meson will get confused and try to
 # use them as native tools. Unset them to prevent this, as all the cross-compile
 # config is already in meson.cross.
diff --git a/poky/meta/recipes-devtools/meson/meson_0.59.2.bb b/poky/meta/recipes-devtools/meson/meson_0.59.2.bb
deleted file mode 100644
index de9b905..0000000
--- a/poky/meta/recipes-devtools/meson/meson_0.59.2.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-include meson.inc
-
-BBCLASSEXTEND = "native"
-
diff --git a/poky/meta/recipes-devtools/meson/meson_0.61.1.bb b/poky/meta/recipes-devtools/meson/meson_0.61.1.bb
new file mode 100644
index 0000000..32b1240
--- /dev/null
+++ b/poky/meta/recipes-devtools/meson/meson_0.61.1.bb
@@ -0,0 +1,133 @@
+HOMEPAGE = "http://mesonbuild.com"
+SUMMARY = "A high performance build system"
+DESCRIPTION = "Meson is a build system designed to increase programmer \
+productivity. It does this by providing a fast, simple and easy to use \
+interface for modern software development tools and practices."
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${PV}.tar.gz \
+           file://meson-setup.py \
+           file://meson-wrapper \
+           file://0001-python-module-do-not-manipulate-the-environment-when.patch \
+           file://disable-rpath-handling.patch \
+           file://0001-Make-CPU-family-warnings-fatal.patch \
+           file://0002-Support-building-allarch-recipes-again.patch \
+           file://0001-is_debianlike-always-return-False.patch \
+           "
+SRC_URI[sha256sum] = "feb2cefb325b437dbf36146df7c6b87688ddff0b0205caa31dc64055c6da410c"
+
+UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases"
+UPSTREAM_CHECK_REGEX = "meson-(?P<pver>\d+(\.\d+)+)\.tar"
+
+inherit setuptools3
+
+RDEPENDS:${PN} = "ninja python3-modules python3-pkg-resources"
+
+FILES:${PN} += "${datadir}/polkit-1"
+
+do_install:append () {
+	# As per the same issue in the python recipe itself:
+	# Unfortunately the following pyc files are non-deterministc due to 'frozenset'
+	# being written without strict ordering, even with PYTHONHASHSEED = 0
+	# Upstream is discussing ways to solve the issue properly, until then let's
+	# just not install the problematic files.
+	# More info: http://benno.id.au/blog/2013/01/15/python-determinism
+	rm ${D}${libdir}/python*/site-packages/mesonbuild/dependencies/__pycache__/mpi.cpython*
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
+inherit meson-routines
+
+# The cross file logic is similar but not identical to that in meson.bbclass,
+# since it's generating for an SDK rather than a cross-compile. Important
+# differences are:
+# - We can't set vars like CC, CXX, etc. yet because they will be filled in with
+#   real paths by meson-setup.sh when the SDK is extracted.
+# - Some overrides aren't needed, since the SDK injects paths that take care of
+#   them.
+def var_list2str(var, d):
+    items = d.getVar(var).split()
+    return items[0] if len(items) == 1 else ', '.join(repr(s) for s in items)
+
+def generate_native_link_template(d):
+    val = ['-L@{OECORE_NATIVE_SYSROOT}${libdir_native}',
+           '-L@{OECORE_NATIVE_SYSROOT}${base_libdir_native}',
+           '-Wl,-rpath-link,@{OECORE_NATIVE_SYSROOT}${libdir_native}',
+           '-Wl,-rpath-link,@{OECORE_NATIVE_SYSROOT}${base_libdir_native}',
+           '-Wl,--allow-shlib-undefined'
+        ]
+    build_arch = d.getVar('BUILD_ARCH')
+    if 'x86_64' in build_arch:
+        loader = 'ld-linux-x86-64.so.2'
+    elif 'i686' in build_arch:
+        loader = 'ld-linux.so.2'
+    elif 'aarch64' in build_arch:
+        loader = 'ld-linux-aarch64.so.1'
+    elif 'ppc64le' in build_arch:
+        loader = 'ld64.so.2'
+
+    if loader:
+        val += ['-Wl,--dynamic-linker=@{OECORE_NATIVE_SYSROOT}${base_libdir_native}/' + loader]
+
+    return repr(val)
+
+do_install:append:class-nativesdk() {
+    install -d ${D}${datadir}/meson
+
+    cat >${D}${datadir}/meson/meson.native.template <<EOF
+[binaries]
+c = ${@meson_array('BUILD_CC', d)}
+cpp = ${@meson_array('BUILD_CXX', d)}
+ar = ${@meson_array('BUILD_AR', d)}
+nm = ${@meson_array('BUILD_NM', d)}
+strip = ${@meson_array('BUILD_STRIP', d)}
+readelf = ${@meson_array('BUILD_READELF', d)}
+pkgconfig = 'pkg-config-native'
+
+[built-in options]
+c_args = ['-isystem@{OECORE_NATIVE_SYSROOT}${includedir_native}' , ${@var_list2str('BUILD_OPTIMIZATION', d)}]
+c_link_args = ${@generate_native_link_template(d)}
+cpp_args = ['-isystem@{OECORE_NATIVE_SYSROOT}${includedir_native}' , ${@var_list2str('BUILD_OPTIMIZATION', d)}]
+cpp_link_args = ${@generate_native_link_template(d)}
+[properties]
+sys_root = '@OECORE_NATIVE_SYSROOT'
+EOF
+
+    cat >${D}${datadir}/meson/meson.cross.template <<EOF
+[binaries]
+c = @CC
+cpp = @CXX
+ar = @AR
+nm = @NM
+strip = @STRIP
+pkgconfig = 'pkg-config'
+
+[built-in options]
+c_args = @CFLAGS
+c_link_args = @LDFLAGS
+cpp_args = @CPPFLAGS
+cpp_link_args = @LDFLAGS
+
+[properties]
+needs_exe_wrapper = true
+sys_root = @OECORE_TARGET_SYSROOT
+
+[host_machine]
+system = '${SDK_OS}'
+cpu_family = '${@meson_cpu_family("SDK_ARCH", d)}'
+cpu = '${SDK_ARCH}'
+endian = '${@meson_endian("SDK", d)}'
+EOF
+
+    install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d
+    install -m 0755 ${WORKDIR}/meson-setup.py ${D}${SDKPATHNATIVE}/post-relocate-setup.d/
+
+    # We need to wrap the real meson with a thin env setup wrapper.
+    mv ${D}${bindir}/meson ${D}${bindir}/meson.real
+    install -m 0755 ${WORKDIR}/meson-wrapper ${D}${bindir}/meson
+}
+
+FILES:${PN}:append:class-nativesdk = "${datadir}/meson ${SDKPATHNATIVE}"
diff --git a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.59.2.bb b/poky/meta/recipes-devtools/meson/nativesdk-meson_0.59.2.bb
deleted file mode 100644
index 7b77041..0000000
--- a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.59.2.bb
+++ /dev/null
@@ -1,104 +0,0 @@
-include meson.inc
-
-inherit meson-routines
-inherit nativesdk
-
-SRC_URI += "file://meson-setup.py \
-            file://meson-wrapper"
-
-# The cross file logic is similar but not identical to that in meson.bbclass,
-# since it's generating for an SDK rather than a cross-compile. Important
-# differences are:
-# - We can't set vars like CC, CXX, etc. yet because they will be filled in with
-#   real paths by meson-setup.sh when the SDK is extracted.
-# - Some overrides aren't needed, since the SDK injects paths that take care of
-#   them.
-def var_list2str(var, d):
-    items = d.getVar(var).split()
-    return items[0] if len(items) == 1 else ', '.join(repr(s) for s in items)
-
-def generate_native_link_template(d):
-    val = ['-L@{OECORE_NATIVE_SYSROOT}${libdir_native}',
-           '-L@{OECORE_NATIVE_SYSROOT}${base_libdir_native}',
-           '-Wl,-rpath-link,@{OECORE_NATIVE_SYSROOT}${libdir_native}',
-           '-Wl,-rpath-link,@{OECORE_NATIVE_SYSROOT}${base_libdir_native}',
-           '-Wl,--allow-shlib-undefined'
-        ]
-    build_arch = d.getVar('BUILD_ARCH')
-    if 'x86_64' in build_arch:
-        loader = 'ld-linux-x86-64.so.2'
-    elif 'i686' in build_arch:
-        loader = 'ld-linux.so.2'
-    elif 'aarch64' in build_arch:
-        loader = 'ld-linux-aarch64.so.1'
-    elif 'ppc64le' in build_arch:
-        loader = 'ld64.so.2'
-
-    if loader:
-        val += ['-Wl,--dynamic-linker=@{OECORE_NATIVE_SYSROOT}${base_libdir_native}/' + loader]
-
-    return repr(val)
-
-do_install:append() {
-    install -d ${D}${datadir}/meson
-
-    cat >${D}${datadir}/meson/meson.native.template <<EOF
-[binaries]
-c = ${@meson_array('BUILD_CC', d)}
-cpp = ${@meson_array('BUILD_CXX', d)}
-ar = ${@meson_array('BUILD_AR', d)}
-nm = ${@meson_array('BUILD_NM', d)}
-strip = ${@meson_array('BUILD_STRIP', d)}
-readelf = ${@meson_array('BUILD_READELF', d)}
-pkgconfig = 'pkg-config-native'
-
-[built-in options]
-c_args = ['-isystem@{OECORE_NATIVE_SYSROOT}${includedir_native}' , ${@var_list2str('BUILD_OPTIMIZATION', d)}]
-c_link_args = ${@generate_native_link_template(d)}
-cpp_args = ['-isystem@{OECORE_NATIVE_SYSROOT}${includedir_native}' , ${@var_list2str('BUILD_OPTIMIZATION', d)}]
-cpp_link_args = ${@generate_native_link_template(d)}
-[properties]
-sys_root = '@OECORE_NATIVE_SYSROOT'
-EOF
-
-    cat >${D}${datadir}/meson/meson.cross.template <<EOF
-[binaries]
-c = @CC
-cpp = @CXX
-ar = @AR
-nm = @NM
-strip = @STRIP
-pkgconfig = 'pkg-config'
-
-[built-in options]
-c_args = @CFLAGS
-c_link_args = @LDFLAGS
-cpp_args = @CPPFLAGS
-cpp_link_args = @LDFLAGS
-
-[properties]
-needs_exe_wrapper = true
-sys_root = @OECORE_TARGET_SYSROOT
-
-[host_machine]
-system = '${SDK_OS}'
-cpu_family = '${@meson_cpu_family("SDK_ARCH", d)}'
-cpu = '${SDK_ARCH}'
-endian = '${@meson_endian("SDK", d)}'
-EOF
-
-    install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d
-    install -m 0755 ${WORKDIR}/meson-setup.py ${D}${SDKPATHNATIVE}/post-relocate-setup.d/
-
-    # We need to wrap the real meson with a thin env setup wrapper.
-    mv ${D}${bindir}/meson ${D}${bindir}/meson.real
-    install -m 0755 ${WORKDIR}/meson-wrapper ${D}${bindir}/meson
-}
-
-RDEPENDS:${PN} += "\
-    nativesdk-ninja \
-    nativesdk-python3 \
-    nativesdk-python3-setuptools \
-    "
-
-FILES:${PN} += "${datadir}/meson ${SDKPATHNATIVE}"
diff --git a/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb b/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
index 661db46..5ccdace 100644
--- a/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
+++ b/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://mmc.c;beginline=1;endline=20;md5=fae32792e20f4d27ade1c5a762d16b7d"
 
 SRCBRANCH ?= "master"
-SRCREV = "43282e80e174cc73b09b81a4d17cb3a7b4dc5cfc"
+SRCREV = "3969aa4804edb8aed7bcb3c958e49d0c7388b067"
 
 PV = "0.1+git${SRCPV}"
 
diff --git a/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb b/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
index 057ae80..c05d3b7 100644
--- a/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
+++ b/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
@@ -11,10 +11,10 @@
 DEPENDS = "zlib e2fsprogs util-linux"
 RDEPENDS:mtd-utils-tests += "bash"
 
-PV = "2.1.3"
+PV = "2.1.4"
 
-SRCREV = "42ea7cd48d2b3c306d59bb6c530d79f8c25bf9f5"
-SRC_URI = "git://git.infradead.org/mtd-utils.git \
+SRCREV = "c7f1bfa44a84d02061787e2f6093df5cc40b9f5c"
+SRC_URI = "git://git.infradead.org/mtd-utils.git;branch=master \
            file://add-exclusion-to-mkfs-jffs2-git-2.patch \
            "
 
diff --git a/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch b/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch
index 8041b13..6185f4d 100644
--- a/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch
+++ b/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch
@@ -1,4 +1,4 @@
-From dc11f3e7bdfa524a3e395a0f9d5e035dbc40c047 Mon Sep 17 00:00:00 2001
+From a5076415ed2c226ca7115d27e0ce51a8a0302090 Mon Sep 17 00:00:00 2001
 From: Ed Bartosh <ed.bartosh@linux.intel.com>
 Date: Tue, 13 Jun 2017 14:55:52 +0300
 Subject: [PATCH] Disabled reading host configs.
diff --git a/poky/meta/recipes-devtools/mtools/mtools_4.0.35.bb b/poky/meta/recipes-devtools/mtools/mtools_4.0.35.bb
deleted file mode 100644
index 61e98bb..0000000
--- a/poky/meta/recipes-devtools/mtools/mtools_4.0.35.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "Utilities to access MS-DOS disks without mounting them"
-DESCRIPTION = "Mtools is a collection of utilities to access MS-DOS disks from GNU and Unix without mounting them."
-HOMEPAGE = "http://www.gnu.org/software/mtools/"
-SECTION = "optional"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS += "virtual/libiconv"
-
-RDEPENDS:${PN}:libc-glibc = "glibc-gconv-ibm850"
-RRECOMMENDS:${PN}:libc-glibc = "\
-	glibc-gconv-ibm437 \
-	glibc-gconv-ibm737 \
-	glibc-gconv-ibm775 \
-	glibc-gconv-ibm851 \
-	glibc-gconv-ibm852 \
-	glibc-gconv-ibm855 \
-	glibc-gconv-ibm857 \
-	glibc-gconv-ibm860 \
-	glibc-gconv-ibm861 \
-	glibc-gconv-ibm862 \
-	glibc-gconv-ibm863 \
-	glibc-gconv-ibm865 \
-	glibc-gconv-ibm866 \
-	glibc-gconv-ibm869 \
-	"
-SRC_URI[sha256sum] = "34769e173751d2f0d891a08c76c80427e929b8ee43438019b8666cc3d7a44749"
-
-SRC_URI = "${GNU_MIRROR}/mtools/mtools-${PV}.tar.bz2 \
-           file://mtools-makeinfo.patch \
-           file://clang_UNUSED.patch \
-           "
-
-SRC_URI:append:class-native = " file://disable-hardcoded-configs.patch"
-
-inherit autotools texinfo
-
-EXTRA_OECONF = "--without-x"
-
-BBCLASSEXTEND = "native nativesdk"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[libbsd] = "ac_cv_lib_bsd_main=yes,ac_cv_lib_bsd_main=no,libbsd"
-
-do_install:prepend () {
-    # Create bindir to fix parallel installation issues
-    mkdir -p ${D}/${bindir}
-    mkdir -p ${D}/${datadir}
-}
diff --git a/poky/meta/recipes-devtools/mtools/mtools_4.0.37.bb b/poky/meta/recipes-devtools/mtools/mtools_4.0.37.bb
new file mode 100644
index 0000000..20748a0
--- /dev/null
+++ b/poky/meta/recipes-devtools/mtools/mtools_4.0.37.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Utilities to access MS-DOS disks without mounting them"
+DESCRIPTION = "Mtools is a collection of utilities to access MS-DOS disks from GNU and Unix without mounting them."
+HOMEPAGE = "http://www.gnu.org/software/mtools/"
+SECTION = "optional"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS += "virtual/libiconv"
+
+RDEPENDS:${PN}:libc-glibc = "glibc-gconv-ibm850"
+RRECOMMENDS:${PN}:libc-glibc = "\
+	glibc-gconv-ibm437 \
+	glibc-gconv-ibm737 \
+	glibc-gconv-ibm775 \
+	glibc-gconv-ibm851 \
+	glibc-gconv-ibm852 \
+	glibc-gconv-ibm855 \
+	glibc-gconv-ibm857 \
+	glibc-gconv-ibm860 \
+	glibc-gconv-ibm861 \
+	glibc-gconv-ibm862 \
+	glibc-gconv-ibm863 \
+	glibc-gconv-ibm865 \
+	glibc-gconv-ibm866 \
+	glibc-gconv-ibm869 \
+	"
+SRC_URI[sha256sum] = "799b197e23e47b61259628810b27790efb7a1fe36037ef1da8a27b0ae4fa8342"
+
+SRC_URI = "${GNU_MIRROR}/mtools/mtools-${PV}.tar.bz2 \
+           file://mtools-makeinfo.patch \
+           file://clang_UNUSED.patch \
+           "
+
+SRC_URI:append:class-native = " file://disable-hardcoded-configs.patch"
+
+inherit autotools texinfo
+
+EXTRA_OECONF = "--without-x"
+
+BBCLASSEXTEND = "native nativesdk"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[libbsd] = "ac_cv_lib_bsd_main=yes,ac_cv_lib_bsd_main=no,libbsd"
+
+do_install:prepend () {
+    # Create bindir to fix parallel installation issues
+    mkdir -p ${D}/${bindir}
+    mkdir -p ${D}/${datadir}
+}
diff --git a/poky/meta/recipes-devtools/ninja/ninja_1.10.2.bb b/poky/meta/recipes-devtools/ninja/ninja_1.10.2.bb
index c908bcb..7270321 100644
--- a/poky/meta/recipes-devtools/ninja/ninja_1.10.2.bb
+++ b/poky/meta/recipes-devtools/ninja/ninja_1.10.2.bb
@@ -8,7 +8,7 @@
 
 SRCREV = "e72d1d581c945c158ed68d9bc48911063022a2c6"
 
-SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release"
+SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release;protocol=https"
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.5.bb b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.5.bb
deleted file mode 100644
index a2bcc7f..0000000
--- a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.5.bb
+++ /dev/null
@@ -1,66 +0,0 @@
-SUMMARY = "Additional utilities for the opkg package manager"
-SUMMARY:update-alternatives-opkg = "Utility for managing the alternatives system"
-SECTION = "base"
-HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
-                    file://opkg.py;beginline=2;endline=18;md5=ffa11ff3c15eb31c6a7ceaa00cc9f986"
-PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'virtual/update-alternatives', '', d)}"
-
-SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \
-           file://0001-update-alternatives-correctly-match-priority.patch \
-           "
-UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/"
-
-SRC_URI[md5sum] = "025b19744e5c7fc1c8380e17df1fcc64"
-SRC_URI[sha256sum] = "528635e674addea5c2b3a3268404ad04a952c4f410d17c3d754f5dd5529770c9"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-RDEPENDS:${PN} += "bash"
-
-inherit perlnative
-
-# For native builds we use the host Python
-PYTHONRDEPS = "python3 python3-shell python3-io python3-math python3-crypt python3-logging python3-fcntl python3-pickle python3-compression python3-stringold"
-PYTHONRDEPS:class-native = ""
-
-PACKAGECONFIG = "python update-alternatives"
-PACKAGECONFIG[python] = ",,,${PYTHONRDEPS}"
-PACKAGECONFIG[update-alternatives] = ",,,"
-
-do_install() {
-	oe_runmake PREFIX=${prefix} DESTDIR=${D} install
-	if ! ${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'true', 'false', d)}; then
-		rm -f "${D}${bindir}/update-alternatives"
-	fi
-}
-
-do_install:append:class-target() {
-	if ! ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then
-		grep -lZ "/usr/bin/env.*python" ${D}${bindir}/* | xargs -0 rm
-	fi
-
-	if [ -e "${D}${bindir}/update-alternatives" ]; then
-		sed -i ${D}${bindir}/update-alternatives -e 's,/usr/bin,${bindir},g; s,/usr/lib,${nonarch_libdir},g'
-	fi
-}
-
-# These are empty and will pull python3-dev into images where it wouldn't
-# have been otherwise, so don't generate them.
-PACKAGES:remove = "${PN}-dev ${PN}-staticdev"
-
-PACKAGES =+ "update-alternatives-opkg"
-FILES:update-alternatives-opkg = "${bindir}/update-alternatives"
-RPROVIDES:update-alternatives-opkg = "update-alternatives update-alternatives-cworth"
-RREPLACES:update-alternatives-opkg = "update-alternatives-cworth"
-RCONFLICTS:update-alternatives-opkg = "update-alternatives-cworth"
-
-pkg_postrm:update-alternatives-opkg() {
-	rm -rf $D${nonarch_libdir}/opkg/alternatives
-	rmdir $D${nonarch_libdir}/opkg || true
-}
-
-BBCLASSEXTEND = "native nativesdk"
-
-CLEANBROKEN = "1"
diff --git a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.5.0.bb b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.5.0.bb
new file mode 100644
index 0000000..21678a2
--- /dev/null
+++ b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.5.0.bb
@@ -0,0 +1,65 @@
+SUMMARY = "Additional utilities for the opkg package manager"
+SUMMARY:update-alternatives-opkg = "Utility for managing the alternatives system"
+SECTION = "base"
+HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://opkg.py;beginline=2;endline=18;md5=ffa11ff3c15eb31c6a7ceaa00cc9f986"
+PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'virtual/update-alternatives', '', d)}"
+
+SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \
+           file://0001-update-alternatives-correctly-match-priority.patch \
+           "
+UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/"
+
+SRC_URI[sha256sum] = "55733c0f8ffde2bb4f9593cfd66a1f68e6a2f814e8e62f6fd78472911c818c32"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+RDEPENDS:${PN} += "bash"
+
+inherit perlnative
+
+# For native builds we use the host Python
+PYTHONRDEPS = "python3 python3-shell python3-io python3-math python3-crypt python3-logging python3-fcntl python3-pickle python3-compression python3-stringold"
+PYTHONRDEPS:class-native = ""
+
+PACKAGECONFIG = "python update-alternatives"
+PACKAGECONFIG[python] = ",,,${PYTHONRDEPS}"
+PACKAGECONFIG[update-alternatives] = ",,,"
+
+do_install() {
+	oe_runmake PREFIX=${prefix} DESTDIR=${D} install
+	if ! ${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'true', 'false', d)}; then
+		rm -f "${D}${bindir}/update-alternatives"
+	fi
+}
+
+do_install:append:class-target() {
+	if ! ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then
+		grep -lZ "/usr/bin/env.*python" ${D}${bindir}/* | xargs -0 rm
+	fi
+
+	if [ -e "${D}${bindir}/update-alternatives" ]; then
+		sed -i ${D}${bindir}/update-alternatives -e 's,/usr/bin,${bindir},g; s,/usr/lib,${nonarch_libdir},g'
+	fi
+}
+
+# These are empty and will pull python3-dev into images where it wouldn't
+# have been otherwise, so don't generate them.
+PACKAGES:remove = "${PN}-dev ${PN}-staticdev"
+
+PACKAGES =+ "update-alternatives-opkg"
+FILES:update-alternatives-opkg = "${bindir}/update-alternatives"
+RPROVIDES:update-alternatives-opkg = "update-alternatives update-alternatives-cworth"
+RREPLACES:update-alternatives-opkg = "update-alternatives-cworth"
+RCONFLICTS:update-alternatives-opkg = "update-alternatives-cworth"
+
+pkg_postrm:update-alternatives-opkg() {
+	rm -rf $D${nonarch_libdir}/opkg/alternatives
+	rmdir $D${nonarch_libdir}/opkg || true
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
+CLEANBROKEN = "1"
diff --git a/poky/meta/recipes-devtools/opkg/opkg_0.4.5.bb b/poky/meta/recipes-devtools/opkg/opkg_0.4.5.bb
deleted file mode 100644
index ef18ccf..0000000
--- a/poky/meta/recipes-devtools/opkg/opkg_0.4.5.bb
+++ /dev/null
@@ -1,88 +0,0 @@
-SUMMARY = "Open Package Manager"
-SUMMARY:libopkg = "Open Package Manager library"
-SECTION = "base"
-HOMEPAGE = "http://code.google.com/p/opkg/"
-DESCRIPTION = "Opkg is a lightweight package management system based on Ipkg."
-BUGTRACKER = "http://code.google.com/p/opkg/issues/list"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
-                    file://src/opkg.c;beginline=4;endline=18;md5=d6200b0f2b41dee278aa5fad333eecae"
-
-DEPENDS = "libarchive"
-
-PE = "1"
-
-SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \
-           file://opkg.conf \
-           file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \
-           file://run-ptest \
-"
-
-SRC_URI[md5sum] = "5dc41ad37d88803b5e0f456a9c5a0811"
-SRC_URI[sha256sum] = "a1214a75fa34fb9228db8da47308e0e711b1c93fd8938cf164c10fd28eb50f1e"
-
-# This needs to be before ptest inherit, otherwise all ptest files end packaged
-# in libopkg package if OPKGLIBDIR == libdir, because default
-# PTEST_PATH ?= "${libdir}/${BPN}/ptest"
-PACKAGES =+ "libopkg"
-
-inherit autotools pkgconfig ptest
-
-target_localstatedir := "${localstatedir}"
-OPKGLIBDIR ??= "${target_localstatedir}/lib"
-
-PACKAGECONFIG ??= "libsolv"
-
-PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,\
-    gnupg gpgme libgpg-error,\
-    ${@ "gnupg" if ("native" in d.getVar("PN")) else "gnupg-gpg"}\
-    "
-PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
-PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl"
-PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
-PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256"
-PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv"
-
-EXTRA_OECONF += " --disable-pathfinder"
-EXTRA_OECONF:class-native = "--localstatedir=/${@os.path.relpath('${localstatedir}', '${STAGING_DIR_NATIVE}')} --sysconfdir=/${@os.path.relpath('${sysconfdir}', '${STAGING_DIR_NATIVE}')}"
-
-do_install:append () {
-	install -d ${D}${sysconfdir}/opkg
-	install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf
-	echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf
-
-	# We need to create the lock directory
-	install -d ${D}${OPKGLIBDIR}/opkg
-}
-
-do_install_ptest () {
-	sed -i -e '/@echo $^/d' ${D}${PTEST_PATH}/tests/Makefile
-	sed -i -e '/@PYTHONPATH=. $(PYTHON) $^/a\\t@if [ "$$?" != "0" ];then echo "FAIL:"$^;else echo "PASS:"$^;fi' ${D}${PTEST_PATH}/tests/Makefile
-}
-
-WARN_QA:append += "openssl-deprecation"
-QAPKGTEST[openssl-deprecation] = "package_qa_check_openssl_deprecation"
-def package_qa_check_openssl_deprecation (package, d, messages):
-    sane = True
-
-    pkgconfig = (d.getVar("PACKAGECONFIG") or "").split()
-    if pkgconfig and 'openssl' in pkgconfig:
-        package_qa_add_message(messages, 'openssl-deprecation', '"openssl" in opkg.bb PACKAGECONFIG. Feed signature checking with OpenSSL will be deprecated in the next opkg release. Consider using GPG checking instead.')
-        sane = False
-
-    return sane
-
-
-RDEPENDS:${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive"
-RDEPENDS:${PN}:class-native = ""
-RDEPENDS:${PN}:class-nativesdk = ""
-RDEPENDS:${PN}-ptest += "make binutils python3-core python3-compression"
-RREPLACES:${PN} = "opkg-nogpg opkg-collateral"
-RCONFLICTS:${PN} = "opkg-collateral"
-RPROVIDES:${PN} = "opkg-collateral"
-
-FILES:libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/"
-
-BBCLASSEXTEND = "native nativesdk"
-
-CONFFILES:${PN} = "${sysconfdir}/opkg/opkg.conf"
diff --git a/poky/meta/recipes-devtools/opkg/opkg_0.5.0.bb b/poky/meta/recipes-devtools/opkg/opkg_0.5.0.bb
new file mode 100644
index 0000000..f7d8abb
--- /dev/null
+++ b/poky/meta/recipes-devtools/opkg/opkg_0.5.0.bb
@@ -0,0 +1,72 @@
+SUMMARY = "Open Package Manager"
+SUMMARY:libopkg = "Open Package Manager library"
+SECTION = "base"
+HOMEPAGE = "http://code.google.com/p/opkg/"
+DESCRIPTION = "Opkg is a lightweight package management system based on Ipkg."
+BUGTRACKER = "http://code.google.com/p/opkg/issues/list"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://src/opkg.c;beginline=4;endline=18;md5=d6200b0f2b41dee278aa5fad333eecae"
+
+DEPENDS = "libarchive"
+
+PE = "1"
+
+SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \
+           file://opkg.conf \
+           file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \
+           file://run-ptest \
+"
+
+SRC_URI[sha256sum] = "559c3e1b893abaa1dd473ce3a9a5f7dd3f60ceb6cd14caaef76ddf0f7721ad1c"
+
+# This needs to be before ptest inherit, otherwise all ptest files end packaged
+# in libopkg package if OPKGLIBDIR == libdir, because default
+# PTEST_PATH ?= "${libdir}/${BPN}/ptest"
+PACKAGES =+ "libopkg"
+
+inherit autotools pkgconfig ptest
+
+target_localstatedir := "${localstatedir}"
+OPKGLIBDIR ??= "${target_localstatedir}/lib"
+
+PACKAGECONFIG ??= "libsolv"
+
+PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,\
+    gnupg gpgme libgpg-error,\
+    ${@ "gnupg" if ("native" in d.getVar("PN")) else "gnupg-gpg"}\
+    "
+PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
+PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl"
+PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256"
+PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv"
+
+EXTRA_OECONF:class-native = "--localstatedir=/${@os.path.relpath('${localstatedir}', '${STAGING_DIR_NATIVE}')} --sysconfdir=/${@os.path.relpath('${sysconfdir}', '${STAGING_DIR_NATIVE}')}"
+
+do_install:append () {
+	install -d ${D}${sysconfdir}/opkg
+	install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf
+	echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf
+
+	# We need to create the lock directory
+	install -d ${D}${OPKGLIBDIR}/opkg
+}
+
+do_install_ptest () {
+	sed -i -e '/@echo $^/d' ${D}${PTEST_PATH}/tests/Makefile
+	sed -i -e '/@PYTHONPATH=. $(PYTHON) $^/a\\t@if [ "$$?" != "0" ];then echo "FAIL:"$^;else echo "PASS:"$^;fi' ${D}${PTEST_PATH}/tests/Makefile
+}
+
+RDEPENDS:${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive"
+RDEPENDS:${PN}:class-native = ""
+RDEPENDS:${PN}:class-nativesdk = ""
+RDEPENDS:${PN}-ptest += "make binutils python3-core python3-compression"
+RREPLACES:${PN} = "opkg-nogpg opkg-collateral"
+RCONFLICTS:${PN} = "opkg-collateral"
+RPROVIDES:${PN} = "opkg-collateral"
+
+FILES:libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/"
+
+BBCLASSEXTEND = "native nativesdk"
+
+CONFFILES:${PN} = "${sysconfdir}/opkg/opkg.conf"
diff --git a/poky/meta/recipes-devtools/patch/patch/CVE-2019-13636.patch b/poky/meta/recipes-devtools/patch/patch/CVE-2019-13636.patch
index 9f8b6db..8059d9f 100644
--- a/poky/meta/recipes-devtools/patch/patch/CVE-2019-13636.patch
+++ b/poky/meta/recipes-devtools/patch/patch/CVE-2019-13636.patch
@@ -11,7 +11,7 @@
 with O_CREAT | O_EXCL to avoid following symlinks in that case as well.
 
 CVE: CVE-2019-13636
-Upstream-Status: Backport[https://git.savannah.gnu.org/cgit/patch.git/patch/?id=dce4683cbbe107a95f1f0d45fabc304acfb5d71a]
+Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/patch.git/patch/?id=dce4683cbbe107a95f1f0d45fabc304acfb5d71a]
 Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
 
 ---
diff --git a/poky/meta/recipes-devtools/patch/patch/CVE-2019-20633.patch b/poky/meta/recipes-devtools/patch/patch/CVE-2019-20633.patch
index 03988a1..9b2c07c 100644
--- a/poky/meta/recipes-devtools/patch/patch/CVE-2019-20633.patch
+++ b/poky/meta/recipes-devtools/patch/patch/CVE-2019-20633.patch
@@ -7,7 +7,7 @@
 diffs.
 
 CVE: CVE-2019-20633
-Upstream-Status: Backport[https://git.savannah.gnu.org/cgit/patch.git/patch/?id=15b158db3ae11cb835f2eb8d2eb48e09d1a4af48]
+Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/patch.git/patch/?id=15b158db3ae11cb835f2eb8d2eb48e09d1a4af48]
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 
 ---
diff --git a/poky/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch b/poky/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch
index 63080a4..8d9a50a 100644
--- a/poky/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch
+++ b/poky/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch
@@ -15,10 +15,10 @@
  1 file changed, 15 insertions(+), 1 deletion(-)
 
 diff --git a/src/patchelf.cc b/src/patchelf.cc
-index fd1e7b7..a941da1 100644
+index 1aeae88..6b77afe 100644
 --- a/src/patchelf.cc
 +++ b/src/patchelf.cc
-@@ -527,9 +527,19 @@ void ElfFile<ElfFileParamNames>::sortShdrs()
+@@ -534,9 +534,19 @@ void ElfFile<ElfFileParamNames>::sortShdrs()
  
  static void writeFile(const std::string & fileName, const FileContents & contents)
  {
@@ -39,10 +39,10 @@
      if (fd == -1)
          error("open");
  
-@@ -543,6 +553,10 @@ static void writeFile(const std::string & fileName, const FileContents & content
- 
-     if (close(fd) != 0)
-         error("close");
+@@ -564,6 +574,10 @@ static void writeFile(const std::string & fileName, const FileContents & content
+     if (errno == EINTR)
+         return;
+     error("close");
 +
 +    if (chmod(fileName.c_str(), st.st_mode) != 0)
 +        error("chmod");
@@ -50,3 +50,6 @@
  }
  
  
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-devtools/patchelf/patchelf_0.13.bb b/poky/meta/recipes-devtools/patchelf/patchelf_0.13.bb
deleted file mode 100644
index 1b0561b..0000000
--- a/poky/meta/recipes-devtools/patchelf/patchelf_0.13.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Tool to allow editing of RPATH and interpreter fields in ELF binaries"
-DESCRIPTION = "PatchELF is a simple utility for modifying existing ELF executables and libraries."
-HOMEPAGE = "https://github.com/NixOS/patchelf"
-
-LICENSE = "GPLv3"
-
-SRC_URI = "git://github.com/NixOS/patchelf;protocol=https \
-           file://handle-read-only-files.patch \
-           "
-SRCREV = "a949ff23315bbb5863627c4655fe216ecbf341a2"
-
-S = "${WORKDIR}/git"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-inherit autotools
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/patchelf/patchelf_0.14.3.bb b/poky/meta/recipes-devtools/patchelf/patchelf_0.14.3.bb
new file mode 100644
index 0000000..5d41c5e
--- /dev/null
+++ b/poky/meta/recipes-devtools/patchelf/patchelf_0.14.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Tool to allow editing of RPATH and interpreter fields in ELF binaries"
+DESCRIPTION = "PatchELF is a simple utility for modifying existing ELF executables and libraries."
+HOMEPAGE = "https://github.com/NixOS/patchelf"
+
+LICENSE = "GPLv3"
+
+SRC_URI = "git://github.com/NixOS/patchelf;protocol=https;branch=master \
+           file://handle-read-only-files.patch \
+           "
+SRCREV = "bf3f37ec29edcdb3e2a163edaf84aeece39f8c9d"
+
+S = "${WORKDIR}/git"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+inherit autotools
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch b/poky/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch
index 3b0fc45..386ea3f 100644
--- a/poky/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch
+++ b/poky/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch
@@ -4,7 +4,7 @@
 Subject: [PATCH] configure_path.sh: do not hardcode $prefix/lib as library
  path
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/arsv/perl-cross/pull/123]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 
 ---
diff --git a/poky/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch b/poky/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch
index 0aaeaa2..1d90b0f 100644
--- a/poky/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch
+++ b/poky/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch
@@ -5,7 +5,7 @@
 
 As it seems to break things if the argument has spaces and arguments in it.
 
-Upstream-Status: Pending
+Upstream-Status: Backport [443f7bd08b19e71a2e838dcb6cde176998cd350f]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  cnf/configure_tool.sh | 2 +-
diff --git a/poky/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch b/poky/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch
index e798503..6c3f08c 100644
--- a/poky/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch
+++ b/poky/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch
@@ -3,7 +3,7 @@
 Date: Tue, 27 Nov 2018 15:37:40 +0100
 Subject: [PATCH] perl-cross: add LDFLAGS when linking libperl
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/arsv/perl-cross/pull/122]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  Makefile | 2 +-
diff --git a/poky/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb b/poky/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
index 2759ef8..b8e1f84 100644
--- a/poky/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
+++ b/poky/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
@@ -34,6 +34,7 @@
 do_install:class-native() {
     mkdir -p ${D}/${datadir}/perl-cross/
     cp -rf ${S}/* ${D}/${datadir}/perl-cross/
+    rm -rf ${D}/${datadir}/perl-cross/patches/
 }
 
 BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/perl/files/0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch b/poky/meta/recipes-devtools/perl/files/0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch
deleted file mode 100644
index 7d5c079..0000000
--- a/poky/meta/recipes-devtools/perl/files/0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 2f74a899474f428a4a5368a94accf801c5f97ae4 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 4 Jun 2018 18:33:50 +0300
-Subject: [PATCH] ExtUtils-MakeMaker: add $(LDFLAGS) when linking binary
- modules
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
-index fe53be1..249c048 100644
---- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
-+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
-@@ -1050,7 +1050,7 @@ sub xs_make_dynamic_lib {
-     }
- 
-     push @m, sprintf <<'MAKE', $ld_run_path_shell, $ldrun, $dlsyms_arg, $ldfrom, $self->xs_obj_opt('$@'), $libs, $exportlist;
--	%s$(LD) %s $(LDDLFLAGS) %s %s $(OTHERLDFLAGS) %s $(MYEXTLIB) \
-+	%s$(LD) %s $(LDDLFLAGS) %s %s $(LDFLAGS) $(OTHERLDFLAGS) %s $(MYEXTLIB) \
- 	  $(PERL_ARCHIVE) %s $(PERL_ARCHIVE_AFTER) %s \
- 	  $(INST_DYNAMIC_FIX)
- 	$(CHMOD) $(PERM_RWX) $@
diff --git a/poky/meta/recipes-devtools/perl/files/5bc1e5fdd87aa205011512cd1e6cc655bcf677fd.patch b/poky/meta/recipes-devtools/perl/files/5bc1e5fdd87aa205011512cd1e6cc655bcf677fd.patch
new file mode 100644
index 0000000..1cb65d9
--- /dev/null
+++ b/poky/meta/recipes-devtools/perl/files/5bc1e5fdd87aa205011512cd1e6cc655bcf677fd.patch
@@ -0,0 +1,31 @@
+From 5bc1e5fdd87aa205011512cd1e6cc655bcf677fd Mon Sep 17 00:00:00 2001
+From: Sergey Poznyakoff <gray@gnu.org>
+Date: Wed, 23 Jun 2021 15:31:42 +0300
+Subject: [PATCH] Fix definition of ITEM_NOT_FOUND for pre-1.13 versions.
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ ext/GDBM_File/GDBM_File.xs | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/ext/GDBM_File/GDBM_File.xs b/ext/GDBM_File/GDBM_File.xs
+index 494c2889ca89..0125b5dcac4d 100644
+--- a/ext/GDBM_File/GDBM_File.xs
++++ b/ext/GDBM_File/GDBM_File.xs
+@@ -145,10 +145,11 @@ output_datum(pTHX_ SV *arg, char *str, int size)
+ #define gdbm_setopt(db,optflag,optval,optlen) not_here("gdbm_setopt")
+ #endif
+ 
+-#if GDBM_VERSION_MAJOR == 1 && GDBM_VERSION_MINOR < 13        
+-/* Prior to 1.13, gdbm_fetch family functions set gdbm_errno to GDBM_NO_ERROR
+-   if the requested key did not exist */
+-# define ITEM_NOT_FOUND()  (gdbm_errno == GDBM_NO_ERROR)
++#if GDBM_VERSION_MAJOR == 1 && GDBM_VERSION_MINOR < 13
++/* Prior to 1.13, only gdbm_fetch set GDBM_ITEM_NOT_FOUND if the requested
++   key did not exist.  Other similar function wouls set GDBM_NO_ERROR instead.
++   The GDBM_ITEM_NOT_FOUND existeds as early as in 1.7.3 */
++# define ITEM_NOT_FOUND()  (gdbm_errno == GDBM_NO_ERROR || gdbm_errno == GDBM_ITEM_NOT_FOUND)
+ #else
+ # define ITEM_NOT_FOUND()  (gdbm_errno == GDBM_ITEM_NOT_FOUND)
+ #endif
diff --git a/poky/meta/recipes-devtools/perl/files/aacd2398e766500cb5d83c4d76b642fcf31d997a.patch b/poky/meta/recipes-devtools/perl/files/aacd2398e766500cb5d83c4d76b642fcf31d997a.patch
new file mode 100644
index 0000000..628903f
--- /dev/null
+++ b/poky/meta/recipes-devtools/perl/files/aacd2398e766500cb5d83c4d76b642fcf31d997a.patch
@@ -0,0 +1,40 @@
+From aacd2398e766500cb5d83c4d76b642fcf31d997a Mon Sep 17 00:00:00 2001
+From: Sergey Poznyakoff <gray@gnu.org>
+Date: Wed, 23 Jun 2021 10:26:50 +0300
+Subject: [PATCH] Fix GDBM_File to compile with version 1.20 and earlier
+
+* ext/GDBM_File/GDBM_File.xs (ITEM_NOT_FOUND): Define conditionally,
+depending on the GDBM_VERSION_MAJOR and GDBM_VERSION_MINOR.
+Don't assume GDBM_ITEM_NOT_FOUND is a define (it isn't since
+gdbm commit d3e27957).
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ ext/GDBM_File/GDBM_File.xs | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/ext/GDBM_File/GDBM_File.xs b/ext/GDBM_File/GDBM_File.xs
+index cd0bb6f26ffa..494c2889ca89 100644
+--- a/ext/GDBM_File/GDBM_File.xs
++++ b/ext/GDBM_File/GDBM_File.xs
+@@ -145,14 +145,13 @@ output_datum(pTHX_ SV *arg, char *str, int size)
+ #define gdbm_setopt(db,optflag,optval,optlen) not_here("gdbm_setopt")
+ #endif
+ 
+-#ifndef GDBM_ITEM_NOT_FOUND
+-# define GDBM_ITEM_NOT_FOUND GDBM_NO_ERROR
+-#endif
+-
++#if GDBM_VERSION_MAJOR == 1 && GDBM_VERSION_MINOR < 13        
+ /* Prior to 1.13, gdbm_fetch family functions set gdbm_errno to GDBM_NO_ERROR
+    if the requested key did not exist */
+-#define ITEM_NOT_FOUND()                                                \
+-    (gdbm_errno == GDBM_ITEM_NOT_FOUND || gdbm_errno == GDBM_NO_ERROR)
++# define ITEM_NOT_FOUND()  (gdbm_errno == GDBM_NO_ERROR)
++#else
++# define ITEM_NOT_FOUND()  (gdbm_errno == GDBM_ITEM_NOT_FOUND)
++#endif
+ 
+ #define CHECKDB(db) do {                        \
+     if (!db->dbp) {                             \
diff --git a/poky/meta/recipes-devtools/perl/files/ea57297a58b8f10ab885c19eec48ea076116cc1f.patch b/poky/meta/recipes-devtools/perl/files/ea57297a58b8f10ab885c19eec48ea076116cc1f.patch
new file mode 100644
index 0000000..3864f1a
--- /dev/null
+++ b/poky/meta/recipes-devtools/perl/files/ea57297a58b8f10ab885c19eec48ea076116cc1f.patch
@@ -0,0 +1,25 @@
+From ea57297a58b8f10ab885c19eec48ea076116cc1f Mon Sep 17 00:00:00 2001
+From: Sergey Poznyakoff <gray@gnu.org>
+Date: Wed, 23 Jun 2021 14:24:47 +0300
+Subject: [PATCH] Raise version number in ext/GDBM_File/GDBM_File.pm
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ ext/GDBM_File/GDBM_File.pm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ext/GDBM_File/GDBM_File.pm b/ext/GDBM_File/GDBM_File.pm
+index d837536f804c..cb08d091b829 100644
+--- a/ext/GDBM_File/GDBM_File.pm
++++ b/ext/GDBM_File/GDBM_File.pm
+@@ -363,7 +363,7 @@ require XSLoader;
+ );
+ 
+ # This module isn't dual life, so no need for dev version numbers.
+-$VERSION = '1.19';
++$VERSION = '1.20';
+ 
+ XSLoader::load();
+ 
diff --git a/poky/meta/recipes-devtools/perl/files/native-perlinc.patch b/poky/meta/recipes-devtools/perl/files/native-perlinc.patch
index a2e1aef..20d7fe6 100644
--- a/poky/meta/recipes-devtools/perl/files/native-perlinc.patch
+++ b/poky/meta/recipes-devtools/perl/files/native-perlinc.patch
@@ -1,4 +1,4 @@
-Upstream-Status:Inappropriate [embedded specific]
+Upstream-Status: Inappropriate [embedded specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 
 Index: perl-5.8.8/lib/ExtUtils/MM_Unix.pm
diff --git a/poky/meta/recipes-devtools/perl/files/perl-dynloader.patch b/poky/meta/recipes-devtools/perl/files/perl-dynloader.patch
index 6bb832a..b49e6e4 100644
--- a/poky/meta/recipes-devtools/perl/files/perl-dynloader.patch
+++ b/poky/meta/recipes-devtools/perl/files/perl-dynloader.patch
@@ -1,4 +1,4 @@
-Upstream-Status:Inappropriate [embedded specific]
+Upstream-Status: Inappropriate [embedded specific]
 
 Allow the location that .so files are searched for for dynamic
 loading to be changed via an environment variable. This is to allow
diff --git a/poky/meta/recipes-devtools/perl/perl_5.34.0.bb b/poky/meta/recipes-devtools/perl/perl_5.34.0.bb
index 89de558..e4bcfe3 100644
--- a/poky/meta/recipes-devtools/perl/perl_5.34.0.bb
+++ b/poky/meta/recipes-devtools/perl/perl_5.34.0.bb
@@ -10,7 +10,6 @@
 
 SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \
            file://perl-rdepends.txt \
-           file://0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch \
            file://0001-Somehow-this-module-breaks-through-the-perl-wrapper-.patch \
            file://errno_ver.diff \
            file://native-perlinc.patch \
@@ -18,6 +17,9 @@
            file://0002-Constant-Fix-up-shebang.patch \
            file://determinism.patch \
            file://CVE-2021-36770.patch \
+           file://aacd2398e766500cb5d83c4d76b642fcf31d997a.patch \
+           file://ea57297a58b8f10ab885c19eec48ea076116cc1f.patch \
+           file://5bc1e5fdd87aa205011512cd1e6cc655bcf677fd.patch \
            "
 SRC_URI:append:class-native = " \
            file://perl-configpm-switch.patch \
@@ -51,11 +53,13 @@
     ./configure --prefix=${prefix} --libdir=${libdir} \
     --target=${TARGET_SYS} \
     -Duseshrplib \
+    -Dusethreads \
     -Dsoname=libperl.so.5 \
     -Dvendorprefix=${prefix} \
     -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \
     -Dlibpth='${libdir} ${base_libdir}' \
     -Dglibpth='${libdir} ${base_libdir}' \
+    -Alddlflags=' ${LDFLAGS}' \
     ${PACKAGECONFIG_CONFARGS}
 
     #perl.c uses an ARCHLIB_EXP define to generate compile-time code that
@@ -77,9 +81,11 @@
     ./configure --prefix=${prefix} \
     --target=${TARGET_SYS} \
     -Duseshrplib \
+    -Dusethreads \
     -Dsoname=libperl.so.5 \
     -Dvendorprefix=${prefix} \
     -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \
+    -Alddlflags=' ${LDFLAGS}' \
     ${PACKAGECONFIG_CONFARGS}
 
     # See the comment above
@@ -90,9 +96,11 @@
     ./configure --prefix=${prefix} \
     -Dbin=${bindir}/perl-native \
     -Duseshrplib \
+    -Dusethreads \
     -Dsoname=libperl.so.5 \
     -Dvendorprefix=${prefix} \
     -Ui_xlocale \
+    -Alddlflags=' ${LDFLAGS}' \
     ${PACKAGECONFIG_CONFARGS}
 }
 
diff --git a/poky/meta/recipes-devtools/pkgconf/pkgconf_1.8.0.bb b/poky/meta/recipes-devtools/pkgconf/pkgconf_1.8.0.bb
index 29cf4a6..887e15e 100644
--- a/poky/meta/recipes-devtools/pkgconf/pkgconf_1.8.0.bb
+++ b/poky/meta/recipes-devtools/pkgconf/pkgconf_1.8.0.bb
@@ -59,7 +59,7 @@
    if [ "${BB_CURRENTTASK}" = "populate_sysroot_setscene" -a "${WITHIN_EXT_SDK}" = "1" ] ; then
        pkgconfdir="${SSTATE_INSTDIR}/recipe-sysroot-native/${bindir_native}"
        mv $pkgconfdir/pkg-config $pkgconfdir/pkg-config.real
-       lnr $pkgconfdir/pkg-config-esdk $pkgconfdir/pkg-config
+       ln -rs $pkgconfdir/pkg-config-esdk $pkgconfdir/pkg-config
        sed -i -e "s|^pkg-config|pkg-config.real|" $pkgconfdir/pkg-config-native
    fi
 }
diff --git a/poky/meta/recipes-devtools/pkgconfig/pkgconfig/fix-glib-configure-libtool-usage.patch b/poky/meta/recipes-devtools/pkgconfig/pkgconfig/fix-glib-configure-libtool-usage.patch
deleted file mode 100644
index 01c6247..0000000
--- a/poky/meta/recipes-devtools/pkgconfig/pkgconfig/fix-glib-configure-libtool-usage.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-
-
-Index: pkg-config-0.28/glib/configure.ac
-===================================================================
---- pkg-config-0.28.orig/glib/configure.ac
-+++ pkg-config-0.28/glib/configure.ac
-@@ -1438,7 +1438,7 @@ if test x"$glib_native_win32" = xyes; th
-   G_MODULE_LDFLAGS=
- else
-   export SED
--  G_MODULE_LDFLAGS=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
-+  G_MODULE_LDFLAGS=`(./${host_alias}-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
- fi
- dnl G_MODULE_IMPL= don't reset, so cmd-line can override
- G_MODULE_NEED_USCORE=0
-@@ -1503,13 +1503,13 @@ if test "$G_MODULE_IMPL" = "G_MODULE_IMP
- 	LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS"
- dnl *** check for OSF1/5.0 RTLD_GLOBAL brokenness
- 	echo "void glib_plugin_test(void) { }" > plugin.c
--	${SHELL} ./libtool --mode=compile --tag=CC ${CC} ${CFLAGS} \
-+	${SHELL} ./${host_alias}-libtool --mode=compile --tag=CC ${CC} ${CFLAGS} \
- 		${CPPFLAGS} -c -o plugin.lo plugin.c >/dev/null 2>&1
--	${SHELL} ./libtool --mode=link --tag=CC ${CC} ${CFLAGS} \
-+	${SHELL} ./${host_alias}-libtool --mode=link --tag=CC ${CC} ${CFLAGS} \
- 		${LDFLAGS} -module -o plugin.la -export-dynamic \
- 		-shrext ".o" -avoid-version plugin.lo \
- 		-rpath /dont/care >/dev/null 2>&1
--	eval `./libtool --config | grep ^objdir`
-+	eval `./${host_alias}-libtool --config | grep ^objdir`
- 	AC_CACHE_CHECK([for RTLD_GLOBAL brokenness],
- 		glib_cv_rtldglobal_broken,[
- 		AC_TRY_RUN([
-@@ -1582,7 +1582,7 @@ fi
- 
- AC_MSG_CHECKING(for the suffix of module shared libraries)
- export SED
--shrext_cmds=`./libtool --config | grep '^shrext_cmds='`
-+shrext_cmds=`./${host_alias}-libtool --config | grep '^shrext_cmds='`
- eval $shrext_cmds
- module=yes eval std_shrext=$shrext_cmds
- # chop the initial dot
diff --git a/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb b/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
index 39b87ec..16efcef 100644
--- a/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
+++ b/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
@@ -14,7 +14,6 @@
 SRC_URI = "git://gitlab.freedesktop.org/pkg-config/pkg-config.git;branch=master;protocol=https \
            file://pkg-config-esdk.in \
            file://pkg-config-native.in \
-           file://fix-glib-configure-libtool-usage.patch \
            file://0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch \
            file://0001-autotools-remove-support-for-the-__int64-type.-See-1.patch \
            file://0001-autotools-use-C99-printf-format-specifiers-on-Window.patch \
@@ -67,7 +66,7 @@
 	if [ "${BB_CURRENTTASK}" = "populate_sysroot_setscene" -a "${WITHIN_EXT_SDK}" = "1" ] ; then
 		pkgconfdir="${SSTATE_INSTDIR}/recipe-sysroot-native/${bindir_native}"
 		mv $pkgconfdir/pkg-config $pkgconfdir/pkg-config.real
-		lnr $pkgconfdir/pkg-config-esdk $pkgconfdir/pkg-config
+		ln -rs $pkgconfdir/pkg-config-esdk $pkgconfdir/pkg-config
 		sed -i -e "s|^pkg-config|pkg-config.real|" $pkgconfdir/pkg-config-native
 	fi
 }
diff --git a/poky/meta/recipes-devtools/python-numpy/files/0001-numpy-core-Define-RISCV-32-support.patch b/poky/meta/recipes-devtools/python-numpy/files/0001-numpy-core-Define-RISCV-32-support.patch
deleted file mode 100644
index b60ca1d..0000000
--- a/poky/meta/recipes-devtools/python-numpy/files/0001-numpy-core-Define-RISCV-32-support.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From dbcf296f84e5cef6a3ff0f1c469a4508f1e0fb15 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 15 Nov 2020 15:32:39 -0800
-Subject: [PATCH] numpy/core: Define RISCV-32 support
-
-Helps compile on riscv32
-
-Upstream-Status: Submitted [https://github.com/numpy/numpy/pull/17780]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- numpy/core/include/numpy/npy_cpu.h    | 9 +++++++--
- numpy/core/include/numpy/npy_endian.h | 1 +
- 2 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/numpy/core/include/numpy/npy_cpu.h b/numpy/core/include/numpy/npy_cpu.h
-index 4dbf9d84e..bc41a7eda 100644
---- a/numpy/core/include/numpy/npy_cpu.h
-+++ b/numpy/core/include/numpy/npy_cpu.h
-@@ -18,6 +18,7 @@
-  *              NPY_CPU_ARCEL
-  *              NPY_CPU_ARCEB
-  *              NPY_CPU_RISCV64
-+ *              NPY_CPU_RISCV32
-  *              NPY_CPU_WASM
-  */
- #ifndef _NPY_CPUARCH_H_
-@@ -100,8 +101,12 @@
-     #define NPY_CPU_ARCEL
- #elif defined(__arc__) && defined(__BIG_ENDIAN__)
-     #define NPY_CPU_ARCEB
--#elif defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64
--    #define NPY_CPU_RISCV64
-+#elif defined(__riscv)
-+    #if __riscv_xlen == 64
-+	#define NPY_CPU_RISCV64
-+    #elif __riscv_xlen == 32
-+	#define NPY_CPU_RISCV32
-+    #endif
- #elif defined(__EMSCRIPTEN__)
-     /* __EMSCRIPTEN__ is defined by emscripten: an LLVM-to-Web compiler */
-     #define NPY_CPU_WASM
-diff --git a/numpy/core/include/numpy/npy_endian.h b/numpy/core/include/numpy/npy_endian.h
-index aa367a002..d59484573 100644
---- a/numpy/core/include/numpy/npy_endian.h
-+++ b/numpy/core/include/numpy/npy_endian.h
-@@ -49,6 +49,7 @@
-             || defined(NPY_CPU_PPC64LE)       \
-             || defined(NPY_CPU_ARCEL)         \
-             || defined(NPY_CPU_RISCV64)       \
-+            || defined(NPY_CPU_RISCV32)       \
-             || defined(NPY_CPU_WASM)
-         #define NPY_BYTE_ORDER NPY_LITTLE_ENDIAN
-     #elif defined(NPY_CPU_PPC)                \
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.21.3.bb b/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.21.3.bb
deleted file mode 100644
index 4a289c2..0000000
--- a/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.21.3.bb
+++ /dev/null
@@ -1,58 +0,0 @@
-SUMMARY = "A sophisticated Numeric Processing Package for Python"
-HOMEPAGE = "https://numpy.org/"
-DESCRIPTION = "NumPy is the fundamental package needed for scientific computing with Python."
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF & Apache-2.0 & MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b076ad374a7d311ba3126a22b2d52596"
-
-SRCNAME = "numpy"
-
-SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/v${PV}/${SRCNAME}-${PV}.tar.gz \
-           file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \
-           file://0001-numpy-core-Define-RISCV-32-support.patch \
-           file://run-ptest \
-"
-SRC_URI[sha256sum] = "d0bba24083c01ae43457514d875f10d9ce4c1125d55b1e2573277b2410f2d068"
-
-UPSTREAM_CHECK_URI = "https://github.com/numpy/numpy/releases"
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
-
-DEPENDS += "python3-cython-native"
-
-inherit ptest setuptools3
-
-S = "${WORKDIR}/numpy-${PV}"
-
-CLEANBROKEN = "1"
-
-FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a ${PYTHON_SITEPACKAGES_DIR}/numpy/random/lib/*.a"
-
-# install what is needed for numpy.test()
-RDEPENDS:${PN} = "${PYTHON_PN}-unittest \
-                  ${PYTHON_PN}-difflib \
-                  ${PYTHON_PN}-pprint \
-                  ${PYTHON_PN}-pickle \
-                  ${PYTHON_PN}-shell \
-                  ${PYTHON_PN}-doctest \
-                  ${PYTHON_PN}-datetime \
-                  ${PYTHON_PN}-distutils \
-                  ${PYTHON_PN}-misc \
-                  ${PYTHON_PN}-mmap \
-                  ${PYTHON_PN}-netclient \
-                  ${PYTHON_PN}-numbers \
-                  ${PYTHON_PN}-pydoc \
-                  ${PYTHON_PN}-pkgutil \
-                  ${PYTHON_PN}-email \
-                  ${PYTHON_PN}-compression \
-                  ${PYTHON_PN}-ctypes \
-                  ${PYTHON_PN}-threading \
-                  ${PYTHON_PN}-multiprocessing \
-"
-RDEPENDS:${PN}-ptest += "${PYTHON_PN}-pytest \
-                         ${PYTHON_PN}-hypothesis \
-                         ${PYTHON_PN}-sortedcontainers \
-                         ${PYTHON_PN}-resource \
-                         ldd \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch
index 46546eb..5e2ee45 100644
--- a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch
+++ b/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch
@@ -1,4 +1,4 @@
-From 58b614411867a31cf5f9684a45fe519b8e4f3e7b Mon Sep 17 00:00:00 2001
+From da88c57fe03e4474ba20325edacf519e80c1d7a8 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
@@ -15,7 +15,7 @@
  1 file changed, 5 insertions(+)
 
 diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
-index 1aed0e8..f491c0a 100644
+index fc848d0..c04a5de 100644
 --- a/setuptools/command/easy_install.py
 +++ b/setuptools/command/easy_install.py
 @@ -642,6 +642,11 @@ class easy_install(Command):
diff --git a/poky/meta/recipes-devtools/python/python-cython.inc b/poky/meta/recipes-devtools/python/python-cython.inc
index 5a8ec2a..278da5e 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] = "cdf04d07c3600860e8c2ebaad4e8f52ac3feb212453c1764a49ac08c827e8443"
+SRC_URI[sha256sum] = "af377d543a762867da11fcf6e558f7a4a535ff8693f30cce123fab10c00fa312"
 UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar"
 
 inherit pypi
diff --git a/poky/meta/recipes-devtools/python/python-gitdb.inc b/poky/meta/recipes-devtools/python/python-gitdb.inc
index 5b24a1f..9482964 100644
--- a/poky/meta/recipes-devtools/python/python-gitdb.inc
+++ b/poky/meta/recipes-devtools/python/python-gitdb.inc
@@ -8,7 +8,7 @@
 
 PYPI_PACKAGE = "gitdb"
 
-SRC_URI[sha256sum] = "96bf5c08b157a666fec41129e6d327235284cca4c81e92109260f353ba138005"
+SRC_URI[sha256sum] = "bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa"
 
 DEPENDS = "${PYTHON_PN}-async ${PYTHON_PN}-setuptools-native ${PYTHON_PN}-smmap"
 
diff --git a/poky/meta/recipes-devtools/python/python-pycryptodome.inc b/poky/meta/recipes-devtools/python/python-pycryptodome.inc
index 3f4c6e9..071af55 100644
--- a/poky/meta/recipes-devtools/python/python-pycryptodome.inc
+++ b/poky/meta/recipes-devtools/python/python-pycryptodome.inc
@@ -3,10 +3,12 @@
  cryptographic primitives."
 HOMEPAGE = "http://www.pycryptodome.org"
 LICENSE = "PD & BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=accfa6aeaceb3ba96676edf18e78302c"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=29242a70410a4eeff488a28164e7ab93"
 
 inherit pypi
 
+PYPI_PACKAGE_EXT = "zip"
+
 RDEPENDS:${PN} += " \
     ${PYTHON_PN}-io \
     ${PYTHON_PN}-math \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch b/poky/meta/recipes-devtools/python/python-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch
rename to poky/meta/recipes-devtools/python/python-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch
diff --git a/poky/meta/recipes-devtools/python/python3-attrs_21.2.0.bb b/poky/meta/recipes-devtools/python/python3-attrs_21.2.0.bb
deleted file mode 100644
index d52237f..0000000
--- a/poky/meta/recipes-devtools/python/python3-attrs_21.2.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Classes Without Boilerplate"
-HOMEPAGE = "http://www.attrs.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff"
-
-SRC_URI[sha256sum] = "ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN}:class-target += " \
-    ${PYTHON_PN}-crypt \
-    ${PYTHON_PN}-ctypes \
-"
-RDEPENDS:${PN}:class-nativesdk += " \
-    ${PYTHON_PN}-crypt \
-    ${PYTHON_PN}-ctypes \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-attrs_21.4.0.bb b/poky/meta/recipes-devtools/python/python3-attrs_21.4.0.bb
new file mode 100644
index 0000000..d1dde29
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-attrs_21.4.0.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Classes Without Boilerplate"
+HOMEPAGE = "http://www.attrs.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff"
+
+SRC_URI[sha256sum] = "626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN}:class-target += " \
+    ${PYTHON_PN}-crypt \
+    ${PYTHON_PN}-ctypes \
+"
+RDEPENDS:${PN}:class-nativesdk += " \
+    ${PYTHON_PN}-crypt \
+    ${PYTHON_PN}-ctypes \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.24.bb b/poky/meta/recipes-devtools/python/python3-cython_0.29.24.bb
deleted file mode 100644
index b1d21bd..0000000
--- a/poky/meta/recipes-devtools/python/python3-cython_0.29.24.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-inherit setuptools3
-require python-cython.inc
-
-RDEPENDS:${PN} += "\
-    python3-setuptools \
-"
-
-# running build_ext a second time during install fails, because Python
-# would then attempt to import cythonized modules built for the target
-# architecture.
-DISTUTILS_INSTALL_ARGS += "--skip-build"
-
-do_install:append() {
-    # rename scripts that would conflict with the Python 2 build of Cython
-    mv ${D}${bindir}/cython ${D}${bindir}/cython3
-    mv ${D}${bindir}/cythonize ${D}${bindir}/cythonize3
-    mv ${D}${bindir}/cygdb ${D}${bindir}/cygdb3
-}
-
-PACKAGEBUILDPKGD += "cython_fix_sources"
-
-cython_fix_sources () {
-	for f in ${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Compiler/FlowControl.c \
-		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Compiler/FusedNode.c \
-		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Compiler/Scanning.c \
-		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Compiler/Visitor.c \
-		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Plex/Actions.c \
-		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Plex/Scanners.c \
-		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Runtime/refnanny.c \
-		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Tempita/_tempita.c \
-		${PKGD}${libdir}/${PYTHON_DIR}/site-packages/Cython*/SOURCES.txt; do
-		if [ -e $f ]; then
-			sed -i -e 's#${WORKDIR}#/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}#g' $f
-		fi
-	done
-}
-
diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.26.bb b/poky/meta/recipes-devtools/python/python3-cython_0.29.26.bb
new file mode 100644
index 0000000..26333cb
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-cython_0.29.26.bb
@@ -0,0 +1,37 @@
+inherit setuptools3
+require python-cython.inc
+
+RDEPENDS:${PN} += "\
+    python3-setuptools \
+"
+
+# running build_ext a second time during install fails, because Python
+# would then attempt to import cythonized modules built for the target
+# architecture.
+SETUPTOOLS_INSTALL_ARGS += "--skip-build"
+
+do_install:append() {
+    # rename scripts that would conflict with the Python 2 build of Cython
+    mv ${D}${bindir}/cython ${D}${bindir}/cython3
+    mv ${D}${bindir}/cythonize ${D}${bindir}/cythonize3
+    mv ${D}${bindir}/cygdb ${D}${bindir}/cygdb3
+}
+
+PACKAGEBUILDPKGD += "cython_fix_sources"
+
+cython_fix_sources () {
+	for f in ${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Compiler/FlowControl.c \
+		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Compiler/FusedNode.c \
+		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Compiler/Scanning.c \
+		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Compiler/Visitor.c \
+		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Plex/Actions.c \
+		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Plex/Scanners.c \
+		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Runtime/refnanny.c \
+		${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Tempita/_tempita.c \
+		${PKGD}${libdir}/${PYTHON_DIR}/site-packages/Cython*/SOURCES.txt; do
+		if [ -e $f ]; then
+			sed -i -e 's#${WORKDIR}#/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}#g' $f
+		fi
+	done
+}
+
diff --git a/poky/meta/recipes-devtools/python/python3-dbus_1.2.18.bb b/poky/meta/recipes-devtools/python/python3-dbus_1.2.18.bb
index 9592fbf..c4687de 100644
--- a/poky/meta/recipes-devtools/python/python3-dbus_1.2.18.bb
+++ b/poky/meta/recipes-devtools/python/python3-dbus_1.2.18.bb
@@ -11,7 +11,7 @@
 
 S = "${WORKDIR}/dbus-python-${PV}"
 
-inherit distutils3-base autotools pkgconfig
+inherit setuptools3-base autotools pkgconfig
 
 # documentation needs python3-sphinx, which is not in oe-core or meta-python for now
 # change to use PACKAGECONFIG when python3-sphinx is added to oe-core
diff --git a/poky/meta/recipes-devtools/python/python3-dbusmock_0.24.0.bb b/poky/meta/recipes-devtools/python/python3-dbusmock_0.24.0.bb
deleted file mode 100644
index 271a2b1..0000000
--- a/poky/meta/recipes-devtools/python/python3-dbusmock_0.24.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "With this program/Python library you can easily create mock objects on D-Bus"
-HOMEPAGE = "https://pypi.org/project/python-dbusmock/"
-
-LICENSE = "GPL-3.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
-
-SRC_URI[sha256sum] = "0be0d51dba4aee050bb2cd9074a377bf9308306df1eb7918038c6ffe7153c272"
-
-PYPI_PACKAGE = "python-dbusmock"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-dbus \
-    ${PYTHON_PN}-pygobject \
-    ${PYTHON_PN}-unittest \
-    ${PYTHON_PN}-xml \
-    "
diff --git a/poky/meta/recipes-devtools/python/python3-dbusmock_0.25.0.bb b/poky/meta/recipes-devtools/python/python3-dbusmock_0.25.0.bb
new file mode 100644
index 0000000..e64e343
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-dbusmock_0.25.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "With this program/Python library you can easily create mock objects on D-Bus"
+HOMEPAGE = "https://pypi.org/project/python-dbusmock/"
+
+LICENSE = "GPL-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+SRC_URI[sha256sum] = "6f4ce7650ecbb022684dc158df720e199635f3a3df75f7020f4fe8f6ff0394db"
+
+PYPI_PACKAGE = "python-dbusmock"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-dbus \
+    ${PYTHON_PN}-pygobject \
+    ${PYTHON_PN}-unittest \
+    ${PYTHON_PN}-xml \
+    "
diff --git a/poky/meta/recipes-devtools/python/python3-docutils_0.17.1.bb b/poky/meta/recipes-devtools/python/python3-docutils_0.17.1.bb
deleted file mode 100644
index 54a8098..0000000
--- a/poky/meta/recipes-devtools/python/python3-docutils_0.17.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Docutils is a modular system for processing documentation into useful formats"
-HOMEPAGE = "http://docutils.sourceforge.net"
-SECTION = "devel/python"
-LICENSE = "PSF & BSD-2-Clause & GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=836a1950177996968a49ff477a4a61c4"
-
-SRC_URI[sha256sum] = "686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/python/python3-docutils_0.18.1.bb b/poky/meta/recipes-devtools/python/python3-docutils_0.18.1.bb
new file mode 100644
index 0000000..e0fbb2c
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-docutils_0.18.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Docutils is a modular system for processing documentation into useful formats"
+HOMEPAGE = "http://docutils.sourceforge.net"
+SECTION = "devel/python"
+LICENSE = "PSF & BSD-2-Clause & GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fecee07ad8df9116e1f739e2ed2ea513"
+
+SRC_URI[sha256sum] = "679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/python/python3-dtschema_2021.12.bb b/poky/meta/recipes-devtools/python/python3-dtschema_2021.12.bb
new file mode 100644
index 0000000..34d0bf6
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-dtschema_2021.12.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "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"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "dtschema"
+
+SRC_URI[sha256sum] = "f68af77fbce1ae00015c1fd2809fd20db8b72a27105c26a20e1ac0203aee1739"
+
+DEPENDS += "python3-setuptools-scm-native"
+RDEPENDS:${PN} += "python3-ruamel-yaml python3-jsonschema python3-rfc3987"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-git_3.1.24.bb b/poky/meta/recipes-devtools/python/python3-git_3.1.24.bb
deleted file mode 100644
index 445c7b0..0000000
--- a/poky/meta/recipes-devtools/python/python3-git_3.1.24.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Python library used to interact with Git repositories"
-DESCRIPTION = "GitPython provides object model read and write access to \
-a git repository. Access repository information conveniently, alter the \
-index directly, handle remotes, or go down to low-level object database \
-access with big-files support."
-HOMEPAGE = "http://github.com/gitpython-developers/GitPython"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8b8d26c37c1d5a04f9b0186edbebc183"
-
-PYPI_PACKAGE = "GitPython"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "df83fdf5e684fef7c6ee2c02fc68a5ceb7e7e759d08b694088d0cacb4eba59e5"
-
-DEPENDS += " ${PYTHON_PN}-gitdb"
-
-RDEPENDS:${PN} += " \
-                   ${PYTHON_PN}-datetime \
-                   ${PYTHON_PN}-gitdb \
-                   ${PYTHON_PN}-io \
-                   ${PYTHON_PN}-logging \
-                   ${PYTHON_PN}-math \
-                   ${PYTHON_PN}-netclient \
-                   ${PYTHON_PN}-stringold \
-                   ${PYTHON_PN}-unittest \
-                   ${PYTHON_PN}-unixadmin \
-                   git \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-git_3.1.26.bb b/poky/meta/recipes-devtools/python/python3-git_3.1.26.bb
new file mode 100644
index 0000000..b6171a0
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-git_3.1.26.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Python library used to interact with Git repositories"
+DESCRIPTION = "GitPython provides object model read and write access to \
+a git repository. Access repository information conveniently, alter the \
+index directly, handle remotes, or go down to low-level object database \
+access with big-files support."
+HOMEPAGE = "http://github.com/gitpython-developers/GitPython"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8b8d26c37c1d5a04f9b0186edbebc183"
+
+PYPI_PACKAGE = "GitPython"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "fc8868f63a2e6d268fb25f481995ba185a85a66fcad126f039323ff6635669ee"
+
+DEPENDS += " ${PYTHON_PN}-gitdb"
+
+RDEPENDS:${PN} += " \
+                   ${PYTHON_PN}-datetime \
+                   ${PYTHON_PN}-gitdb \
+                   ${PYTHON_PN}-io \
+                   ${PYTHON_PN}-logging \
+                   ${PYTHON_PN}-math \
+                   ${PYTHON_PN}-netclient \
+                   ${PYTHON_PN}-stringold \
+                   ${PYTHON_PN}-unittest \
+                   ${PYTHON_PN}-unixadmin \
+                   git \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-gitdb_4.0.7.bb b/poky/meta/recipes-devtools/python/python3-gitdb_4.0.7.bb
deleted file mode 100644
index 988d67b..0000000
--- a/poky/meta/recipes-devtools/python/python3-gitdb_4.0.7.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools3
-require python-gitdb.inc
-
-SRC_URI[md5sum] = "3f52187435ab0b6e64a15782ffaf29ab"
diff --git a/poky/meta/recipes-devtools/python/python3-gitdb_4.0.9.bb b/poky/meta/recipes-devtools/python/python3-gitdb_4.0.9.bb
new file mode 100644
index 0000000..2dcd9c8
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-gitdb_4.0.9.bb
@@ -0,0 +1,3 @@
+inherit setuptools3
+require python-gitdb.inc
+
diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.24.0.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.24.0.bb
deleted file mode 100644
index 50f7e01..0000000
--- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.24.0.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "A library for property-based testing"
-HOMEPAGE = "https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-python"
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4ee62c16ebd0f4f99d906f36b7de8c3c"
-
-PYPI_PACKAGE = "hypothesis"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
-    file://run-ptest \
-    file://test_binary_search.py \
-    file://test_rle.py \
-    "
-
-SRC_URI[sha256sum] = "ef53bd1c4756436be2e8d4a2e16f6f5ffbca7acbe8041e6872aea16176ff3806"
-
-RDEPENDS:${PN} += " \
-    python3-attrs \
-    python3-compression \
-    python3-core \
-    python3-json \
-    python3-sortedcontainers \
-    python3-statistics \
-    python3-unittest \
-    "
-
-RDEPENDS:${PN}-ptest += " \
-    ${PYTHON_PN}-pytest \
-    "
-
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/examples
-    install -m 0755 ${WORKDIR}/test_binary_search.py ${D}${PTEST_PATH}/examples/
-    install -m 0755 ${WORKDIR}/test_rle.py ${D}${PTEST_PATH}/examples/
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.35.0.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.35.0.bb
new file mode 100644
index 0000000..246ff84
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.35.0.bb
@@ -0,0 +1,38 @@
+SUMMARY = "A library for property-based testing"
+HOMEPAGE = "https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-python"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4ee62c16ebd0f4f99d906f36b7de8c3c"
+
+PYPI_PACKAGE = "hypothesis"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+    file://run-ptest \
+    file://test_binary_search.py \
+    file://test_rle.py \
+    "
+
+SRC_URI[sha256sum] = "ce3961fff61e7353d022608788cbc9876c293d2468749eeba27511adc9565131"
+
+RDEPENDS:${PN} += " \
+    python3-attrs \
+    python3-compression \
+    python3-core \
+    python3-json \
+    python3-sortedcontainers \
+    python3-statistics \
+    python3-unittest \
+    "
+
+RDEPENDS:${PN}-ptest += " \
+    ${PYTHON_PN}-pytest \
+    "
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/examples
+    install -m 0755 ${WORKDIR}/test_binary_search.py ${D}${PTEST_PATH}/examples/
+    install -m 0755 ${WORKDIR}/test_rle.py ${D}${PTEST_PATH}/examples/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-idna_3.3.bb b/poky/meta/recipes-devtools/python/python3-idna_3.3.bb
new file mode 100644
index 0000000..ee92f44
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-idna_3.3.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Internationalised Domain Names in Applications"
+HOMEPAGE = "https://github.com/kjd/idna"
+LICENSE = "BSD-3-Clause & Python-2.0 & Unicode-TOU"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=239668a7c6066d9e0c5382e9c8c6c0e1"
+
+SRC_URI[sha256sum] = "9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
+
+inherit pypi setuptools3
+
+# Remove bundled egg-info
+do_compile:prepend() {
+    rm -rf ${S}/idna.egg-info
+}
+
+RDEPENDS:${PN}:class-target = "\
+    ${PYTHON_PN}-codecs \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.10.0.bb b/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.10.0.bb
new file mode 100644
index 0000000..ea19afc
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.10.0.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Read metadata from Python packages"
+HOMEPAGE = "https://pypi.org/project/importlib-metadata/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e88ae122f3925d8bde8319060f2ddb8e"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "importlib_metadata"
+UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P<pver>(\d+[\.\-_]*)+)/"
+
+SRC_URI[sha256sum] = "92a8b58ce734b2a4494878e0ecf7d79ccd7a128b5fc6014c401e0b61f006f0f6"
+
+S = "${WORKDIR}/importlib_metadata-${PV}"
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-toml-native"
+RDEPENDS:${PN} += "${PYTHON_PN}-zipp ${PYTHON_PN}-pathlib2"
+RDEPENDS:${PN}:append:class-target = " python3-misc"
+RDEPENDS:${PN}:append:class-nativesdk = " python3-misc"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.8.1.bb b/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.8.1.bb
deleted file mode 100644
index 3f75668..0000000
--- a/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.8.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "Read metadata from Python packages"
-HOMEPAGE = "https://pypi.org/project/importlib-metadata/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e88ae122f3925d8bde8319060f2ddb8e"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "importlib_metadata"
-UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P<pver>(\d+[\.\-_]*)+)/"
-
-SRC_URI[sha256sum] = "f284b3e11256ad1e5d03ab86bb2ccd6f5339688ff17a4d797a0fe7df326f23b1"
-
-S = "${WORKDIR}/importlib_metadata-${PV}"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-toml-native"
-RDEPENDS:${PN} += "${PYTHON_PN}-zipp ${PYTHON_PN}-pathlib2"
-RDEPENDS:${PN}:append:class-target = " python3-misc"
-RDEPENDS:${PN}:append:class-nativesdk = " python3-misc"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-jinja2_3.0.2.bb b/poky/meta/recipes-devtools/python/python3-jinja2_3.0.2.bb
deleted file mode 100644
index 139fe66..0000000
--- a/poky/meta/recipes-devtools/python/python3-jinja2_3.0.2.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-DESCRIPTION = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python."
-HOMEPAGE = "https://pypi.org/project/Jinja/"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462"
-
-SRC_URI[sha256sum] = "827a0e32839ab1600d4eb1c4c33ec5a8edfbc5cb42dafa13b81f182f97784b45"
-
-PYPI_PACKAGE = "Jinja2"
-
-CVE_PRODUCT = "jinja2 jinja"
-
-CLEANBROKEN = "1"
-
-inherit pypi setuptools3
-inherit ${@bb.utils.filter('DISTRO_FEATURES', 'ptest', d)}
-
-SRC_URI += " \
-	file://run-ptest \
-"
-
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
-    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN}-ptest += " \
-	${PYTHON_PN}-pytest \
-        ${PYTHON_PN}-toml \
-	${PYTHON_PN}-unixadmin \
-"
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-asyncio \
-    ${PYTHON_PN}-crypt \
-    ${PYTHON_PN}-io \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-markupsafe \
-    ${PYTHON_PN}-math \
-    ${PYTHON_PN}-netclient \
-    ${PYTHON_PN}-numbers\
-    ${PYTHON_PN}-pickle \
-    ${PYTHON_PN}-pprint \
-    ${PYTHON_PN}-shell \
-    ${PYTHON_PN}-threading \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-jinja2_3.0.3.bb b/poky/meta/recipes-devtools/python/python3-jinja2_3.0.3.bb
new file mode 100644
index 0000000..c416acb
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-jinja2_3.0.3.bb
@@ -0,0 +1,48 @@
+DESCRIPTION = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python."
+HOMEPAGE = "https://pypi.org/project/Jinja/"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462"
+
+SRC_URI[sha256sum] = "611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"
+
+PYPI_PACKAGE = "Jinja2"
+
+CVE_PRODUCT = "jinja2 jinja"
+
+CLEANBROKEN = "1"
+
+inherit pypi setuptools3
+inherit ${@bb.utils.filter('DISTRO_FEATURES', 'ptest', d)}
+
+SRC_URI += " \
+	file://run-ptest \
+"
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests
+    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN}-ptest += " \
+	${PYTHON_PN}-pytest \
+        ${PYTHON_PN}-toml \
+	${PYTHON_PN}-unixadmin \
+"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-asyncio \
+    ${PYTHON_PN}-crypt \
+    ${PYTHON_PN}-io \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-markupsafe \
+    ${PYTHON_PN}-math \
+    ${PYTHON_PN}-netclient \
+    ${PYTHON_PN}-numbers\
+    ${PYTHON_PN}-pickle \
+    ${PYTHON_PN}-pprint \
+    ${PYTHON_PN}-shell \
+    ${PYTHON_PN}-threading \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpointer/run-ptest b/poky/meta/recipes-devtools/python/python3-jsonpointer/run-ptest
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpointer/run-ptest
rename to poky/meta/recipes-devtools/python/python3-jsonpointer/run-ptest
diff --git a/poky/meta/recipes-devtools/python/python3-jsonpointer_2.2.bb b/poky/meta/recipes-devtools/python/python3-jsonpointer_2.2.bb
new file mode 100644
index 0000000..225fde7
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-jsonpointer_2.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Resolve JSON Pointers in Python"
+HOMEPAGE = "https://github.com/stefankoegl/python-json-pointer"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=32b15c843b7a329130f4e266a281ebb3"
+
+inherit pypi ptest setuptools3
+
+SRC_URI[sha256sum] = "f09f8deecaaa5aea65b5eb4f67ca4e54e1a61f7a11c75085e360fe6feb6a48bf"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-json \
+"
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+	file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+	${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+	cp -f ${S}/tests.py ${D}${PTEST_PATH}/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonschema_3.2.0.bb b/poky/meta/recipes-devtools/python/python3-jsonschema_3.2.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-jsonschema_3.2.0.bb
rename to poky/meta/recipes-devtools/python/python3-jsonschema_3.2.0.bb
diff --git a/poky/meta/recipes-devtools/python/python3-libarchive-c_3.1.bb b/poky/meta/recipes-devtools/python/python3-libarchive-c_3.1.bb
deleted file mode 100644
index ac8466e..0000000
--- a/poky/meta/recipes-devtools/python/python3-libarchive-c_3.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Python interface to libarchive"
-DESCRIPTION = "A Python interface to libarchive. It uses the standard ctypes module to \
-    dynamically load and access the C library."
-HOMEPAGE = "https://github.com/Changaco/python-libarchive-c"
-LICENSE = "CC0-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=bcab380227a83bc147350b40a81e6ffc"
-
-PYPI_PACKAGE = "libarchive-c"
-
-inherit pypi setuptools3
-
-SRC_URI[md5sum] = "8c62da42a8b9bd24642e5430427e6f5a"
-SRC_URI[sha256sum] = "618a7ecfbfb58ca15e11e3138d4a636498da3b6bc212811af158298530fbb87e"
-
-RDEPENDS:${PN} += "\
-  libarchive \
-  ${PYTHON_PN}-ctypes \
-  ${PYTHON_PN}-mmap \
-  ${PYTHON_PN}-logging \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/python/python3-libarchive-c_3.2.bb b/poky/meta/recipes-devtools/python/python3-libarchive-c_3.2.bb
new file mode 100644
index 0000000..cc04210
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-libarchive-c_3.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Python interface to libarchive"
+DESCRIPTION = "A Python interface to libarchive. It uses the standard ctypes module to \
+    dynamically load and access the C library."
+HOMEPAGE = "https://github.com/Changaco/python-libarchive-c"
+LICENSE = "CC0-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=bcab380227a83bc147350b40a81e6ffc"
+
+PYPI_PACKAGE = "libarchive-c"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "21ad493f4628972fc82440bff54c834a9fbe13be3893037a4bad332b9ee741e5"
+
+RDEPENDS:${PN} += "\
+  libarchive \
+  ${PYTHON_PN}-ctypes \
+  ${PYTHON_PN}-mmap \
+  ${PYTHON_PN}-logging \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/python/python3-mako_1.1.5.bb b/poky/meta/recipes-devtools/python/python3-mako_1.1.5.bb
deleted file mode 100644
index f8be44a..0000000
--- a/poky/meta/recipes-devtools/python/python3-mako_1.1.5.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Templating library for Python"
-HOMEPAGE = "http://www.makotemplates.org/"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=943eb67718222db21d44a4ef1836675f"
-
-PYPI_PACKAGE = "Mako"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "169fa52af22a91900d852e937400e79f535496191c63712e3b9fda5a9bed6fc3"
-
-RDEPENDS:${PN} = "${PYTHON_PN}-html \
-                  ${PYTHON_PN}-netclient \
-                  ${PYTHON_PN}-threading \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-mako_1.1.6.bb b/poky/meta/recipes-devtools/python/python3-mako_1.1.6.bb
new file mode 100644
index 0000000..ec8c9cc
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-mako_1.1.6.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Templating library for Python"
+HOMEPAGE = "http://www.makotemplates.org/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=943eb67718222db21d44a4ef1836675f"
+
+PYPI_PACKAGE = "Mako"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "4e9e345a41924a954251b95b4b28e14a301145b544901332e658907a7464b6b2"
+
+RDEPENDS:${PN} = "${PYTHON_PN}-html \
+                  ${PYTHON_PN}-netclient \
+                  ${PYTHON_PN}-threading \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-markdown_3.3.4.bb b/poky/meta/recipes-devtools/python/python3-markdown_3.3.4.bb
deleted file mode 100644
index ec1d139..0000000
--- a/poky/meta/recipes-devtools/python/python3-markdown_3.3.4.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "A Python implementation of John Gruber's Markdown."
-HOMEPAGE = "https://python-markdown.github.io/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=745aaad0c69c60039e638bff9ffc59ed"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "Markdown"
-SRC_URI[sha256sum] = "31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49"
-
-BBCLASSEXTEND = "native"
-
-RDEPENDS:${PN} += "${PYTHON_PN}-logging ${PYTHON_PN}-setuptools"
diff --git a/poky/meta/recipes-devtools/python/python3-markdown_3.3.6.bb b/poky/meta/recipes-devtools/python/python3-markdown_3.3.6.bb
new file mode 100644
index 0000000..7b64da6
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-markdown_3.3.6.bb
@@ -0,0 +1,13 @@
+SUMMARY = "A Python implementation of John Gruber's Markdown."
+HOMEPAGE = "https://python-markdown.github.io/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=745aaad0c69c60039e638bff9ffc59ed"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "Markdown"
+SRC_URI[sha256sum] = "76df8ae32294ec39dcf89340382882dfa12975f87f45c3ed1ecdb1e8cefc7006"
+
+BBCLASSEXTEND = "native"
+
+RDEPENDS:${PN} += "${PYTHON_PN}-logging ${PYTHON_PN}-setuptools"
diff --git a/poky/meta/recipes-devtools/python/python3-more-itertools_8.10.0.bb b/poky/meta/recipes-devtools/python/python3-more-itertools_8.10.0.bb
deleted file mode 100644
index 93d3ad6..0000000
--- a/poky/meta/recipes-devtools/python/python3-more-itertools_8.10.0.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "More routines for operating on iterables, beyond itertools"
-HOMEPAGE = "https://github.com/erikrose/more-itertools"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5"
-
-SRC_URI[sha256sum] = "1debcabeb1df793814859d64a81ad7cb10504c24349368ccf214c664c474f41f"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
-	file://run-ptest \
-"
-
-RDEPENDS:${PN} += " \
-        ${PYTHON_PN}-asyncio \
-        "
-
-RDEPENDS:${PN}-ptest += " \
-	${PYTHON_PN}-pytest \
-        "
-
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/tests
-	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-more-itertools_8.12.0.bb b/poky/meta/recipes-devtools/python/python3-more-itertools_8.12.0.bb
new file mode 100644
index 0000000..c1e34b2
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-more-itertools_8.12.0.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "More routines for operating on iterables, beyond itertools"
+HOMEPAGE = "https://github.com/erikrose/more-itertools"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5"
+
+SRC_URI[sha256sum] = "7dc6ad46f05f545f900dd59e8dfb4e84a4827b97b3cfecb175ea0c7d247f6064"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+	file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+        ${PYTHON_PN}-asyncio \
+        "
+
+RDEPENDS:${PN}-ptest += " \
+	${PYTHON_PN}-pytest \
+        "
+
+do_install_ptest() {
+	install -d ${D}${PTEST_PATH}/tests
+	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch b/poky/meta/recipes-devtools/python/python3-numpy/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch
similarity index 100%
rename from poky/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch
rename to poky/meta/recipes-devtools/python/python3-numpy/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch
diff --git a/poky/meta/recipes-devtools/python/python3-numpy/0001-numpy-core-Define-RISCV-32-support.patch b/poky/meta/recipes-devtools/python/python3-numpy/0001-numpy-core-Define-RISCV-32-support.patch
new file mode 100644
index 0000000..676bdbb
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-numpy/0001-numpy-core-Define-RISCV-32-support.patch
@@ -0,0 +1,50 @@
+From eb6d6579150bf4684603ce377c51e90ad3bb8109 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 15 Nov 2020 15:32:39 -0800
+Subject: [PATCH] numpy/core: Define RISCV-32 support
+
+Helps compile on riscv32
+
+Upstream-Status: Submitted [https://github.com/numpy/numpy/pull/17780]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ numpy/core/include/numpy/npy_cpu.h    | 3 +++
+ numpy/core/include/numpy/npy_endian.h | 1 +
+ 2 files changed, 4 insertions(+)
+
+diff --git a/numpy/core/include/numpy/npy_cpu.h b/numpy/core/include/numpy/npy_cpu.h
+index 78d229e..04be511 100644
+--- a/numpy/core/include/numpy/npy_cpu.h
++++ b/numpy/core/include/numpy/npy_cpu.h
+@@ -19,6 +19,7 @@
+  *              NPY_CPU_ARCEB
+  *              NPY_CPU_RISCV64
+  *              NPY_CPU_LOONGARCH
++ *              NPY_CPU_RISCV32
+  *              NPY_CPU_WASM
+  */
+ #ifndef NUMPY_CORE_INCLUDE_NUMPY_NPY_CPU_H_
+@@ -104,6 +105,8 @@
+     #define NPY_CPU_ARCEB
+ #elif defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64
+     #define NPY_CPU_RISCV64
++#elif defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 32
++    #define NPY_CPU_RISCV32
+ #elif defined(__loongarch__)
+     #define NPY_CPU_LOONGARCH
+ #elif defined(__EMSCRIPTEN__)
+diff --git a/numpy/core/include/numpy/npy_endian.h b/numpy/core/include/numpy/npy_endian.h
+index 5e58a7f..0926212 100644
+--- a/numpy/core/include/numpy/npy_endian.h
++++ b/numpy/core/include/numpy/npy_endian.h
+@@ -49,6 +49,7 @@
+             || defined(NPY_CPU_PPC64LE)       \
+             || defined(NPY_CPU_ARCEL)         \
+             || defined(NPY_CPU_RISCV64)       \
++            || defined(NPY_CPU_RISCV32)       \
+             || defined(NPY_CPU_LOONGARCH)     \
+             || defined(NPY_CPU_WASM)
+         #define NPY_BYTE_ORDER NPY_LITTLE_ENDIAN
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/python/python3-numpy/0001-numpy-core-setup.py-disable-svml-for-now.patch b/poky/meta/recipes-devtools/python/python3-numpy/0001-numpy-core-setup.py-disable-svml-for-now.patch
new file mode 100644
index 0000000..66e3221
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-numpy/0001-numpy-core-setup.py-disable-svml-for-now.patch
@@ -0,0 +1,29 @@
+From 0f0601e79f9ce7614d157284523e6cd8af2259d5 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 5 Jan 2022 12:12:47 +0100
+Subject: [PATCH] numpy/core/setup.py: disable svml for now
+
+The check really doesn't work in cross compiling,
+as it is using host python to see what arch we're
+building on. Issue reported upstream:
+https://github.com/numpy/numpy/issues/20736
+
+Upstream-Status: Inappropriate [needs upstream fix]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ numpy/core/setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/numpy/core/setup.py b/numpy/core/setup.py
+index a5f423d..945f2dd 100644
+--- a/numpy/core/setup.py
++++ b/numpy/core/setup.py
+@@ -70,7 +70,7 @@ def can_link_svml():
+     """
+     machine = platform.machine()
+     system = platform.system()
+-    return "x86_64" in machine and system == "Linux"
++    return False
+ 
+ def check_svml_submodule(svmlpath):
+     if not os.path.exists(svmlpath + "/README.md"):
diff --git a/poky/meta/recipes-devtools/python-numpy/files/run-ptest b/poky/meta/recipes-devtools/python/python3-numpy/run-ptest
similarity index 100%
rename from poky/meta/recipes-devtools/python-numpy/files/run-ptest
rename to poky/meta/recipes-devtools/python/python3-numpy/run-ptest
diff --git a/poky/meta/recipes-devtools/python/python3-numpy_1.22.1.bb b/poky/meta/recipes-devtools/python/python3-numpy_1.22.1.bb
new file mode 100644
index 0000000..b79ce61
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-numpy_1.22.1.bb
@@ -0,0 +1,60 @@
+SUMMARY = "A sophisticated Numeric Processing Package for Python"
+HOMEPAGE = "https://numpy.org/"
+DESCRIPTION = "NumPy is the fundamental package needed for scientific computing with Python."
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF & Apache-2.0 & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8026691468924fb6ec155dadfe2a1a7f"
+
+SRCNAME = "numpy"
+
+SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/v${PV}/${SRCNAME}-${PV}.tar.gz \
+           file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \
+           file://0001-numpy-core-Define-RISCV-32-support.patch \
+           file://run-ptest \
+           file://0001-numpy-core-setup.py-disable-svml-for-now.patch \
+           "
+SRC_URI[sha256sum] = "dd1968402ae20dfd59b34acd799b494be340c774f6295e9bf1c2b9842a5e416d"
+
+UPSTREAM_CHECK_URI = "https://github.com/numpy/numpy/releases"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
+
+DEPENDS += "python3-cython-native"
+
+inherit ptest setuptools3
+
+S = "${WORKDIR}/numpy-${PV}"
+
+CLEANBROKEN = "1"
+
+FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a ${PYTHON_SITEPACKAGES_DIR}/numpy/random/lib/*.a"
+
+# install what is needed for numpy.test()
+RDEPENDS:${PN} = "${PYTHON_PN}-unittest \
+                  ${PYTHON_PN}-difflib \
+                  ${PYTHON_PN}-pprint \
+                  ${PYTHON_PN}-pickle \
+                  ${PYTHON_PN}-shell \
+                  ${PYTHON_PN}-doctest \
+                  ${PYTHON_PN}-datetime \
+                  ${PYTHON_PN}-distutils \
+                  ${PYTHON_PN}-misc \
+                  ${PYTHON_PN}-mmap \
+                  ${PYTHON_PN}-netclient \
+                  ${PYTHON_PN}-numbers \
+                  ${PYTHON_PN}-pydoc \
+                  ${PYTHON_PN}-pkgutil \
+                  ${PYTHON_PN}-email \
+                  ${PYTHON_PN}-compression \
+                  ${PYTHON_PN}-ctypes \
+                  ${PYTHON_PN}-threading \
+                  ${PYTHON_PN}-multiprocessing \
+                  ${PYTHON_PN}-json \
+"
+RDEPENDS:${PN}-ptest += "${PYTHON_PN}-pytest \
+                         ${PYTHON_PN}-hypothesis \
+                         ${PYTHON_PN}-sortedcontainers \
+                         ${PYTHON_PN}-resource \
+                         ldd \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-packaging_21.0.bb b/poky/meta/recipes-devtools/python/python3-packaging_21.0.bb
deleted file mode 100644
index f20f888..0000000
--- a/poky/meta/recipes-devtools/python/python3-packaging_21.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "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] = "7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
-
-DEPENDS += "${PYTHON_PN}-setuptools-native"
-RDEPENDS:${PN} += "${PYTHON_PN}-pyparsing"
diff --git a/poky/meta/recipes-devtools/python/python3-packaging_21.3.bb b/poky/meta/recipes-devtools/python/python3-packaging_21.3.bb
new file mode 100644
index 0000000..446edf0
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-packaging_21.3.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "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] = "dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
+
+DEPENDS += "${PYTHON_PN}-setuptools-native"
+RDEPENDS:${PN} += "${PYTHON_PN}-pyparsing"
diff --git a/poky/meta/recipes-devtools/python/python3-pbr_5.6.0.bb b/poky/meta/recipes-devtools/python/python3-pbr_5.6.0.bb
deleted file mode 100644
index 132e6e5..0000000
--- a/poky/meta/recipes-devtools/python/python3-pbr_5.6.0.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools3
-require python-pbr.inc
-
-SRC_URI[sha256sum] = "42df03e7797b796625b1029c0400279c7c34fd7df24a7d7818a1abb5b38710dd"
diff --git a/poky/meta/recipes-devtools/python/python3-pbr_5.8.0.bb b/poky/meta/recipes-devtools/python/python3-pbr_5.8.0.bb
new file mode 100644
index 0000000..b74fc16
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pbr_5.8.0.bb
@@ -0,0 +1,4 @@
+inherit setuptools3
+require python-pbr.inc
+
+SRC_URI[sha256sum] = "672d8ebee84921862110f23fcec2acea191ef58543d34dfe9ef3d9f13c31cddf"
diff --git a/poky/meta/recipes-devtools/python/python3-pip_21.3.1.bb b/poky/meta/recipes-devtools/python/python3-pip_21.3.1.bb
index 6ddb1d6..c893135 100644
--- a/poky/meta/recipes-devtools/python/python3-pip_21.3.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-pip_21.3.1.bb
@@ -6,7 +6,7 @@
 
 DEPENDS += "python3 python3-setuptools-native"
 
-inherit pypi distutils3
+inherit pypi setuptools3
 
 SRC_URI += "file://0001-change-shebang-to-python3.patch"
 
diff --git a/poky/meta/recipes-devtools/python/python3-py_1.10.0.bb b/poky/meta/recipes-devtools/python/python3-py_1.10.0.bb
deleted file mode 100644
index 8225c6b..0000000
--- a/poky/meta/recipes-devtools/python/python3-py_1.10.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Library with cross-python path, ini-parsing, io, code, log facilities"
-HOMEPAGE = "http://py.readthedocs.io/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9"
-
-SRC_URI[sha256sum] = "21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
-
-RDEPENDS:${PN} += "${PYTHON_PN}-netclient"
diff --git a/poky/meta/recipes-devtools/python/python3-py_1.11.0.bb b/poky/meta/recipes-devtools/python/python3-py_1.11.0.bb
new file mode 100644
index 0000000..f8be393
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-py_1.11.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Library with cross-python path, ini-parsing, io, code, log facilities"
+HOMEPAGE = "http://py.readthedocs.io/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9"
+
+SRC_URI[sha256sum] = "51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += "${PYTHON_PN}-netclient"
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.11.0.bb b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.11.0.bb
deleted file mode 100644
index b0e3717..0000000
--- a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.11.0.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require python-pycryptodome.inc
-inherit setuptools3
-
-SRC_URI[sha256sum] = "428096bbf7a77e207f418dfd4d7c284df8ade81d2dc80f010e92753a3e406ad0"
-
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.12.0.bb b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.12.0.bb
new file mode 100644
index 0000000..a732441
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.12.0.bb
@@ -0,0 +1,5 @@
+require python-pycryptodome.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "12c7343aec5a3b3df5c47265281b12b611f26ec9367b6129199d67da54b768c1"
+
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.11.0.bb b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.11.0.bb
deleted file mode 100644
index f1132c2..0000000
--- a/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.11.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require python-pycryptodome.inc
-inherit setuptools3
-
-SRC_URI[sha256sum] = "0398366656bb55ebdb1d1d493a7175fc48ade449283086db254ac44c7d318d6d"
-
-FILES:${PN}-tests = " \
-    ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \
-    ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/__pycache__/ \
-"
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.12.0.bb b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.12.0.bb
new file mode 100644
index 0000000..5f88419
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.12.0.bb
@@ -0,0 +1,9 @@
+require python-pycryptodome.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "922e9dac0166e4617e5c7980d2cff6912a6eb5cb5c13e7ece222438650bd7f66"
+
+FILES:${PN}-tests = " \
+    ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \
+    ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/__pycache__/ \
+"
diff --git a/poky/meta/recipes-devtools/python/python3-pyelftools_0.27.bb b/poky/meta/recipes-devtools/python/python3-pyelftools_0.27.bb
index 0cfd995..e2d0e18 100644
--- a/poky/meta/recipes-devtools/python/python3-pyelftools_0.27.bb
+++ b/poky/meta/recipes-devtools/python/python3-pyelftools_0.27.bb
@@ -11,3 +11,5 @@
 inherit pypi setuptools3
 
 BBCLASSEXTEND = "native"
+
+RDEPENDS:${PN} += "${PYTHON_PN}-debugger ${PYTHON_PN}-pprint"
diff --git a/poky/meta/recipes-devtools/python/python3-pygments_2.10.0.bb b/poky/meta/recipes-devtools/python/python3-pygments_2.10.0.bb
deleted file mode 100644
index 3c1b5d1..0000000
--- a/poky/meta/recipes-devtools/python/python3-pygments_2.10.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Pygments is a syntax highlighting package written in Python."
-DESCRIPTION = "Pygments is a syntax highlighting package written in Python."
-HOMEPAGE = "http://pygments.org/"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=98419e351433ac106a24e3ad435930bc"
-
-inherit setuptools3
-SRC_URI[sha256sum] = "f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"
-
-DEPENDS += "\
-            ${PYTHON_PN} \
-            "
-
-PYPI_PACKAGE = "Pygments"
-
-inherit pypi
-
-BBCLASSEXTEND = "native nativesdk"
-
diff --git a/poky/meta/recipes-devtools/python/python3-pygments_2.11.2.bb b/poky/meta/recipes-devtools/python/python3-pygments_2.11.2.bb
new file mode 100644
index 0000000..35d288c
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pygments_2.11.2.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Pygments is a syntax highlighting package written in Python."
+DESCRIPTION = "Pygments is a syntax highlighting package written in Python."
+HOMEPAGE = "http://pygments.org/"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=98419e351433ac106a24e3ad435930bc"
+
+inherit setuptools3
+SRC_URI[sha256sum] = "4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a"
+
+DEPENDS += "\
+            ${PYTHON_PN} \
+            "
+
+PYPI_PACKAGE = "Pygments"
+
+inherit pypi
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/poky/meta/recipes-devtools/python/python3-pygobject_3.42.0.bb b/poky/meta/recipes-devtools/python/python3-pygobject_3.42.0.bb
index 7ff7c5b..7431833 100644
--- a/poky/meta/recipes-devtools/python/python3-pygobject_3.42.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-pygobject_3.42.0.bb
@@ -6,19 +6,12 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
 
 GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase distutils3-base upstream-version-is-even
+GIR_MESON_OPTION = ""
+
+inherit gnomebase setuptools3-base gobject-introspection upstream-version-is-even
 
 DEPENDS += "python3 glib-2.0"
 
-# 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 prelink-native"
-
-# Even though introspection is disabled on -native, gobject-introspection package is still
-# needed for m4 macros.
-DEPENDS:append:class-native = " gobject-introspection-native"
-DEPENDS:append:class-nativesdk = " gobject-introspection-native"
-
 SRCNAME="pygobject"
 
 SRC_URI = " \
diff --git a/poky/meta/recipes-devtools/python/python3-pyparsing_3.0.0.bb b/poky/meta/recipes-devtools/python/python3-pyparsing_3.0.0.bb
deleted file mode 100644
index f1f6b0d..0000000
--- a/poky/meta/recipes-devtools/python/python3-pyparsing_3.0.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Python parsing module"
-HOMEPAGE = "http://pyparsing.wikispaces.com/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=657a566233888513e1f07ba13e2f47f1"
-
-SRC_URI[sha256sum] = "001cad8d467e7a9248ef9fd513f5c0d39afcbcb9a43684101853bd0ab962e479"
-
-UPSTREAM_CHECK_REGEX = "pyparsing-(?P<pver>.*)\.tar"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-datetime \
-    ${PYTHON_PN}-debugger \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-netclient \
-    ${PYTHON_PN}-pprint \
-    ${PYTHON_PN}-stringold \
-    ${PYTHON_PN}-threading \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-pyparsing_3.0.6.bb b/poky/meta/recipes-devtools/python/python3-pyparsing_3.0.6.bb
new file mode 100644
index 0000000..d15ff33
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pyparsing_3.0.6.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Python parsing module"
+HOMEPAGE = "http://pyparsing.wikispaces.com/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=657a566233888513e1f07ba13e2f47f1"
+
+SRC_URI[sha256sum] = "d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"
+
+UPSTREAM_CHECK_REGEX = "pyparsing-(?P<pver>.*)\.tar"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-debugger \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-netclient \
+    ${PYTHON_PN}-pprint \
+    ${PYTHON_PN}-stringold \
+    ${PYTHON_PN}-threading \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-pyrsistent_0.18.1.bb b/poky/meta/recipes-devtools/python/python3-pyrsistent_0.18.1.bb
new file mode 100644
index 0000000..4c9b8ec
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pyrsistent_0.18.1.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Persistent/Immutable/Functional data structures for Python"
+HOMEPAGE = "https://github.com/tobgu/pyrsistent"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.mit;md5=b695eb9c6e7a6fb1b1bc2d193c42776e"
+
+SRC_URI[sha256sum] = "d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-numbers \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-rfc3339-validator_0.1.4.bb b/poky/meta/recipes-devtools/python/python3-rfc3339-validator_0.1.4.bb
new file mode 100644
index 0000000..9bc5fed
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-rfc3339-validator_0.1.4.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A pure python RFC3339 validator"
+HOMEPAGE = "https://github.com/naimetti/rfc3339-validator"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a21b13b5a996f08f7e0b088aa38ce9c6"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/python-rfc3339-validator:"
+
+SRC_URI[sha256sum] = "138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"
+
+PYPI_PACKAGE = "rfc3339_validator"
+UPSTREAM_CHECK_REGEX = "/rfc3339-validator/(?P<pver>(\d+[\.\-_]*)+)/"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-core \
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-six \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb b/poky/meta/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb
new file mode 100644
index 0000000..4abd181
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Pure python rfc3986 validator"
+HOMEPAGE = "https://github.com/naimetti/rfc3986-validator"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a21b13b5a996f08f7e0b088aa38ce9c6"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/python-rfc3986-validator:"
+
+SRC_URI[md5sum] = "47f7657b790aaf6011a1ab3d86c6be95"
+SRC_URI[sha256sum] = "3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"
+
+PYPI_PACKAGE = "rfc3986_validator"
+UPSTREAM_CHECK_REGEX = "/rfc3986-validator/(?P<pver>(\d+[\.\-_]*)+)/"
+
+inherit pypi setuptools3
+
+SRC_URI:append = " \
+    file://0001-setup.py-move-pytest-runner-to-test_requirements.patch \
+"
+
+RDEPENDS:${PN} += "\
+    python3-core \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-rfc3987_1.3.8.bb b/poky/meta/recipes-devtools/python/python3-rfc3987_1.3.8.bb
new file mode 100644
index 0000000..ae01540
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-rfc3987_1.3.8.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)"
+HOMEPAGE = "https://pypi.org/project/rfc3987/"
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=9;md5=2b723edf67b2f3088bc5e339b1ceda2d"
+
+SRC_URI[md5sum] = "b6c4028acdc788a9ba697e1c1d6b896c"
+SRC_URI[sha256sum] = "d3c4d257a560d544e9826b38bc81db676890c79ab9d7ac92b39c7a253d5ca733"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.20.bb b/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.20.bb
new file mode 100644
index 0000000..a6bee1b
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.20.bb
@@ -0,0 +1,24 @@
+SUMMARY = "YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order."
+HOMEPAGE = "https://pypi.org/project/ruamel.yaml/"
+AUTHOR = "Anthon van der Neut"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=034154b7344d15438bc5ed5ee9cc075f"
+
+PYPI_PACKAGE = "ruamel.yaml"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "4b8a33c1efb2b443a93fcaafcfa4d2e445f8e8c29c528d9f5cdafb7cc9e4004c"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-shell \
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-netclient \
+"
+
+do_install:prepend() {
+    export RUAMEL_NO_PIP_INSTALL_CHECK=1
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-scons-native_4.2.0.bb b/poky/meta/recipes-devtools/python/python3-scons-native_4.3.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/python/python3-scons-native_4.2.0.bb
rename to poky/meta/recipes-devtools/python/python3-scons-native_4.3.0.bb
diff --git a/poky/meta/recipes-devtools/python/python3-scons_4.2.0.bb b/poky/meta/recipes-devtools/python/python3-scons_4.2.0.bb
deleted file mode 100644
index 23527a2..0000000
--- a/poky/meta/recipes-devtools/python/python3-scons_4.2.0.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Software Construction tool (make/autotools replacement)"
-HOMEPAGE = "https://github.com/SCons/scons"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d903b0b8027f461402bac9b5169b36f7"
-
-SRC_URI += " file://0001-Fix-man-page-installation.patch"
-SRC_URI[sha256sum] = "691893b63f38ad14295f5104661d55cb738ec6514421c6261323351c25432b0a"
-
-PYPI_PACKAGE = "SCons"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN}:class-target = "\
-  python3-core \
-  python3-compression \
-  python3-fcntl \
-  python3-importlib-metadata \
-  python3-io \
-  python3-json \
-  python3-shell \
-  python3-pickle \
-  python3-pkg-resources \
-  python3-pprint \
-  "
-
-FILES:${PN}-doc += "${datadir}/scons*.1"
diff --git a/poky/meta/recipes-devtools/python/python3-scons_4.3.0.bb b/poky/meta/recipes-devtools/python/python3-scons_4.3.0.bb
new file mode 100644
index 0000000..bff2fda
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-scons_4.3.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Software Construction tool (make/autotools replacement)"
+HOMEPAGE = "https://github.com/SCons/scons"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d903b0b8027f461402bac9b5169b36f7"
+
+SRC_URI += " file://0001-Fix-man-page-installation.patch"
+SRC_URI[sha256sum] = "d47081587e3675cc168f1f54f0d74a69b328a2fc90ec4feb85f728677419b879"
+
+PYPI_PACKAGE = "SCons"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN}:class-target = "\
+  python3-core \
+  python3-compression \
+  python3-fcntl \
+  python3-importlib-metadata \
+  python3-io \
+  python3-json \
+  python3-shell \
+  python3-pickle \
+  python3-pkg-resources \
+  python3-pprint \
+  "
+
+FILES:${PN}-doc += "${datadir}/scons*.1"
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch b/poky/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch
index 565cf8a..3150187 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch
+++ b/poky/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch
@@ -1,4 +1,4 @@
-From 44349672cbff8945693c8d2821c82e9f04bfc8b5 Mon Sep 17 00:00:00 2001
+From 1ff575308248b183639c8cb14afee7c8572bd2b8 Mon Sep 17 00:00:00 2001
 From: Tim Orling <timothy.t.orling@intel.com>
 Date: Wed, 20 Oct 2021 17:38:10 +0000
 Subject: [PATCH] _distutils/sysconfig: append
@@ -15,18 +15,19 @@
 Upstream-Status: Inappropriate [oe-specific]
 
 Signed-off-by: Tim Orling <timothy.t.orling@intel.com>
+
 ---
  setuptools/_distutils/sysconfig.py | 2 ++
  1 file changed, 2 insertions(+)
 
 diff --git a/setuptools/_distutils/sysconfig.py b/setuptools/_distutils/sysconfig.py
-index 8832b3e..bbc7c08 100644
+index d36d94f..616eb91 100644
 --- a/setuptools/_distutils/sysconfig.py
 +++ b/setuptools/_distutils/sysconfig.py
-@@ -461,6 +461,8 @@ def _init_posix():
-         platform=sys.platform,
-         multiarch=getattr(sys.implementation, '_multiarch', ''),
-     ))
+@@ -484,6 +484,8 @@ def _init_posix():
+             multiarch=getattr(sys.implementation, '_multiarch', ''),
+         ),
+     )
 +    if 'STAGING_LIBDIR' in os.environ:
 +        sys.path.append(os.environ['STAGING_LIBDIR']+'/python-sysconfigdata')
      try:
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_58.3.0.bb b/poky/meta/recipes-devtools/python/python3-setuptools_58.3.0.bb
deleted file mode 100644
index 47107ba..0000000
--- a/poky/meta/recipes-devtools/python/python3-setuptools_58.3.0.bb
+++ /dev/null
@@ -1,58 +0,0 @@
-SUMMARY = "Download, build, install, upgrade, and uninstall Python packages"
-HOMEPAGE = "https://pypi.org/project/setuptools"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=19;md5=7a7126e068206290f3fe9f8d6c713ea6"
-
-inherit pypi setuptools3
-
-SRC_URI:append:class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch"
-
-SRC_URI += "\
-    file://0001-change-shebang-to-python3.patch \
-    file://0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch \
-"
-
-SRC_URI[sha256sum] = "b0c2461641b58fe30e11d4c3dfba316c513bdf9ec85f9fed0c871c678447205e"
-
-DEPENDS += "${PYTHON_PN}"
-
-RDEPENDS:${PN} = "\
-    ${PYTHON_PN}-2to3 \
-    ${PYTHON_PN}-compile \
-    ${PYTHON_PN}-compression \
-    ${PYTHON_PN}-ctypes \
-    ${PYTHON_PN}-distutils \
-    ${PYTHON_PN}-email \
-    ${PYTHON_PN}-html \
-    ${PYTHON_PN}-json \
-    ${PYTHON_PN}-netserver \
-    ${PYTHON_PN}-numbers \
-    ${PYTHON_PN}-pickle \
-    ${PYTHON_PN}-pkg-resources \
-    ${PYTHON_PN}-pkgutil \
-    ${PYTHON_PN}-plistlib \
-    ${PYTHON_PN}-shell \
-    ${PYTHON_PN}-stringold \
-    ${PYTHON_PN}-threading \
-    ${PYTHON_PN}-unittest \
-    ${PYTHON_PN}-xml \
-"
-
-do_install:prepend() {
-    install -d ${D}${PYTHON_SITEPACKAGES_DIR}
-}
-
-BBCLASSEXTEND = "native nativesdk"
-
-# The pkg-resources module can be used by itself, without the package downloader
-# and easy_install. Ship it in a separate package so that it can be used by
-# minimal distributions.
-PACKAGES =+ "${PYTHON_PN}-pkg-resources "
-FILES:${PYTHON_PN}-pkg-resources = "${PYTHON_SITEPACKAGES_DIR}/pkg_resources/*"
-RDEPENDS:${PYTHON_PN}-pkg-resources = "\
-    ${PYTHON_PN}-compression \
-    ${PYTHON_PN}-email \
-    ${PYTHON_PN}-plistlib \
-    ${PYTHON_PN}-pprint \
-"
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb b/poky/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb
new file mode 100644
index 0000000..33ca928
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb
@@ -0,0 +1,57 @@
+SUMMARY = "Download, build, install, upgrade, and uninstall Python packages"
+HOMEPAGE = "https://pypi.org/project/setuptools"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=19;md5=7a7126e068206290f3fe9f8d6c713ea6"
+
+inherit pypi setuptools3
+
+SRC_URI:append:class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch"
+
+SRC_URI += "\
+    file://0001-change-shebang-to-python3.patch \
+    file://0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch \
+"
+
+SRC_URI[sha256sum] = "d144f85102f999444d06f9c0e8c737fd0194f10f2f7e5fdb77573f6e2fa4fad0"
+
+DEPENDS += "${PYTHON_PN}"
+
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-2to3 \
+    ${PYTHON_PN}-compile \
+    ${PYTHON_PN}-compression \
+    ${PYTHON_PN}-ctypes \
+    ${PYTHON_PN}-email \
+    ${PYTHON_PN}-html \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-netserver \
+    ${PYTHON_PN}-numbers \
+    ${PYTHON_PN}-pickle \
+    ${PYTHON_PN}-pkg-resources \
+    ${PYTHON_PN}-pkgutil \
+    ${PYTHON_PN}-plistlib \
+    ${PYTHON_PN}-shell \
+    ${PYTHON_PN}-stringold \
+    ${PYTHON_PN}-threading \
+    ${PYTHON_PN}-unittest \
+    ${PYTHON_PN}-xml \
+"
+
+do_install:prepend() {
+    install -d ${D}${PYTHON_SITEPACKAGES_DIR}
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
+# The pkg-resources module can be used by itself, without the package downloader
+# and easy_install. Ship it in a separate package so that it can be used by
+# minimal distributions.
+PACKAGES =+ "${PYTHON_PN}-pkg-resources "
+FILES:${PYTHON_PN}-pkg-resources = "${PYTHON_SITEPACKAGES_DIR}/pkg_resources/*"
+RDEPENDS:${PYTHON_PN}-pkg-resources = "\
+    ${PYTHON_PN}-compression \
+    ${PYTHON_PN}-email \
+    ${PYTHON_PN}-plistlib \
+    ${PYTHON_PN}-pprint \
+"
diff --git a/poky/meta/recipes-devtools/python/python3-strict-rfc3339_0.7.bb b/poky/meta/recipes-devtools/python/python3-strict-rfc3339_0.7.bb
new file mode 100644
index 0000000..aa2d5b4
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-strict-rfc3339_0.7.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Strict, simple, lightweight RFC3339 function.s"
+HOMEPAGE = "https://pypi.org/project/strict-rfc3339/"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8f0e2cd40e05189ec81232da84bd6e1a"
+
+SRC_URI[md5sum] = "4d9b635b4df885bc37bc1189d66c9abc"
+SRC_URI[sha256sum] = "5cad17bedfc3af57b399db0fed32771f18fc54bbd917e85546088607ac5e1277"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-tomli_1.2.2.bb b/poky/meta/recipes-devtools/python/python3-tomli_1.2.2.bb
deleted file mode 100644
index 39030ed..0000000
--- a/poky/meta/recipes-devtools/python/python3-tomli_1.2.2.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "A lil' TOML parser"
-DESCRIPTION = "Tomli is a Python library for parsing TOML. Tomli is fully \
-compatible with TOML v1.0.0."
-HOMEPAGE = "https://github.com/hukkin/tomli"
-BUGTRACKER = "https://github.com/hukkin/tomli/issues"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=aaaaf0879d17df0110d1aa8c8c9f46f5"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "c6ce0015eb38820eaf32b5db832dbc26deb3dd427bd5f6556cf0acac2c214fee"
-
-do_configure:prepend() {
-cat > ${S}/setup.py <<-EOF
-from setuptools import setup
-setup(name="tomli", version="${PV}", packages=["tomli"], package_data={"": ["*"]})
-EOF
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-tomli_2.0.0.bb b/poky/meta/recipes-devtools/python/python3-tomli_2.0.0.bb
new file mode 100644
index 0000000..aa23ad8
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-tomli_2.0.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A lil' TOML parser"
+DESCRIPTION = "Tomli is a Python library for parsing TOML. Tomli is fully \
+compatible with TOML v1.0.0."
+HOMEPAGE = "https://github.com/hukkin/tomli"
+BUGTRACKER = "https://github.com/hukkin/tomli/issues"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aaaaf0879d17df0110d1aa8c8c9f46f5"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "c292c34f58502a1eb2bbb9f5bbc9a5ebc37bee10ffb8c2d6bbdfa8eb13cc14e1"
+
+do_configure:prepend() {
+cat > ${S}/setup.py <<-EOF
+from setuptools import setup
+setup(name="tomli", version="${PV}", packages=["tomli"], package_data={"": ["*"]})
+EOF
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb b/poky/meta/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb
rename to poky/meta/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-webcolors/run-ptest b/poky/meta/recipes-devtools/python/python3-webcolors/run-ptest
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-webcolors/run-ptest
rename to poky/meta/recipes-devtools/python/python3-webcolors/run-ptest
diff --git a/poky/meta/recipes-devtools/python/python3-webcolors_1.11.1.bb b/poky/meta/recipes-devtools/python/python3-webcolors_1.11.1.bb
new file mode 100644
index 0000000..26dbe51
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-webcolors_1.11.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Simple Python module for working with HTML/CSS color definitions."
+HOMEPAGE = "https://pypi.org/project/webcolors/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=25b90379a52351261c51272e7923d240"
+
+SRC_URI[md5sum] = "54d28a7c80b3e4d974ec2fee86768be9"
+SRC_URI[sha256sum] = "76f360636957d1c976db7466bc71dcb713bb95ac8911944dffc55c01cb516de6"
+
+inherit pypi setuptools3 ptest
+
+RDEPENDS:${PN}:class-target = "\
+    ${PYTHON_PN}-stringold \
+"
+
+SRC_URI += " \
+    file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    ${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests
+    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-zipp_3.6.0.bb b/poky/meta/recipes-devtools/python/python3-zipp_3.6.0.bb
deleted file mode 100644
index c98bc7a..0000000
--- a/poky/meta/recipes-devtools/python/python3-zipp_3.6.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "Backport of pathlib-compatible object wrapper for zip files"
-HOMEPAGE = "https://github.com/jaraco/zipp"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6"
-
-SRC_URI[sha256sum] = "71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-toml-native"
-
-RDEPENDS:${PN} += "${PYTHON_PN}-compression \
-                   ${PYTHON_PN}-math \
-                   ${PYTHON_PN}-more-itertools"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-zipp_3.7.0.bb b/poky/meta/recipes-devtools/python/python3-zipp_3.7.0.bb
new file mode 100644
index 0000000..9ce987c
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-zipp_3.7.0.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Backport of pathlib-compatible object wrapper for zip files"
+HOMEPAGE = "https://github.com/jaraco/zipp"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6"
+
+SRC_URI[sha256sum] = "9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d"
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
+inherit pypi setuptools3
+
+DEPENDS += "${PYTHON_PN}-toml-native"
+
+RDEPENDS:${PN} += "${PYTHON_PN}-compression \
+                   ${PYTHON_PN}-math \
+                   ${PYTHON_PN}-more-itertools"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch b/poky/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch
index 5959282..62ef6ef 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch
@@ -1,4 +1,4 @@
-From 039c53dd5baddec3359a05be0bff46a3b32bbb84 Mon Sep 17 00:00:00 2001
+From 80f872e4573f542d33f91514538755557d566f79 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 25 Jan 2019 19:04:13 +0100
 Subject: [PATCH] Do not add /usr/lib/termcap to linker flags to avoid host
@@ -12,10 +12,10 @@
  1 file changed, 1 deletion(-)
 
 diff --git a/setup.py b/setup.py
-index 20d7f35..ab18ff0 100644
+index 43e807f..11b5cf5 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -957,7 +957,6 @@ class PyBuildExt(build_ext):
+@@ -1149,7 +1149,6 @@ class PyBuildExt(build_ext):
                                                       'termcap'):
                  readline_libs.append('termcap')
              self.add(Extension('readline', ['readline.c'],
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch b/poky/meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch
index 83fd52d..d98f243 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch
@@ -1,4 +1,4 @@
-From 148861fa16f2aaacd518770f337ea54b5182f981 Mon Sep 17 00:00:00 2001
+From 2406432449784243b7590009d42bd0e871253b2e Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 29 Jan 2019 15:03:01 +0100
 Subject: [PATCH] Do not use the shell version of python-config that was
@@ -9,15 +9,16 @@
 
 Upstream-Status: Inappropriate [oe-specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
 ---
  Makefile.pre.in | 9 +++------
  1 file changed, 3 insertions(+), 6 deletions(-)
 
 diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 2d2e11f..cc19942 100644
+index ee85f35..f0aedb7 100644
 --- a/Makefile.pre.in
 +++ b/Makefile.pre.in
-@@ -1431,12 +1431,9 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh
+@@ -1640,12 +1640,9 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh
  	sed -e "s,@EXENAME@,$(BINDIR)/python$(LDVERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py
  	@ # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR}
  	LC_ALL=C sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' < Misc/python-config.sh >python-config
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch b/poky/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch
index 46179ba..5485020 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch
@@ -1,4 +1,4 @@
-From cebb772d718a8f798ed5ae311a6e3e61534bea95 Mon Sep 17 00:00:00 2001
+From b6ead2d17ceafed47e598b6f50f3ff669deec5ab Mon Sep 17 00:00:00 2001
 From: Jeremy Puhlman <jpuhlman@mvista.com>
 Date: Wed, 4 Mar 2020 00:06:42 +0000
 Subject: [PATCH] Don't search system for headers/libraries
@@ -11,10 +11,10 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/setup.py b/setup.py
-index 95e3e11..32a4d42 100644
+index c190002..5ef368d 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -840,8 +840,8 @@ class PyBuildExt(build_ext):
+@@ -854,8 +854,8 @@ class PyBuildExt(build_ext):
              add_dir_to_list(self.compiler.include_dirs,
                              sysconfig.get_config_var("INCLUDEDIR"))
  
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch b/poky/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch
index d6aa950..df5179e 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch
@@ -1,4 +1,4 @@
-From d8521ee967937184eadc59fff1a30740ad181a98 Mon Sep 17 00:00:00 2001
+From 86061629f4a179e740a17e53dd2c98ab47af2fe2 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Thu, 16 Sep 2021 16:35:37 +0200
 Subject: [PATCH] Lib/pty.py: handle stdin I/O errors same way as master I/O
@@ -24,12 +24,13 @@
 
 Upstream-Status: Submitted [https://github.com/python/cpython/pull/28388]
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
 ---
  Lib/pty.py | 5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)
 
 diff --git a/Lib/pty.py b/Lib/pty.py
-index 8d8ce40df5..35439c6b96 100644
+index 8d8ce40..35439c6 100644
 --- a/Lib/pty.py
 +++ b/Lib/pty.py
 @@ -154,7 +154,10 @@ def _copy(master_fd, master_read=_read, stdin_read=_read):
@@ -44,6 +45,3 @@
              if not data:
                  fds.remove(STDIN_FILENO)
              else:
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch b/poky/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch
index b72c709..a9240b3 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch
@@ -1,4 +1,4 @@
-From aceaa16e25a8ab6a00f906c340843999635c8e23 Mon Sep 17 00:00:00 2001
+From 01d209277e145072e478d8b9acfea3638ee16cdc Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Fri, 10 Sep 2021 12:28:31 +0200
 Subject: [PATCH] Lib/sysconfig.py: use prefix value from build configuration
@@ -9,12 +9,13 @@
 
 Upstream-Status: Inappropriate [oe-core cross builds]
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
 ---
  Lib/sysconfig.py | 5 +++++
  1 file changed, 5 insertions(+)
 
 diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
-index 95b48f6..84f6427 100644
+index e64bcdc..40c6b3e 100644
 --- a/Lib/sysconfig.py
 +++ b/Lib/sysconfig.py
 @@ -613,6 +613,11 @@ def get_config_vars(*args):
@@ -29,6 +30,3 @@
          # For backward compatibility, see issue19555
          SO = _CONFIG_VARS.get('EXT_SUFFIX')
          if SO is not None:
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Makefile-do-not-compile-.pyc-in-parallel.patch b/poky/meta/recipes-devtools/python/python3/0001-Makefile-do-not-compile-.pyc-in-parallel.patch
index b1bceac..2f037ec 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Makefile-do-not-compile-.pyc-in-parallel.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Makefile-do-not-compile-.pyc-in-parallel.patch
@@ -1,25 +1,32 @@
-From c501e121a872cbcef8ffe626c1de173a125be9f8 Mon Sep 17 00:00:00 2001
+From c960837b8fd83074bab5148236f3d0595468cea4 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Thu, 16 Jan 2020 12:34:20 +0100
 Subject: [PATCH] Makefile: do not compile .pyc in parallel
 
-This was found to break reproducibility, and produce strange file ownership
+This was found to lock up builds, break reproducibility, and produce strange file ownership
 races.
 
 The upstream commit introducing the change was:
 https://github.com/python/cpython/commit/1a2dd82f56bd813aacc570e172cefe55a8a41504
 
-Upstream-Status: Pending
+The build lock up issue is reported here:
+https://bugs.python.org/issue45945
+
+The repro failures are documented here:
+https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20211130-yr_o1a8d/packages/diff-html/
+
+Upstream-Status: Inappropriate [see issues above]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
 ---
  Makefile.pre.in | 12 ++++++------
  1 file changed, 6 insertions(+), 6 deletions(-)
 
 diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 1241112..5dfdf44 100644
+index edd70d4..5e13ba2 100644
 --- a/Makefile.pre.in
 +++ b/Makefile.pre.in
-@@ -1457,30 +1457,30 @@ libinstall:	build_all $(srcdir)/Modules/xxmodule.c
+@@ -1601,30 +1601,30 @@ libinstall:	build_all $(srcdir)/Modules/xxmodule.c
  	fi
  	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
  		$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch b/poky/meta/recipes-devtools/python/python3/0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch
index fa7735f..e1dabc9 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch
@@ -1,19 +1,20 @@
-From cf6a9100902484e4d028ee88742dd2487b014a98 Mon Sep 17 00:00:00 2001
+From 9f85089cc3a21d5ff235bb37c6c9758f2b70497d Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Wed, 30 Jan 2019 12:41:04 +0100
 Subject: [PATCH] Makefile.pre: use qemu wrapper when gathering profile data
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
 ---
  Makefile.pre.in | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/Makefile.pre.in b/Makefile.pre.in
-index a3a02a7..d5503dd 100644
+index f0aedb7..edd70d4 100644
 --- a/Makefile.pre.in
 +++ b/Makefile.pre.in
-@@ -507,8 +507,7 @@ build_all_generate_profile:
+@@ -519,8 +519,7 @@ build_all_generate_profile:
  	$(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LDFLAGS_NODIST="$(LDFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LIBS="$(LIBS)"
  
  run_profile_task:
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch b/poky/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch
index a49d603..96c5a3c 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch
@@ -1,9 +1,8 @@
-From 0b25b66d4f54bd74615c9ff10f3fae8f0d1c548d Mon Sep 17 00:00:00 2001
+From 7171aeee22a0b7ab57cdf3d1ae15530549f8f92a Mon Sep 17 00:00:00 2001
 From: Yi Fan Yu <yifan.yu@windriver.com>
 Date: Thu, 1 Apr 2021 13:08:37 -0700
 Subject: [PATCH] Skip failing tests due to load variability on YP AB
 
-
 Skip these tests until AB-INT is solved.
 
 [YOCTO #14296]
@@ -11,16 +10,17 @@
 Upstream-Status: Inappropriate [OE-Specific]
 
 Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
+
 ---
  Lib/test/_test_multiprocessing.py | 2 ++
  Lib/test/test_time.py             | 1 +
  2 files changed, 3 insertions(+)
 
 diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
-index fd3b430..cda29f6 100644
+index 3bc5b8f..a6e106d 100644
 --- a/Lib/test/_test_multiprocessing.py
 +++ b/Lib/test/_test_multiprocessing.py
-@@ -568,6 +568,7 @@ def test_close(self):
+@@ -568,6 +568,7 @@ class _TestProcess(BaseTestCase):
  
          close_queue(q)
  
@@ -28,7 +28,7 @@
      def test_many_processes(self):
          if self.TYPE == 'threads':
              self.skipTest('test not appropriate for {}'.format(self.TYPE))
-@@ -4715,6 +4716,7 @@ def signal_and_sleep(cls, sem, period):
+@@ -4817,6 +4818,7 @@ class TestWait(unittest.TestCase):
          sem.release()
          time.sleep(period)
  
@@ -37,10 +37,10 @@
          from multiprocessing.connection import wait
  
 diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py
-index 3258298..adcf407 100644
+index 875615a..aebaa8c 100644
 --- a/Lib/test/test_time.py
 +++ b/Lib/test/test_time.py
-@@ -474,6 +474,7 @@ def test_monotonic(self):
+@@ -474,6 +474,7 @@ class TimeTestCase(unittest.TestCase):
      def test_perf_counter(self):
          time.perf_counter()
  
@@ -48,6 +48,3 @@
      def test_process_time(self):
          # process_time() should not include time spend during a sleep
          start = time.process_time()
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Use-FLAG_REF-always-for-interned-strings.patch b/poky/meta/recipes-devtools/python/python3/0001-Use-FLAG_REF-always-for-interned-strings.patch
index 793385d..993ac243 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Use-FLAG_REF-always-for-interned-strings.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Use-FLAG_REF-always-for-interned-strings.patch
@@ -1,4 +1,4 @@
-From 9f63e83b1cec872917647b11155edaffe399d103 Mon Sep 17 00:00:00 2001
+From d7217b79a4e125d4fcc1087743171b94d91d1121 Mon Sep 17 00:00:00 2001
 From: Inada Naoki <songofacandy@gmail.com>
 Date: Sat, 14 Jul 2018 00:46:11 +0900
 Subject: [PATCH] Use FLAG_REF always for interned strings
@@ -11,7 +11,7 @@
  1 file changed, 7 insertions(+), 2 deletions(-)
 
 diff --git a/Python/marshal.c b/Python/marshal.c
-index c4538bd..2437160 100644
+index 4125240..341c9aa 100644
 --- a/Python/marshal.c
 +++ b/Python/marshal.c
 @@ -298,9 +298,14 @@ w_ref(PyObject *v, char *flag, WFILE *p)
diff --git a/poky/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch b/poky/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch
index c4fae09..6ab335a 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch
@@ -1,7 +1,8 @@
-From 1ad771d86728ee2ed30e202e9768d8d825f96467 Mon Sep 17 00:00:00 2001
+From bb409432f03dd8256865292e382ad16613737829 Mon Sep 17 00:00:00 2001
 From: Matthias Schoepfer <matthias.schoepfer@ithinx.io>
 Date: Fri, 31 May 2019 15:34:34 +0200
 Subject: [PATCH] bpo-36852: proper detection of mips architecture for soft
+
  float
 
 When (cross) compiling for softfloat mips, __mips_hard_float will not be
@@ -13,18 +14,17 @@
 Upstream-Status: Submitted [https://github.com/python/cpython/pull/13196]
 Signed-off-by: Matthias Schoepfer <matthias.schoepfer@ithinx.io>
 
-%% original patch: 0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch
 ---
  configure.ac | 175 +++++++--------------------------------------------
  1 file changed, 21 insertions(+), 154 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index ede710e..bc81b0b 100644
+index 4230ef2..ee08b1b 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -710,160 +710,27 @@ fi
- MULTIARCH=$($CC --print-multiarch 2>/dev/null)
- AC_SUBST(MULTIARCH)
+@@ -718,160 +718,27 @@ then
+ fi
+ 
  
 -AC_MSG_CHECKING([for the platform triplet based on compiler characteristics])
 -cat >> conftest.c <<EOF
@@ -202,8 +202,5 @@
 +	;;
 +esac	
  
- if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
-   if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
--- 
-2.24.1
-
+ AC_MSG_CHECKING([for multiarch])
+ AS_CASE([$ac_sys_system],
diff --git a/poky/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch b/poky/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch
index b323ed4..3c62c2a 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch
@@ -1,4 +1,4 @@
-From 3a98c2eab187289dc8c55e36738c2c0f4216d906 Mon Sep 17 00:00:00 2001
+From 78dd1def953e18e7cda0325bb26d27c051bb6890 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Thu, 31 Jan 2019 16:46:30 +0100
 Subject: [PATCH] distutils/sysconfig: append
@@ -14,7 +14,7 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
-index a78c0b1..f5c5efe 100644
+index 40c6b3e..ac94cc7 100644
 --- a/Lib/sysconfig.py
 +++ b/Lib/sysconfig.py
 @@ -474,6 +474,8 @@ def _init_posix(vars):
diff --git a/poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch b/poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch
index bfddc1a..6bb85fc 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch
@@ -1,4 +1,4 @@
-From 5f9eea2c4f8716830f6c8855a3e10872119fae32 Mon Sep 17 00:00:00 2001
+From 9f68a27eb34394a00f1011c06900c609f15fb15c Mon Sep 17 00:00:00 2001
 From: Changqing Li <changqing.li@windriver.com>
 Date: Mon, 22 Oct 2018 15:19:51 +0800
 Subject: [PATCH] python3: use cc_basename to replace CC for checking compiler
@@ -27,10 +27,10 @@
  1 file changed, 10 insertions(+), 9 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index d60f052..e491e24 100644
+index 0c06914..299786b 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -54,6 +54,7 @@ AC_CONFIG_HEADER(pyconfig.h)
+@@ -61,6 +61,7 @@ AC_CONFIG_HEADER(pyconfig.h)
  AC_CANONICAL_HOST
  AC_SUBST(build)
  AC_SUBST(host)
@@ -38,7 +38,7 @@
  
  # pybuilddir.txt will be created by --generate-posix-vars in the Makefile
  rm -f pybuilddir.txt
-@@ -689,7 +690,7 @@ AC_MSG_RESULT($with_cxx_main)
+@@ -688,7 +689,7 @@ AC_MSG_RESULT($with_cxx_main)
  preset_cxx="$CXX"
  if test -z "$CXX"
  then
@@ -47,7 +47,7 @@
          gcc)    AC_PATH_TOOL(CXX, [g++], [g++], [notfound]) ;;
          cc)     AC_PATH_TOOL(CXX, [c++], [c++], [notfound]) ;;
          clang|*/clang)     AC_PATH_TOOL(CXX, [clang++], [clang++], [notfound]) ;;
-@@ -975,7 +976,7 @@ rmdir CaseSensitiveTestDir
+@@ -976,7 +977,7 @@ rmdir CaseSensitiveTestDir
  
  case $ac_sys_system in
  hp*|HP*)
@@ -56,7 +56,7 @@
      cc|*/cc) CC="$CC -Ae";;
      esac;;
  esac
-@@ -1366,7 +1367,7 @@ else
+@@ -1374,7 +1375,7 @@ else
  fi],
  [AC_MSG_RESULT(no)])
  if test "$Py_LTO" = 'true' ; then
@@ -65,7 +65,7 @@
      *clang*)
        AC_SUBST(LLVM_AR)
        AC_PATH_TOOL(LLVM_AR, llvm-ar, '', ${llvm_path})
-@@ -1456,7 +1457,7 @@ then
+@@ -1467,7 +1468,7 @@ then
    fi
  fi
  LLVM_PROF_ERR=no
@@ -74,7 +74,7 @@
    *clang*)
      # Any changes made here should be reflected in the GCC+Darwin case below
      PGO_PROF_GEN_FLAG="-fprofile-instr-generate"
-@@ -1517,7 +1518,7 @@ esac
+@@ -1528,7 +1529,7 @@ esac
  # compiler and platform.  BASECFLAGS tweaks need to be made even if the
  # user set OPT.
  
@@ -83,7 +83,7 @@
      *clang*)
          cc_is_clang=1
          ;;
-@@ -1653,7 +1654,7 @@ yes)
+@@ -1664,7 +1665,7 @@ yes)
  
      # ICC doesn't recognize the option, but only emits a warning
      ## XXX does it emit an unused result warning and can it be disabled?
@@ -92,7 +92,7 @@
      *icc*)
      ac_cv_disable_unused_result_warning=no
      ;;
-@@ -1993,7 +1994,7 @@ yes)
+@@ -2018,7 +2019,7 @@ yes)
      ;;
  esac
  
@@ -101,7 +101,7 @@
  *icc*)
      # ICC needs -fp-model strict or floats behave badly
      CFLAGS_NODIST="$CFLAGS_NODIST -fp-model strict"
-@@ -2765,7 +2766,7 @@ then
+@@ -2836,7 +2837,7 @@ then
  		then
  			LINKFORSHARED="-Wl,--export-dynamic"
  		fi;;
@@ -110,7 +110,7 @@
  		  *gcc*)
  		    if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
  		    then
-@@ -5507,7 +5508,7 @@ if test "$have_gcc_asm_for_x87" = yes; then
+@@ -5622,7 +5623,7 @@ if test "$have_gcc_asm_for_x87" = yes; then
      # Some versions of gcc miscompile inline asm:
      # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491
      # http://gcc.gnu.org/ml/gcc/2010-11/msg00366.html
diff --git a/poky/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch b/poky/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch
deleted file mode 100644
index 374433c..0000000
--- a/poky/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From bad7e6a625436402a01d03021fb9ccd58bc9930f Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 9 Jan 2020 17:44:05 +0100
-Subject: [PATCH] setup.py: pass missing libraries to Extension for
- multiprocessing module
-
-In the following commit:
-...
-commit e711cafab13efc9c1fe6c5cd75826401445eb585
-Author: Benjamin Peterson <benjamin@python.org>
-Date:   Wed Jun 11 16:44:04 2008 +0000
-
-    Merged revisions 64104,64117 via svnmerge from
-    svn+ssh://pythondev@svn.python.org/python/trunk
-...
-(see diff in setup.py)
-It assigned libraries for multiprocessing module according
-the host_platform, but not pass it to Extension.
-
-In glibc, the following commit caused two definition of
-sem_getvalue are different.
-https://sourceware.org/git/?p=glibc.git;a=commit;h=042e1521c794a945edc43b5bfa7e69ad70420524
-(see diff in nptl/sem_getvalue.c for detail)
-`__new_sem_getvalue' is the latest sem_getvalue@@GLIBC_2.1
-and `__old_sem_getvalue' is to compat the old version
-sem_getvalue@GLIBC_2.0.
-
-To build python for embedded Linux systems:
-http://www.yoctoproject.org/docs/2.3.1/yocto-project-qs/yocto-project-qs.html
-If not explicitly link to library pthread (-lpthread), it will
-load glibc's sem_getvalue randomly at runtime.
-
-Such as build python on linux x86_64 host and run the python
-on linux x86_32 target. If not link library pthread, it caused
-multiprocessing bounded semaphore could not work correctly.
-...
->>> import multiprocessing
->>> pool_sema = multiprocessing.BoundedSemaphore(value=1)
->>> pool_sema.acquire()
-True
->>> pool_sema.release()
-Traceback (most recent call last):
-  File "<stdin>", line 1, in <module>
-ValueError: semaphore or lock released too many times
-...
-
-And the semaphore issue also caused multiprocessing.Queue().put() hung.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index d92face..f42bcbb 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1836,7 +1836,7 @@ class PyBuildExt(build_ext):
-             if (sysconfig.get_config_var('HAVE_SEM_OPEN') and not
-                 sysconfig.get_config_var('POSIX_SEMAPHORES_NOT_ENABLED')):
-                 multiprocessing_srcs.append('_multiprocessing/semaphore.c')
--        self.add(Extension('_multiprocessing', multiprocessing_srcs,
-+        self.add(Extension('_multiprocessing', multiprocessing_srcs, libraries=['pthread'],
-                            include_dirs=["Modules/_multiprocessing"]))
- 
-         if (not MS_WINDOWS and
diff --git a/poky/meta/recipes-devtools/python/python3/0001-sysconfig.py-use-platlibdir-also-for-purelib.patch b/poky/meta/recipes-devtools/python/python3/0001-sysconfig.py-use-platlibdir-also-for-purelib.patch
index 2b5a7d3..4fb63a9 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-sysconfig.py-use-platlibdir-also-for-purelib.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-sysconfig.py-use-platlibdir-also-for-purelib.patch
@@ -1,4 +1,4 @@
-From 93346d1a2f5d4f7085391bc7c1230d85ebe00606 Mon Sep 17 00:00:00 2001
+From 9162460d81ccc725fb04a14b27d0bf4afcfb69c9 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Sun, 12 Sep 2021 21:44:36 +0200
 Subject: [PATCH] sysconfig.py: use platlibdir also for purelib
@@ -8,12 +8,13 @@
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
 ---
  Lib/sysconfig.py | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
-index b70d392..c418acd 100644
+index daf9f00..e64bcdc 100644
 --- a/Lib/sysconfig.py
 +++ b/Lib/sysconfig.py
 @@ -27,7 +27,7 @@ _INSTALL_SCHEMES = {
@@ -25,6 +26,3 @@
          'platlib': '{platbase}/{platlibdir}/python{py_version_short}/site-packages',
          'include':
              '{installed_base}/include/python{py_version_short}{abiflags}',
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch b/poky/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch
index 7d684b3..371021c 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch
@@ -1,4 +1,4 @@
-From 7a2bddfa437be633bb6945d0e6b7d6f27da870ad Mon Sep 17 00:00:00 2001
+From 13aa6449c47980c7270dad2527c3911517bf34e6 Mon Sep 17 00:00:00 2001
 From: Tim Orling <timothy.t.orling@intel.com>
 Date: Fri, 18 Jun 2021 11:56:50 -0700
 Subject: [PATCH] test_ctypes.test_find: skip without tools-sdk
@@ -10,15 +10,16 @@
 Upstream-Status: Inappropriate [oe-specific]
 
 Signed-off-by: Tim Orling <timothy.t.orlign@intel.com>
+
 ---
  Lib/ctypes/test/test_find.py | 2 ++
  1 file changed, 2 insertions(+)
 
 diff --git a/Lib/ctypes/test/test_find.py b/Lib/ctypes/test/test_find.py
-index 92ac184..0d009d1 100644
+index 1ff9d01..59def26 100644
 --- a/Lib/ctypes/test/test_find.py
 +++ b/Lib/ctypes/test/test_find.py
-@@ -112,10 +112,12 @@ class FindLibraryLinux(unittest.TestCase):
+@@ -113,10 +113,12 @@ class FindLibraryLinux(unittest.TestCase):
                  # LD_LIBRARY_PATH)
                  self.assertEqual(find_library(libname), 'lib%s.so' % libname)
  
diff --git a/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch b/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch
index c3d1e06..c762f98 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch
@@ -1,4 +1,4 @@
-From b94995e0c694ec9561efec0d1a59b323340e6105 Mon Sep 17 00:00:00 2001
+From 46856e692377d21be3562f6f90c242f5c9594ae2 Mon Sep 17 00:00:00 2001
 From: Mingli Yu <mingli.yu@windriver.com>
 Date: Mon, 5 Aug 2019 15:57:39 +0800
 Subject: [PATCH] test_locale.py: correct the test output format
@@ -23,19 +23,19 @@
 
 Upstream-Status: Submitted [https://github.com/python/cpython/pull/15132]
 
-
 Rebased for 3.9.4, still not accepted upstream Signed-off-by: Alejandro Hernandez <alejandro@enedino.org>
 
 Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+
 ---
  Lib/test/test_locale.py | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-Index: Python-3.9.4/Lib/test/test_locale.py
-===================================================================
---- Python-3.9.4.orig/Lib/test/test_locale.py
-+++ Python-3.9.4/Lib/test/test_locale.py
-@@ -562,7 +562,7 @@ class TestMiscellaneous(unittest.TestCas
+diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py
+index f844e62..04df0c2 100644
+--- a/Lib/test/test_locale.py
++++ b/Lib/test/test_locale.py
+@@ -564,7 +564,7 @@ class TestMiscellaneous(unittest.TestCase):
              self.skipTest('test needs Turkish locale')
          loc = locale.getlocale(locale.LC_CTYPE)
          if verbose:
diff --git a/poky/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch b/poky/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch
index 5823273..0ead57e 100644
--- a/poky/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch
+++ b/poky/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch
@@ -1,4 +1,4 @@
-From a2dd127b4163aff6cc35af0d0251321964232ad4 Mon Sep 17 00:00:00 2001
+From 246c5ffe75a2d494e415d8a7522df9fe22056d41 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 7 Oct 2019 13:22:14 +0200
 Subject: [PATCH] setup.py: do not report missing dependencies for disabled
@@ -14,14 +14,14 @@
 Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
 
 ---
- setup.py | 4 ++++
- 1 file changed, 4 insertions(+)
+ setup.py | 8 ++++++++
+ 1 file changed, 8 insertions(+)
 
 diff --git a/setup.py b/setup.py
-index 7691258..ec3f2a4 100644
+index 2be4738..62f0e18 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -408,6 +408,14 @@ class PyBuildExt(build_ext):
+@@ -517,6 +517,14 @@ class PyBuildExt(build_ext):
                  print("%-*s   %-*s   %-*s" % (longest, e, longest, f,
                                                longest, g))
  
diff --git a/poky/meta/recipes-devtools/python/python3/0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch b/poky/meta/recipes-devtools/python/python3/0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch
index e04a916..30d2906 100644
--- a/poky/meta/recipes-devtools/python/python3/0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch
+++ b/poky/meta/recipes-devtools/python/python3/0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch
@@ -1,4 +1,4 @@
-From 863c09f640a5dfd33ff22915b0d5fee7bc5df70a Mon Sep 17 00:00:00 2001
+From 788cd0464ee2b175493a0167ceee8c0045ce323c Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Sun, 16 Feb 2020 17:50:25 +0100
 Subject: [PATCH] configure.ac, setup.py: do not add a curses include path from
@@ -11,16 +11,17 @@
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
 ---
  configure.ac | 6 ------
  setup.py     | 2 --
  2 files changed, 8 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index 915f475..c911011 100644
+index e5e3df8..bfdd987 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -4828,12 +4828,6 @@ then
+@@ -5092,12 +5092,6 @@ then
    [Define if you have struct stat.st_mtimensec])
  fi
  
@@ -34,10 +35,10 @@
  
  # On Solaris, term.h requires curses.h
 diff --git a/setup.py b/setup.py
-index b0f1541..7208cd0 100644
+index 62f0e18..c190002 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -973,8 +973,6 @@ class PyBuildExt(build_ext):
+@@ -1169,8 +1169,6 @@ class PyBuildExt(build_ext):
          panel_library = 'panel'
          if curses_library == 'ncursesw':
              curses_defines.append(('HAVE_NCURSESW', '1'))
diff --git a/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch b/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
index cc64e3e..de4c6c4 100644
--- a/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
+++ b/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
@@ -1,4 +1,4 @@
-From f6411021856bafedd784748ec33494151e783b51 Mon Sep 17 00:00:00 2001
+From 33b5a31df6050110f4481a24f5a0a0bf7fe80096 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 14 May 2013 15:00:26 -0700
 Subject: [PATCH] python3: Add target and native recipes
@@ -12,6 +12,7 @@
 Signed-off-by: Phil Blundell <philb@gnu.org>
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
+
 ---
  Lib/distutils/sysconfig.py | 14 +++++++++++---
  1 file changed, 11 insertions(+), 3 deletions(-)
@@ -55,6 +56,3 @@
                                   "python" + get_python_version())
          if standard_lib:
              return libpython
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch b/poky/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch
index 184540e..2de72b7 100644
--- a/poky/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch
+++ b/poky/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch
@@ -1,4 +1,4 @@
-From ba7202700578d435b07cfdfb7b57e83185752800 Mon Sep 17 00:00:00 2001
+From 6a23d52c905cd1f6a5944255903ec86ea8b904bb Mon Sep 17 00:00:00 2001
 From: Andrei Gherzan <andrei@gherzan.ro>
 Date: Mon, 28 Jan 2019 15:57:54 +0000
 Subject: [PATCH] _tkinter module needs tk module along with tcl. tk is not yet
@@ -15,10 +15,10 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/setup.py b/setup.py
-index ab18ff0..7691258 100644
+index 11b5cf5..2be4738 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -1706,8 +1706,8 @@ class PyBuildExt(build_ext):
+@@ -1895,8 +1895,8 @@ class PyBuildExt(build_ext):
          self.detect_decimal()
          self.detect_ctypes()
          self.detect_multiprocessing()
diff --git a/poky/meta/recipes-devtools/python/python3/cgi_py.patch b/poky/meta/recipes-devtools/python/python3/cgi_py.patch
index 6c4ba54..81e6099 100644
--- a/poky/meta/recipes-devtools/python/python3/cgi_py.patch
+++ b/poky/meta/recipes-devtools/python/python3/cgi_py.patch
@@ -1,4 +1,4 @@
-From 62336285cba38017b35cb761c03f0c7e80a671a3 Mon Sep 17 00:00:00 2001
+From 5b0d1212d661e9a8a36738279fc9109f96eebd25 Mon Sep 17 00:00:00 2001
 From: Mark Hatle <mark.hatle@windriver.com>
 Date: Wed, 21 Sep 2011 20:55:33 -0500
 Subject: [PATCH] Lib/cgi.py: Update the script as mentioned in the comment
@@ -12,7 +12,7 @@
  1 file changed, 1 insertion(+), 10 deletions(-)
 
 diff --git a/Lib/cgi.py b/Lib/cgi.py
-index 8cf6687..094c7b4 100755
+index 6cb8cf2..a873ff3 100755
 --- a/Lib/cgi.py
 +++ b/Lib/cgi.py
 @@ -1,13 +1,4 @@
diff --git a/poky/meta/recipes-devtools/python/python3/crosspythonpath.patch b/poky/meta/recipes-devtools/python/python3/crosspythonpath.patch
index d789ab5..5bb2526 100644
--- a/poky/meta/recipes-devtools/python/python3/crosspythonpath.patch
+++ b/poky/meta/recipes-devtools/python/python3/crosspythonpath.patch
@@ -1,4 +1,8 @@
-configure.ac: add CROSSPYTHONPATH into PYTHONPATH for PYTHON_FOR_BUILD
+From baa3a232e64e9bf5ae945366efdb8088ccf9b828 Mon Sep 17 00:00:00 2001
+From: Ricardo Ribalda <ricardo@ribalda.com>
+Date: Tue, 18 Nov 2014 03:35:33 -0500
+Subject: [PATCH] configure.ac: add CROSSPYTHONPATH into PYTHONPATH for
+ PYTHON_FOR_BUILD
 
 When building x86->x86 the system will try to execute .so and related items
 from the default PYTHONPATH.  This will fail if the target CPU contains
@@ -10,11 +14,16 @@
 Credits-to: Mark Hatle <mark.hatle@windriver.com>
 Credits-to: Jackie Huang <jackie.huang@windriver.com>
 Signed-off-by: Ricardo Ribalda <ricardo@ribalda.com>
+
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
 diff --git a/configure.ac b/configure.ac
-index 4ab19a6..7036a53 100644
+index d0db062..e5e3df8 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -76,7 +76,7 @@ if test "$cross_compiling" = yes; then
+@@ -83,7 +83,7 @@ if test "$cross_compiling" = yes; then
  	    AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
  	fi
          AC_MSG_RESULT($interp)
diff --git a/poky/meta/recipes-devtools/python/python3/makerace.patch b/poky/meta/recipes-devtools/python/python3/makerace.patch
index b150c1c..2c06784 100644
--- a/poky/meta/recipes-devtools/python/python3/makerace.patch
+++ b/poky/meta/recipes-devtools/python/python3/makerace.patch
@@ -1,4 +1,4 @@
-From 8b8583fb4f2bb3421e31ef06d17c04deec431c7e Mon Sep 17 00:00:00 2001
+From 7cc02dfa593d1350a689d64a7a6f2dc6478afe24 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Tue, 13 Jul 2021 23:19:29 +0100
 Subject: [PATCH] python3: Fix make race
@@ -18,10 +18,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 69d47a2..c471b60 100644
+index 5e13ba2..026bffd 100644
 --- a/Makefile.pre.in
 +++ b/Makefile.pre.in
-@@ -1528,7 +1528,7 @@ TESTSUBDIRS=	ctypes/test \
+@@ -1527,7 +1527,7 @@ TESTSUBDIRS=	ctypes/test \
  		unittest/test unittest/test/testmock
  
  TEST_MODULES=@TEST_MODULES@
diff --git a/poky/meta/recipes-devtools/python/python3/python-config.patch b/poky/meta/recipes-devtools/python/python3/python-config.patch
index d0ddbbc..4da399e 100644
--- a/poky/meta/recipes-devtools/python/python3/python-config.patch
+++ b/poky/meta/recipes-devtools/python/python3/python-config.patch
@@ -1,4 +1,4 @@
-From 57d073c12e7bede29919117b0141df14015eb27f Mon Sep 17 00:00:00 2001
+From 8632f25ac4e2c53a3c2c8a1b4fc97fc86e8aad5a Mon Sep 17 00:00:00 2001
 From: Tyler Hall <tylerwhall@gmail.com>
 Date: Sun, 4 May 2014 20:06:43 -0400
 Subject: [PATCH] python-config: Revert to using distutils.sysconfig
@@ -14,26 +14,27 @@
 Upstream-Status: Inappropriate [Embedded Specific]
 
 Signed-off-by: Tyler Hall <tylerwhall@gmail.com>
-:
 
 ---
- Misc/python-config.in | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
+ Misc/python-config.in | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
 
 diff --git a/Misc/python-config.in b/Misc/python-config.in
-index ebd99da..13e57ae 100644
+index ebd99da..0492e08 100644
 --- a/Misc/python-config.in
 +++ b/Misc/python-config.in
-@@ -6,7 +6,7 @@
+@@ -6,7 +6,9 @@
  import getopt
  import os
  import sys
 -import sysconfig
++import warnings
++warnings.filterwarnings("ignore", category=DeprecationWarning)
 +from distutils import sysconfig
  
  valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
                'ldflags', 'extension-suffix', 'help', 'abiflags', 'configdir',
-@@ -35,14 +35,14 @@ if '--help' in opt_flags:
+@@ -35,14 +37,14 @@ if '--help' in opt_flags:
  
  for opt in opt_flags:
      if opt == '--prefix':
diff --git a/poky/meta/recipes-devtools/python/python3_3.10.0.bb b/poky/meta/recipes-devtools/python/python3_3.10.0.bb
deleted file mode 100644
index e3300b6..0000000
--- a/poky/meta/recipes-devtools/python/python3_3.10.0.bb
+++ /dev/null
@@ -1,400 +0,0 @@
-SUMMARY = "The Python Programming Language"
-HOMEPAGE = "http://www.python.org"
-DESCRIPTION = "Python is a programming language that lets you work more quickly and integrate your systems more effectively."
-LICENSE = "PSFv2"
-SECTION = "devel/python"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3dd7bed622743ef9b77169b3736f7990"
-
-SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
-           file://run-ptest \
-           file://create_manifest3.py \
-           file://get_module_deps3.py \
-           file://python3-manifest.json \
-           file://check_build_completeness.py \
-           file://reformat_sysconfig.py \
-           file://cgi_py.patch \
-           file://0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch \
-           ${@bb.utils.contains('PACKAGECONFIG', 'tk', '', 'file://avoid_warning_about_tkinter.patch', d)} \
-           file://0001-Do-not-use-the-shell-version-of-python-config-that-w.patch \
-           file://python-config.patch \
-           file://0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch \
-           file://0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch \
-           file://0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch \
-           file://crosspythonpath.patch \
-           file://0001-Use-FLAG_REF-always-for-interned-strings.patch \
-           file://0001-test_locale.py-correct-the-test-output-format.patch \
-           file://0017-setup.py-do-not-report-missing-dependencies-for-disa.patch \
-           file://0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch \
-           file://0001-Makefile-do-not-compile-.pyc-in-parallel.patch \
-           file://0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch \
-           file://0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch \
-           file://0001-test_ctypes.test_find-skip-without-tools-sdk.patch \
-           file://makerace.patch \
-           file://0001-sysconfig.py-use-platlibdir-also-for-purelib.patch \
-           file://0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch \
-           "
-
-SRC_URI:append:class-native = " \
-           file://0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch \
-           file://0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch \
-           file://12-distutils-prefix-is-inside-staging-area.patch \
-           file://0001-Don-t-search-system-for-headers-libraries.patch \
-           "
-SRC_URI[sha256sum] = "5a99f8e7a6a11a7b98b4e75e0d1303d3832cada5534068f69c7b6222a7b1b002"
-
-# exclude pre-releases for both python 2.x and 3.x
-UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
-UPSTREAM_CHECK_URI = "https://www.python.org/downloads/source/"
-
-CVE_PRODUCT = "python"
-
-# Upstream consider this expected behaviour
-CVE_CHECK_WHITELIST += "CVE-2007-4559"
-# This is not exploitable when glibc has CVE-2016-10739 fixed.
-CVE_CHECK_WHITELIST += "CVE-2019-18348"
-
-# This is windows only issue.
-CVE_CHECK_WHITELIST += "CVE-2020-15523"
-
-PYTHON_MAJMIN = "3.10"
-
-S = "${WORKDIR}/Python-${PV}"
-
-BBCLASSEXTEND = "native nativesdk"
-
-inherit autotools pkgconfig qemu ptest multilib_header update-alternatives
-
-MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}"
-
-ALTERNATIVE:${PN}-dev = "python3-config"
-ALTERNATIVE_LINK_NAME[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config"
-ALTERNATIVE_TARGET[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}"
-
-
-DEPENDS = "bzip2-replacement-native libffi bzip2 openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux libtirpc libnsl2 autoconf-archive-native"
-DEPENDS:append:class-target = " python3-native"
-DEPENDS:append:class-nativesdk = " python3-native"
-
-# force to use the mutex+cond implementation (https://bugs.python.org/issue41710)
-CFLAGS += "-DHAVE_BROKEN_POSIX_SEMAPHORES"
-
-EXTRA_OECONF = " --without-ensurepip --enable-shared --with-platlibdir=${baselib}"
-EXTRA_OECONF:append:class-native = " --bindir=${bindir}/${PN}"
-
-export CROSSPYTHONPATH="${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/"
-
-EXTRANATIVEPATH += "python3-native"
-
-# LTO will be enabled via packageconfig depending upong distro features
-LTO:class-target = ""
-
-CACHED_CONFIGUREVARS = " \
-                ac_cv_file__dev_ptmx=yes \
-                ac_cv_file__dev_ptc=no \
-                ac_cv_working_tzset=yes \
-"
-
-# PGO currently causes builds to not be reproducible so disable by default, see YOCTO #13407
-PACKAGECONFIG:class-target ??= "readline gdbm ${@bb.utils.filter('DISTRO_FEATURES', 'lto', d)}"
-PACKAGECONFIG:class-native ??= "readline gdbm"
-PACKAGECONFIG:class-nativesdk ??= "readline gdbm"
-PACKAGECONFIG[readline] = ",,readline"
-# Use profile guided optimisation by running PyBench inside qemu-user
-PACKAGECONFIG[pgo] = "--enable-optimizations,,qemu-native"
-PACKAGECONFIG[tk] = ",,tk"
-PACKAGECONFIG[gdbm] = ",,gdbm"
-PACKAGECONFIG[lto] = "--with-lto,,"
-
-do_configure:prepend () {
-    mkdir -p ${B}/Modules
-    cat > ${B}/Modules/Setup.local << EOF
-*disabled*
-${@bb.utils.contains('PACKAGECONFIG', 'gdbm', '', '_gdbm _dbm', d)}
-${@bb.utils.contains('PACKAGECONFIG', 'readline', '', 'readline', d)}
-EOF
-}
-
-CPPFLAGS:append = " -I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid"
-
-EXTRA_OEMAKE = '\
-  STAGING_LIBDIR=${STAGING_LIBDIR} \
-  STAGING_INCDIR=${STAGING_INCDIR} \
-  LIB=${baselib} \
-'
-
-do_compile:prepend:class-target() {
-       if ${@bb.utils.contains('PACKAGECONFIG', 'pgo', 'true', 'false', d)}; then
-                qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])}"
-                cat >pgo-wrapper <<EOF
-#!/bin/sh
-cd ${B}
-$qemu_binary "\$@"
-EOF
-                chmod +x pgo-wrapper
-        fi
-}
-
-do_install:prepend() {
-        ${WORKDIR}/check_build_completeness.py ${T}/log.do_compile
-}
-
-do_install:append:class-target() {
-        oe_multilib_header python${PYTHON_MAJMIN}/pyconfig.h
-}
-
-do_install:append:class-native() {
-        # Make sure we use /usr/bin/env python
-        for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do
-                sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT
-        done
-        # Add a symlink to the native Python so that scripts can just invoke
-        # "nativepython" and get the right one without needing absolute paths
-        # (these often end up too long for the #! parser in the kernel as the
-        # buffer is 128 bytes long).
-        ln -s python3-native/python3 ${D}${bindir}/nativepython3
-}
-
-do_install:append() {
-        for c in ${D}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do
-            python3 ${WORKDIR}/reformat_sysconfig.py $c
-        done
-        rm ${D}${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata*.cpython*
-
-        mkdir -p ${D}${libdir}/python-sysconfigdata
-        sysconfigfile=`find ${D} -name _sysconfig*.py`
-        cp $sysconfigfile ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py
-
-        sed -i  \
-                -e "s,^ 'LIBDIR'.*, 'LIBDIR': '${STAGING_LIBDIR}'\,,g" \
-                -e "s,^ 'INCLUDEDIR'.*, 'INCLUDEDIR': '${STAGING_INCDIR}'\,,g" \
-                -e "s,^ 'CONFINCLUDEDIR'.*, 'CONFINCLUDEDIR': '${STAGING_INCDIR}'\,,g" \
-                -e "/^ 'INCLDIRSTOMAKE'/{N; s,/usr/include,${STAGING_INCDIR},g}" \
-                -e "/^ 'INCLUDEPY'/s,/usr/include,${STAGING_INCDIR},g" \
-                ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py
-
-        # Unfortunately the following pyc files are non-deterministc due to 'frozenset'
-        # being written without strict ordering, even with PYTHONHASHSEED = 0
-        # Upstream is discussing ways to solve the issue properly, until then let's
-        # just not install the problematic files.
-        # More info: http://benno.id.au/blog/2013/01/15/python-determinism
-        rm ${D}${libdir}/python${PYTHON_MAJMIN}/test/__pycache__/test_range.cpython*
-        rm ${D}${libdir}/python${PYTHON_MAJMIN}/test/__pycache__/test_xml_etree.cpython*
-}
-
-do_install:append:class-nativesdk () {
-    # Make sure we use /usr/bin/env python
-    for PYTHSCRIPT in `grep -rIl ${bindir}/python ${D}${bindir}`; do
-         sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT
-    done
-    create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo' PYTHONNOUSERSITE='1'
-}
-
-SSTATE_SCAN_FILES += "Makefile _sysconfigdata.py"
-SSTATE_HASHEQUIV_FILEMAP = " \
-    populate_sysroot:*/lib*/python3*/_sysconfigdata*.py:${TMPDIR} \
-    populate_sysroot:*/lib*/python3*/_sysconfigdata*.py:${COREBASE} \
-    populate_sysroot:*/lib*/python3*/config-*/Makefile:${TMPDIR} \
-    populate_sysroot:*/lib*/python3*/config-*/Makefile:${COREBASE} \
-    populate_sysroot:*/lib*/python-sysconfigdata/_sysconfigdata.py:${TMPDIR} \
-    populate_sysroot:*/lib*/python-sysconfigdata/_sysconfigdata.py:${COREBASE} \
-    "
-PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess"
-
-py_package_preprocess () {
-        # Remove references to buildmachine paths in target Makefile and _sysconfigdata
-        sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \
-                -e 's|${DEBUG_PREFIX_MAP}||g' \
-                -e 's:${HOSTTOOLS_DIR}/::g' \
-                -e 's:${RECIPE_SYSROOT_NATIVE}::g' \
-                -e 's:${RECIPE_SYSROOT}::g' \
-                -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
-                ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}*/Makefile \
-                ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py \
-                ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config
-
-        # Reformat _sysconfigdata after modifying it so that it remains
-        # reproducible
-        for c in ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do
-            python3 ${WORKDIR}/reformat_sysconfig.py $c
-        done
-
-        # Recompile _sysconfigdata after modifying it
-        cd ${PKGD}
-        sysconfigfile=`find . -name _sysconfigdata_*.py`
-        ${STAGING_BINDIR_NATIVE}/python3-native/python3 \
-             -c "from py_compile import compile; compile('$sysconfigfile')"
-        ${STAGING_BINDIR_NATIVE}/python3-native/python3 \
-             -c "from py_compile import compile; compile('$sysconfigfile', optimize=1)"
-        ${STAGING_BINDIR_NATIVE}/python3-native/python3 \
-             -c "from py_compile import compile; compile('$sysconfigfile', optimize=2)"
-        cd -
-
-        mv ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}
-        
-        #Remove the unneeded copy of target sysconfig data
-        rm -rf ${PKGD}/${libdir}/python-sysconfigdata
-}
-
-# We want bytecode precompiled .py files (.pyc's) by default
-# but the user may set it on their own conf
-INCLUDE_PYCS ?= "1"
-
-python(){
-    import collections, json
-
-    filename = os.path.join(d.getVar('THISDIR'), 'python3', 'python3-manifest.json')
-    # This python changes the datastore based on the contents of a file, so mark
-    # that dependency.
-    bb.parse.mark_dependency(d, filename)
-
-    with open(filename) as manifest_file:
-        manifest_str =  manifest_file.read()
-        json_start = manifest_str.find('# EOC') + 6
-        manifest_file.seek(json_start)
-        manifest_str = manifest_file.read()
-        python_manifest = json.loads(manifest_str, object_pairs_hook=collections.OrderedDict)
-
-    # First set RPROVIDES for -native case
-    # Hardcoded since it cant be python3-native-foo, should be python3-foo-native
-    pn = 'python3'
-    rprovides = (d.getVar('RPROVIDES') or "").split()
-
-    # ${PN}-misc-native is not in the manifest
-    rprovides.append(pn + '-misc-native')
-
-    for key in python_manifest:
-        pypackage = pn + '-' + key + '-native'
-        if pypackage not in rprovides:
-              rprovides.append(pypackage)
-
-    d.setVar('RPROVIDES:class-native', ' '.join(rprovides))
-
-    # Then work on the target
-    include_pycs = d.getVar('INCLUDE_PYCS')
-
-    packages = d.getVar('PACKAGES').split()
-    pn = d.getVar('PN')
-
-    newpackages=[]
-    for key in python_manifest:
-        pypackage = pn + '-' + key
-
-        if pypackage not in packages:
-            # We need to prepend, otherwise python-misc gets everything
-            # so we use a new variable
-            newpackages.append(pypackage)
-
-        # "Build" python's manifest FILES, RDEPENDS and SUMMARY
-        d.setVar('FILES:' + pypackage, '')
-        for value in python_manifest[key]['files']:
-            d.appendVar('FILES:' + pypackage, ' ' + value)
-
-        # Add cached files
-        if include_pycs == '1':
-            for value in python_manifest[key]['cached']:
-                    d.appendVar('FILES:' + pypackage, ' ' + value)
-
-        for value in python_manifest[key]['rdepends']:
-            # Make it work with or without $PN
-            if '${PN}' in value:
-                value=value.split('-', 1)[1]
-            d.appendVar('RDEPENDS:' + pypackage, ' ' + pn + '-' + value)
-
-        for value in python_manifest[key].get('rrecommends', ()):
-            if '${PN}' in value:
-                value=value.split('-', 1)[1]
-            d.appendVar('RRECOMMENDS:' + pypackage, ' ' + pn + '-' + value)
-
-        d.setVar('SUMMARY:' + pypackage, python_manifest[key]['summary'])
-
-    # Prepending so to avoid python-misc getting everything
-    packages = newpackages + packages
-    d.setVar('PACKAGES', ' '.join(packages))
-    d.setVar('ALLOW_EMPTY:${PN}-modules', '1')
-    d.setVar('ALLOW_EMPTY:${PN}-pkgutil', '1')
-
-    if "pgo" in d.getVar("PACKAGECONFIG").split() and not bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d):
-        bb.fatal("pgo cannot be enabled as there is no qemu-usermode support for this architecture/machine")
-}
-
-# Files needed to create a new manifest
-
-do_create_manifest() {
-    # This task should be run with every new release of Python.
-    # We must ensure that PACKAGECONFIG enables everything when creating
-    # a new manifest, this is to base our new manifest on a complete
-    # native python build, containing all dependencies, otherwise the task
-    # wont be able to find the required files.
-    # e.g. BerkeleyDB is an optional build dependency so it may or may not
-    # be present, we must ensure it is.
-
-    cd ${WORKDIR}
-    # This needs to be executed by python-native and NOT by HOST's python
-    nativepython3 create_manifest3.py ${PYTHON_MAJMIN}
-    cp python3-manifest.json.new ${THISDIR}/python3/python3-manifest.json
-}
-
-# bitbake python -c create_manifest
-# Make sure we have native python ready when we create a new manifest
-addtask do_create_manifest after do_patch do_prepare_recipe_sysroot
-
-# manual dependency additions
-RRECOMMENDS:${PN}-core:append:class-nativesdk = " nativesdk-python3-modules"
-RRECOMMENDS:${PN}-crypt:append:class-target = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates"
-RRECOMMENDS:${PN}-crypt:append:class-nativesdk = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates"
-
-# For historical reasons PN is empty and provided by python3-modules
-FILES:${PN} = ""
-RPROVIDES:${PN}-modules = "${PN}"
-
-FILES:${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3"
-FILES:${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}"
-
-# provide python-pyvenv from python3-venv
-RPROVIDES:${PN}-venv += "${MLPREFIX}python3-pyvenv"
-
-# package libpython3
-PACKAGES =+ "libpython3 libpython3-staticdev"
-FILES:libpython3 = "${libdir}/libpython*.so.*"
-FILES:libpython3-staticdev += "${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}-*/libpython${PYTHON_MAJMIN}.a"
-INSANE_SKIP:${PN}-dev += "dev-elf"
-INSANE_SKIP:${PN}-ptest = "dev-deps"
-
-# catch all the rest (unsorted)
-PACKAGES += "${PN}-misc"
-RDEPENDS:${PN}-misc += "\
-  ${PN}-core \
-  ${PN}-email \
-  ${PN}-codecs \
-  ${PN}-pydoc \
-  ${PN}-pickle \
-  ${PN}-audio \
-  ${PN}-numbers \
-"
-RDEPENDS:${PN}-modules:append:class-target = " ${MLPREFIX}python3-misc"
-RDEPENDS:${PN}-modules:append:class-nativesdk = " ${MLPREFIX}python3-misc"
-FILES:${PN}-misc = "${libdir}/python${PYTHON_MAJMIN} ${libdir}/python${PYTHON_MAJMIN}/lib-dynload"
-
-# catch manpage
-PACKAGES += "${PN}-man"
-FILES:${PN}-man = "${datadir}/man"
-
-# See https://bugs.python.org/issue18748 and https://bugs.python.org/issue37395
-RDEPENDS:libpython3:append:libc-glibc = " libgcc"
-RDEPENDS:${PN}-ctypes:append:libc-glibc = " ${MLPREFIX}ldconfig"
-RDEPENDS:${PN}-ptest = "${PN}-modules ${PN}-tests ${PN}-dev unzip bzip2 libgcc tzdata-europe coreutils sed"
-RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-tr-tr.iso-8859-9"
-RDEPENDS:${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${MLPREFIX}tk ${MLPREFIX}tk-lib', '', d)}"
-RDEPENDS:${PN}-idle += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${PN}-tkinter ${MLPREFIX}tcl', '', d)}"
-RDEPENDS:${PN}-dev = ""
-RDEPENDS:${PN}-pydoc += "${PN}-io"
-
-RDEPENDS:${PN}-tests:append:class-target = " ${MLPREFIX}bash"
-RDEPENDS:${PN}-tests:append:class-nativesdk = " ${MLPREFIX}bash"
-
-# Python's tests contain large numbers of files we don't need in the recipe sysroots
-SYSROOT_PREPROCESS_FUNCS += " py3_sysroot_cleanup"
-py3_sysroot_cleanup () {
-	rm -rf ${SYSROOT_DESTDIR}${libdir}/python${PYTHON_MAJMIN}/test
-}
diff --git a/poky/meta/recipes-devtools/python/python3_3.10.2.bb b/poky/meta/recipes-devtools/python/python3_3.10.2.bb
new file mode 100644
index 0000000..9c67461
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3_3.10.2.bb
@@ -0,0 +1,399 @@
+SUMMARY = "The Python Programming Language"
+HOMEPAGE = "http://www.python.org"
+DESCRIPTION = "Python is a programming language that lets you work more quickly and integrate your systems more effectively."
+LICENSE = "PSFv2"
+SECTION = "devel/python"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4b8801e752a2c70ac41a5f9aa243f766"
+
+SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
+           file://run-ptest \
+           file://create_manifest3.py \
+           file://get_module_deps3.py \
+           file://python3-manifest.json \
+           file://check_build_completeness.py \
+           file://reformat_sysconfig.py \
+           file://cgi_py.patch \
+           file://0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch \
+           ${@bb.utils.contains('PACKAGECONFIG', 'tk', '', 'file://avoid_warning_about_tkinter.patch', d)} \
+           file://0001-Do-not-use-the-shell-version-of-python-config-that-w.patch \
+           file://python-config.patch \
+           file://0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch \
+           file://0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch \
+           file://0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch \
+           file://crosspythonpath.patch \
+           file://0001-Use-FLAG_REF-always-for-interned-strings.patch \
+           file://0001-test_locale.py-correct-the-test-output-format.patch \
+           file://0017-setup.py-do-not-report-missing-dependencies-for-disa.patch \
+           file://0001-Makefile-do-not-compile-.pyc-in-parallel.patch \
+           file://0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch \
+           file://0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch \
+           file://0001-test_ctypes.test_find-skip-without-tools-sdk.patch \
+           file://makerace.patch \
+           file://0001-sysconfig.py-use-platlibdir-also-for-purelib.patch \
+           file://0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch \
+           "
+
+SRC_URI:append:class-native = " \
+           file://0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch \
+           file://0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch \
+           file://12-distutils-prefix-is-inside-staging-area.patch \
+           file://0001-Don-t-search-system-for-headers-libraries.patch \
+           "
+SRC_URI[sha256sum] = "17de3ac7da9f2519aa9d64378c603a73a0e9ad58dffa8812e45160c086de64c7"
+
+# exclude pre-releases for both python 2.x and 3.x
+UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
+UPSTREAM_CHECK_URI = "https://www.python.org/downloads/source/"
+
+CVE_PRODUCT = "python"
+
+# Upstream consider this expected behaviour
+CVE_CHECK_WHITELIST += "CVE-2007-4559"
+# This is not exploitable when glibc has CVE-2016-10739 fixed.
+CVE_CHECK_WHITELIST += "CVE-2019-18348"
+
+# This is windows only issue.
+CVE_CHECK_WHITELIST += "CVE-2020-15523"
+
+PYTHON_MAJMIN = "3.10"
+
+S = "${WORKDIR}/Python-${PV}"
+
+BBCLASSEXTEND = "native nativesdk"
+
+inherit autotools pkgconfig qemu ptest multilib_header update-alternatives
+
+MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}"
+
+ALTERNATIVE:${PN}-dev = "python3-config"
+ALTERNATIVE_LINK_NAME[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config"
+ALTERNATIVE_TARGET[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}"
+
+
+DEPENDS = "bzip2-replacement-native libffi bzip2 openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux libtirpc libnsl2 autoconf-archive-native"
+DEPENDS:append:class-target = " python3-native"
+DEPENDS:append:class-nativesdk = " python3-native"
+
+# force to use the mutex+cond implementation (https://bugs.python.org/issue41710)
+CFLAGS += "-DHAVE_BROKEN_POSIX_SEMAPHORES"
+
+EXTRA_OECONF = " --without-ensurepip --enable-shared --with-platlibdir=${baselib}"
+EXTRA_OECONF:append:class-native = " --bindir=${bindir}/${PN}"
+
+export CROSSPYTHONPATH="${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/"
+
+EXTRANATIVEPATH += "python3-native"
+
+# LTO will be enabled via packageconfig depending upong distro features
+LTO:class-target = ""
+
+CACHED_CONFIGUREVARS = " \
+                ac_cv_file__dev_ptmx=yes \
+                ac_cv_file__dev_ptc=no \
+                ac_cv_working_tzset=yes \
+"
+
+# PGO currently causes builds to not be reproducible so disable by default, see YOCTO #13407
+PACKAGECONFIG:class-target ??= "readline gdbm ${@bb.utils.filter('DISTRO_FEATURES', 'lto', d)}"
+PACKAGECONFIG:class-native ??= "readline gdbm"
+PACKAGECONFIG:class-nativesdk ??= "readline gdbm"
+PACKAGECONFIG[readline] = ",,readline"
+# Use profile guided optimisation by running PyBench inside qemu-user
+PACKAGECONFIG[pgo] = "--enable-optimizations,,qemu-native"
+PACKAGECONFIG[tk] = ",,tk"
+PACKAGECONFIG[gdbm] = ",,gdbm"
+PACKAGECONFIG[lto] = "--with-lto,,"
+
+do_configure:prepend () {
+    mkdir -p ${B}/Modules
+    cat > ${B}/Modules/Setup.local << EOF
+*disabled*
+${@bb.utils.contains('PACKAGECONFIG', 'gdbm', '', '_gdbm _dbm', d)}
+${@bb.utils.contains('PACKAGECONFIG', 'readline', '', 'readline', d)}
+EOF
+}
+
+CPPFLAGS:append = " -I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid"
+
+EXTRA_OEMAKE = '\
+  STAGING_LIBDIR=${STAGING_LIBDIR} \
+  STAGING_INCDIR=${STAGING_INCDIR} \
+  LIB=${baselib} \
+'
+
+do_compile:prepend:class-target() {
+       if ${@bb.utils.contains('PACKAGECONFIG', 'pgo', 'true', 'false', d)}; then
+                qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])}"
+                cat >pgo-wrapper <<EOF
+#!/bin/sh
+cd ${B}
+$qemu_binary "\$@"
+EOF
+                chmod +x pgo-wrapper
+        fi
+}
+
+do_install:prepend() {
+        ${WORKDIR}/check_build_completeness.py ${T}/log.do_compile
+}
+
+do_install:append:class-target() {
+        oe_multilib_header python${PYTHON_MAJMIN}/pyconfig.h
+}
+
+do_install:append:class-native() {
+        # Make sure we use /usr/bin/env python
+        for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do
+                sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT
+        done
+        # Add a symlink to the native Python so that scripts can just invoke
+        # "nativepython" and get the right one without needing absolute paths
+        # (these often end up too long for the #! parser in the kernel as the
+        # buffer is 128 bytes long).
+        ln -s python3-native/python3 ${D}${bindir}/nativepython3
+}
+
+do_install:append() {
+        for c in ${D}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do
+            python3 ${WORKDIR}/reformat_sysconfig.py $c
+        done
+        rm ${D}${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata*.cpython*
+
+        mkdir -p ${D}${libdir}/python-sysconfigdata
+        sysconfigfile=`find ${D} -name _sysconfig*.py`
+        cp $sysconfigfile ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py
+
+        sed -i  \
+                -e "s,^ 'LIBDIR'.*, 'LIBDIR': '${STAGING_LIBDIR}'\,,g" \
+                -e "s,^ 'INCLUDEDIR'.*, 'INCLUDEDIR': '${STAGING_INCDIR}'\,,g" \
+                -e "s,^ 'CONFINCLUDEDIR'.*, 'CONFINCLUDEDIR': '${STAGING_INCDIR}'\,,g" \
+                -e "/^ 'INCLDIRSTOMAKE'/{N; s,/usr/include,${STAGING_INCDIR},g}" \
+                -e "/^ 'INCLUDEPY'/s,/usr/include,${STAGING_INCDIR},g" \
+                ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py
+
+        # Unfortunately the following pyc files are non-deterministc due to 'frozenset'
+        # being written without strict ordering, even with PYTHONHASHSEED = 0
+        # Upstream is discussing ways to solve the issue properly, until then let's
+        # just not install the problematic files.
+        # More info: http://benno.id.au/blog/2013/01/15/python-determinism
+        rm ${D}${libdir}/python${PYTHON_MAJMIN}/test/__pycache__/test_range.cpython*
+        rm ${D}${libdir}/python${PYTHON_MAJMIN}/test/__pycache__/test_xml_etree.cpython*
+}
+
+do_install:append:class-nativesdk () {
+    # Make sure we use /usr/bin/env python
+    for PYTHSCRIPT in `grep -rIl ${bindir}/python ${D}${bindir}`; do
+         sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT
+    done
+    create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo' PYTHONNOUSERSITE='1'
+}
+
+SSTATE_SCAN_FILES += "Makefile _sysconfigdata.py"
+SSTATE_HASHEQUIV_FILEMAP = " \
+    populate_sysroot:*/lib*/python3*/_sysconfigdata*.py:${TMPDIR} \
+    populate_sysroot:*/lib*/python3*/_sysconfigdata*.py:${COREBASE} \
+    populate_sysroot:*/lib*/python3*/config-*/Makefile:${TMPDIR} \
+    populate_sysroot:*/lib*/python3*/config-*/Makefile:${COREBASE} \
+    populate_sysroot:*/lib*/python-sysconfigdata/_sysconfigdata.py:${TMPDIR} \
+    populate_sysroot:*/lib*/python-sysconfigdata/_sysconfigdata.py:${COREBASE} \
+    "
+PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess"
+
+py_package_preprocess () {
+        # Remove references to buildmachine paths in target Makefile and _sysconfigdata
+        sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \
+                -e 's|${DEBUG_PREFIX_MAP}||g' \
+                -e 's:${HOSTTOOLS_DIR}/::g' \
+                -e 's:${RECIPE_SYSROOT_NATIVE}::g' \
+                -e 's:${RECIPE_SYSROOT}::g' \
+                -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
+                ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}*/Makefile \
+                ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py \
+                ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config
+
+        # Reformat _sysconfigdata after modifying it so that it remains
+        # reproducible
+        for c in ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do
+            python3 ${WORKDIR}/reformat_sysconfig.py $c
+        done
+
+        # Recompile _sysconfigdata after modifying it
+        cd ${PKGD}
+        sysconfigfile=`find . -name _sysconfigdata_*.py`
+        ${STAGING_BINDIR_NATIVE}/python3-native/python3 \
+             -c "from py_compile import compile; compile('$sysconfigfile')"
+        ${STAGING_BINDIR_NATIVE}/python3-native/python3 \
+             -c "from py_compile import compile; compile('$sysconfigfile', optimize=1)"
+        ${STAGING_BINDIR_NATIVE}/python3-native/python3 \
+             -c "from py_compile import compile; compile('$sysconfigfile', optimize=2)"
+        cd -
+
+        mv ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}
+        
+        #Remove the unneeded copy of target sysconfig data
+        rm -rf ${PKGD}/${libdir}/python-sysconfigdata
+}
+
+# We want bytecode precompiled .py files (.pyc's) by default
+# but the user may set it on their own conf
+INCLUDE_PYCS ?= "1"
+
+python(){
+    import collections, json
+
+    filename = os.path.join(d.getVar('THISDIR'), 'python3', 'python3-manifest.json')
+    # This python changes the datastore based on the contents of a file, so mark
+    # that dependency.
+    bb.parse.mark_dependency(d, filename)
+
+    with open(filename) as manifest_file:
+        manifest_str =  manifest_file.read()
+        json_start = manifest_str.find('# EOC') + 6
+        manifest_file.seek(json_start)
+        manifest_str = manifest_file.read()
+        python_manifest = json.loads(manifest_str, object_pairs_hook=collections.OrderedDict)
+
+    # First set RPROVIDES for -native case
+    # Hardcoded since it cant be python3-native-foo, should be python3-foo-native
+    pn = 'python3'
+    rprovides = (d.getVar('RPROVIDES') or "").split()
+
+    # ${PN}-misc-native is not in the manifest
+    rprovides.append(pn + '-misc-native')
+
+    for key in python_manifest:
+        pypackage = pn + '-' + key + '-native'
+        if pypackage not in rprovides:
+              rprovides.append(pypackage)
+
+    d.setVar('RPROVIDES:class-native', ' '.join(rprovides))
+
+    # Then work on the target
+    include_pycs = d.getVar('INCLUDE_PYCS')
+
+    packages = d.getVar('PACKAGES').split()
+    pn = d.getVar('PN')
+
+    newpackages=[]
+    for key in python_manifest:
+        pypackage = pn + '-' + key
+
+        if pypackage not in packages:
+            # We need to prepend, otherwise python-misc gets everything
+            # so we use a new variable
+            newpackages.append(pypackage)
+
+        # "Build" python's manifest FILES, RDEPENDS and SUMMARY
+        d.setVar('FILES:' + pypackage, '')
+        for value in python_manifest[key]['files']:
+            d.appendVar('FILES:' + pypackage, ' ' + value)
+
+        # Add cached files
+        if include_pycs == '1':
+            for value in python_manifest[key]['cached']:
+                    d.appendVar('FILES:' + pypackage, ' ' + value)
+
+        for value in python_manifest[key]['rdepends']:
+            # Make it work with or without $PN
+            if '${PN}' in value:
+                value=value.split('-', 1)[1]
+            d.appendVar('RDEPENDS:' + pypackage, ' ' + pn + '-' + value)
+
+        for value in python_manifest[key].get('rrecommends', ()):
+            if '${PN}' in value:
+                value=value.split('-', 1)[1]
+            d.appendVar('RRECOMMENDS:' + pypackage, ' ' + pn + '-' + value)
+
+        d.setVar('SUMMARY:' + pypackage, python_manifest[key]['summary'])
+
+    # Prepending so to avoid python-misc getting everything
+    packages = newpackages + packages
+    d.setVar('PACKAGES', ' '.join(packages))
+    d.setVar('ALLOW_EMPTY:${PN}-modules', '1')
+    d.setVar('ALLOW_EMPTY:${PN}-pkgutil', '1')
+
+    if "pgo" in d.getVar("PACKAGECONFIG").split() and not bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d):
+        bb.fatal("pgo cannot be enabled as there is no qemu-usermode support for this architecture/machine")
+}
+
+# Files needed to create a new manifest
+
+do_create_manifest() {
+    # This task should be run with every new release of Python.
+    # We must ensure that PACKAGECONFIG enables everything when creating
+    # a new manifest, this is to base our new manifest on a complete
+    # native python build, containing all dependencies, otherwise the task
+    # wont be able to find the required files.
+    # e.g. BerkeleyDB is an optional build dependency so it may or may not
+    # be present, we must ensure it is.
+
+    cd ${WORKDIR}
+    # This needs to be executed by python-native and NOT by HOST's python
+    nativepython3 create_manifest3.py ${PYTHON_MAJMIN}
+    cp python3-manifest.json.new ${THISDIR}/python3/python3-manifest.json
+}
+
+# bitbake python -c create_manifest
+# Make sure we have native python ready when we create a new manifest
+addtask do_create_manifest after do_patch do_prepare_recipe_sysroot
+
+# manual dependency additions
+RRECOMMENDS:${PN}-core:append:class-nativesdk = " nativesdk-python3-modules"
+RRECOMMENDS:${PN}-crypt:append:class-target = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates"
+RRECOMMENDS:${PN}-crypt:append:class-nativesdk = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates"
+
+# For historical reasons PN is empty and provided by python3-modules
+FILES:${PN} = ""
+RPROVIDES:${PN}-modules = "${PN}"
+
+FILES:${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3"
+FILES:${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}"
+
+# provide python-pyvenv from python3-venv
+RPROVIDES:${PN}-venv += "${MLPREFIX}python3-pyvenv"
+
+# package libpython3
+PACKAGES =+ "libpython3 libpython3-staticdev"
+FILES:libpython3 = "${libdir}/libpython*.so.*"
+FILES:libpython3-staticdev += "${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}-*/libpython${PYTHON_MAJMIN}.a"
+INSANE_SKIP:${PN}-dev += "dev-elf"
+INSANE_SKIP:${PN}-ptest = "dev-deps"
+
+# catch all the rest (unsorted)
+PACKAGES += "${PN}-misc"
+RDEPENDS:${PN}-misc += "\
+  ${PN}-core \
+  ${PN}-email \
+  ${PN}-codecs \
+  ${PN}-pydoc \
+  ${PN}-pickle \
+  ${PN}-audio \
+  ${PN}-numbers \
+"
+RDEPENDS:${PN}-modules:append:class-target = " ${MLPREFIX}python3-misc"
+RDEPENDS:${PN}-modules:append:class-nativesdk = " ${MLPREFIX}python3-misc"
+FILES:${PN}-misc = "${libdir}/python${PYTHON_MAJMIN} ${libdir}/python${PYTHON_MAJMIN}/lib-dynload"
+
+# catch manpage
+PACKAGES += "${PN}-man"
+FILES:${PN}-man = "${datadir}/man"
+
+# See https://bugs.python.org/issue18748 and https://bugs.python.org/issue37395
+RDEPENDS:libpython3:append:libc-glibc = " libgcc"
+RDEPENDS:${PN}-ctypes:append:libc-glibc = " ${MLPREFIX}ldconfig"
+RDEPENDS:${PN}-ptest = "${PN}-modules ${PN}-tests ${PN}-dev unzip bzip2 libgcc tzdata-europe coreutils sed"
+RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-tr-tr.iso-8859-9"
+RDEPENDS:${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${MLPREFIX}tk ${MLPREFIX}tk-lib', '', d)}"
+RDEPENDS:${PN}-idle += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${PN}-tkinter ${MLPREFIX}tcl', '', d)}"
+RDEPENDS:${PN}-dev = ""
+RDEPENDS:${PN}-pydoc += "${PN}-io"
+
+RDEPENDS:${PN}-tests:append:class-target = " ${MLPREFIX}bash"
+RDEPENDS:${PN}-tests:append:class-nativesdk = " ${MLPREFIX}bash"
+
+# Python's tests contain large numbers of files we don't need in the recipe sysroots
+SYSROOT_PREPROCESS_FUNCS += " py3_sysroot_cleanup"
+py3_sysroot_cleanup () {
+	rm -rf ${SYSROOT_DESTDIR}${libdir}/python${PYTHON_MAJMIN}/test
+}
diff --git a/poky/meta/recipes-devtools/qemu/qemu-native_6.1.0.bb b/poky/meta/recipes-devtools/qemu/qemu-native_6.2.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/qemu/qemu-native_6.1.0.bb
rename to poky/meta/recipes-devtools/qemu/qemu-native_6.2.0.bb
diff --git a/poky/meta/recipes-devtools/qemu/qemu-system-native_6.1.0.bb b/poky/meta/recipes-devtools/qemu/qemu-system-native_6.2.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/qemu/qemu-system-native_6.1.0.bb
rename to poky/meta/recipes-devtools/qemu/qemu-system-native_6.2.0.bb
diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc
index 33052a9..843de33 100644
--- a/poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu.inc
@@ -26,10 +26,11 @@
            file://mmap2.patch \
            file://determinism.patch \
            file://0001-tests-meson.build-use-relative-path-to-refer-to-file.patch \
+           file://0001-riscv-Set-5.4-as-minimum-kernel-version-for-riscv32.patch \
            "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
-SRC_URI[sha256sum] = "eebc089db3414bbeedf1e464beda0a7515aad30f73261abc246c9b27503a3c96"
+SRC_URI[sha256sum] = "68e15d8e45ac56326e0b9a4afa8b49a3dfe8aba3488221d098c84698bca65b45"
 
 SRC_URI:append:class-target = " file://cross.patch"
 SRC_URI:append:class-nativesdk = " file://cross.patch"
@@ -47,6 +48,7 @@
 
 COMPATIBLE_HOST:mipsarchn32 = "null"
 COMPATIBLE_HOST:mipsarchn64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
 
 # Per https://lists.nongnu.org/archive/html/qemu-devel/2020-09/msg03873.html
 # upstream states qemu doesn't work without optimization
@@ -96,8 +98,6 @@
     ${PACKAGECONFIG_CONFARGS} \
     "
 
-export LIBTOOL="${HOST_SYS}-libtool"
-
 B = "${WORKDIR}/build"
 
 #EXTRA_OECONF:append = " --python=${HOSTTOOLS_DIR}/python3"
@@ -172,7 +172,7 @@
 PACKAGECONFIG[nettle] = "--enable-nettle,--disable-nettle,nettle"
 PACKAGECONFIG[libusb] = "--enable-libusb,--disable-libusb,libusb1"
 PACKAGECONFIG[fdt] = "--enable-fdt,--disable-fdt,dtc"
-PACKAGECONFIG[alsa] = "--audio-drv-list='oss alsa',,alsa-lib"
+PACKAGECONFIG[alsa] = "--audio-drv-list=default,,alsa-lib"
 PACKAGECONFIG[glx] = "--enable-opengl,--disable-opengl,virtual/libgl"
 PACKAGECONFIG[lzo] = "--enable-lzo,--disable-lzo,lzo"
 PACKAGECONFIG[numa] = "--enable-numa,--disable-numa,numactl"
@@ -199,6 +199,8 @@
 # libnfs is currently provided by meta-kodi
 PACKAGECONFIG[libnfs] = "--enable-libnfs,--disable-libnfs,libnfs"
 PACKAGECONFIG[pmem] = "--enable-libpmem,--disable-libpmem,pmdk"
+PACKAGECONFIG[pulsedio] = "--enable-pa,--disable-pa,pulseaudio"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux"
 
 INSANE_SKIP:${PN} = "arch"
 
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-riscv-Set-5.4-as-minimum-kernel-version-for-riscv32.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-riscv-Set-5.4-as-minimum-kernel-version-for-riscv32.patch
new file mode 100644
index 0000000..ac4b6dc
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/0001-riscv-Set-5.4-as-minimum-kernel-version-for-riscv32.patch
@@ -0,0 +1,40 @@
+From 359dc12eb32b2395cf10796157002024e6a58054 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 15 Dec 2021 23:31:11 -0800
+Subject: [PATCH] riscv: Set 5.4 as minimum kernel version for riscv32
+
+5.4 is first stable API as far as rv32 is concerned see [1]
+
+[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=7a55dd3fb6d2c307a002a16776be84310b9c8989
+
+Upstream-Status: Submitted [https://lists.nongnu.org/archive/html/qemu-devel/2021-12/msg02495.html]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Cc: Palmer Dabbelt <palmer@dabbelt.com>
+Cc: Alistair Francis <alistair.francis@wdc.com>
+Cc: Bin Meng <bin.meng@windriver.com>
+Signed-off-by: Matt Madison <matt@madison.systems>
+---
+ linux-user/riscv/target_syscall.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/linux-user/riscv/target_syscall.h b/linux-user/riscv/target_syscall.h
+index dc597c897..9b1316132 100644
+--- a/linux-user/riscv/target_syscall.h
++++ b/linux-user/riscv/target_syscall.h
+@@ -45,10 +45,11 @@ struct target_pt_regs {
+ 
+ #ifdef TARGET_RISCV32
+ #define UNAME_MACHINE "riscv32"
++#define UNAME_MINIMUM_RELEASE "5.4.0"
+ #else
+ #define UNAME_MACHINE "riscv64"
+-#endif
+ #define UNAME_MINIMUM_RELEASE "4.15.0"
++#endif
+ 
+ #define TARGET_MINSIGSTKSZ 2048
+ #define TARGET_MCL_CURRENT 1
+-- 
+2.32.0
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-tests-meson.build-use-relative-path-to-refer-to-file.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-tests-meson.build-use-relative-path-to-refer-to-file.patch
index d5e1ab4..fcef129 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0001-tests-meson.build-use-relative-path-to-refer-to-file.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0001-tests-meson.build-use-relative-path-to-refer-to-file.patch
@@ -16,16 +16,19 @@
  tests/meson.build   | 2 +-
  1 files changed, 1 insertions(+), 1 deletion(-)
 
-Index: qemu-6.0.0/tests/unit/meson.build
+Index: qemu-6.2.0/tests/unit/meson.build
 ===================================================================
---- qemu-6.0.0.orig/tests/unit/meson.build
-+++ qemu-6.0.0/tests/unit/meson.build
-@@ -42,7 +42,7 @@ tests = {
+--- qemu-6.2.0.orig/tests/unit/meson.build
++++ qemu-6.2.0/tests/unit/meson.build
+@@ -44,9 +44,9 @@ tests = {
    'test-keyval': [testqapi],
    'test-logging': [],
    'test-uuid': [],
--  'ptimer-test': ['ptimer-test-stubs.c', meson.source_root() / 'hw/core/ptimer.c'],
+-  'ptimer-test': ['ptimer-test-stubs.c', meson.project_source_root() / 'hw/core/ptimer.c'],
 +  'ptimer-test': ['ptimer-test-stubs.c', '../../hw/core/ptimer.c'],
    'test-qapi-util': [],
+-  'test-smp-parse': [qom, meson.project_source_root() / 'hw/core/machine-smp.c'],
++  'test-smp-parse': [qom, '../../hw/core/machine-smp.c'],
  }
  
+ if have_system or have_tools
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch b/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
index 05dc849..cf8b0e7 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
@@ -51,10 +51,10 @@
  qapi/char.json        |   5 +++
  3 files changed, 109 insertions(+)
 
-Index: qemu-6.0.0/chardev/char-socket.c
+Index: qemu-6.2.0/chardev/char-socket.c
 ===================================================================
---- qemu-6.0.0.orig/chardev/char-socket.c
-+++ qemu-6.0.0/chardev/char-socket.c
+--- qemu-6.2.0.orig/chardev/char-socket.c
++++ qemu-6.2.0/chardev/char-socket.c
 @@ -1362,6 +1362,67 @@ static bool qmp_chardev_validate_socket(
      return true;
  }
@@ -133,7 +133,7 @@
      bool do_nodelay     = sock->has_nodelay ? sock->nodelay : false;
      bool is_listen      = sock->has_server  ? sock->server  : true;
      bool is_telnet      = sock->has_telnet  ? sock->telnet  : false;
-@@ -1446,6 +1510,14 @@ static void qmp_chardev_open_socket(Char
+@@ -1440,6 +1504,14 @@ static void qmp_chardev_open_socket(Char
  
      update_disconnected_filename(s);
  
@@ -148,7 +148,7 @@
      if (s->is_listen) {
          if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270,
                                             is_waitconnect, errp) < 0) {
-@@ -1465,6 +1537,9 @@ static void qemu_chr_parse_socket(QemuOp
+@@ -1459,6 +1531,9 @@ static void qemu_chr_parse_socket(QemuOp
      const char *host = qemu_opt_get(opts, "host");
      const char *port = qemu_opt_get(opts, "port");
      const char *fd = qemu_opt_get(opts, "fd");
@@ -158,7 +158,7 @@
  #ifdef CONFIG_LINUX
      bool tight = qemu_opt_get_bool(opts, "tight", true);
      bool abstract = qemu_opt_get_bool(opts, "abstract", false);
-@@ -1472,6 +1547,20 @@ static void qemu_chr_parse_socket(QemuOp
+@@ -1466,6 +1541,20 @@ static void qemu_chr_parse_socket(QemuOp
      SocketAddressLegacy *addr;
      ChardevSocket *sock;
  
@@ -179,7 +179,7 @@
      if ((!!path + !!fd + !!host) != 1) {
          error_setg(errp,
                     "Exactly one of 'path', 'fd' or 'host' required");
-@@ -1522,13 +1611,24 @@ static void qemu_chr_parse_socket(QemuOp
+@@ -1516,13 +1605,24 @@ static void qemu_chr_parse_socket(QemuOp
      sock->tls_creds = g_strdup(qemu_opt_get(opts, "tls-creds"));
      sock->has_tls_authz = qemu_opt_get(opts, "tls-authz");
      sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz"));
@@ -194,7 +194,7 @@
      if (path) {
 +#endif
          UnixSocketAddress *q_unix;
-         addr->type = SOCKET_ADDRESS_LEGACY_KIND_UNIX;
+         addr->type = SOCKET_ADDRESS_TYPE_UNIX;
          q_unix = addr->u.q_unix.data = g_new0(UnixSocketAddress, 1);
 +#ifndef _WIN32
 +        q_unix->path = cmd ? g_strdup_printf("cmd:%s", cmd) : g_strdup(path);
@@ -204,11 +204,11 @@
  #ifdef CONFIG_LINUX
          q_unix->has_tight = true;
          q_unix->tight = tight;
-Index: qemu-6.0.0/chardev/char.c
+Index: qemu-6.2.0/chardev/char.c
 ===================================================================
---- qemu-6.0.0.orig/chardev/char.c
-+++ qemu-6.0.0/chardev/char.c
-@@ -840,6 +840,9 @@ QemuOptsList qemu_chardev_opts = {
+--- qemu-6.2.0.orig/chardev/char.c
++++ qemu-6.2.0/chardev/char.c
+@@ -836,6 +836,9 @@ QemuOptsList qemu_chardev_opts = {
              .name = "path",
              .type = QEMU_OPT_STRING,
          },{
@@ -218,10 +218,10 @@
              .name = "host",
              .type = QEMU_OPT_STRING,
          },{
-Index: qemu-6.0.0/qapi/char.json
+Index: qemu-6.2.0/qapi/char.json
 ===================================================================
---- qemu-6.0.0.orig/qapi/char.json
-+++ qemu-6.0.0/qapi/char.json
+--- qemu-6.2.0.orig/qapi/char.json
++++ qemu-6.2.0/qapi/char.json
 @@ -250,6 +250,10 @@
  #
  # @addr: socket address to listen on (server=true)
diff --git a/poky/meta/recipes-devtools/qemu/qemu_6.1.0.bb b/poky/meta/recipes-devtools/qemu/qemu_6.1.0.bb
deleted file mode 100644
index f8a816b..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu_6.1.0.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-BBCLASSEXTEND = "nativesdk"
-
-require qemu.inc
-
-# error: a parameter list without types is only allowed in a function definition
-#            void (*_function)(sigval_t);
-COMPATIBLE_HOST:libc-musl = 'null'
-
-DEPENDS = "glib-2.0 zlib pixman bison-native ninja-native meson-native"
-
-RDEPENDS:${PN}:class-target += "bash"
-
-EXTRA_OECONF:append:class-target = " --target-list=${@get_qemu_target_list(d)}"
-EXTRA_OECONF:append:class-target:mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}"
-EXTRA_OECONF:append:class-nativesdk = " --target-list=${@get_qemu_target_list(d)}"
-
-do_install:append:class-nativesdk() {
-     ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)}
-}
-
-PACKAGECONFIG ??= " \
-    fdt sdl kvm pie \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \
-"
-PACKAGECONFIG:class-nativesdk ??= "fdt sdl kvm pie \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \
-"
diff --git a/poky/meta/recipes-devtools/qemu/qemu_6.2.0.bb b/poky/meta/recipes-devtools/qemu/qemu_6.2.0.bb
new file mode 100644
index 0000000..c9a53e3
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu_6.2.0.bb
@@ -0,0 +1,27 @@
+BBCLASSEXTEND = "nativesdk"
+
+require qemu.inc
+
+DEPENDS = "glib-2.0 zlib pixman bison-native ninja-native meson-native"
+
+DEPENDS:append:libc-musl = " libucontext"
+
+RDEPENDS:${PN}:class-target += "bash"
+
+EXTRA_OECONF:append:class-target = " --target-list=${@get_qemu_target_list(d)}"
+EXTRA_OECONF:append:class-target:mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}"
+EXTRA_OECONF:append:class-nativesdk = " --target-list=${@get_qemu_target_list(d)}"
+
+do_install:append:class-nativesdk() {
+     ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)}
+}
+
+PACKAGECONFIG ??= " \
+    fdt sdl kvm pie \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \
+"
+PACKAGECONFIG:class-nativesdk ??= "fdt sdl kvm pie \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \
+"
diff --git a/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch b/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch
new file mode 100644
index 0000000..d3888c8
--- /dev/null
+++ b/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch
@@ -0,0 +1,26 @@
+From b8e84b202cd302a7c99288d3835dc9c63071f8f2 Mon Sep 17 00:00:00 2001
+From: Jasper Orschulko <Jasper.Orschulko@iris-sensing.com>
+Date: Tue, 14 Sep 2021 16:46:51 +0200
+Subject: [PATCH] python3 shebang
+
+Yocto does not symlink from python to python3, thus change the shebang from
+python to python3.
+
+Upstream-Status: Inappropriate [configuration]
+Signed-off-by: Jasper Orschulko <Jasper.Orschulko@iris-sensing.com>
+---
+ repo | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/repo b/repo
+index b13e34c..205e0e5 100755
+--- a/repo
++++ b/repo
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding:utf-8 -*-
+ #
+ # Copyright (C) 2008 The Android Open Source Project
+--
+2.33.0
diff --git a/poky/meta/recipes-devtools/repo/repo_2.20.bb b/poky/meta/recipes-devtools/repo/repo_2.20.bb
new file mode 100644
index 0000000..b56559f
--- /dev/null
+++ b/poky/meta/recipes-devtools/repo/repo_2.20.bb
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier: MIT
+# Copyright (C) 2021 iris-GmbH infrared & intelligent sensors
+
+SUMMARY = "Tool for managing many Git repositories"
+DESCRIPTION = "Repo is a tool built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow."
+HOMEPAGE = "https://android.googlesource.com/tools/repo"
+SECTION = "console/utils"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "git://gerrit.googlesource.com/git-repo.git;protocol=https;branch=main \
+           file://0001-python3-shebang.patch \
+           "
+SRCREV = "98bb76577d9e7e0ffdeb643f1654ec006f6bbc8c"
+
+MIRRORS += "git://gerrit.googlesource.com/git-repo.git git://github.com/GerritCodeReview/git-repo.git"
+
+S = "${WORKDIR}/git"
+
+do_set_fixed_rev() {
+    sed -Ei "s/REPO_REV\s*=\s*('|\")stable('|\")/REPO_REV = '${SRCREV}'/g" ${S}/repo
+}
+
+do_patch[postfuncs] += "do_set_fixed_rev"
+
+do_install() {
+	install -D ${WORKDIR}/git/repo ${D}${bindir}/repo
+}
+
+RDEPENDS:${PN} = "python3 git"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/rpm/files/0001-CVE-2021-3521.patch b/poky/meta/recipes-devtools/rpm/files/0001-CVE-2021-3521.patch
new file mode 100644
index 0000000..044b4dd
--- /dev/null
+++ b/poky/meta/recipes-devtools/rpm/files/0001-CVE-2021-3521.patch
@@ -0,0 +1,57 @@
+From 9a6871126f472feea057d5f803505ec8cc78f083 Mon Sep 17 00:00:00 2001
+From: Panu Matilainen <pmatilai@redhat.com>
+Date: Thu, 30 Sep 2021 09:56:20 +0300
+Subject: [PATCH 1/3] Refactor pgpDigParams construction to helper function
+
+No functional changes, just to reduce code duplication and needed by
+the following commits.
+
+CVE: CVE-2021-3521
+Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/9f03f42e2]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ rpmio/rpmpgp.c | 13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/rpmio/rpmpgp.c b/rpmio/rpmpgp.c
+index d0688ebe9a..e472b5320f 100644
+--- a/rpmio/rpmpgp.c
++++ b/rpmio/rpmpgp.c
+@@ -1041,6 +1041,13 @@ unsigned int pgpDigParamsAlgo(pgpDigParams digp, unsigned int algotype)
+     return algo;
+ }
+ 
++static pgpDigParams pgpDigParamsNew(uint8_t tag)
++{
++    pgpDigParams digp = xcalloc(1, sizeof(*digp));
++    digp->tag = tag;
++    return digp;
++}
++
+ int pgpPrtParams(const uint8_t * pkts, size_t pktlen, unsigned int pkttype,
+ 		 pgpDigParams * ret)
+ {
+@@ -1058,8 +1065,7 @@ int pgpPrtParams(const uint8_t * pkts, size_t pktlen, unsigned int pkttype,
+ 	    if (pkttype && pkt.tag != pkttype) {
+ 		break;
+ 	    } else {
+-		digp = xcalloc(1, sizeof(*digp));
+-		digp->tag = pkt.tag;
++		digp = pgpDigParamsNew(pkt.tag);
+ 	    }
+ 	}
+ 
+@@ -1105,8 +1111,7 @@ int pgpPrtParamsSubkeys(const uint8_t *pkts, size_t pktlen,
+ 		digps = xrealloc(digps, alloced * sizeof(*digps));
+ 	    }
+ 
+-	    digps[count] = xcalloc(1, sizeof(**digps));
+-	    digps[count]->tag = PGPTAG_PUBLIC_SUBKEY;
++	    digps[count] = pgpDigParamsNew(PGPTAG_PUBLIC_SUBKEY);
+ 	    /* Copy UID from main key to subkey */
+ 	    digps[count]->userid = xstrdup(mainkey->userid);
+ 
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/rpm/files/0002-CVE-2021-3521.patch b/poky/meta/recipes-devtools/rpm/files/0002-CVE-2021-3521.patch
new file mode 100644
index 0000000..683b57d
--- /dev/null
+++ b/poky/meta/recipes-devtools/rpm/files/0002-CVE-2021-3521.patch
@@ -0,0 +1,64 @@
+From c4b1bee51bbdd732b94b431a951481af99117703 Mon Sep 17 00:00:00 2001
+From: Panu Matilainen <pmatilai@redhat.com>
+Date: Thu, 30 Sep 2021 09:51:10 +0300
+Subject: [PATCH 2/3] Process MPI's from all kinds of signatures
+
+No immediate effect but needed by the following commits.
+
+CVE: CVE-2021-3521
+Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/b5e8bc74b]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+---
+ rpmio/rpmpgp.c | 13 +++++--------
+ 1 file changed, 5 insertions(+), 8 deletions(-)
+
+diff --git a/rpmio/rpmpgp.c b/rpmio/rpmpgp.c
+index 25f67048fd..509e777e6d 100644
+--- a/rpmio/rpmpgp.c
++++ b/rpmio/rpmpgp.c
+@@ -543,7 +543,7 @@ pgpDigAlg pgpDigAlgFree(pgpDigAlg alg)
+     return NULL;
+ }
+ 
+-static int pgpPrtSigParams(pgpTag tag, uint8_t pubkey_algo, uint8_t sigtype,
++static int pgpPrtSigParams(pgpTag tag, uint8_t pubkey_algo,
+ 		const uint8_t *p, const uint8_t *h, size_t hlen,
+ 		pgpDigParams sigp)
+ {
+@@ -556,10 +556,8 @@ static int pgpPrtSigParams(pgpTag tag, uint8_t pubkey_algo, uint8_t sigtype,
+ 	int mpil = pgpMpiLen(p);
+ 	if (pend - p < mpil)
+ 	    break;
+-	if (sigtype == PGPSIGTYPE_BINARY || sigtype == PGPSIGTYPE_TEXT) {
+-	    if (sigalg->setmpi(sigalg, i, p))
+-		break;
+-	}
++        if (sigalg->setmpi(sigalg, i, p))
++            break;
+ 	p += mpil;
+     }
+ 
+@@ -619,7 +617,7 @@ static int pgpPrtSig(pgpTag tag, const uint8_t *h, size_t hlen,
+ 	}
+ 
+ 	p = ((uint8_t *)v) + sizeof(*v);
+-	rc = pgpPrtSigParams(tag, v->pubkey_algo, v->sigtype, p, h, hlen, _digp);
++	rc = pgpPrtSigParams(tag, v->pubkey_algo, p, h, hlen, _digp);
+     }	break;
+     case 4:
+     {   pgpPktSigV4 v = (pgpPktSigV4)h;
+@@ -677,8 +675,7 @@ static int pgpPrtSig(pgpTag tag, const uint8_t *h, size_t hlen,
+ 	p += 2;
+ 	if (p > hend)
+ 	    return 1;
+-
+-	rc = pgpPrtSigParams(tag, v->pubkey_algo, v->sigtype, p, h, hlen, _digp);
++	rc = pgpPrtSigParams(tag, v->pubkey_algo, p, h, hlen, _digp);
+     }	break;
+     default:
+ 	rpmlog(RPMLOG_WARNING, _("Unsupported version of signature: V%d\n"), version);
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/rpm/files/0003-CVE-2021-3521.patch b/poky/meta/recipes-devtools/rpm/files/0003-CVE-2021-3521.patch
new file mode 100644
index 0000000..a5ec802
--- /dev/null
+++ b/poky/meta/recipes-devtools/rpm/files/0003-CVE-2021-3521.patch
@@ -0,0 +1,329 @@
+From 07676ca03ad8afcf1ca95a2353c83fbb1d970b9b Mon Sep 17 00:00:00 2001
+From: Panu Matilainen <pmatilai@redhat.com>
+Date: Thu, 30 Sep 2021 09:59:30 +0300
+Subject: [PATCH 3/3] Validate and require subkey binding signatures on PGP
+ public keys
+
+All subkeys must be followed by a binding signature by the primary key
+as per the OpenPGP RFC, enforce the presence and validity in the parser.
+
+The implementation is as kludgey as they come to work around our
+simple-minded parser structure without touching API, to maximise
+backportability. Store all the raw packets internally as we decode them
+to be able to access previous elements at will, needed to validate ordering
+and access the actual data. Add testcases for manipulated keys whose
+import previously would succeed.
+
+Depends on the two previous commits:
+7b399fcb8f52566e6f3b4327197a85facd08db91 and
+236b802a4aa48711823a191d1b7f753c82a89ec5
+
+Fixes CVE-2021-3521.
+
+Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/bd36c5dc9]
+CVE:CVE-2021-3521
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+---
+ rpmio/rpmpgp.c                                | 99 +++++++++++++++++--
+ tests/Makefile.am                             |  3 +
+ tests/data/keys/CVE-2021-3521-badbind.asc     | 25 +++++
+ .../data/keys/CVE-2021-3521-nosubsig-last.asc | 25 +++++
+ tests/data/keys/CVE-2021-3521-nosubsig.asc    | 37 +++++++
+ tests/rpmsigdig.at                            | 28 ++++++
+ 6 files changed, 209 insertions(+), 8 deletions(-)
+ create mode 100644 tests/data/keys/CVE-2021-3521-badbind.asc
+ create mode 100644 tests/data/keys/CVE-2021-3521-nosubsig-last.asc
+ create mode 100644 tests/data/keys/CVE-2021-3521-nosubsig.asc
+
+diff --git a/rpmio/rpmpgp.c b/rpmio/rpmpgp.c
+index 509e777e6d..371ad4d9b6 100644
+--- a/rpmio/rpmpgp.c
++++ b/rpmio/rpmpgp.c
+@@ -1061,33 +1061,116 @@ static pgpDigParams pgpDigParamsNew(uint8_t tag)
+     return digp;
+ }
+ 
++static int hashKey(DIGEST_CTX hash, const struct pgpPkt *pkt, int exptag)
++{
++    int rc = -1;
++    if (pkt->tag == exptag) {
++       uint8_t head[] = {
++           0x99,
++           (pkt->blen >> 8),
++           (pkt->blen     ),
++       };
++
++       rpmDigestUpdate(hash, head, 3);
++       rpmDigestUpdate(hash, pkt->body, pkt->blen);
++       rc = 0;
++    }
++    return rc;
++}
++
++static int pgpVerifySelf(pgpDigParams key, pgpDigParams selfsig,
++                       const struct pgpPkt *all, int i)
++{
++    int rc = -1;
++    DIGEST_CTX hash = NULL;
++
++    switch (selfsig->sigtype) {
++    case PGPSIGTYPE_SUBKEY_BINDING:
++       hash = rpmDigestInit(selfsig->hash_algo, 0);
++       if (hash) {
++           rc = hashKey(hash, &all[0], PGPTAG_PUBLIC_KEY);
++           if (!rc)
++               rc = hashKey(hash, &all[i-1], PGPTAG_PUBLIC_SUBKEY);
++       }
++       break;
++    default:
++       /* ignore types we can't handle */
++       rc = 0;
++       break;
++    }
++
++    if (hash && rc == 0)
++       rc = pgpVerifySignature(key, selfsig, hash);
++
++    rpmDigestFinal(hash, NULL, NULL, 0);
++
++    return rc;
++}
++
+ int pgpPrtParams(const uint8_t * pkts, size_t pktlen, unsigned int pkttype,
+ 		 pgpDigParams * ret)
+ {
+     const uint8_t *p = pkts;
+     const uint8_t *pend = pkts + pktlen;
+     pgpDigParams digp = NULL;
+-    struct pgpPkt pkt;
++    pgpDigParams selfsig = NULL;
++    int i = 0;
++    int alloced = 16; /* plenty for normal cases */
++    struct pgpPkt *all = xmalloc(alloced * sizeof(*all));
+     int rc = -1; /* assume failure */
++    int expect = 0;
++    int prevtag = 0;
+ 
+     while (p < pend) {
+-	if (decodePkt(p, (pend - p), &pkt))
++	struct pgpPkt *pkt = &all[i];
++	if (decodePkt(p, (pend - p), pkt))
+ 	    break;
+ 
+ 	if (digp == NULL) {
+-	    if (pkttype && pkt.tag != pkttype) {
++               if (pkttype && pkt->tag != pkttype) {
+ 		break;
+ 	    } else {
+-		digp = pgpDigParamsNew(pkt.tag);
++		digp = pgpDigParamsNew(pkt->tag);
+ 	    }
+ 	}
+ 
+-	if (pgpPrtPkt(&pkt, digp))
++        if (expect) {
++            if (pkt->tag != expect)
++                break;
++            selfsig = pgpDigParamsNew(pkt->tag);
++        }
++	if (pgpPrtPkt(pkt, selfsig ? selfsig : digp))
+ 	    break;
+ 
+-	p += (pkt.body - pkt.head) + pkt.blen;
+-	if (pkttype == PGPTAG_SIGNATURE)
+-	    break;
++	if (selfsig) {
++           /* subkeys must be followed by binding signature */
++           if (prevtag == PGPTAG_PUBLIC_SUBKEY) {
++               if (selfsig->sigtype != PGPSIGTYPE_SUBKEY_BINDING)
++                   break;
++           }
++
++           int xx = pgpVerifySelf(digp, selfsig, all, i);
++
++           selfsig = pgpDigParamsFree(selfsig);
++           if (xx)
++               break;
++           expect = 0;
++       }
++
++       if (pkt->tag == PGPTAG_PUBLIC_SUBKEY)
++           expect = PGPTAG_SIGNATURE;
++       prevtag = pkt->tag;
++
++       i++;
++       p += (pkt->body - pkt->head) + pkt->blen;
++       if (pkttype == PGPTAG_SIGNATURE)
++           break;
++
++       if (alloced <= i) {
++           alloced *= 2;
++           all = xrealloc(all, alloced * sizeof(*all));
++       }
++
+     }
+ 
+     rc = (digp && (p == pend)) ? 0 : -1;
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index a41ce10de8..7bb23247f1 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -107,6 +107,9 @@ EXTRA_DIST += data/SPECS/hello-config-buildid.spec
+ EXTRA_DIST += data/SPECS/hello-cd.spec
+ EXTRA_DIST += data/keys/rpm.org-rsa-2048-test.pub
+ EXTRA_DIST += data/keys/rpm.org-rsa-2048-test.secret
++EXTRA_DIST += data/keys/CVE-2021-3521-badbind.asc
++EXTRA_DIST += data/keys/CVE-2022-3521-nosubsig.asc
++EXTRA_DIST += data/keys/CVE-2022-3521-nosubsig-last.asc
+ EXTRA_DIST += data/macros.testfile
+ EXTRA_DIST += data/macros.debug
+ EXTRA_DIST += data/SOURCES/foo.c
+diff --git a/tests/data/keys/CVE-2021-3521-badbind.asc b/tests/data/keys/CVE-2021-3521-badbind.asc
+new file mode 100644
+index 0000000000..aea00f9d7a
+--- /dev/null
++++ b/tests/data/keys/CVE-2021-3521-badbind.asc
+@@ -0,0 +1,25 @@
++-----BEGIN PGP PUBLIC KEY BLOCK-----
++Version: rpm-4.17.90 (NSS-3)
++
++mQENBFjmORgBCAC7TMEk6wnjSs8Dr4yqSScWdU2pjcqrkTxuzdWvowcIUPZI0w/g
++HkRqGd4apjvY2V15kjL10gk3QhFP3pZ/9p7zh8o8NHX7aGdSGDK7NOq1eFaErPRY
++91LW9RiZ0lbOjXEzIL0KHxUiTQEmdXJT43DJMFPyW9fkCWg0OltiX618FUdWWfI8
++eySdLur1utnqBvdEbCUvWK2RX3vQZQdvEBODnNk2pxqTyV0w6VPQ96W++lF/5Aas
++7rUv3HIyIXxIggc8FRrnH+y9XvvHDonhTIlGnYZN4ubm9i4y3gOkrZlGTrEw7elQ
++1QeMyG2QQEbze8YjpTm4iLABCBrRfPRaQpwrABEBAAG0IXJwbS5vcmcgUlNBIHRl
++c3RrZXkgPHJzYUBycG0ub3JnPokBNwQTAQgAIQUCWOY5GAIbAwULCQgHAgYVCAkK
++CwIEFgIDAQIeAQIXgAAKCRBDRFkeGWTF/MxxCACnjqFL+MmPh9W9JQKT2DcLbBzf
++Cqo6wcEBoCOcwgRSk8dSikhARoteoa55JRJhuMyeKhhEAogE9HRmCPFdjezFTwgB
++BDVBpO2dZ023mLXDVCYX3S8pShOgCP6Tn4wqCnYeAdLcGg106N4xcmgtcssJE+Pr
++XzTZksbZsrTVEmL/Ym+R5w5jBfFnGk7Yw7ndwfQsfNXQb5AZynClFxnX546lcyZX
++fEx3/e6ezw57WNOUK6WT+8b+EGovPkbetK/rGxNXuWaP6X4A/QUm8O98nCuHYFQq
+++mvNdsCBqGf7mhaRGtpHk/JgCn5rFvArMDqLVrR9hX0LdCSsH7EGE+bR3r7wuQEN
++BFjmORgBCACk+vDZrIXQuFXEYToZVwb2attzbbJJCqD71vmZTLsW0QxuPKRgbcYY
++zp4K4lVBnHhFrF8MOUOxJ7kQWIJZMZFt+BDcptCYurbD2H4W2xvnWViiC+LzCMzz
++iMJT6165uefL4JHTDPxC2fFiM9yrc72LmylJNkM/vepT128J5Qv0gRUaQbHiQuS6
++Dm/+WRnUfx3i89SV4mnBxb/Ta93GVqoOciWwzWSnwEnWYAvOb95JL4U7c5J5f/+c
++KnQDHsW7sIiIdscsWzvgf6qs2Ra1Zrt7Fdk4+ZS2f/adagLhDO1C24sXf5XfMk5m
++L0OGwZSr9m5s17VXxfspgU5ugc8kBJfzABEBAAE=
++=WCfs
++-----END PGP PUBLIC KEY BLOCK-----
++
+diff --git a/tests/data/keys/CVE-2021-3521-nosubsig-last.asc b/tests/data/keys/CVE-2021-3521-nosubsig-last.asc
+new file mode 100644
+index 0000000000..aea00f9d7a
+--- /dev/null
++++ b/tests/data/keys/CVE-2021-3521-nosubsig-last.asc
+@@ -0,0 +1,25 @@
++-----BEGIN PGP PUBLIC KEY BLOCK-----
++Version: rpm-4.17.90 (NSS-3)
++
++mQENBFjmORgBCAC7TMEk6wnjSs8Dr4yqSScWdU2pjcqrkTxuzdWvowcIUPZI0w/g
++HkRqGd4apjvY2V15kjL10gk3QhFP3pZ/9p7zh8o8NHX7aGdSGDK7NOq1eFaErPRY
++91LW9RiZ0lbOjXEzIL0KHxUiTQEmdXJT43DJMFPyW9fkCWg0OltiX618FUdWWfI8
++eySdLur1utnqBvdEbCUvWK2RX3vQZQdvEBODnNk2pxqTyV0w6VPQ96W++lF/5Aas
++7rUv3HIyIXxIggc8FRrnH+y9XvvHDonhTIlGnYZN4ubm9i4y3gOkrZlGTrEw7elQ
++1QeMyG2QQEbze8YjpTm4iLABCBrRfPRaQpwrABEBAAG0IXJwbS5vcmcgUlNBIHRl
++c3RrZXkgPHJzYUBycG0ub3JnPokBNwQTAQgAIQUCWOY5GAIbAwULCQgHAgYVCAkK
++CwIEFgIDAQIeAQIXgAAKCRBDRFkeGWTF/MxxCACnjqFL+MmPh9W9JQKT2DcLbBzf
++Cqo6wcEBoCOcwgRSk8dSikhARoteoa55JRJhuMyeKhhEAogE9HRmCPFdjezFTwgB
++BDVBpO2dZ023mLXDVCYX3S8pShOgCP6Tn4wqCnYeAdLcGg106N4xcmgtcssJE+Pr
++XzTZksbZsrTVEmL/Ym+R5w5jBfFnGk7Yw7ndwfQsfNXQb5AZynClFxnX546lcyZX
++fEx3/e6ezw57WNOUK6WT+8b+EGovPkbetK/rGxNXuWaP6X4A/QUm8O98nCuHYFQq
+++mvNdsCBqGf7mhaRGtpHk/JgCn5rFvArMDqLVrR9hX0LdCSsH7EGE+bR3r7wuQEN
++BFjmORgBCACk+vDZrIXQuFXEYToZVwb2attzbbJJCqD71vmZTLsW0QxuPKRgbcYY
++zp4K4lVBnHhFrF8MOUOxJ7kQWIJZMZFt+BDcptCYurbD2H4W2xvnWViiC+LzCMzz
++iMJT6165uefL4JHTDPxC2fFiM9yrc72LmylJNkM/vepT128J5Qv0gRUaQbHiQuS6
++Dm/+WRnUfx3i89SV4mnBxb/Ta93GVqoOciWwzWSnwEnWYAvOb95JL4U7c5J5f/+c
++KnQDHsW7sIiIdscsWzvgf6qs2Ra1Zrt7Fdk4+ZS2f/adagLhDO1C24sXf5XfMk5m
++L0OGwZSr9m5s17VXxfspgU5ugc8kBJfzABEBAAE=
++=WCfs
++-----END PGP PUBLIC KEY BLOCK-----
++
+diff --git a/tests/data/keys/CVE-2021-3521-nosubsig.asc b/tests/data/keys/CVE-2021-3521-nosubsig.asc
+new file mode 100644
+index 0000000000..3a2e7417f8
+--- /dev/null
++++ b/tests/data/keys/CVE-2021-3521-nosubsig.asc
+@@ -0,0 +1,37 @@
++-----BEGIN PGP PUBLIC KEY BLOCK-----
++Version: rpm-4.17.90 (NSS-3)
++
++mQENBFjmORgBCAC7TMEk6wnjSs8Dr4yqSScWdU2pjcqrkTxuzdWvowcIUPZI0w/g
++HkRqGd4apjvY2V15kjL10gk3QhFP3pZ/9p7zh8o8NHX7aGdSGDK7NOq1eFaErPRY
++91LW9RiZ0lbOjXEzIL0KHxUiTQEmdXJT43DJMFPyW9fkCWg0OltiX618FUdWWfI8
++eySdLur1utnqBvdEbCUvWK2RX3vQZQdvEBODnNk2pxqTyV0w6VPQ96W++lF/5Aas
++7rUv3HIyIXxIggc8FRrnH+y9XvvHDonhTIlGnYZN4ubm9i4y3gOkrZlGTrEw7elQ
++1QeMyG2QQEbze8YjpTm4iLABCBrRfPRaQpwrABEBAAG0IXJwbS5vcmcgUlNBIHRl
++c3RrZXkgPHJzYUBycG0ub3JnPokBNwQTAQgAIQUCWOY5GAIbAwULCQgHAgYVCAkK
++CwIEFgIDAQIeAQIXgAAKCRBDRFkeGWTF/MxxCACnjqFL+MmPh9W9JQKT2DcLbBzf
++Cqo6wcEBoCOcwgRSk8dSikhARoteoa55JRJhuMyeKhhEAogE9HRmCPFdjezFTwgB
++BDVBpO2dZ023mLXDVCYX3S8pShOgCP6Tn4wqCnYeAdLcGg106N4xcmgtcssJE+Pr
++XzTZksbZsrTVEmL/Ym+R5w5jBfFnGk7Yw7ndwfQsfNXQb5AZynClFxnX546lcyZX
++fEx3/e6ezw57WNOUK6WT+8b+EGovPkbetK/rGxNXuWaP6X4A/QUm8O98nCuHYFQq
+++mvNdsCBqGf7mhaRGtpHk/JgCn5rFvArMDqLVrR9hX0LdCSsH7EGE+bR3r7wuQEN
++BFjmORgBCACk+vDZrIXQuFXEYToZVwb2attzbbJJCqD71vmZTLsW0QxuPKRgbcYY
++zp4K4lVBnHhFrF8MOUOxJ7kQWIJZMZFt+BDcptCYurbD2H4W2xvnWViiC+LzCMzz
++iMJT6165uefL4JHTDPxC2fFiM9yrc72LmylJNkM/vepT128J5Qv0gRUaQbHiQuS6
++Dm/+WRnUfx3i89SV4mnBxb/Ta93GVqoOciWwzWSnwEnWYAvOb95JL4U7c5J5f/+c
++KnQDHsW7sIiIdscsWzvgf6qs2Ra1Zrt7Fdk4+ZS2f/adagLhDO1C24sXf5XfMk5m
++L0OGwZSr9m5s17VXxfspgU5ugc8kBJfzABEBAAG5AQ0EWOY5GAEIAKT68NmshdC4
++VcRhOhlXBvZq23NtskkKoPvW+ZlMuxbRDG48pGBtxhjOngriVUGceEWsXww5Q7En
++uRBYglkxkW34ENym0Ji6tsPYfhbbG+dZWKIL4vMIzPOIwlPrXrm558vgkdMM/ELZ
++8WIz3KtzvYubKUk2Qz+96lPXbwnlC/SBFRpBseJC5LoOb/5ZGdR/HeLz1JXiacHF
++v9Nr3cZWqg5yJbDNZKfASdZgC85v3kkvhTtzknl//5wqdAMexbuwiIh2xyxbO+B/
++qqzZFrVmu3sV2Tj5lLZ/9p1qAuEM7ULbixd/ld8yTmYvQ4bBlKv2bmzXtVfF+ymB
++Tm6BzyQEl/MAEQEAAYkBHwQYAQgACQUCWOY5GAIbDAAKCRBDRFkeGWTF/PANB/9j
++mifmj6z/EPe0PJFhrpISt9PjiUQCt0IPtiL5zKAkWjHePIzyi+0kCTBF6DDLFxos
++3vN4bWnVKT1kBhZAQlPqpJTg+m74JUYeDGCdNx9SK7oRllATqyu+5rncgxjWVPnQ
++zu/HRPlWJwcVFYEVXYL8xzfantwQTqefjmcRmBRdA2XJITK+hGWwAmrqAWx+q5xX
++Pa8wkNMxVzNS2rUKO9SoVuJ/wlUvfoShkJ/VJ5HDp3qzUqncADfdGN35TDzscngQ
++gHvnMwVBfYfSCABV1hNByoZcc/kxkrWMmsd/EnIyLd1Q1baKqc3cEDuC6E6/o4yJ
++E4XX4jtDmdZPreZALsiB
++=rRop
++-----END PGP PUBLIC KEY BLOCK-----
++
+diff --git a/tests/rpmsigdig.at b/tests/rpmsigdig.at
+index 8e7c759b8f..e2d30a7f1b 100644
+--- a/tests/rpmsigdig.at
++++ b/tests/rpmsigdig.at
+@@ -2,6 +2,34 @@
+ 
+ AT_BANNER([RPM signatures and digests])
+ 
++AT_SETUP([rpmkeys --import invalid keys])
++AT_KEYWORDS([rpmkeys import])
++RPMDB_INIT
++
++AT_CHECK([
++runroot rpmkeys --import /data/keys/CVE-2021-3521-badbind.asc
++],
++[1],
++[],
++[error: /data/keys/CVE-2021-3521-badbind.asc: key 1 import failed.]
++)
++AT_CHECK([
++runroot rpmkeys --import /data/keys/CVE-2021-3521-nosubsig.asc
++],
++[1],
++[],
++[error: /data/keys/CVE-2021-3521-nosubsig.asc: key 1 import failed.]
++)
++
++AT_CHECK([
++runroot rpmkeys --import /data/keys/CVE-2021-3521-nosubsig-last.asc
++],
++[1],
++[],
++[error: /data/keys/CVE-2021-3521-nosubsig-last.asc: key 1 import failed.]
++)
++AT_CLEANUP
++
+ # ------------------------------
+ # Test pre-built package verification
+ AT_SETUP([rpmkeys -Kv <unsigned> 1])
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/rpm/rpm_4.17.0.bb b/poky/meta/recipes-devtools/rpm/rpm_4.17.0.bb
index 00e480b..0e852d0 100644
--- a/poky/meta/recipes-devtools/rpm/rpm_4.17.0.bb
+++ b/poky/meta/recipes-devtools/rpm/rpm_4.17.0.bb
@@ -24,7 +24,7 @@
 LICENSE = "GPL-2.0"
 LIC_FILES_CHKSUM = "file://COPYING;md5=c4eec0c20c6034b9407a09945b48a43f"
 
-SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.17.x \
+SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.17.x;protocol=https \
            file://environment.d-rpm.sh \
            file://0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch \
            file://0001-Do-not-read-config-files-from-HOME.patch \
@@ -39,6 +39,9 @@
            file://0001-tools-Add-error.h-for-non-glibc-case.patch \
            file://0001-docs-do-not-build-manpages-requires-pandoc.patch \
            file://0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch \
+           file://0001-CVE-2021-3521.patch \
+           file://0002-CVE-2021-3521.patch \
+           file://0003-CVE-2021-3521.patch \
            "
 
 PE = "1"
@@ -134,6 +137,9 @@
 do_install:append:class-target() {
     rm -rf ${D}/var
 }
+do_install:append:class-nativesdk() {
+    rm -rf ${D}${SDKPATHNATIVE}/var
+}
 
 do_install:append () {
 	sed -i -e 's:${HOSTTOOLS_DIR}/::g' \
diff --git a/poky/meta/recipes-devtools/ruby/ruby.inc b/poky/meta/recipes-devtools/ruby/ruby.inc
index 2b5caf3..20ae15b 100644
--- a/poky/meta/recipes-devtools/ruby/ruby.inc
+++ b/poky/meta/recipes-devtools/ruby/ruby.inc
@@ -10,7 +10,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=5b8c87559868796979806100db3f3805 \
                     file://BSDL;md5=8b50bc6de8f586dc66790ba11d064d75 \
                     file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://LEGAL;md5=cfe5b0bc9f051b58c7e78db882ca5f9b \
+                    file://LEGAL;md5=f260190bc1e92e363f0ee3c0463d4c7c \
                     "
 
 DEPENDS = "ruby-native zlib openssl libyaml gdbm readline libffi"
@@ -23,7 +23,7 @@
            "
 UPSTREAM_CHECK_URI = "https://www.ruby-lang.org/en/downloads/"
 
-inherit autotools ptest
+inherit autotools ptest pkgconfig
 
 
 # This snippet lets compiled extensions which rely on external libraries,
@@ -37,8 +37,3 @@
     sed -i "s#%%TARGET_CFLAGS%%#$CFLAGS#; s#%%TARGET_LDFLAGS%%#$LDFLAGS#" ${S}/common.mk
     rm -rf ${S}/ruby/
 }
-
-# Disable openssl extension until it becomes compatible with openssl 3
-do_configure:prepend() {
-    rm -rf ${S}/ext/openssl/extconf.rb
-}
diff --git a/poky/meta/recipes-devtools/ruby/ruby/0006-Make-gemspecs-reproducible.patch b/poky/meta/recipes-devtools/ruby/ruby/0006-Make-gemspecs-reproducible.patch
index 504893b..de8d4f0 100644
--- a/poky/meta/recipes-devtools/ruby/ruby/0006-Make-gemspecs-reproducible.patch
+++ b/poky/meta/recipes-devtools/ruby/ruby/0006-Make-gemspecs-reproducible.patch
@@ -1,6 +1,7 @@
+From 6e1dc610724a7aa8368cbcddf4bbe21cccc0f731 Mon Sep 17 00:00:00 2001
 From: Lucas Kanashiro <kanashiro@debian.org>
 Date: Fri, 1 Nov 2019 15:25:17 -0300
-Subject: Make gemspecs reproducible
+Subject: [PATCH] Make gemspecs reproducible
 
 Without an explicit date, they will get the current date and make the
 build unreproducible
@@ -10,34 +11,40 @@
 ---
  ext/bigdecimal/bigdecimal.gemspec | 1 +
  ext/fiddle/fiddle.gemspec         | 1 +
- ext/io/console/io-console.gemspec | 2 +-
+ ext/io/console/io-console.gemspec | 1 +
  lib/ipaddr.gemspec                | 1 +
  lib/rdoc/rdoc.gemspec             | 1 +
- 5 files changed, 5 insertions(+), 1 deletion(-)
+ 5 files changed, 5 insertions(+)
 
+diff --git a/ext/bigdecimal/bigdecimal.gemspec b/ext/bigdecimal/bigdecimal.gemspec
+index fd49c1b..5b8bb00 100644
 --- a/ext/bigdecimal/bigdecimal.gemspec
 +++ b/ext/bigdecimal/bigdecimal.gemspec
-@@ -6,6 +6,7 @@
+@@ -4,6 +4,7 @@ Gem::Specification.new do |s|
    s.name          = "bigdecimal"
-   s.version       = bigdecimal_version
+   s.version       = "3.1.1"
    s.authors       = ["Kenta Murata", "Zachary Scott", "Shigeo Kobayashi"]
 +  s.date          = RUBY_RELEASE_DATE
    s.email         = ["mrkn@mrkn.jp"]
-
+ 
    s.summary       = "Arbitrary-precision decimal floating-point number library."
+diff --git a/ext/fiddle/fiddle.gemspec b/ext/fiddle/fiddle.gemspec
+index a9c0ec4..89da078 100644
 --- a/ext/fiddle/fiddle.gemspec
 +++ b/ext/fiddle/fiddle.gemspec
-@@ -8,6 +8,7 @@
+@@ -8,6 +8,7 @@ end
  Gem::Specification.new do |spec|
    spec.name          = "fiddle"
    spec.version       = version_module::Fiddle::VERSION
 +  spec.date          = RUBY_RELEASE_DATE
    spec.authors       = ["Aaron Patterson", "SHIBATA Hiroshi"]
    spec.email         = ["aaron@tenderlovemaking.com", "hsbt@ruby-lang.org"]
-
+ 
+diff --git a/ext/io/console/io-console.gemspec b/ext/io/console/io-console.gemspec
+index 36beda7..e932d83 100644
 --- a/ext/io/console/io-console.gemspec
 +++ b/ext/io/console/io-console.gemspec
-@@ -4,6 +4,7 @@
+@@ -4,6 +4,7 @@ _VERSION = "0.5.10"
  Gem::Specification.new do |s|
    s.name = "io-console"
    s.version = _VERSION
@@ -45,23 +52,27 @@
    s.summary = "Console interface"
    s.email = "nobu@ruby-lang.org"
    s.description = "add console capabilities to IO instances."
+diff --git a/lib/ipaddr.gemspec b/lib/ipaddr.gemspec
+index 36e2300..06dc888 100644
 --- a/lib/ipaddr.gemspec
 +++ b/lib/ipaddr.gemspec
-@@ -6,6 +6,7 @@
+@@ -6,6 +6,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
  Gem::Specification.new do |spec|
    spec.name          = "ipaddr"
-   spec.version       = "1.2.2"
+   spec.version       = "1.2.3"
 +  spec.date          = RUBY_RELEASE_DATE
    spec.authors       = ["Akinori MUSHA", "Hajimu UMEMOTO"]
    spec.email         = ["knu@idaemons.org", "ume@mahoroba.org"]
-
+ 
+diff --git a/lib/rdoc/rdoc.gemspec b/lib/rdoc/rdoc.gemspec
+index 525a15f..f6d0e22 100644
 --- a/lib/rdoc/rdoc.gemspec
 +++ b/lib/rdoc/rdoc.gemspec
-@@ -7,6 +7,7 @@
-
+@@ -7,6 +7,7 @@ end
+ 
  Gem::Specification.new do |s|
    s.name = "rdoc"
 +  s.date = RUBY_RELEASE_DATE
    s.version = RDoc::VERSION
-
+ 
    s.authors = [
diff --git a/poky/meta/recipes-devtools/ruby/ruby/remove_has_include_macros.patch b/poky/meta/recipes-devtools/ruby/ruby/remove_has_include_macros.patch
index 6e90a8e..b78e3db 100644
--- a/poky/meta/recipes-devtools/ruby/ruby/remove_has_include_macros.patch
+++ b/poky/meta/recipes-devtools/ruby/ruby/remove_has_include_macros.patch
@@ -1,4 +1,4 @@
-From 303fe0d20184203f1ac86d2a77b1447d47c8c29d Mon Sep 17 00:00:00 2001
+From e74b57febec9bd806e29025e6eeb8091e7021d75 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sun, 26 Jan 2020 11:27:40 -0800
 Subject: [PATCH] Filter out __has_include* compiler defines
@@ -21,12 +21,12 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/common.mk b/common.mk
-index 7633050..422aa9c 100644
+index 664f750..3b8fbe6 100644
 --- a/common.mk
 +++ b/common.mk
-@@ -233,6 +233,8 @@ $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time: probes.h vm.$(OBJE
+@@ -238,6 +238,8 @@ $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time: probes.h vm.$(OBJE
  	$(ECHO) building $(@F:.time=.h)
- 	$(MINIRUBY) $(tooldir)/mjit_tabs.rb "$(MJIT_TABS)" \
+ 	$(Q)$(MINIRUBY) $(tooldir)/mjit_tabs.rb "$(MJIT_TABS)" \
  		$(CPP) -DMJIT_HEADER $(MJIT_HEADER_FLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/vm.c $(CPPOUTFLAG)$(@F:.time=.h).new
 +	$(Q)sed -i -e "/#define __has_include __has_include/d" $(@F:.time=.h).new
 +	$(Q)sed -i -e "/#define __has_include_next __has_include_next/d" $(@F:.time=.h).new
diff --git a/poky/meta/recipes-devtools/ruby/ruby_3.0.2.bb b/poky/meta/recipes-devtools/ruby/ruby_3.0.2.bb
deleted file mode 100644
index 2abf504..0000000
--- a/poky/meta/recipes-devtools/ruby/ruby_3.0.2.bb
+++ /dev/null
@@ -1,107 +0,0 @@
-require ruby.inc
-
-DEPENDS:append:libc-musl = " libucontext"
-
-SRC_URI += " \
-           file://remove_has_include_macros.patch \
-           file://run-ptest \
-           file://0001-template-Makefile.in-do-not-write-host-cross-cc-item.patch \
-           file://0002-template-Makefile.in-filter-out-f-prefix-map.patch \
-           file://0003-rdoc-build-reproducible-documentation.patch \
-           file://0004-lib-mkmf.rb-sort-list-of-object-files-in-generated-M.patch \
-           file://0005-Mark-Gemspec-reproducible-change-fixing-784225-too.patch \
-           file://0006-Make-gemspecs-reproducible.patch \
-           "
-
-SRC_URI[sha256sum] = "5085dee0ad9f06996a8acec7ebea4a8735e6fac22f22e2d98c3f2bc3bef7e6f1"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-
-PACKAGECONFIG[valgrind] = "--with-valgrind=yes, --with-valgrind=no, valgrind"
-PACKAGECONFIG[gmp] = "--with-gmp=yes, --with-gmp=no, gmp"
-PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6,"
-
-EXTRA_OECONF = "\
-    --disable-versioned-paths \
-    --disable-rpath \
-    --disable-dtrace \
-    --enable-shared \
-    --enable-load-relative \
-    --with-pkg-config=pkg-config \
-"
-
-EXTRA_OECONF:append:libc-musl = "\
-    LIBS='-lucontext' \
-    ac_cv_func_isnan=yes \
-    ac_cv_func_isinf=yes \
-"
-
-EXTRA_OECONF:append:libc-musl:riscv64 = "\
-    --with-coroutine=copy \
-"
-EXTRA_OECONF:append:libc-musl:riscv32 = "\
-    --with-coroutine=copy \
-"
-
-do_install() {
-    oe_runmake 'DESTDIR=${D}' install
-}
-
-do_install:append:class-target () {
-    # Find out rbconfig.rb from .installed.list
-    rbconfig_rb=`grep rbconfig.rb ${B}/.installed.list`
-    # Remove build host directories
-    sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' \
-           -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \
-           -e 's|${DEBUG_PREFIX_MAP}||g' \
-           -e 's:${HOSTTOOLS_DIR}/::g' \
-           -e 's:${RECIPE_SYSROOT_NATIVE}::g' \
-           -e 's:${RECIPE_SYSROOT}::g' \
-           -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
-        ${D}$rbconfig_rb
-
-    sed -i -e 's|${DEBUG_PREFIX_MAP}||g' \
-        ${D}${libdir}/pkgconfig/*.pc
-
-}
-
-do_install_ptest () {
-    cp -rf ${S}/test ${D}${PTEST_PATH}/
-
-    install -D ${S}/tool/test/runner.rb ${D}${PTEST_PATH}/tool/test/runner.rb
-    cp -r ${S}/tool/lib ${D}${PTEST_PATH}/tool/
-    mkdir -p ${D}${PTEST_PATH}/lib
-    cp -r ${S}/lib/did_you_mean ${S}/lib/rdoc ${D}${PTEST_PATH}/lib
-
-    # install test-binaries
-    find $(find ./.ext -path '*/-test-') -name '*.so' -print0 \
-        | tar --no-recursion --null -T - --no-same-owner --preserve-permissions -cf - \
-        | tar -C ${D}${libdir}/ruby/${SHRT_VER}.0/ --no-same-owner --preserve-permissions --strip-components=2 -xf -
-    # adjust path to not assume build directory layout
-    sed -e 's|File.expand_path(.*\.\./bin/erb[^)]*|File.expand_path("${bindir}/erb"|g' \
-        -i ${D}${PTEST_PATH}/test/erb/test_erb_command.rb
-
-    cp -r ${S}/include ${D}/${libdir}/ruby/
-    test_case_rb=`grep rubygems/test_case.rb ${B}/.installed.list`
-    sed -i -e 's:../../../test/:../../../ptest/test/:g' ${D}/$test_case_rb
-}
-
-PACKAGES =+ "${PN}-ri-docs ${PN}-rdoc"
-
-SUMMARY:${PN}-ri-docs = "ri (Ruby Interactive) documentation for the Ruby standard library"
-RDEPENDS:${PN}-ri-docs = "${PN}"
-FILES:${PN}-ri-docs += "${datadir}/ri"
-
-SUMMARY:${PN}-rdoc = "RDoc documentation generator from Ruby source"
-RDEPENDS:${PN}-rdoc = "${PN}"
-FILES:${PN}-rdoc += "${libdir}/ruby/*/rdoc ${bindir}/rdoc"
-
-FILES:${PN} += "${datadir}/rubygems"
-
-FILES:${PN}-ptest:append:class-target = "\
-    ${libdir}/ruby/include \
-    ${libdir}/ruby/${SHRT_VER}.0/*/-test- \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/ruby/ruby_3.1.0.bb b/poky/meta/recipes-devtools/ruby/ruby_3.1.0.bb
new file mode 100644
index 0000000..7183c93
--- /dev/null
+++ b/poky/meta/recipes-devtools/ruby/ruby_3.1.0.bb
@@ -0,0 +1,116 @@
+require ruby.inc
+
+DEPENDS:append:libc-musl = " libucontext"
+
+SRC_URI += " \
+           file://remove_has_include_macros.patch \
+           file://run-ptest \
+           file://0001-template-Makefile.in-do-not-write-host-cross-cc-item.patch \
+           file://0002-template-Makefile.in-filter-out-f-prefix-map.patch \
+           file://0003-rdoc-build-reproducible-documentation.patch \
+           file://0004-lib-mkmf.rb-sort-list-of-object-files-in-generated-M.patch \
+           file://0005-Mark-Gemspec-reproducible-change-fixing-784225-too.patch \
+           file://0006-Make-gemspecs-reproducible.patch \
+           "
+
+SRC_URI[sha256sum] = "50a0504c6edcb4d61ce6b8cfdbddaa95707195fab0ecd7b5e92654b2a9412854"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+
+PACKAGECONFIG[valgrind] = "--with-valgrind=yes, --with-valgrind=no, valgrind"
+PACKAGECONFIG[gmp] = "--with-gmp=yes, --with-gmp=no, gmp"
+PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6,"
+# rdoc is off by default due to non-reproducibility reported in
+# https://bugs.ruby-lang.org/issues/18456
+PACKAGECONFIG[rdoc] = "--enable-install-rdoc,--disable-install-rdoc,"
+
+EXTRA_OECONF = "\
+    --disable-versioned-paths \
+    --disable-rpath \
+    --disable-dtrace \
+    --enable-shared \
+    --enable-load-relative \
+    --with-pkg-config=pkg-config \
+    --with-static-linked-ext \
+"
+
+EXTRA_OECONF:append:libc-musl = "\
+    LIBS='-lucontext' \
+    ac_cv_func_isnan=yes \
+    ac_cv_func_isinf=yes \
+"
+
+EXTRA_OECONF:append:libc-musl:riscv64 = "\
+    --with-coroutine=copy \
+"
+EXTRA_OECONF:append:libc-musl:riscv32 = "\
+    --with-coroutine=copy \
+"
+
+do_install() {
+    oe_runmake 'DESTDIR=${D}' install
+}
+
+do_install:append:class-target () {
+    # Find out rbconfig.rb from .installed.list
+    rbconfig_rb=`grep rbconfig.rb ${B}/.installed.list`
+    # Remove build host directories
+    sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' \
+           -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \
+           -e 's|${DEBUG_PREFIX_MAP}||g' \
+           -e 's:${HOSTTOOLS_DIR}/::g' \
+           -e 's:${RECIPE_SYSROOT_NATIVE}::g' \
+           -e 's:${RECIPE_SYSROOT}::g' \
+           -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
+        ${D}$rbconfig_rb
+
+    sed -i -e 's|${DEBUG_PREFIX_MAP}||g' \
+        ${D}${libdir}/pkgconfig/*.pc
+
+    # logs that may contain host-specific paths
+    find ${D} -name gem_make.out -delete
+}
+
+do_install_ptest () {
+    cp -rf ${S}/test ${D}${PTEST_PATH}/
+
+    install -D ${S}/tool/test/runner.rb ${D}${PTEST_PATH}/tool/test/runner.rb
+    cp -r ${S}/tool/lib ${D}${PTEST_PATH}/tool/
+    mkdir -p ${D}${PTEST_PATH}/lib
+    cp -r ${S}/lib/did_you_mean ${S}/lib/rdoc ${D}${PTEST_PATH}/lib
+
+    # install test-binaries
+    # These .so files have sporadic reproducibility fails as seen here:
+    # https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20220107-rm1diuww/packages/diff-html/
+    # As they are needed only in ruby-ptest, and that is currently altogether disabled, let's take them out.
+    # If someone wants to look at where the non-determinism comes from, one possible reason is use of
+    # -rdynamic -Wl,-export-dynamic
+    #find $(find ./.ext -path '*/-test-') -name '*.so' -print0 \
+    #    | tar --no-recursion --null -T - --no-same-owner --preserve-permissions -cf - \
+    #    | tar -C ${D}${libdir}/ruby/${SHRT_VER}.0/ --no-same-owner --preserve-permissions --strip-components=2 -xf -
+    # adjust path to not assume build directory layout
+    sed -e 's|File.expand_path(.*\.\./bin/erb[^)]*|File.expand_path("${bindir}/erb"|g' \
+        -i ${D}${PTEST_PATH}/test/erb/test_erb_command.rb
+
+    cp -r ${S}/include ${D}/${libdir}/ruby/
+}
+
+PACKAGES =+ "${PN}-ri-docs ${PN}-rdoc"
+
+SUMMARY:${PN}-ri-docs = "ri (Ruby Interactive) documentation for the Ruby standard library"
+RDEPENDS:${PN}-ri-docs = "${PN}"
+FILES:${PN}-ri-docs += "${datadir}/ri"
+
+SUMMARY:${PN}-rdoc = "RDoc documentation generator from Ruby source"
+RDEPENDS:${PN}-rdoc = "${PN}"
+FILES:${PN}-rdoc += "${libdir}/ruby/*/rdoc ${bindir}/rdoc"
+
+FILES:${PN} += "${datadir}/rubygems"
+
+FILES:${PN}-ptest:append:class-target = "\
+    ${libdir}/ruby/include \
+    ${libdir}/ruby/${SHRT_VER}.0/*/-test- \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/rust/files/riscv-march.patch b/poky/meta/recipes-devtools/rust/files/riscv-march.patch
deleted file mode 100644
index a10b3a4..0000000
--- a/poky/meta/recipes-devtools/rust/files/riscv-march.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-Add suppor for riscv64 and riscv32 musl targets
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/vendor/cc/src/lib.rs
-+++ b/vendor/cc/src/lib.rs
-@@ -2361,6 +2361,7 @@ impl Build {
-                 "riscv-none-embed",
-             ]),
-             "riscv64gc-unknown-linux-gnu" => Some("riscv64-linux-gnu"),
-+            "riscv64gc-unknown-linux-musl" => Some("riscv64-linux-musl"),
-             "s390x-unknown-linux-gnu" => Some("s390x-linux-gnu"),
-             "sparc-unknown-linux-gnu" => Some("sparc-linux-gnu"),
-             "sparc64-unknown-linux-gnu" => Some("sparc64-linux-gnu"),
---- a/compiler/rustc_target/src/spec/mod.rs
-+++ b/compiler/rustc_target/src/spec/mod.rs
-@@ -641,9 +641,11 @@ supported_targets! {
-     ("riscv32imc-unknown-none-elf", riscv32imc_unknown_none_elf),
-     ("riscv32imac-unknown-none-elf", riscv32imac_unknown_none_elf),
-     ("riscv32gc-unknown-linux-gnu", riscv32gc_unknown_linux_gnu),
-+    ("riscv32gc-unknown-linux-musl", riscv32gc_unknown_linux_musl),
-     ("riscv64imac-unknown-none-elf", riscv64imac_unknown_none_elf),
-     ("riscv64gc-unknown-none-elf", riscv64gc_unknown_none_elf),
-     ("riscv64gc-unknown-linux-gnu", riscv64gc_unknown_linux_gnu),
-+    ("riscv64gc-unknown-linux-musl", riscv64gc_unknown_linux_musl),
- 
-     ("aarch64-unknown-none", aarch64_unknown_none),
-     ("aarch64-unknown-none-softfloat", aarch64_unknown_none_softfloat),
---- /dev/null
-+++ b/compiler/rustc_target/src/spec/riscv32gc_unknown_linux_musl.rs
-@@ -0,0 +1,19 @@
-+use crate::spec::{CodeModel, Target, TargetOptions};
-+
-+pub fn target() -> Target {
-+    Target {
-+        llvm_target: "riscv32-unknown-linux-musl".to_string(),
-+        pointer_width: 32,
-+        data_layout: "e-m:e-p:32:32-i64:64-n32-S128".to_string(),
-+        arch: "riscv32".to_string(),
-+        options: TargetOptions {
-+            unsupported_abis: super::riscv_base::unsupported_abis(),
-+            code_model: Some(CodeModel::Medium),
-+            cpu: "generic-rv32".to_string(),
-+            features: "+m,+a,+f,+d,+c".to_string(),
-+            llvm_abiname: "ilp32d".to_string(),
-+            max_atomic_width: Some(32),
-+            ..super::linux_musl_base::opts()
-+        },
-+    }
-+}
---- /dev/null
-+++ b/compiler/rustc_target/src/spec/riscv64gc_unknown_linux_musl.rs
-@@ -0,0 +1,19 @@
-+use crate::spec::{CodeModel, Target, TargetOptions};
-+
-+pub fn target() -> Target {
-+    Target {
-+        llvm_target: "riscv64-unknown-linux-musl".to_string(),
-+        pointer_width: 64,
-+        data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".to_string(),
-+        arch: "riscv64".to_string(),
-+        options: TargetOptions {
-+            unsupported_abis: super::riscv_base::unsupported_abis(),
-+            code_model: Some(CodeModel::Medium),
-+            cpu: "generic-rv64".to_string(),
-+            features: "+m,+a,+f,+d,+c".to_string(),
-+            llvm_abiname: "lp64d".to_string(),
-+            max_atomic_width: Some(64),
-+            ..super::linux_musl_base::opts()
-+        },
-+    }
-+}
diff --git a/poky/meta/recipes-devtools/rust/files/rv64gc.patch b/poky/meta/recipes-devtools/rust/files/rv64gc.patch
deleted file mode 100644
index aab1e18..0000000
--- a/poky/meta/recipes-devtools/rust/files/rv64gc.patch
+++ /dev/null
@@ -1,37 +0,0 @@
---- a/vendor/cc-1.0.60/.cargo-checksum.json
-+++ b/vendor/cc-1.0.60/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{"Cargo.lock":"30b9e23f97015aea3eed3e17c6d76d565c2924efec8bdae64c899080847afe89","Cargo.toml":"f6f22b69df3df57c58373cdee72b22218ffa030bc375b36632660037dd72c866","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"51405d284d2e0620db62c655c652fc0ec84f20c1cb30529227355c9575a9e6dd","src/bin/gcc-shim.rs":"b77907875029494b6288841c3aed2e4939ed40708c7f597fca5c9e2570490ca6","src/com.rs":"bcdaf1c28b71e6ef889c6b08d1ce9d7c0761344a677f523bc4c3cd297957f804","src/lib.rs":"903c5f2f5dd0cc7d04f99f605a95e6abde8b38156fd4e73eefc58493f55a4e5a","src/registry.rs":"3cc1b5a50879fa751572878ae1d0afbfc960c11665258492754b2c8bccb0ff5d","src/setup_config.rs":"7014103587d3382eac599cb76f016e2609b8140970861b2237982d1db24af265","src/winapi.rs":"ea8b7edbb9ff87957254f465c2334e714c5d6b3b19a8d757c48ea7ca0881c50c","src/windows_registry.rs":"52afe8554f577c87841c48ddee3ba7ffe70a00129e1d6eeb2ec0efb3d2b9aa11","tests/cc_env.rs":"e02b3b0824ad039b47e4462c5ef6dbe6c824c28e7953af94a0f28f7b5158042e","tests/cflags.rs":"57f06eb5ce1557e5b4a032d0c4673e18fbe6f8d26c1deb153126e368b96b41b3","tests/cxxflags.rs":"c2c6c6d8a0d7146616fa1caed26876ee7bc9fcfffd525eb4743593cade5f3371","tests/support/mod.rs":"16274867f23871e9b07614eda4c7344da13d1751fed63d4f633857e40be86394","tests/test.rs":"65c073e0e2cf4aa0433066102788e9f57442719e6f32f5ad5248aa7132bb4597"},"package":"ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"}
-\ No newline at end of file
-+{"files":{"Cargo.lock":"30b9e23f97015aea3eed3e17c6d76d565c2924efec8bdae64c899080847afe89","Cargo.toml":"f6f22b69df3df57c58373cdee72b22218ffa030bc375b36632660037dd72c866","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"51405d284d2e0620db62c655c652fc0ec84f20c1cb30529227355c9575a9e6dd","src/bin/gcc-shim.rs":"b77907875029494b6288841c3aed2e4939ed40708c7f597fca5c9e2570490ca6","src/com.rs":"bcdaf1c28b71e6ef889c6b08d1ce9d7c0761344a677f523bc4c3cd297957f804","src/lib.rs":"2788af2bdf425f267b33bc524f3e627851b52422e38f480a7e39eb834264fd73","src/registry.rs":"3cc1b5a50879fa751572878ae1d0afbfc960c11665258492754b2c8bccb0ff5d","src/setup_config.rs":"7014103587d3382eac599cb76f016e2609b8140970861b2237982d1db24af265","src/winapi.rs":"ea8b7edbb9ff87957254f465c2334e714c5d6b3b19a8d757c48ea7ca0881c50c","src/windows_registry.rs":"52afe8554f577c87841c48ddee3ba7ffe70a00129e1d6eeb2ec0efb3d2b9aa11","tests/cc_env.rs":"e02b3b0824ad039b47e4462c5ef6dbe6c824c28e7953af94a0f28f7b5158042e","tests/cflags.rs":"57f06eb5ce1557e5b4a032d0c4673e18fbe6f8d26c1deb153126e368b96b41b3","tests/cxxflags.rs":"c2c6c6d8a0d7146616fa1caed26876ee7bc9fcfffd525eb4743593cade5f3371","tests/support/mod.rs":"16274867f23871e9b07614eda4c7344da13d1751fed63d4f633857e40be86394","tests/test.rs":"65c073e0e2cf4aa0433066102788e9f57442719e6f32f5ad5248aa7132bb4597"},"package":"ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"}
---- a/vendor/cc-1.0.60/src/lib.rs
-+++ b/vendor/cc-1.0.60/src/lib.rs
-@@ -1639,14 +1639,17 @@ impl Build {
-                     let mut parts = target.split('-');
-                     if let Some(arch) = parts.next() {
-                         let arch = &arch[5..];
--                        cmd.args.push(("-march=rv".to_owned() + arch).into());
-                         if target.contains("linux") && arch.starts_with("64") {
-+                            cmd.args.push(("-march=rv64gc").into());
-                             cmd.args.push("-mabi=lp64d".into());
-                         } else if target.contains("linux") && arch.starts_with("32") {
-+                            cmd.args.push(("-march=rv32gc").into());
-                             cmd.args.push("-mabi=ilp32d".into());
-                         } else if arch.starts_with("64") {
-+                            cmd.args.push(("-march=rv".to_owned() + arch).into());
-                             cmd.args.push("-mabi=lp64".into());
-                         } else {
-+                            cmd.args.push(("-march=rv".to_owned() + arch).into());
-                             cmd.args.push("-mabi=ilp32".into());
-                         }
-                         cmd.args.push("-mcmodel=medany".into());
-@@ -2332,6 +2335,9 @@ impl Build {
-                 "riscv-none-embed",
-             ]),
-             "riscv64gc-unknown-linux-gnu" => Some("riscv64-linux-gnu"),
-+            "riscv32gc-unknown-linux-gnu" => Some("riscv32-linux-gnu"),
-+            "riscv64gc-unknown-linux-musl" => Some("riscv64-linux-musl"),
-+            "riscv32gc-unknown-linux-musl" => Some("riscv32-linux-musl"),
-             "s390x-unknown-linux-gnu" => Some("s390x-linux-gnu"),
-             "sparc-unknown-linux-gnu" => Some("sparc-linux-gnu"),
-             "sparc64-unknown-linux-gnu" => Some("sparc64-linux-gnu"),
diff --git a/poky/meta/recipes-devtools/rust/libstd-rs/0001-Add-base-definitions-for-riscv64-musl.patch b/poky/meta/recipes-devtools/rust/libstd-rs/0001-Add-base-definitions-for-riscv64-musl.patch
new file mode 100644
index 0000000..b1cd45d
--- /dev/null
+++ b/poky/meta/recipes-devtools/rust/libstd-rs/0001-Add-base-definitions-for-riscv64-musl.patch
@@ -0,0 +1,871 @@
+From 8b86ecf87cf3589861b458f099572ad8487fc6cc Mon Sep 17 00:00:00 2001
+From: Ralf Anton Beier <ralf_beier@me.com>
+Date: Sun, 8 Aug 2021 11:05:06 +0200
+Subject: [PATCH 1/4] Add base definitions for riscv64 + musl
+
+https://github.com/rust-lang/libc/pull/1994/commits/030a07761f61f3293d53752e60edbd330a9d718d
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/2537]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
+---
+ .../src/unix/linux_like/linux/musl/b64/mod.rs |   3 +
+ .../linux_like/linux/musl/b64/riscv64/mod.rs  | 832 ++++++++++++++++++
+ 2 files changed, 835 insertions(+)
+ create mode 100644 vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
+
+diff --git a/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
+index cfcdaaecf..7261b95d2 100644
+--- a/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
++++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
+@@ -163,6 +163,9 @@ cfg_if! {
+     } else if #[cfg(any(target_arch = "x86_64"))] {
+         mod x86_64;
+         pub use self::x86_64::*;
++    } else if #[cfg(any(target_arch = "riscv64"))] {
++        mod riscv64;
++        pub use self::riscv64::*;
+     } else {
+         // Unknown target_arch
+     }
+diff --git a/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
+new file mode 100644
+index 000000000..c656189c4
+--- /dev/null
++++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
+@@ -0,0 +1,832 @@
++//! RISC-V-specific definitions for 64-bit linux-like values
++
++pub type c_char = u8;
++pub type c_long = i64;
++pub type c_ulong = u64;
++pub type wchar_t = ::c_int;
++
++pub type nlink_t = ::c_uint;
++pub type blksize_t = ::c_int;
++pub type fsblkcnt64_t = ::c_ulong;
++pub type fsfilcnt64_t = ::c_ulong;
++pub type suseconds_t = i64;
++pub type __u64 = ::c_ulonglong;
++
++s! {
++    pub struct pthread_attr_t {
++        __size: [::c_ulong; 7],
++    }
++
++    pub struct stat {
++        pub st_dev: ::dev_t,
++        pub st_ino: ::ino_t,
++        pub st_mode: ::mode_t,
++        pub st_nlink: ::nlink_t,
++        pub st_uid: ::uid_t,
++        pub st_gid: ::gid_t,
++        pub st_rdev: ::dev_t,
++        pub __pad1: ::dev_t,
++        pub st_size: ::off_t,
++        pub st_blksize: ::blksize_t,
++        pub __pad2: ::c_int,
++        pub st_blocks: ::blkcnt_t,
++        pub st_atime: ::time_t,
++        pub st_atime_nsec: ::c_long,
++        pub st_mtime: ::time_t,
++        pub st_mtime_nsec: ::c_long,
++        pub st_ctime: ::time_t,
++        pub st_ctime_nsec: ::c_long,
++        __unused: [::c_int; 2usize],
++    }
++
++    pub struct stat64 {
++        pub st_dev: ::dev_t,
++        pub st_ino: ::ino64_t,
++        pub st_mode: ::mode_t,
++        pub st_nlink: ::nlink_t,
++        pub st_uid: ::uid_t,
++        pub st_gid: ::gid_t,
++        pub st_rdev: ::dev_t,
++        pub __pad1: ::dev_t,
++        pub st_size: ::off64_t,
++        pub st_blksize: ::blksize_t,
++        pub __pad2: ::c_int,
++        pub st_blocks: ::blkcnt_t,
++        pub st_atime: ::time_t,
++        pub st_atime_nsec: ::c_long,
++        pub st_mtime: ::time_t,
++        pub st_mtime_nsec: ::c_long,
++        pub st_ctime: ::time_t,
++        pub st_ctime_nsec: ::c_long,
++        __unused: [::c_int; 2],
++    }
++
++    pub struct statfs {
++        pub f_type: ::c_long,
++        pub f_bsize: ::c_long,
++        pub f_blocks: ::fsblkcnt_t,
++        pub f_bfree: ::fsblkcnt_t,
++        pub f_bavail: ::fsblkcnt_t,
++        pub f_files: ::fsfilcnt_t,
++        pub f_ffree: ::fsfilcnt_t,
++        pub f_fsid: ::fsid_t,
++        pub f_namelen: ::c_long,
++        pub f_frsize: ::c_long,
++        pub f_flags: ::c_long,
++        pub f_spare: [::c_long; 4],
++    }
++
++    pub struct statfs64 {
++        pub f_type: ::c_long,
++        pub f_bsize: ::c_long,
++        pub f_blocks: ::fsblkcnt64_t,
++        pub f_bfree: ::fsblkcnt64_t,
++        pub f_bavail: ::fsblkcnt64_t,
++        pub f_files: ::fsfilcnt64_t,
++        pub f_ffree: ::fsfilcnt64_t,
++        pub f_fsid: ::fsid_t,
++        pub f_namelen: ::c_long,
++        pub f_frsize: ::c_long,
++        pub f_flags: ::c_long,
++        pub f_spare: [::c_long; 4],
++    }
++
++    pub struct statvfs {
++        pub f_bsize: ::c_ulong,
++        pub f_frsize: ::c_ulong,
++        pub f_blocks: ::fsblkcnt_t,
++        pub f_bfree: ::fsblkcnt_t,
++        pub f_bavail: ::fsblkcnt_t,
++        pub f_files: ::fsfilcnt_t,
++        pub f_ffree: ::fsfilcnt_t,
++        pub f_favail: ::fsfilcnt_t,
++        pub f_fsid: ::c_ulong,
++        pub f_flag: ::c_ulong,
++        pub f_namemax: ::c_ulong,
++        pub __f_spare: [::c_int; 6],
++    }
++
++    pub struct statvfs64 {
++        pub f_bsize: ::c_ulong,
++        pub f_frsize: ::c_ulong,
++        pub f_blocks: ::fsblkcnt64_t,
++        pub f_bfree: ::fsblkcnt64_t,
++        pub f_bavail: ::fsblkcnt64_t,
++        pub f_files: ::fsfilcnt64_t,
++        pub f_ffree: ::fsfilcnt64_t,
++        pub f_favail: ::fsfilcnt64_t,
++        pub f_fsid: ::c_ulong,
++        pub f_flag: ::c_ulong,
++        pub f_namemax: ::c_ulong,
++        pub __f_spare: [::c_int; 6],
++    }
++
++    pub struct siginfo_t {
++        pub si_signo: ::c_int,
++        pub si_errno: ::c_int,
++        pub si_code: ::c_int,
++        #[doc(hidden)]
++        #[deprecated(
++            since="0.2.54",
++            note="Please leave a comment on \
++                  https://github.com/rust-lang/libc/pull/1316 if you're using \
++                  this field"
++        )]
++        pub _pad: [::c_int; 29],
++        _align: [u64; 0],
++    }
++
++    pub struct stack_t {
++        pub ss_sp: *mut ::c_void,
++        pub ss_flags: ::c_int,
++        pub ss_size: ::size_t,
++    }
++
++    pub struct sigaction {
++        pub sa_sigaction: ::sighandler_t,
++        pub sa_mask: ::sigset_t,
++        pub sa_flags: ::c_int,
++        pub sa_restorer: ::Option<unsafe extern "C" fn()>,
++    }
++
++    pub struct ipc_perm {
++        pub __key: ::key_t,
++        pub uid: ::uid_t,
++        pub gid: ::gid_t,
++        pub cuid: ::uid_t,
++        pub cgid: ::gid_t,
++        pub mode: ::c_ushort,
++        __pad1: ::c_ushort,
++        pub __seq: ::c_ushort,
++        __pad2: ::c_ushort,
++        __unused1: ::c_ulong,
++        __unused2: ::c_ulong,
++    }
++
++    pub struct shmid_ds {
++        pub shm_perm: ::ipc_perm,
++        pub shm_segsz: ::size_t,
++        pub shm_atime: ::time_t,
++        pub shm_dtime: ::time_t,
++        pub shm_ctime: ::time_t,
++        pub shm_cpid: ::pid_t,
++        pub shm_lpid: ::pid_t,
++        pub shm_nattch: ::shmatt_t,
++        __unused5: ::c_ulong,
++        __unused6: ::c_ulong,
++    }
++
++    pub struct flock {
++        pub l_type: ::c_short,
++        pub l_whence: ::c_short,
++        pub l_start: ::off_t,
++        pub l_len: ::off_t,
++        pub l_pid: ::pid_t,
++    }
++
++    pub struct flock64 {
++        pub l_type: ::c_short,
++        pub l_whence: ::c_short,
++        pub l_start: ::off64_t,
++        pub l_len: ::off64_t,
++        pub l_pid: ::pid_t,
++    }
++
++    pub struct ip_mreqn {
++        pub imr_multiaddr: ::in_addr,
++        pub imr_address: ::in_addr,
++        pub imr_ifindex: ::c_int,
++    }
++}
++
++pub const POSIX_FADV_DONTNEED: ::c_int = 4;
++pub const POSIX_FADV_NOREUSE: ::c_int = 5;
++pub const VEOF: usize = 4;
++pub const RTLD_DEEPBIND: ::c_int = 0x8;
++pub const RTLD_GLOBAL: ::c_int = 0x100;
++pub const RTLD_NOLOAD: ::c_int = 0x4;
++pub const TIOCGSOFTCAR: ::c_ulong = 21529;
++pub const TIOCSSOFTCAR: ::c_ulong = 21530;
++pub const TIOCGRS485: ::c_int = 21550;
++pub const TIOCSRS485: ::c_int = 21551;
++pub const RLIMIT_RSS: ::__rlimit_resource_t = 5;
++pub const RLIMIT_AS: ::__rlimit_resource_t = 9;
++pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8;
++pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7;
++pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6;
++pub const O_APPEND: ::c_int = 1024;
++pub const O_CREAT: ::c_int = 64;
++pub const O_EXCL: ::c_int = 128;
++pub const O_NOCTTY: ::c_int = 256;
++pub const O_NONBLOCK: ::c_int = 2048;
++pub const O_SYNC: ::c_int = 1052672;
++pub const O_RSYNC: ::c_int = 1052672;
++pub const O_DSYNC: ::c_int = 4096;
++pub const O_FSYNC: ::c_int = 1052672;
++pub const O_NOATIME: ::c_int = 262144;
++pub const O_PATH: ::c_int = 2097152;
++pub const O_TMPFILE: ::c_int = 4259840;
++pub const MAP_GROWSDOWN: ::c_int = 256;
++pub const EDEADLK: ::c_int = 35;
++pub const ENAMETOOLONG: ::c_int = 36;
++pub const ENOLCK: ::c_int = 37;
++pub const ENOSYS: ::c_int = 38;
++pub const ENOTEMPTY: ::c_int = 39;
++pub const ELOOP: ::c_int = 40;
++pub const ENOMSG: ::c_int = 42;
++pub const EIDRM: ::c_int = 43;
++pub const ECHRNG: ::c_int = 44;
++pub const EL2NSYNC: ::c_int = 45;
++pub const EL3HLT: ::c_int = 46;
++pub const EL3RST: ::c_int = 47;
++pub const ELNRNG: ::c_int = 48;
++pub const EUNATCH: ::c_int = 49;
++pub const ENOCSI: ::c_int = 50;
++pub const EL2HLT: ::c_int = 51;
++pub const EBADE: ::c_int = 52;
++pub const EBADR: ::c_int = 53;
++pub const EXFULL: ::c_int = 54;
++pub const ENOANO: ::c_int = 55;
++pub const EBADRQC: ::c_int = 56;
++pub const EBADSLT: ::c_int = 57;
++pub const EMULTIHOP: ::c_int = 72;
++pub const EOVERFLOW: ::c_int = 75;
++pub const ENOTUNIQ: ::c_int = 76;
++pub const EBADFD: ::c_int = 77;
++pub const EBADMSG: ::c_int = 74;
++pub const EREMCHG: ::c_int = 78;
++pub const ELIBACC: ::c_int = 79;
++pub const ELIBBAD: ::c_int = 80;
++pub const ELIBSCN: ::c_int = 81;
++pub const ELIBMAX: ::c_int = 82;
++pub const ELIBEXEC: ::c_int = 83;
++pub const EILSEQ: ::c_int = 84;
++pub const ERESTART: ::c_int = 85;
++pub const ESTRPIPE: ::c_int = 86;
++pub const EUSERS: ::c_int = 87;
++pub const ENOTSOCK: ::c_int = 88;
++pub const EDESTADDRREQ: ::c_int = 89;
++pub const EMSGSIZE: ::c_int = 90;
++pub const EPROTOTYPE: ::c_int = 91;
++pub const ENOPROTOOPT: ::c_int = 92;
++pub const EPROTONOSUPPORT: ::c_int = 93;
++pub const ESOCKTNOSUPPORT: ::c_int = 94;
++pub const EOPNOTSUPP: ::c_int = 95;
++pub const EPFNOSUPPORT: ::c_int = 96;
++pub const EAFNOSUPPORT: ::c_int = 97;
++pub const EADDRINUSE: ::c_int = 98;
++pub const EADDRNOTAVAIL: ::c_int = 99;
++pub const ENETDOWN: ::c_int = 100;
++pub const ENETUNREACH: ::c_int = 101;
++pub const ENETRESET: ::c_int = 102;
++pub const ECONNABORTED: ::c_int = 103;
++pub const ECONNRESET: ::c_int = 104;
++pub const ENOBUFS: ::c_int = 105;
++pub const EISCONN: ::c_int = 106;
++pub const ENOTCONN: ::c_int = 107;
++pub const ESHUTDOWN: ::c_int = 108;
++pub const ETOOMANYREFS: ::c_int = 109;
++pub const ETIMEDOUT: ::c_int = 110;
++pub const ECONNREFUSED: ::c_int = 111;
++pub const EHOSTDOWN: ::c_int = 112;
++pub const EHOSTUNREACH: ::c_int = 113;
++pub const EALREADY: ::c_int = 114;
++pub const EINPROGRESS: ::c_int = 115;
++pub const ESTALE: ::c_int = 116;
++pub const EDQUOT: ::c_int = 122;
++pub const ENOMEDIUM: ::c_int = 123;
++pub const EMEDIUMTYPE: ::c_int = 124;
++pub const ECANCELED: ::c_int = 125;
++pub const ENOKEY: ::c_int = 126;
++pub const EKEYEXPIRED: ::c_int = 127;
++pub const EKEYREVOKED: ::c_int = 128;
++pub const EKEYREJECTED: ::c_int = 129;
++pub const EOWNERDEAD: ::c_int = 130;
++pub const ENOTRECOVERABLE: ::c_int = 131;
++pub const EHWPOISON: ::c_int = 133;
++pub const ERFKILL: ::c_int = 132;
++
++pub const SOCK_STREAM: ::c_int = 1;
++pub const SOCK_DGRAM: ::c_int = 2;
++pub const SA_ONSTACK: ::c_int = 134217728;
++pub const SA_SIGINFO: ::c_int = 4;
++pub const SA_NOCLDWAIT: ::c_int = 2;
++pub const SIGTTIN: ::c_int = 21;
++pub const SIGTTOU: ::c_int = 22;
++pub const SIGXCPU: ::c_int = 24;
++pub const SIGXFSZ: ::c_int = 25;
++pub const SIGVTALRM: ::c_int = 26;
++pub const SIGPROF: ::c_int = 27;
++pub const SIGWINCH: ::c_int = 28;
++pub const SIGCHLD: ::c_int = 17;
++pub const SIGBUS: ::c_int = 7;
++pub const SIGUSR1: ::c_int = 10;
++pub const SIGUSR2: ::c_int = 12;
++pub const SIGCONT: ::c_int = 18;
++pub const SIGSTOP: ::c_int = 19;
++pub const SIGTSTP: ::c_int = 20;
++pub const SIGURG: ::c_int = 23;
++pub const SIGIO: ::c_int = 29;
++pub const SIGSYS: ::c_int = 31;
++pub const SIGSTKFLT: ::c_int = 16;
++pub const SIGPOLL: ::c_int = 29;
++pub const SIGPWR: ::c_int = 30;
++pub const SIG_SETMASK: ::c_int = 2;
++pub const SIG_BLOCK: ::c_int = 0;
++pub const SIG_UNBLOCK: ::c_int = 1;
++pub const POLLWRNORM: ::c_short = 256;
++pub const POLLWRBAND: ::c_short = 512;
++pub const O_ASYNC: ::c_int = 8192;
++pub const O_NDELAY: ::c_int = 2048;
++pub const PTRACE_DETACH: ::c_uint = 17;
++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_SETLK: ::c_int = 6;
++pub const F_SETLKW: ::c_int = 7;
++pub const F_RDLCK: ::c_int = 0;
++pub const F_WRLCK: ::c_int = 1;
++pub const F_UNLCK: ::c_int = 2;
++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 SFD_NONBLOCK: ::c_int = 2048;
++pub const TCSANOW: ::c_int = 0;
++pub const TCSADRAIN: ::c_int = 1;
++pub const TCSAFLUSH: ::c_int = 2;
++pub const TIOCLINUX: ::c_ulong = 21532;
++pub const TIOCGSERIAL: ::c_ulong = 21534;
++pub const TIOCEXCL: ::c_ulong = 21516;
++pub const TIOCNXCL: ::c_ulong = 21517;
++pub const TIOCSCTTY: ::c_ulong = 21518;
++pub const TIOCSTI: ::c_ulong = 21522;
++pub const TIOCMGET: ::c_ulong = 21525;
++pub const TIOCMBIS: ::c_ulong = 21526;
++pub const TIOCMBIC: ::c_ulong = 21527;
++pub const TIOCMSET: ::c_ulong = 21528;
++pub const TIOCCONS: ::c_ulong = 21533;
++pub const TIOCM_ST: ::c_int = 8;
++pub const TIOCM_SR: ::c_int = 16;
++pub const TIOCM_CTS: ::c_int = 32;
++pub const TIOCM_CAR: ::c_int = 64;
++pub const TIOCM_RNG: ::c_int = 128;
++pub const TIOCM_DSR: ::c_int = 256;
++pub const SFD_CLOEXEC: ::c_int = 524288;
++pub const NCCS: usize = 32;
++pub const O_TRUNC: ::c_int = 512;
++pub const O_CLOEXEC: ::c_int = 524288;
++pub const EBFONT: ::c_int = 59;
++pub const ENOSTR: ::c_int = 60;
++pub const ENODATA: ::c_int = 61;
++pub const ETIME: ::c_int = 62;
++pub const ENOSR: ::c_int = 63;
++pub const ENONET: ::c_int = 64;
++pub const ENOPKG: ::c_int = 65;
++pub const EREMOTE: ::c_int = 66;
++pub const ENOLINK: ::c_int = 67;
++pub const EADV: ::c_int = 68;
++pub const ESRMNT: ::c_int = 69;
++pub const ECOMM: ::c_int = 70;
++pub const EPROTO: ::c_int = 71;
++pub const EDOTDOT: ::c_int = 73;
++pub const SA_NODEFER: ::c_int = 1073741824;
++pub const SA_RESETHAND: ::c_int = -2147483648;
++pub const SA_RESTART: ::c_int = 268435456;
++pub const SA_NOCLDSTOP: ::c_int = 1;
++pub const EPOLL_CLOEXEC: ::c_int = 524288;
++pub const EFD_CLOEXEC: ::c_int = 524288;
++pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
++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_NOFOLLOW: ::c_int = 131072;
++pub const MAP_HUGETLB: ::c_int = 262144;
++pub const MAP_LOCKED: ::c_int = 8192;
++pub const MAP_NORESERVE: ::c_int = 16384;
++pub const MAP_ANON: ::c_int = 32;
++pub const MAP_ANONYMOUS: ::c_int = 32;
++pub const MAP_DENYWRITE: ::c_int = 2048;
++pub const MAP_EXECUTABLE: ::c_int = 4096;
++pub const MAP_POPULATE: ::c_int = 32768;
++pub const MAP_NONBLOCK: ::c_int = 65536;
++pub const MAP_STACK: ::c_int = 131072;
++pub const MAP_SYNC: ::c_int = 0x080000;
++pub const EDEADLOCK: ::c_int = 35;
++pub const EUCLEAN: ::c_int = 117;
++pub const ENOTNAM: ::c_int = 118;
++pub const ENAVAIL: ::c_int = 119;
++pub const EISNAM: ::c_int = 120;
++pub const EREMOTEIO: ::c_int = 121;
++pub const FIOCLEX: ::c_ulong = 21585;
++pub const FIONCLEX: ::c_ulong = 21584;
++pub const FIONBIO: ::c_ulong = 21537;
++pub const MCL_CURRENT: ::c_int = 1;
++pub const MCL_FUTURE: ::c_int = 2;
++pub const SIGSTKSZ: ::size_t = 8192;
++pub const MINSIGSTKSZ: ::size_t = 2048;
++pub const CBAUD: ::tcflag_t = 4111;
++pub const TAB1: ::tcflag_t = 2048;
++pub const TAB2: ::tcflag_t = 4096;
++pub const TAB3: ::tcflag_t = 6144;
++pub const CR1: ::tcflag_t = 512;
++pub const CR2: ::tcflag_t = 1024;
++pub const CR3: ::tcflag_t = 1536;
++pub const FF1: ::tcflag_t = 32768;
++pub const BS1: ::tcflag_t = 8192;
++pub const VT1: ::tcflag_t = 16384;
++pub const VWERASE: usize = 14;
++pub const VREPRINT: usize = 12;
++pub const VSUSP: usize = 10;
++pub const VSTART: usize = 8;
++pub const VSTOP: usize = 9;
++pub const VDISCARD: usize = 13;
++pub const VTIME: usize = 5;
++pub const IXON: ::tcflag_t = 1024;
++pub const IXOFF: ::tcflag_t = 4096;
++pub const ONLCR: ::tcflag_t = 4;
++pub const CSIZE: ::tcflag_t = 48;
++pub const CS6: ::tcflag_t = 16;
++pub const CS7: ::tcflag_t = 32;
++pub const CS8: ::tcflag_t = 48;
++pub const CSTOPB: ::tcflag_t = 64;
++pub const CREAD: ::tcflag_t = 128;
++pub const PARENB: ::tcflag_t = 256;
++pub const PARODD: ::tcflag_t = 512;
++pub const HUPCL: ::tcflag_t = 1024;
++pub const CLOCAL: ::tcflag_t = 2048;
++pub const ECHOKE: ::tcflag_t = 2048;
++pub const ECHOE: ::tcflag_t = 16;
++pub const ECHOK: ::tcflag_t = 32;
++pub const ECHONL: ::tcflag_t = 64;
++pub const ECHOPRT: ::tcflag_t = 1024;
++pub const ECHOCTL: ::tcflag_t = 512;
++pub const ISIG: ::tcflag_t = 1;
++pub const ICANON: ::tcflag_t = 2;
++pub const PENDIN: ::tcflag_t = 16384;
++pub const NOFLSH: ::tcflag_t = 128;
++pub const CIBAUD: ::tcflag_t = 269418496;
++pub const CBAUDEX: ::tcflag_t = 4096;
++pub const VSWTC: usize = 7;
++pub const OLCUC: ::tcflag_t = 2;
++pub const NLDLY: ::tcflag_t = 256;
++pub const CRDLY: ::tcflag_t = 1536;
++pub const TABDLY: ::tcflag_t = 6144;
++pub const BSDLY: ::tcflag_t = 8192;
++pub const FFDLY: ::tcflag_t = 32768;
++pub const VTDLY: ::tcflag_t = 16384;
++pub const XTABS: ::tcflag_t = 6144;
++pub const B0: ::speed_t = 0;
++pub const B50: ::speed_t = 1;
++pub const B75: ::speed_t = 2;
++pub const B110: ::speed_t = 3;
++pub const B134: ::speed_t = 4;
++pub const B150: ::speed_t = 5;
++pub const B200: ::speed_t = 6;
++pub const B300: ::speed_t = 7;
++pub const B600: ::speed_t = 8;
++pub const B1200: ::speed_t = 9;
++pub const B1800: ::speed_t = 10;
++pub const B2400: ::speed_t = 11;
++pub const B4800: ::speed_t = 12;
++pub const B9600: ::speed_t = 13;
++pub const B19200: ::speed_t = 14;
++pub const B38400: ::speed_t = 15;
++pub const EXTA: ::speed_t = 14;
++pub const EXTB: ::speed_t = 15;
++pub const B57600: ::speed_t = 4097;
++pub const B115200: ::speed_t = 4098;
++pub const B230400: ::speed_t = 4099;
++pub const B460800: ::speed_t = 4100;
++pub const B500000: ::speed_t = 4101;
++pub const B576000: ::speed_t = 4102;
++pub const B921600: ::speed_t = 4103;
++pub const B1000000: ::speed_t = 4104;
++pub const B1152000: ::speed_t = 4105;
++pub const B1500000: ::speed_t = 4106;
++pub const B2000000: ::speed_t = 4107;
++pub const B2500000: ::speed_t = 4108;
++pub const B3000000: ::speed_t = 4109;
++pub const B3500000: ::speed_t = 4110;
++pub const B4000000: ::speed_t = 4111;
++pub const VEOL: usize = 11;
++pub const VEOL2: usize = 16;
++pub const VMIN: usize = 6;
++pub const IEXTEN: ::tcflag_t = 32768;
++pub const TOSTOP: ::tcflag_t = 256;
++pub const FLUSHO: ::tcflag_t = 4096;
++pub const EXTPROC: ::tcflag_t = 65536;
++pub const TCGETS: ::c_ulong = 21505;
++pub const TCSETS: ::c_ulong = 21506;
++pub const TCSETSW: ::c_ulong = 21507;
++pub const TCSETSF: ::c_ulong = 21508;
++pub const TCGETA: ::c_ulong = 21509;
++pub const TCSETA: ::c_ulong = 21510;
++pub const TCSETAW: ::c_ulong = 21511;
++pub const TCSETAF: ::c_ulong = 21512;
++pub const TCSBRK: ::c_ulong = 21513;
++pub const TCXONC: ::c_ulong = 21514;
++pub const TCFLSH: ::c_ulong = 21515;
++pub const TIOCINQ: ::c_ulong = 21531;
++pub const TIOCGPGRP: ::c_ulong = 21519;
++pub const TIOCSPGRP: ::c_ulong = 21520;
++pub const TIOCOUTQ: ::c_ulong = 21521;
++pub const TIOCGWINSZ: ::c_ulong = 21523;
++pub const TIOCSWINSZ: ::c_ulong = 21524;
++pub const FIONREAD: ::c_ulong = 21531;
++pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
++pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
++pub const SYS_read: ::c_long = 63;
++pub const SYS_write: ::c_long = 64;
++pub const SYS_close: ::c_long = 57;
++pub const SYS_fstat: ::c_long = 80;
++pub const SYS_lseek: ::c_long = 62;
++pub const SYS_mmap: ::c_long = 222;
++pub const SYS_mprotect: ::c_long = 226;
++pub const SYS_munmap: ::c_long = 215;
++pub const SYS_brk: ::c_long = 214;
++pub const SYS_rt_sigaction: ::c_long = 134;
++pub const SYS_rt_sigprocmask: ::c_long = 135;
++pub const SYS_rt_sigreturn: ::c_long = 139;
++pub const SYS_ioctl: ::c_long = 29;
++pub const SYS_pread64: ::c_long = 67;
++pub const SYS_pwrite64: ::c_long = 68;
++pub const SYS_readv: ::c_long = 65;
++pub const SYS_writev: ::c_long = 66;
++pub const SYS_sched_yield: ::c_long = 124;
++pub const SYS_mremap: ::c_long = 216;
++pub const SYS_msync: ::c_long = 227;
++pub const SYS_mincore: ::c_long = 232;
++pub const SYS_madvise: ::c_long = 233;
++pub const SYS_shmget: ::c_long = 194;
++pub const SYS_shmat: ::c_long = 196;
++pub const SYS_shmctl: ::c_long = 195;
++pub const SYS_dup: ::c_long = 23;
++pub const SYS_nanosleep: ::c_long = 101;
++pub const SYS_getitimer: ::c_long = 102;
++pub const SYS_setitimer: ::c_long = 103;
++pub const SYS_getpid: ::c_long = 172;
++pub const SYS_sendfile: ::c_long = 71;
++pub const SYS_socket: ::c_long = 198;
++pub const SYS_connect: ::c_long = 203;
++pub const SYS_accept: ::c_long = 202;
++pub const SYS_sendto: ::c_long = 206;
++pub const SYS_recvfrom: ::c_long = 207;
++pub const SYS_sendmsg: ::c_long = 211;
++pub const SYS_recvmsg: ::c_long = 212;
++pub const SYS_shutdown: ::c_long = 210;
++pub const SYS_bind: ::c_long = 200;
++pub const SYS_listen: ::c_long = 201;
++pub const SYS_getsockname: ::c_long = 204;
++pub const SYS_getpeername: ::c_long = 205;
++pub const SYS_socketpair: ::c_long = 199;
++pub const SYS_setsockopt: ::c_long = 208;
++pub const SYS_getsockopt: ::c_long = 209;
++pub const SYS_clone: ::c_long = 220;
++pub const SYS_execve: ::c_long = 221;
++pub const SYS_exit: ::c_long = 93;
++pub const SYS_wait4: ::c_long = 260;
++pub const SYS_kill: ::c_long = 129;
++pub const SYS_uname: ::c_long = 160;
++pub const SYS_semget: ::c_long = 190;
++pub const SYS_semop: ::c_long = 193;
++pub const SYS_semctl: ::c_long = 191;
++pub const SYS_shmdt: ::c_long = 197;
++pub const SYS_msgget: ::c_long = 186;
++pub const SYS_msgsnd: ::c_long = 189;
++pub const SYS_msgrcv: ::c_long = 188;
++pub const SYS_msgctl: ::c_long = 187;
++pub const SYS_fcntl: ::c_long = 25;
++pub const SYS_flock: ::c_long = 32;
++pub const SYS_fsync: ::c_long = 82;
++pub const SYS_fdatasync: ::c_long = 83;
++pub const SYS_truncate: ::c_long = 45;
++pub const SYS_ftruncate: ::c_long = 46;
++pub const SYS_getcwd: ::c_long = 17;
++pub const SYS_chdir: ::c_long = 49;
++pub const SYS_fchdir: ::c_long = 50;
++pub const SYS_fchmod: ::c_long = 52;
++pub const SYS_fchown: ::c_long = 55;
++pub const SYS_umask: ::c_long = 166;
++pub const SYS_gettimeofday: ::c_long = 169;
++pub const SYS_getrlimit: ::c_long = 163;
++pub const SYS_getrusage: ::c_long = 165;
++pub const SYS_sysinfo: ::c_long = 179;
++pub const SYS_times: ::c_long = 153;
++pub const SYS_ptrace: ::c_long = 117;
++pub const SYS_getuid: ::c_long = 174;
++pub const SYS_syslog: ::c_long = 116;
++pub const SYS_getgid: ::c_long = 176;
++pub const SYS_setuid: ::c_long = 146;
++pub const SYS_setgid: ::c_long = 144;
++pub const SYS_geteuid: ::c_long = 175;
++pub const SYS_getegid: ::c_long = 177;
++pub const SYS_setpgid: ::c_long = 154;
++pub const SYS_getppid: ::c_long = 173;
++pub const SYS_setsid: ::c_long = 157;
++pub const SYS_setreuid: ::c_long = 145;
++pub const SYS_setregid: ::c_long = 143;
++pub const SYS_getgroups: ::c_long = 158;
++pub const SYS_setgroups: ::c_long = 159;
++pub const SYS_setresuid: ::c_long = 147;
++pub const SYS_getresuid: ::c_long = 148;
++pub const SYS_setresgid: ::c_long = 149;
++pub const SYS_getresgid: ::c_long = 150;
++pub const SYS_getpgid: ::c_long = 155;
++pub const SYS_setfsuid: ::c_long = 151;
++pub const SYS_setfsgid: ::c_long = 152;
++pub const SYS_getsid: ::c_long = 156;
++pub const SYS_capget: ::c_long = 90;
++pub const SYS_capset: ::c_long = 91;
++pub const SYS_rt_sigpending: ::c_long = 136;
++pub const SYS_rt_sigtimedwait: ::c_long = 137;
++pub const SYS_rt_sigqueueinfo: ::c_long = 138;
++pub const SYS_rt_sigsuspend: ::c_long = 133;
++pub const SYS_sigaltstack: ::c_long = 132;
++pub const SYS_personality: ::c_long = 92;
++pub const SYS_statfs: ::c_long = 43;
++pub const SYS_fstatfs: ::c_long = 44;
++pub const SYS_getpriority: ::c_long = 141;
++pub const SYS_setpriority: ::c_long = 140;
++pub const SYS_sched_setparam: ::c_long = 118;
++pub const SYS_sched_getparam: ::c_long = 121;
++pub const SYS_sched_setscheduler: ::c_long = 119;
++pub const SYS_sched_getscheduler: ::c_long = 120;
++pub const SYS_sched_get_priority_max: ::c_long = 125;
++pub const SYS_sched_get_priority_min: ::c_long = 126;
++pub const SYS_sched_rr_get_interval: ::c_long = 127;
++pub const SYS_mlock: ::c_long = 228;
++pub const SYS_munlock: ::c_long = 229;
++pub const SYS_mlockall: ::c_long = 230;
++pub const SYS_munlockall: ::c_long = 231;
++pub const SYS_vhangup: ::c_long = 58;
++pub const SYS_pivot_root: ::c_long = 41;
++pub const SYS_prctl: ::c_long = 167;
++pub const SYS_adjtimex: ::c_long = 171;
++pub const SYS_setrlimit: ::c_long = 164;
++pub const SYS_chroot: ::c_long = 51;
++pub const SYS_sync: ::c_long = 81;
++pub const SYS_acct: ::c_long = 89;
++pub const SYS_settimeofday: ::c_long = 170;
++pub const SYS_mount: ::c_long = 40;
++pub const SYS_umount2: ::c_long = 39;
++pub const SYS_swapon: ::c_long = 224;
++pub const SYS_swapoff: ::c_long = 225;
++pub const SYS_reboot: ::c_long = 142;
++pub const SYS_sethostname: ::c_long = 161;
++pub const SYS_setdomainname: ::c_long = 162;
++pub const SYS_init_module: ::c_long = 105;
++pub const SYS_delete_module: ::c_long = 106;
++pub const SYS_quotactl: ::c_long = 60;
++pub const SYS_nfsservctl: ::c_long = 42;
++pub const SYS_gettid: ::c_long = 178;
++pub const SYS_readahead: ::c_long = 213;
++pub const SYS_setxattr: ::c_long = 5;
++pub const SYS_lsetxattr: ::c_long = 6;
++pub const SYS_fsetxattr: ::c_long = 7;
++pub const SYS_getxattr: ::c_long = 8;
++pub const SYS_lgetxattr: ::c_long = 9;
++pub const SYS_fgetxattr: ::c_long = 10;
++pub const SYS_listxattr: ::c_long = 11;
++pub const SYS_llistxattr: ::c_long = 12;
++pub const SYS_flistxattr: ::c_long = 13;
++pub const SYS_removexattr: ::c_long = 14;
++pub const SYS_lremovexattr: ::c_long = 15;
++pub const SYS_fremovexattr: ::c_long = 16;
++pub const SYS_tkill: ::c_long = 130;
++pub const SYS_futex: ::c_long = 98;
++pub const SYS_sched_setaffinity: ::c_long = 122;
++pub const SYS_sched_getaffinity: ::c_long = 123;
++pub const SYS_io_setup: ::c_long = 0;
++pub const SYS_io_destroy: ::c_long = 1;
++pub const SYS_io_getevents: ::c_long = 4;
++pub const SYS_io_submit: ::c_long = 2;
++pub const SYS_io_cancel: ::c_long = 3;
++pub const SYS_lookup_dcookie: ::c_long = 18;
++pub const SYS_remap_file_pages: ::c_long = 234;
++pub const SYS_getdents64: ::c_long = 61;
++pub const SYS_set_tid_address: ::c_long = 96;
++pub const SYS_restart_syscall: ::c_long = 128;
++pub const SYS_semtimedop: ::c_long = 192;
++pub const SYS_fadvise64: ::c_long = 223;
++pub const SYS_timer_create: ::c_long = 107;
++pub const SYS_timer_settime: ::c_long = 110;
++pub const SYS_timer_gettime: ::c_long = 108;
++pub const SYS_timer_getoverrun: ::c_long = 109;
++pub const SYS_timer_delete: ::c_long = 111;
++pub const SYS_clock_settime: ::c_long = 112;
++pub const SYS_clock_gettime: ::c_long = 113;
++pub const SYS_clock_getres: ::c_long = 114;
++pub const SYS_clock_nanosleep: ::c_long = 115;
++pub const SYS_exit_group: ::c_long = 94;
++pub const SYS_epoll_ctl: ::c_long = 21;
++pub const SYS_tgkill: ::c_long = 131;
++pub const SYS_mbind: ::c_long = 235;
++pub const SYS_set_mempolicy: ::c_long = 237;
++pub const SYS_get_mempolicy: ::c_long = 236;
++pub const SYS_mq_open: ::c_long = 180;
++pub const SYS_mq_unlink: ::c_long = 181;
++pub const SYS_mq_timedsend: ::c_long = 182;
++pub const SYS_mq_timedreceive: ::c_long = 183;
++pub const SYS_mq_notify: ::c_long = 184;
++pub const SYS_mq_getsetattr: ::c_long = 185;
++pub const SYS_kexec_load: ::c_long = 104;
++pub const SYS_waitid: ::c_long = 95;
++pub const SYS_add_key: ::c_long = 217;
++pub const SYS_request_key: ::c_long = 218;
++pub const SYS_keyctl: ::c_long = 219;
++pub const SYS_ioprio_set: ::c_long = 30;
++pub const SYS_ioprio_get: ::c_long = 31;
++pub const SYS_inotify_add_watch: ::c_long = 27;
++pub const SYS_inotify_rm_watch: ::c_long = 28;
++pub const SYS_migrate_pages: ::c_long = 238;
++pub const SYS_openat: ::c_long = 56;
++pub const SYS_mkdirat: ::c_long = 34;
++pub const SYS_mknodat: ::c_long = 33;
++pub const SYS_fchownat: ::c_long = 54;
++pub const SYS_newfstatat: ::c_long = 79;
++pub const SYS_unlinkat: ::c_long = 35;
++pub const SYS_linkat: ::c_long = 37;
++pub const SYS_symlinkat: ::c_long = 36;
++pub const SYS_readlinkat: ::c_long = 78;
++pub const SYS_fchmodat: ::c_long = 53;
++pub const SYS_faccessat: ::c_long = 48;
++pub const SYS_pselect6: ::c_long = 72;
++pub const SYS_ppoll: ::c_long = 73;
++pub const SYS_unshare: ::c_long = 97;
++pub const SYS_set_robust_list: ::c_long = 99;
++pub const SYS_get_robust_list: ::c_long = 100;
++pub const SYS_splice: ::c_long = 76;
++pub const SYS_tee: ::c_long = 77;
++pub const SYS_sync_file_range: ::c_long = 84;
++pub const SYS_vmsplice: ::c_long = 75;
++pub const SYS_move_pages: ::c_long = 239;
++pub const SYS_utimensat: ::c_long = 88;
++pub const SYS_epoll_pwait: ::c_long = 22;
++pub const SYS_timerfd_create: ::c_long = 85;
++pub const SYS_fallocate: ::c_long = 47;
++pub const SYS_timerfd_settime: ::c_long = 86;
++pub const SYS_timerfd_gettime: ::c_long = 87;
++pub const SYS_accept4: ::c_long = 242;
++pub const SYS_signalfd4: ::c_long = 74;
++pub const SYS_eventfd2: ::c_long = 19;
++pub const SYS_epoll_create1: ::c_long = 20;
++pub const SYS_dup3: ::c_long = 24;
++pub const SYS_pipe2: ::c_long = 59;
++pub const SYS_inotify_init1: ::c_long = 26;
++pub const SYS_preadv: ::c_long = 69;
++pub const SYS_pwritev: ::c_long = 70;
++pub const SYS_rt_tgsigqueueinfo: ::c_long = 240;
++pub const SYS_perf_event_open: ::c_long = 241;
++pub const SYS_recvmmsg: ::c_long = 243;
++pub const SYS_fanotify_init: ::c_long = 262;
++pub const SYS_fanotify_mark: ::c_long = 263;
++pub const SYS_prlimit64: ::c_long = 261;
++pub const SYS_name_to_handle_at: ::c_long = 264;
++pub const SYS_open_by_handle_at: ::c_long = 265;
++pub const SYS_clock_adjtime: ::c_long = 266;
++pub const SYS_syncfs: ::c_long = 267;
++pub const SYS_sendmmsg: ::c_long = 269;
++pub const SYS_setns: ::c_long = 268;
++pub const SYS_getcpu: ::c_long = 168;
++pub const SYS_process_vm_readv: ::c_long = 270;
++pub const SYS_process_vm_writev: ::c_long = 271;
++pub const SYS_kcmp: ::c_long = 272;
++pub const SYS_finit_module: ::c_long = 273;
++pub const SYS_sched_setattr: ::c_long = 274;
++pub const SYS_sched_getattr: ::c_long = 275;
++pub const SYS_renameat2: ::c_long = 276;
++pub const SYS_seccomp: ::c_long = 277;
++pub const SYS_getrandom: ::c_long = 278;
++pub const SYS_memfd_create: ::c_long = 279;
++pub const SYS_bpf: ::c_long = 280;
++pub const SYS_execveat: ::c_long = 281;
++pub const SYS_userfaultfd: ::c_long = 282;
++pub const SYS_membarrier: ::c_long = 283;
++pub const SYS_mlock2: ::c_long = 284;
++pub const SYS_copy_file_range: ::c_long = 285;
++pub const SYS_preadv2: ::c_long = 286;
++pub const SYS_pwritev2: ::c_long = 287;
++pub const SYS_pkey_mprotect: ::c_long = 288;
++pub const SYS_pkey_alloc: ::c_long = 289;
++pub const SYS_pkey_free: ::c_long = 290;
++pub const SYS_statx: ::c_long = 291;
++pub const SYS_pidfd_send_signal: ::c_long = 424;
++pub const SYS_io_uring_setup: ::c_long = 425;
++pub const SYS_io_uring_enter: ::c_long = 426;
++pub const SYS_io_uring_register: ::c_long = 427;
++pub const SYS_open_tree: ::c_long = 428;
++pub const SYS_move_mount: ::c_long = 429;
++pub const SYS_fsopen: ::c_long = 430;
++pub const SYS_fsconfig: ::c_long = 431;
++pub const SYS_fsmount: ::c_long = 432;
++pub const SYS_fspick: ::c_long = 433;
++pub const SYS_pidfd_open: ::c_long = 434;
++pub const SYS_clone3: ::c_long = 435;
++pub const SYS_close_range: ::c_long = 436;
++pub const SYS_openat2: ::c_long = 437;
++pub const SYS_pidfd_getfd: ::c_long = 438;
++pub const SYS_faccessat2: ::c_long = 439;
++pub const SYS_process_madvise: ::c_long = 440;
++pub const SYS_epoll_pwait2: ::c_long = 441;
++pub const SYS_mount_setattr: ::c_long = 442;
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/rust/libstd-rs/0002-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set.patch b/poky/meta/recipes-devtools/rust/libstd-rs/0002-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set.patch
new file mode 100644
index 0000000..0f159c6
--- /dev/null
+++ b/poky/meta/recipes-devtools/rust/libstd-rs/0002-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set.patch
@@ -0,0 +1,31 @@
+From bd805ef63035ecefa03f67d5ab2e1d79f7daf9bc Mon Sep 17 00:00:00 2001
+From: Ralf Anton Beier <ralf_beier@me.com>
+Date: Sun, 8 Aug 2021 11:07:21 +0200
+Subject: [PATCH 2/4] FIXUP: linux/musl/mod.rs: add riscv64 to b64 set
+
+https://github.com/rust-lang/libc/pull/1994/commits/30070c822be2ef399b2ba38cdc1d72ac694d65a3
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/2537]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
+---
+ vendor/libc/src/unix/linux_like/linux/musl/mod.rs | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/vendor/libc/src/unix/linux_like/linux/musl/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
+index df596e968..1ab13a712 100644
+--- a/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
++++ b/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
+@@ -765,7 +765,8 @@ cfg_if! {
+                  target_arch = "aarch64",
+                  target_arch = "mips64",
+                  target_arch = "powerpc64",
+-                 target_arch = "s390x"))] {
++                 target_arch = "s390x",
++                 target_arch = "riscv64"))] {
+         mod b64;
+         pub use self::b64::*;
+     } else if #[cfg(any(target_arch = "x86",
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/rust/libstd-rs/0003-FIXUP-Correct-definitions-to-match-musl.patch b/poky/meta/recipes-devtools/rust/libstd-rs/0003-FIXUP-Correct-definitions-to-match-musl.patch
new file mode 100644
index 0000000..288f4c5
--- /dev/null
+++ b/poky/meta/recipes-devtools/rust/libstd-rs/0003-FIXUP-Correct-definitions-to-match-musl.patch
@@ -0,0 +1,689 @@
+From a811c933372b18b98fdef3d5901b512131b27b1c Mon Sep 17 00:00:00 2001
+From: Ralf Anton Beier <ralf_beier@me.com>
+Date: Sun, 8 Aug 2021 11:09:17 +0200
+Subject: [PATCH 3/4] FIXUP Correct definitions to match musl
+
+https://github.com/rust-lang/libc/pull/1994/commits/5f6a4d9745c79c81be63c708515ab116786554a3
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/2537]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
+---
+ .../linux_like/linux/musl/b64/riscv64/mod.rs  | 655 +++++++++---------
+ 1 file changed, 312 insertions(+), 343 deletions(-)
+
+diff --git a/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
+index c656189c4..1799539c2 100644
+--- a/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
++++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
+@@ -191,351 +191,8 @@ s! {
+         pub l_len: ::off64_t,
+         pub l_pid: ::pid_t,
+     }
+-
+-    pub struct ip_mreqn {
+-        pub imr_multiaddr: ::in_addr,
+-        pub imr_address: ::in_addr,
+-        pub imr_ifindex: ::c_int,
+-    }
+ }
+ 
+-pub const POSIX_FADV_DONTNEED: ::c_int = 4;
+-pub const POSIX_FADV_NOREUSE: ::c_int = 5;
+-pub const VEOF: usize = 4;
+-pub const RTLD_DEEPBIND: ::c_int = 0x8;
+-pub const RTLD_GLOBAL: ::c_int = 0x100;
+-pub const RTLD_NOLOAD: ::c_int = 0x4;
+-pub const TIOCGSOFTCAR: ::c_ulong = 21529;
+-pub const TIOCSSOFTCAR: ::c_ulong = 21530;
+-pub const TIOCGRS485: ::c_int = 21550;
+-pub const TIOCSRS485: ::c_int = 21551;
+-pub const RLIMIT_RSS: ::__rlimit_resource_t = 5;
+-pub const RLIMIT_AS: ::__rlimit_resource_t = 9;
+-pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8;
+-pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7;
+-pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6;
+-pub const O_APPEND: ::c_int = 1024;
+-pub const O_CREAT: ::c_int = 64;
+-pub const O_EXCL: ::c_int = 128;
+-pub const O_NOCTTY: ::c_int = 256;
+-pub const O_NONBLOCK: ::c_int = 2048;
+-pub const O_SYNC: ::c_int = 1052672;
+-pub const O_RSYNC: ::c_int = 1052672;
+-pub const O_DSYNC: ::c_int = 4096;
+-pub const O_FSYNC: ::c_int = 1052672;
+-pub const O_NOATIME: ::c_int = 262144;
+-pub const O_PATH: ::c_int = 2097152;
+-pub const O_TMPFILE: ::c_int = 4259840;
+-pub const MAP_GROWSDOWN: ::c_int = 256;
+-pub const EDEADLK: ::c_int = 35;
+-pub const ENAMETOOLONG: ::c_int = 36;
+-pub const ENOLCK: ::c_int = 37;
+-pub const ENOSYS: ::c_int = 38;
+-pub const ENOTEMPTY: ::c_int = 39;
+-pub const ELOOP: ::c_int = 40;
+-pub const ENOMSG: ::c_int = 42;
+-pub const EIDRM: ::c_int = 43;
+-pub const ECHRNG: ::c_int = 44;
+-pub const EL2NSYNC: ::c_int = 45;
+-pub const EL3HLT: ::c_int = 46;
+-pub const EL3RST: ::c_int = 47;
+-pub const ELNRNG: ::c_int = 48;
+-pub const EUNATCH: ::c_int = 49;
+-pub const ENOCSI: ::c_int = 50;
+-pub const EL2HLT: ::c_int = 51;
+-pub const EBADE: ::c_int = 52;
+-pub const EBADR: ::c_int = 53;
+-pub const EXFULL: ::c_int = 54;
+-pub const ENOANO: ::c_int = 55;
+-pub const EBADRQC: ::c_int = 56;
+-pub const EBADSLT: ::c_int = 57;
+-pub const EMULTIHOP: ::c_int = 72;
+-pub const EOVERFLOW: ::c_int = 75;
+-pub const ENOTUNIQ: ::c_int = 76;
+-pub const EBADFD: ::c_int = 77;
+-pub const EBADMSG: ::c_int = 74;
+-pub const EREMCHG: ::c_int = 78;
+-pub const ELIBACC: ::c_int = 79;
+-pub const ELIBBAD: ::c_int = 80;
+-pub const ELIBSCN: ::c_int = 81;
+-pub const ELIBMAX: ::c_int = 82;
+-pub const ELIBEXEC: ::c_int = 83;
+-pub const EILSEQ: ::c_int = 84;
+-pub const ERESTART: ::c_int = 85;
+-pub const ESTRPIPE: ::c_int = 86;
+-pub const EUSERS: ::c_int = 87;
+-pub const ENOTSOCK: ::c_int = 88;
+-pub const EDESTADDRREQ: ::c_int = 89;
+-pub const EMSGSIZE: ::c_int = 90;
+-pub const EPROTOTYPE: ::c_int = 91;
+-pub const ENOPROTOOPT: ::c_int = 92;
+-pub const EPROTONOSUPPORT: ::c_int = 93;
+-pub const ESOCKTNOSUPPORT: ::c_int = 94;
+-pub const EOPNOTSUPP: ::c_int = 95;
+-pub const EPFNOSUPPORT: ::c_int = 96;
+-pub const EAFNOSUPPORT: ::c_int = 97;
+-pub const EADDRINUSE: ::c_int = 98;
+-pub const EADDRNOTAVAIL: ::c_int = 99;
+-pub const ENETDOWN: ::c_int = 100;
+-pub const ENETUNREACH: ::c_int = 101;
+-pub const ENETRESET: ::c_int = 102;
+-pub const ECONNABORTED: ::c_int = 103;
+-pub const ECONNRESET: ::c_int = 104;
+-pub const ENOBUFS: ::c_int = 105;
+-pub const EISCONN: ::c_int = 106;
+-pub const ENOTCONN: ::c_int = 107;
+-pub const ESHUTDOWN: ::c_int = 108;
+-pub const ETOOMANYREFS: ::c_int = 109;
+-pub const ETIMEDOUT: ::c_int = 110;
+-pub const ECONNREFUSED: ::c_int = 111;
+-pub const EHOSTDOWN: ::c_int = 112;
+-pub const EHOSTUNREACH: ::c_int = 113;
+-pub const EALREADY: ::c_int = 114;
+-pub const EINPROGRESS: ::c_int = 115;
+-pub const ESTALE: ::c_int = 116;
+-pub const EDQUOT: ::c_int = 122;
+-pub const ENOMEDIUM: ::c_int = 123;
+-pub const EMEDIUMTYPE: ::c_int = 124;
+-pub const ECANCELED: ::c_int = 125;
+-pub const ENOKEY: ::c_int = 126;
+-pub const EKEYEXPIRED: ::c_int = 127;
+-pub const EKEYREVOKED: ::c_int = 128;
+-pub const EKEYREJECTED: ::c_int = 129;
+-pub const EOWNERDEAD: ::c_int = 130;
+-pub const ENOTRECOVERABLE: ::c_int = 131;
+-pub const EHWPOISON: ::c_int = 133;
+-pub const ERFKILL: ::c_int = 132;
+-
+-pub const SOCK_STREAM: ::c_int = 1;
+-pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SA_ONSTACK: ::c_int = 134217728;
+-pub const SA_SIGINFO: ::c_int = 4;
+-pub const SA_NOCLDWAIT: ::c_int = 2;
+-pub const SIGTTIN: ::c_int = 21;
+-pub const SIGTTOU: ::c_int = 22;
+-pub const SIGXCPU: ::c_int = 24;
+-pub const SIGXFSZ: ::c_int = 25;
+-pub const SIGVTALRM: ::c_int = 26;
+-pub const SIGPROF: ::c_int = 27;
+-pub const SIGWINCH: ::c_int = 28;
+-pub const SIGCHLD: ::c_int = 17;
+-pub const SIGBUS: ::c_int = 7;
+-pub const SIGUSR1: ::c_int = 10;
+-pub const SIGUSR2: ::c_int = 12;
+-pub const SIGCONT: ::c_int = 18;
+-pub const SIGSTOP: ::c_int = 19;
+-pub const SIGTSTP: ::c_int = 20;
+-pub const SIGURG: ::c_int = 23;
+-pub const SIGIO: ::c_int = 29;
+-pub const SIGSYS: ::c_int = 31;
+-pub const SIGSTKFLT: ::c_int = 16;
+-pub const SIGPOLL: ::c_int = 29;
+-pub const SIGPWR: ::c_int = 30;
+-pub const SIG_SETMASK: ::c_int = 2;
+-pub const SIG_BLOCK: ::c_int = 0;
+-pub const SIG_UNBLOCK: ::c_int = 1;
+-pub const POLLWRNORM: ::c_short = 256;
+-pub const POLLWRBAND: ::c_short = 512;
+-pub const O_ASYNC: ::c_int = 8192;
+-pub const O_NDELAY: ::c_int = 2048;
+-pub const PTRACE_DETACH: ::c_uint = 17;
+-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_SETLK: ::c_int = 6;
+-pub const F_SETLKW: ::c_int = 7;
+-pub const F_RDLCK: ::c_int = 0;
+-pub const F_WRLCK: ::c_int = 1;
+-pub const F_UNLCK: ::c_int = 2;
+-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 SFD_NONBLOCK: ::c_int = 2048;
+-pub const TCSANOW: ::c_int = 0;
+-pub const TCSADRAIN: ::c_int = 1;
+-pub const TCSAFLUSH: ::c_int = 2;
+-pub const TIOCLINUX: ::c_ulong = 21532;
+-pub const TIOCGSERIAL: ::c_ulong = 21534;
+-pub const TIOCEXCL: ::c_ulong = 21516;
+-pub const TIOCNXCL: ::c_ulong = 21517;
+-pub const TIOCSCTTY: ::c_ulong = 21518;
+-pub const TIOCSTI: ::c_ulong = 21522;
+-pub const TIOCMGET: ::c_ulong = 21525;
+-pub const TIOCMBIS: ::c_ulong = 21526;
+-pub const TIOCMBIC: ::c_ulong = 21527;
+-pub const TIOCMSET: ::c_ulong = 21528;
+-pub const TIOCCONS: ::c_ulong = 21533;
+-pub const TIOCM_ST: ::c_int = 8;
+-pub const TIOCM_SR: ::c_int = 16;
+-pub const TIOCM_CTS: ::c_int = 32;
+-pub const TIOCM_CAR: ::c_int = 64;
+-pub const TIOCM_RNG: ::c_int = 128;
+-pub const TIOCM_DSR: ::c_int = 256;
+-pub const SFD_CLOEXEC: ::c_int = 524288;
+-pub const NCCS: usize = 32;
+-pub const O_TRUNC: ::c_int = 512;
+-pub const O_CLOEXEC: ::c_int = 524288;
+-pub const EBFONT: ::c_int = 59;
+-pub const ENOSTR: ::c_int = 60;
+-pub const ENODATA: ::c_int = 61;
+-pub const ETIME: ::c_int = 62;
+-pub const ENOSR: ::c_int = 63;
+-pub const ENONET: ::c_int = 64;
+-pub const ENOPKG: ::c_int = 65;
+-pub const EREMOTE: ::c_int = 66;
+-pub const ENOLINK: ::c_int = 67;
+-pub const EADV: ::c_int = 68;
+-pub const ESRMNT: ::c_int = 69;
+-pub const ECOMM: ::c_int = 70;
+-pub const EPROTO: ::c_int = 71;
+-pub const EDOTDOT: ::c_int = 73;
+-pub const SA_NODEFER: ::c_int = 1073741824;
+-pub const SA_RESETHAND: ::c_int = -2147483648;
+-pub const SA_RESTART: ::c_int = 268435456;
+-pub const SA_NOCLDSTOP: ::c_int = 1;
+-pub const EPOLL_CLOEXEC: ::c_int = 524288;
+-pub const EFD_CLOEXEC: ::c_int = 524288;
+-pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
+-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_NOFOLLOW: ::c_int = 131072;
+-pub const MAP_HUGETLB: ::c_int = 262144;
+-pub const MAP_LOCKED: ::c_int = 8192;
+-pub const MAP_NORESERVE: ::c_int = 16384;
+-pub const MAP_ANON: ::c_int = 32;
+-pub const MAP_ANONYMOUS: ::c_int = 32;
+-pub const MAP_DENYWRITE: ::c_int = 2048;
+-pub const MAP_EXECUTABLE: ::c_int = 4096;
+-pub const MAP_POPULATE: ::c_int = 32768;
+-pub const MAP_NONBLOCK: ::c_int = 65536;
+-pub const MAP_STACK: ::c_int = 131072;
+-pub const MAP_SYNC: ::c_int = 0x080000;
+-pub const EDEADLOCK: ::c_int = 35;
+-pub const EUCLEAN: ::c_int = 117;
+-pub const ENOTNAM: ::c_int = 118;
+-pub const ENAVAIL: ::c_int = 119;
+-pub const EISNAM: ::c_int = 120;
+-pub const EREMOTEIO: ::c_int = 121;
+-pub const FIOCLEX: ::c_ulong = 21585;
+-pub const FIONCLEX: ::c_ulong = 21584;
+-pub const FIONBIO: ::c_ulong = 21537;
+-pub const MCL_CURRENT: ::c_int = 1;
+-pub const MCL_FUTURE: ::c_int = 2;
+-pub const SIGSTKSZ: ::size_t = 8192;
+-pub const MINSIGSTKSZ: ::size_t = 2048;
+-pub const CBAUD: ::tcflag_t = 4111;
+-pub const TAB1: ::tcflag_t = 2048;
+-pub const TAB2: ::tcflag_t = 4096;
+-pub const TAB3: ::tcflag_t = 6144;
+-pub const CR1: ::tcflag_t = 512;
+-pub const CR2: ::tcflag_t = 1024;
+-pub const CR3: ::tcflag_t = 1536;
+-pub const FF1: ::tcflag_t = 32768;
+-pub const BS1: ::tcflag_t = 8192;
+-pub const VT1: ::tcflag_t = 16384;
+-pub const VWERASE: usize = 14;
+-pub const VREPRINT: usize = 12;
+-pub const VSUSP: usize = 10;
+-pub const VSTART: usize = 8;
+-pub const VSTOP: usize = 9;
+-pub const VDISCARD: usize = 13;
+-pub const VTIME: usize = 5;
+-pub const IXON: ::tcflag_t = 1024;
+-pub const IXOFF: ::tcflag_t = 4096;
+-pub const ONLCR: ::tcflag_t = 4;
+-pub const CSIZE: ::tcflag_t = 48;
+-pub const CS6: ::tcflag_t = 16;
+-pub const CS7: ::tcflag_t = 32;
+-pub const CS8: ::tcflag_t = 48;
+-pub const CSTOPB: ::tcflag_t = 64;
+-pub const CREAD: ::tcflag_t = 128;
+-pub const PARENB: ::tcflag_t = 256;
+-pub const PARODD: ::tcflag_t = 512;
+-pub const HUPCL: ::tcflag_t = 1024;
+-pub const CLOCAL: ::tcflag_t = 2048;
+-pub const ECHOKE: ::tcflag_t = 2048;
+-pub const ECHOE: ::tcflag_t = 16;
+-pub const ECHOK: ::tcflag_t = 32;
+-pub const ECHONL: ::tcflag_t = 64;
+-pub const ECHOPRT: ::tcflag_t = 1024;
+-pub const ECHOCTL: ::tcflag_t = 512;
+-pub const ISIG: ::tcflag_t = 1;
+-pub const ICANON: ::tcflag_t = 2;
+-pub const PENDIN: ::tcflag_t = 16384;
+-pub const NOFLSH: ::tcflag_t = 128;
+-pub const CIBAUD: ::tcflag_t = 269418496;
+-pub const CBAUDEX: ::tcflag_t = 4096;
+-pub const VSWTC: usize = 7;
+-pub const OLCUC: ::tcflag_t = 2;
+-pub const NLDLY: ::tcflag_t = 256;
+-pub const CRDLY: ::tcflag_t = 1536;
+-pub const TABDLY: ::tcflag_t = 6144;
+-pub const BSDLY: ::tcflag_t = 8192;
+-pub const FFDLY: ::tcflag_t = 32768;
+-pub const VTDLY: ::tcflag_t = 16384;
+-pub const XTABS: ::tcflag_t = 6144;
+-pub const B0: ::speed_t = 0;
+-pub const B50: ::speed_t = 1;
+-pub const B75: ::speed_t = 2;
+-pub const B110: ::speed_t = 3;
+-pub const B134: ::speed_t = 4;
+-pub const B150: ::speed_t = 5;
+-pub const B200: ::speed_t = 6;
+-pub const B300: ::speed_t = 7;
+-pub const B600: ::speed_t = 8;
+-pub const B1200: ::speed_t = 9;
+-pub const B1800: ::speed_t = 10;
+-pub const B2400: ::speed_t = 11;
+-pub const B4800: ::speed_t = 12;
+-pub const B9600: ::speed_t = 13;
+-pub const B19200: ::speed_t = 14;
+-pub const B38400: ::speed_t = 15;
+-pub const EXTA: ::speed_t = 14;
+-pub const EXTB: ::speed_t = 15;
+-pub const B57600: ::speed_t = 4097;
+-pub const B115200: ::speed_t = 4098;
+-pub const B230400: ::speed_t = 4099;
+-pub const B460800: ::speed_t = 4100;
+-pub const B500000: ::speed_t = 4101;
+-pub const B576000: ::speed_t = 4102;
+-pub const B921600: ::speed_t = 4103;
+-pub const B1000000: ::speed_t = 4104;
+-pub const B1152000: ::speed_t = 4105;
+-pub const B1500000: ::speed_t = 4106;
+-pub const B2000000: ::speed_t = 4107;
+-pub const B2500000: ::speed_t = 4108;
+-pub const B3000000: ::speed_t = 4109;
+-pub const B3500000: ::speed_t = 4110;
+-pub const B4000000: ::speed_t = 4111;
+-pub const VEOL: usize = 11;
+-pub const VEOL2: usize = 16;
+-pub const VMIN: usize = 6;
+-pub const IEXTEN: ::tcflag_t = 32768;
+-pub const TOSTOP: ::tcflag_t = 256;
+-pub const FLUSHO: ::tcflag_t = 4096;
+-pub const EXTPROC: ::tcflag_t = 65536;
+-pub const TCGETS: ::c_ulong = 21505;
+-pub const TCSETS: ::c_ulong = 21506;
+-pub const TCSETSW: ::c_ulong = 21507;
+-pub const TCSETSF: ::c_ulong = 21508;
+-pub const TCGETA: ::c_ulong = 21509;
+-pub const TCSETA: ::c_ulong = 21510;
+-pub const TCSETAW: ::c_ulong = 21511;
+-pub const TCSETAF: ::c_ulong = 21512;
+-pub const TCSBRK: ::c_ulong = 21513;
+-pub const TCXONC: ::c_ulong = 21514;
+-pub const TCFLSH: ::c_ulong = 21515;
+-pub const TIOCINQ: ::c_ulong = 21531;
+-pub const TIOCGPGRP: ::c_ulong = 21519;
+-pub const TIOCSPGRP: ::c_ulong = 21520;
+-pub const TIOCOUTQ: ::c_ulong = 21521;
+-pub const TIOCGWINSZ: ::c_ulong = 21523;
+-pub const TIOCSWINSZ: ::c_ulong = 21524;
+-pub const FIONREAD: ::c_ulong = 21531;
+-pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
+-pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+ pub const SYS_read: ::c_long = 63;
+ pub const SYS_write: ::c_long = 64;
+ pub const SYS_close: ::c_long = 57;
+@@ -830,3 +487,315 @@ pub const SYS_faccessat2: ::c_long = 439;
+ pub const SYS_process_madvise: ::c_long = 440;
+ pub const SYS_epoll_pwait2: ::c_long = 441;
+ pub const SYS_mount_setattr: ::c_long = 442;
++
++
++pub const O_APPEND: ::c_int = 1024;
++pub const O_DIRECT: ::c_int = 0x4000;
++pub const O_DIRECTORY: ::c_int = 0x10000;
++pub const O_LARGEFILE: ::c_int = 0;
++pub const O_NOFOLLOW: ::c_int = 0x20000;
++pub const O_CREAT: ::c_int = 64;
++pub const O_EXCL: ::c_int = 128;
++pub const O_NOCTTY: ::c_int = 256;
++pub const O_NONBLOCK: ::c_int = 2048;
++pub const O_SYNC: ::c_int = 1052672;
++pub const O_RSYNC: ::c_int = 1052672;
++pub const O_DSYNC: ::c_int = 4096;
++pub const O_ASYNC: ::c_int = 0x2000;
++
++pub const TIOCGRS485: ::c_int = 0x542E;
++pub const TIOCSRS485: ::c_int = 0x542F;
++
++pub const SIGSTKSZ: ::size_t = 8192;
++pub const MINSIGSTKSZ: ::size_t = 2048;
++
++pub const ENAMETOOLONG: ::c_int = 36;
++pub const ENOLCK: ::c_int = 37;
++pub const ENOSYS: ::c_int = 38;
++pub const ENOTEMPTY: ::c_int = 39;
++pub const ELOOP: ::c_int = 40;
++pub const ENOMSG: ::c_int = 42;
++pub const EIDRM: ::c_int = 43;
++pub const ECHRNG: ::c_int = 44;
++pub const EL2NSYNC: ::c_int = 45;
++pub const EL3HLT: ::c_int = 46;
++pub const EL3RST: ::c_int = 47;
++pub const ELNRNG: ::c_int = 48;
++pub const EUNATCH: ::c_int = 49;
++pub const ENOCSI: ::c_int = 50;
++pub const EL2HLT: ::c_int = 51;
++pub const EBADE: ::c_int = 52;
++pub const EBADR: ::c_int = 53;
++pub const EXFULL: ::c_int = 54;
++pub const ENOANO: ::c_int = 55;
++pub const EBADRQC: ::c_int = 56;
++pub const EBADSLT: ::c_int = 57;
++pub const EMULTIHOP: ::c_int = 72;
++pub const EOVERFLOW: ::c_int = 75;
++pub const ENOTUNIQ: ::c_int = 76;
++pub const EBADFD: ::c_int = 77;
++pub const EBADMSG: ::c_int = 74;
++pub const EREMCHG: ::c_int = 78;
++pub const ELIBACC: ::c_int = 79;
++pub const ELIBBAD: ::c_int = 80;
++pub const ELIBSCN: ::c_int = 81;
++pub const ELIBMAX: ::c_int = 82;
++pub const ELIBEXEC: ::c_int = 83;
++pub const EILSEQ: ::c_int = 84;
++pub const ERESTART: ::c_int = 85;
++pub const ESTRPIPE: ::c_int = 86;
++pub const EUSERS: ::c_int = 87;
++pub const ENOTSOCK: ::c_int = 88;
++pub const EDESTADDRREQ: ::c_int = 89;
++pub const EMSGSIZE: ::c_int = 90;
++pub const EPROTOTYPE: ::c_int = 91;
++pub const ENOPROTOOPT: ::c_int = 92;
++pub const EPROTONOSUPPORT: ::c_int = 93;
++pub const ESOCKTNOSUPPORT: ::c_int = 94;
++pub const EOPNOTSUPP: ::c_int = 95;
++pub const EPFNOSUPPORT: ::c_int = 96;
++pub const EAFNOSUPPORT: ::c_int = 97;
++pub const EADDRINUSE: ::c_int = 98;
++pub const EADDRNOTAVAIL: ::c_int = 99;
++pub const ENETDOWN: ::c_int = 100;
++pub const ENETUNREACH: ::c_int = 101;
++pub const ENETRESET: ::c_int = 102;
++pub const ECONNABORTED: ::c_int = 103;
++pub const ECONNRESET: ::c_int = 104;
++pub const ENOBUFS: ::c_int = 105;
++pub const EISCONN: ::c_int = 106;
++pub const ENOTCONN: ::c_int = 107;
++pub const ESHUTDOWN: ::c_int = 108;
++pub const ETOOMANYREFS: ::c_int = 109;
++pub const ETIMEDOUT: ::c_int = 110;
++pub const ECONNREFUSED: ::c_int = 111;
++pub const EHOSTDOWN: ::c_int = 112;
++pub const EHOSTUNREACH: ::c_int = 113;
++pub const EALREADY: ::c_int = 114;
++pub const EINPROGRESS: ::c_int = 115;
++pub const ESTALE: ::c_int = 116;
++pub const EDQUOT: ::c_int = 122;
++pub const ENOMEDIUM: ::c_int = 123;
++pub const EMEDIUMTYPE: ::c_int = 124;
++pub const ECANCELED: ::c_int = 125;
++pub const ENOKEY: ::c_int = 126;
++pub const EKEYEXPIRED: ::c_int = 127;
++pub const EKEYREVOKED: ::c_int = 128;
++pub const EKEYREJECTED: ::c_int = 129;
++pub const EOWNERDEAD: ::c_int = 130;
++pub const ENOTRECOVERABLE: ::c_int = 131;
++pub const EHWPOISON: ::c_int = 133;
++pub const ERFKILL: ::c_int = 132;
++
++pub const SA_ONSTACK: ::c_int = 0x08000000;
++pub const SA_SIGINFO: ::c_int = 0x00000004;
++pub const SA_NOCLDWAIT: ::c_int = 0x00000002;
++
++pub const SIGCHLD: ::c_int = 17;
++pub const SIGBUS: ::c_int = 7;
++pub const SIGTTIN: ::c_int = 21;
++pub const SIGTTOU: ::c_int = 22;
++pub const SIGXCPU: ::c_int = 24;
++pub const SIGXFSZ: ::c_int = 25;
++pub const SIGVTALRM: ::c_int = 26;
++pub const SIGPROF: ::c_int = 27;
++pub const SIGWINCH: ::c_int = 28;
++pub const SIGUSR1: ::c_int = 10;
++pub const SIGUSR2: ::c_int = 12;
++pub const SIGCONT: ::c_int = 18;
++pub const SIGSTOP: ::c_int = 19;
++pub const SIGTSTP: ::c_int = 20;
++pub const SIGURG: ::c_int = 23;
++pub const SIGIO: ::c_int = 29;
++pub const SIGSYS: ::c_int = 31;
++pub const SIGSTKFLT: ::c_int = 16;
++pub const SIGPOLL: ::c_int = 29;
++pub const SIGPWR: ::c_int = 30;
++pub const SIG_SETMASK: ::c_int = 2;
++pub const SIG_BLOCK: ::c_int = 0x000000;
++pub const SIG_UNBLOCK: ::c_int = 0x01;
++
++pub const F_GETLK: ::c_int = 5;
++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;
++
++pub const POLLWRNORM: ::c_short = 0x100;
++pub const POLLWRBAND: ::c_short = 0x200;
++
++pub const SOCK_STREAM: ::c_int = 1;
++pub const SOCK_DGRAM: ::c_int = 2;
++pub const SOL_SOCKET: ::c_int = 1;
++pub const SO_REUSEADDR: ::c_int = 2;
++pub const SO_TYPE: ::c_int = 3;
++pub const SO_ERROR: ::c_int = 4;
++pub const SO_DONTROUTE: ::c_int = 5;
++pub const SO_BROADCAST: ::c_int = 6;
++pub const SO_SNDBUF: ::c_int = 7;
++pub const SO_RCVBUF: ::c_int = 8;
++pub const SO_KEEPALIVE: ::c_int = 9;
++pub const SO_OOBINLINE: ::c_int = 10;
++pub const SO_NO_CHECK: ::c_int = 11;
++pub const SO_PRIORITY: ::c_int = 12;
++pub const SO_LINGER: ::c_int = 13;
++pub const SO_BSDCOMPAT: ::c_int = 14;
++pub const SO_REUSEPORT: ::c_int = 15;
++pub const SO_ACCEPTCONN: ::c_int = 30;
++pub const SO_SNDBUFFORCE: ::c_int = 32;
++pub const SO_RCVBUFFORCE: ::c_int = 33;
++pub const SO_PROTOCOL: ::c_int = 38;
++pub const SO_DOMAIN: ::c_int = 39;
++
++pub const MAP_ANON: ::c_int = 0x0020;
++pub const MAP_GROWSDOWN: ::c_int = 0x0100;
++pub const MAP_DENYWRITE: ::c_int = 0x0800;
++pub const MAP_EXECUTABLE: ::c_int = 0x01000;
++pub const MAP_LOCKED: ::c_int = 0x02000;
++pub const MAP_NORESERVE: ::c_int = 0x04000;
++pub const MAP_POPULATE: ::c_int = 0x08000;
++pub const MAP_NONBLOCK: ::c_int = 0x010000;
++pub const MAP_STACK: ::c_int = 0x020000;
++pub const MAP_HUGETLB: ::c_int = 0x040000;
++pub const MAP_SYNC : ::c_int = 0x080000;
++
++pub const RLIMIT_NLIMITS: ::c_int = 15;
++pub const TIOCINQ: ::c_int = ::FIONREAD;
++pub const MCL_CURRENT: ::c_int = 0x0001;
++pub const MCL_FUTURE: ::c_int = 0x0002;
++pub const CBAUD: ::tcflag_t = 0o0010017;
++pub const TAB1: ::c_int = 0x00000800;
++pub const TAB2: ::c_int = 0x00001000;
++pub const TAB3: ::c_int = 0x00001800;
++pub const CR1: ::c_int = 0x00000200;
++pub const CR2: ::c_int = 0x00000400;
++pub const CR3: ::c_int = 0x00000600;
++pub const FF1: ::c_int = 0x00008000;
++pub const BS1: ::c_int = 0x00002000;
++pub const VT1: ::c_int = 0x00004000;
++pub const VWERASE: usize = 14;
++pub const VREPRINT: usize = 12;
++pub const VSUSP: usize = 10;
++pub const VSTART: usize = 8;
++pub const VSTOP: usize = 9;
++pub const VDISCARD: usize = 13;
++pub const VTIME: usize = 5;
++pub const IXON: ::tcflag_t = 0x00000400;
++pub const IXOFF: ::tcflag_t = 0x00001000;
++pub const ONLCR: ::tcflag_t = 0x4;
++pub const CSIZE: ::tcflag_t = 0x00000030;
++pub const CS6: ::tcflag_t = 0x00000010;
++pub const CS7: ::tcflag_t = 0x00000020;
++pub const CS8: ::tcflag_t = 0x00000030;
++pub const CSTOPB: ::tcflag_t = 0x00000040;
++pub const CREAD: ::tcflag_t = 0x00000080;
++pub const PARENB: ::tcflag_t = 0x00000100;
++pub const PARODD: ::tcflag_t = 0x00000200;
++pub const HUPCL: ::tcflag_t = 0x00000400;
++pub const CLOCAL: ::tcflag_t = 0x00000800;
++pub const ECHOKE: ::tcflag_t = 0x00000800;
++pub const ECHOE: ::tcflag_t = 0x00000010;
++pub const ECHOK: ::tcflag_t = 0x00000020;
++pub const ECHONL: ::tcflag_t = 0x00000040;
++pub const ECHOPRT: ::tcflag_t = 0x00000400;
++pub const ECHOCTL: ::tcflag_t = 0x00000200;
++pub const ISIG: ::tcflag_t = 0x00000001;
++pub const ICANON: ::tcflag_t = 0x00000002;
++pub const PENDIN: ::tcflag_t = 0x00004000;
++pub const NOFLSH: ::tcflag_t = 0x00000080;
++pub const CIBAUD: ::tcflag_t = 0o02003600000;
++pub const CBAUDEX: ::tcflag_t = 0o010000;
++pub const VSWTC: usize = 7;
++pub const OLCUC: ::tcflag_t = 0o000002;
++pub const NLDLY: ::tcflag_t = 0o000400;
++pub const CRDLY: ::tcflag_t = 0o003000;
++pub const TABDLY: ::tcflag_t = 0o014000;
++pub const BSDLY: ::tcflag_t = 0o020000;
++pub const FFDLY: ::tcflag_t = 0o100000;
++pub const VTDLY: ::tcflag_t = 0o040000;
++pub const XTABS: ::tcflag_t = 0o014000;
++pub const B57600: ::speed_t = 0o010001;
++pub const B115200: ::speed_t = 0o010002;
++pub const B230400: ::speed_t = 0o010003;
++pub const B460800: ::speed_t = 0o010004;
++pub const B500000: ::speed_t = 0o010005;
++pub const B576000: ::speed_t = 0o010006;
++pub const B921600: ::speed_t = 0o010007;
++pub const B1000000: ::speed_t = 0o010010;
++pub const B1152000: ::speed_t = 0o010011;
++pub const B1500000: ::speed_t = 0o010012;
++pub const B2000000: ::speed_t = 0o010013;
++pub const B2500000: ::speed_t = 0o010014;
++pub const B3000000: ::speed_t = 0o010015;
++pub const B3500000: ::speed_t = 0o010016;
++pub const B4000000: ::speed_t = 0o010017;
++
++pub const FIOCLEX: ::c_int = 0x5451;
++pub const FIONCLEX: ::c_int = 0x5450;
++pub const FIONBIO: ::c_int = 0x5421;
++pub const EDEADLK: ::c_int = 35;
++pub const EDEADLOCK: ::c_int = EDEADLK;
++pub const SO_PASSCRED: ::c_int = 16;
++pub const SO_PEERCRED: ::c_int = 17;
++pub const SO_RCVLOWAT: ::c_int = 18;
++pub const SO_SNDLOWAT: ::c_int = 19;
++pub const SO_RCVTIMEO: ::c_int = 20;
++pub const SO_SNDTIMEO: ::c_int = 21;
++pub const EXTPROC: ::tcflag_t = 0x00010000;
++pub const VEOL: usize = 11;
++pub const VEOL2: usize = 16;
++pub const VMIN: usize = 6;
++pub const IEXTEN: ::tcflag_t = 0x00008000;
++pub const TOSTOP: ::tcflag_t = 0x00000100;
++pub const FLUSHO: ::tcflag_t = 0x00001000;
++pub const TCGETS: ::c_int = 0x5401;
++pub const TCSETS: ::c_int = 0x5402;
++pub const TCSETSW: ::c_int = 0x5403;
++pub const TCSETSF: ::c_int = 0x5404;
++pub const TCGETA: ::c_int = 0x5405;
++pub const TCSETA: ::c_int = 0x5406;
++pub const TCSETAW: ::c_int = 0x5407;
++pub const TCSETAF: ::c_int = 0x5408;
++pub const TCSBRK: ::c_int = 0x5409;
++pub const TCXONC: ::c_int = 0x540A;
++pub const TCFLSH: ::c_int = 0x540B;
++pub const TIOCGSOFTCAR: ::c_int = 0x5419;
++pub const TIOCSSOFTCAR: ::c_int = 0x541A;
++pub const TIOCLINUX: ::c_int = 0x541C;
++pub const TIOCGSERIAL: ::c_int = 0x541E;
++pub const TIOCEXCL: ::c_int = 0x540C;
++pub const TIOCNXCL: ::c_int = 0x540D;
++pub const TIOCSCTTY: ::c_int = 0x540E;
++pub const TIOCGPGRP: ::c_int = 0x540F;
++pub const TIOCSPGRP: ::c_int = 0x5410;
++pub const TIOCOUTQ: ::c_int = 0x5411;
++pub const TIOCSTI: ::c_int = 0x5412;
++pub const TIOCGWINSZ: ::c_int = 0x5413;
++pub const TIOCSWINSZ: ::c_int = 0x5414;
++pub const TIOCMGET: ::c_int = 0x5415;
++pub const TIOCMBIS: ::c_int = 0x5416;
++pub const TIOCMBIC: ::c_int = 0x5417;
++pub const TIOCMSET: ::c_int = 0x5418;
++pub const FIONREAD: ::c_int = 0x541B;
++pub const TIOCCONS: ::c_int = 0x541D;
++
++pub const TIOCM_LE: ::c_int = 0x001;
++pub const TIOCM_DTR: ::c_int = 0x002;
++pub const TIOCM_RTS: ::c_int = 0x004;
++pub const TIOCM_ST: ::c_int = 0x008;
++pub const TIOCM_SR: ::c_int = 0x010;
++pub const TIOCM_CTS: ::c_int = 0x020;
++pub const TIOCM_CAR: ::c_int = 0x040;
++pub const TIOCM_RNG: ::c_int = 0x080;
++pub const TIOCM_DSR: ::c_int = 0x100;
++pub const TIOCM_CD: ::c_int = TIOCM_CAR;
++pub const TIOCM_RI: ::c_int = TIOCM_RNG;
++
++extern "C" {
++    pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int;
++}
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/rust/libstd-rs/0004-Update-checksums-for-modified-files-for-rust.patch b/poky/meta/recipes-devtools/rust/libstd-rs/0004-Update-checksums-for-modified-files-for-rust.patch
new file mode 100644
index 0000000..6f0e331
--- /dev/null
+++ b/poky/meta/recipes-devtools/rust/libstd-rs/0004-Update-checksums-for-modified-files-for-rust.patch
@@ -0,0 +1,22 @@
+From 6dc0a4273b01ec9492af4965f47450a8b8a7c202 Mon Sep 17 00:00:00 2001
+From: Ralf Anton Beier <ralf_beier@me.com>
+Date: Sun, 8 Aug 2021 11:19:24 +0200
+Subject: [PATCH 4/4] Update checksums for modified files for rust
+
+Upstream-Status: Inappropriate [previous patches need to be upstreamed]
+Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
+---
+ vendor/libc/.cargo-checksum.json | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/vendor/libc/.cargo-checksum.json b/vendor/libc/.cargo-checksum.json
+index 8cf4eba1b..333cb7cf9 100644
+--- a/vendor/libc/.cargo-checksum.json
++++ b/vendor/libc/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"CONTRIBUTING.md":"752eea5a703d11b485c6b5f195f51bd2c79aa5159b619ce09555c779e1fb586b","Cargo.toml":"d6f6253f05d207b6c676e5647b31ad0ca3f05da3ac05db47f81d4ebd901ba22f","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"8228847944f1332882fbb00275b6f30e4a8aad08a13569c25d52cac012cc2a47","build.rs":"a71b92db5077b33af4ee6f1de33574ac33c2b292840eddbe3f7cce37f1fb16b9","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"34c60f12ec5eeb90f13ec3b954427532111c2446e69617616a97aefc1086a9f1","src/fuchsia/aarch64.rs":"378776a9e40766154a54c94c2a7b4675b5c302a38e6e42da99e67bfbaee60e56","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"520300ff260d377930f2f456135ec9a3ac7740a949ce7bf5269c0dc60d56c0df","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":"e92c56b42f1bd1b9e66be2a9b73aca6ba29024b9bd17c16f327dfbe8831e3f86","src/macros.rs":"c1a299d5327ba033f079388f8ac8a44848f9aeff6a72e9be6dfa70f4769cc619","src/psp.rs":"dd31aabd46171d474ec5828372e28588935120e7355c90c105360d8fa9264c1c","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/solid/aarch64.rs":"8cdae0cc37c43dabd4253a534e700bec6b6a57293c0c8e36c9ce16675d16799a","src/solid/arm.rs":"852b58a0837fde089cb9b5af131bf653daeb8c726f7540032756db8b7d4f8149","src/solid/mod.rs":"98dc29c3e5773318ba258a4a2b7407f25aa52d40885a0024fbe43676fe54d14b","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":"f0c321265dd7671f16106b84951ac7dd77ed2e65c6623cbf2d29e76531984770","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":"96f101bdab46a9f0a5249a8143d4a9def055284a0c2bd62bce15532a5bed428c","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"6ea4129eb5d6da5c09f8cf3692b5e7716f058b48d1e8c61115691709eda7ce51","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"2a215bd6136b8617aacedf9be738ccee94da9d29b418e9a78101d6291c182352","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":"bf0a994e2079b8aad9da5efd3a3b9a7194a53ae60887a25c57964fb68499e847","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"295b3e3b67394f731d4e88d169e3d3d1d80026b99898745cd0d1d163f085ff61","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":"98f6af2021b434f9c3197094312b457774381220f31a22c3b15b1fe8a60cb365","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/mod.rs":"6b825079ffe3f9aec6e78ea6b50acedcb91a4e1312d721105b7f8b1555f254df","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","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":"c3a0111252e201c172b99e7d9cbee4cf088d3dd47995110e819f04276bccd198","src/unix/bsd/freebsdlike/mod.rs":"98d322b22050a80636841287d9ed12549a2004a9dbe151763e5b1270f5e73ea3","src/unix/bsd/mod.rs":"2fed08973739d7f6a7412b204724af64b1a915c712689c250cf9a08263ba05ff","src/unix/bsd/netbsdlike/mod.rs":"4e9da54e541773c7ad4cca9dade1df00f28f2fdac3f8df5957f4c74b7e082344","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"65dcb58d11e8d8028401a9d07ca3eb4cb4f053e04249cc877353449d84ccc4cb","src/unix/bsd/netbsdlike/netbsd/arm.rs":"58cdbb70b0d6f536551f0f3bb3725d2d75c4690db12c26c034e7d6ec4a924452","src/unix/bsd/netbsdlike/netbsd/mod.rs":"f6de6981382af87518e4a5b6d26c2ea551ed74640dd7166107a824af30ced243","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/mod.rs":"47aaab2bd8238e937112ff17e8262945c8e5865d5e696f218b11c1da59830808","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":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"80a6cfb58acbbc471dbd412dd76a41f372befc8f217fb1671ed4ce8d391dced0","src/unix/haiku/native.rs":"44855f52906f607de137fc4baa8c6b1b9a26baaa666f25d5f7a7ec5e017c8be6","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":"d971b98530a96f5892f98e1edc3133cf278d1b3939d77ab0a27a6323e0961715","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/mod.rs":"8fe667d2b14abc5ac8aad32e16c3da24350471d8156eaea9ab4989f73dd9f9fc","src/unix/linux_like/android/b64/mod.rs":"d7bbbadafdb2cb2ff8e9cde3d89a03b9facaabb6b2d45705225d3ece1c5cce37","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"06b22dc184e85a988ab969c75cadc52b9878faeab0eb9d21215878c95fe07c19","src/unix/linux_like/android/mod.rs":"07cebaa8d953446b8df5cb7c5de3932ae85b04d9e9993e3a3a126ff8f15111a4","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/mod.rs":"b71d37106750f57bc2dae4e9bcb473ff098ef48235827e41a1687a39825f0aa4","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"213e70ebed2703e14a9cf17666b21ecbf180b7bff7fa22fdbb36dbbd52df326d","src/unix/linux_like/linux/arch/generic/mod.rs":"1618634d37348032f5ce1dc9df1aaa1f1681bca4a275f23d41f42098c4d3b423","src/unix/linux_like/linux/arch/mips/mod.rs":"dac02cd01dbd3b222286887c64d398c031afc08d38850c2b3ce2fe7158d888e0","src/unix/linux_like/linux/arch/mod.rs":"466a29622e47c6c7f1500682b2eb17f5566dd81b322cd6348f0fdd355cec593a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"1789eb5b41f75c29239795124a4a7cdcf7c8d213b88cf581b2f5bda08d7cf15b","src/unix/linux_like/linux/arch/sparc/mod.rs":"e7139d3bfb291a283c767e6201eac8bbb58c91839a36fa56bfe500fcb3aa754a","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"3fed009dc9af3cc81be7087da9d2d7d1f39845e4497e290259c5cdbae25f039d","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"5e40c273b767c369a46c3315c7cfde97379944ed63c74735e98d4dae2c49d414","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"20b4c897fb3f63e31a04849b348ec8e6e6405ce9463048d411114f8c9dbabd8a","src/unix/linux_like/linux/gnu/b32/mod.rs":"794dbcbae7dae8fd6b0b814573243197ceb532b56ef0772ad86b4b401478fcd9","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"0cd7348badb9c4f8a0db31a2503b30c456a2bfcc7a0e5919762b1e12f912c5ad","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"ee5145a383386b716605a8d1ff3df212d418aae1aa1f37d2307d4f9cd1a08e99","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"a2c4ae8f31a74e4843b8ff4b6507419f403b52713169fcee9b1b24eb2324162a","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"525ee4917b54790cefc1298ec1015cea6332d818d9c7475434e94d06afdd59c0","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"21a21503ef2e095f4371044915d4bfb07a8578011cb5c713cd9f45947b0b5730","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"e78c3cd197f44832338b414d1a9bc0d194f44c74db77bd7bf830c1fff62b2690","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"d179cbb462c451ff8805029b2b922c4bf90e35f667e80d716d5064f563aebc52","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"7d456da436017cb388b65b2c4b626c83b489cbb19a591673b9c627a608d53cfc","src/unix/linux_like/linux/gnu/b64/mod.rs":"6336065423c26b59681fd2ce77f1117ea36af13e163fdadaefd108bd8191e8c8","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"dbb8905e363ed4a2dfb984554ad9b6389d27f6a2d599ec2d80e38a6c7551a019","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"5b982c41097f4f91adcb0968290afeccb27dce1695a261c964d34ef85df87cf4","src/unix/linux_like/linux/gnu/b64/s390x.rs":"fce37140468f8914411eed0b25a882e60e1b54bcffcd33d6263a91b57d04f6c1","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"518ef78da0d81fe74cec30be411145d763fdfd249de4d108602fd0995781f590","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"76cba0a3f9456a968d2ae6ea587162b2ff04278dc5250cb176395c936579771b","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"f775ac2b754f90b63053fe22afe1d19d306b5404995568d6805baa9249fb617f","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"4ba1b58468f55254717366f50fdfd3e4114fde6dc442a56681926c4d7e5b6b0d","src/unix/linux_like/linux/gnu/mod.rs":"af3590c392bd06394cb307ccb993e66f53de7e2a0211c689dbb1845220475445","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"88ce2c4105c07c1262495e0ff1bd53f3ceec99adba9c20c612439838b4dbfdd6","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"6255abe2ee04986832d12b7b2190589580f2a43e9bfb285b32b5747227f62727","src/unix/linux_like/linux/musl/b32/hexagon.rs":"10067cde5706e1173aa8e0a3a364cf44fe5b7a9f8b71cb086c653be71af00564","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"b9e9ff42363ebbb884ddf6445129ec4164471df45846874fc08f5f458e659254","src/unix/linux_like/linux/musl/b32/mod.rs":"8ede3985e6243882814ce91e8ce543e7edbafc0cee5932816072b6f14207a671","src/unix/linux_like/linux/musl/b32/powerpc.rs":"4592dc5f1f2fe888dfef85fa862d42d168e73a2c6f4fc052b58287d0f4d4ffcd","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"a19a8decfab185af3cebd34aae4b15082e7552be573904b8c1a3f0c0e493ef34","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"798a9229d70ce235394f2dd625f6c4c1e10519a94382dc5b091952b638ae2928","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"a73035c6d9b776f13b839008e15c04c2c53455571efd06664affcb047e457112","src/unix/linux_like/linux/musl/b64/mips64.rs":"2744895451f3a777fbe54f7f2695be53310b965fd62084c9b7e9121c7fe28346","src/unix/linux_like/linux/musl/b64/mod.rs":"d18abc0aeba2e26342bf3416a4dba0836db2bb0ee013b0a39629475cf8640289","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"e5a55525b42493923956d668f978fb45e22d51deea00ce5edbfddf76ff19c741","src/unix/linux_like/linux/musl/b64/s390x.rs":"03dfec6794d93cb31a7c52b2d53a0973755168f91f8fa437cc5dbd54882c8ee7","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"0dd168f5a6881f32e5239fb312b23cf137b800d0ff323286a92c8a2c382b5456","src/unix/linux_like/linux/musl/mod.rs":"55ccd71342276ccb4c441a4bc2772aebfd163af299669b658c6c8c6add331ec3","src/unix/linux_like/linux/no_align.rs":"5ed04c53bf9d27da9b4d65ba7625c6ac53330162683d1b3df98950caafa3507b","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":"1e3bf809508b5872949136859bf48ddf58b7d24ae9f0b663e79f0efd1aaeb6a6","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":"fa4102d9a596d90de604ce2962b0e64f184dfbf10552a4c3ecf28f12d4704379","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":"e3085ba56cfbc528d7c3c55065880603238c333b6047ef51c58177508a487fcd","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"a2877679fef0f14f54a89ccbc41fb02f0c25bf6e536f9eb2cb2fa437e1d3f739","src/unix/linux_like/linux/uclibc/mod.rs":"82d504d3aa12cb0f7933980f81c4708fa6e070d4c57efdf407f2de05b71bc06d","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":"66e8f5b7509a6e638b8b904906f89badbab0da8fb5b602d07ebd88649c4b961a","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"ffce98bdd208fd9d335c65feafbf0d9742bea67c7eec1ee48657f292132ec3f0","src/unix/mod.rs":"b72f18e053cca0ade0f0606f1848a773fcf1885c72cbb31889275e8195f060bd","src/unix/newlib/aarch64/mod.rs":"bb269c1468a9676442554600e87417079a787fe6220dfc23b3109639259e8710","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"c71be856bfd7f576b2db28af9f680211cbe6c1cac7d537bbc8020b39591af07c","src/unix/newlib/espidf/mod.rs":"c198cb4beccdab483be61c102da74dc51ac80f766797e33021f3110394ed5a3d","src/unix/newlib/mod.rs":"d7271c13748be08305d36f9af6f41f6950a7a1d6d4382149194a35d5fe2090de","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"2d0f7af28b47f7a2a6c210ebd1c1f33ed8eac62e56b5af2b856de2ad3fdc5187","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/redox/mod.rs":"cc4794afa4fbed9d6612894ea476228f9d8533950162d6416fc4d16073e1dac4","src/unix/solarish/compat.rs":"b07a5bfac925eb012003a459ba6bddbd3bfa9c44b3394da2ac5a602e54beae9c","src/unix/solarish/illumos.rs":"7d8f47fd37880715b449723688aaee568785325a46f1c360a05bdca13252278e","src/unix/solarish/mod.rs":"ea9dd1c1d68927408342762ee8998a9628838974c91089f620c867910c29adba","src/unix/solarish/solaris.rs":"65b005453aefa9b9d4fc860fe77cfec80d8c97a51342b15daf55fc3e808bb384","src/unix/solarish/x86_64.rs":"9d761573bdccbdd1ac61da571f7e96b5374df70241d9b72d45a069611f495085","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":"44ce56183380d18aedea9b7bec2edc5819e8529302c913bfe5d01f760155b82a","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"1cd9223293255b994814487e28d9979fb8ebef4538a236c1aa47fdc166a149cc","src/windows/msvc/mod.rs":"c068271e00fca6b62bc4bf44bcf142cfc38caeded9b6c4e01d1ceef3ccf986f4","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219"}
+\ No newline at end of file
++{"files":{"CONTRIBUTING.md":"752eea5a703d11b485c6b5f195f51bd2c79aa5159b619ce09555c779e1fb586b","Cargo.toml":"d6f6253f05d207b6c676e5647b31ad0ca3f05da3ac05db47f81d4ebd901ba22f","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"8228847944f1332882fbb00275b6f30e4a8aad08a13569c25d52cac012cc2a47","build.rs":"a71b92db5077b33af4ee6f1de33574ac33c2b292840eddbe3f7cce37f1fb16b9","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"34c60f12ec5eeb90f13ec3b954427532111c2446e69617616a97aefc1086a9f1","src/fuchsia/aarch64.rs":"378776a9e40766154a54c94c2a7b4675b5c302a38e6e42da99e67bfbaee60e56","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"520300ff260d377930f2f456135ec9a3ac7740a949ce7bf5269c0dc60d56c0df","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":"e92c56b42f1bd1b9e66be2a9b73aca6ba29024b9bd17c16f327dfbe8831e3f86","src/macros.rs":"c1a299d5327ba033f079388f8ac8a44848f9aeff6a72e9be6dfa70f4769cc619","src/psp.rs":"dd31aabd46171d474ec5828372e28588935120e7355c90c105360d8fa9264c1c","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/solid/aarch64.rs":"8cdae0cc37c43dabd4253a534e700bec6b6a57293c0c8e36c9ce16675d16799a","src/solid/arm.rs":"852b58a0837fde089cb9b5af131bf653daeb8c726f7540032756db8b7d4f8149","src/solid/mod.rs":"98dc29c3e5773318ba258a4a2b7407f25aa52d40885a0024fbe43676fe54d14b","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":"f0c321265dd7671f16106b84951ac7dd77ed2e65c6623cbf2d29e76531984770","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":"96f101bdab46a9f0a5249a8143d4a9def055284a0c2bd62bce15532a5bed428c","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"6ea4129eb5d6da5c09f8cf3692b5e7716f058b48d1e8c61115691709eda7ce51","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"2a215bd6136b8617aacedf9be738ccee94da9d29b418e9a78101d6291c182352","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":"bf0a994e2079b8aad9da5efd3a3b9a7194a53ae60887a25c57964fb68499e847","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"295b3e3b67394f731d4e88d169e3d3d1d80026b99898745cd0d1d163f085ff61","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":"98f6af2021b434f9c3197094312b457774381220f31a22c3b15b1fe8a60cb365","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/mod.rs":"6b825079ffe3f9aec6e78ea6b50acedcb91a4e1312d721105b7f8b1555f254df","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","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":"c3a0111252e201c172b99e7d9cbee4cf088d3dd47995110e819f04276bccd198","src/unix/bsd/freebsdlike/mod.rs":"98d322b22050a80636841287d9ed12549a2004a9dbe151763e5b1270f5e73ea3","src/unix/bsd/mod.rs":"2fed08973739d7f6a7412b204724af64b1a915c712689c250cf9a08263ba05ff","src/unix/bsd/netbsdlike/mod.rs":"4e9da54e541773c7ad4cca9dade1df00f28f2fdac3f8df5957f4c74b7e082344","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"65dcb58d11e8d8028401a9d07ca3eb4cb4f053e04249cc877353449d84ccc4cb","src/unix/bsd/netbsdlike/netbsd/arm.rs":"58cdbb70b0d6f536551f0f3bb3725d2d75c4690db12c26c034e7d6ec4a924452","src/unix/bsd/netbsdlike/netbsd/mod.rs":"f6de6981382af87518e4a5b6d26c2ea551ed74640dd7166107a824af30ced243","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/mod.rs":"47aaab2bd8238e937112ff17e8262945c8e5865d5e696f218b11c1da59830808","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":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"80a6cfb58acbbc471dbd412dd76a41f372befc8f217fb1671ed4ce8d391dced0","src/unix/haiku/native.rs":"44855f52906f607de137fc4baa8c6b1b9a26baaa666f25d5f7a7ec5e017c8be6","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":"d971b98530a96f5892f98e1edc3133cf278d1b3939d77ab0a27a6323e0961715","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/mod.rs":"8fe667d2b14abc5ac8aad32e16c3da24350471d8156eaea9ab4989f73dd9f9fc","src/unix/linux_like/android/b64/mod.rs":"d7bbbadafdb2cb2ff8e9cde3d89a03b9facaabb6b2d45705225d3ece1c5cce37","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"06b22dc184e85a988ab969c75cadc52b9878faeab0eb9d21215878c95fe07c19","src/unix/linux_like/android/mod.rs":"07cebaa8d953446b8df5cb7c5de3932ae85b04d9e9993e3a3a126ff8f15111a4","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/mod.rs":"b71d37106750f57bc2dae4e9bcb473ff098ef48235827e41a1687a39825f0aa4","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"213e70ebed2703e14a9cf17666b21ecbf180b7bff7fa22fdbb36dbbd52df326d","src/unix/linux_like/linux/arch/generic/mod.rs":"1618634d37348032f5ce1dc9df1aaa1f1681bca4a275f23d41f42098c4d3b423","src/unix/linux_like/linux/arch/mips/mod.rs":"dac02cd01dbd3b222286887c64d398c031afc08d38850c2b3ce2fe7158d888e0","src/unix/linux_like/linux/arch/mod.rs":"466a29622e47c6c7f1500682b2eb17f5566dd81b322cd6348f0fdd355cec593a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"1789eb5b41f75c29239795124a4a7cdcf7c8d213b88cf581b2f5bda08d7cf15b","src/unix/linux_like/linux/arch/sparc/mod.rs":"e7139d3bfb291a283c767e6201eac8bbb58c91839a36fa56bfe500fcb3aa754a","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"3fed009dc9af3cc81be7087da9d2d7d1f39845e4497e290259c5cdbae25f039d","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"5e40c273b767c369a46c3315c7cfde97379944ed63c74735e98d4dae2c49d414","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"20b4c897fb3f63e31a04849b348ec8e6e6405ce9463048d411114f8c9dbabd8a","src/unix/linux_like/linux/gnu/b32/mod.rs":"794dbcbae7dae8fd6b0b814573243197ceb532b56ef0772ad86b4b401478fcd9","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"0cd7348badb9c4f8a0db31a2503b30c456a2bfcc7a0e5919762b1e12f912c5ad","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"ee5145a383386b716605a8d1ff3df212d418aae1aa1f37d2307d4f9cd1a08e99","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"a2c4ae8f31a74e4843b8ff4b6507419f403b52713169fcee9b1b24eb2324162a","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"525ee4917b54790cefc1298ec1015cea6332d818d9c7475434e94d06afdd59c0","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"21a21503ef2e095f4371044915d4bfb07a8578011cb5c713cd9f45947b0b5730","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"e78c3cd197f44832338b414d1a9bc0d194f44c74db77bd7bf830c1fff62b2690","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"d179cbb462c451ff8805029b2b922c4bf90e35f667e80d716d5064f563aebc52","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"7d456da436017cb388b65b2c4b626c83b489cbb19a591673b9c627a608d53cfc","src/unix/linux_like/linux/gnu/b64/mod.rs":"6336065423c26b59681fd2ce77f1117ea36af13e163fdadaefd108bd8191e8c8","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"dbb8905e363ed4a2dfb984554ad9b6389d27f6a2d599ec2d80e38a6c7551a019","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"5b982c41097f4f91adcb0968290afeccb27dce1695a261c964d34ef85df87cf4","src/unix/linux_like/linux/gnu/b64/s390x.rs":"fce37140468f8914411eed0b25a882e60e1b54bcffcd33d6263a91b57d04f6c1","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"518ef78da0d81fe74cec30be411145d763fdfd249de4d108602fd0995781f590","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"76cba0a3f9456a968d2ae6ea587162b2ff04278dc5250cb176395c936579771b","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"f775ac2b754f90b63053fe22afe1d19d306b5404995568d6805baa9249fb617f","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"4ba1b58468f55254717366f50fdfd3e4114fde6dc442a56681926c4d7e5b6b0d","src/unix/linux_like/linux/gnu/mod.rs":"af3590c392bd06394cb307ccb993e66f53de7e2a0211c689dbb1845220475445","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"88ce2c4105c07c1262495e0ff1bd53f3ceec99adba9c20c612439838b4dbfdd6","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"6255abe2ee04986832d12b7b2190589580f2a43e9bfb285b32b5747227f62727","src/unix/linux_like/linux/musl/b32/hexagon.rs":"10067cde5706e1173aa8e0a3a364cf44fe5b7a9f8b71cb086c653be71af00564","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"b9e9ff42363ebbb884ddf6445129ec4164471df45846874fc08f5f458e659254","src/unix/linux_like/linux/musl/b32/mod.rs":"8ede3985e6243882814ce91e8ce543e7edbafc0cee5932816072b6f14207a671","src/unix/linux_like/linux/musl/b32/powerpc.rs":"4592dc5f1f2fe888dfef85fa862d42d168e73a2c6f4fc052b58287d0f4d4ffcd","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"a19a8decfab185af3cebd34aae4b15082e7552be573904b8c1a3f0c0e493ef34","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"798a9229d70ce235394f2dd625f6c4c1e10519a94382dc5b091952b638ae2928","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"a73035c6d9b776f13b839008e15c04c2c53455571efd06664affcb047e457112","src/unix/linux_like/linux/musl/b64/mips64.rs":"2744895451f3a777fbe54f7f2695be53310b965fd62084c9b7e9121c7fe28346","src/unix/linux_like/linux/musl/b64/mod.rs":"d18abc0aeba2e26342bf3416a4dba0836db2bb0ee013b0a39629475cf8640289","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"e5a55525b42493923956d668f978fb45e22d51deea00ce5edbfddf76ff19c741","src/unix/linux_like/linux/musl/b64/s390x.rs":"03dfec6794d93cb31a7c52b2d53a0973755168f91f8fa437cc5dbd54882c8ee7","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"0dd168f5a6881f32e5239fb312b23cf137b800d0ff323286a92c8a2c382b5456","src/unix/linux_like/linux/musl/mod.rs":"55ccd71342276ccb4c441a4bc2772aebfd163af299669b658c6c8c6add331ec3","src/unix/linux_like/linux/no_align.rs":"5ed04c53bf9d27da9b4d65ba7625c6ac53330162683d1b3df98950caafa3507b","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":"1e3bf809508b5872949136859bf48ddf58b7d24ae9f0b663e79f0efd1aaeb6a6","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":"fa4102d9a596d90de604ce2962b0e64f184dfbf10552a4c3ecf28f12d4704379","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":"e3085ba56cfbc528d7c3c55065880603238c333b6047ef51c58177508a487fcd","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"a2877679fef0f14f54a89ccbc41fb02f0c25bf6e536f9eb2cb2fa437e1d3f739","src/unix/linux_like/linux/uclibc/mod.rs":"82d504d3aa12cb0f7933980f81c4708fa6e070d4c57efdf407f2de05b71bc06d","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":"66e8f5b7509a6e638b8b904906f89badbab0da8fb5b602d07ebd88649c4b961a","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"ffce98bdd208fd9d335c65feafbf0d9742bea67c7eec1ee48657f292132ec3f0","src/unix/mod.rs":"b72f18e053cca0ade0f0606f1848a773fcf1885c72cbb31889275e8195f060bd","src/unix/newlib/aarch64/mod.rs":"bb269c1468a9676442554600e87417079a787fe6220dfc23b3109639259e8710","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"c71be856bfd7f576b2db28af9f680211cbe6c1cac7d537bbc8020b39591af07c","src/unix/newlib/espidf/mod.rs":"c198cb4beccdab483be61c102da74dc51ac80f766797e33021f3110394ed5a3d","src/unix/newlib/mod.rs":"d7271c13748be08305d36f9af6f41f6950a7a1d6d4382149194a35d5fe2090de","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"2d0f7af28b47f7a2a6c210ebd1c1f33ed8eac62e56b5af2b856de2ad3fdc5187","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/redox/mod.rs":"cc4794afa4fbed9d6612894ea476228f9d8533950162d6416fc4d16073e1dac4","src/unix/solarish/compat.rs":"b07a5bfac925eb012003a459ba6bddbd3bfa9c44b3394da2ac5a602e54beae9c","src/unix/solarish/illumos.rs":"7d8f47fd37880715b449723688aaee568785325a46f1c360a05bdca13252278e","src/unix/solarish/mod.rs":"ea9dd1c1d68927408342762ee8998a9628838974c91089f620c867910c29adba","src/unix/solarish/solaris.rs":"65b005453aefa9b9d4fc860fe77cfec80d8c97a51342b15daf55fc3e808bb384","src/unix/solarish/x86_64.rs":"9d761573bdccbdd1ac61da571f7e96b5374df70241d9b72d45a069611f495085","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":"44ce56183380d18aedea9b7bec2edc5819e8529302c913bfe5d01f760155b82a","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"1cd9223293255b994814487e28d9979fb8ebef4538a236c1aa47fdc166a149cc","src/windows/msvc/mod.rs":"c068271e00fca6b62bc4bf44bcf142cfc38caeded9b6c4e01d1ceef3ccf986f4","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219"}
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/rust/libstd-rs/0005-Add-base-definitions-for-riscv64-musl-libc.patch b/poky/meta/recipes-devtools/rust/libstd-rs/0005-Add-base-definitions-for-riscv64-musl-libc.patch
deleted file mode 100644
index 180e2b5..0000000
--- a/poky/meta/recipes-devtools/rust/libstd-rs/0005-Add-base-definitions-for-riscv64-musl-libc.patch
+++ /dev/null
@@ -1,862 +0,0 @@
-From 4e188d047dee33a19902113a3c90cdf1d8310a9e Mon Sep 17 00:00:00 2001
-From: Ralf Anton Beier <ralf_beier@me.com>
-Date: Sun, 8 Aug 2021 11:05:06 +0200
-Subject: [PATCH 5/8] Add base definitions for riscv64 + musl
-
-https://github.com/rust-lang/libc/pull/1994/commits/030a07761f61f3293d53752e60edbd330a9d718d
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
----
- .../src/unix/linux_like/linux/musl/b64/mod.rs |   3 +
- .../linux_like/linux/musl/b64/riscv64/mod.rs  | 867 ++++++++++++++++++
- 2 files changed, 870 insertions(+)
- create mode 100644 vendor/libc-0.2.98/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
-
---- a/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
-+++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
-@@ -163,6 +163,9 @@ cfg_if! {
-     } else if #[cfg(any(target_arch = "x86_64"))] {
-         mod x86_64;
-         pub use self::x86_64::*;
-+    } else if #[cfg(any(target_arch = "riscv64"))] {
-+        mod riscv64;
-+        pub use self::riscv64::*;
-     } else {
-         // Unknown target_arch
-     }
---- /dev/null
-+++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
-@@ -0,0 +1,832 @@
-+//! RISC-V-specific definitions for 64-bit linux-like values
-+
-+pub type c_char = u8;
-+pub type c_long = i64;
-+pub type c_ulong = u64;
-+pub type wchar_t = ::c_int;
-+
-+pub type nlink_t = ::c_uint;
-+pub type blksize_t = ::c_int;
-+pub type fsblkcnt64_t = ::c_ulong;
-+pub type fsfilcnt64_t = ::c_ulong;
-+pub type suseconds_t = i64;
-+pub type __u64 = ::c_ulonglong;
-+
-+s! {
-+    pub struct pthread_attr_t {
-+        __size: [::c_ulong; 7],
-+    }
-+
-+    pub struct stat {
-+        pub st_dev: ::dev_t,
-+        pub st_ino: ::ino_t,
-+        pub st_mode: ::mode_t,
-+        pub st_nlink: ::nlink_t,
-+        pub st_uid: ::uid_t,
-+        pub st_gid: ::gid_t,
-+        pub st_rdev: ::dev_t,
-+        pub __pad1: ::dev_t,
-+        pub st_size: ::off_t,
-+        pub st_blksize: ::blksize_t,
-+        pub __pad2: ::c_int,
-+        pub st_blocks: ::blkcnt_t,
-+        pub st_atime: ::time_t,
-+        pub st_atime_nsec: ::c_long,
-+        pub st_mtime: ::time_t,
-+        pub st_mtime_nsec: ::c_long,
-+        pub st_ctime: ::time_t,
-+        pub st_ctime_nsec: ::c_long,
-+        __unused: [::c_int; 2usize],
-+    }
-+
-+    pub struct stat64 {
-+        pub st_dev: ::dev_t,
-+        pub st_ino: ::ino64_t,
-+        pub st_mode: ::mode_t,
-+        pub st_nlink: ::nlink_t,
-+        pub st_uid: ::uid_t,
-+        pub st_gid: ::gid_t,
-+        pub st_rdev: ::dev_t,
-+        pub __pad1: ::dev_t,
-+        pub st_size: ::off64_t,
-+        pub st_blksize: ::blksize_t,
-+        pub __pad2: ::c_int,
-+        pub st_blocks: ::blkcnt_t,
-+        pub st_atime: ::time_t,
-+        pub st_atime_nsec: ::c_long,
-+        pub st_mtime: ::time_t,
-+        pub st_mtime_nsec: ::c_long,
-+        pub st_ctime: ::time_t,
-+        pub st_ctime_nsec: ::c_long,
-+        __unused: [::c_int; 2],
-+    }
-+
-+    pub struct statfs {
-+        pub f_type: ::c_long,
-+        pub f_bsize: ::c_long,
-+        pub f_blocks: ::fsblkcnt_t,
-+        pub f_bfree: ::fsblkcnt_t,
-+        pub f_bavail: ::fsblkcnt_t,
-+        pub f_files: ::fsfilcnt_t,
-+        pub f_ffree: ::fsfilcnt_t,
-+        pub f_fsid: ::fsid_t,
-+        pub f_namelen: ::c_long,
-+        pub f_frsize: ::c_long,
-+        pub f_flags: ::c_long,
-+        pub f_spare: [::c_long; 4],
-+    }
-+
-+    pub struct statfs64 {
-+        pub f_type: ::c_long,
-+        pub f_bsize: ::c_long,
-+        pub f_blocks: ::fsblkcnt64_t,
-+        pub f_bfree: ::fsblkcnt64_t,
-+        pub f_bavail: ::fsblkcnt64_t,
-+        pub f_files: ::fsfilcnt64_t,
-+        pub f_ffree: ::fsfilcnt64_t,
-+        pub f_fsid: ::fsid_t,
-+        pub f_namelen: ::c_long,
-+        pub f_frsize: ::c_long,
-+        pub f_flags: ::c_long,
-+        pub f_spare: [::c_long; 4],
-+    }
-+
-+    pub struct statvfs {
-+        pub f_bsize: ::c_ulong,
-+        pub f_frsize: ::c_ulong,
-+        pub f_blocks: ::fsblkcnt_t,
-+        pub f_bfree: ::fsblkcnt_t,
-+        pub f_bavail: ::fsblkcnt_t,
-+        pub f_files: ::fsfilcnt_t,
-+        pub f_ffree: ::fsfilcnt_t,
-+        pub f_favail: ::fsfilcnt_t,
-+        pub f_fsid: ::c_ulong,
-+        pub f_flag: ::c_ulong,
-+        pub f_namemax: ::c_ulong,
-+        pub __f_spare: [::c_int; 6],
-+    }
-+
-+    pub struct statvfs64 {
-+        pub f_bsize: ::c_ulong,
-+        pub f_frsize: ::c_ulong,
-+        pub f_blocks: ::fsblkcnt64_t,
-+        pub f_bfree: ::fsblkcnt64_t,
-+        pub f_bavail: ::fsblkcnt64_t,
-+        pub f_files: ::fsfilcnt64_t,
-+        pub f_ffree: ::fsfilcnt64_t,
-+        pub f_favail: ::fsfilcnt64_t,
-+        pub f_fsid: ::c_ulong,
-+        pub f_flag: ::c_ulong,
-+        pub f_namemax: ::c_ulong,
-+        pub __f_spare: [::c_int; 6],
-+    }
-+
-+    pub struct siginfo_t {
-+        pub si_signo: ::c_int,
-+        pub si_errno: ::c_int,
-+        pub si_code: ::c_int,
-+        #[doc(hidden)]
-+        #[deprecated(
-+            since="0.2.54",
-+            note="Please leave a comment on \
-+                  https://github.com/rust-lang/libc/pull/1316 if you're using \
-+                  this field"
-+        )]
-+        pub _pad: [::c_int; 29],
-+        _align: [u64; 0],
-+    }
-+
-+    pub struct stack_t {
-+        pub ss_sp: *mut ::c_void,
-+        pub ss_flags: ::c_int,
-+        pub ss_size: ::size_t,
-+    }
-+
-+    pub struct sigaction {
-+        pub sa_sigaction: ::sighandler_t,
-+        pub sa_mask: ::sigset_t,
-+        pub sa_flags: ::c_int,
-+        pub sa_restorer: ::Option<unsafe extern "C" fn()>,
-+    }
-+
-+    pub struct ipc_perm {
-+        pub __key: ::key_t,
-+        pub uid: ::uid_t,
-+        pub gid: ::gid_t,
-+        pub cuid: ::uid_t,
-+        pub cgid: ::gid_t,
-+        pub mode: ::c_ushort,
-+        __pad1: ::c_ushort,
-+        pub __seq: ::c_ushort,
-+        __pad2: ::c_ushort,
-+        __unused1: ::c_ulong,
-+        __unused2: ::c_ulong,
-+    }
-+
-+    pub struct shmid_ds {
-+        pub shm_perm: ::ipc_perm,
-+        pub shm_segsz: ::size_t,
-+        pub shm_atime: ::time_t,
-+        pub shm_dtime: ::time_t,
-+        pub shm_ctime: ::time_t,
-+        pub shm_cpid: ::pid_t,
-+        pub shm_lpid: ::pid_t,
-+        pub shm_nattch: ::shmatt_t,
-+        __unused5: ::c_ulong,
-+        __unused6: ::c_ulong,
-+    }
-+
-+    pub struct flock {
-+        pub l_type: ::c_short,
-+        pub l_whence: ::c_short,
-+        pub l_start: ::off_t,
-+        pub l_len: ::off_t,
-+        pub l_pid: ::pid_t,
-+    }
-+
-+    pub struct flock64 {
-+        pub l_type: ::c_short,
-+        pub l_whence: ::c_short,
-+        pub l_start: ::off64_t,
-+        pub l_len: ::off64_t,
-+        pub l_pid: ::pid_t,
-+    }
-+
-+    pub struct ip_mreqn {
-+        pub imr_multiaddr: ::in_addr,
-+        pub imr_address: ::in_addr,
-+        pub imr_ifindex: ::c_int,
-+    }
-+}
-+
-+pub const POSIX_FADV_DONTNEED: ::c_int = 4;
-+pub const POSIX_FADV_NOREUSE: ::c_int = 5;
-+pub const VEOF: usize = 4;
-+pub const RTLD_DEEPBIND: ::c_int = 0x8;
-+pub const RTLD_GLOBAL: ::c_int = 0x100;
-+pub const RTLD_NOLOAD: ::c_int = 0x4;
-+pub const TIOCGSOFTCAR: ::c_ulong = 21529;
-+pub const TIOCSSOFTCAR: ::c_ulong = 21530;
-+pub const TIOCGRS485: ::c_int = 21550;
-+pub const TIOCSRS485: ::c_int = 21551;
-+pub const RLIMIT_RSS: ::__rlimit_resource_t = 5;
-+pub const RLIMIT_AS: ::__rlimit_resource_t = 9;
-+pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8;
-+pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7;
-+pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6;
-+pub const O_APPEND: ::c_int = 1024;
-+pub const O_CREAT: ::c_int = 64;
-+pub const O_EXCL: ::c_int = 128;
-+pub const O_NOCTTY: ::c_int = 256;
-+pub const O_NONBLOCK: ::c_int = 2048;
-+pub const O_SYNC: ::c_int = 1052672;
-+pub const O_RSYNC: ::c_int = 1052672;
-+pub const O_DSYNC: ::c_int = 4096;
-+pub const O_FSYNC: ::c_int = 1052672;
-+pub const O_NOATIME: ::c_int = 262144;
-+pub const O_PATH: ::c_int = 2097152;
-+pub const O_TMPFILE: ::c_int = 4259840;
-+pub const MAP_GROWSDOWN: ::c_int = 256;
-+pub const EDEADLK: ::c_int = 35;
-+pub const ENAMETOOLONG: ::c_int = 36;
-+pub const ENOLCK: ::c_int = 37;
-+pub const ENOSYS: ::c_int = 38;
-+pub const ENOTEMPTY: ::c_int = 39;
-+pub const ELOOP: ::c_int = 40;
-+pub const ENOMSG: ::c_int = 42;
-+pub const EIDRM: ::c_int = 43;
-+pub const ECHRNG: ::c_int = 44;
-+pub const EL2NSYNC: ::c_int = 45;
-+pub const EL3HLT: ::c_int = 46;
-+pub const EL3RST: ::c_int = 47;
-+pub const ELNRNG: ::c_int = 48;
-+pub const EUNATCH: ::c_int = 49;
-+pub const ENOCSI: ::c_int = 50;
-+pub const EL2HLT: ::c_int = 51;
-+pub const EBADE: ::c_int = 52;
-+pub const EBADR: ::c_int = 53;
-+pub const EXFULL: ::c_int = 54;
-+pub const ENOANO: ::c_int = 55;
-+pub const EBADRQC: ::c_int = 56;
-+pub const EBADSLT: ::c_int = 57;
-+pub const EMULTIHOP: ::c_int = 72;
-+pub const EOVERFLOW: ::c_int = 75;
-+pub const ENOTUNIQ: ::c_int = 76;
-+pub const EBADFD: ::c_int = 77;
-+pub const EBADMSG: ::c_int = 74;
-+pub const EREMCHG: ::c_int = 78;
-+pub const ELIBACC: ::c_int = 79;
-+pub const ELIBBAD: ::c_int = 80;
-+pub const ELIBSCN: ::c_int = 81;
-+pub const ELIBMAX: ::c_int = 82;
-+pub const ELIBEXEC: ::c_int = 83;
-+pub const EILSEQ: ::c_int = 84;
-+pub const ERESTART: ::c_int = 85;
-+pub const ESTRPIPE: ::c_int = 86;
-+pub const EUSERS: ::c_int = 87;
-+pub const ENOTSOCK: ::c_int = 88;
-+pub const EDESTADDRREQ: ::c_int = 89;
-+pub const EMSGSIZE: ::c_int = 90;
-+pub const EPROTOTYPE: ::c_int = 91;
-+pub const ENOPROTOOPT: ::c_int = 92;
-+pub const EPROTONOSUPPORT: ::c_int = 93;
-+pub const ESOCKTNOSUPPORT: ::c_int = 94;
-+pub const EOPNOTSUPP: ::c_int = 95;
-+pub const EPFNOSUPPORT: ::c_int = 96;
-+pub const EAFNOSUPPORT: ::c_int = 97;
-+pub const EADDRINUSE: ::c_int = 98;
-+pub const EADDRNOTAVAIL: ::c_int = 99;
-+pub const ENETDOWN: ::c_int = 100;
-+pub const ENETUNREACH: ::c_int = 101;
-+pub const ENETRESET: ::c_int = 102;
-+pub const ECONNABORTED: ::c_int = 103;
-+pub const ECONNRESET: ::c_int = 104;
-+pub const ENOBUFS: ::c_int = 105;
-+pub const EISCONN: ::c_int = 106;
-+pub const ENOTCONN: ::c_int = 107;
-+pub const ESHUTDOWN: ::c_int = 108;
-+pub const ETOOMANYREFS: ::c_int = 109;
-+pub const ETIMEDOUT: ::c_int = 110;
-+pub const ECONNREFUSED: ::c_int = 111;
-+pub const EHOSTDOWN: ::c_int = 112;
-+pub const EHOSTUNREACH: ::c_int = 113;
-+pub const EALREADY: ::c_int = 114;
-+pub const EINPROGRESS: ::c_int = 115;
-+pub const ESTALE: ::c_int = 116;
-+pub const EDQUOT: ::c_int = 122;
-+pub const ENOMEDIUM: ::c_int = 123;
-+pub const EMEDIUMTYPE: ::c_int = 124;
-+pub const ECANCELED: ::c_int = 125;
-+pub const ENOKEY: ::c_int = 126;
-+pub const EKEYEXPIRED: ::c_int = 127;
-+pub const EKEYREVOKED: ::c_int = 128;
-+pub const EKEYREJECTED: ::c_int = 129;
-+pub const EOWNERDEAD: ::c_int = 130;
-+pub const ENOTRECOVERABLE: ::c_int = 131;
-+pub const EHWPOISON: ::c_int = 133;
-+pub const ERFKILL: ::c_int = 132;
-+
-+pub const SOCK_STREAM: ::c_int = 1;
-+pub const SOCK_DGRAM: ::c_int = 2;
-+pub const SA_ONSTACK: ::c_int = 134217728;
-+pub const SA_SIGINFO: ::c_int = 4;
-+pub const SA_NOCLDWAIT: ::c_int = 2;
-+pub const SIGTTIN: ::c_int = 21;
-+pub const SIGTTOU: ::c_int = 22;
-+pub const SIGXCPU: ::c_int = 24;
-+pub const SIGXFSZ: ::c_int = 25;
-+pub const SIGVTALRM: ::c_int = 26;
-+pub const SIGPROF: ::c_int = 27;
-+pub const SIGWINCH: ::c_int = 28;
-+pub const SIGCHLD: ::c_int = 17;
-+pub const SIGBUS: ::c_int = 7;
-+pub const SIGUSR1: ::c_int = 10;
-+pub const SIGUSR2: ::c_int = 12;
-+pub const SIGCONT: ::c_int = 18;
-+pub const SIGSTOP: ::c_int = 19;
-+pub const SIGTSTP: ::c_int = 20;
-+pub const SIGURG: ::c_int = 23;
-+pub const SIGIO: ::c_int = 29;
-+pub const SIGSYS: ::c_int = 31;
-+pub const SIGSTKFLT: ::c_int = 16;
-+pub const SIGPOLL: ::c_int = 29;
-+pub const SIGPWR: ::c_int = 30;
-+pub const SIG_SETMASK: ::c_int = 2;
-+pub const SIG_BLOCK: ::c_int = 0;
-+pub const SIG_UNBLOCK: ::c_int = 1;
-+pub const POLLWRNORM: ::c_short = 256;
-+pub const POLLWRBAND: ::c_short = 512;
-+pub const O_ASYNC: ::c_int = 8192;
-+pub const O_NDELAY: ::c_int = 2048;
-+pub const PTRACE_DETACH: ::c_uint = 17;
-+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_SETLK: ::c_int = 6;
-+pub const F_SETLKW: ::c_int = 7;
-+pub const F_RDLCK: ::c_int = 0;
-+pub const F_WRLCK: ::c_int = 1;
-+pub const F_UNLCK: ::c_int = 2;
-+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 SFD_NONBLOCK: ::c_int = 2048;
-+pub const TCSANOW: ::c_int = 0;
-+pub const TCSADRAIN: ::c_int = 1;
-+pub const TCSAFLUSH: ::c_int = 2;
-+pub const TIOCLINUX: ::c_ulong = 21532;
-+pub const TIOCGSERIAL: ::c_ulong = 21534;
-+pub const TIOCEXCL: ::c_ulong = 21516;
-+pub const TIOCNXCL: ::c_ulong = 21517;
-+pub const TIOCSCTTY: ::c_ulong = 21518;
-+pub const TIOCSTI: ::c_ulong = 21522;
-+pub const TIOCMGET: ::c_ulong = 21525;
-+pub const TIOCMBIS: ::c_ulong = 21526;
-+pub const TIOCMBIC: ::c_ulong = 21527;
-+pub const TIOCMSET: ::c_ulong = 21528;
-+pub const TIOCCONS: ::c_ulong = 21533;
-+pub const TIOCM_ST: ::c_int = 8;
-+pub const TIOCM_SR: ::c_int = 16;
-+pub const TIOCM_CTS: ::c_int = 32;
-+pub const TIOCM_CAR: ::c_int = 64;
-+pub const TIOCM_RNG: ::c_int = 128;
-+pub const TIOCM_DSR: ::c_int = 256;
-+pub const SFD_CLOEXEC: ::c_int = 524288;
-+pub const NCCS: usize = 32;
-+pub const O_TRUNC: ::c_int = 512;
-+pub const O_CLOEXEC: ::c_int = 524288;
-+pub const EBFONT: ::c_int = 59;
-+pub const ENOSTR: ::c_int = 60;
-+pub const ENODATA: ::c_int = 61;
-+pub const ETIME: ::c_int = 62;
-+pub const ENOSR: ::c_int = 63;
-+pub const ENONET: ::c_int = 64;
-+pub const ENOPKG: ::c_int = 65;
-+pub const EREMOTE: ::c_int = 66;
-+pub const ENOLINK: ::c_int = 67;
-+pub const EADV: ::c_int = 68;
-+pub const ESRMNT: ::c_int = 69;
-+pub const ECOMM: ::c_int = 70;
-+pub const EPROTO: ::c_int = 71;
-+pub const EDOTDOT: ::c_int = 73;
-+pub const SA_NODEFER: ::c_int = 1073741824;
-+pub const SA_RESETHAND: ::c_int = -2147483648;
-+pub const SA_RESTART: ::c_int = 268435456;
-+pub const SA_NOCLDSTOP: ::c_int = 1;
-+pub const EPOLL_CLOEXEC: ::c_int = 524288;
-+pub const EFD_CLOEXEC: ::c_int = 524288;
-+pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
-+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_NOFOLLOW: ::c_int = 131072;
-+pub const MAP_HUGETLB: ::c_int = 262144;
-+pub const MAP_LOCKED: ::c_int = 8192;
-+pub const MAP_NORESERVE: ::c_int = 16384;
-+pub const MAP_ANON: ::c_int = 32;
-+pub const MAP_ANONYMOUS: ::c_int = 32;
-+pub const MAP_DENYWRITE: ::c_int = 2048;
-+pub const MAP_EXECUTABLE: ::c_int = 4096;
-+pub const MAP_POPULATE: ::c_int = 32768;
-+pub const MAP_NONBLOCK: ::c_int = 65536;
-+pub const MAP_STACK: ::c_int = 131072;
-+pub const MAP_SYNC: ::c_int = 0x080000;
-+pub const EDEADLOCK: ::c_int = 35;
-+pub const EUCLEAN: ::c_int = 117;
-+pub const ENOTNAM: ::c_int = 118;
-+pub const ENAVAIL: ::c_int = 119;
-+pub const EISNAM: ::c_int = 120;
-+pub const EREMOTEIO: ::c_int = 121;
-+pub const FIOCLEX: ::c_ulong = 21585;
-+pub const FIONCLEX: ::c_ulong = 21584;
-+pub const FIONBIO: ::c_ulong = 21537;
-+pub const MCL_CURRENT: ::c_int = 1;
-+pub const MCL_FUTURE: ::c_int = 2;
-+pub const SIGSTKSZ: ::size_t = 8192;
-+pub const MINSIGSTKSZ: ::size_t = 2048;
-+pub const CBAUD: ::tcflag_t = 4111;
-+pub const TAB1: ::tcflag_t = 2048;
-+pub const TAB2: ::tcflag_t = 4096;
-+pub const TAB3: ::tcflag_t = 6144;
-+pub const CR1: ::tcflag_t = 512;
-+pub const CR2: ::tcflag_t = 1024;
-+pub const CR3: ::tcflag_t = 1536;
-+pub const FF1: ::tcflag_t = 32768;
-+pub const BS1: ::tcflag_t = 8192;
-+pub const VT1: ::tcflag_t = 16384;
-+pub const VWERASE: usize = 14;
-+pub const VREPRINT: usize = 12;
-+pub const VSUSP: usize = 10;
-+pub const VSTART: usize = 8;
-+pub const VSTOP: usize = 9;
-+pub const VDISCARD: usize = 13;
-+pub const VTIME: usize = 5;
-+pub const IXON: ::tcflag_t = 1024;
-+pub const IXOFF: ::tcflag_t = 4096;
-+pub const ONLCR: ::tcflag_t = 4;
-+pub const CSIZE: ::tcflag_t = 48;
-+pub const CS6: ::tcflag_t = 16;
-+pub const CS7: ::tcflag_t = 32;
-+pub const CS8: ::tcflag_t = 48;
-+pub const CSTOPB: ::tcflag_t = 64;
-+pub const CREAD: ::tcflag_t = 128;
-+pub const PARENB: ::tcflag_t = 256;
-+pub const PARODD: ::tcflag_t = 512;
-+pub const HUPCL: ::tcflag_t = 1024;
-+pub const CLOCAL: ::tcflag_t = 2048;
-+pub const ECHOKE: ::tcflag_t = 2048;
-+pub const ECHOE: ::tcflag_t = 16;
-+pub const ECHOK: ::tcflag_t = 32;
-+pub const ECHONL: ::tcflag_t = 64;
-+pub const ECHOPRT: ::tcflag_t = 1024;
-+pub const ECHOCTL: ::tcflag_t = 512;
-+pub const ISIG: ::tcflag_t = 1;
-+pub const ICANON: ::tcflag_t = 2;
-+pub const PENDIN: ::tcflag_t = 16384;
-+pub const NOFLSH: ::tcflag_t = 128;
-+pub const CIBAUD: ::tcflag_t = 269418496;
-+pub const CBAUDEX: ::tcflag_t = 4096;
-+pub const VSWTC: usize = 7;
-+pub const OLCUC: ::tcflag_t = 2;
-+pub const NLDLY: ::tcflag_t = 256;
-+pub const CRDLY: ::tcflag_t = 1536;
-+pub const TABDLY: ::tcflag_t = 6144;
-+pub const BSDLY: ::tcflag_t = 8192;
-+pub const FFDLY: ::tcflag_t = 32768;
-+pub const VTDLY: ::tcflag_t = 16384;
-+pub const XTABS: ::tcflag_t = 6144;
-+pub const B0: ::speed_t = 0;
-+pub const B50: ::speed_t = 1;
-+pub const B75: ::speed_t = 2;
-+pub const B110: ::speed_t = 3;
-+pub const B134: ::speed_t = 4;
-+pub const B150: ::speed_t = 5;
-+pub const B200: ::speed_t = 6;
-+pub const B300: ::speed_t = 7;
-+pub const B600: ::speed_t = 8;
-+pub const B1200: ::speed_t = 9;
-+pub const B1800: ::speed_t = 10;
-+pub const B2400: ::speed_t = 11;
-+pub const B4800: ::speed_t = 12;
-+pub const B9600: ::speed_t = 13;
-+pub const B19200: ::speed_t = 14;
-+pub const B38400: ::speed_t = 15;
-+pub const EXTA: ::speed_t = 14;
-+pub const EXTB: ::speed_t = 15;
-+pub const B57600: ::speed_t = 4097;
-+pub const B115200: ::speed_t = 4098;
-+pub const B230400: ::speed_t = 4099;
-+pub const B460800: ::speed_t = 4100;
-+pub const B500000: ::speed_t = 4101;
-+pub const B576000: ::speed_t = 4102;
-+pub const B921600: ::speed_t = 4103;
-+pub const B1000000: ::speed_t = 4104;
-+pub const B1152000: ::speed_t = 4105;
-+pub const B1500000: ::speed_t = 4106;
-+pub const B2000000: ::speed_t = 4107;
-+pub const B2500000: ::speed_t = 4108;
-+pub const B3000000: ::speed_t = 4109;
-+pub const B3500000: ::speed_t = 4110;
-+pub const B4000000: ::speed_t = 4111;
-+pub const VEOL: usize = 11;
-+pub const VEOL2: usize = 16;
-+pub const VMIN: usize = 6;
-+pub const IEXTEN: ::tcflag_t = 32768;
-+pub const TOSTOP: ::tcflag_t = 256;
-+pub const FLUSHO: ::tcflag_t = 4096;
-+pub const EXTPROC: ::tcflag_t = 65536;
-+pub const TCGETS: ::c_ulong = 21505;
-+pub const TCSETS: ::c_ulong = 21506;
-+pub const TCSETSW: ::c_ulong = 21507;
-+pub const TCSETSF: ::c_ulong = 21508;
-+pub const TCGETA: ::c_ulong = 21509;
-+pub const TCSETA: ::c_ulong = 21510;
-+pub const TCSETAW: ::c_ulong = 21511;
-+pub const TCSETAF: ::c_ulong = 21512;
-+pub const TCSBRK: ::c_ulong = 21513;
-+pub const TCXONC: ::c_ulong = 21514;
-+pub const TCFLSH: ::c_ulong = 21515;
-+pub const TIOCINQ: ::c_ulong = 21531;
-+pub const TIOCGPGRP: ::c_ulong = 21519;
-+pub const TIOCSPGRP: ::c_ulong = 21520;
-+pub const TIOCOUTQ: ::c_ulong = 21521;
-+pub const TIOCGWINSZ: ::c_ulong = 21523;
-+pub const TIOCSWINSZ: ::c_ulong = 21524;
-+pub const FIONREAD: ::c_ulong = 21531;
-+pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
-+pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
-+pub const SYS_read: ::c_long = 63;
-+pub const SYS_write: ::c_long = 64;
-+pub const SYS_close: ::c_long = 57;
-+pub const SYS_fstat: ::c_long = 80;
-+pub const SYS_lseek: ::c_long = 62;
-+pub const SYS_mmap: ::c_long = 222;
-+pub const SYS_mprotect: ::c_long = 226;
-+pub const SYS_munmap: ::c_long = 215;
-+pub const SYS_brk: ::c_long = 214;
-+pub const SYS_rt_sigaction: ::c_long = 134;
-+pub const SYS_rt_sigprocmask: ::c_long = 135;
-+pub const SYS_rt_sigreturn: ::c_long = 139;
-+pub const SYS_ioctl: ::c_long = 29;
-+pub const SYS_pread64: ::c_long = 67;
-+pub const SYS_pwrite64: ::c_long = 68;
-+pub const SYS_readv: ::c_long = 65;
-+pub const SYS_writev: ::c_long = 66;
-+pub const SYS_sched_yield: ::c_long = 124;
-+pub const SYS_mremap: ::c_long = 216;
-+pub const SYS_msync: ::c_long = 227;
-+pub const SYS_mincore: ::c_long = 232;
-+pub const SYS_madvise: ::c_long = 233;
-+pub const SYS_shmget: ::c_long = 194;
-+pub const SYS_shmat: ::c_long = 196;
-+pub const SYS_shmctl: ::c_long = 195;
-+pub const SYS_dup: ::c_long = 23;
-+pub const SYS_nanosleep: ::c_long = 101;
-+pub const SYS_getitimer: ::c_long = 102;
-+pub const SYS_setitimer: ::c_long = 103;
-+pub const SYS_getpid: ::c_long = 172;
-+pub const SYS_sendfile: ::c_long = 71;
-+pub const SYS_socket: ::c_long = 198;
-+pub const SYS_connect: ::c_long = 203;
-+pub const SYS_accept: ::c_long = 202;
-+pub const SYS_sendto: ::c_long = 206;
-+pub const SYS_recvfrom: ::c_long = 207;
-+pub const SYS_sendmsg: ::c_long = 211;
-+pub const SYS_recvmsg: ::c_long = 212;
-+pub const SYS_shutdown: ::c_long = 210;
-+pub const SYS_bind: ::c_long = 200;
-+pub const SYS_listen: ::c_long = 201;
-+pub const SYS_getsockname: ::c_long = 204;
-+pub const SYS_getpeername: ::c_long = 205;
-+pub const SYS_socketpair: ::c_long = 199;
-+pub const SYS_setsockopt: ::c_long = 208;
-+pub const SYS_getsockopt: ::c_long = 209;
-+pub const SYS_clone: ::c_long = 220;
-+pub const SYS_execve: ::c_long = 221;
-+pub const SYS_exit: ::c_long = 93;
-+pub const SYS_wait4: ::c_long = 260;
-+pub const SYS_kill: ::c_long = 129;
-+pub const SYS_uname: ::c_long = 160;
-+pub const SYS_semget: ::c_long = 190;
-+pub const SYS_semop: ::c_long = 193;
-+pub const SYS_semctl: ::c_long = 191;
-+pub const SYS_shmdt: ::c_long = 197;
-+pub const SYS_msgget: ::c_long = 186;
-+pub const SYS_msgsnd: ::c_long = 189;
-+pub const SYS_msgrcv: ::c_long = 188;
-+pub const SYS_msgctl: ::c_long = 187;
-+pub const SYS_fcntl: ::c_long = 25;
-+pub const SYS_flock: ::c_long = 32;
-+pub const SYS_fsync: ::c_long = 82;
-+pub const SYS_fdatasync: ::c_long = 83;
-+pub const SYS_truncate: ::c_long = 45;
-+pub const SYS_ftruncate: ::c_long = 46;
-+pub const SYS_getcwd: ::c_long = 17;
-+pub const SYS_chdir: ::c_long = 49;
-+pub const SYS_fchdir: ::c_long = 50;
-+pub const SYS_fchmod: ::c_long = 52;
-+pub const SYS_fchown: ::c_long = 55;
-+pub const SYS_umask: ::c_long = 166;
-+pub const SYS_gettimeofday: ::c_long = 169;
-+pub const SYS_getrlimit: ::c_long = 163;
-+pub const SYS_getrusage: ::c_long = 165;
-+pub const SYS_sysinfo: ::c_long = 179;
-+pub const SYS_times: ::c_long = 153;
-+pub const SYS_ptrace: ::c_long = 117;
-+pub const SYS_getuid: ::c_long = 174;
-+pub const SYS_syslog: ::c_long = 116;
-+pub const SYS_getgid: ::c_long = 176;
-+pub const SYS_setuid: ::c_long = 146;
-+pub const SYS_setgid: ::c_long = 144;
-+pub const SYS_geteuid: ::c_long = 175;
-+pub const SYS_getegid: ::c_long = 177;
-+pub const SYS_setpgid: ::c_long = 154;
-+pub const SYS_getppid: ::c_long = 173;
-+pub const SYS_setsid: ::c_long = 157;
-+pub const SYS_setreuid: ::c_long = 145;
-+pub const SYS_setregid: ::c_long = 143;
-+pub const SYS_getgroups: ::c_long = 158;
-+pub const SYS_setgroups: ::c_long = 159;
-+pub const SYS_setresuid: ::c_long = 147;
-+pub const SYS_getresuid: ::c_long = 148;
-+pub const SYS_setresgid: ::c_long = 149;
-+pub const SYS_getresgid: ::c_long = 150;
-+pub const SYS_getpgid: ::c_long = 155;
-+pub const SYS_setfsuid: ::c_long = 151;
-+pub const SYS_setfsgid: ::c_long = 152;
-+pub const SYS_getsid: ::c_long = 156;
-+pub const SYS_capget: ::c_long = 90;
-+pub const SYS_capset: ::c_long = 91;
-+pub const SYS_rt_sigpending: ::c_long = 136;
-+pub const SYS_rt_sigtimedwait: ::c_long = 137;
-+pub const SYS_rt_sigqueueinfo: ::c_long = 138;
-+pub const SYS_rt_sigsuspend: ::c_long = 133;
-+pub const SYS_sigaltstack: ::c_long = 132;
-+pub const SYS_personality: ::c_long = 92;
-+pub const SYS_statfs: ::c_long = 43;
-+pub const SYS_fstatfs: ::c_long = 44;
-+pub const SYS_getpriority: ::c_long = 141;
-+pub const SYS_setpriority: ::c_long = 140;
-+pub const SYS_sched_setparam: ::c_long = 118;
-+pub const SYS_sched_getparam: ::c_long = 121;
-+pub const SYS_sched_setscheduler: ::c_long = 119;
-+pub const SYS_sched_getscheduler: ::c_long = 120;
-+pub const SYS_sched_get_priority_max: ::c_long = 125;
-+pub const SYS_sched_get_priority_min: ::c_long = 126;
-+pub const SYS_sched_rr_get_interval: ::c_long = 127;
-+pub const SYS_mlock: ::c_long = 228;
-+pub const SYS_munlock: ::c_long = 229;
-+pub const SYS_mlockall: ::c_long = 230;
-+pub const SYS_munlockall: ::c_long = 231;
-+pub const SYS_vhangup: ::c_long = 58;
-+pub const SYS_pivot_root: ::c_long = 41;
-+pub const SYS_prctl: ::c_long = 167;
-+pub const SYS_adjtimex: ::c_long = 171;
-+pub const SYS_setrlimit: ::c_long = 164;
-+pub const SYS_chroot: ::c_long = 51;
-+pub const SYS_sync: ::c_long = 81;
-+pub const SYS_acct: ::c_long = 89;
-+pub const SYS_settimeofday: ::c_long = 170;
-+pub const SYS_mount: ::c_long = 40;
-+pub const SYS_umount2: ::c_long = 39;
-+pub const SYS_swapon: ::c_long = 224;
-+pub const SYS_swapoff: ::c_long = 225;
-+pub const SYS_reboot: ::c_long = 142;
-+pub const SYS_sethostname: ::c_long = 161;
-+pub const SYS_setdomainname: ::c_long = 162;
-+pub const SYS_init_module: ::c_long = 105;
-+pub const SYS_delete_module: ::c_long = 106;
-+pub const SYS_quotactl: ::c_long = 60;
-+pub const SYS_nfsservctl: ::c_long = 42;
-+pub const SYS_gettid: ::c_long = 178;
-+pub const SYS_readahead: ::c_long = 213;
-+pub const SYS_setxattr: ::c_long = 5;
-+pub const SYS_lsetxattr: ::c_long = 6;
-+pub const SYS_fsetxattr: ::c_long = 7;
-+pub const SYS_getxattr: ::c_long = 8;
-+pub const SYS_lgetxattr: ::c_long = 9;
-+pub const SYS_fgetxattr: ::c_long = 10;
-+pub const SYS_listxattr: ::c_long = 11;
-+pub const SYS_llistxattr: ::c_long = 12;
-+pub const SYS_flistxattr: ::c_long = 13;
-+pub const SYS_removexattr: ::c_long = 14;
-+pub const SYS_lremovexattr: ::c_long = 15;
-+pub const SYS_fremovexattr: ::c_long = 16;
-+pub const SYS_tkill: ::c_long = 130;
-+pub const SYS_futex: ::c_long = 98;
-+pub const SYS_sched_setaffinity: ::c_long = 122;
-+pub const SYS_sched_getaffinity: ::c_long = 123;
-+pub const SYS_io_setup: ::c_long = 0;
-+pub const SYS_io_destroy: ::c_long = 1;
-+pub const SYS_io_getevents: ::c_long = 4;
-+pub const SYS_io_submit: ::c_long = 2;
-+pub const SYS_io_cancel: ::c_long = 3;
-+pub const SYS_lookup_dcookie: ::c_long = 18;
-+pub const SYS_remap_file_pages: ::c_long = 234;
-+pub const SYS_getdents64: ::c_long = 61;
-+pub const SYS_set_tid_address: ::c_long = 96;
-+pub const SYS_restart_syscall: ::c_long = 128;
-+pub const SYS_semtimedop: ::c_long = 192;
-+pub const SYS_fadvise64: ::c_long = 223;
-+pub const SYS_timer_create: ::c_long = 107;
-+pub const SYS_timer_settime: ::c_long = 110;
-+pub const SYS_timer_gettime: ::c_long = 108;
-+pub const SYS_timer_getoverrun: ::c_long = 109;
-+pub const SYS_timer_delete: ::c_long = 111;
-+pub const SYS_clock_settime: ::c_long = 112;
-+pub const SYS_clock_gettime: ::c_long = 113;
-+pub const SYS_clock_getres: ::c_long = 114;
-+pub const SYS_clock_nanosleep: ::c_long = 115;
-+pub const SYS_exit_group: ::c_long = 94;
-+pub const SYS_epoll_ctl: ::c_long = 21;
-+pub const SYS_tgkill: ::c_long = 131;
-+pub const SYS_mbind: ::c_long = 235;
-+pub const SYS_set_mempolicy: ::c_long = 237;
-+pub const SYS_get_mempolicy: ::c_long = 236;
-+pub const SYS_mq_open: ::c_long = 180;
-+pub const SYS_mq_unlink: ::c_long = 181;
-+pub const SYS_mq_timedsend: ::c_long = 182;
-+pub const SYS_mq_timedreceive: ::c_long = 183;
-+pub const SYS_mq_notify: ::c_long = 184;
-+pub const SYS_mq_getsetattr: ::c_long = 185;
-+pub const SYS_kexec_load: ::c_long = 104;
-+pub const SYS_waitid: ::c_long = 95;
-+pub const SYS_add_key: ::c_long = 217;
-+pub const SYS_request_key: ::c_long = 218;
-+pub const SYS_keyctl: ::c_long = 219;
-+pub const SYS_ioprio_set: ::c_long = 30;
-+pub const SYS_ioprio_get: ::c_long = 31;
-+pub const SYS_inotify_add_watch: ::c_long = 27;
-+pub const SYS_inotify_rm_watch: ::c_long = 28;
-+pub const SYS_migrate_pages: ::c_long = 238;
-+pub const SYS_openat: ::c_long = 56;
-+pub const SYS_mkdirat: ::c_long = 34;
-+pub const SYS_mknodat: ::c_long = 33;
-+pub const SYS_fchownat: ::c_long = 54;
-+pub const SYS_newfstatat: ::c_long = 79;
-+pub const SYS_unlinkat: ::c_long = 35;
-+pub const SYS_linkat: ::c_long = 37;
-+pub const SYS_symlinkat: ::c_long = 36;
-+pub const SYS_readlinkat: ::c_long = 78;
-+pub const SYS_fchmodat: ::c_long = 53;
-+pub const SYS_faccessat: ::c_long = 48;
-+pub const SYS_pselect6: ::c_long = 72;
-+pub const SYS_ppoll: ::c_long = 73;
-+pub const SYS_unshare: ::c_long = 97;
-+pub const SYS_set_robust_list: ::c_long = 99;
-+pub const SYS_get_robust_list: ::c_long = 100;
-+pub const SYS_splice: ::c_long = 76;
-+pub const SYS_tee: ::c_long = 77;
-+pub const SYS_sync_file_range: ::c_long = 84;
-+pub const SYS_vmsplice: ::c_long = 75;
-+pub const SYS_move_pages: ::c_long = 239;
-+pub const SYS_utimensat: ::c_long = 88;
-+pub const SYS_epoll_pwait: ::c_long = 22;
-+pub const SYS_timerfd_create: ::c_long = 85;
-+pub const SYS_fallocate: ::c_long = 47;
-+pub const SYS_timerfd_settime: ::c_long = 86;
-+pub const SYS_timerfd_gettime: ::c_long = 87;
-+pub const SYS_accept4: ::c_long = 242;
-+pub const SYS_signalfd4: ::c_long = 74;
-+pub const SYS_eventfd2: ::c_long = 19;
-+pub const SYS_epoll_create1: ::c_long = 20;
-+pub const SYS_dup3: ::c_long = 24;
-+pub const SYS_pipe2: ::c_long = 59;
-+pub const SYS_inotify_init1: ::c_long = 26;
-+pub const SYS_preadv: ::c_long = 69;
-+pub const SYS_pwritev: ::c_long = 70;
-+pub const SYS_rt_tgsigqueueinfo: ::c_long = 240;
-+pub const SYS_perf_event_open: ::c_long = 241;
-+pub const SYS_recvmmsg: ::c_long = 243;
-+pub const SYS_fanotify_init: ::c_long = 262;
-+pub const SYS_fanotify_mark: ::c_long = 263;
-+pub const SYS_prlimit64: ::c_long = 261;
-+pub const SYS_name_to_handle_at: ::c_long = 264;
-+pub const SYS_open_by_handle_at: ::c_long = 265;
-+pub const SYS_clock_adjtime: ::c_long = 266;
-+pub const SYS_syncfs: ::c_long = 267;
-+pub const SYS_sendmmsg: ::c_long = 269;
-+pub const SYS_setns: ::c_long = 268;
-+pub const SYS_getcpu: ::c_long = 168;
-+pub const SYS_process_vm_readv: ::c_long = 270;
-+pub const SYS_process_vm_writev: ::c_long = 271;
-+pub const SYS_kcmp: ::c_long = 272;
-+pub const SYS_finit_module: ::c_long = 273;
-+pub const SYS_sched_setattr: ::c_long = 274;
-+pub const SYS_sched_getattr: ::c_long = 275;
-+pub const SYS_renameat2: ::c_long = 276;
-+pub const SYS_seccomp: ::c_long = 277;
-+pub const SYS_getrandom: ::c_long = 278;
-+pub const SYS_memfd_create: ::c_long = 279;
-+pub const SYS_bpf: ::c_long = 280;
-+pub const SYS_execveat: ::c_long = 281;
-+pub const SYS_userfaultfd: ::c_long = 282;
-+pub const SYS_membarrier: ::c_long = 283;
-+pub const SYS_mlock2: ::c_long = 284;
-+pub const SYS_copy_file_range: ::c_long = 285;
-+pub const SYS_preadv2: ::c_long = 286;
-+pub const SYS_pwritev2: ::c_long = 287;
-+pub const SYS_pkey_mprotect: ::c_long = 288;
-+pub const SYS_pkey_alloc: ::c_long = 289;
-+pub const SYS_pkey_free: ::c_long = 290;
-+pub const SYS_statx: ::c_long = 291;
-+pub const SYS_pidfd_send_signal: ::c_long = 424;
-+pub const SYS_io_uring_setup: ::c_long = 425;
-+pub const SYS_io_uring_enter: ::c_long = 426;
-+pub const SYS_io_uring_register: ::c_long = 427;
-+pub const SYS_open_tree: ::c_long = 428;
-+pub const SYS_move_mount: ::c_long = 429;
-+pub const SYS_fsopen: ::c_long = 430;
-+pub const SYS_fsconfig: ::c_long = 431;
-+pub const SYS_fsmount: ::c_long = 432;
-+pub const SYS_fspick: ::c_long = 433;
-+pub const SYS_pidfd_open: ::c_long = 434;
-+pub const SYS_clone3: ::c_long = 435;
-+pub const SYS_close_range: ::c_long = 436;
-+pub const SYS_openat2: ::c_long = 437;
-+pub const SYS_pidfd_getfd: ::c_long = 438;
-+pub const SYS_faccessat2: ::c_long = 439;
-+pub const SYS_process_madvise: ::c_long = 440;
-+pub const SYS_epoll_pwait2: ::c_long = 441;
-+pub const SYS_mount_setattr: ::c_long = 442;
diff --git a/poky/meta/recipes-devtools/rust/libstd-rs/0006-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set.patch b/poky/meta/recipes-devtools/rust/libstd-rs/0006-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set.patch
deleted file mode 100644
index 047c4f2..0000000
--- a/poky/meta/recipes-devtools/rust/libstd-rs/0006-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 4319893ebb7fca8bbd2bffc4bddb8d3ecdc08cc2 Mon Sep 17 00:00:00 2001
-From: Ralf Anton Beier <ralf_beier@me.com>
-Date: Sun, 8 Aug 2021 11:07:21 +0200
-Subject: [PATCH 6/8] FIXUP: linux/musl/mod.rs: add riscv64 to b64 set
-
-https://github.com/rust-lang/libc/pull/1994/commits/30070c822be2ef399b2ba38cdc1d72ac694d65a3
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
----
- vendor/libc-0.2.98/src/unix/linux_like/linux/musl/mod.rs | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
-+++ b/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
-@@ -709,7 +709,8 @@ cfg_if! {
-                  target_arch = "aarch64",
-                  target_arch = "mips64",
-                  target_arch = "powerpc64",
--                 target_arch = "s390x"))] {
-+                 target_arch = "s390x",
-+                 target_arch = "riscv64"))] {
-         mod b64;
-         pub use self::b64::*;
-     } else if #[cfg(any(target_arch = "x86",
diff --git a/poky/meta/recipes-devtools/rust/libstd-rs/0007-FIXUP-Correct-definitions-to-match-musl.patch b/poky/meta/recipes-devtools/rust/libstd-rs/0007-FIXUP-Correct-definitions-to-match-musl.patch
deleted file mode 100644
index 211d2e2..0000000
--- a/poky/meta/recipes-devtools/rust/libstd-rs/0007-FIXUP-Correct-definitions-to-match-musl.patch
+++ /dev/null
@@ -1,683 +0,0 @@
-From 9d240d05c6e6620f36e4ddbcbcb5862fb3269d9f Mon Sep 17 00:00:00 2001
-From: Ralf Anton Beier <ralf_beier@me.com>
-Date: Sun, 8 Aug 2021 11:09:17 +0200
-Subject: [PATCH 7/8] FIXUP Correct definitions to match musl
-
-https://github.com/rust-lang/libc/pull/1994/commits/5f6a4d9745c79c81be63c708515ab116786554a3
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
----
- .../linux_like/linux/musl/b64/riscv64/mod.rs  | 708 ++++++++----------
- 1 file changed, 311 insertions(+), 397 deletions(-)
-
---- a/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
-+++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
-@@ -191,351 +191,8 @@ s! {
-         pub l_len: ::off64_t,
-         pub l_pid: ::pid_t,
-     }
--
--    pub struct ip_mreqn {
--        pub imr_multiaddr: ::in_addr,
--        pub imr_address: ::in_addr,
--        pub imr_ifindex: ::c_int,
--    }
- }
- 
--pub const POSIX_FADV_DONTNEED: ::c_int = 4;
--pub const POSIX_FADV_NOREUSE: ::c_int = 5;
--pub const VEOF: usize = 4;
--pub const RTLD_DEEPBIND: ::c_int = 0x8;
--pub const RTLD_GLOBAL: ::c_int = 0x100;
--pub const RTLD_NOLOAD: ::c_int = 0x4;
--pub const TIOCGSOFTCAR: ::c_ulong = 21529;
--pub const TIOCSSOFTCAR: ::c_ulong = 21530;
--pub const TIOCGRS485: ::c_int = 21550;
--pub const TIOCSRS485: ::c_int = 21551;
--pub const RLIMIT_RSS: ::__rlimit_resource_t = 5;
--pub const RLIMIT_AS: ::__rlimit_resource_t = 9;
--pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8;
--pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7;
--pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6;
--pub const O_APPEND: ::c_int = 1024;
--pub const O_CREAT: ::c_int = 64;
--pub const O_EXCL: ::c_int = 128;
--pub const O_NOCTTY: ::c_int = 256;
--pub const O_NONBLOCK: ::c_int = 2048;
--pub const O_SYNC: ::c_int = 1052672;
--pub const O_RSYNC: ::c_int = 1052672;
--pub const O_DSYNC: ::c_int = 4096;
--pub const O_FSYNC: ::c_int = 1052672;
--pub const O_NOATIME: ::c_int = 262144;
--pub const O_PATH: ::c_int = 2097152;
--pub const O_TMPFILE: ::c_int = 4259840;
--pub const MAP_GROWSDOWN: ::c_int = 256;
--pub const EDEADLK: ::c_int = 35;
--pub const ENAMETOOLONG: ::c_int = 36;
--pub const ENOLCK: ::c_int = 37;
--pub const ENOSYS: ::c_int = 38;
--pub const ENOTEMPTY: ::c_int = 39;
--pub const ELOOP: ::c_int = 40;
--pub const ENOMSG: ::c_int = 42;
--pub const EIDRM: ::c_int = 43;
--pub const ECHRNG: ::c_int = 44;
--pub const EL2NSYNC: ::c_int = 45;
--pub const EL3HLT: ::c_int = 46;
--pub const EL3RST: ::c_int = 47;
--pub const ELNRNG: ::c_int = 48;
--pub const EUNATCH: ::c_int = 49;
--pub const ENOCSI: ::c_int = 50;
--pub const EL2HLT: ::c_int = 51;
--pub const EBADE: ::c_int = 52;
--pub const EBADR: ::c_int = 53;
--pub const EXFULL: ::c_int = 54;
--pub const ENOANO: ::c_int = 55;
--pub const EBADRQC: ::c_int = 56;
--pub const EBADSLT: ::c_int = 57;
--pub const EMULTIHOP: ::c_int = 72;
--pub const EOVERFLOW: ::c_int = 75;
--pub const ENOTUNIQ: ::c_int = 76;
--pub const EBADFD: ::c_int = 77;
--pub const EBADMSG: ::c_int = 74;
--pub const EREMCHG: ::c_int = 78;
--pub const ELIBACC: ::c_int = 79;
--pub const ELIBBAD: ::c_int = 80;
--pub const ELIBSCN: ::c_int = 81;
--pub const ELIBMAX: ::c_int = 82;
--pub const ELIBEXEC: ::c_int = 83;
--pub const EILSEQ: ::c_int = 84;
--pub const ERESTART: ::c_int = 85;
--pub const ESTRPIPE: ::c_int = 86;
--pub const EUSERS: ::c_int = 87;
--pub const ENOTSOCK: ::c_int = 88;
--pub const EDESTADDRREQ: ::c_int = 89;
--pub const EMSGSIZE: ::c_int = 90;
--pub const EPROTOTYPE: ::c_int = 91;
--pub const ENOPROTOOPT: ::c_int = 92;
--pub const EPROTONOSUPPORT: ::c_int = 93;
--pub const ESOCKTNOSUPPORT: ::c_int = 94;
--pub const EOPNOTSUPP: ::c_int = 95;
--pub const EPFNOSUPPORT: ::c_int = 96;
--pub const EAFNOSUPPORT: ::c_int = 97;
--pub const EADDRINUSE: ::c_int = 98;
--pub const EADDRNOTAVAIL: ::c_int = 99;
--pub const ENETDOWN: ::c_int = 100;
--pub const ENETUNREACH: ::c_int = 101;
--pub const ENETRESET: ::c_int = 102;
--pub const ECONNABORTED: ::c_int = 103;
--pub const ECONNRESET: ::c_int = 104;
--pub const ENOBUFS: ::c_int = 105;
--pub const EISCONN: ::c_int = 106;
--pub const ENOTCONN: ::c_int = 107;
--pub const ESHUTDOWN: ::c_int = 108;
--pub const ETOOMANYREFS: ::c_int = 109;
--pub const ETIMEDOUT: ::c_int = 110;
--pub const ECONNREFUSED: ::c_int = 111;
--pub const EHOSTDOWN: ::c_int = 112;
--pub const EHOSTUNREACH: ::c_int = 113;
--pub const EALREADY: ::c_int = 114;
--pub const EINPROGRESS: ::c_int = 115;
--pub const ESTALE: ::c_int = 116;
--pub const EDQUOT: ::c_int = 122;
--pub const ENOMEDIUM: ::c_int = 123;
--pub const EMEDIUMTYPE: ::c_int = 124;
--pub const ECANCELED: ::c_int = 125;
--pub const ENOKEY: ::c_int = 126;
--pub const EKEYEXPIRED: ::c_int = 127;
--pub const EKEYREVOKED: ::c_int = 128;
--pub const EKEYREJECTED: ::c_int = 129;
--pub const EOWNERDEAD: ::c_int = 130;
--pub const ENOTRECOVERABLE: ::c_int = 131;
--pub const EHWPOISON: ::c_int = 133;
--pub const ERFKILL: ::c_int = 132;
--
--pub const SOCK_STREAM: ::c_int = 1;
--pub const SOCK_DGRAM: ::c_int = 2;
--pub const SA_ONSTACK: ::c_int = 134217728;
--pub const SA_SIGINFO: ::c_int = 4;
--pub const SA_NOCLDWAIT: ::c_int = 2;
--pub const SIGTTIN: ::c_int = 21;
--pub const SIGTTOU: ::c_int = 22;
--pub const SIGXCPU: ::c_int = 24;
--pub const SIGXFSZ: ::c_int = 25;
--pub const SIGVTALRM: ::c_int = 26;
--pub const SIGPROF: ::c_int = 27;
--pub const SIGWINCH: ::c_int = 28;
--pub const SIGCHLD: ::c_int = 17;
--pub const SIGBUS: ::c_int = 7;
--pub const SIGUSR1: ::c_int = 10;
--pub const SIGUSR2: ::c_int = 12;
--pub const SIGCONT: ::c_int = 18;
--pub const SIGSTOP: ::c_int = 19;
--pub const SIGTSTP: ::c_int = 20;
--pub const SIGURG: ::c_int = 23;
--pub const SIGIO: ::c_int = 29;
--pub const SIGSYS: ::c_int = 31;
--pub const SIGSTKFLT: ::c_int = 16;
--pub const SIGPOLL: ::c_int = 29;
--pub const SIGPWR: ::c_int = 30;
--pub const SIG_SETMASK: ::c_int = 2;
--pub const SIG_BLOCK: ::c_int = 0;
--pub const SIG_UNBLOCK: ::c_int = 1;
--pub const POLLWRNORM: ::c_short = 256;
--pub const POLLWRBAND: ::c_short = 512;
--pub const O_ASYNC: ::c_int = 8192;
--pub const O_NDELAY: ::c_int = 2048;
--pub const PTRACE_DETACH: ::c_uint = 17;
--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_SETLK: ::c_int = 6;
--pub const F_SETLKW: ::c_int = 7;
--pub const F_RDLCK: ::c_int = 0;
--pub const F_WRLCK: ::c_int = 1;
--pub const F_UNLCK: ::c_int = 2;
--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 SFD_NONBLOCK: ::c_int = 2048;
--pub const TCSANOW: ::c_int = 0;
--pub const TCSADRAIN: ::c_int = 1;
--pub const TCSAFLUSH: ::c_int = 2;
--pub const TIOCLINUX: ::c_ulong = 21532;
--pub const TIOCGSERIAL: ::c_ulong = 21534;
--pub const TIOCEXCL: ::c_ulong = 21516;
--pub const TIOCNXCL: ::c_ulong = 21517;
--pub const TIOCSCTTY: ::c_ulong = 21518;
--pub const TIOCSTI: ::c_ulong = 21522;
--pub const TIOCMGET: ::c_ulong = 21525;
--pub const TIOCMBIS: ::c_ulong = 21526;
--pub const TIOCMBIC: ::c_ulong = 21527;
--pub const TIOCMSET: ::c_ulong = 21528;
--pub const TIOCCONS: ::c_ulong = 21533;
--pub const TIOCM_ST: ::c_int = 8;
--pub const TIOCM_SR: ::c_int = 16;
--pub const TIOCM_CTS: ::c_int = 32;
--pub const TIOCM_CAR: ::c_int = 64;
--pub const TIOCM_RNG: ::c_int = 128;
--pub const TIOCM_DSR: ::c_int = 256;
--pub const SFD_CLOEXEC: ::c_int = 524288;
--pub const NCCS: usize = 32;
--pub const O_TRUNC: ::c_int = 512;
--pub const O_CLOEXEC: ::c_int = 524288;
--pub const EBFONT: ::c_int = 59;
--pub const ENOSTR: ::c_int = 60;
--pub const ENODATA: ::c_int = 61;
--pub const ETIME: ::c_int = 62;
--pub const ENOSR: ::c_int = 63;
--pub const ENONET: ::c_int = 64;
--pub const ENOPKG: ::c_int = 65;
--pub const EREMOTE: ::c_int = 66;
--pub const ENOLINK: ::c_int = 67;
--pub const EADV: ::c_int = 68;
--pub const ESRMNT: ::c_int = 69;
--pub const ECOMM: ::c_int = 70;
--pub const EPROTO: ::c_int = 71;
--pub const EDOTDOT: ::c_int = 73;
--pub const SA_NODEFER: ::c_int = 1073741824;
--pub const SA_RESETHAND: ::c_int = -2147483648;
--pub const SA_RESTART: ::c_int = 268435456;
--pub const SA_NOCLDSTOP: ::c_int = 1;
--pub const EPOLL_CLOEXEC: ::c_int = 524288;
--pub const EFD_CLOEXEC: ::c_int = 524288;
--pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
--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_NOFOLLOW: ::c_int = 131072;
--pub const MAP_HUGETLB: ::c_int = 262144;
--pub const MAP_LOCKED: ::c_int = 8192;
--pub const MAP_NORESERVE: ::c_int = 16384;
--pub const MAP_ANON: ::c_int = 32;
--pub const MAP_ANONYMOUS: ::c_int = 32;
--pub const MAP_DENYWRITE: ::c_int = 2048;
--pub const MAP_EXECUTABLE: ::c_int = 4096;
--pub const MAP_POPULATE: ::c_int = 32768;
--pub const MAP_NONBLOCK: ::c_int = 65536;
--pub const MAP_STACK: ::c_int = 131072;
--pub const MAP_SYNC: ::c_int = 0x080000;
--pub const EDEADLOCK: ::c_int = 35;
--pub const EUCLEAN: ::c_int = 117;
--pub const ENOTNAM: ::c_int = 118;
--pub const ENAVAIL: ::c_int = 119;
--pub const EISNAM: ::c_int = 120;
--pub const EREMOTEIO: ::c_int = 121;
--pub const FIOCLEX: ::c_ulong = 21585;
--pub const FIONCLEX: ::c_ulong = 21584;
--pub const FIONBIO: ::c_ulong = 21537;
--pub const MCL_CURRENT: ::c_int = 1;
--pub const MCL_FUTURE: ::c_int = 2;
--pub const SIGSTKSZ: ::size_t = 8192;
--pub const MINSIGSTKSZ: ::size_t = 2048;
--pub const CBAUD: ::tcflag_t = 4111;
--pub const TAB1: ::tcflag_t = 2048;
--pub const TAB2: ::tcflag_t = 4096;
--pub const TAB3: ::tcflag_t = 6144;
--pub const CR1: ::tcflag_t = 512;
--pub const CR2: ::tcflag_t = 1024;
--pub const CR3: ::tcflag_t = 1536;
--pub const FF1: ::tcflag_t = 32768;
--pub const BS1: ::tcflag_t = 8192;
--pub const VT1: ::tcflag_t = 16384;
--pub const VWERASE: usize = 14;
--pub const VREPRINT: usize = 12;
--pub const VSUSP: usize = 10;
--pub const VSTART: usize = 8;
--pub const VSTOP: usize = 9;
--pub const VDISCARD: usize = 13;
--pub const VTIME: usize = 5;
--pub const IXON: ::tcflag_t = 1024;
--pub const IXOFF: ::tcflag_t = 4096;
--pub const ONLCR: ::tcflag_t = 4;
--pub const CSIZE: ::tcflag_t = 48;
--pub const CS6: ::tcflag_t = 16;
--pub const CS7: ::tcflag_t = 32;
--pub const CS8: ::tcflag_t = 48;
--pub const CSTOPB: ::tcflag_t = 64;
--pub const CREAD: ::tcflag_t = 128;
--pub const PARENB: ::tcflag_t = 256;
--pub const PARODD: ::tcflag_t = 512;
--pub const HUPCL: ::tcflag_t = 1024;
--pub const CLOCAL: ::tcflag_t = 2048;
--pub const ECHOKE: ::tcflag_t = 2048;
--pub const ECHOE: ::tcflag_t = 16;
--pub const ECHOK: ::tcflag_t = 32;
--pub const ECHONL: ::tcflag_t = 64;
--pub const ECHOPRT: ::tcflag_t = 1024;
--pub const ECHOCTL: ::tcflag_t = 512;
--pub const ISIG: ::tcflag_t = 1;
--pub const ICANON: ::tcflag_t = 2;
--pub const PENDIN: ::tcflag_t = 16384;
--pub const NOFLSH: ::tcflag_t = 128;
--pub const CIBAUD: ::tcflag_t = 269418496;
--pub const CBAUDEX: ::tcflag_t = 4096;
--pub const VSWTC: usize = 7;
--pub const OLCUC: ::tcflag_t = 2;
--pub const NLDLY: ::tcflag_t = 256;
--pub const CRDLY: ::tcflag_t = 1536;
--pub const TABDLY: ::tcflag_t = 6144;
--pub const BSDLY: ::tcflag_t = 8192;
--pub const FFDLY: ::tcflag_t = 32768;
--pub const VTDLY: ::tcflag_t = 16384;
--pub const XTABS: ::tcflag_t = 6144;
--pub const B0: ::speed_t = 0;
--pub const B50: ::speed_t = 1;
--pub const B75: ::speed_t = 2;
--pub const B110: ::speed_t = 3;
--pub const B134: ::speed_t = 4;
--pub const B150: ::speed_t = 5;
--pub const B200: ::speed_t = 6;
--pub const B300: ::speed_t = 7;
--pub const B600: ::speed_t = 8;
--pub const B1200: ::speed_t = 9;
--pub const B1800: ::speed_t = 10;
--pub const B2400: ::speed_t = 11;
--pub const B4800: ::speed_t = 12;
--pub const B9600: ::speed_t = 13;
--pub const B19200: ::speed_t = 14;
--pub const B38400: ::speed_t = 15;
--pub const EXTA: ::speed_t = 14;
--pub const EXTB: ::speed_t = 15;
--pub const B57600: ::speed_t = 4097;
--pub const B115200: ::speed_t = 4098;
--pub const B230400: ::speed_t = 4099;
--pub const B460800: ::speed_t = 4100;
--pub const B500000: ::speed_t = 4101;
--pub const B576000: ::speed_t = 4102;
--pub const B921600: ::speed_t = 4103;
--pub const B1000000: ::speed_t = 4104;
--pub const B1152000: ::speed_t = 4105;
--pub const B1500000: ::speed_t = 4106;
--pub const B2000000: ::speed_t = 4107;
--pub const B2500000: ::speed_t = 4108;
--pub const B3000000: ::speed_t = 4109;
--pub const B3500000: ::speed_t = 4110;
--pub const B4000000: ::speed_t = 4111;
--pub const VEOL: usize = 11;
--pub const VEOL2: usize = 16;
--pub const VMIN: usize = 6;
--pub const IEXTEN: ::tcflag_t = 32768;
--pub const TOSTOP: ::tcflag_t = 256;
--pub const FLUSHO: ::tcflag_t = 4096;
--pub const EXTPROC: ::tcflag_t = 65536;
--pub const TCGETS: ::c_ulong = 21505;
--pub const TCSETS: ::c_ulong = 21506;
--pub const TCSETSW: ::c_ulong = 21507;
--pub const TCSETSF: ::c_ulong = 21508;
--pub const TCGETA: ::c_ulong = 21509;
--pub const TCSETA: ::c_ulong = 21510;
--pub const TCSETAW: ::c_ulong = 21511;
--pub const TCSETAF: ::c_ulong = 21512;
--pub const TCSBRK: ::c_ulong = 21513;
--pub const TCXONC: ::c_ulong = 21514;
--pub const TCFLSH: ::c_ulong = 21515;
--pub const TIOCINQ: ::c_ulong = 21531;
--pub const TIOCGPGRP: ::c_ulong = 21519;
--pub const TIOCSPGRP: ::c_ulong = 21520;
--pub const TIOCOUTQ: ::c_ulong = 21521;
--pub const TIOCGWINSZ: ::c_ulong = 21523;
--pub const TIOCSWINSZ: ::c_ulong = 21524;
--pub const FIONREAD: ::c_ulong = 21531;
--pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
--pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
- pub const SYS_read: ::c_long = 63;
- pub const SYS_write: ::c_long = 64;
- pub const SYS_close: ::c_long = 57;
-@@ -830,3 +487,315 @@ pub const SYS_faccessat2: ::c_long = 439
- pub const SYS_process_madvise: ::c_long = 440;
- pub const SYS_epoll_pwait2: ::c_long = 441;
- pub const SYS_mount_setattr: ::c_long = 442;
-+
-+
-+pub const O_APPEND: ::c_int = 1024;
-+pub const O_DIRECT: ::c_int = 0x4000;
-+pub const O_DIRECTORY: ::c_int = 0x10000;
-+pub const O_LARGEFILE: ::c_int = 0;
-+pub const O_NOFOLLOW: ::c_int = 0x20000;
-+pub const O_CREAT: ::c_int = 64;
-+pub const O_EXCL: ::c_int = 128;
-+pub const O_NOCTTY: ::c_int = 256;
-+pub const O_NONBLOCK: ::c_int = 2048;
-+pub const O_SYNC: ::c_int = 1052672;
-+pub const O_RSYNC: ::c_int = 1052672;
-+pub const O_DSYNC: ::c_int = 4096;
-+pub const O_ASYNC: ::c_int = 0x2000;
-+
-+pub const TIOCGRS485: ::c_int = 0x542E;
-+pub const TIOCSRS485: ::c_int = 0x542F;
-+
-+pub const SIGSTKSZ: ::size_t = 8192;
-+pub const MINSIGSTKSZ: ::size_t = 2048;
-+
-+pub const ENAMETOOLONG: ::c_int = 36;
-+pub const ENOLCK: ::c_int = 37;
-+pub const ENOSYS: ::c_int = 38;
-+pub const ENOTEMPTY: ::c_int = 39;
-+pub const ELOOP: ::c_int = 40;
-+pub const ENOMSG: ::c_int = 42;
-+pub const EIDRM: ::c_int = 43;
-+pub const ECHRNG: ::c_int = 44;
-+pub const EL2NSYNC: ::c_int = 45;
-+pub const EL3HLT: ::c_int = 46;
-+pub const EL3RST: ::c_int = 47;
-+pub const ELNRNG: ::c_int = 48;
-+pub const EUNATCH: ::c_int = 49;
-+pub const ENOCSI: ::c_int = 50;
-+pub const EL2HLT: ::c_int = 51;
-+pub const EBADE: ::c_int = 52;
-+pub const EBADR: ::c_int = 53;
-+pub const EXFULL: ::c_int = 54;
-+pub const ENOANO: ::c_int = 55;
-+pub const EBADRQC: ::c_int = 56;
-+pub const EBADSLT: ::c_int = 57;
-+pub const EMULTIHOP: ::c_int = 72;
-+pub const EOVERFLOW: ::c_int = 75;
-+pub const ENOTUNIQ: ::c_int = 76;
-+pub const EBADFD: ::c_int = 77;
-+pub const EBADMSG: ::c_int = 74;
-+pub const EREMCHG: ::c_int = 78;
-+pub const ELIBACC: ::c_int = 79;
-+pub const ELIBBAD: ::c_int = 80;
-+pub const ELIBSCN: ::c_int = 81;
-+pub const ELIBMAX: ::c_int = 82;
-+pub const ELIBEXEC: ::c_int = 83;
-+pub const EILSEQ: ::c_int = 84;
-+pub const ERESTART: ::c_int = 85;
-+pub const ESTRPIPE: ::c_int = 86;
-+pub const EUSERS: ::c_int = 87;
-+pub const ENOTSOCK: ::c_int = 88;
-+pub const EDESTADDRREQ: ::c_int = 89;
-+pub const EMSGSIZE: ::c_int = 90;
-+pub const EPROTOTYPE: ::c_int = 91;
-+pub const ENOPROTOOPT: ::c_int = 92;
-+pub const EPROTONOSUPPORT: ::c_int = 93;
-+pub const ESOCKTNOSUPPORT: ::c_int = 94;
-+pub const EOPNOTSUPP: ::c_int = 95;
-+pub const EPFNOSUPPORT: ::c_int = 96;
-+pub const EAFNOSUPPORT: ::c_int = 97;
-+pub const EADDRINUSE: ::c_int = 98;
-+pub const EADDRNOTAVAIL: ::c_int = 99;
-+pub const ENETDOWN: ::c_int = 100;
-+pub const ENETUNREACH: ::c_int = 101;
-+pub const ENETRESET: ::c_int = 102;
-+pub const ECONNABORTED: ::c_int = 103;
-+pub const ECONNRESET: ::c_int = 104;
-+pub const ENOBUFS: ::c_int = 105;
-+pub const EISCONN: ::c_int = 106;
-+pub const ENOTCONN: ::c_int = 107;
-+pub const ESHUTDOWN: ::c_int = 108;
-+pub const ETOOMANYREFS: ::c_int = 109;
-+pub const ETIMEDOUT: ::c_int = 110;
-+pub const ECONNREFUSED: ::c_int = 111;
-+pub const EHOSTDOWN: ::c_int = 112;
-+pub const EHOSTUNREACH: ::c_int = 113;
-+pub const EALREADY: ::c_int = 114;
-+pub const EINPROGRESS: ::c_int = 115;
-+pub const ESTALE: ::c_int = 116;
-+pub const EDQUOT: ::c_int = 122;
-+pub const ENOMEDIUM: ::c_int = 123;
-+pub const EMEDIUMTYPE: ::c_int = 124;
-+pub const ECANCELED: ::c_int = 125;
-+pub const ENOKEY: ::c_int = 126;
-+pub const EKEYEXPIRED: ::c_int = 127;
-+pub const EKEYREVOKED: ::c_int = 128;
-+pub const EKEYREJECTED: ::c_int = 129;
-+pub const EOWNERDEAD: ::c_int = 130;
-+pub const ENOTRECOVERABLE: ::c_int = 131;
-+pub const EHWPOISON: ::c_int = 133;
-+pub const ERFKILL: ::c_int = 132;
-+
-+pub const SA_ONSTACK: ::c_int = 0x08000000;
-+pub const SA_SIGINFO: ::c_int = 0x00000004;
-+pub const SA_NOCLDWAIT: ::c_int = 0x00000002;
-+
-+pub const SIGCHLD: ::c_int = 17;
-+pub const SIGBUS: ::c_int = 7;
-+pub const SIGTTIN: ::c_int = 21;
-+pub const SIGTTOU: ::c_int = 22;
-+pub const SIGXCPU: ::c_int = 24;
-+pub const SIGXFSZ: ::c_int = 25;
-+pub const SIGVTALRM: ::c_int = 26;
-+pub const SIGPROF: ::c_int = 27;
-+pub const SIGWINCH: ::c_int = 28;
-+pub const SIGUSR1: ::c_int = 10;
-+pub const SIGUSR2: ::c_int = 12;
-+pub const SIGCONT: ::c_int = 18;
-+pub const SIGSTOP: ::c_int = 19;
-+pub const SIGTSTP: ::c_int = 20;
-+pub const SIGURG: ::c_int = 23;
-+pub const SIGIO: ::c_int = 29;
-+pub const SIGSYS: ::c_int = 31;
-+pub const SIGSTKFLT: ::c_int = 16;
-+pub const SIGPOLL: ::c_int = 29;
-+pub const SIGPWR: ::c_int = 30;
-+pub const SIG_SETMASK: ::c_int = 2;
-+pub const SIG_BLOCK: ::c_int = 0x000000;
-+pub const SIG_UNBLOCK: ::c_int = 0x01;
-+
-+pub const F_GETLK: ::c_int = 5;
-+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;
-+
-+pub const POLLWRNORM: ::c_short = 0x100;
-+pub const POLLWRBAND: ::c_short = 0x200;
-+
-+pub const SOCK_STREAM: ::c_int = 1;
-+pub const SOCK_DGRAM: ::c_int = 2;
-+pub const SOL_SOCKET: ::c_int = 1;
-+pub const SO_REUSEADDR: ::c_int = 2;
-+pub const SO_TYPE: ::c_int = 3;
-+pub const SO_ERROR: ::c_int = 4;
-+pub const SO_DONTROUTE: ::c_int = 5;
-+pub const SO_BROADCAST: ::c_int = 6;
-+pub const SO_SNDBUF: ::c_int = 7;
-+pub const SO_RCVBUF: ::c_int = 8;
-+pub const SO_KEEPALIVE: ::c_int = 9;
-+pub const SO_OOBINLINE: ::c_int = 10;
-+pub const SO_NO_CHECK: ::c_int = 11;
-+pub const SO_PRIORITY: ::c_int = 12;
-+pub const SO_LINGER: ::c_int = 13;
-+pub const SO_BSDCOMPAT: ::c_int = 14;
-+pub const SO_REUSEPORT: ::c_int = 15;
-+pub const SO_ACCEPTCONN: ::c_int = 30;
-+pub const SO_SNDBUFFORCE: ::c_int = 32;
-+pub const SO_RCVBUFFORCE: ::c_int = 33;
-+pub const SO_PROTOCOL: ::c_int = 38;
-+pub const SO_DOMAIN: ::c_int = 39;
-+
-+pub const MAP_ANON: ::c_int = 0x0020;
-+pub const MAP_GROWSDOWN: ::c_int = 0x0100;
-+pub const MAP_DENYWRITE: ::c_int = 0x0800;
-+pub const MAP_EXECUTABLE: ::c_int = 0x01000;
-+pub const MAP_LOCKED: ::c_int = 0x02000;
-+pub const MAP_NORESERVE: ::c_int = 0x04000;
-+pub const MAP_POPULATE: ::c_int = 0x08000;
-+pub const MAP_NONBLOCK: ::c_int = 0x010000;
-+pub const MAP_STACK: ::c_int = 0x020000;
-+pub const MAP_HUGETLB: ::c_int = 0x040000;
-+pub const MAP_SYNC : ::c_int = 0x080000;
-+
-+pub const RLIMIT_NLIMITS: ::c_int = 15;
-+pub const TIOCINQ: ::c_int = ::FIONREAD;
-+pub const MCL_CURRENT: ::c_int = 0x0001;
-+pub const MCL_FUTURE: ::c_int = 0x0002;
-+pub const CBAUD: ::tcflag_t = 0o0010017;
-+pub const TAB1: ::c_int = 0x00000800;
-+pub const TAB2: ::c_int = 0x00001000;
-+pub const TAB3: ::c_int = 0x00001800;
-+pub const CR1: ::c_int = 0x00000200;
-+pub const CR2: ::c_int = 0x00000400;
-+pub const CR3: ::c_int = 0x00000600;
-+pub const FF1: ::c_int = 0x00008000;
-+pub const BS1: ::c_int = 0x00002000;
-+pub const VT1: ::c_int = 0x00004000;
-+pub const VWERASE: usize = 14;
-+pub const VREPRINT: usize = 12;
-+pub const VSUSP: usize = 10;
-+pub const VSTART: usize = 8;
-+pub const VSTOP: usize = 9;
-+pub const VDISCARD: usize = 13;
-+pub const VTIME: usize = 5;
-+pub const IXON: ::tcflag_t = 0x00000400;
-+pub const IXOFF: ::tcflag_t = 0x00001000;
-+pub const ONLCR: ::tcflag_t = 0x4;
-+pub const CSIZE: ::tcflag_t = 0x00000030;
-+pub const CS6: ::tcflag_t = 0x00000010;
-+pub const CS7: ::tcflag_t = 0x00000020;
-+pub const CS8: ::tcflag_t = 0x00000030;
-+pub const CSTOPB: ::tcflag_t = 0x00000040;
-+pub const CREAD: ::tcflag_t = 0x00000080;
-+pub const PARENB: ::tcflag_t = 0x00000100;
-+pub const PARODD: ::tcflag_t = 0x00000200;
-+pub const HUPCL: ::tcflag_t = 0x00000400;
-+pub const CLOCAL: ::tcflag_t = 0x00000800;
-+pub const ECHOKE: ::tcflag_t = 0x00000800;
-+pub const ECHOE: ::tcflag_t = 0x00000010;
-+pub const ECHOK: ::tcflag_t = 0x00000020;
-+pub const ECHONL: ::tcflag_t = 0x00000040;
-+pub const ECHOPRT: ::tcflag_t = 0x00000400;
-+pub const ECHOCTL: ::tcflag_t = 0x00000200;
-+pub const ISIG: ::tcflag_t = 0x00000001;
-+pub const ICANON: ::tcflag_t = 0x00000002;
-+pub const PENDIN: ::tcflag_t = 0x00004000;
-+pub const NOFLSH: ::tcflag_t = 0x00000080;
-+pub const CIBAUD: ::tcflag_t = 0o02003600000;
-+pub const CBAUDEX: ::tcflag_t = 0o010000;
-+pub const VSWTC: usize = 7;
-+pub const OLCUC: ::tcflag_t = 0o000002;
-+pub const NLDLY: ::tcflag_t = 0o000400;
-+pub const CRDLY: ::tcflag_t = 0o003000;
-+pub const TABDLY: ::tcflag_t = 0o014000;
-+pub const BSDLY: ::tcflag_t = 0o020000;
-+pub const FFDLY: ::tcflag_t = 0o100000;
-+pub const VTDLY: ::tcflag_t = 0o040000;
-+pub const XTABS: ::tcflag_t = 0o014000;
-+pub const B57600: ::speed_t = 0o010001;
-+pub const B115200: ::speed_t = 0o010002;
-+pub const B230400: ::speed_t = 0o010003;
-+pub const B460800: ::speed_t = 0o010004;
-+pub const B500000: ::speed_t = 0o010005;
-+pub const B576000: ::speed_t = 0o010006;
-+pub const B921600: ::speed_t = 0o010007;
-+pub const B1000000: ::speed_t = 0o010010;
-+pub const B1152000: ::speed_t = 0o010011;
-+pub const B1500000: ::speed_t = 0o010012;
-+pub const B2000000: ::speed_t = 0o010013;
-+pub const B2500000: ::speed_t = 0o010014;
-+pub const B3000000: ::speed_t = 0o010015;
-+pub const B3500000: ::speed_t = 0o010016;
-+pub const B4000000: ::speed_t = 0o010017;
-+
-+pub const FIOCLEX: ::c_int = 0x5451;
-+pub const FIONCLEX: ::c_int = 0x5450;
-+pub const FIONBIO: ::c_int = 0x5421;
-+pub const EDEADLK: ::c_int = 35;
-+pub const EDEADLOCK: ::c_int = EDEADLK;
-+pub const SO_PASSCRED: ::c_int = 16;
-+pub const SO_PEERCRED: ::c_int = 17;
-+pub const SO_RCVLOWAT: ::c_int = 18;
-+pub const SO_SNDLOWAT: ::c_int = 19;
-+pub const SO_RCVTIMEO: ::c_int = 20;
-+pub const SO_SNDTIMEO: ::c_int = 21;
-+pub const EXTPROC: ::tcflag_t = 0x00010000;
-+pub const VEOL: usize = 11;
-+pub const VEOL2: usize = 16;
-+pub const VMIN: usize = 6;
-+pub const IEXTEN: ::tcflag_t = 0x00008000;
-+pub const TOSTOP: ::tcflag_t = 0x00000100;
-+pub const FLUSHO: ::tcflag_t = 0x00001000;
-+pub const TCGETS: ::c_int = 0x5401;
-+pub const TCSETS: ::c_int = 0x5402;
-+pub const TCSETSW: ::c_int = 0x5403;
-+pub const TCSETSF: ::c_int = 0x5404;
-+pub const TCGETA: ::c_int = 0x5405;
-+pub const TCSETA: ::c_int = 0x5406;
-+pub const TCSETAW: ::c_int = 0x5407;
-+pub const TCSETAF: ::c_int = 0x5408;
-+pub const TCSBRK: ::c_int = 0x5409;
-+pub const TCXONC: ::c_int = 0x540A;
-+pub const TCFLSH: ::c_int = 0x540B;
-+pub const TIOCGSOFTCAR: ::c_int = 0x5419;
-+pub const TIOCSSOFTCAR: ::c_int = 0x541A;
-+pub const TIOCLINUX: ::c_int = 0x541C;
-+pub const TIOCGSERIAL: ::c_int = 0x541E;
-+pub const TIOCEXCL: ::c_int = 0x540C;
-+pub const TIOCNXCL: ::c_int = 0x540D;
-+pub const TIOCSCTTY: ::c_int = 0x540E;
-+pub const TIOCGPGRP: ::c_int = 0x540F;
-+pub const TIOCSPGRP: ::c_int = 0x5410;
-+pub const TIOCOUTQ: ::c_int = 0x5411;
-+pub const TIOCSTI: ::c_int = 0x5412;
-+pub const TIOCGWINSZ: ::c_int = 0x5413;
-+pub const TIOCSWINSZ: ::c_int = 0x5414;
-+pub const TIOCMGET: ::c_int = 0x5415;
-+pub const TIOCMBIS: ::c_int = 0x5416;
-+pub const TIOCMBIC: ::c_int = 0x5417;
-+pub const TIOCMSET: ::c_int = 0x5418;
-+pub const FIONREAD: ::c_int = 0x541B;
-+pub const TIOCCONS: ::c_int = 0x541D;
-+
-+pub const TIOCM_LE: ::c_int = 0x001;
-+pub const TIOCM_DTR: ::c_int = 0x002;
-+pub const TIOCM_RTS: ::c_int = 0x004;
-+pub const TIOCM_ST: ::c_int = 0x008;
-+pub const TIOCM_SR: ::c_int = 0x010;
-+pub const TIOCM_CTS: ::c_int = 0x020;
-+pub const TIOCM_CAR: ::c_int = 0x040;
-+pub const TIOCM_RNG: ::c_int = 0x080;
-+pub const TIOCM_DSR: ::c_int = 0x100;
-+pub const TIOCM_CD: ::c_int = TIOCM_CAR;
-+pub const TIOCM_RI: ::c_int = TIOCM_RNG;
-+
-+extern "C" {
-+    pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int;
-+}
diff --git a/poky/meta/recipes-devtools/rust/libstd-rs/0008-Update-checksums-for-modified-files-for-rust.patch b/poky/meta/recipes-devtools/rust/libstd-rs/0008-Update-checksums-for-modified-files-for-rust.patch
deleted file mode 100644
index 29131a0..0000000
--- a/poky/meta/recipes-devtools/rust/libstd-rs/0008-Update-checksums-for-modified-files-for-rust.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-From 2b1c373f9a3341e8926d6be8d7cdcedc1fc6fca3 Mon Sep 17 00:00:00 2001
-From: Ralf Anton Beier <ralf_beier@me.com>
-Date: Sun, 8 Aug 2021 11:19:24 +0200
-Subject: [PATCH 8/8] Update checksums for modified files for rust
-
-Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
----
- vendor/libc-0.2.93/.cargo-checksum.json | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/vendor/libc/.cargo-checksum.json
-+++ b/vendor/libc/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{"CONTRIBUTING.md":"752eea5a703d11b485c6b5f195f51bd2c79aa5159b619ce09555c779e1fb586b","Cargo.toml":"9d8cd25bb60fc4bb42c4b034bfa26ba45a691fd7cae155dab8f8b5819fe12647","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"8228847944f1332882fbb00275b6f30e4a8aad08a13569c25d52cac012cc2a47","build.rs":"8e0e8d33cc9e7c25cde75c2b502420f943266a681024169f94084774b422681d","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"34c60f12ec5eeb90f13ec3b954427532111c2446e69617616a97aefc1086a9f1","src/fuchsia/aarch64.rs":"378776a9e40766154a54c94c2a7b4675b5c302a38e6e42da99e67bfbaee60e56","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"975b86cbe0335d64082ca88bb24f0e3402371f6f5b33e940c4e12ce4342bb658","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":"d4f7452c0fe720f3a961b918b74ec86d19cef33e6b4aac08efbbad6f6d818e09","src/macros.rs":"7844312c233a6889fa15395fe3106f6a8f6229211104a92f33ea3c9536eef763","src/psp.rs":"dd31aabd46171d474ec5828372e28588935120e7355c90c105360d8fa9264c1c","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/switch.rs":"9da3dd39b3de45a7928789926e8572d00e1e11a39e6f7289a1349aadce90edba","src/unix/align.rs":"2cdc7c826ef7ae61f5171c5ae8c445a743d86f1a7f2d9d7e4ceeec56d6874f65","src/unix/bsd/apple/b32/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b32/mod.rs":"6a4ce300da0d2b0db04b18548286603ffe4b47d679a41cf60f1902895894aa1f","src/unix/bsd/apple/b64/aarch64/align.rs":"f0c321265dd7671f16106b84951ac7dd77ed2e65c6623cbf2d29e76531984770","src/unix/bsd/apple/b64/aarch64/mod.rs":"46d5d061c7a74cbc09cbdfb3bee9a600867bf4e04c0e4d0ca6c817e6033b32e1","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":"cc6878dd130c3f255418e4da74992ae9ba6a3cdb0530772de76c518077d3b12a","src/unix/bsd/apple/mod.rs":"55e2ddba00f002fac0e3ed1c43932423ea6682aaff95491542dce9562c81e217","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"efdfed8f750d6a6233a3a753be80bdb6e06ec9ccdfa5b9246f09aa1d39d3cffe","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"14f0bd6693967d4fedec904f7042bd51f2138cb843ec4df18c911b357417cdd2","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":"6523af60c0e4937ad374003c1653e9e721f5b6f11572c747732f76522d07d034","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"b449a5914d3175e0a390bad616370f28fe59efaee3b81c38fb6e556507c2711a","src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs":"ce31af8c04d1a1b384f55f80db14b5f74c59d02c94b3b30288411c9bca5eba04","src/unix/bsd/freebsdlike/freebsd/mod.rs":"a4fc19429762fac85106180e87c4d10a61b4c07563f4e844771fcde71c14fc51","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","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":"6132aa0973454379674ea6cbc77e6eace1e1032dd9f38182071388a036f1bc08","src/unix/bsd/freebsdlike/mod.rs":"9dbe0fcf66f13ba27f163d9f4362c25036ff1973a3b67244bcb3e8f39c3efbfd","src/unix/bsd/mod.rs":"67e0932ebcd1605045744c3f15286204cc547019b0a2696419da1c14c61393f5","src/unix/bsd/netbsdlike/mod.rs":"ceaec69f85bbe5beaf0b2dd73e0fd2b7fa49c0ea9727dcf51415f99bd2bc4b9c","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"b38fc046f9a40fea28bd26328b96629f4d5d63d7524936bd6af1865d401a8716","src/unix/bsd/netbsdlike/netbsd/arm.rs":"58cdbb70b0d6f536551f0f3bb3725d2d75c4690db12c26c034e7d6ec4a924452","src/unix/bsd/netbsdlike/netbsd/mod.rs":"6b30cadcf243eb6098cad6ec869f4739570df0f356aefd826ef1c347c146685c","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":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/mod.rs":"ac6fff797511b00659849242b997de4d9f948698b5677de928375fc84d2ac1f3","src/unix/bsd/netbsdlike/openbsd/sparc64.rs":"d04fd287afbaa2c5df9d48c94e8374a532a3ba491b424ddf018270c7312f4085","src/unix/bsd/netbsdlike/openbsd/x86.rs":"6f7f5c4fde2a2259eb547890cbd86570cea04ef85347d7569e94e679448bec87","src/unix/bsd/netbsdlike/openbsd/x86_64.rs":"e59b7fd65f68f8e857eec39e0c03bac1d3af6ddc26c9ba58494336b83659bb9b","src/unix/haiku/b32.rs":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"cb829d468fecc8dacf3f03f5808f0c265a62dc82e34a208a025a8b903027a121","src/unix/haiku/native.rs":"fd34e56a7b27591d83a980c92afefc543df9a2d4fe64c732d2b7d6aea31ac0a3","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":"d971b98530a96f5892f98e1edc3133cf278d1b3939d77ab0a27a6323e0961715","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/mod.rs":"8fe667d2b14abc5ac8aad32e16c3da24350471d8156eaea9ab4989f73dd9f9fc","src/unix/linux_like/android/b64/mod.rs":"5d94d05d8c10a748f0b1f67a4abaf4dd8415351e14e3bc6c84f6a46c8e18874c","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"06b22dc184e85a988ab969c75cadc52b9878faeab0eb9d21215878c95fe07c19","src/unix/linux_like/android/mod.rs":"9e79edebb5c7b1b62f0e253570d02338a50f06fdb2fd4b27488e0ae50871a836","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/mod.rs":"6ef97140ca6fb24125fdd0aacb986ef785aa21993229660d7f703f8875ebfe49","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"213e70ebed2703e14a9cf17666b21ecbf180b7bff7fa22fdbb36dbbd52df326d","src/unix/linux_like/linux/arch/generic/mod.rs":"ff1fe8fad4ea15d9bec3db25efcfcb4939190c5189f86cfa4d05825aa8c10956","src/unix/linux_like/linux/arch/mips/mod.rs":"e4a980b002105aaa057eb6568e1e2c6168ade5c00e13a31ef67e316ddffdb900","src/unix/linux_like/linux/arch/mod.rs":"466a29622e47c6c7f1500682b2eb17f5566dd81b322cd6348f0fdd355cec593a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"1789eb5b41f75c29239795124a4a7cdcf7c8d213b88cf581b2f5bda08d7cf15b","src/unix/linux_like/linux/arch/sparc/mod.rs":"ded708124ee610267d011dee31fb02d1ec697c334aa822776ec95a7ddf6fc541","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"3fed009dc9af3cc81be7087da9d2d7d1f39845e4497e290259c5cdbae25f039d","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"07adf9f4b96854062db518aaf08521fde0ad4a21a5c049efccba437bd97b2b5a","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"1cb5c0c9df3af2bbe131a91593583259fac9118931744c8435e197a394eb0462","src/unix/linux_like/linux/gnu/b32/mod.rs":"794dbcbae7dae8fd6b0b814573243197ceb532b56ef0772ad86b4b401478fcd9","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"0cd7348badb9c4f8a0db31a2503b30c456a2bfcc7a0e5919762b1e12f912c5ad","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"9c628cd97806181dc4d34b072f63fe1eb42f08108712002e0628ffe27f2fa93f","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"1bcec269a8416ccc48a384ca5765eaaa23f30f39f32311f50008ef4eeadafb2f","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"5317dbf2323577b89370bbee3894882b89d8333176db4f7b271ddc2f036ef43c","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"21a21503ef2e095f4371044915d4bfb07a8578011cb5c713cd9f45947b0b5730","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"e78c3cd197f44832338b414d1a9bc0d194f44c74db77bd7bf830c1fff62b2690","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"c3730792dabcc166d8fd22929ef2633d49bc626875382dfcd401e8e125fb7a84","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"68bcb71bbfccb4e8648948e494366d94767ce96f36daab9c1329375cdd32a459","src/unix/linux_like/linux/gnu/b64/mod.rs":"6336065423c26b59681fd2ce77f1117ea36af13e163fdadaefd108bd8191e8c8","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"dbb8905e363ed4a2dfb984554ad9b6389d27f6a2d599ec2d80e38a6c7551a019","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"18edaa89c9746125863ff53182e0ef32cb1e1612e1ed9a2672558a9de85440e9","src/unix/linux_like/linux/gnu/b64/s390x.rs":"d9bb4e524e70d6fef49e0f77d89a92f478fd95d9a1aea32f4dc845275a7465d4","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"26fda11bdce99372c2c246e60866b56d98beb9fb49a2f6b69347ecfd03d18255","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"5a5ce7c5c92f60d8900dce63d363a38f3126aaf5be981710e172bec96ef95ac6","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"f775ac2b754f90b63053fe22afe1d19d306b5404995568d6805baa9249fb617f","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"4ba1b58468f55254717366f50fdfd3e4114fde6dc442a56681926c4d7e5b6b0d","src/unix/linux_like/linux/gnu/mod.rs":"5597b67f1cfc4e2012540a8cebf17ff139363c0835834ca8f308952ffe6e99c9","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"d6f8e72a6d67e0af6d1f7a09420f92906a52ae226a66f43268064249ce7019df","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"6255abe2ee04986832d12b7b2190589580f2a43e9bfb285b32b5747227f62727","src/unix/linux_like/linux/musl/b32/hexagon.rs":"a8811791809672be8338e6e27d1c4fcf383c2f26585be8bf9ab2923b219de032","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"b9e9ff42363ebbb884ddf6445129ec4164471df45846874fc08f5f458e659254","src/unix/linux_like/linux/musl/b32/mod.rs":"8ede3985e6243882814ce91e8ce543e7edbafc0cee5932816072b6f14207a671","src/unix/linux_like/linux/musl/b32/powerpc.rs":"4592dc5f1f2fe888dfef85fa862d42d168e73a2c6f4fc052b58287d0f4d4ffcd","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"a19a8decfab185af3cebd34aae4b15082e7552be573904b8c1a3f0c0e493ef34","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"798a9229d70ce235394f2dd625f6c4c1e10519a94382dc5b091952b638ae2928","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"a73035c6d9b776f13b839008e15c04c2c53455571efd06664affcb047e457112","src/unix/linux_like/linux/musl/b64/mips64.rs":"2744895451f3a777fbe54f7f2695be53310b965fd62084c9b7e9121c7fe28346","src/unix/linux_like/linux/musl/b64/mod.rs":"d18abc0aeba2e26342bf3416a4dba0836db2bb0ee013b0a39629475cf8640289","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"e5a55525b42493923956d668f978fb45e22d51deea00ce5edbfddf76ff19c741","src/unix/linux_like/linux/musl/b64/s390x.rs":"03dfec6794d93cb31a7c52b2d53a0973755168f91f8fa437cc5dbd54882c8ee7","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"0dd168f5a6881f32e5239fb312b23cf137b800d0ff323286a92c8a2c382b5456","src/unix/linux_like/linux/musl/mod.rs":"0602b1ee75b70eea30ad64234c9c6e772b6a73262ce886971781a2bcf923f9b4","src/unix/linux_like/linux/no_align.rs":"5ed04c53bf9d27da9b4d65ba7625c6ac53330162683d1b3df98950caafa3507b","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":"9b691eeec0a9bf7b2abb87e09062d2c148d18e11c96ecad0edd0b74d1d0509fd","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":"18753a99b820d69e062e3ba22a63fa86577b6dcc42f740479c7be1a4c658e1be","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":"e3085ba56cfbc528d7c3c55065880603238c333b6047ef51c58177508a487fcd","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"656fbf5157ab6d06fc365a8353b138818ad5b8429ea5628ff35a3972c63a1a7c","src/unix/linux_like/linux/uclibc/mod.rs":"22f712c3e08fd8cb37e274718de1bac09966a4cd4b0f018f28737bc30940b8af","src/unix/linux_like/linux/uclibc/no_align.rs":"3f28637046524618adaa1012e26cb7ffe94b9396e6b518cccdc69d59f274d709","src/unix/linux_like/linux/uclibc/x86_64/l4re.rs":"bb31053d6403091e11f95ac2203982f279f8b984a19adf30796878c45fdd8c25","src/unix/linux_like/linux/uclibc/x86_64/mod.rs":"02e21c0550a423a3f6db0a0af6a0f37cf5937feb2562a490e0ad0e09a8d9fc77","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"9f6eadebed153e31777482932dae2f3fd3471d5b5465099f98f1e2a9429922fe","src/unix/mod.rs":"0550f5ed6a8292e62781cdfcca54b0f2652dd279314d1b73db555fccfb059499","src/unix/newlib/aarch64/mod.rs":"bb269c1468a9676442554600e87417079a787fe6220dfc23b3109639259e8710","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"c71be856bfd7f576b2db28af9f680211cbe6c1cac7d537bbc8020b39591af07c","src/unix/newlib/espidf/mod.rs":"c198cb4beccdab483be61c102da74dc51ac80f766797e33021f3110394ed5a3d","src/unix/newlib/mod.rs":"07c282da3fedf04d061c70ab918b561ba44e5d67670e0b04664505afc9c5979f","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"2d0f7af28b47f7a2a6c210ebd1c1f33ed8eac62e56b5af2b856de2ad3fdc5187","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/redox/mod.rs":"251ade5cbe9d648ba7186f58dfe7d4fd8e08be1ab9d0d51bba13e0bf3a0207d0","src/unix/solarish/compat.rs":"b07a5bfac925eb012003a459ba6bddbd3bfa9c44b3394da2ac5a602e54beae9c","src/unix/solarish/illumos.rs":"be7cf5334fc8f2c6bc1b856288e53af7f90a92bd64793eb19b60b660383e508c","src/unix/solarish/mod.rs":"a5e87e2197011ceae4d6aa1bc8a16d2e01dd39583448e6809f32ba58143baee9","src/unix/solarish/solaris.rs":"65b005453aefa9b9d4fc860fe77cfec80d8c97a51342b15daf55fc3e808bb384","src/vxworks/aarch64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/arm.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/mod.rs":"2689e3cad6461682892fcae8a23c0c51600e4750c147dd8d7538c6c6c876b7ec","src/vxworks/powerpc.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/powerpc64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/x86.rs":"552f007f38317620b23889cb7c49d1d115841252439060122f52f434fbc6e5ba","src/vxworks/x86_64.rs":"018d92be3ad628a129eff9f2f5dfbc0883d8b8e5f2fa917b900a7f98ed6b514a","src/wasi.rs":"3800e710a40322fe0229f7665b18542dc066680c4d151e3c4f29f82202a1c294","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"2b960d585c2fc0c82659cc4caeaa3268e67a8de0a0390d084629eefd39a14c8d","src/windows/msvc.rs":"ea6d87a6a9cd668261b1c043e7c36cf599e80b5d09f6e4502e85daa4797c7927","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"a7f823d141fe0a24df1e23b4af4e3c7ba9e5966ec514ea068c93024aa7deb765"}
-\ No newline at end of file
-+{"files":{"CONTRIBUTING.md":"752eea5a703d11b485c6b5f195f51bd2c79aa5159b619ce09555c779e1fb586b","Cargo.toml":"9d8cd25bb60fc4bb42c4b034bfa26ba45a691fd7cae155dab8f8b5819fe12647","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"8228847944f1332882fbb00275b6f30e4a8aad08a13569c25d52cac012cc2a47","build.rs":"8e0e8d33cc9e7c25cde75c2b502420f943266a681024169f94084774b422681d","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"34c60f12ec5eeb90f13ec3b954427532111c2446e69617616a97aefc1086a9f1","src/fuchsia/aarch64.rs":"378776a9e40766154a54c94c2a7b4675b5c302a38e6e42da99e67bfbaee60e56","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"975b86cbe0335d64082ca88bb24f0e3402371f6f5b33e940c4e12ce4342bb658","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":"d4f7452c0fe720f3a961b918b74ec86d19cef33e6b4aac08efbbad6f6d818e09","src/macros.rs":"7844312c233a6889fa15395fe3106f6a8f6229211104a92f33ea3c9536eef763","src/psp.rs":"dd31aabd46171d474ec5828372e28588935120e7355c90c105360d8fa9264c1c","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/switch.rs":"9da3dd39b3de45a7928789926e8572d00e1e11a39e6f7289a1349aadce90edba","src/unix/align.rs":"2cdc7c826ef7ae61f5171c5ae8c445a743d86f1a7f2d9d7e4ceeec56d6874f65","src/unix/bsd/apple/b32/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b32/mod.rs":"6a4ce300da0d2b0db04b18548286603ffe4b47d679a41cf60f1902895894aa1f","src/unix/bsd/apple/b64/aarch64/align.rs":"f0c321265dd7671f16106b84951ac7dd77ed2e65c6623cbf2d29e76531984770","src/unix/bsd/apple/b64/aarch64/mod.rs":"46d5d061c7a74cbc09cbdfb3bee9a600867bf4e04c0e4d0ca6c817e6033b32e1","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":"cc6878dd130c3f255418e4da74992ae9ba6a3cdb0530772de76c518077d3b12a","src/unix/bsd/apple/mod.rs":"55e2ddba00f002fac0e3ed1c43932423ea6682aaff95491542dce9562c81e217","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"efdfed8f750d6a6233a3a753be80bdb6e06ec9ccdfa5b9246f09aa1d39d3cffe","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"14f0bd6693967d4fedec904f7042bd51f2138cb843ec4df18c911b357417cdd2","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":"6523af60c0e4937ad374003c1653e9e721f5b6f11572c747732f76522d07d034","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"b449a5914d3175e0a390bad616370f28fe59efaee3b81c38fb6e556507c2711a","src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs":"ce31af8c04d1a1b384f55f80db14b5f74c59d02c94b3b30288411c9bca5eba04","src/unix/bsd/freebsdlike/freebsd/mod.rs":"a4fc19429762fac85106180e87c4d10a61b4c07563f4e844771fcde71c14fc51","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","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":"6132aa0973454379674ea6cbc77e6eace1e1032dd9f38182071388a036f1bc08","src/unix/bsd/freebsdlike/mod.rs":"9dbe0fcf66f13ba27f163d9f4362c25036ff1973a3b67244bcb3e8f39c3efbfd","src/unix/bsd/mod.rs":"67e0932ebcd1605045744c3f15286204cc547019b0a2696419da1c14c61393f5","src/unix/bsd/netbsdlike/mod.rs":"ceaec69f85bbe5beaf0b2dd73e0fd2b7fa49c0ea9727dcf51415f99bd2bc4b9c","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"b38fc046f9a40fea28bd26328b96629f4d5d63d7524936bd6af1865d401a8716","src/unix/bsd/netbsdlike/netbsd/arm.rs":"58cdbb70b0d6f536551f0f3bb3725d2d75c4690db12c26c034e7d6ec4a924452","src/unix/bsd/netbsdlike/netbsd/mod.rs":"6b30cadcf243eb6098cad6ec869f4739570df0f356aefd826ef1c347c146685c","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":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/mod.rs":"ac6fff797511b00659849242b997de4d9f948698b5677de928375fc84d2ac1f3","src/unix/bsd/netbsdlike/openbsd/sparc64.rs":"d04fd287afbaa2c5df9d48c94e8374a532a3ba491b424ddf018270c7312f4085","src/unix/bsd/netbsdlike/openbsd/x86.rs":"6f7f5c4fde2a2259eb547890cbd86570cea04ef85347d7569e94e679448bec87","src/unix/bsd/netbsdlike/openbsd/x86_64.rs":"e59b7fd65f68f8e857eec39e0c03bac1d3af6ddc26c9ba58494336b83659bb9b","src/unix/haiku/b32.rs":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"cb829d468fecc8dacf3f03f5808f0c265a62dc82e34a208a025a8b903027a121","src/unix/haiku/native.rs":"fd34e56a7b27591d83a980c92afefc543df9a2d4fe64c732d2b7d6aea31ac0a3","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":"d971b98530a96f5892f98e1edc3133cf278d1b3939d77ab0a27a6323e0961715","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/mod.rs":"8fe667d2b14abc5ac8aad32e16c3da24350471d8156eaea9ab4989f73dd9f9fc","src/unix/linux_like/android/b64/mod.rs":"5d94d05d8c10a748f0b1f67a4abaf4dd8415351e14e3bc6c84f6a46c8e18874c","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"06b22dc184e85a988ab969c75cadc52b9878faeab0eb9d21215878c95fe07c19","src/unix/linux_like/android/mod.rs":"9e79edebb5c7b1b62f0e253570d02338a50f06fdb2fd4b27488e0ae50871a836","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/mod.rs":"6ef97140ca6fb24125fdd0aacb986ef785aa21993229660d7f703f8875ebfe49","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"213e70ebed2703e14a9cf17666b21ecbf180b7bff7fa22fdbb36dbbd52df326d","src/unix/linux_like/linux/arch/generic/mod.rs":"ff1fe8fad4ea15d9bec3db25efcfcb4939190c5189f86cfa4d05825aa8c10956","src/unix/linux_like/linux/arch/mips/mod.rs":"e4a980b002105aaa057eb6568e1e2c6168ade5c00e13a31ef67e316ddffdb900","src/unix/linux_like/linux/arch/mod.rs":"466a29622e47c6c7f1500682b2eb17f5566dd81b322cd6348f0fdd355cec593a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"1789eb5b41f75c29239795124a4a7cdcf7c8d213b88cf581b2f5bda08d7cf15b","src/unix/linux_like/linux/arch/sparc/mod.rs":"ded708124ee610267d011dee31fb02d1ec697c334aa822776ec95a7ddf6fc541","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"3fed009dc9af3cc81be7087da9d2d7d1f39845e4497e290259c5cdbae25f039d","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"07adf9f4b96854062db518aaf08521fde0ad4a21a5c049efccba437bd97b2b5a","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"1cb5c0c9df3af2bbe131a91593583259fac9118931744c8435e197a394eb0462","src/unix/linux_like/linux/gnu/b32/mod.rs":"794dbcbae7dae8fd6b0b814573243197ceb532b56ef0772ad86b4b401478fcd9","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"0cd7348badb9c4f8a0db31a2503b30c456a2bfcc7a0e5919762b1e12f912c5ad","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"9c628cd97806181dc4d34b072f63fe1eb42f08108712002e0628ffe27f2fa93f","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"1bcec269a8416ccc48a384ca5765eaaa23f30f39f32311f50008ef4eeadafb2f","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"5317dbf2323577b89370bbee3894882b89d8333176db4f7b271ddc2f036ef43c","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"21a21503ef2e095f4371044915d4bfb07a8578011cb5c713cd9f45947b0b5730","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"e78c3cd197f44832338b414d1a9bc0d194f44c74db77bd7bf830c1fff62b2690","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"c3730792dabcc166d8fd22929ef2633d49bc626875382dfcd401e8e125fb7a84","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"68bcb71bbfccb4e8648948e494366d94767ce96f36daab9c1329375cdd32a459","src/unix/linux_like/linux/gnu/b64/mod.rs":"6336065423c26b59681fd2ce77f1117ea36af13e163fdadaefd108bd8191e8c8","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"dbb8905e363ed4a2dfb984554ad9b6389d27f6a2d599ec2d80e38a6c7551a019","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"18edaa89c9746125863ff53182e0ef32cb1e1612e1ed9a2672558a9de85440e9","src/unix/linux_like/linux/gnu/b64/s390x.rs":"d9bb4e524e70d6fef49e0f77d89a92f478fd95d9a1aea32f4dc845275a7465d4","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"26fda11bdce99372c2c246e60866b56d98beb9fb49a2f6b69347ecfd03d18255","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"5a5ce7c5c92f60d8900dce63d363a38f3126aaf5be981710e172bec96ef95ac6","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"f775ac2b754f90b63053fe22afe1d19d306b5404995568d6805baa9249fb617f","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"4ba1b58468f55254717366f50fdfd3e4114fde6dc442a56681926c4d7e5b6b0d","src/unix/linux_like/linux/gnu/mod.rs":"5597b67f1cfc4e2012540a8cebf17ff139363c0835834ca8f308952ffe6e99c9","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"d6f8e72a6d67e0af6d1f7a09420f92906a52ae226a66f43268064249ce7019df","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"6255abe2ee04986832d12b7b2190589580f2a43e9bfb285b32b5747227f62727","src/unix/linux_like/linux/musl/b32/hexagon.rs":"a8811791809672be8338e6e27d1c4fcf383c2f26585be8bf9ab2923b219de032","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"b9e9ff42363ebbb884ddf6445129ec4164471df45846874fc08f5f458e659254","src/unix/linux_like/linux/musl/b32/mod.rs":"8ede3985e6243882814ce91e8ce543e7edbafc0cee5932816072b6f14207a671","src/unix/linux_like/linux/musl/b32/powerpc.rs":"4592dc5f1f2fe888dfef85fa862d42d168e73a2c6f4fc052b58287d0f4d4ffcd","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"a19a8decfab185af3cebd34aae4b15082e7552be573904b8c1a3f0c0e493ef34","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"798a9229d70ce235394f2dd625f6c4c1e10519a94382dc5b091952b638ae2928","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"a73035c6d9b776f13b839008e15c04c2c53455571efd06664affcb047e457112","src/unix/linux_like/linux/musl/b64/mips64.rs":"2744895451f3a777fbe54f7f2695be53310b965fd62084c9b7e9121c7fe28346","src/unix/linux_like/linux/musl/b64/mod.rs":"d847206d9f2d594c8febe780a938cdccf40d985dafc11e90f235947735a09bac","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"e5a55525b42493923956d668f978fb45e22d51deea00ce5edbfddf76ff19c741","src/unix/linux_like/linux/musl/b64/s390x.rs":"03dfec6794d93cb31a7c52b2d53a0973755168f91f8fa437cc5dbd54882c8ee7","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"0dd168f5a6881f32e5239fb312b23cf137b800d0ff323286a92c8a2c382b5456","src/unix/linux_like/linux/musl/mod.rs":"b69394bbcab5c452d3d3c04541a35702b9394f52cf63628449a5a2b61059517a","src/unix/linux_like/linux/no_align.rs":"5ed04c53bf9d27da9b4d65ba7625c6ac53330162683d1b3df98950caafa3507b","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":"9b691eeec0a9bf7b2abb87e09062d2c148d18e11c96ecad0edd0b74d1d0509fd","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":"18753a99b820d69e062e3ba22a63fa86577b6dcc42f740479c7be1a4c658e1be","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":"e3085ba56cfbc528d7c3c55065880603238c333b6047ef51c58177508a487fcd","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"656fbf5157ab6d06fc365a8353b138818ad5b8429ea5628ff35a3972c63a1a7c","src/unix/linux_like/linux/uclibc/mod.rs":"22f712c3e08fd8cb37e274718de1bac09966a4cd4b0f018f28737bc30940b8af","src/unix/linux_like/linux/uclibc/no_align.rs":"3f28637046524618adaa1012e26cb7ffe94b9396e6b518cccdc69d59f274d709","src/unix/linux_like/linux/uclibc/x86_64/l4re.rs":"bb31053d6403091e11f95ac2203982f279f8b984a19adf30796878c45fdd8c25","src/unix/linux_like/linux/uclibc/x86_64/mod.rs":"02e21c0550a423a3f6db0a0af6a0f37cf5937feb2562a490e0ad0e09a8d9fc77","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"9f6eadebed153e31777482932dae2f3fd3471d5b5465099f98f1e2a9429922fe","src/unix/mod.rs":"0550f5ed6a8292e62781cdfcca54b0f2652dd279314d1b73db555fccfb059499","src/unix/newlib/aarch64/mod.rs":"bb269c1468a9676442554600e87417079a787fe6220dfc23b3109639259e8710","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"c71be856bfd7f576b2db28af9f680211cbe6c1cac7d537bbc8020b39591af07c","src/unix/newlib/espidf/mod.rs":"c198cb4beccdab483be61c102da74dc51ac80f766797e33021f3110394ed5a3d","src/unix/newlib/mod.rs":"07c282da3fedf04d061c70ab918b561ba44e5d67670e0b04664505afc9c5979f","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"2d0f7af28b47f7a2a6c210ebd1c1f33ed8eac62e56b5af2b856de2ad3fdc5187","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/redox/mod.rs":"251ade5cbe9d648ba7186f58dfe7d4fd8e08be1ab9d0d51bba13e0bf3a0207d0","src/unix/solarish/compat.rs":"b07a5bfac925eb012003a459ba6bddbd3bfa9c44b3394da2ac5a602e54beae9c","src/unix/solarish/illumos.rs":"be7cf5334fc8f2c6bc1b856288e53af7f90a92bd64793eb19b60b660383e508c","src/unix/solarish/mod.rs":"a5e87e2197011ceae4d6aa1bc8a16d2e01dd39583448e6809f32ba58143baee9","src/unix/solarish/solaris.rs":"65b005453aefa9b9d4fc860fe77cfec80d8c97a51342b15daf55fc3e808bb384","src/vxworks/aarch64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/arm.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/mod.rs":"2689e3cad6461682892fcae8a23c0c51600e4750c147dd8d7538c6c6c876b7ec","src/vxworks/powerpc.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/powerpc64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/x86.rs":"552f007f38317620b23889cb7c49d1d115841252439060122f52f434fbc6e5ba","src/vxworks/x86_64.rs":"018d92be3ad628a129eff9f2f5dfbc0883d8b8e5f2fa917b900a7f98ed6b514a","src/wasi.rs":"3800e710a40322fe0229f7665b18542dc066680c4d151e3c4f29f82202a1c294","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"2b960d585c2fc0c82659cc4caeaa3268e67a8de0a0390d084629eefd39a14c8d","src/windows/msvc.rs":"ea6d87a6a9cd668261b1c043e7c36cf599e80b5d09f6e4502e85daa4797c7927","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"a7f823d141fe0a24df1e23b4af4e3c7ba9e5966ec514ea068c93024aa7deb765"}
diff --git a/poky/meta/recipes-devtools/rust/libstd-rs_1.56.0.bb b/poky/meta/recipes-devtools/rust/libstd-rs_1.56.0.bb
deleted file mode 100644
index e50665e..0000000
--- a/poky/meta/recipes-devtools/rust/libstd-rs_1.56.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require rust-source.inc
-require libstd-rs.inc
-
-SRC_URI += " \
-    file://0005-Add-base-definitions-for-riscv64-musl-libc.patch;patchdir=../../ \
-    file://0006-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set.patch;patchdir=../../ \
-    file://0007-FIXUP-Correct-definitions-to-match-musl.patch;patchdir=../../ \
-    file://0008-Update-checksums-for-modified-files-for-rust.patch;patchdir=../../ \
-"
-# libstd moved from src/libstd to library/std in 1.47+
-S = "${RUSTSRC}/library/std"
diff --git a/poky/meta/recipes-devtools/rust/libstd-rs_1.58.0.bb b/poky/meta/recipes-devtools/rust/libstd-rs_1.58.0.bb
new file mode 100644
index 0000000..141fea1
--- /dev/null
+++ b/poky/meta/recipes-devtools/rust/libstd-rs_1.58.0.bb
@@ -0,0 +1,12 @@
+require rust-source.inc
+require libstd-rs.inc
+
+SRC_URI += " \
+    file://0001-Add-base-definitions-for-riscv64-musl.patch;patchdir=../../ \
+    file://0002-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set.patch;patchdir=../../ \
+    file://0003-FIXUP-Correct-definitions-to-match-musl.patch;patchdir=../../ \
+    file://0004-Update-checksums-for-modified-files-for-rust.patch;patchdir=../../ \
+    "
+
+# libstd moved from src/libstd to library/std in 1.47+
+S = "${RUSTSRC}/library/std"
diff --git a/poky/meta/recipes-devtools/rust/rust-cross-canadian_1.56.0.bb b/poky/meta/recipes-devtools/rust/rust-cross-canadian_1.58.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/rust/rust-cross-canadian_1.56.0.bb
rename to poky/meta/recipes-devtools/rust/rust-cross-canadian_1.58.0.bb
diff --git a/poky/meta/recipes-devtools/rust/rust-cross.inc b/poky/meta/recipes-devtools/rust/rust-cross.inc
index bb625f4..a77f7d5 100644
--- a/poky/meta/recipes-devtools/rust/rust-cross.inc
+++ b/poky/meta/recipes-devtools/rust/rust-cross.inc
@@ -34,7 +34,7 @@
 DEPENDS += "rust-native"
 
 PROVIDES = "virtual/${TARGET_PREFIX}rust"
-PN = "rust-cross-${TARGET_ARCH}-${TCLIBC}"
+PN = "rust-cross-${TUNE_PKGARCH}-${TCLIBC}"
 
 # In the cross compilation case, rustc doesn't seem to get the rpath quite
 # right. It manages to include '../../lib/${TARGET_PREFIX}', but doesn't
diff --git a/poky/meta/recipes-devtools/rust/rust-cross_1.56.0.bb b/poky/meta/recipes-devtools/rust/rust-cross_1.58.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/rust/rust-cross_1.56.0.bb
rename to poky/meta/recipes-devtools/rust/rust-cross_1.58.0.bb
diff --git a/poky/meta/recipes-devtools/rust/rust-llvm.inc b/poky/meta/recipes-devtools/rust/rust-llvm.inc
index 0f8fb78..5c2ccda 100644
--- a/poky/meta/recipes-devtools/rust/rust-llvm.inc
+++ b/poky/meta/recipes-devtools/rust/rust-llvm.inc
@@ -2,7 +2,8 @@
 LICENSE ?= "Apache-2.0-with-LLVM-exception"
 HOMEPAGE = "http://www.rust-lang.org"
 
-SRC_URI += "file://0002-llvm-allow-env-override-of-exe-path.patch;striplevel=2"
+SRC_URI += "file://0002-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
+            file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2"
 
 S = "${RUSTSRC}/src/llvm-project/llvm"
 
diff --git a/poky/meta/recipes-devtools/rust/rust-llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch b/poky/meta/recipes-devtools/rust/rust-llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch
new file mode 100644
index 0000000..48af6fc
--- /dev/null
+++ b/poky/meta/recipes-devtools/rust/rust-llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch
@@ -0,0 +1,31 @@
+From 86940d87026432683fb6741cd8a34d3b9b18e40d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 27 Nov 2020 10:11:08 +0000
+Subject: [PATCH] AsmMatcherEmitter: sort ClassInfo lists by name as well
+
+Otherwise, there are instances which are identical in
+every other field and therefore sort non-reproducibly
+(which breaks binary and source reproducibiliy).
+
+Upstream-Status: Submitted [https://reviews.llvm.org/D97477]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ llvm/utils/TableGen/AsmMatcherEmitter.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/llvm/utils/TableGen/AsmMatcherEmitter.cpp b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
+index ccf0959389b..1f801e83b7d 100644
+--- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp
++++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
+@@ -359,7 +359,10 @@ public:
+     // name of a class shouldn't be significant. However, some of the backends
+     // accidentally rely on this behaviour, so it will have to stay like this
+     // until they are fixed.
+-    return ValueName < RHS.ValueName;
++    if (ValueName != RHS.ValueName)
++        return ValueName < RHS.ValueName;
++    // All else being equal, we should sort by name, for source and binary reproducibility
++    return Name < RHS.Name;
+   }
+ };
+ 
diff --git a/poky/meta/recipes-devtools/rust/rust-llvm/0002-llvm-allow-env-override-of-exe-path.patch b/poky/meta/recipes-devtools/rust/rust-llvm/0002-llvm-allow-env-override-of-exe-path.patch
index 943c211..9be2667 100644
--- a/poky/meta/recipes-devtools/rust/rust-llvm/0002-llvm-allow-env-override-of-exe-path.patch
+++ b/poky/meta/recipes-devtools/rust/rust-llvm/0002-llvm-allow-env-override-of-exe-path.patch
@@ -8,6 +8,7 @@
 than from the native sysroot. Thus provide an env override for calling
 llvm-config from a target sysroot.
 
+Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Martin Kelly <mkelly@xevo.com>
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
diff --git a/poky/meta/recipes-devtools/rust/rust-llvm_1.56.0.bb b/poky/meta/recipes-devtools/rust/rust-llvm_1.58.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/rust/rust-llvm_1.56.0.bb
rename to poky/meta/recipes-devtools/rust/rust-llvm_1.58.0.bb
diff --git a/poky/meta/recipes-devtools/rust/rust-snapshot.inc b/poky/meta/recipes-devtools/rust/rust-snapshot.inc
index 18e98d7..74b5582 100644
--- a/poky/meta/recipes-devtools/rust/rust-snapshot.inc
+++ b/poky/meta/recipes-devtools/rust/rust-snapshot.inc
@@ -2,17 +2,17 @@
 ## snapshot info is taken from rust/src/stage0.txt
 ## TODO: find a way to add additional SRC_URIs based on the contents of an
 ##       earlier SRC_URI.
-RS_VERSION = "1.56.0"
-CARGO_VERSION = "1.56.0"
+RS_VERSION = "1.57.0"
+CARGO_VERSION = "1.57.0"
 
 # TODO: Add hashes for other architecture toolchains as well. Make a script?
-SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "f693e4f41a959d62528e0043b0b010c4815fb9f5887267ae34ff8b860f8ec4ae"
-SRC_URI[rustc-snapshot-x86_64.sha256sum] = "2a5f919e2036496c02ab4707a5eb8bd8a4ce6ea589e01cb39f25d213a26dcdfe"
-SRC_URI[cargo-snapshot-x86_64.sha256sum] = "f972125810d2db7df2e0af56d9f6a3dcdacc52d983bdf0ca17309b45fc44209b"
+SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "ccdc72d06c90841b7227ec3630337881eeda3da5fbe87328d2e9d705f6f8016c"
+SRC_URI[rustc-snapshot-x86_64.sha256sum] = "c42f40c5279a3a9d539cae93dbcab9d333777ad9a60a5b9f1086b874ef63db86"
+SRC_URI[cargo-snapshot-x86_64.sha256sum] = "ed2013713ae742895af5df8d91c5430ba9ba3c781e3bc7f3471b220cc06d565d"
 
-SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "3cd1c69c618e5efaf578a156c2a950c93964f9b47ba4d705d5700bdc64880231"
-SRC_URI[rustc-snapshot-aarch64.sha256sum] = "0d2491a59f697d2ea52fc429b8d4665acb5f79b0e16703f3604b61b8aa68d1c4"
-SRC_URI[cargo-snapshot-aarch64.sha256sum] = "9d97cd655845572846c058577f68ea74b6111f8ea7649db308f786475f764a09"
+SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "3618da916a0f92f241cf1d67d04bb57835b303cf2047b57dc2f2487b89a4fc1f"
+SRC_URI[rustc-snapshot-aarch64.sha256sum] = "f26811e48d03c56c125de03d389e1ae7c6df36990953c1670c6a5676bc12d4cb"
+SRC_URI[cargo-snapshot-aarch64.sha256sum] = "6d11cd94618d80cda273eeeae7285980445f61a49ebacc616777b482a41cbf3f"
 
 SRC_URI += " \
     https://static.rust-lang.org/dist/${RUST_STD_SNAPSHOT}.tar.xz;name=rust-std-snapshot-${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 326a592..63ba02b 100644
--- a/poky/meta/recipes-devtools/rust/rust-source.inc
+++ b/poky/meta/recipes-devtools/rust/rust-source.inc
@@ -1,5 +1,5 @@
 SRC_URI += "https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz;name=rust"
-SRC_URI[rust.sha256sum] = "f13468889833c88e744ad579c5d8fbb7ecb53216159b54481a90e5dcdaa9e320"
+SRC_URI[rust.sha256sum] = "37dce222b82a438e550ccd5e45ca9bad1c57aa7acc7adfec6a897c4ff94b6485"
 
 RUSTSRC = "${WORKDIR}/rustc-${PV}-src"
 
diff --git a/poky/meta/recipes-devtools/rust/rust-tools-cross-canadian_1.56.0.bb b/poky/meta/recipes-devtools/rust/rust-tools-cross-canadian_1.58.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/rust/rust-tools-cross-canadian_1.56.0.bb
rename to poky/meta/recipes-devtools/rust/rust-tools-cross-canadian_1.58.0.bb
diff --git a/poky/meta/recipes-devtools/rust/rust_1.56.0.bb b/poky/meta/recipes-devtools/rust/rust_1.56.0.bb
deleted file mode 100644
index 036fb43..0000000
--- a/poky/meta/recipes-devtools/rust/rust_1.56.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require rust-target.inc
-require rust-source.inc
-require rust-snapshot.inc
-
-INSANE_SKIP:${PN}:class-native = "already-stripped"
-
-do_compile () {
-    rust_runx build --stage 2
-}
-
-rust_do_install() {
-    rust_runx install
-}
-
-python () {
-    pn = d.getVar('PN')
-
-    if not pn.endswith("-native"):
-        raise bb.parse.SkipRecipe("Rust recipe doesn't work for target builds at this time. Fixes welcome.")
-}
diff --git a/poky/meta/recipes-devtools/rust/rust_1.58.0.bb b/poky/meta/recipes-devtools/rust/rust_1.58.0.bb
new file mode 100644
index 0000000..b505ad4
--- /dev/null
+++ b/poky/meta/recipes-devtools/rust/rust_1.58.0.bb
@@ -0,0 +1,21 @@
+require rust-target.inc
+require rust-source.inc
+require rust-snapshot.inc
+
+INSANE_SKIP:${PN}:class-native = "already-stripped"
+
+do_compile () {
+    rust_runx build --stage 2
+}
+
+rust_do_install() {
+    rust_runx install
+}
+
+python () {
+    pn = d.getVar('PN')
+
+    if not pn.endswith("-native"):
+        raise bb.parse.SkipRecipe("Rust recipe doesn't work for target builds at this time. Fixes welcome.")
+}
+
diff --git a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072-requisite-1.patch b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072-requisite-1.patch
new file mode 100644
index 0000000..d01b5c6
--- /dev/null
+++ b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072-requisite-1.patch
@@ -0,0 +1,135 @@
+The commit is required by the fix for CVE-2021-41072.
+
+Upstream-Status: Backport [https://github.com/plougher/squashfs-tools/commit/80b8441]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From 80b8441a37fcf8bf07dacf24d9d6c6459a0f6e36 Mon Sep 17 00:00:00 2001
+From: Phillip Lougher <phillip@squashfs.org.uk>
+Date: Sun, 12 Sep 2021 19:58:19 +0100
+Subject: [PATCH] unsquashfs: use squashfs_closedir() to delete directory
+
+Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
+---
+ squashfs-tools/unsquash-1.c    |  3 +--
+ squashfs-tools/unsquash-1234.c | 11 +++++++++--
+ squashfs-tools/unsquash-2.c    |  3 +--
+ squashfs-tools/unsquash-3.c    |  3 +--
+ squashfs-tools/unsquash-4.c    |  3 +--
+ squashfs-tools/unsquashfs.c    |  7 -------
+ squashfs-tools/unsquashfs.h    |  1 +
+ 7 files changed, 14 insertions(+), 17 deletions(-)
+
+diff --git a/squashfs-tools/unsquash-1.c b/squashfs-tools/unsquash-1.c
+index acba821..7598499 100644
+--- a/squashfs-tools/unsquash-1.c
++++ b/squashfs-tools/unsquash-1.c
+@@ -373,8 +373,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 	return dir;
+ 
+ corrupted:
+-	free(dir->dirs);
+-	free(dir);
++	squashfs_closedir(dir);
+ 	return NULL;
+ }
+ 
+diff --git a/squashfs-tools/unsquash-1234.c b/squashfs-tools/unsquash-1234.c
+index c2d4f42..0c8dfbb 100644
+--- a/squashfs-tools/unsquash-1234.c
++++ b/squashfs-tools/unsquash-1234.c
+@@ -25,8 +25,8 @@
+  * unsquash-4.
+  */
+ 
+-#define TRUE 1
+-#define FALSE 0
++#include "unsquashfs.h"
++
+ /*
+  * Check name for validity, name should not
+  *  - be ".", "./", or
+@@ -56,3 +56,10 @@ int check_name(char *name, int size)
+ 
+ 	return TRUE;
+ }
++
++
++void squashfs_closedir(struct dir *dir)
++{
++	free(dir->dirs);
++	free(dir);
++}
+diff --git a/squashfs-tools/unsquash-2.c b/squashfs-tools/unsquash-2.c
+index 0746b3d..86f62ba 100644
+--- a/squashfs-tools/unsquash-2.c
++++ b/squashfs-tools/unsquash-2.c
+@@ -465,8 +465,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 	return dir;
+ 
+ corrupted:
+-	free(dir->dirs);
+-	free(dir);
++	squashfs_closedir(dir);
+ 	return NULL;
+ }
+ 
+diff --git a/squashfs-tools/unsquash-3.c b/squashfs-tools/unsquash-3.c
+index 094caaa..c04aa9e 100644
+--- a/squashfs-tools/unsquash-3.c
++++ b/squashfs-tools/unsquash-3.c
+@@ -499,8 +499,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 	return dir;
+ 
+ corrupted:
+-	free(dir->dirs);
+-	free(dir);
++	squashfs_closedir(dir);
+ 	return NULL;
+ }
+ 
+diff --git a/squashfs-tools/unsquash-4.c b/squashfs-tools/unsquash-4.c
+index 3a1b9e1..ff62dcc 100644
+--- a/squashfs-tools/unsquash-4.c
++++ b/squashfs-tools/unsquash-4.c
+@@ -436,8 +436,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 	return dir;
+ 
+ corrupted:
+-	free(dir->dirs);
+-	free(dir);
++	squashfs_closedir(dir);
+ 	return NULL;
+ }
+ 
+diff --git a/squashfs-tools/unsquashfs.c b/squashfs-tools/unsquashfs.c
+index 7b590bd..04be53c 100644
+--- a/squashfs-tools/unsquashfs.c
++++ b/squashfs-tools/unsquashfs.c
+@@ -1350,13 +1350,6 @@ unsigned int *offset, unsigned int *type)
+ }
+ 
+ 
+-void squashfs_closedir(struct dir *dir)
+-{
+-	free(dir->dirs);
+-	free(dir);
+-}
+-
+-
+ char *get_component(char *target, char **targname)
+ {
+ 	char *start;
+diff --git a/squashfs-tools/unsquashfs.h b/squashfs-tools/unsquashfs.h
+index 2e9201c..5ecb2ab 100644
+--- a/squashfs-tools/unsquashfs.h
++++ b/squashfs-tools/unsquashfs.h
+@@ -291,4 +291,5 @@ extern long long *alloc_index_table(int);
+ 
+ /* unsquash-1234.c */
+ extern int check_name(char *, int);
++extern void squashfs_closedir(struct dir *);
+ #endif
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072-requisite-2.patch b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072-requisite-2.patch
new file mode 100644
index 0000000..6b230b3
--- /dev/null
+++ b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072-requisite-2.patch
@@ -0,0 +1,108 @@
+The commit is required by the fix for CVE-2021-41072.
+
+Upstream-Status: Backport [https://github.com/plougher/squashfs-tools/commit/1993a4e]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From 1993a4e7aeda04962bf26e84c15fba8b58837e10 Mon Sep 17 00:00:00 2001
+From: Phillip Lougher <phillip@squashfs.org.uk>
+Date: Sun, 12 Sep 2021 20:09:13 +0100
+Subject: [PATCH] unsquashfs: dynamically allocate name
+
+Dynamically allocate name rather than store it
+directly in structure.
+
+Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
+---
+ squashfs-tools/unsquash-1.c    | 2 +-
+ squashfs-tools/unsquash-1234.c | 5 +++++
+ squashfs-tools/unsquash-2.c    | 2 +-
+ squashfs-tools/unsquash-3.c    | 2 +-
+ squashfs-tools/unsquash-4.c    | 2 +-
+ squashfs-tools/unsquashfs.h    | 2 +-
+ 6 files changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/squashfs-tools/unsquash-1.c b/squashfs-tools/unsquash-1.c
+index 7598499..d0121c6 100644
+--- a/squashfs-tools/unsquash-1.c
++++ b/squashfs-tools/unsquash-1.c
+@@ -360,7 +360,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 				dir->dirs = new_dir;
+ 			}
+ 
+-			strcpy(dir->dirs[dir->dir_count].name, dire->name);
++			dir->dirs[dir->dir_count].name = strdup(dire->name);
+ 			dir->dirs[dir->dir_count].start_block =
+ 				dirh.start_block;
+ 			dir->dirs[dir->dir_count].offset = dire->offset;
+diff --git a/squashfs-tools/unsquash-1234.c b/squashfs-tools/unsquash-1234.c
+index 0c8dfbb..ac46d9d 100644
+--- a/squashfs-tools/unsquash-1234.c
++++ b/squashfs-tools/unsquash-1234.c
+@@ -60,6 +60,11 @@ int check_name(char *name, int size)
+ 
+ void squashfs_closedir(struct dir *dir)
+ {
++	int i;
++
++	for(i = 0; i < dir->dir_count; i++)
++		free(dir->dirs[i].name);
++
+ 	free(dir->dirs);
+ 	free(dir);
+ }
+diff --git a/squashfs-tools/unsquash-2.c b/squashfs-tools/unsquash-2.c
+index 86f62ba..e847980 100644
+--- a/squashfs-tools/unsquash-2.c
++++ b/squashfs-tools/unsquash-2.c
+@@ -452,7 +452,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 				dir->dirs = new_dir;
+ 			}
+ 
+-			strcpy(dir->dirs[dir->dir_count].name, dire->name);
++			dir->dirs[dir->dir_count].name = strdup(dire->name);
+ 			dir->dirs[dir->dir_count].start_block =
+ 				dirh.start_block;
+ 			dir->dirs[dir->dir_count].offset = dire->offset;
+diff --git a/squashfs-tools/unsquash-3.c b/squashfs-tools/unsquash-3.c
+index c04aa9e..8223f27 100644
+--- a/squashfs-tools/unsquash-3.c
++++ b/squashfs-tools/unsquash-3.c
+@@ -486,7 +486,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 				dir->dirs = new_dir;
+ 			}
+ 
+-			strcpy(dir->dirs[dir->dir_count].name, dire->name);
++			dir->dirs[dir->dir_count].name = strdup(dire->name);
+ 			dir->dirs[dir->dir_count].start_block =
+ 				dirh.start_block;
+ 			dir->dirs[dir->dir_count].offset = dire->offset;
+diff --git a/squashfs-tools/unsquash-4.c b/squashfs-tools/unsquash-4.c
+index ff62dcc..1e199a7 100644
+--- a/squashfs-tools/unsquash-4.c
++++ b/squashfs-tools/unsquash-4.c
+@@ -423,7 +423,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 				dir->dirs = new_dir;
+ 			}
+ 
+-			strcpy(dir->dirs[dir->dir_count].name, dire->name);
++			dir->dirs[dir->dir_count].name = strdup(dire->name);
+ 			dir->dirs[dir->dir_count].start_block =
+ 				dirh.start_block;
+ 			dir->dirs[dir->dir_count].offset = dire->offset;
+diff --git a/squashfs-tools/unsquashfs.h b/squashfs-tools/unsquashfs.h
+index 5ecb2ab..583fbe4 100644
+--- a/squashfs-tools/unsquashfs.h
++++ b/squashfs-tools/unsquashfs.h
+@@ -164,7 +164,7 @@ struct queue {
+ #define DIR_ENT_SIZE	16
+ 
+ struct dir_ent	{
+-	char		name[SQUASHFS_NAME_LEN + 1];
++	char		*name;
+ 	unsigned int	start_block;
+ 	unsigned int	offset;
+ 	unsigned int	type;
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072-requisite-3.patch b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072-requisite-3.patch
new file mode 100644
index 0000000..5d5df6f
--- /dev/null
+++ b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072-requisite-3.patch
@@ -0,0 +1,326 @@
+The commit is required by the fix for CVE-2021-41072.
+
+Upstream-Status: Backport [https://github.com/plougher/squashfs-tools/commit/9938154]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From 9938154174756ee48a94ea0b076397a2944b028d Mon Sep 17 00:00:00 2001
+From: Phillip Lougher <phillip@squashfs.org.uk>
+Date: Sun, 12 Sep 2021 22:58:11 +0100
+Subject: [PATCH] unsquashfs: use linked list to store directory names
+
+This should bring higher performance, and it allows sorting
+if necessary (1.x and 2.0 filesystems).
+
+Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
+---
+ squashfs-tools/unsquash-1.c    | 30 +++++++++++++++---------------
+ squashfs-tools/unsquash-1234.c | 12 ++++++++----
+ squashfs-tools/unsquash-2.c    | 29 +++++++++++++++--------------
+ squashfs-tools/unsquash-3.c    | 29 +++++++++++++++--------------
+ squashfs-tools/unsquash-4.c    | 29 +++++++++++++++--------------
+ squashfs-tools/unsquashfs.c    | 16 ++++++++++------
+ squashfs-tools/unsquashfs.h    |  3 ++-
+ 7 files changed, 80 insertions(+), 68 deletions(-)
+
+diff --git a/squashfs-tools/unsquash-1.c b/squashfs-tools/unsquash-1.c
+index d0121c6..b604434 100644
+--- a/squashfs-tools/unsquash-1.c
++++ b/squashfs-tools/unsquash-1.c
+@@ -254,7 +254,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 	long long start;
+ 	int bytes = 0;
+ 	int dir_count, size, res;
+-	struct dir_ent *new_dir;
++	struct dir_ent *ent, *cur_ent = NULL;
+ 	struct dir *dir;
+ 
+ 	TRACE("squashfs_opendir: inode start block %d, offset %d\n",
+@@ -267,7 +267,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 		MEM_ERROR();
+ 
+ 	dir->dir_count = 0;
+-	dir->cur_entry = 0;
++	dir->cur_entry = NULL;
+ 	dir->mode = (*i)->mode;
+ 	dir->uid = (*i)->uid;
+ 	dir->guid = (*i)->gid;
+@@ -351,20 +351,20 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 				"%d:%d, type %d\n", dire->name,
+ 				dirh.start_block, dire->offset, dire->type);
+ 
+-			if((dir->dir_count % DIR_ENT_SIZE) == 0) {
+-				new_dir = realloc(dir->dirs, (dir->dir_count +
+-					DIR_ENT_SIZE) * sizeof(struct dir_ent));
+-				if(new_dir == NULL)
+-					MEM_ERROR();
+-
+-				dir->dirs = new_dir;
+-			}
++			ent = malloc(sizeof(struct dir_ent));
++			if(ent == NULL)
++				MEM_ERROR();
+ 
+-			dir->dirs[dir->dir_count].name = strdup(dire->name);
+-			dir->dirs[dir->dir_count].start_block =
+-				dirh.start_block;
+-			dir->dirs[dir->dir_count].offset = dire->offset;
+-			dir->dirs[dir->dir_count].type = dire->type;
++			ent->name = strdup(dire->name);
++			ent->start_block = dirh.start_block;
++			ent->offset = dire->offset;
++			ent->type = dire->type;
++			ent->next = NULL;
++			if(cur_ent == NULL)
++				dir->dirs = ent;
++			else
++				cur_ent->next = ent;
++			cur_ent = ent;
+ 			dir->dir_count ++;
+ 			bytes += dire->size + 1;
+ 		}
+diff --git a/squashfs-tools/unsquash-1234.c b/squashfs-tools/unsquash-1234.c
+index ac46d9d..e389f8d 100644
+--- a/squashfs-tools/unsquash-1234.c
++++ b/squashfs-tools/unsquash-1234.c
+@@ -60,11 +60,15 @@ int check_name(char *name, int size)
+ 
+ void squashfs_closedir(struct dir *dir)
+ {
+-	int i;
++	struct dir_ent *ent = dir->dirs;
+ 
+-	for(i = 0; i < dir->dir_count; i++)
+-		free(dir->dirs[i].name);
++	while(ent) {
++		struct dir_ent *tmp = ent;
++
++		ent = ent->next;
++		free(tmp->name);
++		free(tmp);
++	}
+ 
+-	free(dir->dirs);
+ 	free(dir);
+ }
+diff --git a/squashfs-tools/unsquash-2.c b/squashfs-tools/unsquash-2.c
+index e847980..956f96f 100644
+--- a/squashfs-tools/unsquash-2.c
++++ b/squashfs-tools/unsquash-2.c
+@@ -347,7 +347,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 	long long start;
+ 	int bytes = 0;
+ 	int dir_count, size, res;
+-	struct dir_ent *new_dir;
++	struct dir_ent *ent, *cur_ent = NULL;
+ 	struct dir *dir;
+ 
+ 	TRACE("squashfs_opendir: inode start block %d, offset %d\n",
+@@ -360,7 +360,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 		MEM_ERROR();
+ 
+ 	dir->dir_count = 0;
+-	dir->cur_entry = 0;
++	dir->cur_entry = NULL;
+ 	dir->mode = (*i)->mode;
+ 	dir->uid = (*i)->uid;
+ 	dir->guid = (*i)->gid;
+@@ -444,19 +444,20 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 				"%d:%d, type %d\n", dire->name,
+ 				dirh.start_block, dire->offset, dire->type);
+ 
+-			if((dir->dir_count % DIR_ENT_SIZE) == 0) {
+-				new_dir = realloc(dir->dirs, (dir->dir_count +
+-					DIR_ENT_SIZE) * sizeof(struct dir_ent));
+-				if(new_dir == NULL)
+-					MEM_ERROR();
+-				dir->dirs = new_dir;
+-			}
++			ent = malloc(sizeof(struct dir_ent));
++			if(ent == NULL)
++				MEM_ERROR();
+ 
+-			dir->dirs[dir->dir_count].name = strdup(dire->name);
+-			dir->dirs[dir->dir_count].start_block =
+-				dirh.start_block;
+-			dir->dirs[dir->dir_count].offset = dire->offset;
+-			dir->dirs[dir->dir_count].type = dire->type;
++			ent->name = strdup(dire->name);
++			ent->start_block = dirh.start_block;
++			ent->offset = dire->offset;
++			ent->type = dire->type;
++			ent->next = NULL;
++			if(cur_ent == NULL)
++				dir->dirs = ent;
++			else
++				cur_ent->next = ent;
++			cur_ent = ent;
+ 			dir->dir_count ++;
+ 			bytes += dire->size + 1;
+ 		}
+diff --git a/squashfs-tools/unsquash-3.c b/squashfs-tools/unsquash-3.c
+index 8223f27..835a574 100644
+--- a/squashfs-tools/unsquash-3.c
++++ b/squashfs-tools/unsquash-3.c
+@@ -381,7 +381,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 	long long start;
+ 	int bytes = 0;
+ 	int dir_count, size, res;
+-	struct dir_ent *new_dir;
++	struct dir_ent *ent, *cur_ent = NULL;
+ 	struct dir *dir;
+ 
+ 	TRACE("squashfs_opendir: inode start block %d, offset %d\n",
+@@ -394,7 +394,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 		MEM_ERROR();
+ 
+ 	dir->dir_count = 0;
+-	dir->cur_entry = 0;
++	dir->cur_entry = NULL;
+ 	dir->mode = (*i)->mode;
+ 	dir->uid = (*i)->uid;
+ 	dir->guid = (*i)->gid;
+@@ -478,19 +478,20 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 				"%d:%d, type %d\n", dire->name,
+ 				dirh.start_block, dire->offset, dire->type);
+ 
+-			if((dir->dir_count % DIR_ENT_SIZE) == 0) {
+-				new_dir = realloc(dir->dirs, (dir->dir_count +
+-					DIR_ENT_SIZE) * sizeof(struct dir_ent));
+-				if(new_dir == NULL)
+-					MEM_ERROR();
+-				dir->dirs = new_dir;
+-			}
++			ent = malloc(sizeof(struct dir_ent));
++			if(ent == NULL)
++				MEM_ERROR();
+ 
+-			dir->dirs[dir->dir_count].name = strdup(dire->name);
+-			dir->dirs[dir->dir_count].start_block =
+-				dirh.start_block;
+-			dir->dirs[dir->dir_count].offset = dire->offset;
+-			dir->dirs[dir->dir_count].type = dire->type;
++			ent->name = strdup(dire->name);
++			ent->start_block = dirh.start_block;
++			ent->offset = dire->offset;
++			ent->type = dire->type;
++			ent->next = NULL;
++			if(cur_ent == NULL)
++				dir->dirs = ent;
++			else
++				cur_ent->next = ent;
++			cur_ent = ent;
+ 			dir->dir_count ++;
+ 			bytes += dire->size + 1;
+ 		}
+diff --git a/squashfs-tools/unsquash-4.c b/squashfs-tools/unsquash-4.c
+index 1e199a7..694783d 100644
+--- a/squashfs-tools/unsquash-4.c
++++ b/squashfs-tools/unsquash-4.c
+@@ -331,7 +331,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 	struct squashfs_dir_entry *dire = (struct squashfs_dir_entry *) buffer;
+ 	long long start;
+ 	int bytes = 0, dir_count, size, res;
+-	struct dir_ent *new_dir;
++	struct dir_ent *ent, *cur_ent = NULL;
+ 	struct dir *dir;
+ 
+ 	TRACE("squashfs_opendir: inode start block %d, offset %d\n",
+@@ -344,7 +344,7 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 		MEM_ERROR();
+ 
+ 	dir->dir_count = 0;
+-	dir->cur_entry = 0;
++	dir->cur_entry = NULL;
+ 	dir->mode = (*i)->mode;
+ 	dir->uid = (*i)->uid;
+ 	dir->guid = (*i)->gid;
+@@ -415,19 +415,20 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 				"%d:%d, type %d\n", dire->name,
+ 				dirh.start_block, dire->offset, dire->type);
+ 
+-			if((dir->dir_count % DIR_ENT_SIZE) == 0) {
+-				new_dir = realloc(dir->dirs, (dir->dir_count +
+-					DIR_ENT_SIZE) * sizeof(struct dir_ent));
+-				if(new_dir == NULL)
+-					MEM_ERROR();
+-				dir->dirs = new_dir;
+-			}
++			ent = malloc(sizeof(struct dir_ent));
++			if(ent == NULL)
++				MEM_ERROR();
+ 
+-			dir->dirs[dir->dir_count].name = strdup(dire->name);
+-			dir->dirs[dir->dir_count].start_block =
+-				dirh.start_block;
+-			dir->dirs[dir->dir_count].offset = dire->offset;
+-			dir->dirs[dir->dir_count].type = dire->type;
++			ent->name = strdup(dire->name);
++			ent->start_block = dirh.start_block;
++			ent->offset = dire->offset;
++			ent->type = dire->type;
++			ent->next = NULL;
++			if(cur_ent == NULL)
++				dir->dirs = ent;
++			else
++				cur_ent->next = ent;
++			cur_ent = ent;
+ 			dir->dir_count ++;
+ 			bytes += dire->size + 1;
+ 		}
+diff --git a/squashfs-tools/unsquashfs.c b/squashfs-tools/unsquashfs.c
+index 04be53c..fee28ec 100644
+--- a/squashfs-tools/unsquashfs.c
++++ b/squashfs-tools/unsquashfs.c
+@@ -1337,14 +1337,18 @@ failed:
+ int squashfs_readdir(struct dir *dir, char **name, unsigned int *start_block,
+ unsigned int *offset, unsigned int *type)
+ {
+-	if(dir->cur_entry == dir->dir_count)
++	if(dir->cur_entry == NULL)
++		dir->cur_entry = dir->dirs;
++	else
++		dir->cur_entry = dir->cur_entry->next;
++
++	if(dir->cur_entry == NULL)
+ 		return FALSE;
+ 
+-	*name = dir->dirs[dir->cur_entry].name;
+-	*start_block = dir->dirs[dir->cur_entry].start_block;
+-	*offset = dir->dirs[dir->cur_entry].offset;
+-	*type = dir->dirs[dir->cur_entry].type;
+-	dir->cur_entry ++;
++	*name = dir->cur_entry->name;
++	*start_block = dir->cur_entry->start_block;
++	*offset = dir->cur_entry->offset;
++	*type = dir->cur_entry->type;
+ 
+ 	return TRUE;
+ }
+diff --git a/squashfs-tools/unsquashfs.h b/squashfs-tools/unsquashfs.h
+index 583fbe4..f8cf78c 100644
+--- a/squashfs-tools/unsquashfs.h
++++ b/squashfs-tools/unsquashfs.h
+@@ -168,17 +168,18 @@ struct dir_ent	{
+ 	unsigned int	start_block;
+ 	unsigned int	offset;
+ 	unsigned int	type;
++	struct dir_ent	*next;
+ };
+ 
+ struct dir {
+ 	int		dir_count;
+-	int 		cur_entry;
+ 	unsigned int	mode;
+ 	uid_t		uid;
+ 	gid_t		guid;
+ 	unsigned int	mtime;
+ 	unsigned int	xattr;
+ 	struct dir_ent	*dirs;
++	struct dir_ent	*cur_entry;
+ };
+ 
+ struct file_entry {
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072.patch b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072.patch
new file mode 100644
index 0000000..f807af6
--- /dev/null
+++ b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072.patch
@@ -0,0 +1,329 @@
+CVE: CVE-2021-41072
+Upstream-Status: Backport [https://github.com/plougher/squashfs-tools/commit/e048580]
+
+Update on 20211109:
+Squash a follow-up fix for CVE-2021-41072 from upstream:
+https://github.com/plougher/squashfs-tools/commit/19fcc93
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From e0485802ec72996c20026da320650d8362f555bd Mon Sep 17 00:00:00 2001
+From: Phillip Lougher <phillip@squashfs.org.uk>
+Date: Sun, 12 Sep 2021 23:50:06 +0100
+Subject: [PATCH] Unsquashfs: additional write outside destination directory
+ exploit fix
+
+An issue on github (https://github.com/plougher/squashfs-tools/issues/72)
+showed how some specially crafted Squashfs filesystems containing
+invalid file names (with '/' and '..') can cause Unsquashfs to write
+files outside of the destination directory.
+
+Since then it has been shown that specially crafted Squashfs filesystems
+that contain a symbolic link pointing outside of the destination directory,
+coupled with an identically named file within the same directory, can
+cause Unsquashfs to write files outside of the destination directory.
+
+Specifically the symbolic link produces a pathname pointing outside
+of the destination directory, which is then followed when writing the
+duplicate identically named file within the directory.
+
+This commit fixes this exploit by explictly checking for duplicate
+filenames within a directory.  As directories in v2.1, v3.x, and v4.0
+filesystems are sorted, this is achieved by checking for consecutively
+identical filenames.  Additionally directories are checked to
+ensure they are sorted, to avoid attempts to evade the duplicate
+check.
+
+Version 1.x and 2.0 filesystems (where the directories were unsorted)
+are sorted and then the above duplicate filename check is applied.
+
+Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
+---
+ squashfs-tools/Makefile        |   6 +-
+ squashfs-tools/unsquash-1.c    |   6 ++
+ squashfs-tools/unsquash-12.c   | 110 +++++++++++++++++++++++++++++++++
+ squashfs-tools/unsquash-1234.c |  21 +++++++
+ squashfs-tools/unsquash-2.c    |  16 +++++
+ squashfs-tools/unsquash-3.c    |   6 ++
+ squashfs-tools/unsquash-4.c    |   6 ++
+ squashfs-tools/unsquashfs.h    |   4 ++
+ 8 files changed, 173 insertions(+), 2 deletions(-)
+ create mode 100644 squashfs-tools/unsquash-12.c
+
+diff --git a/squashfs-tools/Makefile b/squashfs-tools/Makefile
+index 7262a2e..1b544ed 100755
+--- a/squashfs-tools/Makefile
++++ b/squashfs-tools/Makefile
+@@ -160,8 +160,8 @@ MKSQUASHFS_OBJS = mksquashfs.o read_fs.o action.o swap.o pseudo.o compressor.o \
+ 	caches-queues-lists.o reader.o tar.o
+ 
+ UNSQUASHFS_OBJS = unsquashfs.o unsquash-1.o unsquash-2.o unsquash-3.o \
+-	unsquash-4.o unsquash-123.o unsquash-34.o unsquash-1234.o swap.o \
+-	compressor.o unsquashfs_info.o
++	unsquash-4.o unsquash-123.o unsquash-34.o unsquash-1234.o unsquash-12.o \
++	swap.o compressor.o unsquashfs_info.o
+ 
+ CFLAGS ?= -O2
+ CFLAGS += $(EXTRA_CFLAGS) $(INCLUDEDIR) -D_FILE_OFFSET_BITS=64 \
+@@ -393,6 +393,8 @@ unsquash-34.o: unsquashfs.h unsquash-34.c unsquashfs_error.h
+ 
+ unsquash-1234.o: unsquash-1234.c unsquashfs_error.h
+ 
++unsquash-12.o: unsquash-12.c unsquashfs.h
++
+ unsquashfs_xattr.o: unsquashfs_xattr.c unsquashfs.h squashfs_fs.h xattr.h unsquashfs_error.h
+ 
+ unsquashfs_info.o: unsquashfs.h squashfs_fs.h unsquashfs_error.h
+diff --git a/squashfs-tools/unsquash-1.c b/squashfs-tools/unsquash-1.c
+index b604434..88866fc 100644
+--- a/squashfs-tools/unsquash-1.c
++++ b/squashfs-tools/unsquash-1.c
+@@ -370,6 +370,12 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 		}
+ 	}
+ 
++	/* check directory for duplicate names.  Need to sort directory first */
++	sort_directory(dir);
++	if(check_directory(dir) == FALSE) {
++		ERROR("File system corrupted: directory has duplicate names\n");
++		goto corrupted;
++	}
+ 	return dir;
+ 
+ corrupted:
+diff --git a/squashfs-tools/unsquash-12.c b/squashfs-tools/unsquash-12.c
+new file mode 100644
+index 0000000..61bf128
+--- /dev/null
++++ b/squashfs-tools/unsquash-12.c
+@@ -0,0 +1,110 @@
++/*
++ * Unsquash a squashfs filesystem.  This is a highly compressed read only
++ * filesystem.
++ *
++ * Copyright (c) 2021
++ * Phillip Lougher <phillip@squashfs.org.uk>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ * unsquash-12.c
++ *
++ * Helper functions used by unsquash-1 and unsquash-2.
++ */
++
++#include "unsquashfs.h"
++
++/*
++ * Bottom up linked list merge sort.
++ *
++ */
++void sort_directory(struct dir *dir)
++{
++	struct dir_ent *cur, *l1, *l2, *next;
++	int len1, len2, stride = 1;
++
++	if(dir->dir_count < 2)
++		return;
++
++	/*
++	 * We can consider our linked-list to be made up of stride length
++	 * sublists.  Eacn iteration around this loop merges adjacent
++	 * stride length sublists into larger 2*stride sublists.  We stop
++	 * when stride becomes equal to the entire list.
++	 *
++	 * Initially stride = 1 (by definition a sublist of 1 is sorted), and
++	 * these 1 element sublists are merged into 2 element sublists,  which
++	 * are then merged into 4 element sublists and so on.
++	 */
++	do {
++		l2 = dir->dirs; /* head of current linked list */
++		cur = NULL; /* empty output list */
++
++		/*
++		 * Iterate through the linked list, merging adjacent sublists.
++		 * On each interation l2 points to the next sublist pair to be
++		 * merged (if there's only one sublist left this is simply added
++		 * to the output list)
++		 */
++		while(l2) {
++			l1 = l2;
++			for(len1 = 0; l2 && len1 < stride; len1 ++, l2 = l2->next);
++			len2 = stride;
++
++			/*
++			 * l1 points to first sublist.
++			 * l2 points to second sublist.
++			 * Merge them onto the output list
++			 */
++			while(len1 && l2 && len2) {
++				if(strcmp(l1->name, l2->name) <= 0) {
++					next = l1;
++					l1 = l1->next;
++					len1 --;
++				} else {
++					next = l2;
++					l2 = l2->next;
++					len2 --;
++				}
++
++				if(cur) {
++					cur->next = next;
++					cur = next;
++				} else
++					dir->dirs = cur = next;
++			}
++			/*
++			 * One sublist is now empty, copy the other one onto the
++			 * output list
++			 */
++			for(; len1; len1 --, l1 = l1->next) {
++				if(cur) {
++					cur->next = l1;
++					cur = l1;
++				} else
++					dir->dirs = cur = l1;
++			}
++			for(; l2 && len2; len2 --, l2 = l2->next) {
++				if(cur) {
++					cur->next = l2;
++					cur = l2;
++				} else
++					dir->dirs = cur = l2;
++			}
++		}
++		cur->next = NULL;
++		stride = stride << 1;
++	} while(stride < dir->dir_count);
++}
+diff --git a/squashfs-tools/unsquash-1234.c b/squashfs-tools/unsquash-1234.c
+index e389f8d..98a81ed 100644
+--- a/squashfs-tools/unsquash-1234.c
++++ b/squashfs-tools/unsquash-1234.c
+@@ -72,3 +72,24 @@ void squashfs_closedir(struct dir *dir)
+ 
+ 	free(dir);
+ }
++
++
++/*
++ * Check directory for duplicate names.  As the directory should be sorted,
++ * duplicates will be consecutive.  Obviously we also need to check if the
++ * directory has been deliberately unsorted, to evade this check.
++ */
++int check_directory(struct dir *dir)
++{
++	int i;
++	struct dir_ent *ent;
++
++	if(dir->dir_count < 2)
++		return TRUE;
++
++	for(ent = dir->dirs, i = 0; i < dir->dir_count - 1; ent = ent->next, i++)
++		if(strcmp(ent->name, ent->next->name) >= 0)
++			return FALSE;
++
++	return TRUE;
++}
+diff --git a/squashfs-tools/unsquash-2.c b/squashfs-tools/unsquash-2.c
+index 956f96f..0e36f7d 100644
+--- a/squashfs-tools/unsquash-2.c
++++ b/squashfs-tools/unsquash-2.c
+@@ -29,6 +29,7 @@
+ static squashfs_fragment_entry_2 *fragment_table;
+ static unsigned int *uid_table, *guid_table;
+ static squashfs_operations ops;
++static int needs_sorting = FALSE;
+ 
+ 
+ static void read_block_list(unsigned int *block_list, long long start,
+@@ -463,6 +464,17 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 		}
+ 	}
+ 
++	if(needs_sorting)
++		sort_directory(dir);
++
++	/* check directory for duplicate names and sorting */
++	if(check_directory(dir) == FALSE) {
++		if(needs_sorting)
++			ERROR("File system corrupted: directory has duplicate names\n");
++		else
++			ERROR("File system corrupted: directory has duplicate names or is unsorted\n");
++		goto corrupted;
++	}
+ 	return dir;
+ 
+ corrupted:
+@@ -596,6 +608,10 @@ int read_super_2(squashfs_operations **s_ops, void *s)
+ 	 * 2.x filesystems use gzip compression.
+ 	 */
+ 	comp = lookup_compressor("gzip");
++
++	if(sBlk_3->s_minor == 0)
++		needs_sorting = TRUE;
++
+ 	return TRUE;
+ }
+ 
+diff --git a/squashfs-tools/unsquash-3.c b/squashfs-tools/unsquash-3.c
+index 835a574..0123562 100644
+--- a/squashfs-tools/unsquash-3.c
++++ b/squashfs-tools/unsquash-3.c
+@@ -497,6 +497,12 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 		}
+ 	}
+ 
++	/* check directory for duplicate names and sorting */
++	if(check_directory(dir) == FALSE) {
++		ERROR("File system corrupted: directory has duplicate names or is unsorted\n");
++		goto corrupted;
++	}
++
+ 	return dir;
+ 
+ corrupted:
+diff --git a/squashfs-tools/unsquash-4.c b/squashfs-tools/unsquash-4.c
+index 694783d..c615bb8 100644
+--- a/squashfs-tools/unsquash-4.c
++++ b/squashfs-tools/unsquash-4.c
+@@ -434,6 +434,12 @@ static struct dir *squashfs_opendir(unsigned int block_start, unsigned int offse
+ 		}
+ 	}
+ 
++	/* check directory for duplicate names and sorting */
++	if(check_directory(dir) == FALSE) {
++		ERROR("File system corrupted: directory has duplicate names or is unsorted\n");
++		goto corrupted;
++	}
++
+ 	return dir;
+ 
+ corrupted:
+diff --git a/squashfs-tools/unsquashfs.h b/squashfs-tools/unsquashfs.h
+index f8cf78c..bf2a80d 100644
+--- a/squashfs-tools/unsquashfs.h
++++ b/squashfs-tools/unsquashfs.h
+@@ -293,4 +293,8 @@ extern long long *alloc_index_table(int);
+ /* unsquash-1234.c */
+ extern int check_name(char *, int);
+ extern void squashfs_closedir(struct dir *);
++extern int check_directory(struct dir *);
++
++/* unsquash-12.c */
++extern void sort_directory(struct dir *);
+ #endif
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
index c78f446..6a19cba 100644
--- a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
+++ b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
@@ -9,8 +9,12 @@
 
 PV = "4.5"
 SRCREV = "0496d7c3de3e09da37ba492081c86159806ebb07"
-SRC_URI = "git://github.com/plougher/squashfs-tools.git;protocol=https \
+SRC_URI = "git://github.com/plougher/squashfs-tools.git;protocol=https;branch=master \
            file://0001-Avoid-use-of-INSTALL_DIR-for-symlink-targets.patch \
+           file://CVE-2021-41072-requisite-1.patch;striplevel=2 \
+           file://CVE-2021-41072-requisite-2.patch;striplevel=2 \
+           file://CVE-2021-41072-requisite-3.patch;striplevel=2 \
+           file://CVE-2021-41072.patch;striplevel=2 \
            "
 
 S = "${WORKDIR}/git/squashfs-tools"
diff --git a/poky/meta/recipes-devtools/strace/strace_5.14.bb b/poky/meta/recipes-devtools/strace/strace_5.14.bb
deleted file mode 100644
index aa6b06d..0000000
--- a/poky/meta/recipes-devtools/strace/strace_5.14.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-SUMMARY = "System call tracing tool"
-HOMEPAGE = "http://strace.io"
-DESCRIPTION = "strace is a diagnostic, debugging and instructional userspace utility for Linux. It is used to monitor and tamper with interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state."
-SECTION = "console/utils"
-LICENSE = "LGPL-2.1+ & GPL-2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=318cfc887fc8723f4e9d4709b55e065b"
-
-SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \
-           file://update-gawk-paths.patch \
-           file://Makefile-ptest.patch \
-           file://run-ptest \
-           file://mips-SIGEMT.patch \
-           file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \
-           file://ptest-spacesave.patch \
-           file://0001-strace-fix-reproducibilty-issues.patch \
-           "
-SRC_URI[sha256sum] = "901bee6db5e17debad4530dd9ffb4dc9a96c4a656edbe1c3141b7cb307b11e73"
-
-inherit autotools ptest
-
-PACKAGECONFIG:class-target ??= "\
-    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
-"
-
-PACKAGECONFIG[bluez] = "ac_cv_header_bluetooth_bluetooth_h=yes,ac_cv_header_bluetooth_bluetooth_h=no,bluez5"
-PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind"
-
-EXTRA_OECONF += "--enable-mpers=no --disable-gcc-Werror"
-
-CFLAGS:append:libc-musl = " -Dsigcontext_struct=sigcontext"
-
-TESTDIR = "tests"
-PTEST_BUILD_HOST_PATTERN = "^(DEB_CHANGELOGTIME|RPM_CHANGELOGTIME|WARN_CFLAGS_FOR_BUILD|LDFLAGS_FOR_BUILD)"
-
-do_compile_ptest() {
-	oe_runmake ${PARALLEL_MAKE} -C ${TESTDIR} buildtest-TESTS
-}
-
-do_install_ptest() {
-	oe_runmake -C ${TESTDIR} install-ptest BUILDDIR=${B} DESTDIR=${D}${PTEST_PATH} TESTDIR=${TESTDIR}
-	mkdir -p ${D}${PTEST_PATH}/build-aux
-	mkdir -p ${D}${PTEST_PATH}/src
-	install -m 755 ${S}/build-aux/test-driver ${D}${PTEST_PATH}/build-aux/
-	install -m 644 ${B}/src/config.h ${D}${PTEST_PATH}/src/
-        sed -i -e '/^src/s/strace.*[0-9]/ptest/' ${D}/${PTEST_PATH}/${TESTDIR}/Makefile
-}
-
-RDEPENDS:${PN}-ptest += "make coreutils grep gawk sed"
-
-RDEPENDS:${PN}-ptest:append:libc-glibc = "\
-     locale-base-en-us.iso-8859-1 \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/strace/strace_5.16.bb b/poky/meta/recipes-devtools/strace/strace_5.16.bb
new file mode 100644
index 0000000..1874ef1
--- /dev/null
+++ b/poky/meta/recipes-devtools/strace/strace_5.16.bb
@@ -0,0 +1,54 @@
+SUMMARY = "System call tracing tool"
+HOMEPAGE = "http://strace.io"
+DESCRIPTION = "strace is a diagnostic, debugging and instructional userspace utility for Linux. It is used to monitor and tamper with interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state."
+SECTION = "console/utils"
+LICENSE = "LGPL-2.1+ & GPL-2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59a33f0a3e6122d67c0b3befccbdaa6b"
+
+SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \
+           file://update-gawk-paths.patch \
+           file://Makefile-ptest.patch \
+           file://run-ptest \
+           file://mips-SIGEMT.patch \
+           file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \
+           file://ptest-spacesave.patch \
+           file://0001-strace-fix-reproducibilty-issues.patch \
+           "
+SRC_URI[sha256sum] = "dc7db230ff3e57c249830ba94acab2b862da1fcaac55417e9b85041a833ca285"
+
+inherit autotools ptest
+
+PACKAGECONFIG:class-target ??= "\
+    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
+"
+
+PACKAGECONFIG[bluez] = "ac_cv_header_bluetooth_bluetooth_h=yes,ac_cv_header_bluetooth_bluetooth_h=no,bluez5"
+PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind"
+
+EXTRA_OECONF += "--enable-mpers=no --disable-gcc-Werror"
+
+CFLAGS:append:libc-musl = " -Dsigcontext_struct=sigcontext"
+
+TESTDIR = "tests"
+PTEST_BUILD_HOST_PATTERN = "^(DEB_CHANGELOGTIME|RPM_CHANGELOGTIME|WARN_CFLAGS_FOR_BUILD|LDFLAGS_FOR_BUILD)"
+
+do_compile_ptest() {
+	oe_runmake ${PARALLEL_MAKE} -C ${TESTDIR} buildtest-TESTS
+}
+
+do_install_ptest() {
+	oe_runmake -C ${TESTDIR} install-ptest BUILDDIR=${B} DESTDIR=${D}${PTEST_PATH} TESTDIR=${TESTDIR}
+	mkdir -p ${D}${PTEST_PATH}/build-aux
+	mkdir -p ${D}${PTEST_PATH}/src
+	install -m 755 ${S}/build-aux/test-driver ${D}${PTEST_PATH}/build-aux/
+	install -m 644 ${B}/src/config.h ${D}${PTEST_PATH}/src/
+        sed -i -e '/^src/s/strace.*[0-9]/ptest/' ${D}/${PTEST_PATH}/${TESTDIR}/Makefile
+}
+
+RDEPENDS:${PN}-ptest += "make coreutils grep gawk sed"
+
+RDEPENDS:${PN}-ptest:append:libc-glibc = "\
+     locale-base-en-us.iso-8859-1 \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/subversion/subversion/0001-Fix-libtool-name-in-configure.ac.patch b/poky/meta/recipes-devtools/subversion/subversion/0001-Fix-libtool-name-in-configure.ac.patch
deleted file mode 100644
index 5a1b10b..0000000
--- a/poky/meta/recipes-devtools/subversion/subversion/0001-Fix-libtool-name-in-configure.ac.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From cbcfe0399347989e45a8fb695f55c855d6b3da72 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 7 Dec 2015 17:11:02 +0200
-Subject: [PATCH] Fix libtool name in configure.ac
-
-Upstream-Status: Inappropriate [embedded specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 4ed66d4..ceb64f9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -221,8 +221,8 @@ if test "$experimental_libtool" = "yes"; then
-   LIBTOOL="$sh_libtool"
-   SVN_LIBTOOL="$sh_libtool"
- else
--  sh_libtool="$abs_builddir/libtool"
--  SVN_LIBTOOL="\$(SHELL) \"$sh_libtool\""
-+  sh_libtool="$abs_builddir/$host_alias-libtool"
-+  SVN_LIBTOOL="\$(SHELL) \$(abs_builddir)/$host_alias-libtool"
- fi
- AC_SUBST(SVN_LIBTOOL)
- 
--- 
-2.6.2
-
diff --git a/poky/meta/recipes-devtools/subversion/subversion_1.14.1.bb b/poky/meta/recipes-devtools/subversion/subversion_1.14.1.bb
index 87dc359..a0a9376 100644
--- a/poky/meta/recipes-devtools/subversion/subversion_1.14.1.bb
+++ b/poky/meta/recipes-devtools/subversion/subversion_1.14.1.bb
@@ -10,7 +10,6 @@
 
 SRC_URI = "${APACHE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
            file://disable_macos.patch \
-           file://0001-Fix-libtool-name-in-configure.ac.patch \
            file://serfmacro.patch \
            "
 
diff --git a/poky/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch b/poky/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch
index 114de7e..fdb9760 100644
--- a/poky/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch
+++ b/poky/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch
@@ -4,7 +4,7 @@
 Subject: [PATCH] configure: use pkg-config for pcre detection
 
 Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
-Upstream-Status: pending
+Upstream-Status: Pending
 ---
  configure.ac | 38 +++++++-------------------------------
  1 file changed, 7 insertions(+), 31 deletions(-)
diff --git a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0001-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0001-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch
index f392cea..12eecc9 100644
--- a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0001-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch
+++ b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0001-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch
@@ -12,8 +12,8 @@
 Based on work by: Khem Raj <raj.khem@gmail.com>
 
 Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
+Upstream-Status: Submitted [https://github.com/systemd/systemd-bootchart/pull/47]
 ---
-Upstream-Status: Pending
 
  src/util.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0002-musl-does-not-provide-printf-h.patch b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0002-musl-does-not-provide-printf-h.patch
index 196272f..8be3bed 100644
--- a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0002-musl-does-not-provide-printf-h.patch
+++ b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0002-musl-does-not-provide-printf-h.patch
@@ -10,8 +10,8 @@
 Includes work by: Khem Raj <raj.khem@gmail.com>
 
 Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
+Upstream-Status: Submitted [https://github.com/systemd/systemd-bootchart/pull/47]
 ---
-Upstream-Status: Pending
 
  Makefile.am               |   4 +
  configure.ac              |   3 +
diff --git a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0003-musl-does-not-provide-canonicalize_file_name.patch b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0003-musl-does-not-provide-canonicalize_file_name.patch
index 7670d95..c2c276e 100644
--- a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0003-musl-does-not-provide-canonicalize_file_name.patch
+++ b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0003-musl-does-not-provide-canonicalize_file_name.patch
@@ -9,8 +9,8 @@
 Based on work by: Khem Raj <raj.khem@gmail.com>
 
 Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
+Upstream-Status: Submitted [https://github.com/systemd/systemd-bootchart/pull/47]
 ---
-Upstream-Status: Pending
 
  src/path-util.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_234.bb b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_234.bb
index 30dbbcc..fe6f045 100644
--- a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_234.bb
+++ b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_234.bb
@@ -8,7 +8,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c \
                     file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe"
 
-SRC_URI = "git://github.com/systemd/systemd-bootchart.git;protocol=https \
+SRC_URI = "git://github.com/systemd/systemd-bootchart.git;protocol=https;branch=master \
            file://0001-architecture-Recognise-RISCV-32-RISCV-64.patch \
            file://mips64.patch \
            file://no_lto.patch \
@@ -38,7 +38,7 @@
     rm -f ${S}/m4/intltool.m4
 }
 
-FILES:${PN} += "${systemd_system_unitdir}d-bootchart"
+FILES:${PN} += "${systemd_unitdir}/systemd-bootchart"
 
 EXTRA_OECONF = " --with-rootprefix=${root_prefix} \
                  --with-rootlibdir=${base_libdir}"
diff --git a/poky/meta/recipes-devtools/tcf-agent/tcf-agent/fix_ranlib.patch b/poky/meta/recipes-devtools/tcf-agent/tcf-agent/fix_ranlib.patch
deleted file mode 100644
index abd33ba..0000000
--- a/poky/meta/recipes-devtools/tcf-agent/tcf-agent/fix_ranlib.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Actually pass the arguments to RANLIB.
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-Index: agent/Makefile.inc
-===================================================================
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -92,6 +92,7 @@ ifeq ($(OPSYS),GNU/Linux)
-     OPTS += -DUSE_uuid_generate=0
-   endif
-   OPTS += -DENABLE_arch_$(shell uname -m)
-+  RANLIB += $@
- endif
-
- ifneq ($(OPSYS),Windows)
diff --git a/poky/meta/recipes-devtools/tcf-agent/tcf-agent/ldflags.patch b/poky/meta/recipes-devtools/tcf-agent/tcf-agent/ldflags.patch
index c03c55d..dfe4920 100644
--- a/poky/meta/recipes-devtools/tcf-agent/tcf-agent/ldflags.patch
+++ b/poky/meta/recipes-devtools/tcf-agent/tcf-agent/ldflags.patch
@@ -1,4 +1,8 @@
-Upstream-Status: Pending
+We need LDFLAGS to be respected otherwise there are QA warnings as the right
+flags don't get used.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@arm.com>
 
 From d92af0483c20365fd0af740d0baef8870b4aa374 Mon Sep 17 00:00:00 2001
 From: Abdur Rehman <abdur_rehman@mentor.com>
diff --git a/poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb b/poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
index e67eccc..0d627f4 100644
--- a/poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
+++ b/poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
@@ -10,8 +10,7 @@
 PV = "1.7.0+git${SRCPV}"
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
-SRC_URI = "git://git.eclipse.org/r/tcf/org.eclipse.tcf.agent.git;protocol=https \
-           file://fix_ranlib.patch \
+SRC_URI = "git://git.eclipse.org/r/tcf/org.eclipse.tcf.agent.git;protocol=https;branch=master \
            file://ldflags.patch \
            file://tcf-agent.init \
            file://tcf-agent.service \
diff --git a/poky/meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch b/poky/meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch
index e0746ad..e349681 100644
--- a/poky/meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch
+++ b/poky/meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Backport [https://github.com/unfs3/unfs3/commit/3fa0568e6ef96e045286afe18444bc28fe93962b]
+
 diff --git a/Config/exports.l b/Config/exports.l
 index 662603c..7e7c4fc 100644
 --- a/Config/exports.l
diff --git a/poky/meta/recipes-devtools/unfs3/unfs3_git.bb b/poky/meta/recipes-devtools/unfs3/unfs3_git.bb
index 2bc7a92..7a5d273 100644
--- a/poky/meta/recipes-devtools/unfs3/unfs3_git.bb
+++ b/poky/meta/recipes-devtools/unfs3/unfs3_git.bb
@@ -14,7 +14,7 @@
 ASNEEDED = ""
 
 S = "${WORKDIR}/git"
-SRC_URI = "git://github.com/unfs3/unfs3.git;protocol=https \
+SRC_URI = "git://github.com/unfs3/unfs3.git;protocol=https;branch=master \
            file://unfs3_parallel_build.patch \
            file://alternate_rpc_ports.patch \
            file://fix_pid_race_parent_writes_child_pid.patch \
diff --git a/poky/meta/recipes-devtools/vala/vala/0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch b/poky/meta/recipes-devtools/vala/vala/0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch
deleted file mode 100644
index ecab0fc..0000000
--- a/poky/meta/recipes-devtools/vala/vala/0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From dbb1c58e86f2af4613f3ac9571d9b163d4bca675 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 23 Oct 2015 16:13:54 +0300
-Subject: [PATCH] vapigen.m4: use $PKG_CONFIG_SYSROOT_DIR
-
-This is necessary in cross-compiling environments, where directories
-returned by pkg-config should be prefixed with sysroot location.
-
-Upstream-Status: Pending [review in oe-core list]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- vapigen/vapigen.m4 | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/vapigen/vapigen.m4 b/vapigen/vapigen.m4
-index 2c435e7..6228991 100644
---- a/vapigen/vapigen.m4
-+++ b/vapigen/vapigen.m4
-@@ -82,12 +82,12 @@ AC_DEFUN([VAPIGEN_CHECK],
- 
-   AS_CASE([$enable_vala],
-     [yes], [
--      VAPIGEN=`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name`
--      VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen
-+      VAPIGEN=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name`
-+      VAPIGEN_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen
-       AS_IF([test "x$2" = "x"], [
--          VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name`
-+          VAPIGEN_VAPIDIR=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name`
-         ], [
--          VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name`
-+          VAPIGEN_VAPIDIR=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name`
-         ])
-     ])
- 
--- 
-2.1.4
-
diff --git a/poky/meta/recipes-devtools/vala/vala_0.54.2.bb b/poky/meta/recipes-devtools/vala/vala_0.54.2.bb
deleted file mode 100644
index faaf761..0000000
--- a/poky/meta/recipes-devtools/vala/vala_0.54.2.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI += " file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch"
-
-SRC_URI[sha256sum] = "884de745317d4d56e4e8cede993dc8f04d50cfca36cf60d2f2f278c30c2b1311"
diff --git a/poky/meta/recipes-devtools/vala/vala_0.54.6.bb b/poky/meta/recipes-devtools/vala/vala_0.54.6.bb
new file mode 100644
index 0000000..d1202b8
--- /dev/null
+++ b/poky/meta/recipes-devtools/vala/vala_0.54.6.bb
@@ -0,0 +1,3 @@
+require ${BPN}.inc
+
+SRC_URI[sha256sum] = "49d60d96a3fdf6c4287397442bc6d6d95bf40aa7df678ee49128c4b11ba6e469"
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0001-Implement-linux-rseq-syscall-as-ENOSYS.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0001-Implement-linux-rseq-syscall-as-ENOSYS.patch
new file mode 100644
index 0000000..be15369
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/0001-Implement-linux-rseq-syscall-as-ENOSYS.patch
@@ -0,0 +1,198 @@
+From 1024237358f01009fe233cb1294f3b8211304eaa Mon Sep 17 00:00:00 2001
+From: Mark Wielaard <mark@klomp.org>
+Date: Fri, 10 Dec 2021 17:41:59 +0100
+Subject: [PATCH] Implement linux rseq syscall as ENOSYS
+
+This implements rseq for amd64, arm, arm64, ppc32, ppc64,
+s390x and x86 linux as ENOSYS (without warning).
+
+glibc will start using rseq to accelerate sched_getcpu, if
+available. This would cause a warning from valgrind every
+time a new thread is started.
+
+Real rseq (restartable sequences) support is pretty hard, so
+for now just explicitly return ENOSYS (just like we do for clone3).
+
+Upstream-Status: Backport [ 1024237358f01009fe233cb1294f3b8211304eaa ]
+
+https://sourceware.org/pipermail/libc-alpha/2021-December/133656.html
+---
+ coregrind/m_syswrap/syswrap-amd64-linux.c | 2 ++
+ coregrind/m_syswrap/syswrap-arm-linux.c   | 1 +
+ coregrind/m_syswrap/syswrap-arm64-linux.c | 3 ++-
+ coregrind/m_syswrap/syswrap-ppc32-linux.c | 2 ++
+ coregrind/m_syswrap/syswrap-ppc64-linux.c | 2 ++
+ coregrind/m_syswrap/syswrap-s390x-linux.c | 2 ++
+ coregrind/m_syswrap/syswrap-x86-linux.c   | 2 ++
+ include/vki/vki-scnums-arm-linux.h        | 1 +
+ include/vki/vki-scnums-arm64-linux.h      | 4 +++-
+ include/vki/vki-scnums-ppc32-linux.h      | 1 +
+ include/vki/vki-scnums-ppc64-linux.h      | 1 +
+ include/vki/vki-scnums-s390x-linux.h      | 5 ++++-
+ 12 files changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c
+index 5062324a1..18b25f80a 100644
+--- a/coregrind/m_syswrap/syswrap-amd64-linux.c
++++ b/coregrind/m_syswrap/syswrap-amd64-linux.c
+@@ -862,6 +862,8 @@ static SyscallTableEntry syscall_table[] = {
+ 
+    LINXY(__NR_statx,             sys_statx),             // 332
+ 
++   GENX_(__NR_rseq,              sys_ni_syscall),        // 334
++
+    LINX_(__NR_membarrier,        sys_membarrier),        // 324
+ 
+    LINX_(__NR_copy_file_range,   sys_copy_file_range),   // 326
+diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c
+index 556dd844b..d583cef0c 100644
+--- a/coregrind/m_syswrap/syswrap-arm-linux.c
++++ b/coregrind/m_syswrap/syswrap-arm-linux.c
+@@ -1024,6 +1024,7 @@ static SyscallTableEntry syscall_main_table[] = {
+    LINX_(__NR_pwritev2,          sys_pwritev2),         // 393
+ 
+    LINXY(__NR_statx,             sys_statx),            // 397
++   GENX_(__NR_rseq,              sys_ni_syscall),       // 398
+ 
+    LINXY(__NR_clock_gettime64,   sys_clock_gettime64),  // 403
+    LINX_(__NR_clock_settime64,   sys_clock_settime64),  // 404
+diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
+index b87107727..2066a38ea 100644
+--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
++++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
+@@ -823,8 +823,9 @@ static SyscallTableEntry syscall_main_table[] = {
+    //   (__NR_pkey_mprotect,     sys_ni_syscall),        // 288
+    //   (__NR_pkey_alloc,        sys_ni_syscall),        // 289
+    //   (__NR_pkey_free,         sys_ni_syscall),        // 290
++   LINXY(__NR_statx,             sys_statx),             // 291
+ 
+-   LINXY(__NR_statx,             sys_statx),             // 397
++   GENX_(__NR_rseq,              sys_ni_syscall),        // 293
+ 
+    LINXY(__NR_io_uring_setup,    sys_io_uring_setup),    // 425
+    LINXY(__NR_io_uring_enter,    sys_io_uring_enter),    // 426
+diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c
+index 6263ab845..637b2504e 100644
+--- a/coregrind/m_syswrap/syswrap-ppc32-linux.c
++++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c
+@@ -1028,6 +1028,8 @@ static SyscallTableEntry syscall_table[] = {
+ 
+    LINXY(__NR_statx,             sys_statx),            // 383
+ 
++   GENX_(__NR_rseq,              sys_ni_syscall),       // 387
++
+    LINXY(__NR_clock_gettime64,   sys_clock_gettime64),  // 403
+    LINX_(__NR_clock_settime64,   sys_clock_settime64),  // 404
+ 
+diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c
+index a26b41c32..93956d3cc 100644
+--- a/coregrind/m_syswrap/syswrap-ppc64-linux.c
++++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c
+@@ -1019,6 +1019,8 @@ static SyscallTableEntry syscall_table[] = {
+ 
+    LINXY(__NR_statx,             sys_statx),            // 383
+ 
++   GENX_(__NR_rseq,              sys_ni_syscall),       // 387
++
+    LINXY(__NR_io_uring_setup,    sys_io_uring_setup),    // 425
+    LINXY(__NR_io_uring_enter,    sys_io_uring_enter),    // 426
+    LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
+diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c
+index 5c9209859..73f9684c4 100644
+--- a/coregrind/m_syswrap/syswrap-s390x-linux.c
++++ b/coregrind/m_syswrap/syswrap-s390x-linux.c
+@@ -860,6 +860,8 @@ static SyscallTableEntry syscall_table[] = {
+ 
+    LINXY(__NR_statx, sys_statx),                                      // 379
+ 
++   GENX_(__NR_rseq, sys_ni_syscall),                                  // 381
++
+    LINXY(__NR_io_uring_setup, sys_io_uring_setup),                    // 425
+    LINXY(__NR_io_uring_enter, sys_io_uring_enter),                    // 426
+    LINXY(__NR_io_uring_register, sys_io_uring_register),              // 427
+diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c
+index 1d8f45d33..8662ff501 100644
+--- a/coregrind/m_syswrap/syswrap-x86-linux.c
++++ b/coregrind/m_syswrap/syswrap-x86-linux.c
+@@ -1619,6 +1619,8 @@ static SyscallTableEntry syscall_table[] = {
+    /* Explicitly not supported on i386 yet. */
+    GENX_(__NR_arch_prctl,        sys_ni_syscall),       // 384
+ 
++   GENX_(__NR_rseq,              sys_ni_syscall),       // 386
++
+    LINXY(__NR_clock_gettime64,   sys_clock_gettime64),  // 403
+    LINX_(__NR_clock_settime64,   sys_clock_settime64),  // 404
+ 
+diff --git a/include/vki/vki-scnums-arm-linux.h b/include/vki/vki-scnums-arm-linux.h
+index ff560e19d..485db8b26 100644
+--- a/include/vki/vki-scnums-arm-linux.h
++++ b/include/vki/vki-scnums-arm-linux.h
+@@ -432,6 +432,7 @@
+ #define __NR_pkey_alloc                 395
+ #define __NR_pkey_free                  396
+ #define __NR_statx                      397
++#define __NR_rseq                       398
+ 
+ 
+ 
+diff --git a/include/vki/vki-scnums-arm64-linux.h b/include/vki/vki-scnums-arm64-linux.h
+index 9aa3b2b5f..acdfb39c6 100644
+--- a/include/vki/vki-scnums-arm64-linux.h
++++ b/include/vki/vki-scnums-arm64-linux.h
+@@ -323,9 +323,11 @@
+ #define __NR_pkey_alloc 289
+ #define __NR_pkey_free 290
+ #define __NR_statx 291
++#define __NR_io_pgetevents 291
++#define __NR_rseq 293
+ 
+ #undef __NR_syscalls
+-#define __NR_syscalls 292
++#define __NR_syscalls 294
+ 
+ ///*
+ // * All syscalls below here should go away really,
+diff --git a/include/vki/vki-scnums-ppc32-linux.h b/include/vki/vki-scnums-ppc32-linux.h
+index 6987ad941..08fa77df0 100644
+--- a/include/vki/vki-scnums-ppc32-linux.h
++++ b/include/vki/vki-scnums-ppc32-linux.h
+@@ -415,6 +415,7 @@
+ #define __NR_pkey_alloc		384
+ #define __NR_pkey_free		385
+ #define __NR_pkey_mprotect	386
++#define __NR_rseq		387
+ 
+ #endif /* __VKI_SCNUMS_PPC32_LINUX_H */
+ 
+diff --git a/include/vki/vki-scnums-ppc64-linux.h b/include/vki/vki-scnums-ppc64-linux.h
+index 6827964fd..a76fa6d32 100644
+--- a/include/vki/vki-scnums-ppc64-linux.h
++++ b/include/vki/vki-scnums-ppc64-linux.h
+@@ -407,6 +407,7 @@
+ #define __NR_pkey_alloc		384
+ #define __NR_pkey_free		385
+ #define __NR_pkey_mprotect	386
++#define __NR_rseq		387
+ 
+ #endif /* __VKI_SCNUMS_PPC64_LINUX_H */
+ 
+diff --git a/include/vki/vki-scnums-s390x-linux.h b/include/vki/vki-scnums-s390x-linux.h
+index 6487e20c9..869c04584 100644
+--- a/include/vki/vki-scnums-s390x-linux.h
++++ b/include/vki/vki-scnums-s390x-linux.h
+@@ -342,8 +342,11 @@
+ #define __NR_s390_guarded_storage	378
+ #define __NR_statx			379
+ #define __NR_s390_sthyi			380
++#define __NR_kexec_file_load		381
++#define __NR_io_pgetevents		382
++#define __NR_rseq			383
+ 
+-#define NR_syscalls 381
++#define NR_syscalls 384
+ 
+ /* 
+  * There are some system calls that are not present on 64 bit, some
+-- 
+2.30.2
+
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch
deleted file mode 100644
index a78e195..0000000
--- a/poky/meta/recipes-devtools/valgrind/valgrind/0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 9762fd23e1f1db66d4b977c694a17d3bca3fe99a Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 8 Jan 2016 16:36:29 +0200
-Subject: [PATCH] Remove tests that fail to build on some PPC32 configurations
-
-Failures are documented here:
-http://errors.yoctoproject.org/Errors/Search/?items=10&query=862d702fbb99e484631315aa44b9e46f8fc567da&filter=valgrind&type=recipe
-
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-Upstream-Status: Pending
----
- memcheck/tests/ppc32/Makefile.am | 2 +-
- none/tests/ppc32/Makefile.am     | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/memcheck/tests/ppc32/Makefile.am b/memcheck/tests/ppc32/Makefile.am
-index 26b95a2..8f05743 100644
---- a/memcheck/tests/ppc32/Makefile.am
-+++ b/memcheck/tests/ppc32/Makefile.am
-@@ -10,7 +10,7 @@ EXTRA_DIST = $(noinst_SCRIPTS) \
- 	power_ISA2_07.stderr.exp power_ISA2_07.vgtest
- 
- check_PROGRAMS = \
--	power_ISA2_05 power_ISA2_07
-+	power_ISA2_07
- 
- power_ISA2_05_CFLAGS = $(AM_CFLAGS) $(WERROR) -Winline -Wall -Wshadow -g \
- 		-I$(top_srcdir)/include @FLAG_M32@
-diff --git a/none/tests/ppc32/Makefile.am b/none/tests/ppc32/Makefile.am
-index 196239e..0fe3425 100644
---- a/none/tests/ppc32/Makefile.am
-+++ b/none/tests/ppc32/Makefile.am
-@@ -50,13 +50,13 @@ EXTRA_DIST = \
- 
- check_PROGRAMS = \
- 	allexec \
--	lsw jm-insns round \
-+	lsw \
- 	test_isa_2_06_part1 test_isa_2_06_part2 test_isa_2_06_part3 \
- 	test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5 \
- 	test_isa_2_07_part1 test_isa_2_07_part2 \
- 	test_tm test_touch_tm ldst_multiple data-cache-instructions \
- 	test_fx test_gx \
--	testVMX twi tw xlc_dbl_u32 power5+_round power6_bcmp \
-+	twi tw xlc_dbl_u32 power6_bcmp \
- 	bug129390-ppc32 bug139050-ppc32 \
- 	ldstrev mftocrf mcrfs
- 
--- 
-2.6.4
-
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0001-docs-Disable-manual-validation.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0001-docs-Disable-manual-validation.patch
new file mode 100644
index 0000000..256ddb0
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/0001-docs-Disable-manual-validation.patch
@@ -0,0 +1,36 @@
+From 99fc6fe9b66becac3c94068129e84217330a71a6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Jan 2022 18:26:02 -0800
+Subject: [PATCH] docs: Disable manual validation
+
+validating manual and manpages, this task involves calling xmllint which
+accesses network and --nonet option also does not disable this,
+therefore disable it.
+
+Fixes
+| error : Resource temporarily unavailable
+| ../callgrind/docs/cl-manual.xml:4: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
+|  <!ENTITY % vg-entities SYSTEM "../../docs/xml/vg-entities.xml"> %vg-entities; ]
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ docs/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/docs/Makefile.am b/docs/Makefile.am
+index d4250e8..c500306 100644
+--- a/docs/Makefile.am
++++ b/docs/Makefile.am
+@@ -192,7 +192,7 @@ valid-manpages: $(MANPAGES_XML_FILES)
+ 	  touch $@; \
+ 	fi
+ 
+-check-local: valid-manual valid-manpages
++check-local:
+ 
+ # The text version of the FAQ.
+ FAQ.txt:
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch
index 06b19b0..9a25b67 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch
@@ -12,7 +12,7 @@
 
 Patch refreshed for valgrind-3.14.0.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://bugs.kde.org/show_bug.cgi?id=445211]
 
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch
index 0c399ef..a3637ea 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind/0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch
@@ -14,7 +14,7 @@
 Enforce 30 seconds limit for the test.
 This resume execution of the remaining tests when valgrind hangs.
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [oe-core specific]
 
 Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
 Signed-off-by: Tudor Florea <tudor.florea@enea.com>
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
index 440e8be..887bfd2 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
@@ -32,8 +32,8 @@
 drd/tests/annotate_trace_memory_xml
 drd/tests/atomic_var
 drd/tests/bar_bad
-drd/tests/bar_bad_xml
 drd/tests/bar_trivial
+drd/tests/boost_thread
 drd/tests/bug-235681
 drd/tests/bug322621
 drd/tests/circular_buffer
@@ -66,7 +66,6 @@
 drd/tests/pth_barrier3
 drd/tests/pth_barrier_race
 drd/tests/pth_barrier_reinit
-drd/tests/pth_barrier_thr_cr
 drd/tests/pth_broadcast
 drd/tests/pth_cancel_locked
 drd/tests/pth_cleanup_handler
@@ -109,7 +108,6 @@
 drd/tests/tc06_two_races
 drd/tests/tc07_hbl1
 drd/tests/tc08_hbl2
-drd/tests/tc09_bad_unlock
 drd/tests/tc10_rec_lock
 drd/tests/tc11_XCHG
 drd/tests/tc12_rwl_trivial
@@ -174,7 +172,6 @@
 helgrind/tests/tc22_exit_w_lock
 helgrind/tests/tc23_bogus_condwait
 helgrind/tests/tc24_nonzero_sem
-helgrind/tests/tls_threads
 memcheck/tests/accounting
 memcheck/tests/addressable
 memcheck/tests/arm64-linux/scalar
@@ -194,13 +191,11 @@
 memcheck/tests/err_disable4
 memcheck/tests/err_disable_arange1
 memcheck/tests/leak-autofreepool-5
-memcheck/tests/leak_cpp_interior
 memcheck/tests/linux/lsframe1
 memcheck/tests/linux/lsframe2
 memcheck/tests/linux/with-space
 memcheck/tests/origin5-bz2
 memcheck/tests/origin6-fp
-memcheck/tests/overlap
 memcheck/tests/partial_load_dflt
 memcheck/tests/pdb-realloc2
 memcheck/tests/sh-mem
@@ -208,7 +203,6 @@
 memcheck/tests/sigaltstack
 memcheck/tests/sigkill
 memcheck/tests/signal2
-memcheck/tests/supp_unknown
 memcheck/tests/threadname
 memcheck/tests/threadname_xml
 memcheck/tests/unit_oset
@@ -236,5 +230,4 @@
 memcheck/tests/writev1
 memcheck/tests/xml1
 memcheck/tests/linux/stack_changes
-gdbserver_tests/hginfo
 memcheck/tests/linux/timerfd-syscall
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest b/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest
index caeae84..15cf03f 100755
--- a/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest
@@ -32,13 +32,16 @@
    done
 fi
 
-echo "Run flaky tests using taskset to limit them to a single core."
+echo "Run non-deterministic tests using taskset to limit them to a single core."
 for i in `cat taskset_nondeterministic_tests`; do
-   taskset 0x00000001 perl tests/vg_regtest --valgrind=${VALGRIND_BIN} --valgrind-lib=${VALGRIND_LIBEXECDIR} --yocto-ptest $i 2>&1|tee -a ${LOG}
-   mv $i.vgtest $i.IGNORE
+   # The remove-for-aarch64 and taskset_nondeterministic_tests may overlap so 
+   # check if a file exist.
+   if test -f "${i}.vgtest"; then
+      taskset 0x00000001 perl tests/vg_regtest --valgrind=${VALGRIND_BIN} --valgrind-lib=${VALGRIND_LIBEXECDIR} --yocto-ptest $i 2>&1|tee -a ${LOG}
+      mv $i.vgtest $i.IGNORE
+   fi
 done
 
-
 cd ${VALGRIND_LIB}/ptest && ./tests/vg_regtest \
     --valgrind=${VALGRIND_BIN} \
     --valgrind-lib=${VALGRIND_LIBEXECDIR} \
@@ -51,6 +54,13 @@
     gdbserver_tests ${TOOLS} ${EXP_TOOLS} \
     2>&1|tee -a ${LOG}
 
+echo "Restore non-deterministic tests"
+for i in `cat taskset_nondeterministic_tests`; do
+   if test -f "${i}.vgtest.IGNORE"; then
+      mv $i.IGNORE $i.vgtest;
+   fi
+done
+
 if [ "$arch" = "aarch64" ]; then
    echo "Aarch64: Restore valgrind tests that result in defunct process and then out of memory"
    for i in `cat remove-for-aarch64`; do
@@ -63,11 +73,6 @@
    mv $i.IGNORE $i.vgtest;
 done
 
-echo "Restore flaky and other non-deterministic tests"
-for i in `cat taskset_nondeterministic_tests`; do
-   mv $i.IGNORE $i.vgtest;
-done
-
 echo "Failed test details..."
 failed_tests=`grep FAIL: ${LOG} | awk '{print $2}'`
 for test in $failed_tests; do
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb b/poky/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb
index 6fc2f36..2305889 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb
+++ b/poky/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb
@@ -21,7 +21,6 @@
            file://taskset_nondeterministic_tests \
            file://0004-Fix-out-of-tree-builds.patch \
            file://0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch \
-           file://0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch \
            file://use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch \
            file://avoid-neon-for-targets-which-don-t-support-it.patch \
            file://valgrind-make-ld-XXX.so-strlen-intercept-optional.patch \
@@ -43,6 +42,8 @@
            file://s390x_vec_op_t.patch \
            file://0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch \
            file://0001-memcheck-tests-Fix-timerfd-syscall-test.patch \
+           file://0001-Implement-linux-rseq-syscall-as-ENOSYS.patch \
+           file://0001-docs-Disable-manual-validation.patch \
            "
 SRC_URI[sha256sum] = "00859aa13a772eddf7822225f4b46ee0d39afbe071d32778da4d99984081f7f5"
 UPSTREAM_CHECK_REGEX = "valgrind-(?P<pver>\d+(\.\d+)+)\.tar"
@@ -134,7 +135,8 @@
    perl-module-file-basename perl-module-file-glob perl-module-getopt-long \
    perl-module-overloading perl-module-cwd perl-module-ipc-open3 \
    perl-module-carp perl-module-symbol \
-   procps sed ${PN}-dbg ${PN}-src ${TCLIBC}-src gcc-runtime-dbg"
+   procps sed ${PN}-dbg ${PN}-src ${TCLIBC}-src gcc-runtime-dbg \
+   util-linux-taskset"
 RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils"
 
 # One of the tests contains a bogus interpreter path on purpose.
diff --git a/poky/meta/recipes-example/rust-hello-world/rust-hello-world/0001-enable-LTO.patch b/poky/meta/recipes-example/rust-hello-world/rust-hello-world/0001-enable-LTO.patch
index 56ef9e7..f319545 100644
--- a/poky/meta/recipes-example/rust-hello-world/rust-hello-world/0001-enable-LTO.patch
+++ b/poky/meta/recipes-example/rust-hello-world/rust-hello-world/0001-enable-LTO.patch
@@ -3,6 +3,7 @@
 Date: Fri, 5 Feb 2021 08:56:34 +1000
 Subject: [PATCH] enable LTO
 
+Upstream-Status: Pending
 ---
  Cargo.toml | 3 +++
  1 file changed, 3 insertions(+)
diff --git a/poky/meta/recipes-example/rust-hello-world/rust-hello-world_git.bb b/poky/meta/recipes-example/rust-hello-world/rust-hello-world_git.bb
index 3ebd9cc..1d91109 100644
--- a/poky/meta/recipes-example/rust-hello-world/rust-hello-world_git.bb
+++ b/poky/meta/recipes-example/rust-hello-world/rust-hello-world_git.bb
@@ -1,6 +1,6 @@
 inherit cargo
 
-SRC_URI = "git://github.com/meta-rust/rust-hello-world.git;protocol=https"
+SRC_URI = "git://github.com/meta-rust/rust-hello-world.git;protocol=https;branch=master"
 SRCREV="e0fa23f1a3cb1eb1407165bd2fc36d2f6e6ad728"
 LIC_FILES_CHKSUM="file://COPYRIGHT;md5=e6b2207ac3740d2d01141c49208c2147"
 
diff --git a/poky/meta/recipes-example/rustfmt/rustfmt_1.4.2.bb b/poky/meta/recipes-example/rustfmt/rustfmt_1.4.2.bb
deleted file mode 100644
index 2e4a47e..0000000
--- a/poky/meta/recipes-example/rustfmt/rustfmt_1.4.2.bb
+++ /dev/null
@@ -1,171 +0,0 @@
-# Auto-Generated by cargo-bitbake 0.3.13
-#
-inherit cargo
-
-# If this is git based prefer versioned ones if they exist
-# DEFAULT_PREFERENCE = "-1"
-
-# how to get rustfmt-nightly could be as easy as but default to a git checkout:
-# SRC_URI += "crate://crates.io/rustfmt-nightly/1.4.2"
-SRC_URI += "git://github.com/rust-lang/rustfmt.git;protocol=https;nobranch=1"
-SRCREV = "aeb3496f31a0dfa90fc511520d2023634e885260"
-S = "${WORKDIR}/git"
-CARGO_SRC_DIR = ""
-EXCLUDE_FROM_WORLD = "1"
-
-# 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/aho-corasick/0.7.4 \
-    crate://crates.io/annotate-snippets/0.6.1 \
-    crate://crates.io/ansi_term/0.11.0 \
-    crate://crates.io/argon2rs/0.2.5 \
-    crate://crates.io/arrayvec/0.4.11 \
-    crate://crates.io/atty/0.2.13 \
-    crate://crates.io/autocfg/0.1.5 \
-    crate://crates.io/backtrace-sys/0.1.31 \
-    crate://crates.io/backtrace/0.3.33 \
-    crate://crates.io/bitflags/1.1.0 \
-    crate://crates.io/blake2-rfc/0.2.18 \
-    crate://crates.io/bstr/0.2.6 \
-    crate://crates.io/bytecount/0.5.1 \
-    crate://crates.io/byteorder/1.3.2 \
-    crate://crates.io/c2-chacha/0.2.2 \
-    crate://crates.io/cargo_metadata/0.8.1 \
-    crate://crates.io/cc/1.0.38 \
-    crate://crates.io/cfg-if/0.1.9 \
-    crate://crates.io/clap/2.33.0 \
-    crate://crates.io/cloudabi/0.0.3 \
-    crate://crates.io/constant_time_eq/0.1.3 \
-    crate://crates.io/crossbeam-channel/0.3.9 \
-    crate://crates.io/crossbeam-deque/0.2.0 \
-    crate://crates.io/crossbeam-epoch/0.3.1 \
-    crate://crates.io/crossbeam-utils/0.2.2 \
-    crate://crates.io/crossbeam-utils/0.6.6 \
-    crate://crates.io/derive-new/0.5.7 \
-    crate://crates.io/diff/0.1.11 \
-    crate://crates.io/dirs-sys/0.3.3 \
-    crate://crates.io/dirs/2.0.1 \
-    crate://crates.io/either/1.5.2 \
-    crate://crates.io/ena/0.13.0 \
-    crate://crates.io/env_logger/0.6.2 \
-    crate://crates.io/failure/0.1.5 \
-    crate://crates.io/failure_derive/0.1.5 \
-    crate://crates.io/fnv/1.0.6 \
-    crate://crates.io/fuchsia-cprng/0.1.1 \
-    crate://crates.io/getopts/0.2.19 \
-    crate://crates.io/getrandom/0.1.6 \
-    crate://crates.io/globset/0.4.4 \
-    crate://crates.io/heck/0.3.1 \
-    crate://crates.io/humantime/1.2.0 \
-    crate://crates.io/ignore/0.4.8 \
-    crate://crates.io/indexmap/1.0.2 \
-    crate://crates.io/itertools/0.8.0 \
-    crate://crates.io/itoa/0.4.4 \
-    crate://crates.io/jobserver/0.1.16 \
-    crate://crates.io/lazy_static/1.3.0 \
-    crate://crates.io/libc/0.2.60 \
-    crate://crates.io/lock_api/0.1.5 \
-    crate://crates.io/log/0.4.7 \
-    crate://crates.io/memchr/2.2.1 \
-    crate://crates.io/memoffset/0.2.1 \
-    crate://crates.io/nodrop/0.1.13 \
-    crate://crates.io/num_cpus/1.10.1 \
-    crate://crates.io/owning_ref/0.4.0 \
-    crate://crates.io/packed_simd/0.3.3 \
-    crate://crates.io/parking_lot/0.7.1 \
-    crate://crates.io/parking_lot_core/0.4.0 \
-    crate://crates.io/ppv-lite86/0.2.5 \
-    crate://crates.io/proc-macro2/0.4.30 \
-    crate://crates.io/quick-error/1.2.2 \
-    crate://crates.io/quote/0.6.13 \
-    crate://crates.io/rand/0.6.5 \
-    crate://crates.io/rand/0.7.0 \
-    crate://crates.io/rand_chacha/0.1.1 \
-    crate://crates.io/rand_chacha/0.2.1 \
-    crate://crates.io/rand_core/0.3.1 \
-    crate://crates.io/rand_core/0.4.0 \
-    crate://crates.io/rand_core/0.5.0 \
-    crate://crates.io/rand_hc/0.1.0 \
-    crate://crates.io/rand_hc/0.2.0 \
-    crate://crates.io/rand_isaac/0.1.1 \
-    crate://crates.io/rand_jitter/0.1.4 \
-    crate://crates.io/rand_os/0.1.3 \
-    crate://crates.io/rand_pcg/0.1.2 \
-    crate://crates.io/rand_xorshift/0.1.1 \
-    crate://crates.io/rdrand/0.4.0 \
-    crate://crates.io/redox_syscall/0.1.56 \
-    crate://crates.io/redox_users/0.3.0 \
-    crate://crates.io/regex-syntax/0.6.10 \
-    crate://crates.io/regex/1.2.0 \
-    crate://crates.io/rustc-ap-arena/542.0.0 \
-    crate://crates.io/rustc-ap-graphviz/542.0.0 \
-    crate://crates.io/rustc-ap-rustc_data_structures/542.0.0 \
-    crate://crates.io/rustc-ap-rustc_errors/542.0.0 \
-    crate://crates.io/rustc-ap-rustc_lexer/542.0.0 \
-    crate://crates.io/rustc-ap-rustc_macros/542.0.0 \
-    crate://crates.io/rustc-ap-rustc_target/542.0.0 \
-    crate://crates.io/rustc-ap-serialize/542.0.0 \
-    crate://crates.io/rustc-ap-syntax/542.0.0 \
-    crate://crates.io/rustc-ap-syntax_pos/542.0.0 \
-    crate://crates.io/rustc-demangle/0.1.15 \
-    crate://crates.io/rustc-hash/1.0.1 \
-    crate://crates.io/rustc-rayon-core/0.2.0 \
-    crate://crates.io/rustc-rayon/0.2.0 \
-    crate://crates.io/rustc-workspace-hack/1.0.0 \
-    crate://crates.io/rustc_version/0.2.3 \
-    crate://crates.io/ryu/1.0.0 \
-    crate://crates.io/same-file/1.0.5 \
-    crate://crates.io/scoped-tls/1.0.0 \
-    crate://crates.io/scoped_threadpool/0.1.9 \
-    crate://crates.io/scopeguard/0.3.3 \
-    crate://crates.io/semver-parser/0.7.0 \
-    crate://crates.io/semver/0.9.0 \
-    crate://crates.io/serde/1.0.97 \
-    crate://crates.io/serde_derive/1.0.97 \
-    crate://crates.io/serde_json/1.0.40 \
-    crate://crates.io/smallvec/0.6.10 \
-    crate://crates.io/spin/0.5.0 \
-    crate://crates.io/stable_deref_trait/1.1.1 \
-    crate://crates.io/strsim/0.8.0 \
-    crate://crates.io/structopt-derive/0.2.18 \
-    crate://crates.io/structopt/0.2.18 \
-    crate://crates.io/syn/0.15.42 \
-    crate://crates.io/synstructure/0.10.2 \
-    crate://crates.io/term/0.6.0 \
-    crate://crates.io/termcolor/1.0.5 \
-    crate://crates.io/textwrap/0.11.0 \
-    crate://crates.io/thread_local/0.3.6 \
-    crate://crates.io/toml/0.5.1 \
-    crate://crates.io/ucd-util/0.1.5 \
-    crate://crates.io/unicode-segmentation/1.3.0 \
-    crate://crates.io/unicode-width/0.1.5 \
-    crate://crates.io/unicode-xid/0.1.0 \
-    crate://crates.io/unicode_categories/0.1.1 \
-    crate://crates.io/utf8-ranges/1.0.3 \
-    crate://crates.io/vec_map/0.8.1 \
-    crate://crates.io/walkdir/2.2.9 \
-    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi-util/0.1.2 \
-    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi/0.3.7 \
-    crate://crates.io/wincolor/1.0.1 \
-"
-
-
-
-# FIXME: update generateme with the real MD5 of the license file
-LIC_FILES_CHKSUM = " \
-    file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
-    file://LICENSE-MIT;md5=0b29d505d9225d1f0815cbdcf602b901 \
-"
-
-SUMMARY = "Tool to find and fix Rust formatting issues"
-HOMEPAGE = "https://github.com/rust-lang/rustfmt"
-LICENSE = "Apache-2.0 | MIT"
-
-# includes this file if it exists but does not fail
-# this is useful for anything you may want to override from
-# what cargo-bitbake generates.
-include rustfmt-nightly-${PV}.inc
-include rustfmt-nightly.inc
diff --git a/poky/meta/recipes-extended/acpica/acpica_20210930.bb b/poky/meta/recipes-extended/acpica/acpica_20210930.bb
deleted file mode 100644
index 47f1b62..0000000
--- a/poky/meta/recipes-extended/acpica/acpica_20210930.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "ACPICA tools for the development and debug of ACPI tables"
-DESCRIPTION = "The ACPI Component Architecture (ACPICA) project provides an \
-OS-independent reference implementation of the Advanced Configuration and \
-Power Interface Specification (ACPI). ACPICA code contains those portions of \
-ACPI meant to be directly integrated into the host OS as a kernel-resident \
-subsystem, and a small set of tools to assist in developing and debugging \
-ACPI tables."
-
-HOMEPAGE = "http://www.acpica.org/"
-SECTION = "console/tools"
-
-LICENSE = "Intel | BSD-3-Clause | GPLv2"
-LIC_FILES_CHKSUM = "file://source/compiler/aslcompile.c;beginline=7;endline=150;md5=c33ce358fdcd142684e41e336b7992e8"
-
-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] = "3cd82a281a16bc70c2708665668f138c4fc606c31161d46ce77230454ec04821"
-
-UPSTREAM_CHECK_URI = "https://acpica.org/downloads"
-
-S = "${WORKDIR}/acpica-unix-${PV}"
-
-inherit update-alternatives
-
-ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE:${PN} = "acpixtract acpidump"
-
-EXTRA_OEMAKE = "CC='${CC}' \
-                OPT_CFLAGS=-Wall \
-                DESTDIR=${D} \
-                PREFIX=${prefix} \
-                INSTALLDIR=${bindir} \
-                INSTALLFLAGS= \
-                YACC=bison \
-                YFLAGS='-y --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}' \
-                "
-
-do_install() {
-    oe_runmake install
-}
-
-# iasl*.bb is a subset of this recipe, so RREPLACE it
-PROVIDES = "iasl"
-RPROVIDES:${PN} += "iasl"
-RREPLACES:${PN} += "iasl"
-RCONFLICTS:${PN} += "iasl"
-
-BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-extended/acpica/acpica_20211217.bb b/poky/meta/recipes-extended/acpica/acpica_20211217.bb
new file mode 100644
index 0000000..f88e904
--- /dev/null
+++ b/poky/meta/recipes-extended/acpica/acpica_20211217.bb
@@ -0,0 +1,51 @@
+SUMMARY = "ACPICA tools for the development and debug of ACPI tables"
+DESCRIPTION = "The ACPI Component Architecture (ACPICA) project provides an \
+OS-independent reference implementation of the Advanced Configuration and \
+Power Interface Specification (ACPI). ACPICA code contains those portions of \
+ACPI meant to be directly integrated into the host OS as a kernel-resident \
+subsystem, and a small set of tools to assist in developing and debugging \
+ACPI tables."
+
+HOMEPAGE = "http://www.acpica.org/"
+SECTION = "console/tools"
+
+LICENSE = "Intel | BSD-3-Clause | GPLv2"
+LIC_FILES_CHKSUM = "file://source/compiler/aslcompile.c;beginline=7;endline=150;md5=c33ce358fdcd142684e41e336b7992e8"
+
+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] = "2511f85828820d747fa3e2c3433d3a38c22db3d9c2fd900e1a84eb4173cb5992"
+
+UPSTREAM_CHECK_URI = "https://acpica.org/downloads"
+
+S = "${WORKDIR}/acpica-unix-${PV}"
+
+inherit update-alternatives
+
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE:${PN} = "acpixtract acpidump"
+
+EXTRA_OEMAKE = "CC='${CC}' \
+                OPT_CFLAGS=-Wall \
+                DESTDIR=${D} \
+                PREFIX=${prefix} \
+                INSTALLDIR=${bindir} \
+                INSTALLFLAGS= \
+                YACC=bison \
+                YFLAGS='-y --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}' \
+                "
+
+do_install() {
+    oe_runmake install
+}
+
+# iasl*.bb is a subset of this recipe, so RREPLACE it
+PROVIDES = "iasl"
+RPROVIDES:${PN} += "iasl"
+RREPLACES:${PN} += "iasl"
+RCONFLICTS:${PN} += "iasl"
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-extended/asciidoc/asciidoc_10.0.0.bb b/poky/meta/recipes-extended/asciidoc/asciidoc_10.0.0.bb
deleted file mode 100644
index f7fa668..0000000
--- a/poky/meta/recipes-extended/asciidoc/asciidoc_10.0.0.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Tool for creating HTML, PDF, EPUB, man pages"
-DESCRIPTION = "AsciiDoc is a text document format for writing short documents, \
-articles, books and UNIX man pages."
-
-HOMEPAGE = "http://asciidoc.org/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=4e5d1baf6f20559e3bec172226a47e4e \
-                    file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 "
-
-SRC_URI = "git://github.com/asciidoc/asciidoc-py3;protocol=https;branch=main"
-SRCREV = "4667219e473a24e8e645eb9b9fb0a7ddba322f44"
-
-DEPENDS = "libxml2-native libxslt-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
-
-S = "${WORKDIR}/git"
-
-# Tell xmllint where to find the DocBook XML catalogue, because right now it
-# opens /etc/xml/catalog on the host. Depends on auto-catalogs.patch
-export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/catalog"
-
-inherit setuptools3
-CLEANBROKEN = "1"
-
-BBCLASSEXTEND = "native nativesdk"
-
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))$"
diff --git a/poky/meta/recipes-extended/asciidoc/asciidoc_10.1.1.bb b/poky/meta/recipes-extended/asciidoc/asciidoc_10.1.1.bb
new file mode 100644
index 0000000..1e7bcae
--- /dev/null
+++ b/poky/meta/recipes-extended/asciidoc/asciidoc_10.1.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Tool for creating HTML, PDF, EPUB, man pages"
+DESCRIPTION = "AsciiDoc is a text document format for writing short documents, \
+articles, books and UNIX man pages."
+
+HOMEPAGE = "http://asciidoc.org/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=4e5d1baf6f20559e3bec172226a47e4e \
+                    file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 "
+
+SRC_URI = "git://github.com/asciidoc/asciidoc-py3;protocol=https;branch=main"
+SRCREV = "9bb083349e66a6b7195675b04e9adb2d6e21093f"
+
+DEPENDS = "libxml2-native libxslt-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
+
+S = "${WORKDIR}/git"
+
+# Tell xmllint where to find the DocBook XML catalogue, because right now it
+# opens /etc/xml/catalog on the host. Depends on auto-catalogs.patch
+export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/catalog"
+
+inherit setuptools3
+CLEANBROKEN = "1"
+
+BBCLASSEXTEND = "native nativesdk"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))$"
diff --git a/poky/meta/recipes-extended/bash/bash_5.1.16.bb b/poky/meta/recipes-extended/bash/bash_5.1.16.bb
new file mode 100644
index 0000000..468964f
--- /dev/null
+++ b/poky/meta/recipes-extended/bash/bash_5.1.16.bb
@@ -0,0 +1,25 @@
+require bash.inc
+
+# GPLv2+ (< 4.0), GPLv3+ (>= 4.0)
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \
+           file://execute_cmd.patch \
+           file://mkbuiltins_have_stringize.patch \
+           file://build-tests.patch \
+           file://test-output.patch \
+           file://run-ptest \
+           file://run-bash-ptests \
+           file://fix-run-builtins.patch \
+           file://use_aclocal.patch \
+           file://makerace.patch \
+           file://makerace2.patch \
+           "
+
+SRC_URI[tarball.sha256sum] = "5bac17218d3911834520dad13cd1f85ab944e1c09ae1aba55906be1f8192f558"
+
+DEBUG_OPTIMIZATION:append:armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
+DEBUG_OPTIMIZATION:append:armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-extended/bash/bash_5.1.8.bb b/poky/meta/recipes-extended/bash/bash_5.1.8.bb
deleted file mode 100644
index 9400835..0000000
--- a/poky/meta/recipes-extended/bash/bash_5.1.8.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-require bash.inc
-
-# GPLv2+ (< 4.0), GPLv3+ (>= 4.0)
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \
-           file://execute_cmd.patch \
-           file://mkbuiltins_have_stringize.patch \
-           file://build-tests.patch \
-           file://test-output.patch \
-           file://run-ptest \
-           file://run-bash-ptests \
-           file://fix-run-builtins.patch \
-           file://use_aclocal.patch \
-           file://makerace.patch \
-           file://makerace2.patch \
-           "
-
-SRC_URI[tarball.sha256sum] = "0cfb5c9bb1a29f800a97bd242d19511c997a1013815b805e0fdd32214113d6be"
-
-DEBUG_OPTIMIZATION:append:armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
-DEBUG_OPTIMIZATION:append:armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb b/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
index 296bc68..ab63012 100644
--- a/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
+++ b/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
@@ -22,7 +22,7 @@
 "
 
 SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \
-           git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests \
+           git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests;branch=master \
            file://configure.ac;subdir=${BP} \
            file://Makefile.am;subdir=${BP} \
            file://run-ptest \
diff --git a/poky/meta/recipes-extended/cracklib/cracklib/0001-Apply-patch-to-fix-CVE-2016-6318.patch b/poky/meta/recipes-extended/cracklib/cracklib/0001-Apply-patch-to-fix-CVE-2016-6318.patch
deleted file mode 100644
index b251ac9..0000000
--- a/poky/meta/recipes-extended/cracklib/cracklib/0001-Apply-patch-to-fix-CVE-2016-6318.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 47e5dec521ab6243c9b249dd65b93d232d90d6b1 Mon Sep 17 00:00:00 2001
-From: Jan Dittberner <jan@dittberner.info>
-Date: Thu, 25 Aug 2016 17:13:49 +0200
-Subject: [PATCH] Apply patch to fix CVE-2016-6318
-
-This patch fixes an issue with a stack-based buffer overflow when
-parsing large GECOS field. See
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6318 and
-https://security-tracker.debian.org/tracker/CVE-2016-6318 for more
-information.
-
-Upstream-Status: Backport [https://github.com/cracklib/cracklib/commit/47e5dec521ab6243c9b249dd65b93d232d90d6b1]
-CVE: CVE-2016-6318
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- lib/fascist.c | 57 ++++++++++++++++++++++++++++++++-----------------------
- 1 file changed, 33 insertions(+), 24 deletions(-)
-
-diff --git a/lib/fascist.c b/lib/fascist.c
-index a996509..d4deb15 100644
---- a/lib/fascist.c
-+++ b/lib/fascist.c
-@@ -502,7 +502,7 @@ FascistGecosUser(char *password, const char *user, const char *gecos)
-     char gbuffer[STRINGSIZE];
-     char tbuffer[STRINGSIZE];
-     char *uwords[STRINGSIZE];
--    char longbuffer[STRINGSIZE * 2];
-+    char longbuffer[STRINGSIZE];
- 
-     if (gecos == NULL)
- 	gecos = "";
-@@ -583,38 +583,47 @@ FascistGecosUser(char *password, const char *user, const char *gecos)
-     {
- 	for (i = 0; i < j; i++)
- 	{
--	    strcpy(longbuffer, uwords[i]);
--	    strcat(longbuffer, uwords[j]);
--
--	    if (GTry(longbuffer, password))
-+	    if (strlen(uwords[i]) + strlen(uwords[j]) < STRINGSIZE)
- 	    {
--		return _("it is derived from your password entry");
--	    }
-+		strcpy(longbuffer, uwords[i]);
-+		strcat(longbuffer, uwords[j]);
- 
--	    strcpy(longbuffer, uwords[j]);
--	    strcat(longbuffer, uwords[i]);
-+		if (GTry(longbuffer, password))
-+		{
-+		    return _("it is derived from your password entry");
-+		}
- 
--	    if (GTry(longbuffer, password))
--	    {
--		return _("it's derived from your password entry");
--	    }
-+		strcpy(longbuffer, uwords[j]);
-+		strcat(longbuffer, uwords[i]);
- 
--	    longbuffer[0] = uwords[i][0];
--	    longbuffer[1] = '\0';
--	    strcat(longbuffer, uwords[j]);
-+		if (GTry(longbuffer, password))
-+		{
-+		   return _("it's derived from your password entry");
-+		}
-+	    }
- 
--	    if (GTry(longbuffer, password))
-+	    if (strlen(uwords[j]) < STRINGSIZE - 1)
- 	    {
--		return _("it is derivable from your password entry");
-+		longbuffer[0] = uwords[i][0];
-+		longbuffer[1] = '\0';
-+		strcat(longbuffer, uwords[j]);
-+
-+		if (GTry(longbuffer, password))
-+		{
-+		    return _("it is derivable from your password entry");
-+		}
- 	    }
- 
--	    longbuffer[0] = uwords[j][0];
--	    longbuffer[1] = '\0';
--	    strcat(longbuffer, uwords[i]);
--
--	    if (GTry(longbuffer, password))
-+	    if (strlen(uwords[i]) < STRINGSIZE - 1)
- 	    {
--		return _("it's derivable from your password entry");
-+		longbuffer[0] = uwords[j][0];
-+		longbuffer[1] = '\0';
-+		strcat(longbuffer, uwords[i]);
-+
-+		if (GTry(longbuffer, password))
-+		{
-+		    return _("it's derivable from your password entry");
-+		}
- 	    }
- 	}
-     }
--- 
-2.8.1
-
diff --git a/poky/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch b/poky/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch
index adbe7df..8fb512a 100644
--- a/poky/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch
+++ b/poky/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch
@@ -1,7 +1,7 @@
-From 8a6e43726ad0ae41bd1cc2c248d91deb31459357 Mon Sep 17 00:00:00 2001
+From aae03b7e626d5f62ab929d51d11352a5a2ff6b2d Mon Sep 17 00:00:00 2001
 From: Lei Maohui <leimaohui@cn.fujitsu.com>
 Date: Tue, 9 Jun 2015 11:11:48 +0900
-Subject: [PATCH] packlib.c: support dictionary byte order dependent
+Subject: [PATCH 1/2] packlib.c: support dictionary byte order dependent
 
 The previous dict files are NOT byte-order independent, in fact they are
 probably ARCHITECTURE SPECIFIC.
@@ -9,7 +9,7 @@
 load them. This could fix the endian issue on multiple platform.
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/cracklib/cracklib/pull/41]
 
 We can't use the endian.h, htobe* and be*toh functions because they are
 not available on older versions of glibc, such as that found in RHEL
@@ -22,11 +22,11 @@
 
 Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
 ---
- lib/packlib.c | 214 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ lib/packlib.c | 214 +++++++++++++++++++++++++++++++++++++++++++++-
  1 file changed, 210 insertions(+), 4 deletions(-)
 
 diff --git a/lib/packlib.c b/lib/packlib.c
-index f851424..3aac805 100644
+index 8acb7be..a9d8750 100644
 --- a/lib/packlib.c
 +++ b/lib/packlib.c
 @@ -16,6 +16,12 @@
@@ -317,7 +317,7 @@
 +	fwrite((char *) &tmpdatum, sizeof(tmpdatum), 1, pwp->ifp);
  
  	fputs(pwp->data_put[0], pwp->dfp);
- 	putc(0, pwp->dfp);
+ 	putc(0, (FILE*) pwp->dfp);
 @@ -464,6 +668,7 @@ GetPW(pwp, number)
             perror("(index fread failed)");
             return NULL;
@@ -335,5 +335,5 @@
  
  	int r = 1;
 -- 
-1.8.4.2
+2.20.1
 
diff --git a/poky/meta/recipes-extended/cracklib/cracklib/0002-craklib-fix-testnum-and-teststr-failed.patch b/poky/meta/recipes-extended/cracklib/cracklib/0002-craklib-fix-testnum-and-teststr-failed.patch
index 6210e82..1ee9735 100644
--- a/poky/meta/recipes-extended/cracklib/cracklib/0002-craklib-fix-testnum-and-teststr-failed.patch
+++ b/poky/meta/recipes-extended/cracklib/cracklib/0002-craklib-fix-testnum-and-teststr-failed.patch
@@ -1,7 +1,7 @@
-From 06f9a88b5dd5597f9198ea0cb34f5e96f180e6e3 Mon Sep 17 00:00:00 2001
+From 7250328d7f77069726603ef7132826c9260d3c92 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Sat, 27 Apr 2013 16:02:30 +0800
-Subject: [PATCH] craklib:fix testnum and teststr failed
+Subject: [PATCH 2/2] craklib:fix testnum and teststr failed
 
 Error log:
 ...
@@ -16,10 +16,10 @@
 Set DEFAULT_CRACKLIB_DICT as the path of  PWOpen
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/cracklib/cracklib/pull/42]
 ---
- util/testnum.c |    2 +-
- util/teststr.c |    2 +-
+ util/testnum.c | 2 +-
+ util/teststr.c | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/util/testnum.c b/util/testnum.c
@@ -49,5 +49,5 @@
  	perror ("PWOpen");
  	return (-1);
 -- 
-1.7.10.4
+2.20.1
 
diff --git a/poky/meta/recipes-extended/cracklib/cracklib_2.9.5.bb b/poky/meta/recipes-extended/cracklib/cracklib_2.9.5.bb
deleted file mode 100644
index c267718..0000000
--- a/poky/meta/recipes-extended/cracklib/cracklib_2.9.5.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Password strength checker library"
-HOMEPAGE = "https://github.com/cracklib/cracklib"
-DESCRIPTION = "${SUMMARY}"
-
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06"
-
-DEPENDS = "cracklib-native zlib"
-
-EXTRA_OECONF = "--without-python --libdir=${base_libdir}"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/cracklib/cracklib-${PV}.tar.gz \
-           file://0001-packlib.c-support-dictionary-byte-order-dependent.patch \
-           file://0001-Apply-patch-to-fix-CVE-2016-6318.patch \
-           file://0002-craklib-fix-testnum-and-teststr-failed.patch"
-
-SRC_URI[md5sum] = "376790a95c1fb645e59e6e9803c78582"
-SRC_URI[sha256sum] = "59ab0138bc8cf90cccb8509b6969a024d5e58d2d02bcbdccbb9ba9b88be3fa33"
-
-UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/cracklib/files/cracklib/"
-UPSTREAM_CHECK_REGEX = "/cracklib/(?P<pver>(\d+[\.\-_]*)+)/"
-
-inherit autotools gettext
-
-do_install:append:class-target() {
-	create-cracklib-dict -o ${D}${datadir}/cracklib/pw_dict ${D}${datadir}/cracklib/cracklib-small
-}
-
-BBCLASSEXTEND = "native nativesdk"
-
diff --git a/poky/meta/recipes-extended/cracklib/cracklib_2.9.7.bb b/poky/meta/recipes-extended/cracklib/cracklib_2.9.7.bb
new file mode 100644
index 0000000..2537962
--- /dev/null
+++ b/poky/meta/recipes-extended/cracklib/cracklib_2.9.7.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Password strength checker library"
+HOMEPAGE = "https://github.com/cracklib/cracklib"
+DESCRIPTION = "${SUMMARY}"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06"
+
+DEPENDS = "cracklib-native zlib"
+
+EXTRA_OECONF = "--without-python --libdir=${base_libdir}"
+
+SRC_URI = "git://github.com/cracklib/cracklib;protocol=https;branch=master \
+           file://0001-packlib.c-support-dictionary-byte-order-dependent.patch \
+           file://0002-craklib-fix-testnum-and-teststr-failed.patch"
+
+SRCREV = "f83934cf3cced0c9600c7d81332f4169f122a2cf"
+S = "${WORKDIR}/git/src"
+
+inherit autotools gettext
+
+# This is custom stuff from upstream's autogen.sh
+do_configure:prepend() {
+    mkdir -p ${S}/m4
+    echo EXTRA_DIST = *.m4 > ${S}/m4/Makefile.am
+    touch ${S}/ABOUT-NLS
+}
+
+do_install:append:class-target() {
+	create-cracklib-dict -o ${D}${datadir}/cracklib/pw_dict ${D}${datadir}/cracklib/cracklib-small
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/poky/meta/recipes-extended/cups/cups.inc b/poky/meta/recipes-extended/cups/cups.inc
index 2994973..05c1e34 100644
--- a/poky/meta/recipes-extended/cups/cups.inc
+++ b/poky/meta/recipes-extended/cups/cups.inc
@@ -40,9 +40,9 @@
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
                    ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)}"
-PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
+PACKAGECONFIG[avahi] = "--with-dnssd=avahi,--with-dnssd=no,avahi"
 PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl"
-PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls"
+PACKAGECONFIG[gnutls] = "--with-tls=gnutls,--with-tls=no,gnutls"
 PACKAGECONFIG[pam] = "--enable-pam --with-pam-module=unix, --disable-pam, libpam"
 PACKAGECONFIG[systemd] = "--with-systemd=${systemd_system_unitdir},--without-systemd,systemd"
 PACKAGECONFIG[xinetd] = "--with-xinetd=${sysconfdir}/xinetd.d,--without-xinetd,xinetd"
@@ -57,6 +57,7 @@
                --with-system-groups=lpadmin \
                --with-cups-group=lp \
                --with-domainsocket=/run/cups/cups.sock \
+               --with-pkgconfpath=${libdir}/pkgconfig \
                DSOFLAGS='${LDFLAGS}' \
                "
 
diff --git a/poky/meta/recipes-extended/cups/cups/libexecdir.patch b/poky/meta/recipes-extended/cups/cups/libexecdir.patch
index 2e15841..7ccad94 100644
--- a/poky/meta/recipes-extended/cups/cups/libexecdir.patch
+++ b/poky/meta/recipes-extended/cups/cups/libexecdir.patch
@@ -1,27 +1,35 @@
-Use $libexecdir instead of hardcoding $prefix/lib as this breaks multilib builds.
+From 1724f7bcdbcfdb445778f8a2e530c5c094c18c10 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Tue, 13 Jul 2021 12:56:30 +0100
+Subject: [PATCH] Use $libexecdir instead of hardcoding $prefix/lib as this
+ breaks multilib builds.
 
-Upstream-Status: Inappropriate
+Upstream-Status: Pending
 Signed-off-by: Ross Burton <ross.burton@arm.com>
 
+---
+ config-scripts/cups-directories.m4 | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
 diff --git a/config-scripts/cups-directories.m4 b/config-scripts/cups-directories.m4
-index 1430af3a6..6efedc604 100644
+index 2033d47..230166e 100644
 --- a/config-scripts/cups-directories.m4
 +++ b/config-scripts/cups-directories.m4
-@@ -265,7 +265,7 @@ case "$host_os_name" in
- 	*-gnu)
- 		# GNUs
- 		INSTALL_SYSV="install-sysv"
--		CUPS_SERVERBIN="$exec_prefix/lib/cups"
-+		CUPS_SERVERBIN="$libexecdir/cups"
- 		;;
- 	*bsd* | darwin*)
- 		# *BSD and Darwin (macOS)
-@@ -275,7 +275,7 @@ case "$host_os_name" in
- 	*)
- 		# All others
- 		INSTALL_SYSV="install-sysv"
--		CUPS_SERVERBIN="$exec_prefix/lib/cups"
-+		CUPS_SERVERBIN="$libexecdir/cups"
- 		;;
- esac
- 
\ No newline at end of file
+@@ -239,7 +239,7 @@ AC_SUBST([CUPS_REQUESTS])
+ AS_CASE(["$host_os_name"], [*-gnu], [
+     # GNUs
+     INSTALL_SYSV="install-sysv"
+-    CUPS_SERVERBIN="$exec_prefix/lib/cups"
++    CUPS_SERVERBIN="$libexecdir/cups"
+ ], [*bsd* | darwin*], [
+     # *BSD and Darwin (macOS)
+     INSTALL_SYSV=""
+@@ -247,7 +247,7 @@ AS_CASE(["$host_os_name"], [*-gnu], [
+ ], [*], [
+     # All others
+     INSTALL_SYSV="install-sysv"
+-    CUPS_SERVERBIN="$exec_prefix/lib/cups"
++    CUPS_SERVERBIN="$libexecdir/cups"
+ ])
+ 
+ AC_DEFINE_UNQUOTED([CUPS_SERVERBIN], ["$CUPS_SERVERBIN"], [Location of server programs.])
diff --git a/poky/meta/recipes-extended/cups/cups_2.3.3op2.bb b/poky/meta/recipes-extended/cups/cups_2.3.3op2.bb
deleted file mode 100644
index fc2aa70..0000000
--- a/poky/meta/recipes-extended/cups/cups_2.3.3op2.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require cups.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI[sha256sum] = "deb3575bbe79c0ae963402787f265bfcf8d804a71fc2c94318a74efec86f96df"
diff --git a/poky/meta/recipes-extended/cups/cups_2.4.0.bb b/poky/meta/recipes-extended/cups/cups_2.4.0.bb
new file mode 100644
index 0000000..42be34c
--- /dev/null
+++ b/poky/meta/recipes-extended/cups/cups_2.4.0.bb
@@ -0,0 +1,5 @@
+require cups.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "9abecec128ca6847c5bb2d3e3d30c87b782c0697b9acf284d16fa38f80a3a6de"
diff --git a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
index e4abadb..0ec3537 100644
--- a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
+++ b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
@@ -19,7 +19,7 @@
 --- a/configure.ac
 +++ b/configure.ac
 @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
- AC_INIT(ethtool, 5.14, netdev@vger.kernel.org)
+ AC_INIT(ethtool, 5.15, netdev@vger.kernel.org)
  AC_PREREQ(2.52)
  AC_CONFIG_SRCDIR([ethtool.c])
 -AM_INIT_AUTOMAKE([gnu subdir-objects])
diff --git a/poky/meta/recipes-extended/ethtool/ethtool_5.14.bb b/poky/meta/recipes-extended/ethtool/ethtool_5.14.bb
deleted file mode 100644
index 28a49f4..0000000
--- a/poky/meta/recipes-extended/ethtool/ethtool_5.14.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "Display or change ethernet card settings"
-DESCRIPTION = "A small utility for examining and tuning the settings of your ethernet-based network interfaces."
-HOMEPAGE = "http://www.kernel.org/pub/software/network/ethtool/"
-SECTION = "console/network"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://ethtool.c;beginline=4;endline=17;md5=c19b30548c582577fc6b443626fc1216"
-
-SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \
-           file://run-ptest \
-           file://avoid_parallel_tests.patch \
-           "
-
-SRC_URI[sha256sum] = "9868604c913e5483000c00d5dcb2bb3169a05252de47f62174702ff19cf6de7a"
-
-UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/"
-
-inherit autotools ptest bash-completion pkgconfig
-
-RDEPENDS:${PN}-ptest += "make"
-
-PACKAGECONFIG ?= "netlink"
-PACKAGECONFIG[netlink] = "--enable-netlink,--disable-netlink,libmnl,"
-
-do_compile_ptest() {
-   oe_runmake buildtest-TESTS
-}
-
-do_install_ptest () {
-   cp ${B}/Makefile                 ${D}${PTEST_PATH}
-   install ${B}/test-cmdline        ${D}${PTEST_PATH}
-   if ${@bb.utils.contains('PACKAGECONFIG', 'netlink', 'false', 'true', d)}; then
-       install ${B}/test-features       ${D}${PTEST_PATH}
-   fi
-   install ${B}/ethtool             ${D}${PTEST_PATH}/ethtool
-   sed -i 's/^Makefile/_Makefile/'  ${D}${PTEST_PATH}/Makefile
-}
diff --git a/poky/meta/recipes-extended/ethtool/ethtool_5.15.bb b/poky/meta/recipes-extended/ethtool/ethtool_5.15.bb
new file mode 100644
index 0000000..4192dec
--- /dev/null
+++ b/poky/meta/recipes-extended/ethtool/ethtool_5.15.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Display or change ethernet card settings"
+DESCRIPTION = "A small utility for examining and tuning the settings of your ethernet-based network interfaces."
+HOMEPAGE = "http://www.kernel.org/pub/software/network/ethtool/"
+SECTION = "console/network"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://ethtool.c;beginline=4;endline=17;md5=c19b30548c582577fc6b443626fc1216"
+
+SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \
+           file://run-ptest \
+           file://avoid_parallel_tests.patch \
+           "
+
+SRC_URI[sha256sum] = "a6a1638192209269ca74a29d73903f28531ebdf0794f3e0bdfdbdee2dc75d98b"
+
+UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/"
+
+inherit autotools ptest bash-completion pkgconfig
+
+RDEPENDS:${PN}-ptest += "make"
+
+PACKAGECONFIG ?= "netlink"
+PACKAGECONFIG[netlink] = "--enable-netlink,--disable-netlink,libmnl,"
+
+do_compile_ptest() {
+   oe_runmake buildtest-TESTS
+}
+
+do_install_ptest () {
+   cp ${B}/Makefile                 ${D}${PTEST_PATH}
+   install ${B}/test-cmdline        ${D}${PTEST_PATH}
+   if ${@bb.utils.contains('PACKAGECONFIG', 'netlink', 'false', 'true', d)}; then
+       install ${B}/test-features       ${D}${PTEST_PATH}
+   fi
+   install ${B}/ethtool             ${D}${PTEST_PATH}/ethtool
+   sed -i 's/^Makefile/_Makefile/'  ${D}${PTEST_PATH}/Makefile
+}
diff --git a/poky/meta/recipes-extended/gawk/gawk/0001-Use-cross-AR-during-compile.patch b/poky/meta/recipes-extended/gawk/gawk/0001-Use-cross-AR-during-compile.patch
deleted file mode 100644
index be6dbe1..0000000
--- a/poky/meta/recipes-extended/gawk/gawk/0001-Use-cross-AR-during-compile.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From 47dce6a7002a8d7b818c19d574d81327b769871b Mon Sep 17 00:00:00 2001
-From: "Arnold D. Robbins" <arnold@skeeve.com>
-Date: Fri, 5 Jun 2020 13:14:54 +0300
-Subject: Allow for cross-compile version of ar.
-
----
- configure.ac | 3 +++
- 1 file changed, 3 insertions(+)
-
-(limited to 'configure.ac')
-
-diff --git a/configure.ac b/configure.ac
-index 31364ab8..8c256f21 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -105,6 +105,9 @@ AC_EXEEXT
- AC_PROG_INSTALL
- AC_PROG_MAKE_SET
- 
-+# support/ builds libsupport.a, allow for cross version of ar
-+AM_PROG_AR
-+
- # This is mainly for my use during testing and development.
- # Yes, it's a bit of a hack.
- AC_MSG_CHECKING([for special development options])
--- 
-cgit v1.2.1
diff --git a/poky/meta/recipes-extended/gawk/gawk/remove-sensitive-tests.patch b/poky/meta/recipes-extended/gawk/gawk/remove-sensitive-tests.patch
new file mode 100644
index 0000000..167c078
--- /dev/null
+++ b/poky/meta/recipes-extended/gawk/gawk/remove-sensitive-tests.patch
@@ -0,0 +1,24 @@
+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>
+
+--- a/test/Maketests~
++++ b/test/Maketests
+@@ -2069,7 +2069,2 @@
+
+-timeout:
+-	@echo $@ $(ZOS_FAIL)
+-	@AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+-	@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+-
+ typedregex1:
+@@ -2297,7 +2292,2 @@
+ 	@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+-
+-time:
+-	@echo $@
+-	@AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+-	@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
diff --git a/poky/meta/recipes-extended/gawk/gawk/test-time.patch b/poky/meta/recipes-extended/gawk/gawk/test-time.patch
deleted file mode 100644
index 05a68c5..0000000
--- a/poky/meta/recipes-extended/gawk/gawk/test-time.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-The test time.awk does a sleep() and checks that the real sleep duration is
-close to the expected duration.
-
-As currently our tests can run on a heavily loaded system, increase the range of
-a passing duration.
-
-Upstream-Status: Inappropriate
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-diff --git a/test/time.awk b/test/time.awk
-index 517377e2..ca81d92d 100644
---- a/test/time.awk
-+++ b/test/time.awk
-@@ -16,7 +16,7 @@ BEGIN {
-    printf "sleep(%s) = %s\n",delta,sleep(delta)
-    t1 = timecheck()
-    slept = t1-t0
--   if ((slept < 0.9*delta) || (slept > 1.3*delta))
-+   if ((slept < 0.5*delta) || (slept > 2*delta))
-       printf "Warning: tried to sleep %.2f secs, but slept for %.2f secs\n",
- 	     delta,slept
- }
diff --git a/poky/meta/recipes-extended/gawk/gawk_5.1.0.bb b/poky/meta/recipes-extended/gawk/gawk_5.1.0.bb
deleted file mode 100644
index 0961efa..0000000
--- a/poky/meta/recipes-extended/gawk/gawk_5.1.0.bb
+++ /dev/null
@@ -1,61 +0,0 @@
-SUMMARY = "GNU awk text processing utility"
-DESCRIPTION = "The GNU version of awk, a text processing utility. \
-Awk interprets a special-purpose programming language to do \
-quick and easy text pattern matching and reformatting jobs."
-HOMEPAGE = "https://www.gnu.org/software/gawk/"
-BUGTRACKER  = "bug-gawk@gnu.org"
-SECTION = "console/utils"
-
-# gawk <= 3.1.5: GPLv2
-# gawk >= 3.1.6: GPLv3
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-PACKAGECONFIG ??= "readline"
-PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
-PACKAGECONFIG[mpfr] = "--with-mpfr,--without-mpfr, mpfr"
-
-SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \
-           file://run-ptest \
-           file://0001-Use-cross-AR-during-compile.patch \
-           file://test-time.patch \
-"
-
-SRC_URI[md5sum] = "f719bc9966df28e67fc6ebc405e7ea03"
-SRC_URI[sha256sum] = "03a0360edcd84bec156fe211bbc4fc8c78790973ce4e8b990a11d778d40b1a26"
-
-inherit autotools gettext texinfo update-alternatives
-
-FILES:${PN} += "${datadir}/awk"
-FILES:${PN}-dev += "${libdir}/${BPN}/*.la"
-
-ALTERNATIVE:${PN} = "awk"
-ALTERNATIVE_TARGET[awk] = "${bindir}/gawk"
-ALTERNATIVE_PRIORITY = "100"
-
-do_install:append() {
-	# remove the link since we don't package it
-	rm ${D}${bindir}/awk
-}
-
-inherit ptest
-
-do_install_ptest() {
-	mkdir ${D}${PTEST_PATH}/test
-	ln -s ${bindir}/gawk ${D}${PTEST_PATH}/gawk
-	for i in `grep -vE "@|^$|#|Gt-dummy" ${S}/test/Maketests |awk -F: '{print $1}'` Maketests inclib.awk; \
-	  do cp ${S}/test/$i* ${D}${PTEST_PATH}/test; \
-	done
-	sed -i -e 's|/usr/local/bin|${bindir}|g' \
-	    -e 's|#!${base_bindir}/awk|#!${bindir}/awk|g' ${D}${PTEST_PATH}/test/*.awk
-
-        sed -i -e "s|GAWKLOCALE|LANG|g" ${D}${PTEST_PATH}/test/Maketests
-}
-
-RDEPENDS:${PN}-ptest += "make"
-
-RDEPENDS:${PN}-ptest:append:libc-glibc = "\
-     locale-base-en-us.iso-8859-1 \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/gawk/gawk_5.1.1.bb b/poky/meta/recipes-extended/gawk/gawk_5.1.1.bb
new file mode 100644
index 0000000..8990253
--- /dev/null
+++ b/poky/meta/recipes-extended/gawk/gawk_5.1.1.bb
@@ -0,0 +1,64 @@
+SUMMARY = "GNU awk text processing utility"
+DESCRIPTION = "The GNU version of awk, a text processing utility. \
+Awk interprets a special-purpose programming language to do \
+quick and easy text pattern matching and reformatting jobs."
+HOMEPAGE = "https://www.gnu.org/software/gawk/"
+BUGTRACKER  = "bug-gawk@gnu.org"
+SECTION = "console/utils"
+
+# gawk <= 3.1.5: GPLv2
+# gawk >= 3.1.6: GPLv3
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+PACKAGECONFIG ??= "readline"
+PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
+PACKAGECONFIG[mpfr] = "--with-mpfr,--without-mpfr, mpfr"
+
+SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \
+           file://remove-sensitive-tests.patch \
+           file://run-ptest \
+           "
+
+SRC_URI[sha256sum] = "6168d8d1dc8f74bd17d9dc22fa9634c49070f232343b744901da15fb4f06bffd"
+
+inherit autotools gettext texinfo update-alternatives
+
+FILES:${PN} += "${datadir}/awk"
+FILES:${PN}-dev += "${libdir}/${BPN}/*.la"
+
+ALTERNATIVE:${PN} = "awk"
+ALTERNATIVE_TARGET[awk] = "${bindir}/gawk"
+ALTERNATIVE_PRIORITY = "100"
+
+do_install:append() {
+	# remove the link since we don't package it
+	rm ${D}${bindir}/awk
+}
+
+inherit ptest
+
+do_install_ptest() {
+	mkdir ${D}${PTEST_PATH}/test
+	ln -s ${bindir}/gawk ${D}${PTEST_PATH}/gawk
+	# The list of tests is all targets in Maketests, apart from the dummy Gt-dummy
+	TESTS=$(awk -F: '$1 == "Gt-dummy" { next } /[[:alnum:]]+:$/ { print $1 }' ${S}/test/Maketests)
+	for i in $TESTS Maketests inclib.awk; do
+		cp ${S}/test/$i* ${D}${PTEST_PATH}/test
+	done
+	sed -i -e 's|/usr/local/bin|${bindir}|g' \
+	    -e 's|#!${base_bindir}/awk|#!${bindir}/awk|g' ${D}${PTEST_PATH}/test/*.awk
+
+	sed -i -e "s|GAWKLOCALE|LANG|g" ${D}${PTEST_PATH}/test/Maketests
+
+	# These tests require an unloaded host as otherwise timing sensitive tests can fail
+	# https://bugzilla.yoctoproject.org/show_bug.cgi?id=14371
+	rm -f ${D}${PTEST_PATH}/test/time.*
+	rm -f ${D}${PTEST_PATH}/test/timeout.*
+}
+
+RDEPENDS:${PN}-ptest += "make"
+
+RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us.iso-8859-1"
+
+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 aeff482..b3a8631 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
@@ -5,11 +5,11 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
-SRC_URI = "git://${GO_IMPORT}"
-SRCREV = "46695d81d1fae905a270fb7db8a4d11a334562fe"
+SRC_URI = "git://go.googlesource.com/example;branch=master;protocol=https"
+SRCREV = "787a929d5a0dfb8bbfcdd2c4a62e0fd89466113f"
 UPSTREAM_CHECK_COMMITS = "1"
 
-GO_IMPORT = "github.com/golang/example"
+GO_IMPORT = "golang.org/x/example"
 GO_INSTALL = "${GO_IMPORT}/hello"
 GO_WORKDIR = "${GO_INSTALL}"
 export GO111MODULE="off"
diff --git a/poky/meta/recipes-extended/groff/files/0001-Include-config.h.patch b/poky/meta/recipes-extended/groff/files/0001-Include-config.h.patch
index 46065bc..99f590b 100644
--- a/poky/meta/recipes-extended/groff/files/0001-Include-config.h.patch
+++ b/poky/meta/recipes-extended/groff/files/0001-Include-config.h.patch
@@ -20,7 +20,11 @@
 We delete eqn.cpp and qen.hpp in do_configure
 to ensure they're regenerated and deterministic.
 
-Upstream-Status: Pending
+Issue is fixed upstream with similar patches:
+https://git.savannah.gnu.org/cgit/groff.git/commit/?id=979f3f4266151c7681a68a40d2c4913842a7271d
+https://git.savannah.gnu.org/cgit/groff.git/commit/?id=fe121eeacd53c96105f23209b2c205f436f97359
+
+Upstream-Status: Backport [see links above]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  src/libs/libgroff/assert.cpp  |   4 +
diff --git a/poky/meta/recipes-extended/hdparm/hdparm_9.62.bb b/poky/meta/recipes-extended/hdparm/hdparm_9.62.bb
deleted file mode 100644
index 61bb44f..0000000
--- a/poky/meta/recipes-extended/hdparm/hdparm_9.62.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Utility for viewing/manipulating IDE disk drive/driver parameters"
-HOMEPAGE = "http://sourceforge.net/projects/hdparm/"
-DESCRIPTION = "hdparm is a Linux shell utility for viewing \
-and manipulating various IDE drive and driver parameters."
-SECTION = "console/utils"
-
-LICENSE = "BSD-2-Clause & GPLv2 & hdparm"
-LICENSE:${PN} = "BSD-2-Clause & hdparm"
-LICENSE:${PN}-dbg = "BSD-2-Clause & hdparm"
-LICENSE:wiper = "GPLv2"
-NO_GENERIC_LICENSE[hdparm] = "LICENSE.TXT"
-
-LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=495d03e50dc6c89d6a30107ab0df5b03 \
-                    file://debian/copyright;md5=a82d7ba3ade9e8ec902749db98c592f3 \
-                    file://wiper/GPLv2.txt;md5=fcb02dc552a041dee27e4b85c7396067 \
-                    file://wiper/wiper.sh;beginline=7;endline=31;md5=b7bc642addc152ea307505bf1a296f09"
-
-
-PACKAGES =+ "wiper"
-
-FILES:wiper = "${bindir}/wiper.sh"
-
-RDEPENDS:wiper = "bash gawk coreutils"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/hdparm/${BP}.tar.gz \
-           file://wiper.sh-fix-stat-path.patch \
-          "
-
-SRC_URI[sha256sum] = "2c0f9d75cdbeda928a25a128cd3d0b7120445ec0910c0b29d4c1038ed1be777f"
-
-EXTRA_OEMAKE = 'STRIP="echo" LDFLAGS="${LDFLAGS}"'
-
-inherit update-alternatives
-
-ALTERNATIVE:${PN} = "hdparm"
-ALTERNATIVE_LINK_NAME[hdparm] = "${base_sbindir}/hdparm"
-ALTERNATIVE_PRIORITY = "100"
-
-do_install () {
-	install -d ${D}/${base_sbindir} ${D}/${mandir}/man8 ${D}/${bindir}
-	oe_runmake 'DESTDIR=${D}' 'sbindir=${base_sbindir}' install
-	cp ${S}/wiper/wiper.sh ${D}/${bindir}
-}
diff --git a/poky/meta/recipes-extended/hdparm/hdparm_9.63.bb b/poky/meta/recipes-extended/hdparm/hdparm_9.63.bb
new file mode 100644
index 0000000..e286610
--- /dev/null
+++ b/poky/meta/recipes-extended/hdparm/hdparm_9.63.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Utility for viewing/manipulating IDE disk drive/driver parameters"
+HOMEPAGE = "http://sourceforge.net/projects/hdparm/"
+DESCRIPTION = "hdparm is a Linux shell utility for viewing \
+and manipulating various IDE drive and driver parameters."
+SECTION = "console/utils"
+
+LICENSE = "BSD-2-Clause & GPLv2 & hdparm"
+LICENSE:${PN} = "BSD-2-Clause & hdparm"
+LICENSE:${PN}-dbg = "BSD-2-Clause & hdparm"
+LICENSE:wiper = "GPLv2"
+NO_GENERIC_LICENSE[hdparm] = "LICENSE.TXT"
+
+LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=495d03e50dc6c89d6a30107ab0df5b03 \
+                    file://debian/copyright;md5=a82d7ba3ade9e8ec902749db98c592f3 \
+                    file://wiper/GPLv2.txt;md5=fcb02dc552a041dee27e4b85c7396067 \
+                    file://wiper/wiper.sh;beginline=7;endline=31;md5=b7bc642addc152ea307505bf1a296f09"
+
+
+PACKAGES =+ "wiper"
+
+FILES:wiper = "${bindir}/wiper.sh"
+
+RDEPENDS:wiper = "bash gawk coreutils"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/hdparm/${BP}.tar.gz \
+           file://wiper.sh-fix-stat-path.patch \
+          "
+
+SRC_URI[sha256sum] = "70785deaebba5877a89c123568b41dee990da55fc51420f13f609a1072899691"
+
+EXTRA_OEMAKE = 'STRIP="echo" LDFLAGS="${LDFLAGS}"'
+
+inherit update-alternatives
+
+ALTERNATIVE:${PN} = "hdparm"
+ALTERNATIVE_LINK_NAME[hdparm] = "${base_sbindir}/hdparm"
+ALTERNATIVE_PRIORITY = "100"
+
+do_install () {
+	install -d ${D}/${base_sbindir} ${D}/${mandir}/man8 ${D}/${bindir}
+	oe_runmake 'DESTDIR=${D}' 'sbindir=${base_sbindir}' install
+	cp ${S}/wiper/wiper.sh ${D}/${bindir}
+}
diff --git a/poky/meta/recipes-extended/iputils/iputils/0001-meson-Make-tests-optional.patch b/poky/meta/recipes-extended/iputils/iputils/0001-meson-Make-tests-optional.patch
deleted file mode 100644
index 9f17cbd..0000000
--- a/poky/meta/recipes-extended/iputils/iputils/0001-meson-Make-tests-optional.patch
+++ /dev/null
@@ -1,220 +0,0 @@
-From d8048d60d30a2efe7883b36626123630ce69b9fc Mon Sep 17 00:00:00 2001
-From: Heiko Becker <heirecka@exherbo.org>
-Date: Fri, 23 Jul 2021 16:32:46 +0200
-Subject: [PATCH] meson: Make tests optional
-
-Now can be disabled with -DSKIP_TESTS=true.
-
-It allows to avoid meson error during build when ip isn't installed.
-
-Closes: #359
-
-Reviewed-by: Petr Vorel <petr.vorel@gmail.com>
-Signed-off-by: Heiko Becker <heirecka@exherbo.org>
-[ pvorel: Rename variable TEST => SKIP_TESTS, default false, adjust
-the description ]
-Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
-
-Upstream-Status: Backport [3163c49f9f4ad473a00d8a345ee334a028376011]
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- meson_options.txt     |  3 ++
- ping/meson.build      | 84 ++-----------------------------------------
- ping/test/meson.build | 81 +++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 86 insertions(+), 82 deletions(-)
- create mode 100644 ping/test/meson.build
-
-diff --git a/meson_options.txt b/meson_options.txt
-index ac5f5d9..517667f 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -72,3 +72,6 @@ option('INSTALL_SYSTEMD_UNITS', type: 'boolean', value: false,
- 
- option('USE_GETTEXT', type: 'boolean', value: true,
- 	description: 'Enable I18N')
-+
-+option('SKIP_TESTS', type: 'boolean', value: false,
-+	description: 'Skip tests during build')
-diff --git a/ping/meson.build b/ping/meson.build
-index 1e678ec..83ea353 100644
---- a/ping/meson.build
-+++ b/ping/meson.build
-@@ -27,86 +27,6 @@ if (setcap_ping)
- 	)
- endif
- 
--##### TESTS #####
--
--# TODO: ::1 generates DEPRECATION: ":" is not allowed in test name "ping -c1 ::1", it has been replaced with "_"
--
--# GitHub CI does not have working IPv6
--# https://github.com/actions/virtual-environments/issues/668
--ipv6_dst = []
--ipv6_switch = []
--r = run_command('ip', '-6', 'a')
--if r.stdout().strip().contains('::1')
--  message('IPv6 enabled')
--  ipv6_dst = [ '::1' ]
--  ipv6_switch = [ '-6' ]
--else
--  message('WARNING: IPv6 disabled')
-+if not get_option('SKIP_TESTS')
-+	subdir('test')
- endif
--
--run_as_root = false
--r = run_command('id', '-u')
--if r.stdout().strip().to_int() == 0
--  message('running as root')
--  run_as_root = true
--else
--  message('running as normal user')
--endif
--
--foreach dst : [ 'localhost', '127.0.0.1' ] + ipv6_dst
--  foreach switch : [ '', '-4' ] + ipv6_switch
--	args = [ '-c1', dst ]
--	should_fail = false
--
--	if switch != ''
--	  args = [switch] + args
--	  if (switch == '-4' and dst == '::1') or (switch == '-6' and dst == '127.0.0.1')
--		 should_fail = true
--	  endif
--	endif
--
--	name = 'ping ' + ' '.join(args)
--	test(name, ping, args : args, should_fail : should_fail)
--  endforeach
--endforeach
--
--ping_tests_opt = [
--  [ '-c1' ],
--  [ '-c5', '-i0.1' ],
--  [ '-c1', '-I', 'lo' ],
--  [ '-c1', '-w1' ],
--  [ '-c1', '-W1' ],
--  [ '-c1', '-W1.1' ],
--]
--foreach dst : [ '127.0.0.1' ] + ipv6_dst
--  foreach args : ping_tests_opt
--	args += [ dst ]
--	name = 'ping ' + ' '.join(args)
--	test(name, ping, args : args)
--  endforeach
--endforeach
--
--ping_tests_opt_fail = [
--  [ '-c1.1' ],
--  [ '-I', 'nonexisting' ],
--  [ '-w0.1' ],
--  [ '-w0,1' ],
--]
--foreach dst : [ '127.0.0.1' ] + ipv6_dst
--  foreach args : ping_tests_opt_fail
--	args += [ dst ]
--	name = 'ping ' + ' '.join(args)
--	test(name, ping, args : args, should_fail : true)
--  endforeach
--endforeach
--
--ping_tests_user_fail = [
--  [ '-c1', '-i0.001' ], # -c1 required to quit ping when running as root
--]
--foreach dst : [ '127.0.0.1' ] + ipv6_dst
--  foreach args : ping_tests_user_fail
--	args += [ dst ]
--	name = 'ping ' + ' '.join(args)
--	test(name, ping, args : args, should_fail : not run_as_root)
--  endforeach
--endforeach
-diff --git a/ping/test/meson.build b/ping/test/meson.build
-new file mode 100644
-index 0000000..43aed75
---- /dev/null
-+++ b/ping/test/meson.build
-@@ -0,0 +1,81 @@
-+# TODO: ::1 generates DEPRECATION: ":" is not allowed in test name "ping -c1 ::1", it has been replaced with "_"
-+
-+# GitHub CI does not have working IPv6
-+# https://github.com/actions/virtual-environments/issues/668
-+ipv6_dst = []
-+ipv6_switch = []
-+r = run_command('ip', '-6', 'a')
-+if r.stdout().strip().contains('::1')
-+  message('IPv6 enabled')
-+  ipv6_dst = [ '::1' ]
-+  ipv6_switch = [ '-6' ]
-+else
-+  message('WARNING: IPv6 disabled')
-+endif
-+
-+run_as_root = false
-+r = run_command('id', '-u')
-+if r.stdout().strip().to_int() == 0
-+  message('running as root')
-+  run_as_root = true
-+else
-+  message('running as normal user')
-+endif
-+
-+foreach dst : [ 'localhost', '127.0.0.1' ] + ipv6_dst
-+  foreach switch : [ '', '-4' ] + ipv6_switch
-+	args = [ '-c1', dst ]
-+	should_fail = false
-+
-+	if switch != ''
-+	  args = [switch] + args
-+	  if (switch == '-4' and dst == '::1') or (switch == '-6' and dst == '127.0.0.1')
-+		 should_fail = true
-+	  endif
-+	endif
-+
-+	name = 'ping ' + ' '.join(args)
-+	test(name, ping, args : args, should_fail : should_fail)
-+  endforeach
-+endforeach
-+
-+ping_tests_opt = [
-+  [ '-c1' ],
-+  [ '-c5', '-i0.1' ],
-+  [ '-c1', '-I', 'lo' ],
-+  [ '-c1', '-w1' ],
-+  [ '-c1', '-W1' ],
-+  [ '-c1', '-W1.1' ],
-+]
-+foreach dst : [ '127.0.0.1' ] + ipv6_dst
-+  foreach args : ping_tests_opt
-+	args += [ dst ]
-+	name = 'ping ' + ' '.join(args)
-+	test(name, ping, args : args)
-+  endforeach
-+endforeach
-+
-+ping_tests_opt_fail = [
-+  [ '-c1.1' ],
-+  [ '-I', 'nonexisting' ],
-+  [ '-w0.1' ],
-+  [ '-w0,1' ],
-+]
-+foreach dst : [ '127.0.0.1' ] + ipv6_dst
-+  foreach args : ping_tests_opt_fail
-+	args += [ dst ]
-+	name = 'ping ' + ' '.join(args)
-+	test(name, ping, args : args, should_fail : true)
-+  endforeach
-+endforeach
-+
-+ping_tests_user_fail = [
-+  [ '-c1', '-i0.001' ], # -c1 required to quit ping when running as root
-+]
-+foreach dst : [ '127.0.0.1' ] + ipv6_dst
-+  foreach args : ping_tests_user_fail
-+	args += [ dst ]
-+	name = 'ping ' + ' '.join(args)
-+	test(name, ping, args : args, should_fail : not run_as_root)
-+  endforeach
-+endforeach
--- 
-2.30.2
-
diff --git a/poky/meta/recipes-extended/iputils/iputils_20210722.bb b/poky/meta/recipes-extended/iputils/iputils_20210722.bb
deleted file mode 100644
index e1940b7..0000000
--- a/poky/meta/recipes-extended/iputils/iputils_20210722.bb
+++ /dev/null
@@ -1,72 +0,0 @@
-SUMMARY = "Network monitoring tools"
-DESCRIPTION = "Utilities for the IP protocol, including traceroute6, \
-tracepath, tracepath6, ping, ping6 and arping."
-HOMEPAGE = "https://github.com/iputils/iputils"
-SECTION = "console/network"
-
-LICENSE = "BSD-3-Clause & GPLv2+"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=55aa8c9fcad0691cef0ecd420361e390"
-
-DEPENDS = "gnutls"
-
-SRC_URI = "git://github.com/iputils/iputils \
-           file://0001-rarpd-rdisc-Drop-PrivateUsers.patch \
-           file://0001-meson-Make-tests-optional.patch \
-           "
-SRCREV = "71bb2a6c72e9f658e90ac618c73d873a76bbaa81"
-
-S = "${WORKDIR}/git"
-
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>20\d+)"
-
-# Fixed in 2000-10-10, but the versioning of iputils
-# breaks the version order.
-CVE_CHECK_WHITELIST += "CVE-2000-1213 CVE-2000-1214"
-
-PACKAGECONFIG ??= "libcap rarpd \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ninfod traceroute6', '', d)} \
-                   ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[libcap] = "-DUSE_CAP=true, -DUSE_CAP=false -DNO_SETCAP_OR_SUID=true, libcap libcap-native"
-PACKAGECONFIG[libidn] = "-DUSE_IDN=true, -DUSE_IDN=false, libidn2"
-PACKAGECONFIG[gettext] = "-DUSE_GETTEXT=true, -DUSE_GETTEXT=false, gettext"
-PACKAGECONFIG[ninfod] = "-DBUILD_NINFOD=true,-DBUILD_NINFOD=false,"
-PACKAGECONFIG[rarpd] = "-DBUILD_RARPD=true,-DBUILD_RARPD=false,"
-PACKAGECONFIG[systemd] = "-Dsystemdunitdir=${systemd_system_unitdir},,systemd"
-PACKAGECONFIG[tftpd] = "-DBUILD_TFTPD=true, -DBUILD_TFTPD=false,"
-PACKAGECONFIG[traceroute6] = "-DBUILD_TRACEROUTE6=true,-DBUILD_TRACEROUTE6=false,"
-PACKAGECONFIG[docs] = "-DBUILD_HTML_MANS=true -DBUILD_MANS=true,-DBUILD_HTML_MANS=false -DBUILD_MANS=false, libxslt"
-
-inherit meson systemd update-alternatives pkgconfig
-
-EXTRA_OEMESON += "--prefix=${root_prefix}/ -DSKIP_TESTS=true"
-
-ALTERNATIVE_PRIORITY = "100"
-
-ALTERNATIVE:${PN}-ping = "ping"
-ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping"
-
-SPLITPKGS = "${PN}-ping ${PN}-arping ${PN}-tracepath ${PN}-clockdiff ${PN}-rdisc \
-             ${@bb.utils.contains('PACKAGECONFIG', 'rarpd', '${PN}-rarpd', '', d)} \
-             ${@bb.utils.contains('PACKAGECONFIG', 'tftpd', '${PN}-tftpd', '', d)} \
-             ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '${PN}-traceroute6 ${PN}-ninfod', '', d)}"
-PACKAGES += "${SPLITPKGS}"
-
-ALLOW_EMPTY:${PN} = "1"
-RDEPENDS:${PN} += "${SPLITPKGS}"
-
-FILES:${PN} = ""
-FILES:${PN}-ping = "${base_bindir}/ping.${BPN}"
-FILES:${PN}-arping = "${base_bindir}/arping"
-FILES:${PN}-tracepath = "${base_bindir}/tracepath"
-FILES:${PN}-traceroute6	= "${base_bindir}/traceroute6"
-FILES:${PN}-clockdiff = "${base_bindir}/clockdiff"
-FILES:${PN}-tftpd = "${base_bindir}/tftpd ${sysconfdir}/xinetd.d/tftp"
-FILES:${PN}-rarpd = "${base_sbindir}/rarpd  ${systemd_system_unitdir}/rarpd@.service"
-FILES:${PN}-rdisc = "${base_sbindir}/rdisc"
-FILES:${PN}-ninfod = "${base_sbindir}/ninfod ${sysconfdir}/init.d/ninfod.sh"
-
-SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '${PN}-ninfod', '', d)} \
-                    ${PN}-rdisc"
-SYSTEMD_SERVICE:${PN}-ninfod = "ninfod.service"
-SYSTEMD_SERVICE:${PN}-rdisc = "rdisc.service"
diff --git a/poky/meta/recipes-extended/iputils/iputils_20211215.bb b/poky/meta/recipes-extended/iputils/iputils_20211215.bb
new file mode 100644
index 0000000..b6b6413
--- /dev/null
+++ b/poky/meta/recipes-extended/iputils/iputils_20211215.bb
@@ -0,0 +1,66 @@
+SUMMARY = "Network monitoring tools"
+DESCRIPTION = "Utilities for the IP protocol, including \
+tracepath, tracepath6, ping, ping6 and arping."
+HOMEPAGE = "https://github.com/iputils/iputils"
+SECTION = "console/network"
+
+LICENSE = "BSD-3-Clause & GPLv2+"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bb64c89bb0e23b72930d2380894c47a1"
+
+DEPENDS = "gnutls"
+
+SRC_URI = "git://github.com/iputils/iputils;branch=master;protocol=https \
+           file://0001-rarpd-rdisc-Drop-PrivateUsers.patch \
+           "
+SRCREV = "1d1e7c43210d8af316a41cb2c53d612a4c16f34d"
+
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>20\d+)"
+
+# Fixed in 2000-10-10, but the versioning of iputils
+# breaks the version order.
+CVE_CHECK_WHITELIST += "CVE-2000-1213 CVE-2000-1214"
+
+PACKAGECONFIG ??= "libcap rarpd \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ninfod', '', d)} \
+                   ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[libcap] = "-DUSE_CAP=true, -DUSE_CAP=false -DNO_SETCAP_OR_SUID=true, libcap libcap-native"
+PACKAGECONFIG[libidn] = "-DUSE_IDN=true, -DUSE_IDN=false, libidn2"
+PACKAGECONFIG[gettext] = "-DUSE_GETTEXT=true, -DUSE_GETTEXT=false, gettext"
+PACKAGECONFIG[ninfod] = "-DBUILD_NINFOD=true,-DBUILD_NINFOD=false,"
+PACKAGECONFIG[rarpd] = "-DBUILD_RARPD=true,-DBUILD_RARPD=false,"
+PACKAGECONFIG[systemd] = "-Dsystemdunitdir=${systemd_system_unitdir},,systemd"
+PACKAGECONFIG[docs] = "-DBUILD_HTML_MANS=true -DBUILD_MANS=true,-DBUILD_HTML_MANS=false -DBUILD_MANS=false, libxslt"
+
+inherit meson systemd update-alternatives pkgconfig
+
+EXTRA_OEMESON += "--prefix=${root_prefix}/ -DSKIP_TESTS=true"
+
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE:${PN}-ping = "ping"
+ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping"
+
+SPLITPKGS = "${PN}-ping ${PN}-arping ${PN}-tracepath ${PN}-clockdiff ${PN}-rdisc \
+             ${@bb.utils.contains('PACKAGECONFIG', 'rarpd', '${PN}-rarpd', '', d)} \
+             ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '${PN}-ninfod', '', d)}"
+PACKAGES += "${SPLITPKGS}"
+
+ALLOW_EMPTY:${PN} = "1"
+RDEPENDS:${PN} += "${SPLITPKGS}"
+
+FILES:${PN} = ""
+FILES:${PN}-ping = "${base_bindir}/ping.${BPN}"
+FILES:${PN}-arping = "${base_bindir}/arping"
+FILES:${PN}-tracepath = "${base_bindir}/tracepath"
+FILES:${PN}-clockdiff = "${base_bindir}/clockdiff"
+FILES:${PN}-rarpd = "${base_sbindir}/rarpd  ${systemd_system_unitdir}/rarpd@.service"
+FILES:${PN}-rdisc = "${base_sbindir}/rdisc"
+FILES:${PN}-ninfod = "${base_sbindir}/ninfod ${sysconfdir}/init.d/ninfod.sh"
+
+SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '${PN}-ninfod', '', d)} \
+                    ${PN}-rdisc"
+SYSTEMD_SERVICE:${PN}-ninfod = "ninfod.service"
+SYSTEMD_SERVICE:${PN}-rdisc = "rdisc.service"
diff --git a/poky/meta/recipes-extended/less/less_590.bb b/poky/meta/recipes-extended/less/less_590.bb
deleted file mode 100644
index 5d0d0a5..0000000
--- a/poky/meta/recipes-extended/less/less_590.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Text file viewer similar to more"
-DESCRIPTION = "Less is a program similar to more, i.e. a terminal \
-based program for viewing text files and the output from other \
-programs. Less offers many features beyond those that more does."
-HOMEPAGE = "http://www.greenwoodsoftware.com/"
-SECTION = "console/utils"
-
-# (GPLv2+ (<< 418), GPLv3+ (>= 418)) | less
-# Including email author giving permissing to use BSD
-#
-# From: Mark Nudelman <markn@greenwoodsoftware.com>
-# To: Elizabeth Flanagan <elizabeth.flanagan@intel.com
-# Date: 12/19/11
-#
-# Hi Elizabeth,
-# Using a generic BSD license for less is fine with me.
-# Thanks,
-#
-# --Mark
-#
-
-LICENSE = "GPLv3+ | BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
-                    file://LICENSE;md5=ba01d0cab7f62f7f2204c7780ff6a87d \
-                    "
-DEPENDS = "ncurses"
-
-SRC_URI = "http://www.greenwoodsoftware.com/${BPN}/${BPN}-${PV}.tar.gz \
-	  "
-
-SRC_URI[sha256sum] = "6aadf54be8bf57d0e2999a3c5d67b1de63808bb90deb8f77b028eafae3a08e10"
-
-UPSTREAM_CHECK_URI = "http://www.greenwoodsoftware.com/less/download.html"
-
-inherit autotools update-alternatives
-
-do_install () {
-        oe_runmake 'bindir=${D}${bindir}' 'mandir=${D}${mandir}' install
-}
-
-ALTERNATIVE:${PN} = "less"
-ALTERNATIVE_PRIORITY = "100"
diff --git a/poky/meta/recipes-extended/less/less_600.bb b/poky/meta/recipes-extended/less/less_600.bb
new file mode 100644
index 0000000..707870f
--- /dev/null
+++ b/poky/meta/recipes-extended/less/less_600.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Text file viewer similar to more"
+DESCRIPTION = "Less is a program similar to more, i.e. a terminal \
+based program for viewing text files and the output from other \
+programs. Less offers many features beyond those that more does."
+HOMEPAGE = "http://www.greenwoodsoftware.com/"
+SECTION = "console/utils"
+
+# (GPLv2+ (<< 418), GPLv3+ (>= 418)) | less
+# Including email author giving permissing to use BSD
+#
+# From: Mark Nudelman <markn@greenwoodsoftware.com>
+# To: Elizabeth Flanagan <elizabeth.flanagan@intel.com
+# Date: 12/19/11
+#
+# Hi Elizabeth,
+# Using a generic BSD license for less is fine with me.
+# Thanks,
+#
+# --Mark
+#
+
+LICENSE = "GPLv3+ | BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \
+                    file://LICENSE;md5=38fc26d78ca8d284a2a5a4bbc263d29b \
+                    "
+DEPENDS = "ncurses"
+
+SRC_URI = "http://www.greenwoodsoftware.com/${BPN}/${BPN}-${PV}.tar.gz \
+	  "
+
+SRC_URI[sha256sum] = "6633d6aa2b3cc717afb2c205778c7c42c4620f63b1d682f3d12c98af0be74d20"
+
+UPSTREAM_CHECK_URI = "http://www.greenwoodsoftware.com/less/download.html"
+
+inherit autotools update-alternatives
+
+do_install () {
+        oe_runmake 'bindir=${D}${bindir}' 'mandir=${D}${mandir}' install
+}
+
+ALTERNATIVE:${PN} = "less"
+ALTERNATIVE_PRIORITY = "100"
diff --git a/poky/meta/recipes-extended/libaio/libaio_0.3.112.bb b/poky/meta/recipes-extended/libaio/libaio_0.3.112.bb
index b360647..3892f32 100644
--- a/poky/meta/recipes-extended/libaio/libaio_0.3.112.bb
+++ b/poky/meta/recipes-extended/libaio/libaio_0.3.112.bb
@@ -5,7 +5,7 @@
 LICENSE = "LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
 
-SRC_URI = "git://pagure.io/libaio.git;protocol=https \
+SRC_URI = "git://pagure.io/libaio.git;protocol=https;branch=master \
            file://00_arches.patch \
            file://libaio_fix_for_mips_syscalls.patch \
            file://system-linkage.patch \
diff --git a/poky/meta/recipes-extended/libnsl/libnsl2_git.bb b/poky/meta/recipes-extended/libnsl/libnsl2_git.bb
index 53be67f..3f6ccba 100644
--- a/poky/meta/recipes-extended/libnsl/libnsl2_git.bb
+++ b/poky/meta/recipes-extended/libnsl/libnsl2_git.bb
@@ -14,7 +14,7 @@
 
 SRCREV = "82245c0c58add79a8e34ab0917358217a70e5100"
 
-SRC_URI = "git://github.com/thkukuk/libnsl \
+SRC_URI = "git://github.com/thkukuk/libnsl;branch=master;protocol=https \
           "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb b/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
index 3410342..478e9e2 100644
--- a/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
+++ b/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
@@ -17,7 +17,7 @@
 
 SRCREV = "062f31999b35393abf7595cb89dfc9590d5a42ad"
 
-SRC_URI = "git://github.com/thkukuk/libnss_nis \
+SRC_URI = "git://github.com/thkukuk/libnss_nis;branch=master;protocol=https \
           "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-extended/libpipeline/libpipeline_1.5.3.bb b/poky/meta/recipes-extended/libpipeline/libpipeline_1.5.3.bb
deleted file mode 100644
index ee15fd0..0000000
--- a/poky/meta/recipes-extended/libpipeline/libpipeline_1.5.3.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "pipeline manipulation library"
-DESCRIPTION = "This is a C library for setting up and running pipelines of processes, \
-without needing to involve shell command-line parsing which is often \
-error-prone and insecure."
-HOMEPAGE = "http://libpipeline.nongnu.org/"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "${SAVANNAH_GNU_MIRROR}/libpipeline/libpipeline-${PV}.tar.gz"
-SRC_URI[sha256sum] = "5dbf08faf50fad853754293e57fd4e6c69bb8e486f176596d682c67e02a0adb0"
-
-inherit pkgconfig autotools
-
-acpaths = "-I ${S}/gl/m4 -I ${S}/m4"
diff --git a/poky/meta/recipes-extended/libpipeline/libpipeline_1.5.5.bb b/poky/meta/recipes-extended/libpipeline/libpipeline_1.5.5.bb
new file mode 100644
index 0000000..44d9ed2
--- /dev/null
+++ b/poky/meta/recipes-extended/libpipeline/libpipeline_1.5.5.bb
@@ -0,0 +1,14 @@
+SUMMARY = "pipeline manipulation library"
+DESCRIPTION = "This is a C library for setting up and running pipelines of processes, \
+without needing to involve shell command-line parsing which is often \
+error-prone and insecure."
+HOMEPAGE = "http://libpipeline.nongnu.org/"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+SRC_URI = "${SAVANNAH_GNU_MIRROR}/libpipeline/libpipeline-${PV}.tar.gz"
+SRC_URI[sha256sum] = "0c8367f8b82bb721b50647a647115b6e62a37e3b2e954a9685e4d933f30c00cc"
+
+inherit pkgconfig autotools
+
+acpaths = "-I ${S}/gl/m4 -I ${S}/m4"
diff --git a/poky/meta/recipes-extended/libsolv/libsolv/0001-utils-Conside-musl-when-wrapping-qsort_r.patch b/poky/meta/recipes-extended/libsolv/libsolv/0001-utils-Conside-musl-when-wrapping-qsort_r.patch
new file mode 100644
index 0000000..6f0dea2
--- /dev/null
+++ b/poky/meta/recipes-extended/libsolv/libsolv/0001-utils-Conside-musl-when-wrapping-qsort_r.patch
@@ -0,0 +1,34 @@
+From 06321f1a2aa89b8e028946e793344657eaad0165 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 28 Oct 2021 22:28:45 -0700
+Subject: [PATCH] utils: Conside musl when wrapping qsort_r
+
+musl now has implemented qsort_r, the signature however matches glibc
+and not BSD, current check makes it such that it falls into BSD case
+when building for musl, which clearly is wrong, therefore instead of
+just checking for glibc check for linux to decide which qsort_r
+signature to use. This covers both glibc and musl
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/util.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/util.c b/src/util.c
+index 72426e09..8f29bc5a 100644
+--- a/src/util.c
++++ b/src/util.c
+@@ -159,7 +159,7 @@ solv_setcloexec(int fd, int state)
+ 
+    see also: http://sources.redhat.com/ml/libc-alpha/2008-12/msg00003.html
+  */
+-#if (defined(__GLIBC__) || defined(__NEWLIB__)) && (defined(HAVE_QSORT_R) || defined(HAVE___QSORT_R))
++#if (defined(__linux__) || defined(__NEWLIB__)) && (defined(HAVE_QSORT_R) || defined(HAVE___QSORT_R))
+ 
+ void
+ solv_sort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *, void *), void *compard)
+-- 
+2.33.1
+
diff --git a/poky/meta/recipes-extended/libsolv/libsolv_0.7.20.bb b/poky/meta/recipes-extended/libsolv/libsolv_0.7.20.bb
index d4d6538..f0ba955 100644
--- a/poky/meta/recipes-extended/libsolv/libsolv_0.7.20.bb
+++ b/poky/meta/recipes-extended/libsolv/libsolv_0.7.20.bb
@@ -8,7 +8,8 @@
 
 DEPENDS = "expat zlib"
 
-SRC_URI = "git://github.com/openSUSE/libsolv.git \
+SRC_URI = "git://github.com/openSUSE/libsolv.git;branch=master;protocol=https \
+           file://0001-utils-Conside-musl-when-wrapping-qsort_r.patch \
 "
 
 SRCREV = "f618e6aae1d44be633b2ab91d4fd4f4f974f4d40"
diff --git a/poky/meta/recipes-extended/lighttpd/lighttpd/0001-Use-pkg-config-for-pcre-dependency-instead-of-config.patch b/poky/meta/recipes-extended/lighttpd/lighttpd/0001-Use-pkg-config-for-pcre-dependency-instead-of-config.patch
deleted file mode 100644
index f17bdce..0000000
--- a/poky/meta/recipes-extended/lighttpd/lighttpd/0001-Use-pkg-config-for-pcre-dependency-instead-of-config.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 22afc5d9aaa215c3c87ba21c77d47da44ab3b113 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 26 Aug 2016 18:20:32 +0300
-Subject: [PATCH] Use pkg-config for pcre dependency instead of -config script.
-
-RP 2014/5/22
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- configure.ac | 16 ++++++++++++----
- 1 file changed, 12 insertions(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 5383cec..c29a902 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -651,10 +651,18 @@ AC_ARG_WITH([pcre],
- )
- AC_MSG_RESULT([$WITH_PCRE])
- 
--if test "$WITH_PCRE" != no; then
--  if test "$WITH_PCRE" != yes; then
--    PCRE_LIB="-L$WITH_PCRE/lib -lpcre"
--    CPPFLAGS="$CPPFLAGS -I$WITH_PCRE/include"
-+if test "$WITH_PCRE" != "no"; then
-+  PKG_CHECK_MODULES(PCREPKG, [libpcre], [
-+				PCRE_LIB=${PCREPKG_LIBS}
-+				CPPFLAGS="$CPPFLAGS ${PCREPKG_CFLAGS}"
-+  ], [
-+				AC_MSG_ERROR([pcre pkgconfig not found, install the pcre-devel package or build with --without-pcre])
-+  ])
-+
-+  if test x"$PCRE_LIB" != x; then
-+    AC_DEFINE([HAVE_LIBPCRE], [1], [libpcre])
-+    AC_DEFINE([HAVE_PCRE_H], [1], [pcre.h])
-+    AC_SUBST(PCRE_LIB)
-   else
-     AC_PATH_PROG([PCRECONFIG], [pcre-config])
-     if test -n "$PCRECONFIG"; then
--- 
-2.15.0
-
diff --git a/poky/meta/recipes-extended/lighttpd/lighttpd/0001-mod_extforward-fix-out-of-bounds-OOB-write-fixes-313.patch b/poky/meta/recipes-extended/lighttpd/lighttpd/0001-mod_extforward-fix-out-of-bounds-OOB-write-fixes-313.patch
new file mode 100644
index 0000000..f4e93d1
--- /dev/null
+++ b/poky/meta/recipes-extended/lighttpd/lighttpd/0001-mod_extforward-fix-out-of-bounds-OOB-write-fixes-313.patch
@@ -0,0 +1,97 @@
+Upstream-Status: Backport
+CVE: CVE-2022-22707
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From 27103f3f8b1a2857aa45b889e775435f7daf141f Mon Sep 17 00:00:00 2001
+From: povcfe <povcfe@qq.com>
+Date: Wed, 5 Jan 2022 11:11:09 +0000
+Subject: [PATCH] [mod_extforward] fix out-of-bounds (OOB) write (fixes #3134)
+
+(thx povcfe)
+
+(edited: gstrauss)
+
+There is a potential remote denial of service in lighttpd mod_extforward
+under specific, non-default and uncommon 32-bit lighttpd mod_extforward
+configurations.
+
+Under specific, non-default and uncommon lighttpd mod_extforward
+configurations, a remote attacker can trigger a 4-byte out-of-bounds
+write of value '-1' to the stack. This is not believed to be exploitable
+in any way beyond triggering a crash of the lighttpd server on systems
+where the lighttpd server has been built 32-bit and with compiler flags
+which enable a stack canary -- gcc/clang -fstack-protector-strong or
+-fstack-protector-all, but bug not visible with only -fstack-protector.
+
+With standard lighttpd builds using -O2 optimization on 64-bit x86_64,
+this bug has not been observed to cause adverse behavior, even with
+gcc/clang -fstack-protector-strong.
+
+For the bug to be reachable, the user must be using a non-default
+lighttpd configuration which enables mod_extforward and configures
+mod_extforward to accept and parse the "Forwarded" header from a trusted
+proxy. At this time, support for RFC7239 Forwarded is not common in CDN
+providers or popular web server reverse proxies. It bears repeating that
+for the user to desire to configure lighttpd mod_extforward to accept
+"Forwarded", the user must also be using a trusted proxy (in front of
+lighttpd) which understands and actively modifies the "Forwarded" header
+sent to lighttpd.
+
+lighttpd natively supports RFC7239 "Forwarded"
+hiawatha natively supports RFC7239 "Forwarded"
+
+nginx can be manually configured to add a "Forwarded" header
+https://www.nginx.com/resources/wiki/start/topics/examples/forwarded/
+
+A 64-bit build of lighttpd on x86_64 (not known to be affected by bug)
+in front of another 32-bit lighttpd will detect and reject a malicious
+"Forwarded" request header, thereby thwarting an attempt to trigger
+this bug in an upstream 32-bit lighttpd.
+
+The following servers currently do not natively support RFC7239 Forwarded:
+nginx
+apache2
+caddy
+node.js
+haproxy
+squid
+varnish-cache
+litespeed
+
+Given the general dearth of support for RFC7239 Forwarded in popular
+CDNs and web server reverse proxies, and given the prerequisites in
+lighttpd mod_extforward needed to reach this bug, the number of lighttpd
+servers vulnerable to this bug is estimated to be vanishingly small.
+Large systems using reverse proxies are likely running 64-bit lighttpd,
+which is not known to be adversely affected by this bug.
+
+In the future, it is desirable for more servers to implement RFC7239
+Forwarded.  lighttpd developers would like to thank povcfe for reporting
+this bug so that it can be fixed before more CDNs and web servers
+implement RFC7239 Forwarded.
+
+x-ref:
+  "mod_extforward plugin has out-of-bounds (OOB) write of 4-byte -1"
+  https://redmine.lighttpd.net/issues/3134
+  (not yet written or published)
+  CVE-2022-22707
+---
+ src/mod_extforward.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/mod_extforward.c b/src/mod_extforward.c
+index ba957e04..fdaef7f6 100644
+--- a/src/mod_extforward.c
++++ b/src/mod_extforward.c
+@@ -715,7 +715,7 @@ static handler_t mod_extforward_Forwarded (request_st * const r, plugin_data * c
+         while (s[i] == ' ' || s[i] == '\t') ++i;
+         if (s[i] == ';') { ++i; continue; }
+         if (s[i] == ',') {
+-            if (j >= (int)(sizeof(offsets)/sizeof(int))) break;
++            if (j >= (int)(sizeof(offsets)/sizeof(int))-1) break;
+             offsets[++j] = -1; /*("offset" separating params from next proxy)*/
+             ++i;
+             continue;
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-extended/lighttpd/lighttpd/0002-define-__BEGIN_DECLS-__END_DECLS-if-needed.patch b/poky/meta/recipes-extended/lighttpd/lighttpd/0002-define-__BEGIN_DECLS-__END_DECLS-if-needed.patch
deleted file mode 100644
index 2a9bb35..0000000
--- a/poky/meta/recipes-extended/lighttpd/lighttpd/0002-define-__BEGIN_DECLS-__END_DECLS-if-needed.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From c1466f3620f608e4def4b8853c4e2bc6d9a19646 Mon Sep 17 00:00:00 2001
-From: Glenn Strauss <gstrauss@gluelogic.com>
-Date: Mon, 4 Oct 2021 09:51:22 -0400
-Subject: [PATCH] define __BEGIN_DECLS, __END_DECLS if needed
-
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- src/first.h | 16 ++++++++++++++++
- 1 file changed, 16 insertions(+)
-
-diff --git a/src/first.h b/src/first.h
-index df747ba..9d0428a 100644
---- a/src/first.h
-+++ b/src/first.h
-@@ -39,6 +39,22 @@
- #include <sys/types.h>
- #include <stddef.h>
- 
-+#ifndef __BEGIN_DECLS
-+#ifdef __cplusplus
-+#define __BEGIN_DECLS extern "C" {
-+#else
-+#define __BEGIN_DECLS
-+#endif
-+#endif
-+
-+#ifndef __END_DECLS
-+#ifdef __cplusplus
-+#define __END_DECLS }
-+#else
-+#define __END_DECLS
-+#endif
-+#endif
-+
- #if defined HAVE_STDINT_H
- # include <stdint.h>
- #elif defined HAVE_INTTYPES_H
diff --git a/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.60.bb b/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.60.bb
deleted file mode 100644
index dca8934..0000000
--- a/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.60.bb
+++ /dev/null
@@ -1,83 +0,0 @@
-SUMMARY = "Lightweight high-performance web server"
-HOMEPAGE = "http://www.lighttpd.net/"
-DESCRIPTION = "Lightweight high-performance web server is designed and optimized for high performance environments. With a small memory footprint compared to other web-servers, effective management of the cpu-load, and advanced feature set (FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting and many more)"
-BUGTRACKER = "http://redmine.lighttpd.net/projects/lighttpd/issues"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579"
-
-SECTION = "net"
-RDEPENDS:${PN} = "lighttpd-module-dirlisting \
-                  lighttpd-module-indexfile \
-                  lighttpd-module-staticfile"
-RRECOMMENDS:${PN} = "lighttpd-module-access \
-                     lighttpd-module-accesslog"
-
-SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.tar.xz \
-           file://index.html.lighttpd \
-           file://lighttpd.conf \
-           file://lighttpd \
-           file://0001-Use-pkg-config-for-pcre-dependency-instead-of-config.patch \
-           file://0002-define-__BEGIN_DECLS-__END_DECLS-if-needed.patch \
-           "
-
-SRC_URI[sha256sum] = "4bb1dd859e541a3131e5be101557d2e1195b4129d3a849a3a6fbd21fe1c946f0"
-
-DEPENDS = "virtual/crypt"
-
-PACKAGECONFIG ??= "openssl pcre zlib \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
-"
-
-PACKAGECONFIG[libev] = "-Dwith_libev=true,-Dwith_libev=false,libev"
-PACKAGECONFIG[mysql] = "-Dwith_mysql=true,-Dwith_mysql=false,mariadb"
-PACKAGECONFIG[ldap] = "-Dwith_ldap=true,-Dwith_ldap=false,openldap"
-PACKAGECONFIG[attr] = "-Dwith_xattr=true,-Dwith_xattr=false,attr"
-PACKAGECONFIG[openssl] = "-Dwith_openssl=true,-Dwith_openssl=false,openssl"
-PACKAGECONFIG[krb5] = "-Dwith_krb5=true,-Dwith_krb5=false,krb5"
-PACKAGECONFIG[pcre] = "-Dwith_pcre=true,-Dwith_pcre=false,libpcre"
-PACKAGECONFIG[zlib] = "-Dwith_zlib=true,-Dwith_zlib=false,zlib"
-PACKAGECONFIG[bzip2] = "-Dwith_bzip=true,-Dwith_bzip=false,bzip2"
-PACKAGECONFIG[webdav-props] = "-Dwith_webdav_props=true,-Dwith_webdav_props=false,libxml2 sqlite3"
-PACKAGECONFIG[webdav-locks] = "-Dwith_webdav_locks=true,-Dwith_webdav_locks=false,util-linux"
-PACKAGECONFIG[gdbm] = "-Dwith_gdbm=true,-Dwith_gdbm=false,gdbm"
-PACKAGECONFIG[memcache] = "-Dwith_memcached=true,-Dwith_memcached=false,libmemcached"
-PACKAGECONFIG[lua] = "-Dwith_lua=true,-Dwith_lua=false,lua"
-PACKAGECONFIG[zstd] = "-Dwith_zstd=true,-Dwith_zstd=false,zstd"
-
-inherit meson pkgconfig update-rc.d gettext systemd
-
-INITSCRIPT_NAME = "lighttpd"
-INITSCRIPT_PARAMS = "defaults 70"
-
-SYSTEMD_SERVICE:${PN} = "lighttpd.service"
-
-do_install:append() {
-	install -d ${D}${sysconfdir}/init.d ${D}${sysconfdir}/lighttpd ${D}${sysconfdir}/lighttpd.d ${D}/www/pages/dav
-	install -m 0755 ${WORKDIR}/lighttpd ${D}${sysconfdir}/init.d
-	install -m 0644 ${WORKDIR}/lighttpd.conf ${D}${sysconfdir}/lighttpd
-	install -m 0644 ${WORKDIR}/index.html.lighttpd ${D}/www/pages/index.html
-
-	install -d ${D}${systemd_system_unitdir}
-	install -m 0644 ${S}/doc/systemd/lighttpd.service ${D}${systemd_system_unitdir}
-	sed -i -e 's,@SBINDIR@,${sbindir},g' \
-		-e 's,@SYSCONFDIR@,${sysconfdir},g' \
-		-e 's,@BASE_BINDIR@,${base_bindir},g' \
-		${D}${systemd_system_unitdir}/lighttpd.service
-	#For FHS compliance, create symbolic links to /var/log and /var/tmp for logs and temporary data
-	ln -sf ${localstatedir}/log ${D}/www/logs
-	ln -sf ${localstatedir}/tmp ${D}/www/var
-}
-
-# bitbake.conf sets ${libdir}/${BPN}/* in FILES, which messes up the module split.
-# So we re-do the variable.
-FILES:${PN} = "${sysconfdir} /www ${sbindir}"
-
-CONFFILES:${PN} = "${sysconfdir}/lighttpd/lighttpd.conf"
-
-PACKAGES_DYNAMIC += "^lighttpd-module-.*"
-
-python populate_packages:prepend () {
-    lighttpd_libdir = d.expand('${prefix}/lib/lighttpd')
-    do_split_packages(d, lighttpd_libdir, r'^mod_(.*)\.so$', 'lighttpd-module-%s', 'Lighttpd module for %s', extra_depends='')
-}
diff --git a/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.63.bb b/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.63.bb
new file mode 100644
index 0000000..6359310
--- /dev/null
+++ b/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.63.bb
@@ -0,0 +1,82 @@
+SUMMARY = "Lightweight high-performance web server"
+HOMEPAGE = "http://www.lighttpd.net/"
+DESCRIPTION = "Lightweight high-performance web server is designed and optimized for high performance environments. With a small memory footprint compared to other web-servers, effective management of the cpu-load, and advanced feature set (FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting and many more)"
+BUGTRACKER = "http://redmine.lighttpd.net/projects/lighttpd/issues"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579"
+
+SECTION = "net"
+RDEPENDS:${PN} = "lighttpd-module-dirlisting \
+                  lighttpd-module-indexfile \
+                  lighttpd-module-staticfile"
+RRECOMMENDS:${PN} = "lighttpd-module-access \
+                     lighttpd-module-accesslog"
+
+SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.tar.xz \
+           file://0001-mod_extforward-fix-out-of-bounds-OOB-write-fixes-313.patch \
+           file://index.html.lighttpd \
+           file://lighttpd.conf \
+           file://lighttpd \
+           "
+
+SRC_URI[sha256sum] = "2aef7f0102ebf54a1241a1c3ea8976892f8684bfb21697c9fffb8de0e2d6eab9"
+
+DEPENDS = "virtual/crypt"
+
+PACKAGECONFIG ??= "openssl pcre zlib \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
+"
+
+PACKAGECONFIG[libev] = "-Dwith_libev=true,-Dwith_libev=false,libev"
+PACKAGECONFIG[mysql] = "-Dwith_mysql=true,-Dwith_mysql=false,mariadb"
+PACKAGECONFIG[ldap] = "-Dwith_ldap=true,-Dwith_ldap=false,openldap"
+PACKAGECONFIG[attr] = "-Dwith_xattr=true,-Dwith_xattr=false,attr"
+PACKAGECONFIG[openssl] = "-Dwith_openssl=true,-Dwith_openssl=false,openssl"
+PACKAGECONFIG[krb5] = "-Dwith_krb5=true,-Dwith_krb5=false,krb5"
+PACKAGECONFIG[pcre] = "-Dwith_pcre=true,-Dwith_pcre=false,libpcre"
+PACKAGECONFIG[zlib] = "-Dwith_zlib=true,-Dwith_zlib=false,zlib"
+PACKAGECONFIG[bzip2] = "-Dwith_bzip=true,-Dwith_bzip=false,bzip2"
+PACKAGECONFIG[webdav-props] = "-Dwith_webdav_props=true,-Dwith_webdav_props=false,libxml2 sqlite3"
+PACKAGECONFIG[webdav-locks] = "-Dwith_webdav_locks=true,-Dwith_webdav_locks=false,util-linux"
+PACKAGECONFIG[gdbm] = "-Dwith_gdbm=true,-Dwith_gdbm=false,gdbm"
+PACKAGECONFIG[memcache] = "-Dwith_memcached=true,-Dwith_memcached=false,libmemcached"
+PACKAGECONFIG[lua] = "-Dwith_lua=true,-Dwith_lua=false,lua"
+PACKAGECONFIG[zstd] = "-Dwith_zstd=true,-Dwith_zstd=false,zstd"
+
+inherit meson pkgconfig update-rc.d gettext systemd
+
+INITSCRIPT_NAME = "lighttpd"
+INITSCRIPT_PARAMS = "defaults 70"
+
+SYSTEMD_SERVICE:${PN} = "lighttpd.service"
+
+do_install:append() {
+	install -d ${D}${sysconfdir}/init.d ${D}${sysconfdir}/lighttpd ${D}${sysconfdir}/lighttpd.d ${D}/www/pages/dav
+	install -m 0755 ${WORKDIR}/lighttpd ${D}${sysconfdir}/init.d
+	install -m 0644 ${WORKDIR}/lighttpd.conf ${D}${sysconfdir}/lighttpd
+	install -m 0644 ${WORKDIR}/index.html.lighttpd ${D}/www/pages/index.html
+
+	install -d ${D}${systemd_system_unitdir}
+	install -m 0644 ${S}/doc/systemd/lighttpd.service ${D}${systemd_system_unitdir}
+	sed -i -e 's,@SBINDIR@,${sbindir},g' \
+		-e 's,@SYSCONFDIR@,${sysconfdir},g' \
+		-e 's,@BASE_BINDIR@,${base_bindir},g' \
+		${D}${systemd_system_unitdir}/lighttpd.service
+	#For FHS compliance, create symbolic links to /var/log and /var/tmp for logs and temporary data
+	ln -sf ${localstatedir}/log ${D}/www/logs
+	ln -sf ${localstatedir}/tmp ${D}/www/var
+}
+
+# bitbake.conf sets ${libdir}/${BPN}/* in FILES, which messes up the module split.
+# So we re-do the variable.
+FILES:${PN} = "${sysconfdir} /www ${sbindir}"
+
+CONFFILES:${PN} = "${sysconfdir}/lighttpd/lighttpd.conf"
+
+PACKAGES_DYNAMIC += "^lighttpd-module-.*"
+
+python populate_packages:prepend () {
+    lighttpd_libdir = d.expand('${prefix}/lib/lighttpd')
+    do_split_packages(d, lighttpd_libdir, r'^mod_(.*)\.so$', 'lighttpd-module-%s', 'Lighttpd module for %s', extra_depends='')
+}
diff --git a/poky/meta/recipes-extended/logrotate/logrotate/0001-Update-the-manual.patch b/poky/meta/recipes-extended/logrotate/logrotate/0001-Update-the-manual.patch
deleted file mode 100644
index 50a3852..0000000
--- a/poky/meta/recipes-extended/logrotate/logrotate/0001-Update-the-manual.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 3e2cfa88b6538bb0fee3d9a6e99622055d05ac4a Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Tue, 17 Feb 2015 21:14:37 -0800
-Subject: [PATCH] Update the manual
-
-Update the manual for rotating on different filesystems.
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-
----
- logrotate.8.in | 10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
-
-diff --git a/logrotate.8.in b/logrotate.8.in
-index 98fea91..70b4c44 100644
---- a/logrotate.8.in
-+++ b/logrotate.8.in
-@@ -202,12 +202,10 @@ at all (use with caution, may waste performance and disk space). Default is 0.
- 
- .TP
- \fBolddir \fIdirectory\fR
--Logs are moved into \fIdirectory\fR for rotation.  The \fIdirectory\fR must be
--on the same physical device as the log file being rotated, unless \fBcopy\fR,
--\fBcopytruncate\fR or \fBrenamecopy\fR option is used.  The \fIdirectory\fR
--is assumed to be relative to the directory holding the log file
--unless an absolute path name is specified.  When this option is used all
--old versions of the log end up in \fIdirectory\fR.  This option may be
-+Logs are moved into \fIdirectory\fR for rotation. The \fIdirectory\fR
-+is assumed to be relative to the directory holding the log file unless
-+an absolute path name is specified. When this option is used all old
-+versions of the log end up in \fIdirectory\fR. This option may be
- overridden by the \fBnoolddir\fR option.
- 
- .TP
--- 
-2.24.0
-
diff --git a/poky/meta/recipes-extended/logrotate/logrotate/act-as-mv-when-rotate.patch b/poky/meta/recipes-extended/logrotate/logrotate/act-as-mv-when-rotate.patch
deleted file mode 100644
index 671fce4..0000000
--- a/poky/meta/recipes-extended/logrotate/logrotate/act-as-mv-when-rotate.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-From 17d57a2a923a4af53c8910a9999aebeab3f5d83a Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Tue, 17 Feb 2015 21:08:07 -0800
-Subject: [PATCH] Act as the "mv" command when rotate log
-
-Act as the "mv" command when rotate log, first rename, if failed, then
-read and write.
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-
----
- logrotate.c | 71 ++++++++++++++++++++++++++++++++++++++++++++---------
- 1 file changed, 59 insertions(+), 12 deletions(-)
-
-diff --git a/logrotate.c b/logrotate.c
-index 45b3eb6..231371a 100644
---- a/logrotate.c
-+++ b/logrotate.c
-@@ -1463,6 +1463,53 @@ static int findNeedRotating(const struct logInfo *log, unsigned logNum, int forc
-     return 0;
- }
- 
-+/* Act as the "mv" command, if rename failed, then read the old file and
-+ * write to new file. The function which invokes the mvFile will use
-+ * the strerror(errorno) to handle the error message, so we don't have
-+ * to print the error message here */
-+
-+int mvFile (char *oldName, char *newName, struct logInfo *log, acl_type acl)
-+{
-+    struct stat sbprev;
-+    int fd_old, fd_new, n;
-+    char buf[BUFSIZ];
-+
-+    /* Do the rename first */
-+    if (!rename(oldName, newName))
-+        return 0;
-+
-+    /* If the errno is EXDEV, then read old file, write newfile and
-+     * remove the oldfile */
-+    if (errno == EXDEV) {
-+        /* Open the old file to read */
-+        if ((fd_old = open(oldName, O_RDONLY)) < 0)
-+            return 1;
-+
-+        /* Create the file to write, keep the same attribute as the old file */
-+        if (stat(oldName, &sbprev))
-+            return 1;
-+        else {
-+            if ((fd_new = createOutputFile(newName,
-+                O_WRONLY | O_CREAT | O_TRUNC, &sbprev, acl, 0)) < 0 )
-+                return 1;
-+        }
-+
-+        /* Read and write */
-+        while ((n = read(fd_old, buf, BUFSIZ)) > 0)
-+            if (write(fd_new, buf, n) != n)
-+                return 1;
-+
-+        if ((close(fd_old) < 0) ||
-+            removeLogFile(oldName, log) ||
-+            (close(fd_new) < 0))
-+            return 1;
-+
-+        return 0;
-+    }
-+
-+    return 1;
-+}
-+
- /* find the rotated file with the highest index */
- static int findLastRotated(const struct logNames *rotNames,
-                            const char *fileext, const char *compext)
-@@ -1958,15 +2005,15 @@ static int prerotateSingleLog(const struct logInfo *log, unsigned logNum,
-             }
- 
-             message(MESS_DEBUG,
--                    "renaming %s to %s (rotatecount %d, logstart %d, i %d), \n",
-+                    "moving %s to %s (rotatecount %d, logstart %d, i %d), \n",
-                     oldName, newName, rotateCount, logStart, i);
- 
--            if (!debug && rename(oldName, newName)) {
-+            if (!debug && mvFile(oldName, newName, log, prev_acl)) {
-                 if (errno == ENOENT) {
-                     message(MESS_DEBUG, "old log %s does not exist\n",
-                             oldName);
-                 } else {
--                    message(MESS_ERROR, "error renaming %s to %s: %s\n",
-+                    message(MESS_ERROR, "error moving %s to %s: %s\n",
-                             oldName, newName, strerror(errno));
-                     hasErrors = 1;
-                 }
-@@ -2051,10 +2098,10 @@ static int rotateSingleLog(const struct logInfo *log, unsigned logNum,
-                     return 1;
-                 }
- 
--                message(MESS_DEBUG, "renaming %s to %s\n", log->files[logNum],
-+                message(MESS_DEBUG, "moving %s to %s\n", log->files[logNum],
-                         tmpFilename);
--                if (!debug && !hasErrors && rename(log->files[logNum], tmpFilename)) {
--                    message(MESS_ERROR, "failed to rename %s to %s: %s\n",
-+                if (!debug && !hasErrors && mvFile(log->files[logNum], rotNames->finalName, log, prev_acl)) {
-+                    message(MESS_ERROR, "failed to move %s to %s: %s\n",
-                             log->files[logNum], tmpFilename,
-                             strerror(errno));
-                     hasErrors = 1;
-@@ -2063,11 +2110,11 @@ static int rotateSingleLog(const struct logInfo *log, unsigned logNum,
-                 free(tmpFilename);
-             }
-             else {
--                message(MESS_DEBUG, "renaming %s to %s\n", log->files[logNum],
-+                message(MESS_DEBUG, "moving %s to %s\n", log->files[logNum],
-                         rotNames->finalName);
-                 if (!debug && !hasErrors &&
--                        rename(log->files[logNum], rotNames->finalName)) {
--                    message(MESS_ERROR, "failed to rename %s to %s: %s\n",
-+                        mvFile(log->files[logNum], rotNames->finalName, log, prev_acl)) {
-+                    message(MESS_ERROR, "failed to move %s to %s: %s\n",
-                             log->files[logNum], rotNames->finalName,
-                             strerror(errno));
-                     hasErrors = 1;
-@@ -2480,7 +2527,7 @@ static int rotateLogSet(const struct logInfo *log, int force)
-     return hasErrors;
- }
- 
--static int writeState(const char *stateFilename)
-+static int writeState(struct logInfo *log, char *stateFilename)
- {
-     struct logState *p;
-     FILE *f;
-@@ -2659,7 +2706,7 @@ static int writeState(const char *stateFilename)
-         fclose(f);
- 
-     if (error == 0) {
--        if (rename(tmpFilename, stateFilename)) {
-+        if (mvFile(tmpFilename, stateFilename, log, prev_acl)) {
-             message(MESS_ERROR, "error renaming temp state file %s to %s: %s\n",
-                     tmpFilename, stateFilename, strerror(errno));
-             unlink(tmpFilename);
-@@ -3073,7 +3120,7 @@ int main(int argc, const char **argv)
-         rc |= rotateLogSet(log, force);
- 
-     if (!debug)
--        rc |= writeState(stateFile);
-+        rc |= writeState(log, stateFile);
- 
-     return (rc != 0);
- }
diff --git a/poky/meta/recipes-extended/logrotate/logrotate/disable-check-different-filesystems.patch b/poky/meta/recipes-extended/logrotate/logrotate/disable-check-different-filesystems.patch
deleted file mode 100644
index d7f9a02..0000000
--- a/poky/meta/recipes-extended/logrotate/logrotate/disable-check-different-filesystems.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 16c1833ade4c036b30b8761d2c4a5bd85cc65c44 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Tue, 8 Jan 2019 06:27:06 +0000
-Subject: [PATCH] Disable the check for different filesystems
-
-The logrotate supports rotate log across different filesystems now, so
-disable the check for different filesystems.
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-
----
- config.c | 9 ---------
- 1 file changed, 9 deletions(-)
-
-diff --git a/config.c b/config.c
-index d2488f1..1de3745 100644
---- a/config.c
-+++ b/config.c
-@@ -1902,15 +1902,6 @@ duperror:
-                             }
- 
-                             free(ld);
--
--                            if (sb.st_dev != sb2.st_dev
--                                    && !(newlog->flags & (LOG_FLAG_COPYTRUNCATE | LOG_FLAG_COPY | LOG_FLAG_TMPFILENAME))) {
--                                message(MESS_ERROR,
--                                        "%s:%d olddir %s and log file %s "
--                                        "are on different devices\n", configFile,
--                                        lineNum, newlog->oldDir, newlog->files[j]);
--                                goto error;
--                            }
-                         }
-                     }
- 
diff --git a/poky/meta/recipes-extended/logrotate/logrotate_3.18.1.bb b/poky/meta/recipes-extended/logrotate/logrotate_3.18.1.bb
deleted file mode 100644
index bca4787..0000000
--- a/poky/meta/recipes-extended/logrotate/logrotate_3.18.1.bb
+++ /dev/null
@@ -1,95 +0,0 @@
-SUMMARY = "Rotates, compresses, removes and mails system log files"
-SECTION = "console/utils"
-HOMEPAGE = "https://github.com/logrotate/logrotate/"
-DESCRIPTION = "The logrotate utility is designed to simplify the administration of log files on a system which generates a lot of log files."
-LICENSE = "GPLv2"
-
-# TODO: Document coreutils dependency. Why not RDEPENDS? Why not busybox?
-
-DEPENDS="coreutils popt"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
-UPSTREAM_CHECK_REGEX = "logrotate-(?P<pver>\d+(\.\d+)+).tar"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz \
-            file://act-as-mv-when-rotate.patch \
-            file://0001-Update-the-manual.patch \
-            file://disable-check-different-filesystems.patch \
-            "
-
-SRC_URI[sha256sum] = "14a924e4804b3974e85019a9f9352c2a69726702e6656155c48bcdeace68a5dc"
-
-# These CVEs are debian, gentoo or SUSE specific on the way logrotate was installed/used
-CVE_CHECK_WHITELIST += "CVE-2011-1548 CVE-2011-1549 CVE-2011-1550"
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}"
-
-PACKAGECONFIG[acl] = ",,acl"
-PACKAGECONFIG[selinux] = ",,libselinux"
-
-CONFFILES:${PN} += "${localstatedir}/lib/logrotate.status \
-                    ${sysconfdir}/logrotate.conf \
-                    ${sysconfdir}/logrotate.d/btmp \
-                    ${sysconfdir}/logrotate.d/wtmp"
-
-# If RPM_OPT_FLAGS is unset, it adds -g itself rather than obeying our
-# optimization variables, so use it rather than EXTRA_CFLAGS.
-EXTRA_OEMAKE = "\
-    LFS= \
-    OS_NAME='${OS_NAME}' \
-    'CC=${CC}' \
-    'RPM_OPT_FLAGS=${CFLAGS}' \
-    'EXTRA_LDFLAGS=${LDFLAGS}' \
-    ${@bb.utils.contains('PACKAGECONFIG', 'acl', 'WITH_ACL=yes', '', d)} \
-    ${@bb.utils.contains('PACKAGECONFIG', 'selinux', 'WITH_SELINUX=yes', '', d)} \
-"
-
-# OS_NAME in the makefile defaults to `uname -s`. The behavior for
-# freebsd/netbsd is questionable, so leave it as Linux, which only sets
-# INSTALL=install and BASEDIR=/usr.
-OS_NAME = "Linux"
-
-inherit autotools systemd
-
-SYSTEMD_SERVICE:${PN} = "\
-    ${BPN}.service \
-    ${BPN}.timer \
-"
-
-LOGROTATE_OPTIONS ?= ""
-
-LOGROTATE_SYSTEMD_TIMER_BASIS ?= "daily"
-LOGROTATE_SYSTEMD_TIMER_ACCURACY ?= "12h"
-LOGROTATE_SYSTEMD_TIMER_PERSISTENT ?= "true"
-
-do_install(){
-    oe_runmake install DESTDIR=${D} PREFIX=${D} MANDIR=${mandir}
-    mkdir -p ${D}${sysconfdir}/logrotate.d
-    mkdir -p ${D}${localstatedir}/lib
-    install -p -m 644 ${S}/examples/logrotate.conf ${D}${sysconfdir}/logrotate.conf
-    install -p -m 644 ${S}/examples/btmp ${D}${sysconfdir}/logrotate.d/btmp
-    install -p -m 644 ${S}/examples/wtmp ${D}${sysconfdir}/logrotate.d/wtmp
-    touch ${D}${localstatedir}/lib/logrotate.status
-
-    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
-        install -d ${D}${systemd_system_unitdir}
-        install -m 0644 ${S}/examples/logrotate.service ${D}${systemd_system_unitdir}/logrotate.service
-        install -m 0644 ${S}/examples/logrotate.timer ${D}${systemd_system_unitdir}/logrotate.timer
-        [ -z "${LOGROTATE_OPTIONS}" ] ||
-            sed -ri \
-                -e 's|(ExecStart=.*/logrotate.*)$|\1 ${LOGROTATE_OPTIONS}|g' \
-                ${D}${systemd_system_unitdir}/logrotate.service
-        sed -ri \
-            -e 's|(OnCalendar=).*$|\1${LOGROTATE_SYSTEMD_TIMER_BASIS}|g' \
-            -e 's|(AccuracySec=).*$|\1${LOGROTATE_SYSTEMD_TIMER_ACCURACY}|g' \
-            -e 's|(Persistent=).*$|\1${LOGROTATE_SYSTEMD_TIMER_PERSISTENT}|g' \
-            ${D}${systemd_system_unitdir}/logrotate.timer
-    fi
-
-    if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
-        mkdir -p ${D}${sysconfdir}/cron.daily
-        install -p -m 0755 ${S}/examples/logrotate.cron ${D}${sysconfdir}/cron.daily/logrotate
-    fi
-}
diff --git a/poky/meta/recipes-extended/logrotate/logrotate_3.19.0.bb b/poky/meta/recipes-extended/logrotate/logrotate_3.19.0.bb
new file mode 100644
index 0000000..67c0718
--- /dev/null
+++ b/poky/meta/recipes-extended/logrotate/logrotate_3.19.0.bb
@@ -0,0 +1,91 @@
+SUMMARY = "Rotates, compresses, removes and mails system log files"
+SECTION = "console/utils"
+HOMEPAGE = "https://github.com/logrotate/logrotate/"
+DESCRIPTION = "The logrotate utility is designed to simplify the administration of log files on a system which generates a lot of log files."
+LICENSE = "GPLv2"
+
+# TODO: Document coreutils dependency. Why not RDEPENDS? Why not busybox?
+
+DEPENDS="coreutils popt"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+UPSTREAM_CHECK_REGEX = "logrotate-(?P<pver>\d+(\.\d+)+).tar"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz"
+
+SRC_URI[sha256sum] = "ddd5274d684c5c99ca724e8069329f343ebe376e07493d537d9effdc501214ba"
+
+# These CVEs are debian, gentoo or SUSE specific on the way logrotate was installed/used
+CVE_CHECK_WHITELIST += "CVE-2011-1548 CVE-2011-1549 CVE-2011-1550"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}"
+
+PACKAGECONFIG[acl] = ",,acl"
+PACKAGECONFIG[selinux] = ",,libselinux"
+
+CONFFILES:${PN} += "${localstatedir}/lib/logrotate.status \
+                    ${sysconfdir}/logrotate.conf \
+                    ${sysconfdir}/logrotate.d/btmp \
+                    ${sysconfdir}/logrotate.d/wtmp"
+
+# If RPM_OPT_FLAGS is unset, it adds -g itself rather than obeying our
+# optimization variables, so use it rather than EXTRA_CFLAGS.
+EXTRA_OEMAKE = "\
+    LFS= \
+    OS_NAME='${OS_NAME}' \
+    'CC=${CC}' \
+    'RPM_OPT_FLAGS=${CFLAGS}' \
+    'EXTRA_LDFLAGS=${LDFLAGS}' \
+    ${@bb.utils.contains('PACKAGECONFIG', 'acl', 'WITH_ACL=yes', '', d)} \
+    ${@bb.utils.contains('PACKAGECONFIG', 'selinux', 'WITH_SELINUX=yes', '', d)} \
+"
+
+# OS_NAME in the makefile defaults to `uname -s`. The behavior for
+# freebsd/netbsd is questionable, so leave it as Linux, which only sets
+# INSTALL=install and BASEDIR=/usr.
+OS_NAME = "Linux"
+
+inherit autotools systemd
+
+SYSTEMD_SERVICE:${PN} = "\
+    ${BPN}.service \
+    ${BPN}.timer \
+"
+
+LOGROTATE_OPTIONS ?= ""
+
+LOGROTATE_SYSTEMD_TIMER_BASIS ?= "daily"
+LOGROTATE_SYSTEMD_TIMER_ACCURACY ?= "12h"
+LOGROTATE_SYSTEMD_TIMER_PERSISTENT ?= "true"
+
+do_install(){
+    oe_runmake install DESTDIR=${D} PREFIX=${D} MANDIR=${mandir}
+    mkdir -p ${D}${sysconfdir}/logrotate.d
+    mkdir -p ${D}${localstatedir}/lib
+    install -p -m 644 ${S}/examples/logrotate.conf ${D}${sysconfdir}/logrotate.conf
+    install -p -m 644 ${S}/examples/btmp ${D}${sysconfdir}/logrotate.d/btmp
+    install -p -m 644 ${S}/examples/wtmp ${D}${sysconfdir}/logrotate.d/wtmp
+    touch ${D}${localstatedir}/lib/logrotate.status
+
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+        install -d ${D}${systemd_system_unitdir}
+        install -m 0644 ${S}/examples/logrotate.service ${D}${systemd_system_unitdir}/logrotate.service
+        install -m 0644 ${S}/examples/logrotate.timer ${D}${systemd_system_unitdir}/logrotate.timer
+        [ -z "${LOGROTATE_OPTIONS}" ] ||
+            sed -ri \
+                -e 's|(ExecStart=.*/logrotate.*)$|\1 ${LOGROTATE_OPTIONS}|g' \
+                ${D}${systemd_system_unitdir}/logrotate.service
+        sed -ri \
+            -e 's|(OnCalendar=).*$|\1${LOGROTATE_SYSTEMD_TIMER_BASIS}|g' \
+            -e 's|(AccuracySec=).*$|\1${LOGROTATE_SYSTEMD_TIMER_ACCURACY}|g' \
+            -e 's|(Persistent=).*$|\1${LOGROTATE_SYSTEMD_TIMER_PERSISTENT}|g' \
+            ${D}${systemd_system_unitdir}/logrotate.timer
+    fi
+
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+        mkdir -p ${D}${sysconfdir}/cron.daily
+        install -p -m 0755 ${S}/examples/logrotate.cron ${D}${sysconfdir}/cron.daily/logrotate
+    fi
+}
diff --git a/poky/meta/recipes-extended/lsof/lsof_4.94.0.bb b/poky/meta/recipes-extended/lsof/lsof_4.94.0.bb
index 9659fa8..c2b8bc8 100644
--- a/poky/meta/recipes-extended/lsof/lsof_4.94.0.bb
+++ b/poky/meta/recipes-extended/lsof/lsof_4.94.0.bb
@@ -11,7 +11,7 @@
 # https://people.freebsd.org/~abe/ ). http://www.mirrorservice.org seems to be
 # the most commonly used alternative.
 
-SRC_URI = "git://github.com/lsof-org/lsof \
+SRC_URI = "git://github.com/lsof-org/lsof;branch=master;protocol=https \
            file://lsof-remove-host-information.patch \
           "
 
diff --git a/poky/meta/recipes-extended/ltp/ltp_20210927.bb b/poky/meta/recipes-extended/ltp/ltp_20210927.bb
index 359a0013..b5dfd8b 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20210927.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20210927.bb
@@ -24,7 +24,7 @@
 CFLAGS:append:mipsarchn64 = " -D__SANE_USERSPACE_TYPES__"
 SRCREV = "12beeda351b5d758a729aaf695b836ccc9eb5304"
 
-SRC_URI = "git://github.com/linux-test-project/ltp.git \
+SRC_URI = "git://github.com/linux-test-project/ltp.git;branch=master;protocol=https \
            file://0001-Remove-OOM-tests-from-runtest-mm.patch \
            file://0002-lib-fix-MemAvailable-parsing.patch \
            file://0003-lapi-rtnetlink.h-Fix-include-guards.patch \
diff --git a/poky/meta/recipes-extended/mdadm/files/0001-Compute-abs-diff-in-a-standard-compliant-way.patch b/poky/meta/recipes-extended/mdadm/files/0001-Compute-abs-diff-in-a-standard-compliant-way.patch
deleted file mode 100644
index 803a59b..0000000
--- a/poky/meta/recipes-extended/mdadm/files/0001-Compute-abs-diff-in-a-standard-compliant-way.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From b273e892bd6aaafe448f84356abb78a6d463e784 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 7 Dec 2018 17:22:39 -0800
-Subject: [PATCH] Compute abs diff in a standard compliant way
-
-This make it a bit less implementation defined and silences clang
-warning -Wabsolute-value
-
-| super-intel.c:2822:20: error: taking the absolute value of unsigned type 'unsi
-gned long long' has no effect [-Werror,-Wabsolute-value]
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- super-intel.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/super-intel.c b/super-intel.c
-index 6438987..10d7218 100644
---- a/super-intel.c
-+++ b/super-intel.c
-@@ -2819,7 +2819,7 @@ static unsigned long long calc_component_size(struct imsm_map *map,
- 	 * 2048 blocks per each device. If the difference is higher it means
- 	 * that array size was expanded and num_data_stripes was not updated.
- 	 */
--	if ((unsigned int)abs(calc_dev_size - dev_size) >
-+	if ((unsigned int)abs((int)calc_dev_size - (int)dev_size) >
- 	    (1 << SECT_PER_MB_SHIFT) * member_disks) {
- 		component_size = dev_size / member_disks;
- 		dprintf("Invalid num_data_stripes in metadata; expected=%llu, found=%llu\n",
diff --git a/poky/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch b/poky/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch
index b196084..fb4bc16 100644
--- a/poky/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch
+++ b/poky/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch
@@ -10,7 +10,7 @@
 commonly by other tests such as tests/02r5grow, tests/07revert-grow
 and etc.
 
-Upstream-Status: Submitted[https://marc.info/?l=linux-raid&m=156317157314030&w=2]
+Upstream-Status: Submitted [https://marc.info/?l=linux-raid&m=156317157314030&w=2]
 
 Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
 ---
diff --git a/poky/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch b/poky/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch
index 3a192cc..84517ca 100644
--- a/poky/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch
+++ b/poky/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch
@@ -17,7 +17,7 @@
 "try" includes near 20 sub testcase, so there are nearly 80 subcases need to run,
 so it will take long time than ptest-runner timeout limit, skip it as workaround.
 
-Upstream-Status: Inappropriate[oe-specific]
+Upstream-Status: Inappropriate [oe-specific]
 
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
diff --git a/poky/meta/recipes-extended/mdadm/files/debian-no-Werror.patch b/poky/meta/recipes-extended/mdadm/files/debian-no-Werror.patch
index e66a15c..fa90647 100644
--- a/poky/meta/recipes-extended/mdadm/files/debian-no-Werror.patch
+++ b/poky/meta/recipes-extended/mdadm/files/debian-no-Werror.patch
@@ -1,5 +1,7 @@
-From: martin f. krafft <madduck@debian.org>
-Subject: Remove -Werror from compiler flags
+From adb75f0bdec97dbe4aa15cc988d349775f7995ff Mon Sep 17 00:00:00 2001
+From: "martin f. krafft" <madduck@debian.org>
+Date: Mon, 3 Jan 2022 19:14:12 +0000
+Subject: [PATCH] Remove -Werror from compiler flags
 
 -Werror seems like a bad idea on released/packaged code because a toolchain
 update (introducing new warnings) could break the build. We'll let upstream
@@ -8,15 +10,18 @@
 Signed-off-by: martin f. krafft <madduck@debian.org>
 
 Upstream-Status: Pending
----
- Makefile |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
 
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 716c97c..40354ea 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -48,7 +48,7 @@ endif
- 
- CC ?= $(CROSS_COMPILE)gcc
+@@ -50,7 +50,7 @@ ifeq ($(origin CC),default)
+ CC := $(CROSS_COMPILE)gcc
+ endif
  CXFLAGS ?= -ggdb
 -CWFLAGS = -Wall -Werror -Wstrict-prototypes -Wextra -Wno-unused-parameter
 +CWFLAGS = -Wall -Wstrict-prototypes -Wextra -Wno-unused-parameter
diff --git a/poky/meta/recipes-extended/mdadm/files/mdadm-fix-ptest-build-errors.patch b/poky/meta/recipes-extended/mdadm/files/mdadm-fix-ptest-build-errors.patch
deleted file mode 100644
index 8e2a8a9..0000000
--- a/poky/meta/recipes-extended/mdadm/files/mdadm-fix-ptest-build-errors.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 911f6ea9be0c334885aeff66853b111cbd4066df Mon Sep 17 00:00:00 2001
-From: "Maxin B. John" <maxin.john@intel.com>
-Date: Wed, 10 Feb 2016 17:28:05 +0200
-Subject: [PATCH] mdadm-fix-ptest-build-errors
-
-builds fail with ptest enabled:
-
-| restripe.c: In function 'test_stripes':
-| restripe.c:845:4: error: ignoring return value of 'read', declared with
-| attribute warn_unused_result [-Werror=unused-result]
-|     read(source[i], stripes[i], chunk_size);
-|     ^
-| cc1: all warnings being treated as errors
-| Makefile:214: recipe for target 'test_stripe' failed
-
-Upstream-Status: Pending
-
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
-
----
- restripe.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/restripe.c b/restripe.c
-index 31b07e8..592ba5d 100644
---- a/restripe.c
-+++ b/restripe.c
-@@ -864,10 +864,14 @@ int test_stripes(int *source, unsigned long long *offsets,
- 
- 	while (length > 0) {
- 		int disk;
-+        ssize_t ret;
- 
- 		for (i = 0 ; i < raid_disks ; i++) {
- 			lseek64(source[i], offsets[i]+start, 0);
--			read(source[i], stripes[i], chunk_size);
-+			ret = read(source[i], stripes[i], chunk_size);
-+            if (ret == -1) {
-+			  printf("Read Failed\n");
-+            }
- 		}
- 		for (i = 0 ; i < data_disks ; i++) {
- 			int disk = geo_map(i, start/chunk_size, raid_disks,
diff --git a/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb b/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb
deleted file mode 100644
index 35535ae..0000000
--- a/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb
+++ /dev/null
@@ -1,108 +0,0 @@
-SUMMARY = "Tool for managing software RAID under Linux"
-HOMEPAGE = "http://www.kernel.org/pub/linux/utils/raid/mdadm/"
-DESCRIPTION = "mdadm is a Linux utility used to manage and monitor software RAID devices."
-
-# Some files are GPLv2+ while others are GPLv2.
-LICENSE = "GPLv2 & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://mdmon.c;beginline=4;endline=18;md5=af7d8444d9c4d3e5c7caac0d9d34039d \
-                    file://mdadm.h;beglinlne=4;endline=22;md5=462bc9936ac0d3da110191a3f9994161"
-
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/utils/raid/mdadm/${BPN}-${PV}.tar.xz \
-           file://run-ptest \
-           file://mdadm-3.3.2_x32_abi_time_t.patch \
-           file://mdadm-fix-ptest-build-errors.patch \
-           file://0001-mdadm.h-Undefine-dprintf-before-redefining.patch \
-           file://0001-Fix-the-path-of-corosync-and-dlm-header-files-check.patch \
-           file://0001-Use-CC-to-check-for-implicit-fallthrough-warning-sup.patch \
-           file://0001-Compute-abs-diff-in-a-standard-compliant-way.patch \
-           file://0001-fix-gcc-8-format-truncation-warning.patch \
-           file://debian-no-Werror.patch \
-           file://0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch \
-           file://mdadm.init \
-           file://0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch \
-           file://include_sysmacros.patch \
-           file://0001-mdadm-skip-test-11spare-migration.patch \
-           "
-
-SRC_URI[md5sum] = "51bf3651bd73a06c413a2f964f299598"
-SRC_URI[sha256sum] = "ab7688842908d3583a704d491956f31324c3a5fc9f6a04653cb75d19f1934f4a"
-
-inherit autotools-brokensep ptest systemd
-
-SYSTEMD_SERVICE:${PN} = "mdmonitor.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-CFLAGS:append:toolchain-clang = " -Wno-error=address-of-packed-member"
-
-# PPC64 and MIPS64 uses long long for u64 in the kernel, but powerpc's asm/types.h
-# prevents 64-bit userland from seeing this definition, instead defaulting
-# to u64 == long in userspace. Define __SANE_USERSPACE_TYPES__ to get
-# int-ll64.h included
-CFLAGS:append:powerpc64 = ' -D__SANE_USERSPACE_TYPES__'
-CFLAGS:append:mipsarchn64 = ' -D__SANE_USERSPACE_TYPES__'
-CFLAGS:append:mipsarchn32 = ' -D__SANE_USERSPACE_TYPES__'
-
-EXTRA_OEMAKE = 'CHECK_RUN_DIR=0 CXFLAGS="${CFLAGS}" SYSTEMD_DIR=${systemd_system_unitdir} \
-                BINDIR="${base_sbindir}" UDEVDIR="${nonarch_base_libdir}/udev"'
-
-DEBUG_OPTIMIZATION:append = " -Wno-error"
-
-do_compile() {
-	oe_runmake SYSROOT="${STAGING_DIR_TARGET}"
-}
-
-do_install() {
-	export STRIP=""
-	autotools_do_install
-}
-
-do_install:append() {
-        install -d ${D}/${sysconfdir}/
-        install -m 644 ${S}/mdadm.conf-example ${D}${sysconfdir}/mdadm.conf
-        install -d ${D}/${sysconfdir}/init.d
-        install -m 755 ${WORKDIR}/mdadm.init ${D}${sysconfdir}/init.d/mdmonitor
-}
-
-do_install:append() {
-        oe_runmake install-systemd DESTDIR=${D}
-}
-
-do_compile_ptest() {
-	oe_runmake test
-}
-
-do_install_ptest() {
-	cp -R --no-dereference --preserve=mode,links -v ${S}/tests ${D}${PTEST_PATH}/tests
-	cp ${S}/test ${D}${PTEST_PATH}
-	sed -e 's!sleep 0.*!sleep 1!g; s!/var/tmp!/mdadm-testing-dir!g' -i ${D}${PTEST_PATH}/test
-	sed -e 's!/var/tmp!/mdadm-testing-dir!g' -i ${D}${PTEST_PATH}/tests/*
-        sed -i -e '/echo -ne "$_script... "/d' \
-               -e 's/echo "succeeded"/echo -e "PASS: $_script"/g' \
-               -e '/save_log fail/N; /_fail=1/i\\t\t\techo -ne "FAIL: $_script"' \
-               -e '/die "dmesg prints errors when testing $_basename!"/i\\t\t\t\techo -ne "FAIL: $_script" &&' \
-               ${D}${PTEST_PATH}/test
-
-        chmod +x ${D}${PTEST_PATH}/test
-
-	ln -s ${base_sbindir}/mdadm ${D}${PTEST_PATH}/mdadm
-	for prg in test_stripe swap_super raid6check
-	do
-		install -D -m 755 $prg ${D}${PTEST_PATH}/
-	done
-}
-
-RDEPENDS:${PN}-ptest += "bash e2fsprogs-mke2fs"
-RRECOMMENDS:${PN}-ptest += " \
-    coreutils \
-    util-linux \
-    kernel-module-loop \
-    kernel-module-linear \
-    kernel-module-raid0 \
-    kernel-module-raid1 \
-    kernel-module-raid10 \
-    kernel-module-raid456 \
-"
-
-FILES:${PN} += "${systemd_unitdir}/*"
diff --git a/poky/meta/recipes-extended/mdadm/mdadm_4.2.bb b/poky/meta/recipes-extended/mdadm/mdadm_4.2.bb
new file mode 100644
index 0000000..fa51364
--- /dev/null
+++ b/poky/meta/recipes-extended/mdadm/mdadm_4.2.bb
@@ -0,0 +1,107 @@
+SUMMARY = "Tool for managing software RAID under Linux"
+HOMEPAGE = "http://www.kernel.org/pub/linux/utils/raid/mdadm/"
+DESCRIPTION = "mdadm is a Linux utility used to manage and monitor software RAID devices."
+
+# Some files are GPLv2+ while others are GPLv2.
+LICENSE = "GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://mdmon.c;beginline=4;endline=18;md5=af7d8444d9c4d3e5c7caac0d9d34039d \
+                    file://mdadm.h;beglinlne=4;endline=22;md5=462bc9936ac0d3da110191a3f9994161"
+
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/utils/raid/mdadm/${BPN}-${PV}.tar.xz \
+           file://run-ptest \
+           file://mdadm-3.3.2_x32_abi_time_t.patch \
+           file://0001-mdadm.h-Undefine-dprintf-before-redefining.patch \
+           file://0001-Fix-the-path-of-corosync-and-dlm-header-files-check.patch \
+           file://0001-Use-CC-to-check-for-implicit-fallthrough-warning-sup.patch \
+           file://0001-fix-gcc-8-format-truncation-warning.patch \
+           file://debian-no-Werror.patch \
+           file://0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch \
+           file://mdadm.init \
+           file://0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch \
+           file://include_sysmacros.patch \
+           file://0001-mdadm-skip-test-11spare-migration.patch \
+           "
+
+SRC_URI[sha256sum] = "461c215670864bb74a4d1a3620684aa2b2f8296dffa06743f26dda5557acf01d"
+
+inherit autotools-brokensep ptest systemd
+
+DEPENDS = "udev"
+
+SYSTEMD_SERVICE:${PN} = "mdmonitor.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+CFLAGS:append:toolchain-clang = " -Wno-error=address-of-packed-member"
+
+# PPC64 and MIPS64 uses long long for u64 in the kernel, but powerpc's asm/types.h
+# prevents 64-bit userland from seeing this definition, instead defaulting
+# to u64 == long in userspace. Define __SANE_USERSPACE_TYPES__ to get
+# int-ll64.h included
+CFLAGS:append:powerpc64 = ' -D__SANE_USERSPACE_TYPES__'
+CFLAGS:append:mipsarchn64 = ' -D__SANE_USERSPACE_TYPES__'
+CFLAGS:append:mipsarchn32 = ' -D__SANE_USERSPACE_TYPES__'
+
+EXTRA_OEMAKE = 'CHECK_RUN_DIR=0 CXFLAGS="${CFLAGS}" SYSTEMD_DIR=${systemd_system_unitdir} \
+                BINDIR="${base_sbindir}" UDEVDIR="${nonarch_base_libdir}/udev"'
+
+DEBUG_OPTIMIZATION:append = " -Wno-error"
+
+do_compile() {
+	oe_runmake SYSROOT="${STAGING_DIR_TARGET}"
+}
+
+do_install() {
+	export STRIP=""
+	autotools_do_install
+}
+
+do_install:append() {
+        install -d ${D}/${sysconfdir}/
+        install -m 644 ${S}/mdadm.conf-example ${D}${sysconfdir}/mdadm.conf
+        install -d ${D}/${sysconfdir}/init.d
+        install -m 755 ${WORKDIR}/mdadm.init ${D}${sysconfdir}/init.d/mdmonitor
+}
+
+do_install:append() {
+        oe_runmake install-systemd DESTDIR=${D}
+}
+
+do_compile_ptest() {
+	oe_runmake test
+}
+
+do_install_ptest() {
+	cp -R --no-dereference --preserve=mode,links -v ${S}/tests ${D}${PTEST_PATH}/tests
+	cp ${S}/test ${D}${PTEST_PATH}
+	sed -e 's!sleep 0.*!sleep 1!g; s!/var/tmp!/mdadm-testing-dir!g' -i ${D}${PTEST_PATH}/test
+	sed -e 's!/var/tmp!/mdadm-testing-dir!g' -i ${D}${PTEST_PATH}/tests/*
+        sed -i -e '/echo -ne "$_script... "/d' \
+               -e 's/echo "succeeded"/echo -e "PASS: $_script"/g' \
+               -e '/save_log fail/N; /_fail=1/i\\t\t\techo -ne "FAIL: $_script"' \
+               -e '/die "dmesg prints errors when testing $_basename!"/i\\t\t\t\techo -ne "FAIL: $_script" &&' \
+               ${D}${PTEST_PATH}/test
+
+        chmod +x ${D}${PTEST_PATH}/test
+
+	ln -s ${base_sbindir}/mdadm ${D}${PTEST_PATH}/mdadm
+	for prg in test_stripe swap_super raid6check
+	do
+		install -D -m 755 $prg ${D}${PTEST_PATH}/
+	done
+}
+
+RDEPENDS:${PN}-ptest += "bash e2fsprogs-mke2fs"
+RRECOMMENDS:${PN}-ptest += " \
+    coreutils \
+    util-linux \
+    kernel-module-loop \
+    kernel-module-linear \
+    kernel-module-raid0 \
+    kernel-module-raid1 \
+    kernel-module-raid10 \
+    kernel-module-raid456 \
+"
+
+FILES:${PN} += "${systemd_unitdir}/*"
diff --git a/poky/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch b/poky/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch
index 4c6e249..01b2389 100644
--- a/poky/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch
+++ b/poky/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch
@@ -11,7 +11,7 @@
 This fixes linking with gcc 10 which uses -fno-common by default,
 disallowing multiple global variable definitions.
 
-Upstream-Status: Pending
+Upstream-Status: Backport [https://salsa.debian.org/minicom-team/minicom/-/commit/db269bba2a68fde03f5df45ac8372a8f1248ca96]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  src/dial.c | 2 --
diff --git a/poky/meta/recipes-extended/minicom/minicom/0001-Fix-build-issus-surfaced-due-to-musl.patch b/poky/meta/recipes-extended/minicom/minicom/0001-Fix-build-issus-surfaced-due-to-musl.patch
deleted file mode 100644
index fec67fd..0000000
--- a/poky/meta/recipes-extended/minicom/minicom/0001-Fix-build-issus-surfaced-due-to-musl.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From d62a5862e26ed3fc58d789efe9c40ca6c911d36b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 31 Aug 2015 22:35:31 +0000
-Subject: [PATCH] Fix build issus surfaced due to musl
-
-src/getsdir.h:28:14: error: 'MAXNAMLEN' undeclared here (not in a function)
-   char fname[MAXNAMLEN + 1];  /* filename + terminating null */
-
-src/dial.c:352:22: error: 'KIOCSOUND' undeclared (first use in this function)
-|      ioctl(consolefd, KIOCSOUND, k);
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- src/dial.c    | 2 +-
- src/getsdir.c | 1 +
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/dial.c b/src/dial.c
-index a90c1d2..bf02574 100644
---- a/src/dial.c
-+++ b/src/dial.c
-@@ -39,7 +39,7 @@
- #include "intl.h"
- 
- #ifdef VC_MUSIC
--#  if defined(__GLIBC__)
-+#  if defined(__GLIBC__) || defined(__linux__)
- #    include <sys/ioctl.h>
- #    include <sys/kd.h>
- #    include <sys/time.h>
-diff --git a/src/getsdir.c b/src/getsdir.c
-index 2195b27..b61a361 100644
---- a/src/getsdir.c
-+++ b/src/getsdir.c
-@@ -30,6 +30,7 @@
- #include <string.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-+#include <sys/param.h>
- #include <errno.h>
- 
- #include "getsdir.h"
--- 
-2.5.1
-
diff --git a/poky/meta/recipes-extended/minicom/minicom/0001-fix-minicom-h-v-return-value-is-not-0.patch b/poky/meta/recipes-extended/minicom/minicom/0001-fix-minicom-h-v-return-value-is-not-0.patch
index bd8261c..9e67126 100644
--- a/poky/meta/recipes-extended/minicom/minicom/0001-fix-minicom-h-v-return-value-is-not-0.patch
+++ b/poky/meta/recipes-extended/minicom/minicom/0001-fix-minicom-h-v-return-value-is-not-0.patch
@@ -1,35 +1,33 @@
-Subject: [PATCH] fix minicom -h/-v return value is not 0
+Exit normally for help/verison options
 
-Upstream-Status: Pending
+If -v or -h is used for the help/version information, it is a normal exit situation,
+not an error condition. Sometimes these are used as a simple operation test of the
+resulting binary so the exit code does matter.
 
-Signed-off-by: Lu Chong <Chong.Lu@windriver.com>
-
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Upstream-Status: Submitted [https://salsa.debian.org/minicom-team/minicom/-/merge_requests/14]
 ---
  src/minicom.c |    6 ++----
  1 file changed, 2 insertions(+), 4 deletions(-)
 
-diff --git a/src/minicom.c b/src/minicom.c
-index e1a557b..730da7c 100644
---- a/src/minicom.c
-+++ b/src/minicom.c
-@@ -1166,15 +1166,13 @@ int main(int argc, char **argv)
- 	         "modify it under the terms of the GNU General Public License\n"
+Index: minicom-2.8/src/minicom.c
+===================================================================
+--- minicom-2.8.orig/src/minicom.c
++++ minicom-2.8/src/minicom.c
+@@ -1257,14 +1257,14 @@ int main(int argc, char **argv)
+                  "modify it under the terms of the GNU General Public License\n"
                   "as published by the Free Software Foundation; either version\n"
-                  "2 of the License, or (at your option) any later version.\n\n");
+                  "2 of the License, or (at your option) any later version.\n\n"));
 -          exit(1);
--          break;
 +          exit(0);
+           break;
          case 's': /* setup mode */
            dosetup = 1;
            break;
          case 'h':
            helpthem();
 -          exit(1);
--          break;
 +          exit(0);
+           break;
          case 'p': /* Pseudo terminal to use. */
            if (strncmp(optarg, "/dev/", 5) == 0)
-             optarg += 5;
--- 
-1.7.9.5
-
diff --git a/poky/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch b/poky/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch
index 1740051..e86b470 100644
--- a/poky/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch
+++ b/poky/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch
@@ -13,7 +13,7 @@
 This fixes linking with gcc 10 which uses -fno-common by default,
 disallowing multiple global variable definitions.
 
-Upstream-Status: Pending
+Upstream-Status: Backport [https://salsa.debian.org/minicom-team/minicom/-/commit/c69cad5b5dda85d361a3a0c1fddc65e933f26d11]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  src/minicom.h | 2 +-
diff --git a/poky/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch b/poky/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch
index 58cd58e..3225a0c 100644
--- a/poky/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch
+++ b/poky/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch
@@ -14,7 +14,7 @@
 This fixes linking with gcc 10 which uses -fno-common by default,
 disallowing multiple global variable definitions.
 
-Upstream-Status: Pending
+Upstream-Status: Backport [https://salsa.debian.org/minicom-team/minicom/-/commit/c8382374c5d340aa4115d527aed76e876ee5456b]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  src/minicom.h | 6 +++---
diff --git a/poky/meta/recipes-extended/minicom/minicom/allow.to.disable.lockdev.patch b/poky/meta/recipes-extended/minicom/minicom/allow.to.disable.lockdev.patch
index f5c0889..39dc5c0 100644
--- a/poky/meta/recipes-extended/minicom/minicom/allow.to.disable.lockdev.patch
+++ b/poky/meta/recipes-extended/minicom/minicom/allow.to.disable.lockdev.patch
@@ -1,10 +1,19 @@
-Upstream-Status: Pending
+configure: Allow lockdev to be disabled
+
+When the pkgconfig dependencies may be present, it is useful to be
+able to explictly disable the lockdev dependency. This adds such an
+option.
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
 
---- a/configure.in	2013-02-06 18:18:13.000000000 +0100
-+++ b/configure.in	2013-07-21 15:31:27.614828894 +0200
-@@ -40,7 +40,13 @@
+Upstream-Status: Submitted [https://salsa.debian.org/minicom-team/minicom/-/merge_requests/14]
+
+Index: minicom-2.8/configure.ac
+===================================================================
+--- minicom-2.8.orig/configure.ac
++++ minicom-2.8/configure.ac
+@@ -43,7 +43,13 @@ if test "x$enable_socket" = xyes; then
  fi
  
  PKG_PROG_PKG_CONFIG
diff --git a/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb b/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb
deleted file mode 100644
index 4f715cb..0000000
--- a/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Text-based modem control and terminal emulation program"
-HOMEPAGE = "https://salsa.debian.org/minicom-team/minicom"
-DESCRIPTION = "Minicom is a text-based modem control and terminal emulation program for Unix-like operating systems"
-SECTION = "console/network"
-DEPENDS = "ncurses virtual/libiconv"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=420477abc567404debca0a2a1cb6b645 \
-                    file://src/minicom.h;beginline=1;endline=12;md5=a58838cb709f0db517f4e42730c49e81"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/m/${BPN}/${BPN}_${PV}.orig.tar.gz \
-           file://allow.to.disable.lockdev.patch \
-           file://0001-fix-minicom-h-v-return-value-is-not-0.patch \
-           file://0001-Fix-build-issus-surfaced-due-to-musl.patch \
-           file://0001-Drop-superfluous-global-variable-definitions.patch \
-           file://0002-Drop-superfluous-global-variable-definitions.patch \
-           file://0003-Drop-superfluous-global-variable-definitions.patch \
-          "
-
-SRC_URI[md5sum] = "9021cb8c5445f6e6e74b2acc39962d62"
-SRC_URI[sha256sum] = "532f836b7a677eb0cb1dca8d70302b73729c3d30df26d58368d712e5cca041f1"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[lockdev] = "--enable-lockdev,--disable-lockdev,lockdev"
-
-inherit autotools gettext pkgconfig
-
-do_install() {
-	for d in doc extras man lib src; do make -C $d DESTDIR=${D} install; done
-}
-
-RRECOMMENDS:${PN} += "lrzsz"
-
-RDEPENDS:${PN} += "ncurses-terminfo-base"
diff --git a/poky/meta/recipes-extended/minicom/minicom_2.8.bb b/poky/meta/recipes-extended/minicom/minicom_2.8.bb
new file mode 100644
index 0000000..3abd8a4
--- /dev/null
+++ b/poky/meta/recipes-extended/minicom/minicom_2.8.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Text-based modem control and terminal emulation program"
+HOMEPAGE = "https://salsa.debian.org/minicom-team/minicom"
+DESCRIPTION = "Minicom is a text-based modem control and terminal emulation program for Unix-like operating systems"
+SECTION = "console/network"
+DEPENDS = "ncurses virtual/libiconv"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=420477abc567404debca0a2a1cb6b645 \
+                    file://src/minicom.h;beginline=1;endline=12;md5=a58838cb709f0db517f4e42730c49e81"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/m/${BPN}/${BPN}_${PV}.orig.tar.bz2 \
+           file://allow.to.disable.lockdev.patch \
+           file://0001-fix-minicom-h-v-return-value-is-not-0.patch \
+"
+
+SRC_URI[sha256sum] = "38cea30913a20349326ff3f1763ee1512b7b41601c24f065f365e18e9db0beba"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[lockdev] = "--enable-lockdev,--disable-lockdev,lockdev"
+
+inherit autotools gettext pkgconfig
+
+do_install() {
+	for d in doc extras man lib src; do make -C $d DESTDIR=${D} install; done
+}
+
+RRECOMMENDS:${PN} += "lrzsz"
+
+RDEPENDS:${PN} += "ncurses-terminfo-base"
diff --git a/poky/meta/recipes-extended/msmtp/msmtp_1.8.18.bb b/poky/meta/recipes-extended/msmtp/msmtp_1.8.18.bb
deleted file mode 100644
index 1a6cf72..0000000
--- a/poky/meta/recipes-extended/msmtp/msmtp_1.8.18.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "msmtp is an SMTP client"
-DESCRIPTION = "A sendmail replacement for use in MTAs like mutt"
-HOMEPAGE = "https://marlam.de/msmtp/"
-SECTION = "console/network"
-
-LICENSE = "GPLv3"
-DEPENDS = "zlib gnutls"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-UPSTREAM_CHECK_URI = "https://marlam.de/msmtp/download/"
-
-SRC_URI = "https://marlam.de/${BPN}/releases/${BP}.tar.xz"
-SRC_URI[sha256sum] = "14fc62af37ebdcc5ed19a245a05eb8376efe7016118f00c9c594bc999d5560a5"
-
-inherit gettext autotools update-alternatives pkgconfig
-
-EXTRA_OECONF += "--without-libsecret --without-libgsasl --without-libidn"
-
-ALTERNATIVE:${PN} = "sendmail"
-# /usr/lib/sendmial is required by LSB core test
-ALTERNATIVE:${PN}:linuxstdbase = "sendmail usr-lib-sendmail"
-ALTERNATIVE_TARGET[sendmail] = "${bindir}/msmtp"
-ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail"
-ALTERNATIVE_TARGET[usr-lib-sendmail] = "${bindir}/msmtp"
-ALTERNATIVE_LINK_NAME[usr-lib-sendmail] = "/usr/lib/sendmail"
-ALTERNATIVE_PRIORITY = "100"
diff --git a/poky/meta/recipes-extended/msmtp/msmtp_1.8.19.bb b/poky/meta/recipes-extended/msmtp/msmtp_1.8.19.bb
new file mode 100644
index 0000000..29f0e07
--- /dev/null
+++ b/poky/meta/recipes-extended/msmtp/msmtp_1.8.19.bb
@@ -0,0 +1,27 @@
+SUMMARY = "msmtp is an SMTP client"
+DESCRIPTION = "A sendmail replacement for use in MTAs like mutt"
+HOMEPAGE = "https://marlam.de/msmtp/"
+SECTION = "console/network"
+
+LICENSE = "GPLv3"
+DEPENDS = "zlib gnutls"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+UPSTREAM_CHECK_URI = "https://marlam.de/msmtp/download/"
+
+SRC_URI = "https://marlam.de/${BPN}/releases/${BP}.tar.xz"
+SRC_URI[sha256sum] = "34a1e1981176874dbe4ee66ee0d9103c90989aa4dcdc4861e4de05ce7e44526b"
+
+inherit gettext autotools update-alternatives pkgconfig
+
+EXTRA_OECONF += "--without-libsecret --without-libgsasl --without-libidn"
+
+ALTERNATIVE:${PN} = "sendmail"
+# /usr/lib/sendmial is required by LSB core test
+ALTERNATIVE:${PN}:linuxstdbase = "sendmail usr-lib-sendmail"
+ALTERNATIVE_TARGET[sendmail] = "${bindir}/msmtp"
+ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail"
+ALTERNATIVE_TARGET[usr-lib-sendmail] = "${bindir}/msmtp"
+ALTERNATIVE_LINK_NAME[usr-lib-sendmail] = "/usr/lib/sendmail"
+ALTERNATIVE_PRIORITY = "100"
diff --git a/poky/meta/recipes-extended/net-tools/net-tools_2.10.bb b/poky/meta/recipes-extended/net-tools/net-tools_2.10.bb
index 00caccd..eb58813 100644
--- a/poky/meta/recipes-extended/net-tools/net-tools_2.10.bb
+++ b/poky/meta/recipes-extended/net-tools/net-tools_2.10.bb
@@ -7,7 +7,7 @@
                     file://ifconfig.c;beginline=11;endline=15;md5=d1ca372080ad5401e23ca0afc35cf9ba"
 
 SRCREV = "80d7b95067f1f22fece9537dea6dff53081f4886"
-SRC_URI = "git://git.code.sf.net/p/net-tools/code;protocol=https \
+SRC_URI = "git://git.code.sf.net/p/net-tools/code;protocol=https;branch=master \
     file://net-tools-config.h \
     file://net-tools-config.make \
     file://Add_missing_headers.patch \
diff --git a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
index 14a7bde..b66617f 100644
--- a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
+++ b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
@@ -10,7 +10,6 @@
 
 PACKAGES = "\
     packagegroup-core-full-cmdline \
-    packagegroup-core-full-cmdline-libs \
     packagegroup-core-full-cmdline-utils \
     packagegroup-core-full-cmdline-extended \
     packagegroup-core-full-cmdline-dev-utils \
@@ -19,44 +18,7 @@
     packagegroup-core-full-cmdline-sys-services \
     "
 
-python __anonymous () {
-    # For backwards compatibility after rename
-    namemap = {}
-    namemap["packagegroup-core-full-cmdline"] = "packagegroup-core-basic"
-    namemap["packagegroup-core-full-cmdline-libs"] = "packagegroup-core-basic-libs"
-    namemap["packagegroup-core-full-cmdline-utils"] = "packagegroup-core-basic-utils"
-    namemap["packagegroup-core-full-cmdline-extended"] = "packagegroup-core-basic-extended"
-    namemap["packagegroup-core-full-cmdline-dev-utils"] = "packagegroup-core-dev-utils"
-    namemap["packagegroup-core-full-cmdline-multiuser"] = "packagegroup-core-multiuser"
-    namemap["packagegroup-core-full-cmdline-initscripts"] = "packagegroup-core-initscripts"
-    namemap["packagegroup-core-full-cmdline-sys-services"] = "packagegroup-core-sys-services"
-
-    packages = d.getVar("PACKAGES").split()
-    mlprefix = d.getVar("MLPREFIX")
-    for pkg in packages:
-        pkg2 = pkg[len(mlprefix):]
-        if pkg.endswith('-dev'):
-            mapped = namemap.get(pkg2[:-4], None)
-            if mapped:
-                mapped += '-dev'
-        elif pkg.endswith('-dbg'):
-            mapped = namemap.get(pkg2[:-4], None)
-            if mapped:
-                mapped += '-dbg'
-        else:
-            mapped = namemap.get(pkg2, None)
-
-        if mapped:
-            oldtaskname = mapped.replace("packagegroup-core", "task-core")
-            mapstr = " %s%s %s%s" % (mlprefix, mapped, mlprefix, oldtaskname)
-            d.appendVar("RPROVIDES:%s" % pkg, mapstr)
-            d.appendVar("RREPLACES:%s" % pkg, mapstr)
-            d.appendVar("RCONFLICTS:%s" % pkg, mapstr)
-}
-
-
 RDEPENDS:packagegroup-core-full-cmdline = "\
-    packagegroup-core-full-cmdline-libs \
     packagegroup-core-full-cmdline-utils \
     packagegroup-core-full-cmdline-extended \
     packagegroup-core-full-cmdline-dev-utils \
@@ -65,10 +27,6 @@
     packagegroup-core-full-cmdline-sys-services \
     "
 
-RDEPENDS:packagegroup-core-full-cmdline-libs = "\
-    glib-2.0 \
-    "
-
 RDEPENDS:packagegroup-core-full-cmdline-utils = "\
     bash \
     acl \
@@ -81,7 +39,6 @@
     file \
     findutils \
     gawk \
-    gmp \
     grep \
     less \
     makedevs \
diff --git a/poky/meta/recipes-extended/pam/libpam/0001-run-xtests.sh-check-whether-files-exist.patch b/poky/meta/recipes-extended/pam/libpam/0001-run-xtests.sh-check-whether-files-exist.patch
new file mode 100644
index 0000000..40040a8
--- /dev/null
+++ b/poky/meta/recipes-extended/pam/libpam/0001-run-xtests.sh-check-whether-files-exist.patch
@@ -0,0 +1,65 @@
+From e8e8ccfd57e0274b431bc5717bf37c488285b07b Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 27 Oct 2021 10:30:46 +0800
+Subject: [PATCH] run-xtests.sh: check whether files exist
+
+Fixes:
+ # ./run-xtests.sh . tst-pam_access1
+ mv: cannot stat '/etc/security/opasswd': No such file or directory
+ PASS: tst-pam_access1
+ mv: cannot stat '/etc/security/opasswd-pam-xtests': No such file or directory
+ ==================
+ 1 tests passed
+ 0 tests not run
+ ==================
+
+Upstream-Status: Backport [https://github.com/linux-pam/linux-pam/commit/e8e8ccfd57e0274b431bc5717bf37c488285b07b]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ xtests/run-xtests.sh | 20 +++++++++++++-------
+ 1 file changed, 13 insertions(+), 7 deletions(-)
+
+diff --git a/xtests/run-xtests.sh b/xtests/run-xtests.sh
+index 14f585d9..ff9a4dc1 100755
+--- a/xtests/run-xtests.sh
++++ b/xtests/run-xtests.sh
+@@ -18,10 +18,12 @@ all=0
+ 
+ mkdir -p /etc/security
+ for config in access.conf group.conf time.conf limits.conf ; do
+-	cp /etc/security/$config /etc/security/$config-pam-xtests
++	[ -f "/etc/security/$config" ] &&
++		mv /etc/security/$config /etc/security/$config-pam-xtests
+ 	install -m 644 "${SRCDIR}"/$config /etc/security/$config
+ done
+-mv /etc/security/opasswd /etc/security/opasswd-pam-xtests
++[ -f /etc/security/opasswd ] &&
++	mv /etc/security/opasswd /etc/security/opasswd-pam-xtests
+ 
+ for testname in $XTESTS ; do
+ 	  for cfg in "${SRCDIR}"/$testname*.pamd ; do
+@@ -47,11 +49,15 @@ for testname in $XTESTS ; do
+ 	  all=`expr $all + 1`
+ 	  rm -f /etc/pam.d/$testname*
+ done
+-mv /etc/security/access.conf-pam-xtests /etc/security/access.conf
+-mv /etc/security/group.conf-pam-xtests /etc/security/group.conf
+-mv /etc/security/time.conf-pam-xtests /etc/security/time.conf
+-mv /etc/security/limits.conf-pam-xtests /etc/security/limits.conf
+-mv /etc/security/opasswd-pam-xtests /etc/security/opasswd
++
++for config in access.conf group.conf time.conf limits.conf opasswd ; do
++	if [ -f "/etc/security/$config-pam-xtests" ]; then
++		mv /etc/security/$config-pam-xtests /etc/security/$config
++	else
++		rm -f /etc/security/$config
++	fi
++done
++
+ if test "$failed" -ne 0; then
+ 	  echo "==================="
+ 	  echo "$failed of $all tests failed"
+-- 
+2.32.0
+
diff --git a/poky/meta/recipes-extended/pigz/pigz_2.6.bb b/poky/meta/recipes-extended/pigz/pigz_2.6.bb
deleted file mode 100644
index 3566e18..0000000
--- a/poky/meta/recipes-extended/pigz/pigz_2.6.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SUMMARY = "A parallel implementation of gzip"
-DESCRIPTION = "pigz, which stands for parallel implementation of gzip, is a \
-fully functional replacement for gzip that exploits multiple processors and \
-multiple cores to the hilt when compressing data. pigz was written by Mark \
-Adler, and uses the zlib and pthread libraries."
-HOMEPAGE = "http://zlib.net/pigz/"
-SECTION = "console/utils"
-LICENSE = "Zlib & Apache-2.0"
-LIC_FILES_CHKSUM = "file://pigz.c;md5=9ae6dee8ceba9610596ed0ada493d142;beginline=7;endline=21"
-
-SRC_URI = "http://zlib.net/${BPN}/fossils/${BP}.tar.gz"
-SRC_URI[sha256sum] = "2eed7b0d7449d1d70903f2a62cd6005d262eb3a8c9e98687bc8cbb5809db2a7d"
-PROVIDES:class-native += "gzip-native"
-
-# Point this at the homepage in case /fossils/ isn't updated
-UPSTREAM_CHECK_URI = "http://zlib.net/${BPN}/"
-UPSTREAM_CHECK_REGEX = "pigz-(?P<pver>.*)\.tar"
-
-DEPENDS = "zlib"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS="
-
-inherit update-alternatives
-
-do_install() {
-	# Install files into /bin (FHS), which is typical place for gzip
-	install -d ${D}${base_bindir}
-	install ${B}/pigz ${D}${base_bindir}/pigz
-	ln -nsf pigz ${D}${base_bindir}/unpigz
-	ln -nsf pigz ${D}${base_bindir}/pigzcat
-}
-
-do_install:append:class-native() {
-	install -d ${D}${bindir}
-	install ${B}/pigz ${D}${bindir}/gzip
-	ln -nsf gzip ${D}${bindir}/gunzip
-	ln -nsf gzip ${D}${bindir}/zcat
-}
-
-ALTERNATIVE_PRIORITY = "110"
-ALTERNATIVE:${PN} = "gunzip gzip zcat"
-ALTERNATIVE:${PN}:class-nativesdk = ""
-ALTERNATIVE_LINK_NAME[gunzip] = "${base_bindir}/gunzip"
-ALTERNATIVE_LINK_NAME[gzip] = "${base_bindir}/gzip"
-ALTERNATIVE_LINK_NAME[zcat] = "${base_bindir}/zcat"
-ALTERNATIVE_TARGET = "${base_bindir}/pigz"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/pigz/pigz_2.7.bb b/poky/meta/recipes-extended/pigz/pigz_2.7.bb
new file mode 100644
index 0000000..9a1c591
--- /dev/null
+++ b/poky/meta/recipes-extended/pigz/pigz_2.7.bb
@@ -0,0 +1,48 @@
+SUMMARY = "A parallel implementation of gzip"
+DESCRIPTION = "pigz, which stands for parallel implementation of gzip, is a \
+fully functional replacement for gzip that exploits multiple processors and \
+multiple cores to the hilt when compressing data. pigz was written by Mark \
+Adler, and uses the zlib and pthread libraries."
+HOMEPAGE = "http://zlib.net/pigz/"
+SECTION = "console/utils"
+LICENSE = "Zlib & Apache-2.0"
+LIC_FILES_CHKSUM = "file://pigz.c;md5=9ae6dee8ceba9610596ed0ada493d142;beginline=7;endline=21"
+
+SRC_URI = "http://zlib.net/${BPN}/fossils/${BP}.tar.gz"
+SRC_URI[sha256sum] = "b4c9e60344a08d5db37ca7ad00a5b2c76ccb9556354b722d56d55ca7e8b1c707"
+PROVIDES:class-native += "gzip-native"
+
+# Point this at the homepage in case /fossils/ isn't updated
+UPSTREAM_CHECK_URI = "http://zlib.net/${BPN}/"
+UPSTREAM_CHECK_REGEX = "pigz-(?P<pver>.*)\.tar"
+
+DEPENDS = "zlib"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+inherit update-alternatives
+
+do_install() {
+	# Install files into /bin (FHS), which is typical place for gzip
+	install -d ${D}${base_bindir}
+	install ${B}/pigz ${D}${base_bindir}/pigz
+	ln -nsf pigz ${D}${base_bindir}/unpigz
+	ln -nsf pigz ${D}${base_bindir}/pigzcat
+}
+
+do_install:append:class-native() {
+	install -d ${D}${bindir}
+	install ${B}/pigz ${D}${bindir}/gzip
+	ln -nsf gzip ${D}${bindir}/gunzip
+	ln -nsf gzip ${D}${bindir}/zcat
+}
+
+ALTERNATIVE_PRIORITY = "110"
+ALTERNATIVE:${PN} = "gunzip gzip zcat"
+ALTERNATIVE:${PN}:class-nativesdk = ""
+ALTERNATIVE_LINK_NAME[gunzip] = "${base_bindir}/gunzip"
+ALTERNATIVE_LINK_NAME[gzip] = "${base_bindir}/gzip"
+ALTERNATIVE_LINK_NAME[zcat] = "${base_bindir}/zcat"
+ALTERNATIVE_TARGET = "${base_bindir}/pigz"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/procps/procps_3.3.17.bb b/poky/meta/recipes-extended/procps/procps_3.3.17.bb
index 64a2d15..9366ec9 100644
--- a/poky/meta/recipes-extended/procps/procps_3.3.17.bb
+++ b/poky/meta/recipes-extended/procps/procps_3.3.17.bb
@@ -12,7 +12,7 @@
 
 inherit autotools gettext pkgconfig update-alternatives
 
-SRC_URI = "git://gitlab.com/procps-ng/procps.git;protocol=https \
+SRC_URI = "git://gitlab.com/procps-ng/procps.git;protocol=https;branch=master \
            file://sysctl.conf \
            file://0001-w.c-correct-musl-builds.patch \
            file://0002-proc-escape.c-add-missing-include.patch \
diff --git a/poky/meta/recipes-extended/psmisc/psmisc_23.4.bb b/poky/meta/recipes-extended/psmisc/psmisc_23.4.bb
index 894443f..89fe8a7 100644
--- a/poky/meta/recipes-extended/psmisc/psmisc_23.4.bb
+++ b/poky/meta/recipes-extended/psmisc/psmisc_23.4.bb
@@ -2,7 +2,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
 
-SRC_URI = "git://gitlab.com/psmisc/psmisc.git;protocol=https \
+SRC_URI = "git://gitlab.com/psmisc/psmisc.git;protocol=https;branch=master \
            file://0001-Use-UINTPTR_MAX-instead-of-__WORDSIZE.patch \
            "
 SRCREV = "5fab6b7ab385080f1db725d6803136ec1841a15f"
diff --git a/poky/meta/recipes-extended/rpcbind/rpcbind/0001-systemd-use-EnvironmentFile.patch b/poky/meta/recipes-extended/rpcbind/rpcbind/0001-systemd-use-EnvironmentFile.patch
index b92f2cf..79dc960 100644
--- a/poky/meta/recipes-extended/rpcbind/rpcbind/0001-systemd-use-EnvironmentFile.patch
+++ b/poky/meta/recipes-extended/rpcbind/rpcbind/0001-systemd-use-EnvironmentFile.patch
@@ -21,7 +21,7 @@
  AC_SUBST([_sbindir])
  AC_CONFIG_COMMANDS_PRE([eval eval _sbindir=$sbindir])
 +AC_SUBST([_sysconfdir])
-+AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sbindir])
++AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sysconfdir])
  
  AC_OUTPUT([Makefile systemd/rpcbind.service])
 diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in
diff --git a/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb b/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
index 344faa3..dd89726 100644
--- a/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
+++ b/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
@@ -48,6 +48,7 @@
 		-e 's,/sbin/,${sbindir}/,g' \
 		${WORKDIR}/init.d > ${D}${sysconfdir}/init.d/rpcbind
 	chmod 0755 ${D}${sysconfdir}/init.d/rpcbind
+	install -m 0644 ${WORKDIR}/rpcbind.conf ${D}${sysconfdir}/rpcbind.conf
 }
 
 ALTERNATIVE:${PN} = "rpcinfo"
diff --git a/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb b/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
index 678632a..dd7bd2b 100644
--- a/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
+++ b/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
@@ -15,11 +15,11 @@
 SECTION = "libs"
 DEPENDS += "rpcsvc-proto-native"
 
-PV = "1.4.2"
+PV = "1.4.3"
 
-SRCREV = "6f54e54455c073d08a56ea627c6cd2355a40eb53"
+SRCREV = "71e0a12c04d130a78674ac6309eefffa6ecee612"
 
-SRC_URI = "git://github.com/thkukuk/${BPN} \
+SRC_URI = "git://github.com/thkukuk/${BPN};branch=master;protocol=https \
            file://0001-Use-cross-compiled-rpcgen.patch \
           "
 
diff --git a/poky/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch b/poky/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch
index 95728bc..4d6f6d6 100644
--- a/poky/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch
+++ b/poky/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch
@@ -1,4 +1,4 @@
-From 30a3906a0a21120fa6bbc918b6258ab9303fbeaa Mon Sep 17 00:00:00 2001
+From 531cd5ca6eadef29b4799459f1bcfc002ecbd424 Mon Sep 17 00:00:00 2001
 From: Scott Garman <scott.a.garman@intel.com>
 Date: Thu, 14 Apr 2016 12:28:57 +0200
 Subject: [PATCH] Disable use of syslog for sysroot
@@ -24,10 +24,10 @@
  7 files changed, 22 insertions(+)
 
 diff --git a/src/groupadd.c b/src/groupadd.c
-index d7f68b1..5fe5f43 100644
+index 66ccb53..776ea51 100644
 --- a/src/groupadd.c
 +++ b/src/groupadd.c
-@@ -34,6 +34,9 @@
+@@ -11,6 +11,9 @@
  
  #ident "$Id$"
  
@@ -38,10 +38,10 @@
  #include <fcntl.h>
  #include <getopt.h>
 diff --git a/src/groupdel.c b/src/groupdel.c
-index 5c89312..2aefc5a 100644
+index c84faa7..1076f4b 100644
 --- a/src/groupdel.c
 +++ b/src/groupdel.c
-@@ -34,6 +34,9 @@
+@@ -11,6 +11,9 @@
  
  #ident "$Id$"
  
@@ -52,10 +52,10 @@
  #include <fcntl.h>
  #include <grp.h>
 diff --git a/src/groupmems.c b/src/groupmems.c
-index 654a8f3..6b2026b 100644
+index a0e3266..6540cb1 100644
 --- a/src/groupmems.c
 +++ b/src/groupmems.c
-@@ -32,6 +32,9 @@
+@@ -9,6 +9,9 @@
  
  #include <config.h>
  
@@ -66,10 +66,10 @@
  #include <getopt.h>
  #include <grp.h>
 diff --git a/src/groupmod.c b/src/groupmod.c
-index acd6f35..a2c5247 100644
+index 006eca1..78b1ad6 100644
 --- a/src/groupmod.c
 +++ b/src/groupmod.c
-@@ -34,6 +34,9 @@
+@@ -11,6 +11,9 @@
  
  #ident "$Id$"
  
@@ -80,10 +80,10 @@
  #include <fcntl.h>
  #include <getopt.h>
 diff --git a/src/useradd.c b/src/useradd.c
-index 127177e..b80e505 100644
+index 456b9de..2b0d703 100644
 --- a/src/useradd.c
 +++ b/src/useradd.c
-@@ -34,6 +34,9 @@
+@@ -11,6 +11,9 @@
  
  #ident "$Id$"
  
@@ -94,10 +94,10 @@
  #include <ctype.h>
  #include <errno.h>
 diff --git a/src/userdel.c b/src/userdel.c
-index 79a7c89..c1e010a 100644
+index 7012b0e..08bb5d1 100644
 --- a/src/userdel.c
 +++ b/src/userdel.c
-@@ -31,6 +31,10 @@
+@@ -8,6 +8,10 @@
   */
  
  #include <config.h>
@@ -109,10 +109,10 @@
  #include <dirent.h>
  #include <errno.h>
 diff --git a/src/usermod.c b/src/usermod.c
-index 03bb9b9..e15fdd4 100644
+index 9473a7d..7d4f7b5 100644
 --- a/src/usermod.c
 +++ b/src/usermod.c
-@@ -34,6 +34,9 @@
+@@ -11,6 +11,9 @@
  
  #ident "$Id$"
  
diff --git a/poky/meta/recipes-extended/shadow/files/0001-Fix-out-of-tree-builds-with-respect-to-libsubid-incl.patch b/poky/meta/recipes-extended/shadow/files/0001-Fix-out-of-tree-builds-with-respect-to-libsubid-incl.patch
deleted file mode 100644
index c577be6..0000000
--- a/poky/meta/recipes-extended/shadow/files/0001-Fix-out-of-tree-builds-with-respect-to-libsubid-incl.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From eced8077b57946fe0b723e7c6c510e8f344ce89b Mon Sep 17 00:00:00 2001
-From: Serge Hallyn <serge@hallyn.com>
-Date: Fri, 23 Jul 2021 17:51:13 -0500
-Subject: [PATCH] Fix out of tree builds with respect to libsubid includes
-
-There's a better way to do this, and I hope to clean that up,
-but this fixes out of tree builds for me right now.
-
-Closes #386
-
-Signed-off-by: Serge Hallyn <serge@hallyn.com>
-Upstream-Status: Backport [https://github.com/shadow-maint/shadow/commit/537b8cd90be7b47b45c45cfd27765ef85eb0ebf1]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- lib/Makefile.am      | 2 ++
- libmisc/Makefile.am  | 2 +-
- libsubid/Makefile.am | 4 ++--
- src/Makefile.am      | 6 ++++++
- 4 files changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/lib/Makefile.am b/lib/Makefile.am
-index ecf3ee25..5ac2e111 100644
---- a/lib/Makefile.am
-+++ b/lib/Makefile.am
-@@ -10,6 +10,8 @@ if HAVE_VENDORDIR
- libshadow_la_CPPFLAGS += -DVENDORDIR=\"$(VENDORDIR)\"
- endif
- 
-+libshadow_la_CPPFLAGS += -I$(top_srcdir)
-+
- libshadow_la_SOURCES = \
- 	commonio.c \
- 	commonio.h \
-diff --git a/libmisc/Makefile.am b/libmisc/Makefile.am
-index 9766a7ec..9f237e0d 100644
---- a/libmisc/Makefile.am
-+++ b/libmisc/Makefile.am
-@@ -1,7 +1,7 @@
- 
- EXTRA_DIST = .indent.pro xgetXXbyYY.c
- 
--AM_CPPFLAGS = -I$(top_srcdir)/lib $(ECONF_CPPFLAGS)
-+AM_CPPFLAGS = -I$(top_srcdir)/lib -I$(top_srcdir) $(ECONF_CPPFLAGS)
- 
- noinst_LTLIBRARIES = libmisc.la
- 
-diff --git a/libsubid/Makefile.am b/libsubid/Makefile.am
-index 189165b0..cdc41fe6 100644
---- a/libsubid/Makefile.am
-+++ b/libsubid/Makefile.am
-@@ -19,8 +19,8 @@ MISCLIBS = \
- 	$(LIBTCB)
- 
- libsubid_la_LIBADD = \
--	$(top_srcdir)/lib/libshadow.la \
--	$(top_srcdir)/libmisc/libmisc.la \
-+	$(top_builddir)/lib/libshadow.la \
-+	$(top_builddir)/libmisc/libmisc.la \
- 	$(MISCLIBS) -ldl
- 
- AM_CPPFLAGS = \
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 35027013..7c1a3491 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -10,6 +10,7 @@ sgidperms = 2755
- AM_CPPFLAGS = \
- 	-I${top_srcdir}/lib \
- 	-I$(top_srcdir)/libmisc \
-+	-I$(top_srcdir) \
- 	-DLOCALEDIR=\"$(datadir)/locale\"
- 
- # XXX why are login and su in /bin anyway (other than for
-@@ -183,6 +184,7 @@ list_subid_ranges_LDADD = \
- list_subid_ranges_CPPFLAGS = \
- 	-I$(top_srcdir)/lib \
- 	-I$(top_srcdir)/libmisc \
-+	-I$(top_srcdir) \
- 	-I$(top_srcdir)/libsubid
- 
- get_subid_owners_LDADD = \
-@@ -194,11 +196,13 @@ get_subid_owners_LDADD = \
- get_subid_owners_CPPFLAGS = \
- 	-I$(top_srcdir)/lib \
- 	-I$(top_srcdir)/libmisc \
-+	-I$(top_srcdir) \
- 	-I$(top_srcdir)/libsubid
- 
- new_subid_range_CPPFLAGS = \
- 	-I$(top_srcdir)/lib \
- 	-I$(top_srcdir)/libmisc \
-+	-I$(top_srcdir) \
- 	-I$(top_srcdir)/libsubid
- 
- new_subid_range_LDADD = \
-@@ -210,6 +214,7 @@ new_subid_range_LDADD = \
- free_subid_range_CPPFLAGS = \
- 	-I$(top_srcdir)/lib \
- 	-I$(top_srcdir)/libmisc \
-+	-I$(top_srcdir) \
- 	-I$(top_srcdir)/libsubid
- 
- free_subid_range_LDADD = \
-@@ -220,6 +225,7 @@ free_subid_range_LDADD = \
- 
- check_subid_range_CPPFLAGS = \
- 	-I$(top_srcdir)/lib \
-+	-I$(top_srcdir) \
- 	-I$(top_srcdir)/libmisc
- 
- check_subid_range_LDADD = \
--- 
-2.31.1
-
diff --git a/poky/meta/recipes-extended/shadow/files/0001-libmisc-fix-default-value-in-SHA_get_salt_rounds.patch b/poky/meta/recipes-extended/shadow/files/0001-libmisc-fix-default-value-in-SHA_get_salt_rounds.patch
deleted file mode 100644
index 2c9b1d0..0000000
--- a/poky/meta/recipes-extended/shadow/files/0001-libmisc-fix-default-value-in-SHA_get_salt_rounds.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 234e8fa7b134d1ebabfdad980a3ae5b63c046c62 Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppym@gentoo.org>
-Date: Sat, 14 Aug 2021 13:24:34 -0400
-Subject: [PATCH] libmisc: fix default value in SHA_get_salt_rounds()
-
-If SHA_CRYPT_MIN_ROUNDS and SHA_CRYPT_MAX_ROUNDS are both unspecified,
-use SHA_ROUNDS_DEFAULT.
-
-Previously, the code fell through, calling shadow_random(-1, -1). This
-ultimately set rounds = (unsigned long) -1, which ends up being a very
-large number! This then got capped to SHA_ROUNDS_MAX later in the
-function.
-
-The new behavior matches BCRYPT_get_salt_rounds().
-
-Bug: https://bugs.gentoo.org/808195
-Fixes: https://github.com/shadow-maint/shadow/issues/393
-
-Upstream-Status: Backport [https://github.com/shadow-maint/shadow/commit/234e8fa7b134d1ebabfdad980a3ae5b63c046c62]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- libmisc/salt.c | 21 +++++++++++----------
- 1 file changed, 11 insertions(+), 10 deletions(-)
-
-diff --git a/libmisc/salt.c b/libmisc/salt.c
-index 91d528fd..30eefb9c 100644
---- a/libmisc/salt.c
-+++ b/libmisc/salt.c
-@@ -223,20 +223,21 @@ static /*@observer@*/const unsigned long SHA_get_salt_rounds (/*@null@*/int *pre
- 		if ((-1 == min_rounds) && (-1 == max_rounds)) {
- 			rounds = SHA_ROUNDS_DEFAULT;
- 		}
-+		else {
-+			if (-1 == min_rounds) {
-+				min_rounds = max_rounds;
-+			}
- 
--		if (-1 == min_rounds) {
--			min_rounds = max_rounds;
--		}
-+			if (-1 == max_rounds) {
-+				max_rounds = min_rounds;
-+			}
- 
--		if (-1 == max_rounds) {
--			max_rounds = min_rounds;
--		}
-+			if (min_rounds > max_rounds) {
-+				max_rounds = min_rounds;
-+			}
- 
--		if (min_rounds > max_rounds) {
--			max_rounds = min_rounds;
-+			rounds = (unsigned long) shadow_random (min_rounds, max_rounds);
- 		}
--
--		rounds = (unsigned long) shadow_random (min_rounds, max_rounds);
- 	} else if (0 == *prefered_rounds) {
- 		rounds = SHA_ROUNDS_DEFAULT;
- 	} else {
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-extended/shadow/files/0001-libsubid-link-to-PAM-libraries.patch b/poky/meta/recipes-extended/shadow/files/0001-libsubid-link-to-PAM-libraries.patch
deleted file mode 100644
index ea7a99d..0000000
--- a/poky/meta/recipes-extended/shadow/files/0001-libsubid-link-to-PAM-libraries.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 4f44617af3a0c59be267ac5fcc33586e3783f5e6 Mon Sep 17 00:00:00 2001
-From: Xi Ruoyao <xry111@mengyan1223.wang>
-Date: Fri, 23 Jul 2021 14:38:08 +0800
-Subject: [PATCH] libsubid: link to PAM libraries
-
-libsubid.so links to libmisc.a, which contains several routines referring to
-PAM functions.
-
-Upstream-Status: Backport [https://github.com/shadow-maint/shadow/commit/f4a84efb468b8be21be124700ce35159c444e9d6]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- libsubid/Makefile.am | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/libsubid/Makefile.am b/libsubid/Makefile.am
-index cdc41fe6..99308c1f 100644
---- a/libsubid/Makefile.am
-+++ b/libsubid/Makefile.am
-@@ -16,7 +16,8 @@ MISCLIBS = \
- 	$(LIBCRYPT) \
- 	$(LIBACL) \
- 	$(LIBATTR) \
--	$(LIBTCB)
-+	$(LIBTCB) \
-+	$(LIBPAM)
- 
- libsubid_la_LIBADD = \
- 	$(top_builddir)/lib/libshadow.la \
--- 
-2.31.1
-
diff --git a/poky/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch b/poky/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch
index bd24626..173e8a9 100644
--- a/poky/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch
+++ b/poky/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch
@@ -1,4 +1,4 @@
-From 1422c24f7266b553c82100e3d18a10c55cd91063 Mon Sep 17 00:00:00 2001
+From d767f776e631f1493fd7b266f2026d630ecf70fe Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Thu, 17 Jul 2014 15:53:34 +0800
 Subject: [PATCH] commonio.c-fix-unexpected-open-failure-in-chroot-env
@@ -21,10 +21,10 @@
  1 file changed, 12 insertions(+), 4 deletions(-)
 
 diff --git a/lib/commonio.c b/lib/commonio.c
-index cef404b..66908fb 100644
+index 9e0fde6..7c3a1da 100644
 --- a/lib/commonio.c
 +++ b/lib/commonio.c
-@@ -646,10 +646,18 @@ int commonio_open (struct commonio_db *db, int mode)
+@@ -624,10 +624,18 @@ int commonio_open (struct commonio_db *db, int mode)
  	db->cursor = NULL;
  	db->changed = false;
  
diff --git a/poky/meta/recipes-extended/shadow/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc
index c91f273..f5fdf43 100644
--- a/poky/meta/recipes-extended/shadow/shadow.inc
+++ b/poky/meta/recipes-extended/shadow/shadow.inc
@@ -3,9 +3,10 @@
 DESCRIPTION = "${SUMMARY}"
 BUGTRACKER = "http://github.com/shadow-maint/shadow/issues"
 SECTION = "base/utils"
-LICENSE = "BSD-3-Clause | Artistic-1.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ed80ff1c2b40843cf5768e5229cf16e5 \
-                    file://src/passwd.c;beginline=2;endline=30;md5=5720ff729a6ff39ecc9f64555d75f4af"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c9a450b7be84eac23e6353efecb60b5b \
+                    file://src/passwd.c;beginline=2;endline=30;md5=758c26751513b6795395275969dd3be1 \
+                    "
 
 DEPENDS = "virtual/crypt"
 
@@ -14,9 +15,6 @@
            file://shadow-4.1.3-dots-in-usernames.patch \
            ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \
            file://shadow-relaxed-usernames.patch \
-           file://0001-Fix-out-of-tree-builds-with-respect-to-libsubid-incl.patch \
-           file://0001-libsubid-link-to-PAM-libraries.patch \
-           file://0001-libmisc-fix-default-value-in-SHA_get_salt_rounds.patch \
            file://useradd \
            "
 
@@ -33,7 +31,7 @@
            file://0001-Disable-use-of-syslog-for-sysroot.patch \
            "
 
-SRC_URI[sha256sum] = "6c4627ff9c9422b96664517ae753c944f2902e92809d0698b65f5fef11985212"
+SRC_URI[sha256sum] = "f262089be6a1011d50ec7849e14571b7b2e788334368f3dccb718513f17935ed"
 
 # Additional Policy files for PAM
 PAM_SRC_URI = "file://pam.d/chfn \
diff --git a/poky/meta/recipes-extended/shadow/shadow_4.9.bb b/poky/meta/recipes-extended/shadow/shadow_4.11.1.bb
similarity index 100%
rename from poky/meta/recipes-extended/shadow/shadow_4.9.bb
rename to poky/meta/recipes-extended/shadow/shadow_4.11.1.bb
diff --git a/poky/meta/recipes-extended/slang/slang/terminfo_fixes.patch b/poky/meta/recipes-extended/slang/slang/terminfo_fixes.patch
index 3e6d15a..3ca20a8 100644
--- a/poky/meta/recipes-extended/slang/slang/terminfo_fixes.patch
+++ b/poky/meta/recipes-extended/slang/slang/terminfo_fixes.patch
@@ -2,7 +2,9 @@
 ncurses pkg-config, but fix the macro to not reference host directories.
 Also add src/test/Makefile.in so that we can use -ltermcap if we want to.
 
-Upstream-Status: Pending
+Upstream isn't going to take this, as it forces blank values and
+removes functionality without replacing it.
+Upstream-Status: Inappropriate [see above]
 
 Signed-off-by: Joe Slater <joe.slater@windriver.com>
 
diff --git a/poky/meta/recipes-extended/slang/slang_2.3.2.bb b/poky/meta/recipes-extended/slang/slang_2.3.2.bb
index 81d152f..443ca0b 100644
--- a/poky/meta/recipes-extended/slang/slang_2.3.2.bb
+++ b/poky/meta/recipes-extended/slang/slang_2.3.2.bb
@@ -27,7 +27,7 @@
 SRC_URI[sha256sum] = "fc9e3b0fc4f67c3c1f6d43c90c16a5c42d117b8e28457c5b46831b8b5d3ae31a"
 
 UPSTREAM_CHECK_URI = "http://www.jedsoft.org/releases/slang/"
-PREMIRRORS:append = "\n http://www.jedsoft.org/releases/slang/.* http://www.jedsoft.org/releases/slang/old/ \n"
+PREMIRRORS:append = " http://www.jedsoft.org/releases/slang/.* http://www.jedsoft.org/releases/slang/old/"
 
 inherit autotools-brokensep ptest
 CLEANBROKEN = "1"
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch b/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch
deleted file mode 100644
index 2ee0be5..0000000
--- a/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From f14d9d8184753dfbff99d7a51939145355627dcd Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 30 Jul 2019 18:38:03 +0200
-Subject: [PATCH] Do not preserve ownership when installing example jobs
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 91d8ed4..72d0ca0 100644
---- a/Makefile
-+++ b/Makefile
-@@ -502,6 +502,6 @@ else
- 	cp stress-ng.1 ${DESTDIR}${MANDIR}
- endif
- 	mkdir -p ${DESTDIR}${JOBDIR}
--	cp -rp example-jobs/*.job ${DESTDIR}${JOBDIR}
-+	cp -r example-jobs/*.job ${DESTDIR}${JOBDIR}
- 	mkdir -p ${DESTDIR}${BASHDIR}
- 	cp bash-completion/stress-ng ${DESTDIR}${BASHDIR}
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Makefile-do-not-write-the-timestamp-into-compressed-.patch b/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Makefile-do-not-write-the-timestamp-into-compressed-.patch
deleted file mode 100644
index 21a410f..0000000
--- a/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Makefile-do-not-write-the-timestamp-into-compressed-.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 2386cd8f907b379ae5cc1ce2888abef7d30e709a Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Sat, 23 Oct 2021 20:20:59 +0200
-Subject: [PATCH] Makefile: do not write the timestamp into compressed manpage.
-
-This helps reproducibility.
-
-Upstream-Status: Submitted [https://github.com/ColinIanKing/stress-ng/pull/156]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 886018f9..f4290f9c 100644
---- a/Makefile
-+++ b/Makefile
-@@ -468,7 +468,7 @@ git-commit-id.h:
- $(OBJS): stress-ng.h Makefile
- 
- stress-ng.1.gz: stress-ng.1
--	$(V)gzip -c $< > $@
-+	$(V)gzip -n -c $< > $@
- 
- .PHONY: dist
- dist:
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.13.00.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.13.00.bb
deleted file mode 100644
index 5889569..0000000
--- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.13.00.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "System load testing utility"
-DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \
-imposes a configurable amount of CPU, memory, I/O, and disk stress on the system."
-HOMEPAGE = "https://github.com/ColinIanKing/stress-ng#readme"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "git://github.com/ColinIanKing/stress-ng.git;protocol=https \
-           file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \
-           file://0001-Makefile-do-not-write-the-timestamp-into-compressed-.patch \
-           "
-SRCREV = "61b454b4a3a9d052e63c78a9574ccf8a650575dc"
-S = "${WORKDIR}/git"
-
-DEPENDS = "coreutils-native"
-
-PROVIDES = "stress"
-RPROVIDES:${PN} = "stress"
-RREPLACES:${PN} = "stress"
-RCONFLICTS:${PN} = "stress"
-
-inherit bash-completion
-
-do_install() {
-    oe_runmake DESTDIR=${D} install
-    ln -s stress-ng ${D}${bindir}/stress
-}
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.13.10.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.13.10.bb
new file mode 100644
index 0000000..700ee15
--- /dev/null
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.13.10.bb
@@ -0,0 +1,24 @@
+SUMMARY = "System load testing utility"
+DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \
+imposes a configurable amount of CPU, memory, I/O, and disk stress on the system."
+HOMEPAGE = "https://github.com/ColinIanKing/stress-ng#readme"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://github.com/ColinIanKing/stress-ng.git;protocol=https;branch=master"
+SRCREV = "b81116cb69a97aa671ab207a7f600aaacca091d1"
+S = "${WORKDIR}/git"
+
+DEPENDS = "coreutils-native"
+
+PROVIDES = "stress"
+RPROVIDES:${PN} = "stress"
+RREPLACES:${PN} = "stress"
+RCONFLICTS:${PN} = "stress"
+
+inherit bash-completion
+
+do_install() {
+    oe_runmake DESTDIR=${D} install
+    ln -s stress-ng ${D}${bindir}/stress
+}
diff --git a/poky/meta/recipes-extended/sudo/files/0001-lib-util-mksigname.c-correctly-include-header-for-ou.patch b/poky/meta/recipes-extended/sudo/files/0001-lib-util-mksigname.c-correctly-include-header-for-ou.patch
index e7875c9..f63ed55 100644
--- a/poky/meta/recipes-extended/sudo/files/0001-lib-util-mksigname.c-correctly-include-header-for-ou.patch
+++ b/poky/meta/recipes-extended/sudo/files/0001-lib-util-mksigname.c-correctly-include-header-for-ou.patch
@@ -4,7 +4,7 @@
 Subject: [PATCH] lib/util/mksigname.c: correctly include header for out of
  tree builds
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/sudo-project/sudo/pull/123]
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
 ---
  lib/util/mksigname.c | 2 +-
diff --git a/poky/meta/recipes-extended/sysklogd/sysklogd_2.2.3.bb b/poky/meta/recipes-extended/sysklogd/sysklogd_2.2.3.bb
deleted file mode 100644
index eca531d..0000000
--- a/poky/meta/recipes-extended/sysklogd/sysklogd_2.2.3.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-SUMMARY = "System Log Daemons"
-DESCRIPTION = "The sysklogd package implements system log daemons: syslogd"
-HOMEPAGE = "http://www.infodrom.org/projects/sysklogd/"
-SECTION = "base"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5b4be4b2549338526758ef479c040943 \
-                    file://src/syslogd.c;beginline=2;endline=15;md5=a880fecbc04503f071c494a9c0dd4f97 \
-                   "
-
-inherit update-rc.d update-alternatives systemd autotools
-
-SRC_URI = "git://github.com/troglobit/sysklogd.git;nobranch=1 \
-           file://sysklogd \
-           "
-
-SRCREV = "17b68ca89ab814bb623b615c4e7088d619ed8829"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF = "--with-systemd=${systemd_system_unitdir} --without-logger"
-
-do_install:append () {
-       install -d ${D}${sysconfdir}
-       install -m 644 ${S}/syslog.conf ${D}${sysconfdir}/syslog.conf
-       install -d ${D}${sysconfdir}/init.d
-       install -m 755 ${WORKDIR}/sysklogd ${D}${sysconfdir}/init.d/syslog
-}
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE:${PN} = "syslogd.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-
-INITSCRIPT_NAME = "syslog"
-CONFFILES:${PN} = "${sysconfdir}/syslog.conf"
-RCONFLICTS:${PN} = "rsyslog busybox-syslog syslog-ng"
-
-FILES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}/lib/tmpfiles.d/sysklogd.conf', '', d)}"
-
-ALTERNATIVE_PRIORITY = "100"
-
-ALTERNATIVE:${PN}-doc = "syslogd.8"
-ALTERNATIVE_LINK_NAME[syslogd.8] = "${mandir}/man8/syslogd.8"
-
-pkg_prerm:${PN} () {
-	if test "x$D" = "x"; then
-	if test "$1" = "upgrade" -o "$1" = "remove"; then
-		/etc/init.d/syslog stop || :
-	fi
-	fi
-}
-
-python () {
-    if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
-        d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
-}
diff --git a/poky/meta/recipes-extended/sysklogd/sysklogd_2.3.0.bb b/poky/meta/recipes-extended/sysklogd/sysklogd_2.3.0.bb
new file mode 100644
index 0000000..0682ec1
--- /dev/null
+++ b/poky/meta/recipes-extended/sysklogd/sysklogd_2.3.0.bb
@@ -0,0 +1,56 @@
+SUMMARY = "System Log Daemons"
+DESCRIPTION = "The sysklogd package implements system log daemons: syslogd"
+HOMEPAGE = "http://www.infodrom.org/projects/sysklogd/"
+SECTION = "base"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5b4be4b2549338526758ef479c040943 \
+                    file://src/syslogd.c;beginline=2;endline=15;md5=a880fecbc04503f071c494a9c0dd4f97 \
+                   "
+
+inherit update-rc.d update-alternatives systemd autotools
+
+SRC_URI = "git://github.com/troglobit/sysklogd.git;nobranch=1;protocol=https \
+           file://sysklogd \
+           "
+
+SRCREV = "03c2c9c68d5d02675326527774e7e9cba3490ba0"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF = "--with-systemd=${systemd_system_unitdir} --without-logger"
+
+do_install:append () {
+       install -d ${D}${sysconfdir}
+       install -m 644 ${S}/syslog.conf ${D}${sysconfdir}/syslog.conf
+       install -d ${D}${sysconfdir}/init.d
+       install -m 755 ${WORKDIR}/sysklogd ${D}${sysconfdir}/init.d/syslog
+}
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "syslogd.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+INITSCRIPT_NAME = "syslog"
+CONFFILES:${PN} = "${sysconfdir}/syslog.conf"
+RCONFLICTS:${PN} = "rsyslog busybox-syslog syslog-ng"
+
+FILES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}/lib/tmpfiles.d/sysklogd.conf', '', d)}"
+
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE:${PN}-doc = "syslogd.8"
+ALTERNATIVE_LINK_NAME[syslogd.8] = "${mandir}/man8/syslogd.8"
+
+pkg_prerm:${PN} () {
+	if test "x$D" = "x"; then
+	if test "$1" = "upgrade" -o "$1" = "remove"; then
+		/etc/init.d/syslog stop || :
+	fi
+	fi
+}
+
+python () {
+    if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
+        d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
+}
diff --git a/poky/meta/recipes-extended/sysstat/sysstat_12.4.3.bb b/poky/meta/recipes-extended/sysstat/sysstat_12.4.3.bb
deleted file mode 100644
index 5a27de4..0000000
--- a/poky/meta/recipes-extended/sysstat/sysstat_12.4.3.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require sysstat.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb"
-
-SRC_URI += "file://0001-configure.in-remove-check-for-chkconfig.patch"
-
-SRC_URI[sha256sum] = "ae432431f45aacbcabacfbbe129e2505e215cafa9ce996d7550c6091a46f0bfd"
diff --git a/poky/meta/recipes-extended/sysstat/sysstat_12.4.4.bb b/poky/meta/recipes-extended/sysstat/sysstat_12.4.4.bb
new file mode 100644
index 0000000..d635650
--- /dev/null
+++ b/poky/meta/recipes-extended/sysstat/sysstat_12.4.4.bb
@@ -0,0 +1,7 @@
+require sysstat.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb"
+
+SRC_URI += "file://0001-configure.in-remove-check-for-chkconfig.patch"
+
+SRC_URI[sha256sum] = "9512e7479e04f92e251c5c6b4bd94b8f643d212bd0e986a8ea4d147a6e943d24"
diff --git a/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/socklen_t.patch b/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/socklen_t.patch
index 8e46df8..cf4f993 100644
--- a/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/socklen_t.patch
+++ b/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/socklen_t.patch
@@ -7,9 +7,8 @@
     Added support for socklen_t type to len argument passed to socket related
     calls. This fixes a bug that causes tcp wrappers to fail when using sshd.
     
-    Upstream-Status: Pending
-    
-    Signed-off-by: farrah rashid <farrah.rashid@windriver.com>
+Upstream-Status: Pending
+Signed-off-by: farrah rashid <farrah.rashid@windriver.com>
 
 diff --git a/fix_options.c b/fix_options.c
 index 7473adf..fe2b442 100644
diff --git a/poky/meta/recipes-extended/timezone/tzdata.bb b/poky/meta/recipes-extended/timezone/tzdata.bb
index c2b0199..7f4322d 100644
--- a/poky/meta/recipes-extended/timezone/tzdata.bb
+++ b/poky/meta/recipes-extended/timezone/tzdata.bb
@@ -4,211 +4,199 @@
 
 inherit allarch
 
-RCONFLICTS:${PN} = "timezones timezone-africa timezone-america timezone-antarctica \
-             timezone-arctic timezone-asia timezone-atlantic \
-             timezone-australia timezone-europe timezone-indian \
-             timezone-iso3166.tab timezone-pacific timezone-zone.tab"
-
 S = "${WORKDIR}"
 
 DEFAULT_TIMEZONE ?= "Universal"
 INSTALL_TIMEZONE_FILE ?= "1"
 
-TZONES= "africa antarctica asia australasia europe northamerica southamerica  \
-         factory etcetera backward \
-        "
-# pacificnew 
+TZONES = " \
+    africa antarctica asia australasia europe northamerica southamerica \
+    factory etcetera backward \
+"
 
 # "slim" is the default since 2020b
 # "fat" is needed by e.g. MariaDB's mysql_tzinfo_to_sql
 ZIC_FMT ?= "slim"
 
-do_compile () {
-        for zone in ${TZONES}; do \
-            ${STAGING_BINDIR_NATIVE}/zic -b ${ZIC_FMT} -d ${WORKDIR}${datadir}/zoneinfo -L /dev/null \
-                ${S}/${zone} ; \
-            ${STAGING_BINDIR_NATIVE}/zic -b ${ZIC_FMT} -d ${WORKDIR}${datadir}/zoneinfo/posix -L /dev/null \
-                ${S}/${zone} ; \
-            ${STAGING_BINDIR_NATIVE}/zic -b ${ZIC_FMT} -d ${WORKDIR}${datadir}/zoneinfo/right -L ${S}/leapseconds \
-                ${S}/${zone} ; \
-        done
+do_compile() {
+	for zone in ${TZONES}; do
+		${STAGING_BINDIR_NATIVE}/zic -b ${ZIC_FMT} -d ${WORKDIR}${datadir}/zoneinfo -L /dev/null ${S}/${zone}
+		${STAGING_BINDIR_NATIVE}/zic -b ${ZIC_FMT} -d ${WORKDIR}${datadir}/zoneinfo/posix -L /dev/null ${S}/${zone}
+		${STAGING_BINDIR_NATIVE}/zic -b ${ZIC_FMT} -d ${WORKDIR}${datadir}/zoneinfo/right -L ${S}/leapseconds ${S}/${zone}
+	done
 }
 
-do_install () {
-        install -d ${D}/$exec_prefix ${D}${datadir}/zoneinfo
-        cp -pPR ${S}/$exec_prefix ${D}/
-        # libc is removing zoneinfo files from package
-        cp -pP "${S}/zone.tab" ${D}${datadir}/zoneinfo
-        cp -pP "${S}/zone1970.tab" ${D}${datadir}/zoneinfo
-        cp -pP "${S}/iso3166.tab" ${D}${datadir}/zoneinfo
-        cp -pP "${S}/leapseconds" ${D}${datadir}/zoneinfo
-        cp -pP "${S}/leap-seconds.list" ${D}${datadir}/zoneinfo
+do_install() {
+	install -d ${D}$exec_prefix ${D}${datadir}/zoneinfo
+	cp -pPR ${WORKDIR}$exec_prefix ${D}${base_prefix}
+	# libc is removing zoneinfo files from package
+	cp -pP "${S}/zone.tab" ${D}${datadir}/zoneinfo
+	cp -pP "${S}/zone1970.tab" ${D}${datadir}/zoneinfo
+	cp -pP "${S}/iso3166.tab" ${D}${datadir}/zoneinfo
+	cp -pP "${S}/leapseconds" ${D}${datadir}/zoneinfo
+	cp -pP "${S}/leap-seconds.list" ${D}${datadir}/zoneinfo
 
-        # Install default timezone
-        if [ -e ${D}${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ]; then
-            install -d ${D}${sysconfdir}
-            if [ "${INSTALL_TIMEZONE_FILE}" = "1" ]; then
-                echo ${DEFAULT_TIMEZONE} > ${D}${sysconfdir}/timezone
-            fi
-            ln -s ${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ${D}${sysconfdir}/localtime
-        else
-            bberror "DEFAULT_TIMEZONE is set to an invalid value."
-            exit 1
-        fi
+	# Install default timezone
+	if [ -e ${D}${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ]; then
+		install -d ${D}${sysconfdir}
+		if [ "${INSTALL_TIMEZONE_FILE}" = "1" ]; then
+			echo ${DEFAULT_TIMEZONE} > ${D}${sysconfdir}/timezone
+		fi
+		ln -s ${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ${D}${sysconfdir}/localtime
+	else
+		bberror "DEFAULT_TIMEZONE is set to an invalid value."
+		exit 1
+	fi
 
-        chown -R root:root ${D}
+	chown -R root:root ${D}
 }
 
-pkg_postinst:${PN} () {
+pkg_postinst:${PN}() {
 	etc_lt="$D${sysconfdir}/localtime"
 	src="$D${sysconfdir}/timezone"
 
-	if [ -e ${src} ] ; then
-		tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}")
+	if [ -e "$src" ]; then
+		tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "$src")
 	fi
 
-	if [ ! -z "${tz}" -a ! -e "$D${datadir}/zoneinfo/${tz}" ] ; then
-		echo "You have an invalid TIMEZONE setting in ${src}"
-		echo "Your ${etc_lt} has been reset to Universal; enjoy!"
+	if [ ! -z "$tz" -a ! -e "$D${datadir}/zoneinfo/$tz" ]; then
+		echo "You have an invalid TIMEZONE setting in $src"
+		echo "Your $etc_lt has been reset to Universal; enjoy!"
 		tz="Universal"
-		echo "Updating ${etc_lt} with $D${datadir}/zoneinfo/${tz}"
-		if [ -L ${etc_lt} ] ; then
-			rm -f "${etc_lt}"
+		echo "Updating $etc_lt with $D${datadir}/zoneinfo/$tz"
+		if [ -L "$etc_lt" ]; then
+			rm -f "$etc_lt"
 		fi
-		ln -s "${datadir}/zoneinfo/${tz}" "${etc_lt}"
+		ln -s "${datadir}/zoneinfo/$tz" "$etc_lt"
 	fi
 }
 
-# Packages primarily organized by directory with a major city
-# in most time zones in the base package
-
+# Packages are primarily organized by directory with a major city in most time
+# zones in the base package
 TZ_PACKAGES = " \
     tzdata-core tzdata-misc tzdata-posix tzdata-right tzdata-africa \
     tzdata-americas tzdata-antarctica tzdata-arctic tzdata-asia \
-    tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific"
+    tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific \
+"
 PACKAGES = "${TZ_PACKAGES} ${PN}"
 
-FILES:tzdata-africa += "${datadir}/zoneinfo/Africa/*"
-RPROVIDES:tzdata-africa = "tzdata-africa"
+FILES:tzdata-africa += "${datadir}/zoneinfo/Africa"
 
-FILES:tzdata-americas += "${datadir}/zoneinfo/America/*  \
-                ${datadir}/zoneinfo/US/*                \
-                ${datadir}/zoneinfo/Brazil/*            \
-                ${datadir}/zoneinfo/Canada/*            \
-                ${datadir}/zoneinfo/Mexico/*            \
-                ${datadir}/zoneinfo/Chile/*"
-RPROVIDES:tzdata-americas = "tzdata-americas"
+FILES:tzdata-americas += " \
+    ${datadir}/zoneinfo/America \
+    ${datadir}/zoneinfo/US \
+    ${datadir}/zoneinfo/Brazil \
+    ${datadir}/zoneinfo/Canada \
+    ${datadir}/zoneinfo/Mexico \
+    ${datadir}/zoneinfo/Chile \
+"
 
-FILES:tzdata-antarctica += "${datadir}/zoneinfo/Antarctica/*"
-RPROVIDES:tzdata-antarctica = "tzdata-antarctica"
+FILES:tzdata-antarctica += "${datadir}/zoneinfo/Antarctica"
 
-FILES:tzdata-arctic += "${datadir}/zoneinfo/Arctic/*"
-RPROVIDES:tzdata-arctic = "tzdata-arctic"
+FILES:tzdata-arctic += "${datadir}/zoneinfo/Arctic"
 
-FILES:tzdata-asia += "${datadir}/zoneinfo/Asia/*        \
-                ${datadir}/zoneinfo/Indian/*            \
-                ${datadir}/zoneinfo/Mideast/*"
-RPROVIDES:tzdata-asia = "tzdata-asia"
+FILES:tzdata-asia += " \
+    ${datadir}/zoneinfo/Asia \
+    ${datadir}/zoneinfo/Indian \
+    ${datadir}/zoneinfo/Mideast \
+"
 
-FILES:tzdata-atlantic += "${datadir}/zoneinfo/Atlantic/*"
-RPROVIDES:tzdata-atlantic = "tzdata-atlantic"
+FILES:tzdata-atlantic += "${datadir}/zoneinfo/Atlantic"
 
-FILES:tzdata-australia += "${datadir}/zoneinfo/Australia/*"
-RPROVIDES:tzdata-australia = "tzdata-australia"
+FILES:tzdata-australia += "${datadir}/zoneinfo/Australia"
 
-FILES:tzdata-europe += "${datadir}/zoneinfo/Europe/*"
-RPROVIDES:tzdata-europe = "tzdata-europe"
+FILES:tzdata-europe += "${datadir}/zoneinfo/Europe"
 
-FILES:tzdata-pacific += "${datadir}/zoneinfo/Pacific/*"
-RPROVIDES:tzdata-pacific = "tzdata-pacific"
+FILES:tzdata-pacific += "${datadir}/zoneinfo/Pacific"
 
-FILES:tzdata-posix += "${datadir}/zoneinfo/posix/*"
-RPROVIDES:tzdata-posix = "tzdata-posix"
+FILES:tzdata-posix += "${datadir}/zoneinfo/posix"
 
-FILES:tzdata-right += "${datadir}/zoneinfo/right/*"
-RPROVIDES:tzdata-right = "tzdata-right"
+FILES:tzdata-right += "${datadir}/zoneinfo/right"
 
-FILES:tzdata-misc += "${datadir}/zoneinfo/Cuba           \
-                ${datadir}/zoneinfo/Egypt                \
-                ${datadir}/zoneinfo/Eire                 \
-                ${datadir}/zoneinfo/Factory              \
-                ${datadir}/zoneinfo/GB-Eire              \
-                ${datadir}/zoneinfo/Hongkong             \
-                ${datadir}/zoneinfo/Iceland              \
-                ${datadir}/zoneinfo/Iran                 \
-                ${datadir}/zoneinfo/Israel               \
-                ${datadir}/zoneinfo/Jamaica              \
-                ${datadir}/zoneinfo/Japan                \
-                ${datadir}/zoneinfo/Kwajalein            \
-                ${datadir}/zoneinfo/Libya                \
-                ${datadir}/zoneinfo/Navajo               \
-                ${datadir}/zoneinfo/Poland               \
-                ${datadir}/zoneinfo/Portugal             \
-                ${datadir}/zoneinfo/Singapore            \
-                ${datadir}/zoneinfo/Turkey"
-RPROVIDES:tzdata-misc = "tzdata-misc"
+FILES:tzdata-misc += " \
+    ${datadir}/zoneinfo/Cuba \
+    ${datadir}/zoneinfo/Egypt \
+    ${datadir}/zoneinfo/Eire \
+    ${datadir}/zoneinfo/Factory \
+    ${datadir}/zoneinfo/GB-Eire \
+    ${datadir}/zoneinfo/Hongkong \
+    ${datadir}/zoneinfo/Iceland \
+    ${datadir}/zoneinfo/Iran \
+    ${datadir}/zoneinfo/Israel \
+    ${datadir}/zoneinfo/Jamaica \
+    ${datadir}/zoneinfo/Japan \
+    ${datadir}/zoneinfo/Kwajalein \
+    ${datadir}/zoneinfo/Libya \
+    ${datadir}/zoneinfo/Navajo \
+    ${datadir}/zoneinfo/Poland \
+    ${datadir}/zoneinfo/Portugal \
+    ${datadir}/zoneinfo/Singapore \
+    ${datadir}/zoneinfo/Turkey \
+"
 
 FILES:tzdata-core += " \
-                ${sysconfdir}/localtime                  \
-                ${sysconfdir}/timezone                   \
-                ${datadir}/zoneinfo/leapseconds          \
-                ${datadir}/zoneinfo/leap-seconds.list    \
-                ${datadir}/zoneinfo/Pacific/Honolulu     \
-                ${datadir}/zoneinfo/America/Anchorage    \
-                ${datadir}/zoneinfo/America/Los_Angeles  \
-                ${datadir}/zoneinfo/America/Denver       \
-                ${datadir}/zoneinfo/America/Chicago      \
-                ${datadir}/zoneinfo/America/New_York     \
-                ${datadir}/zoneinfo/America/Caracas      \
-                ${datadir}/zoneinfo/America/Sao_Paulo    \
-                ${datadir}/zoneinfo/Europe/London        \
-                ${datadir}/zoneinfo/Europe/Paris         \
-                ${datadir}/zoneinfo/Africa/Cairo         \
-                ${datadir}/zoneinfo/Europe/Moscow        \
-                ${datadir}/zoneinfo/Asia/Dubai           \
-                ${datadir}/zoneinfo/Asia/Karachi         \
-                ${datadir}/zoneinfo/Asia/Dhaka           \
-                ${datadir}/zoneinfo/Asia/Bangkok         \
-                ${datadir}/zoneinfo/Asia/Hong_Kong       \
-                ${datadir}/zoneinfo/Asia/Tokyo           \
-                ${datadir}/zoneinfo/Australia/Darwin     \
-                ${datadir}/zoneinfo/Australia/Adelaide   \
-                ${datadir}/zoneinfo/Australia/Brisbane   \
-                ${datadir}/zoneinfo/Australia/Sydney     \
-                ${datadir}/zoneinfo/Pacific/Noumea       \
-                ${datadir}/zoneinfo/CET                  \
-                ${datadir}/zoneinfo/CST6CDT              \
-                ${datadir}/zoneinfo/EET                  \
-                ${datadir}/zoneinfo/EST                  \
-                ${datadir}/zoneinfo/EST5EDT              \
-                ${datadir}/zoneinfo/GB                   \
-                ${datadir}/zoneinfo/GMT                  \
-                ${datadir}/zoneinfo/GMT+0                \
-                ${datadir}/zoneinfo/GMT-0                \
-                ${datadir}/zoneinfo/GMT0                 \
-                ${datadir}/zoneinfo/Greenwich            \
-                ${datadir}/zoneinfo/HST                  \
-                ${datadir}/zoneinfo/MET                  \
-                ${datadir}/zoneinfo/MST                  \
-                ${datadir}/zoneinfo/MST7MDT              \
-                ${datadir}/zoneinfo/NZ                   \
-                ${datadir}/zoneinfo/NZ-CHAT              \
-                ${datadir}/zoneinfo/PRC                  \
-                ${datadir}/zoneinfo/PST8PDT              \
-                ${datadir}/zoneinfo/ROC                  \
-                ${datadir}/zoneinfo/ROK                  \
-                ${datadir}/zoneinfo/UCT                  \
-                ${datadir}/zoneinfo/UTC                  \
-                ${datadir}/zoneinfo/Universal            \
-                ${datadir}/zoneinfo/W-SU                 \
-                ${datadir}/zoneinfo/WET                  \
-                ${datadir}/zoneinfo/Zulu                 \
-                ${datadir}/zoneinfo/zone.tab             \
-                ${datadir}/zoneinfo/zone1970.tab         \
-                ${datadir}/zoneinfo/iso3166.tab          \
-                ${datadir}/zoneinfo/Etc/*"
+    ${sysconfdir}/localtime \
+    ${sysconfdir}/timezone \
+    ${datadir}/zoneinfo/leapseconds \
+    ${datadir}/zoneinfo/leap-seconds.list \
+    ${datadir}/zoneinfo/Pacific/Honolulu \
+    ${datadir}/zoneinfo/America/Anchorage \
+    ${datadir}/zoneinfo/America/Los_Angeles \
+    ${datadir}/zoneinfo/America/Denver \
+    ${datadir}/zoneinfo/America/Chicago \
+    ${datadir}/zoneinfo/America/New_York \
+    ${datadir}/zoneinfo/America/Caracas \
+    ${datadir}/zoneinfo/America/Sao_Paulo \
+    ${datadir}/zoneinfo/Europe/London \
+    ${datadir}/zoneinfo/Europe/Paris \
+    ${datadir}/zoneinfo/Africa/Cairo \
+    ${datadir}/zoneinfo/Europe/Moscow \
+    ${datadir}/zoneinfo/Asia/Dubai \
+    ${datadir}/zoneinfo/Asia/Karachi \
+    ${datadir}/zoneinfo/Asia/Dhaka \
+    ${datadir}/zoneinfo/Asia/Bangkok \
+    ${datadir}/zoneinfo/Asia/Hong_Kong \
+    ${datadir}/zoneinfo/Asia/Tokyo \
+    ${datadir}/zoneinfo/Australia/Darwin \
+    ${datadir}/zoneinfo/Australia/Adelaide \
+    ${datadir}/zoneinfo/Australia/Brisbane \
+    ${datadir}/zoneinfo/Australia/Sydney \
+    ${datadir}/zoneinfo/Pacific/Noumea \
+    ${datadir}/zoneinfo/CET \
+    ${datadir}/zoneinfo/CST6CDT \
+    ${datadir}/zoneinfo/EET \
+    ${datadir}/zoneinfo/EST \
+    ${datadir}/zoneinfo/EST5EDT \
+    ${datadir}/zoneinfo/GB \
+    ${datadir}/zoneinfo/GMT \
+    ${datadir}/zoneinfo/GMT+0 \
+    ${datadir}/zoneinfo/GMT-0 \
+    ${datadir}/zoneinfo/GMT0 \
+    ${datadir}/zoneinfo/Greenwich \
+    ${datadir}/zoneinfo/HST \
+    ${datadir}/zoneinfo/MET \
+    ${datadir}/zoneinfo/MST \
+    ${datadir}/zoneinfo/MST7MDT \
+    ${datadir}/zoneinfo/NZ \
+    ${datadir}/zoneinfo/NZ-CHAT \
+    ${datadir}/zoneinfo/PRC \
+    ${datadir}/zoneinfo/PST8PDT \
+    ${datadir}/zoneinfo/ROC \
+    ${datadir}/zoneinfo/ROK \
+    ${datadir}/zoneinfo/UCT \
+    ${datadir}/zoneinfo/UTC \
+    ${datadir}/zoneinfo/Universal \
+    ${datadir}/zoneinfo/W-SU \
+    ${datadir}/zoneinfo/WET \
+    ${datadir}/zoneinfo/Zulu \
+    ${datadir}/zoneinfo/zone.tab \
+    ${datadir}/zoneinfo/zone1970.tab \
+    ${datadir}/zoneinfo/iso3166.tab \
+    ${datadir}/zoneinfo/Etc \
+"
 
 CONFFILES:tzdata-core = "${sysconfdir}/localtime ${sysconfdir}/timezone"
 
 ALLOW_EMPTY:${PN} = "1"
+
 RDEPENDS:${PN} = "${TZ_PACKAGES}"
diff --git a/poky/meta/recipes-extended/unzip/unzip/avoid-strip.patch b/poky/meta/recipes-extended/unzip/unzip/avoid-strip.patch
index 8f30e42..e0c89d8 100644
--- a/poky/meta/recipes-extended/unzip/unzip/avoid-strip.patch
+++ b/poky/meta/recipes-extended/unzip/unzip/avoid-strip.patch
@@ -1,4 +1,4 @@
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [need a new release]
 
 unix/Makefile: remove hard coded strip commands
 
diff --git a/poky/meta/recipes-extended/unzip/unzip/define-ldflags.patch b/poky/meta/recipes-extended/unzip/unzip/define-ldflags.patch
index 659c6e3..dc554c3 100644
--- a/poky/meta/recipes-extended/unzip/unzip/define-ldflags.patch
+++ b/poky/meta/recipes-extended/unzip/unzip/define-ldflags.patch
@@ -1,6 +1,6 @@
 Pass LDFLAGS to the linker 
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [need a new release]
 
 Signed-off-by: Mikhail Durnev <Mikhail_Durnev@mentor.com>
 
diff --git a/poky/meta/recipes-extended/unzip/unzip/fix-security-format.patch b/poky/meta/recipes-extended/unzip/unzip/fix-security-format.patch
index 8e9b06c..ba6ead3 100644
--- a/poky/meta/recipes-extended/unzip/unzip/fix-security-format.patch
+++ b/poky/meta/recipes-extended/unzip/unzip/fix-security-format.patch
@@ -5,7 +5,7 @@
 [YOCTO #9551]
 [https://bugzilla.yoctoproject.org/show_bug.cgi?id=9551]
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [need a new release]
 
 Signed-off-by: Edwin Plauchu <edwin.plauchu.camacho@intel.com>
 
diff --git a/poky/meta/recipes-extended/unzip/unzip/symlink.patch b/poky/meta/recipes-extended/unzip/unzip/symlink.patch
index a38f6f1..c1d82ac 100644
--- a/poky/meta/recipes-extended/unzip/unzip/symlink.patch
+++ b/poky/meta/recipes-extended/unzip/unzip/symlink.patch
@@ -6,7 +6,7 @@
 
 This patch is taken from Fedora (https://bugzilla.redhat.com/show_bug.cgi?id=972427)
 
-Upstream-Status: Pending (upstream is dead)
+Upstream-Status: Inappropriate [need a new release]
 Signed-off-by: Ross Burton <ross.burton@intel.com>
 
 --- unzip60/process.c.sav	2013-06-09 12:08:57.070392264 +0200
diff --git a/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb b/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
index da051c1..e64494e 100644
--- a/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
+++ b/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
@@ -7,7 +7,7 @@
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
 
-SRC_URI = "git://github.com/openSUSE/xinetd.git;protocol=https \
+SRC_URI = "git://github.com/openSUSE/xinetd.git;protocol=https;branch=master \
            file://xinetd.init \
            file://xinetd.default \
            file://xinetd.service \
diff --git a/poky/meta/recipes-extended/zip/zip-3.0/fix-security-format.patch b/poky/meta/recipes-extended/zip/zip-3.0/fix-security-format.patch
index 19d8548..5cdbf22 100644
--- a/poky/meta/recipes-extended/zip/zip-3.0/fix-security-format.patch
+++ b/poky/meta/recipes-extended/zip/zip-3.0/fix-security-format.patch
@@ -14,7 +14,7 @@
 [YOCTO #9552]
 [https://bugzilla.yoctoproject.org/show_bug.cgi?id=9552]
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [need a new release]
 
 Signed-off-by: Edwin Plauchu <edwin.plauchu.camacho@intel.com>
 
diff --git a/poky/meta/recipes-extended/zstd/zstd/0001-Makefile-sort-all-wildcard-file-list-expansions.patch b/poky/meta/recipes-extended/zstd/zstd/0001-Makefile-sort-all-wildcard-file-list-expansions.patch
index 37c5ff0..3d23648 100644
--- a/poky/meta/recipes-extended/zstd/zstd/0001-Makefile-sort-all-wildcard-file-list-expansions.patch
+++ b/poky/meta/recipes-extended/zstd/zstd/0001-Makefile-sort-all-wildcard-file-list-expansions.patch
@@ -6,7 +6,7 @@
 Otherwise the order is non-deterministic and breaks
 reproducible builds.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/facebook/zstd/pull/2895]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 
 ---
diff --git a/poky/meta/recipes-extended/zstd/zstd_1.5.0.bb b/poky/meta/recipes-extended/zstd/zstd_1.5.0.bb
index 978812f..51305d0 100644
--- a/poky/meta/recipes-extended/zstd/zstd_1.5.0.bb
+++ b/poky/meta/recipes-extended/zstd/zstd_1.5.0.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c7f0b161edbe52f5f345a3d1311d0b32 \
                     file://COPYING;md5=39bba7d2cf0ba1036f2a6e2be52fe3f0"
 
-SRC_URI = "git://github.com/facebook/zstd.git;branch=release \
+SRC_URI = "git://github.com/facebook/zstd.git;branch=release;protocol=https \
            file://0001-Makefile-sort-all-wildcard-file-list-expansions.patch \
            file://0001-MinGW-Build-Fixes.patch \
            "
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_41.0.bb b/poky/meta/recipes-gnome/epiphany/epiphany_41.0.bb
deleted file mode 100644
index 09210b6..0000000
--- a/poky/meta/recipes-gnome/epiphany/epiphany_41.0.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "WebKit based web browser for GNOME"
-DESCRIPTION = "Epiphany is an open source web browser for the Linux desktop environment. \
-It provides a simple and easy-to-use internet browsing experience."
-HOMEPAGE = "https://wiki.gnome.org/Apps/Web"
-BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany"
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = " \
-          webkitgtk \
-          gcr \
-          gsettings-desktop-schemas \
-          nettle \
-          json-glib \
-          libarchive \
-          libdazzle \
-          libhandy \
-          libportal \
-          glib-2.0-native \
-          "
-
-GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gsettings features_check gettext mime-xdg
-REQUIRED_DISTRO_FEATURES = "x11 opengl"
-
-SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@oe.utils.trim_version("${PV}", 1)}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
-           file://0002-help-meson.build-disable-the-use-of-yelp.patch \
-           file://migrator.patch \
-           file://distributor.patch \
-           "
-SRC_URI[archive.sha256sum] = "b39d1825492595b0b74c5d6a6686a857f9419dfa4c02f8013c297bc870e26dd0"
-
-EXTRA_OEMESON += "-Dsoup2=disabled"
-
-# Developer mode enables debugging
-PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false"
-
-FILES:${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo"
-RDEPENDS:${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas"
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_41.3.bb b/poky/meta/recipes-gnome/epiphany/epiphany_41.3.bb
new file mode 100644
index 0000000..befd817
--- /dev/null
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_41.3.bb
@@ -0,0 +1,43 @@
+SUMMARY = "WebKit based web browser for GNOME"
+DESCRIPTION = "Epiphany is an open source web browser for the Linux desktop environment. \
+It provides a simple and easy-to-use internet browsing experience."
+HOMEPAGE = "https://wiki.gnome.org/Apps/Web"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany"
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = " \
+          webkitgtk \
+          gcr \
+          gsettings-desktop-schemas \
+          nettle \
+          json-glib \
+          libarchive \
+          libdazzle \
+          libhandy \
+          glib-2.0-native \
+          "
+
+GNOMEBASEBUILDCLASS = "meson"
+inherit gnomebase gsettings features_check gettext mime-xdg
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
+
+SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@oe.utils.trim_version("${PV}", 1)}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
+           file://0002-help-meson.build-disable-the-use-of-yelp.patch \
+           file://bfbb5f7bab38301d8a4a444173acdae8d9692146.patch \
+           file://migrator.patch \
+           file://distributor.patch \
+           "
+SRC_URI[archive.sha256sum] = "ba01268ee54f318dfdac2e01eba38a3fc96940c1cbf640ed2613ae29f8bcb9ad"
+
+PACKAGECONFIG_SOUP ?= "soup2"
+PACKAGECONFIG ??= "${PACKAGECONFIG_SOUP}"
+
+# Developer mode enables debugging
+PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false"
+PACKAGECONFIG[soup2] = "-Dsoup2=enabled,-Dsoup2=disabled,libsoup-2.4,,,soup3"
+PACKAGECONFIG[soup3] = ",,libsoup,,,soup2"
+PACKAGECONFIG[libportal] = "-Dlibportal=enabled,-Dlibportal=disabled,libportal"
+
+FILES:${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo"
+RDEPENDS:${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas"
diff --git a/poky/meta/recipes-gnome/epiphany/files/bfbb5f7bab38301d8a4a444173acdae8d9692146.patch b/poky/meta/recipes-gnome/epiphany/files/bfbb5f7bab38301d8a4a444173acdae8d9692146.patch
new file mode 100644
index 0000000..f20975c
--- /dev/null
+++ b/poky/meta/recipes-gnome/epiphany/files/bfbb5f7bab38301d8a4a444173acdae8d9692146.patch
@@ -0,0 +1,35 @@
+From bfbb5f7bab38301d8a4a444173acdae8d9692146 Mon Sep 17 00:00:00 2001
+From: rvalue <i@rvalue.moe>
+Date: Wed, 24 Nov 2021 04:52:42 +0000
+Subject: [PATCH] Remove incorrect args for i18n.merge_file
+
+Part-of: <https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/1031>
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ data/meson.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index 46df3fd80..eac6b8224 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -16,7 +16,6 @@ install_data(
+ desktop_conf = configuration_data()
+ desktop_conf.set('icon', application_id)
+ desktop = i18n.merge_file(
+-  'desktop',
+   input: configure_file(
+     input: files('org.gnome.Epiphany.desktop.in.in'),
+     output: 'org.gnome.Epiphany.desktop.in',
+@@ -32,7 +31,6 @@ desktop = i18n.merge_file(
+ appdata_conf = configuration_data()
+ appdata_conf.set('appid', application_id)
+ appdata = i18n.merge_file(
+-  'appdata',
+   input: configure_file(
+     input: files('org.gnome.Epiphany.appdata.xml.in.in'),
+     output: 'org.gnome.Epiphany.appdata.xml.in',
+-- 
+GitLab
+
diff --git a/poky/meta/recipes-gnome/gcr/gcr/b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch b/poky/meta/recipes-gnome/gcr/gcr/b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch
new file mode 100644
index 0000000..ae4e2ac
--- /dev/null
+++ b/poky/meta/recipes-gnome/gcr/gcr/b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch
@@ -0,0 +1,61 @@
+From b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8 Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Wed, 12 Jan 2022 00:24:20 +0100
+Subject: [PATCH] meson: Fix unknown kw argument in gnome.generate_gir
+
+This argument has been removed in Meson 0.61.0:
+
+    gck/meson.build:130:2: ERROR: gnome.generate_gir got unknown keyword arguments "packages"
+
+https://github.com/mesonbuild/meson/commit/f8fc5cb860465718fe7c79a1bf1fe00659f138de:
+
+> The packages argument to gnome.generate_gir was allowed, but never did anything, so stop passing it.
+
+Fixes #89
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gck/meson.build | 1 -
+ gcr/meson.build | 1 -
+ ui/meson.build  | 1 -
+ 3 files changed, 3 deletions(-)
+
+diff --git a/gck/meson.build b/gck/meson.build
+index 756b486..a21a1e9 100644
+--- a/gck/meson.build
++++ b/gck/meson.build
+@@ -131,7 +131,6 @@ if get_option('introspection')
+     sources: gck_gir_sources,
+     namespace: 'Gck',
+     nsversion: '@0@'.format(gck_major_version),
+-    packages: gck_deps,
+     export_packages: 'gck-@0@'.format(gck_major_version),
+     includes: [ 'GObject-2.0', 'Gio-2.0' ],
+     header: 'gck/gck.h',
+diff --git a/gcr/meson.build b/gcr/meson.build
+index 2233a44..c83641b 100644
+--- a/gcr/meson.build
++++ b/gcr/meson.build
+@@ -190,7 +190,6 @@ if get_option('introspection')
+     sources: [ gcr_base_public_sources, gcr_base_headers ],
+     namespace: 'Gcr',
+     nsversion: '@0@'.format(gcr_major_version),
+-    packages: gcr_base_deps,
+     export_packages: 'gcr-base-@0@'.format(gcr_major_version),
+     includes: [
+       'GObject-2.0',
+diff --git a/ui/meson.build b/ui/meson.build
+index e656ea2..32ee057 100644
+--- a/ui/meson.build
++++ b/ui/meson.build
+@@ -152,7 +152,6 @@ if get_option('introspection')
+     export_packages: 'gcr-ui-@0@'.format(gcr_major_version),
+     identifier_prefix: 'Gcr',
+     symbol_prefix: 'gcr',
+-    packages: gcr_ui_deps,
+     includes: [
+       'GObject-2.0',
+       'Gio-2.0',
+-- 
+GitLab
+
diff --git a/poky/meta/recipes-gnome/gcr/gcr_3.40.0.bb b/poky/meta/recipes-gnome/gcr/gcr_3.40.0.bb
index a05e753..d6174540 100644
--- a/poky/meta/recipes-gnome/gcr/gcr_3.40.0.bb
+++ b/poky/meta/recipes-gnome/gcr/gcr_3.40.0.bb
@@ -17,7 +17,8 @@
 GTKDOC_MESON_OPTION = "gtk_doc"
 inherit gnomebase gtk-icon-cache gtk-doc features_check upstream-version-is-even vala gobject-introspection gettext mime mime-xdg
 
-SRC_URI += "file://0001-gcr-meson.build-fix-one-parallel-build-failure.patch"
+SRC_URI += "file://0001-gcr-meson.build-fix-one-parallel-build-failure.patch \ 
+            file://b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch"
 
 SRC_URI[archive.sha256sum] = "b9d3645a5fd953a54285cc64d4fc046736463dbd4dcc25caf5c7b59bed3027f5"
 
diff --git a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch
index 54e3e5e..a1d39cf 100644
--- a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch
+++ b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch
@@ -5,7 +5,7 @@
 
 This greatly speeds up installation time on multi-core systems.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/adwaita-icon-theme/-/merge_requests/39]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 
 ---
diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-build-Avoid-the-doctemplates-hack.patch b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-build-Avoid-the-doctemplates-hack.patch
new file mode 100644
index 0000000..b7d31cc
--- /dev/null
+++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-build-Avoid-the-doctemplates-hack.patch
@@ -0,0 +1,219 @@
+From effb1e09dee263cdac4ec593e8caf316e6f01fe2 Mon Sep 17 00:00:00 2001
+From: Emmanuele Bassi <ebassi@gnome.org>
+Date: Tue, 11 Jan 2022 15:51:10 +0000
+Subject: [PATCH] build: Avoid the doctemplates hack
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The hack that copies the doctemplates directory into the build
+directory has stopped working with newer versions of Meson; while it's
+possible to copy files, custom_target() cannot depend on a directory.
+Additionally, the dependency has always been broken.
+
+Instead, we enumerate the template files—after all, it's not like they
+change a lot—and then we list them as dependencies for the test targets.
+
+Fixes: #414
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ giscanner/doctemplates/devdocs/meson.build | 19 +++++++
+ giscanner/doctemplates/mallard/meson.build | 63 ++++++++++++++++++++++
+ giscanner/meson.build                      | 14 ++---
+ tests/scanner/meson.build                  | 24 +++++----
+ 4 files changed, 98 insertions(+), 22 deletions(-)
+ create mode 100644 giscanner/doctemplates/devdocs/meson.build
+ create mode 100644 giscanner/doctemplates/mallard/meson.build
+
+diff --git a/giscanner/doctemplates/devdocs/meson.build b/giscanner/doctemplates/devdocs/meson.build
+new file mode 100644
+index 00000000..2037182a
+--- /dev/null
++++ b/giscanner/doctemplates/devdocs/meson.build
+@@ -0,0 +1,19 @@
++doc_templates += files([
++  'Gjs/_doc.tmpl',
++  'Gjs/_index.tmpl',
++  'Gjs/_method.tmpl',
++  'Gjs/_methods.tmpl',
++  'Gjs/_properties.tmpl',
++  'Gjs/_signals.tmpl',
++  'Gjs/_staticmethods.tmpl',
++  'Gjs/_vfuncs.tmpl',
++  'Gjs/base.tmpl',
++  'Gjs/callback.tmpl',
++  'Gjs/class.tmpl',
++  'Gjs/default.tmpl',
++  'Gjs/enum.tmpl',
++  'Gjs/function.tmpl',
++  'Gjs/interface.tmpl',
++  'Gjs/method.tmpl',
++  'Gjs/namespace.tmpl',
++])
+diff --git a/giscanner/doctemplates/mallard/meson.build b/giscanner/doctemplates/mallard/meson.build
+new file mode 100644
+index 00000000..5fe4e2af
+--- /dev/null
++++ b/giscanner/doctemplates/mallard/meson.build
+@@ -0,0 +1,63 @@
++base_templates = files([
++  'base.tmpl',
++  'class.tmpl',
++  'namespace.tmpl',
++])
++
++c_templates = files([
++  'C/callback.tmpl',
++  'C/class.tmpl',
++  'C/constructor.tmpl',
++  'C/default.tmpl',
++  'C/enum.tmpl',
++  'C/field.tmpl',
++  'C/function.tmpl',
++  'C/interface.tmpl',
++  'C/method.tmpl',
++  'C/namespace.tmpl',
++  'C/property.tmpl',
++  'C/record.tmpl',
++  'C/signal.tmpl',
++  'C/vfunc.tmpl',
++])
++
++gjs_templates = files([
++  'Gjs/callback.tmpl',
++  'Gjs/class.tmpl',
++  'Gjs/constructor.tmpl',
++  'Gjs/default.tmpl',
++  'Gjs/enum.tmpl',
++  'Gjs/field.tmpl',
++  'Gjs/function.tmpl',
++  'Gjs/interface.tmpl',
++  'Gjs/method.tmpl',
++  'Gjs/namespace.tmpl',
++  'Gjs/property.tmpl',
++  'Gjs/record.tmpl',
++  'Gjs/signal.tmpl',
++  'Gjs/vfunc.tmpl',
++])
++
++py_templates = files([
++  'Python/callback.tmpl',
++  'Python/class.tmpl',
++  'Python/constructor.tmpl',
++  'Python/default.tmpl',
++  'Python/enum.tmpl',
++  'Python/field.tmpl',
++  'Python/function.tmpl',
++  'Python/interface.tmpl',
++  'Python/method.tmpl',
++  'Python/namespace.tmpl',
++  'Python/property.tmpl',
++  'Python/record.tmpl',
++  'Python/signal.tmpl',
++  'Python/vfunc.tmpl',
++])
++
++doc_templates += [
++  base_templates,
++  c_templates,
++  gjs_templates,
++  py_templates,
++]
+diff --git a/giscanner/meson.build b/giscanner/meson.build
+index 41edcd44..3d7dc678 100644
+--- a/giscanner/meson.build
++++ b/giscanner/meson.build
+@@ -53,17 +53,9 @@ configure_file(input : '../girepository/gdump.c',
+ 
+ install_subdir('doctemplates', install_dir: giscannerdir)
+ 
+-# XXX: this doesn't track the input, but there is nothing to copy many files
+-# in meson.
+-doc_templates = custom_target('copy-templates',
+-  input : 'doctemplates',
+-  output : 'doctemplates',
+-  command : [
+-    python, '-c',
+-      'import sys, shutil;' +
+-      'shutil.rmtree(sys.argv[2], ignore_errors=True);' +
+-      'shutil.copytree(sys.argv[1], sys.argv[2])',
+-    '@INPUT@', '@OUTPUT@'])
++doc_templates = []
++subdir('doctemplates/devdocs')
++subdir('doctemplates/mallard')
+ 
+ flex = find_program('flex', 'win_flex')
+ bison = find_program('bison', 'win_bison')
+diff --git a/tests/scanner/meson.build b/tests/scanner/meson.build
+index 5176b957..b81b3fd5 100644
+--- a/tests/scanner/meson.build
++++ b/tests/scanner/meson.build
+@@ -525,19 +525,26 @@ foreach gir : test_girs
+ endforeach
+ 
+ if has_girdoctool and glib_dep.type_name() == 'pkgconfig'
++  doctool_env = environment()
++  doctool_env.set('srcdir', meson.current_source_dir())
++  doctool_env.set('builddir', meson.current_build_dir())
++
+   foreach language : ['C', 'Python', 'Gjs']
+     regress_docs = custom_target(
+       'generate-docs-' + language,
+       input: regress_gir,
+-      depends: [doc_templates],
++      depend_files: doc_templates,
+       build_by_default: not cairo_deps_found,
++      env: doctool_env,
+       output: 'Regress-1.0-' + language,
+       command: [
+         python, girdoctool,
+         '--add-include-path=' + join_paths(build_root, 'gir'),
+         '--add-include-path=' + meson.current_build_dir(),
+         '--language', language,
+-        '@INPUT@', '-o', '@OUTPUT@'],
++        '--templates-dir=' + join_paths(meson.current_source_dir(), '../../giscanner/doctemplates'),
++        '@INPUT@', '-o', '@OUTPUT@',
++      ],
+     )
+ 
+     if cairo_deps_found
+@@ -546,10 +553,7 @@ if has_girdoctool and glib_dep.type_name() == 'pkgconfig'
+         python,
+         args: [gi_tester, 'Regress-1.0-' + language],
+         depends: [regress_docs],
+-        env: [
+-          'srcdir=' + meson.current_source_dir(),
+-          'builddir=' + meson.current_build_dir(),
+-        ],
++        env: doctool_env,
+       )
+     endif
+   endforeach
+@@ -557,9 +561,10 @@ if has_girdoctool and glib_dep.type_name() == 'pkgconfig'
+   regress_sections = custom_target(
+     'generate-docs-sections',
+     input: regress_gir,
+-    depends: [doc_templates],
++    depend_files: [doc_templates],
+     build_by_default: not cairo_deps_found,
+     output: 'Regress-1.0-sections.txt',
++    env: doctool_env,
+     command: [
+       python, girdoctool,
+       '--add-include-path=' + join_paths(build_root, 'gir'),
+@@ -574,10 +579,7 @@ if has_girdoctool and glib_dep.type_name() == 'pkgconfig'
+       python,
+       args: [gi_tester, 'Regress-1.0-sections.txt'],
+       depends: [regress_sections],
+-      env: [
+-        'srcdir=' + meson.current_source_dir(),
+-        'builddir=' + meson.current_build_dir(),
+-      ],
++      env: doctool_env,
+     )
+   endif
+ endif
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.70.0.bb b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.70.0.bb
index d96caf0..d4ee03d 100644
--- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.70.0.bb
+++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.70.0.bb
@@ -15,6 +15,7 @@
 
 SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \
            file://0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch \
+           file://0001-build-Avoid-the-doctemplates-hack.patch \
            "
 
 SRC_URI[sha256sum] = "902b4906e3102d17aa2fcb6dad1c19971c70f2a82a159ddc4a94df73a3cafc4a"
diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3.inc b/poky/meta/recipes-gnome/gtk+/gtk+3.inc
index 47cdb83..4de4dcf 100644
--- a/poky/meta/recipes-gnome/gtk+/gtk+3.inc
+++ b/poky/meta/recipes-gnome/gtk+/gtk+3.inc
@@ -27,9 +27,6 @@
 export PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native"
 
 do_configure:prepend() {
-    # Do this because the configure script is running ./libtool directly
-    rm -f libtool
-    ln -s ${TARGET_PREFIX}libtool libtool
     #delete a file that will get confused with generated one in ${B}
     rm -f ${S}/gtk/gtktypefuncs.c
 
diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch b/poky/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch
deleted file mode 100644
index c210bbc..0000000
--- a/poky/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 0ecaa5bab162abf0cb2057d77beeb7b89d5873b4 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Tue, 21 Jun 2016 14:53:56 +0300
-Subject: [PATCH 1/4] Hardcoded libtool
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- configure.ac | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 6628e21..f43ac09 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -617,7 +617,7 @@ AC_MSG_CHECKING([whether to write dependencies into .pc files])
- case $enable_explicit_deps in
-   auto)
-     export SED
--    deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
-+    deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
-     if test "x$deplibs_check_method" != xpass_all || test "x$enable_static" = xyes ; then
-       enable_explicit_deps=yes
-     else
-@@ -895,7 +895,7 @@ else
-     dnl Now we check to see if our libtool supports shared lib deps
-     dnl (in a rather ugly way even)
-     if $dynworks; then
--        module_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
-+        module_libtool_config="${CONFIG_SHELL-/bin/sh} ./$host_alias-libtool --config"
-         module_deplibs_check=`$module_libtool_config | \
-             grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
-             sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
-@@ -1649,7 +1649,7 @@ AC_SUBST(GTK_PRINT_BACKENDS)
- # We are using gmodule-no-export now, but I'm leaving the stripping
- # code in place for now, since pango and atk still require gmodule.
- export SED
--export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
-+export_dynamic=`(./$host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
- if test -n "$export_dynamic"; then
-   GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
-   GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
--- 
-2.12.0
-
diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.30.bb b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.30.bb
deleted file mode 100644
index 7e7566f..0000000
--- a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.30.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-require gtk+3.inc
-
-MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \
-           file://0001-Hardcoded-libtool.patch \
-           file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \
-           file://0003-Add-disable-opengl-configure-option.patch \
-           file://link_fribidi.patch \
-           "
-SRC_URI[sha256sum] = "ba75bfff320ad1f4cfbee92ba813ec336322cc3c660d406aad014b07087a3ba9"
-
-S = "${WORKDIR}/gtk+-${PV}"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
-                    file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \
-                    file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \
-                    file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1"
diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.31.bb b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.31.bb
new file mode 100644
index 0000000..a53cd7a
--- /dev/null
+++ b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.31.bb
@@ -0,0 +1,17 @@
+require gtk+3.inc
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \
+           file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \
+           file://0003-Add-disable-opengl-configure-option.patch \
+           file://link_fribidi.patch \
+           "
+SRC_URI[sha256sum] = "423c3e7fdb4c459ee889e35fd4d71fd2623562541c1041b11c07e5ad1ff10bf9"
+
+S = "${WORKDIR}/gtk+-${PV}"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
+                    file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \
+                    file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \
+                    file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1"
diff --git a/poky/meta/recipes-gnome/libhandy/libhandy/0001-Add-private-headers.patch b/poky/meta/recipes-gnome/libhandy/libhandy/0001-Add-private-headers.patch
new file mode 100644
index 0000000..7b2a512
--- /dev/null
+++ b/poky/meta/recipes-gnome/libhandy/libhandy/0001-Add-private-headers.patch
@@ -0,0 +1,37 @@
+From e7c3e8fa00f6a68b2e0629db5ee115e641ea710e Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 8 Dec 2021 07:35:52 +0000
+Subject: [PATCH] Add private headers
+
+After the commit(8157ecc Separate public and private enums) introduced,
+there comes a race as below:
+ | In file included from ../git/src/hdy-settings.c:11:
+ | ../git/src/hdy-settings-private.h:16:10: fatal error: hdy-enums-private.h: No such file or directory
+ |    16 | #include "hdy-enums-private.h"
+
+So also add private headers like private sources to libhandy_sources to
+fix the issue.
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libhandy/-/merge_requests/796]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ src/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index d087323..6f11f27 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -64,7 +64,7 @@ hdy_private_enums = gnome.mkenums('hdy-enums-private',
+ )
+ 
+ libhandy_public_sources += [hdy_public_enums[0]]
+-libhandy_private_sources += [hdy_private_enums[0]]
++libhandy_private_sources += hdy_private_enums
+ libhandy_generated_headers += [hdy_public_enums[1]]
+ 
+ src_headers = [
+-- 
+2.32.0
+
diff --git a/poky/meta/recipes-gnome/libhandy/libhandy_1.4.0.bb b/poky/meta/recipes-gnome/libhandy/libhandy_1.4.0.bb
deleted file mode 100644
index 39ee2aa..0000000
--- a/poky/meta/recipes-gnome/libhandy/libhandy_1.4.0.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "A library full of GTK+ widgets for mobile phones"
-DESCRIPTION = "Library with GTK widgets for mobile phones. Libhandy provides \
-GTK widgets and GObjects to ease developing applications for mobile phones. \
-It was developed by Purism (and used by several official GNOME projects) \
-to extend Gtk by providing mobile-friendly widgets and make the creation of \
-responsive apps easier."
-HOMEPAGE = "https://gitlab.gnome.org/GNOME/libhandy"
-BUGTRACKER = "https://gitlab.gnome.org/GNOME/libhandy/-/issues"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI = "git://gitlab.gnome.org/GNOME/libhandy.git;protocol=https"
-SRCREV = "f8626427acebfa08b2b4ee1166d51e416d3d7407"
-S = "${WORKDIR}/git"
-
-GIR_MESON_ENABLE_FLAG = 'enabled'
-GIR_MESON_DISABLE_FLAG = 'disabled'
-GTKDOC_MESON_OPTION = 'gtk_doc'
-
-inherit meson gobject-introspection vala gettext gtk-doc features_check
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-DEPENDS += "gtk+3"
-
-PACKAGES =+ "${PN}-examples"
-FILES:${PN}-examples = "${bindir}"
diff --git a/poky/meta/recipes-gnome/libhandy/libhandy_1.5.0.bb b/poky/meta/recipes-gnome/libhandy/libhandy_1.5.0.bb
new file mode 100644
index 0000000..605ef2b
--- /dev/null
+++ b/poky/meta/recipes-gnome/libhandy/libhandy_1.5.0.bb
@@ -0,0 +1,29 @@
+SUMMARY = "A library full of GTK+ widgets for mobile phones"
+DESCRIPTION = "Library with GTK widgets for mobile phones. Libhandy provides \
+GTK widgets and GObjects to ease developing applications for mobile phones. \
+It was developed by Purism (and used by several official GNOME projects) \
+to extend Gtk by providing mobile-friendly widgets and make the creation of \
+responsive apps easier."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/libhandy"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/libhandy/-/issues"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "git://gitlab.gnome.org/GNOME/libhandy.git;protocol=https;branch=master \
+           file://0001-Add-private-headers.patch \
+"
+SRCREV = "8fa8306a79215fc6ebf2483145da98bf9b2495ab"
+S = "${WORKDIR}/git"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_OPTION = 'gtk_doc'
+
+inherit meson gobject-introspection vala gettext gtk-doc features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+DEPENDS += "gtk+3"
+
+PACKAGES =+ "${PN}-examples"
+FILES:${PN}-examples = "${bindir}"
diff --git a/poky/meta/recipes-gnome/libportal/libportal_0.4.bb b/poky/meta/recipes-gnome/libportal/libportal_0.4.bb
deleted file mode 100644
index 03e681f..0000000
--- a/poky/meta/recipes-gnome/libportal/libportal_0.4.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "libportal provides GIO-style async APIs for most Flatpak portals."
-DESCRIPTION = "It provides simple asynchronous wrappers for most Flatpak portals \
-with a familiar GObject API along side the D-Bus API"
-HOMEPAGE = "https://github.com/flatpak/libportal"
-BUGTRACKER = "https://github.com/flatpak/libportal/issues"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-SRC_URI = "git://github.com/flatpak/${BPN}.git;protocol=https"
-SRCREV = "f68764e288ede516d902b131cc4fadded3804059"
-S = "${WORKDIR}/git"
-
-GTKDOC_MESON_OPTION = 'gtk_doc'
-
-inherit meson gtk-doc
-
-DEPENDS += "glib-2.0 glib-2.0-native"
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg/0001-crossbeam-utils-check-only-the-architecture-not-the-.patch b/poky/meta/recipes-gnome/librsvg/librsvg/0001-crossbeam-utils-check-only-the-architecture-not-the-.patch
deleted file mode 100644
index 0c1cf59..0000000
--- a/poky/meta/recipes-gnome/librsvg/librsvg/0001-crossbeam-utils-check-only-the-architecture-not-the-.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 70557b217644901daaf9d8ef793f5e84c937762e Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Tue, 5 Oct 2021 23:41:59 +0200
-Subject: [PATCH] crossbeam-utils: check only the architecture, not the whole
- target string
-
-There can be custom targets in use, and it's not possible to make a list
-of them; for the check only the first item in the target string is actually
-relevant (the architecture of the target).
-
-Upstream-Status: Pending [needs an upstream ticket and possibly a rework of list generator script]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- vendor/crossbeam-utils/.cargo-checksum.json |  4 +-
- vendor/crossbeam-utils/build.rs             |  8 ++-
- vendor/crossbeam-utils/no_atomic.rs         | 78 ++++++++-------------
- 3 files changed, 38 insertions(+), 52 deletions(-)
-
---- a/vendor/crossbeam-utils/.cargo-checksum.json
-+++ b/vendor/crossbeam-utils/.cargo-checksum.json
-@@ -1 +1,3 @@
--{"files":{"CHANGELOG.md":"5242f1740c65509c465c9a36326d344722facff5f5e58dd064f7b77806b83a46","Cargo.toml":"ac35a7b8ccb16f1ab256951576537aa4179a316c068929c2acef89e0adc12319","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"5734ed989dfca1f625b40281ee9f4530f91b2411ec01cb748223e7eb87e201ab","README.md":"dfa9fbed47c344c134a63c84b7c0e4651baeac1554b7b3266d0e38643743fc33","benches/atomic_cell.rs":"c927eb3cd1e5ecc4b91adbc3bde98af15ffab4086190792ba64d5cde0e24df3d","build.rs":"68cfc4be02429834a19411fba29cb1cb52c841f03ac8104d1bae59a8b2184f9c","no_atomic.rs":"a2621c1b029c614fb0ab8e3f5cda2e839df88d90d26133181c1b901965f7eec4","src/atomic/atomic_cell.rs":"1a3a1e073340317b5ce7a94e29c6a87db89ff7e00da6b92cb3c0339364c3b084","src/atomic/consume.rs":"7a7736fcd64f6473dfea7653559ffc5e1a2a234df43835f8aa8734862145ac15","src/atomic/mod.rs":"7f6afd5bd0da1f7b51765ab04da4e5f683588ac2d23506e61bf7007bb1e61ba2","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":"ba8f75bff31b8be9275808e8f393e71cc682dfc1109ceccb12f69a3700cff5be","src/sync/sharded_lock.rs":"14be659744918d0b27db24c56b41c618b0f0484b6761da46561023d96c4c120f","src/sync/wait_group.rs":"32e946a7581c55f8aa9904527b92b177c538fa0cf7cbcfa1d1f25990582cb6ea","src/thread.rs":"0eb5ec1d3c1b40600d88eb70539d14276e32307f5bed2b679f50f6a20777a01e","tests/atomic_cell.rs":"6c9453384ecbbe76f8b97b62f022d478d3a76b4eae1e960f49790970f5d52158","tests/cache_padded.rs":"1bfaff8354c8184e1ee1f902881ca9400b60effb273b0d3f752801a483d2b66d","tests/parker.rs":"6def4721287d9d70b1cfd63ebb34e1c83fbb3376edbad2bc8aac6ef69dd99d20","tests/sharded_lock.rs":"726025ce6351fb56ed629d5a56bdf6e833b7afc5dedfa08de0b056c726b6c26d","tests/thread.rs":"9a7d7d3028c552fd834c68598b04a1cc252a816bc20ab62cec060d6cd09cab10","tests/wait_group.rs":"ad8f0cdfed31f9594a2e0737234d418f8b924d784a4db8d7e469deab8c95f5f8"},"package":"d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"}
-\ No newline at end of file
-+{"files":{"CHANGELOG.md":"5242f1740c65509c465c9a36326d344722facff5f5e58dd064f7b77806b83a46","Cargo.toml":"ac35a7b8ccb16f1ab256951576537aa4179a316c068929c2acef89e0adc12319","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"5734ed989dfca1f625b40281ee9f4530f91b2411ec01cb748223e7eb87e201ab","README.md":"dfa9fbed47c344c134a63c84b7c0e4651baeac1554b7b3266d0e38643743fc33","benches/atomic_cell.rs":"c927eb3cd1e5ecc4b91adbc3bde98af15ffab4086190792ba64d5cde0e24df3d",
-+"build.rs":"15c1a41a88373231cbc17c7de5ade07c6098455af9cdeef81b576f37ed923354",
-+"no_atomic.rs":"dcbd845deda197b13361238a6aab60b6d8124fb588fd0b33740e127441db3f1a","src/atomic/atomic_cell.rs":"1a3a1e073340317b5ce7a94e29c6a87db89ff7e00da6b92cb3c0339364c3b084","src/atomic/consume.rs":"7a7736fcd64f6473dfea7653559ffc5e1a2a234df43835f8aa8734862145ac15","src/atomic/mod.rs":"7f6afd5bd0da1f7b51765ab04da4e5f683588ac2d23506e61bf7007bb1e61ba2","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":"ba8f75bff31b8be9275808e8f393e71cc682dfc1109ceccb12f69a3700cff5be","src/sync/sharded_lock.rs":"14be659744918d0b27db24c56b41c618b0f0484b6761da46561023d96c4c120f","src/sync/wait_group.rs":"32e946a7581c55f8aa9904527b92b177c538fa0cf7cbcfa1d1f25990582cb6ea","src/thread.rs":"0eb5ec1d3c1b40600d88eb70539d14276e32307f5bed2b679f50f6a20777a01e","tests/atomic_cell.rs":"6c9453384ecbbe76f8b97b62f022d478d3a76b4eae1e960f49790970f5d52158","tests/cache_padded.rs":"1bfaff8354c8184e1ee1f902881ca9400b60effb273b0d3f752801a483d2b66d","tests/parker.rs":"6def4721287d9d70b1cfd63ebb34e1c83fbb3376edbad2bc8aac6ef69dd99d20","tests/sharded_lock.rs":"726025ce6351fb56ed629d5a56bdf6e833b7afc5dedfa08de0b056c726b6c26d","tests/thread.rs":"9a7d7d3028c552fd834c68598b04a1cc252a816bc20ab62cec060d6cd09cab10","tests/wait_group.rs":"ad8f0cdfed31f9594a2e0737234d418f8b924d784a4db8d7e469deab8c95f5f8"},"package":"d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"}
---- a/vendor/crossbeam-utils/build.rs
-+++ b/vendor/crossbeam-utils/build.rs
-@@ -20,17 +20,19 @@ fn main() {
-         }
-     };
- 
-+    let target_arch = target.split('-').next().unwrap_or_default();
-+
-     // Note that this is `no_*`, not `has_*`. This allows treating
-     // `cfg(target_has_atomic = "ptr")` as true when the build script doesn't
-     // run. This is needed for compatibility with non-cargo build systems that
-     // don't run the build script.
--    if NO_ATOMIC_CAS.contains(&&*target) {
-+    if NO_ATOMIC_CAS.contains(&&*target_arch) {
-         println!("cargo:rustc-cfg=crossbeam_no_atomic_cas");
-     }
--    if NO_ATOMIC.contains(&&*target) {
-+    if NO_ATOMIC.contains(&&*target_arch) {
-         println!("cargo:rustc-cfg=crossbeam_no_atomic");
-         println!("cargo:rustc-cfg=crossbeam_no_atomic_64");
--    } else if NO_ATOMIC_64.contains(&&*target) {
-+    } else if NO_ATOMIC_64.contains(&&*target_arch) {
-         println!("cargo:rustc-cfg=crossbeam_no_atomic_64");
-     } else {
-         // Otherwise, assuming `"max-atomic-width" == 64`.
---- a/vendor/crossbeam-utils/no_atomic.rs
-+++ b/vendor/crossbeam-utils/no_atomic.rs
-@@ -2,58 +2,41 @@
- // It is not intended for manual editing.
- 
- const NO_ATOMIC_CAS: &[&str] = &[
--    "avr-unknown-gnu-atmega328",
--    "msp430-none-elf",
--    "riscv32i-unknown-none-elf",
--    "riscv32imc-unknown-none-elf",
--    "thumbv4t-none-eabi",
--    "thumbv6m-none-eabi",
-+    "avr",
-+    "msp430",
-+    "riscv32i",
-+    "riscv32imc",
-+    "thumbv4t",
-+    "thumbv6m",
- ];
- #[allow(dead_code)]
- const NO_ATOMIC_64: &[&str] = &[
--    "arm-linux-androideabi",
--    "armebv7r-none-eabi",
--    "armebv7r-none-eabihf",
--    "armv4t-unknown-linux-gnueabi",
--    "armv5te-unknown-linux-gnueabi",
--    "armv5te-unknown-linux-musleabi",
--    "armv5te-unknown-linux-uclibceabi",
--    "armv7r-none-eabi",
--    "armv7r-none-eabihf",
--    "hexagon-unknown-linux-musl",
--    "mips-unknown-linux-gnu",
--    "mips-unknown-linux-musl",
--    "mips-unknown-linux-uclibc",
--    "mipsel-unknown-linux-gnu",
--    "mipsel-unknown-linux-musl",
--    "mipsel-unknown-linux-uclibc",
--    "mipsel-unknown-none",
--    "mipsisa32r6-unknown-linux-gnu",
--    "mipsisa32r6el-unknown-linux-gnu",
--    "powerpc-unknown-linux-gnu",
--    "powerpc-unknown-linux-gnuspe",
--    "powerpc-unknown-linux-musl",
--    "powerpc-unknown-netbsd",
--    "powerpc-unknown-openbsd",
--    "powerpc-wrs-vxworks",
--    "powerpc-wrs-vxworks-spe",
--    "riscv32gc-unknown-linux-gnu",
--    "riscv32gc-unknown-linux-musl",
--    "riscv32imac-unknown-none-elf",
--    "thumbv7em-none-eabi",
--    "thumbv7em-none-eabihf",
--    "thumbv7m-none-eabi",
--    "thumbv8m.base-none-eabi",
--    "thumbv8m.main-none-eabi",
--    "thumbv8m.main-none-eabihf",
--    "mipsel-sony-psp",
--    "thumbv4t-none-eabi",
--    "thumbv6m-none-eabi",
-+    "arm",
-+    "armebv7r",
-+    "armv4t",
-+    "armv5te",
-+    "armv7r",
-+    "hexagon",
-+    "mips",
-+    "mipsel",
-+    "mipsisa32r6",
-+    "mipsisa32r6el",
-+    "powerpc",
-+    "riscv32",
-+    "riscv32gc",
-+    "riscv32imac",
-+    "thumbv7em",
-+    "thumbv7m",
-+    "thumbv8m.base",
-+    "thumbv8m.main",
-+    "mipsel",
-+    "thumbv4t",
-+    "thumbv6m",
- ];
- #[allow(dead_code)]
- const NO_ATOMIC: &[&str] = &[
--    "avr-unknown-gnu-atmega328",
--    "msp430-none-elf",
--    "riscv32i-unknown-none-elf",
--    "riscv32imc-unknown-none-elf",
-+    "avr",
-+    "msp430",
-+    "riscv32i",
-+    "riscv32imc",
- ];
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg/0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch b/poky/meta/recipes-gnome/librsvg/librsvg/0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch
index 849dd98..9c9ec80 100644
--- a/poky/meta/recipes-gnome/librsvg/librsvg/0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch
+++ b/poky/meta/recipes-gnome/librsvg/librsvg/0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch
@@ -1,4 +1,4 @@
-From 6d1f0740b111e86e99dcaf0222f3d1d67d3bf1e6 Mon Sep 17 00:00:00 2001
+From c6d52d37c546ebaa5d794fd5bcfa1ca1fc249dc2 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Tue, 21 Sep 2021 16:54:23 +0200
 Subject: [PATCH] system-deps/src/lib.rs: do not probe into harcoded list of
@@ -14,18 +14,18 @@
  2 files changed, 2 insertions(+), 16 deletions(-)
 
 diff --git a/vendor/system-deps/.cargo-checksum.json b/vendor/system-deps/.cargo-checksum.json
-index ecebb94..30d594e 100644
+index 725ee53..c3b8fe5 100644
 --- a/vendor/system-deps/.cargo-checksum.json
 +++ b/vendor/system-deps/.cargo-checksum.json
 @@ -1 +1 @@
--{"files":{"Cargo.toml":"56ab5070dc9019b039c5e9904bb466b0879c33a7f69dd030b97abab321b7cc04","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"3fe7396637bf9233908f41c6001cfcb00a379225e06e36e508c8b3d7264a8aae","src/lib.rs":"015518f4337d80249d12c7e6c55e9063705a0b8805ebf46a445c89253edc5de0","src/metadata.rs":"4c8d6ac2c88646a5b97ecb50ed44b65e5b2865cce6897add85b29ca2ae08c2bb","src/test.rs":"1ec48d1e443a0a4ac8035a2b60ff0321543aa2fa998fee72cf7762a936bf5f8c","src/tests/testanotherlib.pc":"bb4fd942324e6d49ce3becd827aa5c948d1924ca6681904a3695c19b1424eb3c","src/tests/testdata.pc":"43f481e989c03674fed5ef78c6420b3f8d36a2ce001928d86c418d1844acd5e7","src/tests/testlib-2.0.pc":"152eb0c70c14c3d948118408f3d1fd3bb7531b02aa792db85bd957f7db90b45b","src/tests/testlib-3.0.pc":"cd39c2ef88f6828c9291150cc4b624e769abef484674eaebaa4f67979501315f","src/tests/testlib.pc":"75c0d8a5345f65794f583c83e1cf0dbf3385af6e6abea1d61bb86eef707a52db","src/tests/toml-missing-file/no-cargo-toml-here":"6ab4da4b56f15315df6538610cfcd2ba3d0f9a7a8414678ff00ab5a78f7d41fa"},"package":"480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6"}
+-{"files":{"Cargo.toml":"3923d630403610a69f9943621bd13c1033944124acc96642e194064dc8b0554a","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"3fe7396637bf9233908f41c6001cfcb00a379225e06e36e508c8b3d7264a8aae","src/lib.rs":"d5c73ae844b7b45704591676bc53699006bfbc51ca8e36f1ca346f40721469d4","src/metadata.rs":"657bc1b77e949e4800f9dd808790ffa535820e1658d412121a1da548e0cdd02c","src/test.rs":"d0684718d09789d6f74a21dd1ffaa169ddec7cd2d007ebb559cd1aba50d9301a","src/tests/lib/libteststatic.a":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","src/tests/testanotherlib.pc":"bb4fd942324e6d49ce3becd827aa5c948d1924ca6681904a3695c19b1424eb3c","src/tests/testdata.pc":"43f481e989c03674fed5ef78c6420b3f8d36a2ce001928d86c418d1844acd5e7","src/tests/testlib-2.0.pc":"152eb0c70c14c3d948118408f3d1fd3bb7531b02aa792db85bd957f7db90b45b","src/tests/testlib-3.0.pc":"cd39c2ef88f6828c9291150cc4b624e769abef484674eaebaa4f67979501315f","src/tests/testlib.pc":"75c0d8a5345f65794f583c83e1cf0dbf3385af6e6abea1d61bb86eef707a52db","src/tests/teststaticlib.pc":"77df23f6c7c1d47aff18453b47c87e53ec8a96017546e0a55c8c4d1e13b70134","src/tests/toml-missing-file/no-cargo-toml-here":"6ab4da4b56f15315df6538610cfcd2ba3d0f9a7a8414678ff00ab5a78f7d41fa"},"package":"7b1487aaddaacbc5d60a2a507ba1617c5ca66c57dd0dd07d0c5efd5b693841d4"}
 \ No newline at end of file
-+{"files":{"Cargo.toml":"56ab5070dc9019b039c5e9904bb466b0879c33a7f69dd030b97abab321b7cc04","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"3fe7396637bf9233908f41c6001cfcb00a379225e06e36e508c8b3d7264a8aae","src/lib.rs":"594e5f14180590adc9ea0a8ba1cc35f9a8a260322d08de3037efac3ce1dc729b","src/metadata.rs":"4c8d6ac2c88646a5b97ecb50ed44b65e5b2865cce6897add85b29ca2ae08c2bb","src/test.rs":"1ec48d1e443a0a4ac8035a2b60ff0321543aa2fa998fee72cf7762a936bf5f8c","src/tests/testanotherlib.pc":"bb4fd942324e6d49ce3becd827aa5c948d1924ca6681904a3695c19b1424eb3c","src/tests/testdata.pc":"43f481e989c03674fed5ef78c6420b3f8d36a2ce001928d86c418d1844acd5e7","src/tests/testlib-2.0.pc":"152eb0c70c14c3d948118408f3d1fd3bb7531b02aa792db85bd957f7db90b45b","src/tests/testlib-3.0.pc":"cd39c2ef88f6828c9291150cc4b624e769abef484674eaebaa4f67979501315f","src/tests/testlib.pc":"75c0d8a5345f65794f583c83e1cf0dbf3385af6e6abea1d61bb86eef707a52db","src/tests/toml-missing-file/no-cargo-toml-here":"6ab4da4b56f15315df6538610cfcd2ba3d0f9a7a8414678ff00ab5a78f7d41fa"},"package":"480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6"}
++{"files":{"Cargo.toml":"3923d630403610a69f9943621bd13c1033944124acc96642e194064dc8b0554a","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"3fe7396637bf9233908f41c6001cfcb00a379225e06e36e508c8b3d7264a8aae","src/lib.rs":"b822a9360e8f10930d48a27ce3ddb7e0ba3cbc5fb2054131ea9bdf55b1a45204","src/metadata.rs":"657bc1b77e949e4800f9dd808790ffa535820e1658d412121a1da548e0cdd02c","src/test.rs":"d0684718d09789d6f74a21dd1ffaa169ddec7cd2d007ebb559cd1aba50d9301a","src/tests/lib/libteststatic.a":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","src/tests/testanotherlib.pc":"bb4fd942324e6d49ce3becd827aa5c948d1924ca6681904a3695c19b1424eb3c","src/tests/testdata.pc":"43f481e989c03674fed5ef78c6420b3f8d36a2ce001928d86c418d1844acd5e7","src/tests/testlib-2.0.pc":"152eb0c70c14c3d948118408f3d1fd3bb7531b02aa792db85bd957f7db90b45b","src/tests/testlib-3.0.pc":"cd39c2ef88f6828c9291150cc4b624e769abef484674eaebaa4f67979501315f","src/tests/testlib.pc":"75c0d8a5345f65794f583c83e1cf0dbf3385af6e6abea1d61bb86eef707a52db","src/tests/teststaticlib.pc":"77df23f6c7c1d47aff18453b47c87e53ec8a96017546e0a55c8c4d1e13b70134","src/tests/toml-missing-file/no-cargo-toml-here":"6ab4da4b56f15315df6538610cfcd2ba3d0f9a7a8414678ff00ab5a78f7d41fa"},"package":"7b1487aaddaacbc5d60a2a507ba1617c5ca66c57dd0dd07d0c5efd5b693841d4"}
 diff --git a/vendor/system-deps/src/lib.rs b/vendor/system-deps/src/lib.rs
-index a0d4f00..a666817 100644
+index be919e2..97536a3 100644
 --- a/vendor/system-deps/src/lib.rs
 +++ b/vendor/system-deps/src/lib.rs
-@@ -725,21 +725,7 @@ impl Config {
+@@ -805,21 +805,7 @@ impl Config {
      }
  
      fn check_cfg(&self, cfg: &cfg_expr::Expression) -> Result<bool, Error> {
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg/0001-vendor-system-deps-sort-dependencies-before-using-th.patch b/poky/meta/recipes-gnome/librsvg/librsvg/0001-vendor-system-deps-sort-dependencies-before-using-th.patch
deleted file mode 100644
index 9fe1193..0000000
--- a/poky/meta/recipes-gnome/librsvg/librsvg/0001-vendor-system-deps-sort-dependencies-before-using-th.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 9c20757ef8055535579ca3b7e69834e6917200e2 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Fri, 24 Sep 2021 16:20:40 +0200
-Subject: [PATCH] vendor/system-deps: sort dependencies before using them
-
-Otherwise they come out in non-reproducible order, leaking into
-target binaries.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
-
-
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- vendor/system-deps/.cargo-checksum.json | 3 ++-
- vendor/system-deps/src/lib.rs           | 6 +++---
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/vendor/system-deps/.cargo-checksum.json b/vendor/system-deps/.cargo-checksum.json
-index aae6cb9..73155dc 100644
---- a/vendor/system-deps/.cargo-checksum.json
-+++ b/vendor/system-deps/.cargo-checksum.json
-@@ -1 +1,2 @@
--{"files":{"Cargo.toml":"56ab5070dc9019b039c5e9904bb466b0879c33a7f69dd030b97abab321b7cc04","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"3fe7396637bf9233908f41c6001cfcb00a379225e06e36e508c8b3d7264a8aae","src/lib.rs":"594e5f14180590adc9ea0a8ba1cc35f9a8a260322d08de3037efac3ce1dc729b","src/metadata.rs":"4c8d6ac2c88646a5b97ecb50ed44b65e5b2865cce6897add85b29ca2ae08c2bb","src/test.rs":"1ec48d1e443a0a4ac8035a2b60ff0321543aa2fa998fee72cf7762a936bf5f8c","src/tests/testanotherlib.pc":"bb4fd942324e6d49ce3becd827aa5c948d1924ca6681904a3695c19b1424eb3c","src/tests/testdata.pc":"43f481e989c03674fed5ef78c6420b3f8d36a2ce001928d86c418d1844acd5e7","src/tests/testlib-2.0.pc":"152eb0c70c14c3d948118408f3d1fd3bb7531b02aa792db85bd957f7db90b45b","src/tests/testlib-3.0.pc":"cd39c2ef88f6828c9291150cc4b624e769abef484674eaebaa4f67979501315f","src/tests/testlib.pc":"75c0d8a5345f65794f583c83e1cf0dbf3385af6e6abea1d61bb86eef707a52db","src/tests/toml-missing-file/no-cargo-toml-here":"6ab4da4b56f15315df6538610cfcd2ba3d0f9a7a8414678ff00ab5a78f7d41fa"},"package":"480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6"}
-+{"files":{"Cargo.toml":"56ab5070dc9019b039c5e9904bb466b0879c33a7f69dd030b97abab321b7cc04","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"3fe7396637bf9233908f41c6001cfcb00a379225e06e36e508c8b3d7264a8aae",
-+"src/lib.rs":"d88593afdcb0cc3765bf427913ebb718ac6dcd9d62d1381d9afe44dddef3abbf","src/metadata.rs":"4c8d6ac2c88646a5b97ecb50ed44b65e5b2865cce6897add85b29ca2ae08c2bb","src/test.rs":"1ec48d1e443a0a4ac8035a2b60ff0321543aa2fa998fee72cf7762a936bf5f8c","src/tests/testanotherlib.pc":"bb4fd942324e6d49ce3becd827aa5c948d1924ca6681904a3695c19b1424eb3c","src/tests/testdata.pc":"43f481e989c03674fed5ef78c6420b3f8d36a2ce001928d86c418d1844acd5e7","src/tests/testlib-2.0.pc":"152eb0c70c14c3d948118408f3d1fd3bb7531b02aa792db85bd957f7db90b45b","src/tests/testlib-3.0.pc":"cd39c2ef88f6828c9291150cc4b624e769abef484674eaebaa4f67979501315f","src/tests/testlib.pc":"75c0d8a5345f65794f583c83e1cf0dbf3385af6e6abea1d61bb86eef707a52db","src/tests/toml-missing-file/no-cargo-toml-here":"6ab4da4b56f15315df6538610cfcd2ba3d0f9a7a8414678ff00ab5a78f7d41fa"},"package":"480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6"}
-diff --git a/vendor/system-deps/src/lib.rs b/vendor/system-deps/src/lib.rs
-index af14348..5f0682e 100644
---- a/vendor/system-deps/src/lib.rs
-+++ b/vendor/system-deps/src/lib.rs
-@@ -242,11 +242,11 @@ impl Dependencies {
-         self.libs.get(name)
-     }
- 
--    /// An iterator visiting all system dependencies in arbitrary order.
-+    /// An iterator visiting all system dependencies in sorted (for build reproducibility) order.
-     /// The first element of the tuple is the name of the `toml` key defining the
-     /// dependency in `Cargo.toml`.
-     pub fn iter(&self) -> impl Iterator<Item = (&str, &Library)> {
--        self.libs.iter().map(|(k, v)| (k.as_str(), v))
-+        self.libs.iter().map(|(k, v)| (k.as_str(), v)).sorted_by_key(|x| x.0)
-     }
- 
-     fn aggregate_str<F: Fn(&Library) -> &Vec<String>>(
-@@ -338,7 +338,7 @@ impl Dependencies {
-         let mut flags = BuildFlags::new();
-         let mut include_paths = Vec::new();
- 
--        for (name, lib) in self.libs.iter() {
-+        for (name, lib) in self.libs.iter().sorted_by_key(|x| x.0) {
-             include_paths.extend(lib.include_paths.clone());
- 
-             if lib.source == Source::EnvVariables
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg/0005-Add-base-definitions-for-riscv64-musl-libc-0.2.93.patch b/poky/meta/recipes-gnome/librsvg/librsvg/0005-Add-base-definitions-for-riscv64-musl-libc-0.2.93.patch
deleted file mode 100644
index c141e7a..0000000
--- a/poky/meta/recipes-gnome/librsvg/librsvg/0005-Add-base-definitions-for-riscv64-musl-libc-0.2.93.patch
+++ /dev/null
@@ -1,897 +0,0 @@
-From 4e188d047dee33a19902113a3c90cdf1d8310a9e Mon Sep 17 00:00:00 2001
-From: Ralf Anton Beier <ralf_beier@me.com>
-Date: Sun, 8 Aug 2021 11:05:06 +0200
-Subject: [PATCH 5/8] Add base definitions for riscv64 + musl - libc-0.2.93
-
-https://github.com/rust-lang/libc/pull/1994/commits/030a07761f61f3293d53752e60edbd330a9d718d
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
----
- .../src/unix/linux_like/linux/musl/b64/mod.rs |   3 +
- .../linux_like/linux/musl/b64/riscv64/mod.rs  | 867 ++++++++++++++++++
- 2 files changed, 870 insertions(+)
- create mode 100644 vendor/libc-0.2.93/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
-
---- a/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
-+++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
-@@ -163,6 +163,9 @@ cfg_if! {
-     } else if #[cfg(any(target_arch = "x86_64"))] {
-         mod x86_64;
-         pub use self::x86_64::*;
-+    } else if #[cfg(any(target_arch = "riscv64"))] {
-+        mod riscv64;
-+        pub use self::riscv64::*;
-     } else {
-         // Unknown target_arch
-     }
---- /dev/null
-+++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
-@@ -0,0 +1,867 @@
-+//! RISC-V-specific definitions for 64-bit linux-like values
-+
-+pub type c_char = u8;
-+pub type c_long = i64;
-+pub type c_ulong = u64;
-+pub type wchar_t = ::c_int;
-+
-+pub type nlink_t = ::c_uint;
-+pub type blksize_t = ::c_int;
-+pub type fsblkcnt64_t = ::c_ulong;
-+pub type fsfilcnt64_t = ::c_ulong;
-+pub type suseconds_t = i64;
-+pub type __u64 = ::c_ulonglong;
-+
-+s! {
-+    pub struct pthread_attr_t {
-+        __size: [::c_ulong; 7],
-+    }
-+
-+    pub struct stat {
-+        pub st_dev: ::dev_t,
-+        pub st_ino: ::ino_t,
-+        pub st_mode: ::mode_t,
-+        pub st_nlink: ::nlink_t,
-+        pub st_uid: ::uid_t,
-+        pub st_gid: ::gid_t,
-+        pub st_rdev: ::dev_t,
-+        pub __pad1: ::dev_t,
-+        pub st_size: ::off_t,
-+        pub st_blksize: ::blksize_t,
-+        pub __pad2: ::c_int,
-+        pub st_blocks: ::blkcnt_t,
-+        pub st_atime: ::time_t,
-+        pub st_atime_nsec: ::c_long,
-+        pub st_mtime: ::time_t,
-+        pub st_mtime_nsec: ::c_long,
-+        pub st_ctime: ::time_t,
-+        pub st_ctime_nsec: ::c_long,
-+        __unused: [::c_int; 2usize],
-+    }
-+
-+    pub struct stat64 {
-+        pub st_dev: ::dev_t,
-+        pub st_ino: ::ino64_t,
-+        pub st_mode: ::mode_t,
-+        pub st_nlink: ::nlink_t,
-+        pub st_uid: ::uid_t,
-+        pub st_gid: ::gid_t,
-+        pub st_rdev: ::dev_t,
-+        pub __pad1: ::dev_t,
-+        pub st_size: ::off64_t,
-+        pub st_blksize: ::blksize_t,
-+        pub __pad2: ::c_int,
-+        pub st_blocks: ::blkcnt_t,
-+        pub st_atime: ::time_t,
-+        pub st_atime_nsec: ::c_long,
-+        pub st_mtime: ::time_t,
-+        pub st_mtime_nsec: ::c_long,
-+        pub st_ctime: ::time_t,
-+        pub st_ctime_nsec: ::c_long,
-+        __unused: [::c_int; 2],
-+    }
-+
-+    pub struct statfs {
-+        pub f_type: ::c_long,
-+        pub f_bsize: ::c_long,
-+        pub f_blocks: ::fsblkcnt_t,
-+        pub f_bfree: ::fsblkcnt_t,
-+        pub f_bavail: ::fsblkcnt_t,
-+        pub f_files: ::fsfilcnt_t,
-+        pub f_ffree: ::fsfilcnt_t,
-+        pub f_fsid: ::fsid_t,
-+        pub f_namelen: ::c_long,
-+        pub f_frsize: ::c_long,
-+        pub f_flags: ::c_long,
-+        pub f_spare: [::c_long; 4],
-+    }
-+
-+    pub struct statfs64 {
-+        pub f_type: ::c_long,
-+        pub f_bsize: ::c_long,
-+        pub f_blocks: ::fsblkcnt64_t,
-+        pub f_bfree: ::fsblkcnt64_t,
-+        pub f_bavail: ::fsblkcnt64_t,
-+        pub f_files: ::fsfilcnt64_t,
-+        pub f_ffree: ::fsfilcnt64_t,
-+        pub f_fsid: ::fsid_t,
-+        pub f_namelen: ::c_long,
-+        pub f_frsize: ::c_long,
-+        pub f_flags: ::c_long,
-+        pub f_spare: [::c_long; 4],
-+    }
-+
-+    pub struct statvfs {
-+        pub f_bsize: ::c_ulong,
-+        pub f_frsize: ::c_ulong,
-+        pub f_blocks: ::fsblkcnt_t,
-+        pub f_bfree: ::fsblkcnt_t,
-+        pub f_bavail: ::fsblkcnt_t,
-+        pub f_files: ::fsfilcnt_t,
-+        pub f_ffree: ::fsfilcnt_t,
-+        pub f_favail: ::fsfilcnt_t,
-+        pub f_fsid: ::c_ulong,
-+        pub f_flag: ::c_ulong,
-+        pub f_namemax: ::c_ulong,
-+        pub __f_spare: [::c_int; 6],
-+    }
-+
-+    pub struct statvfs64 {
-+        pub f_bsize: ::c_ulong,
-+        pub f_frsize: ::c_ulong,
-+        pub f_blocks: ::fsblkcnt64_t,
-+        pub f_bfree: ::fsblkcnt64_t,
-+        pub f_bavail: ::fsblkcnt64_t,
-+        pub f_files: ::fsfilcnt64_t,
-+        pub f_ffree: ::fsfilcnt64_t,
-+        pub f_favail: ::fsfilcnt64_t,
-+        pub f_fsid: ::c_ulong,
-+        pub f_flag: ::c_ulong,
-+        pub f_namemax: ::c_ulong,
-+        pub __f_spare: [::c_int; 6],
-+    }
-+
-+    pub struct siginfo_t {
-+        pub si_signo: ::c_int,
-+        pub si_errno: ::c_int,
-+        pub si_code: ::c_int,
-+        #[doc(hidden)]
-+        #[deprecated(
-+            since="0.2.54",
-+            note="Please leave a comment on \
-+                  https://github.com/rust-lang/libc/pull/1316 if you're using \
-+                  this field"
-+        )]
-+        pub _pad: [::c_int; 29],
-+        _align: [u64; 0],
-+    }
-+
-+    pub struct stack_t {
-+        pub ss_sp: *mut ::c_void,
-+        pub ss_flags: ::c_int,
-+        pub ss_size: ::size_t,
-+    }
-+
-+    pub struct sigaction {
-+        pub sa_sigaction: ::sighandler_t,
-+        pub sa_mask: ::sigset_t,
-+        pub sa_flags: ::c_int,
-+        pub sa_restorer: ::Option<unsafe extern "C" fn()>,
-+    }
-+
-+    pub struct ipc_perm {
-+        pub __key: ::key_t,
-+        pub uid: ::uid_t,
-+        pub gid: ::gid_t,
-+        pub cuid: ::uid_t,
-+        pub cgid: ::gid_t,
-+        pub mode: ::c_ushort,
-+        __pad1: ::c_ushort,
-+        pub __seq: ::c_ushort,
-+        __pad2: ::c_ushort,
-+        __unused1: ::c_ulong,
-+        __unused2: ::c_ulong,
-+    }
-+
-+    pub struct shmid_ds {
-+        pub shm_perm: ::ipc_perm,
-+        pub shm_segsz: ::size_t,
-+        pub shm_atime: ::time_t,
-+        pub shm_dtime: ::time_t,
-+        pub shm_ctime: ::time_t,
-+        pub shm_cpid: ::pid_t,
-+        pub shm_lpid: ::pid_t,
-+        pub shm_nattch: ::shmatt_t,
-+        __unused5: ::c_ulong,
-+        __unused6: ::c_ulong,
-+    }
-+
-+    pub struct flock {
-+        pub l_type: ::c_short,
-+        pub l_whence: ::c_short,
-+        pub l_start: ::off_t,
-+        pub l_len: ::off_t,
-+        pub l_pid: ::pid_t,
-+    }
-+
-+    pub struct flock64 {
-+        pub l_type: ::c_short,
-+        pub l_whence: ::c_short,
-+        pub l_start: ::off64_t,
-+        pub l_len: ::off64_t,
-+        pub l_pid: ::pid_t,
-+    }
-+
-+    pub struct ip_mreqn {
-+        pub imr_multiaddr: ::in_addr,
-+        pub imr_address: ::in_addr,
-+        pub imr_ifindex: ::c_int,
-+    }
-+}
-+
-+pub const POSIX_FADV_DONTNEED: ::c_int = 4;
-+pub const POSIX_FADV_NOREUSE: ::c_int = 5;
-+pub const VEOF: usize = 4;
-+pub const RTLD_DEEPBIND: ::c_int = 0x8;
-+pub const RTLD_GLOBAL: ::c_int = 0x100;
-+pub const RTLD_NOLOAD: ::c_int = 0x4;
-+pub const TIOCGSOFTCAR: ::c_ulong = 21529;
-+pub const TIOCSSOFTCAR: ::c_ulong = 21530;
-+pub const TIOCGRS485: ::c_int = 21550;
-+pub const TIOCSRS485: ::c_int = 21551;
-+pub const RLIMIT_RSS: ::__rlimit_resource_t = 5;
-+pub const RLIMIT_AS: ::__rlimit_resource_t = 9;
-+pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8;
-+pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7;
-+pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6;
-+pub const O_APPEND: ::c_int = 1024;
-+pub const O_CREAT: ::c_int = 64;
-+pub const O_EXCL: ::c_int = 128;
-+pub const O_NOCTTY: ::c_int = 256;
-+pub const O_NONBLOCK: ::c_int = 2048;
-+pub const O_SYNC: ::c_int = 1052672;
-+pub const O_RSYNC: ::c_int = 1052672;
-+pub const O_DSYNC: ::c_int = 4096;
-+pub const O_FSYNC: ::c_int = 1052672;
-+pub const O_NOATIME: ::c_int = 262144;
-+pub const O_PATH: ::c_int = 2097152;
-+pub const O_TMPFILE: ::c_int = 4259840;
-+pub const MAP_GROWSDOWN: ::c_int = 256;
-+pub const EDEADLK: ::c_int = 35;
-+pub const ENAMETOOLONG: ::c_int = 36;
-+pub const ENOLCK: ::c_int = 37;
-+pub const ENOSYS: ::c_int = 38;
-+pub const ENOTEMPTY: ::c_int = 39;
-+pub const ELOOP: ::c_int = 40;
-+pub const ENOMSG: ::c_int = 42;
-+pub const EIDRM: ::c_int = 43;
-+pub const ECHRNG: ::c_int = 44;
-+pub const EL2NSYNC: ::c_int = 45;
-+pub const EL3HLT: ::c_int = 46;
-+pub const EL3RST: ::c_int = 47;
-+pub const ELNRNG: ::c_int = 48;
-+pub const EUNATCH: ::c_int = 49;
-+pub const ENOCSI: ::c_int = 50;
-+pub const EL2HLT: ::c_int = 51;
-+pub const EBADE: ::c_int = 52;
-+pub const EBADR: ::c_int = 53;
-+pub const EXFULL: ::c_int = 54;
-+pub const ENOANO: ::c_int = 55;
-+pub const EBADRQC: ::c_int = 56;
-+pub const EBADSLT: ::c_int = 57;
-+pub const EMULTIHOP: ::c_int = 72;
-+pub const EOVERFLOW: ::c_int = 75;
-+pub const ENOTUNIQ: ::c_int = 76;
-+pub const EBADFD: ::c_int = 77;
-+pub const EBADMSG: ::c_int = 74;
-+pub const EREMCHG: ::c_int = 78;
-+pub const ELIBACC: ::c_int = 79;
-+pub const ELIBBAD: ::c_int = 80;
-+pub const ELIBSCN: ::c_int = 81;
-+pub const ELIBMAX: ::c_int = 82;
-+pub const ELIBEXEC: ::c_int = 83;
-+pub const EILSEQ: ::c_int = 84;
-+pub const ERESTART: ::c_int = 85;
-+pub const ESTRPIPE: ::c_int = 86;
-+pub const EUSERS: ::c_int = 87;
-+pub const ENOTSOCK: ::c_int = 88;
-+pub const EDESTADDRREQ: ::c_int = 89;
-+pub const EMSGSIZE: ::c_int = 90;
-+pub const EPROTOTYPE: ::c_int = 91;
-+pub const ENOPROTOOPT: ::c_int = 92;
-+pub const EPROTONOSUPPORT: ::c_int = 93;
-+pub const ESOCKTNOSUPPORT: ::c_int = 94;
-+pub const EOPNOTSUPP: ::c_int = 95;
-+pub const EPFNOSUPPORT: ::c_int = 96;
-+pub const EAFNOSUPPORT: ::c_int = 97;
-+pub const EADDRINUSE: ::c_int = 98;
-+pub const EADDRNOTAVAIL: ::c_int = 99;
-+pub const ENETDOWN: ::c_int = 100;
-+pub const ENETUNREACH: ::c_int = 101;
-+pub const ENETRESET: ::c_int = 102;
-+pub const ECONNABORTED: ::c_int = 103;
-+pub const ECONNRESET: ::c_int = 104;
-+pub const ENOBUFS: ::c_int = 105;
-+pub const EISCONN: ::c_int = 106;
-+pub const ENOTCONN: ::c_int = 107;
-+pub const ESHUTDOWN: ::c_int = 108;
-+pub const ETOOMANYREFS: ::c_int = 109;
-+pub const ETIMEDOUT: ::c_int = 110;
-+pub const ECONNREFUSED: ::c_int = 111;
-+pub const EHOSTDOWN: ::c_int = 112;
-+pub const EHOSTUNREACH: ::c_int = 113;
-+pub const EALREADY: ::c_int = 114;
-+pub const EINPROGRESS: ::c_int = 115;
-+pub const ESTALE: ::c_int = 116;
-+pub const EDQUOT: ::c_int = 122;
-+pub const ENOMEDIUM: ::c_int = 123;
-+pub const EMEDIUMTYPE: ::c_int = 124;
-+pub const ECANCELED: ::c_int = 125;
-+pub const ENOKEY: ::c_int = 126;
-+pub const EKEYEXPIRED: ::c_int = 127;
-+pub const EKEYREVOKED: ::c_int = 128;
-+pub const EKEYREJECTED: ::c_int = 129;
-+pub const EOWNERDEAD: ::c_int = 130;
-+pub const ENOTRECOVERABLE: ::c_int = 131;
-+pub const EHWPOISON: ::c_int = 133;
-+pub const ERFKILL: ::c_int = 132;
-+pub const SOL_SOCKET: ::c_int = 1;
-+pub const SO_REUSEADDR: ::c_int = 2;
-+pub const SO_TYPE: ::c_int = 3;
-+pub const SO_ERROR: ::c_int = 4;
-+pub const SO_DONTROUTE: ::c_int = 5;
-+pub const SO_BROADCAST: ::c_int = 6;
-+pub const SO_SNDBUF: ::c_int = 7;
-+pub const SO_RCVBUF: ::c_int = 8;
-+pub const SO_SNDBUFFORCE: ::c_int = 32;
-+pub const SO_RCVBUFFORCE: ::c_int = 33;
-+pub const SO_KEEPALIVE: ::c_int = 9;
-+pub const SO_OOBINLINE: ::c_int = 10;
-+pub const SO_NO_CHECK: ::c_int = 11;
-+pub const SO_PRIORITY: ::c_int = 12;
-+pub const SO_LINGER: ::c_int = 13;
-+pub const SO_BSDCOMPAT: ::c_int = 14;
-+pub const SO_REUSEPORT: ::c_int = 15;
-+pub const SO_PASSCRED: ::c_int = 16;
-+pub const SO_PEERCRED: ::c_int = 17;
-+pub const SO_RCVLOWAT: ::c_int = 18;
-+pub const SO_SNDLOWAT: ::c_int = 19;
-+pub const SO_RCVTIMEO: ::c_int = 20;
-+pub const SO_SNDTIMEO: ::c_int = 21;
-+pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22;
-+pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23;
-+pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24;
-+pub const SO_BINDTODEVICE: ::c_int = 25;
-+pub const SO_ATTACH_FILTER: ::c_int = 26;
-+pub const SO_DETACH_FILTER: ::c_int = 27;
-+pub const SO_GET_FILTER: ::c_int = 26;
-+pub const SO_PEERNAME: ::c_int = 28;
-+pub const SO_TIMESTAMP: ::c_int = 29;
-+pub const SO_ACCEPTCONN: ::c_int = 30;
-+pub const SO_PEERSEC: ::c_int = 31;
-+pub const SO_PASSSEC: ::c_int = 34;
-+pub const SO_TIMESTAMPNS: ::c_int = 35;
-+pub const SCM_TIMESTAMPNS: ::c_int = 35;
-+pub const SO_MARK: ::c_int = 36;
-+pub const SO_PROTOCOL: ::c_int = 38;
-+pub const SO_DOMAIN: ::c_int = 39;
-+pub const SO_RXQ_OVFL: ::c_int = 40;
-+pub const SO_WIFI_STATUS: ::c_int = 41;
-+pub const SCM_WIFI_STATUS: ::c_int = 41;
-+pub const SO_PEEK_OFF: ::c_int = 42;
-+pub const SO_NOFCS: ::c_int = 43;
-+pub const SO_LOCK_FILTER: ::c_int = 44;
-+pub const SO_SELECT_ERR_QUEUE: ::c_int = 45;
-+pub const SO_BUSY_POLL: ::c_int = 46;
-+pub const SO_MAX_PACING_RATE: ::c_int = 47;
-+pub const SO_BPF_EXTENSIONS: ::c_int = 48;
-+pub const SO_INCOMING_CPU: ::c_int = 49;
-+pub const SO_ATTACH_BPF: ::c_int = 50;
-+pub const SO_DETACH_BPF: ::c_int = 27;
-+pub const SOCK_STREAM: ::c_int = 1;
-+pub const SOCK_DGRAM: ::c_int = 2;
-+pub const SA_ONSTACK: ::c_int = 134217728;
-+pub const SA_SIGINFO: ::c_int = 4;
-+pub const SA_NOCLDWAIT: ::c_int = 2;
-+pub const SIGTTIN: ::c_int = 21;
-+pub const SIGTTOU: ::c_int = 22;
-+pub const SIGXCPU: ::c_int = 24;
-+pub const SIGXFSZ: ::c_int = 25;
-+pub const SIGVTALRM: ::c_int = 26;
-+pub const SIGPROF: ::c_int = 27;
-+pub const SIGWINCH: ::c_int = 28;
-+pub const SIGCHLD: ::c_int = 17;
-+pub const SIGBUS: ::c_int = 7;
-+pub const SIGUSR1: ::c_int = 10;
-+pub const SIGUSR2: ::c_int = 12;
-+pub const SIGCONT: ::c_int = 18;
-+pub const SIGSTOP: ::c_int = 19;
-+pub const SIGTSTP: ::c_int = 20;
-+pub const SIGURG: ::c_int = 23;
-+pub const SIGIO: ::c_int = 29;
-+pub const SIGSYS: ::c_int = 31;
-+pub const SIGSTKFLT: ::c_int = 16;
-+pub const SIGPOLL: ::c_int = 29;
-+pub const SIGPWR: ::c_int = 30;
-+pub const SIG_SETMASK: ::c_int = 2;
-+pub const SIG_BLOCK: ::c_int = 0;
-+pub const SIG_UNBLOCK: ::c_int = 1;
-+pub const POLLWRNORM: ::c_short = 256;
-+pub const POLLWRBAND: ::c_short = 512;
-+pub const O_ASYNC: ::c_int = 8192;
-+pub const O_NDELAY: ::c_int = 2048;
-+pub const PTRACE_DETACH: ::c_uint = 17;
-+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_SETLK: ::c_int = 6;
-+pub const F_SETLKW: ::c_int = 7;
-+pub const F_RDLCK: ::c_int = 0;
-+pub const F_WRLCK: ::c_int = 1;
-+pub const F_UNLCK: ::c_int = 2;
-+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 SFD_NONBLOCK: ::c_int = 2048;
-+pub const TCSANOW: ::c_int = 0;
-+pub const TCSADRAIN: ::c_int = 1;
-+pub const TCSAFLUSH: ::c_int = 2;
-+pub const TIOCLINUX: ::c_ulong = 21532;
-+pub const TIOCGSERIAL: ::c_ulong = 21534;
-+pub const TIOCEXCL: ::c_ulong = 21516;
-+pub const TIOCNXCL: ::c_ulong = 21517;
-+pub const TIOCSCTTY: ::c_ulong = 21518;
-+pub const TIOCSTI: ::c_ulong = 21522;
-+pub const TIOCMGET: ::c_ulong = 21525;
-+pub const TIOCMBIS: ::c_ulong = 21526;
-+pub const TIOCMBIC: ::c_ulong = 21527;
-+pub const TIOCMSET: ::c_ulong = 21528;
-+pub const TIOCCONS: ::c_ulong = 21533;
-+pub const TIOCM_ST: ::c_int = 8;
-+pub const TIOCM_SR: ::c_int = 16;
-+pub const TIOCM_CTS: ::c_int = 32;
-+pub const TIOCM_CAR: ::c_int = 64;
-+pub const TIOCM_RNG: ::c_int = 128;
-+pub const TIOCM_DSR: ::c_int = 256;
-+pub const SFD_CLOEXEC: ::c_int = 524288;
-+pub const NCCS: usize = 32;
-+pub const O_TRUNC: ::c_int = 512;
-+pub const O_CLOEXEC: ::c_int = 524288;
-+pub const EBFONT: ::c_int = 59;
-+pub const ENOSTR: ::c_int = 60;
-+pub const ENODATA: ::c_int = 61;
-+pub const ETIME: ::c_int = 62;
-+pub const ENOSR: ::c_int = 63;
-+pub const ENONET: ::c_int = 64;
-+pub const ENOPKG: ::c_int = 65;
-+pub const EREMOTE: ::c_int = 66;
-+pub const ENOLINK: ::c_int = 67;
-+pub const EADV: ::c_int = 68;
-+pub const ESRMNT: ::c_int = 69;
-+pub const ECOMM: ::c_int = 70;
-+pub const EPROTO: ::c_int = 71;
-+pub const EDOTDOT: ::c_int = 73;
-+pub const SA_NODEFER: ::c_int = 1073741824;
-+pub const SA_RESETHAND: ::c_int = -2147483648;
-+pub const SA_RESTART: ::c_int = 268435456;
-+pub const SA_NOCLDSTOP: ::c_int = 1;
-+pub const EPOLL_CLOEXEC: ::c_int = 524288;
-+pub const EFD_CLOEXEC: ::c_int = 524288;
-+pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
-+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_NOFOLLOW: ::c_int = 131072;
-+pub const MAP_HUGETLB: ::c_int = 262144;
-+pub const MAP_LOCKED: ::c_int = 8192;
-+pub const MAP_NORESERVE: ::c_int = 16384;
-+pub const MAP_ANON: ::c_int = 32;
-+pub const MAP_ANONYMOUS: ::c_int = 32;
-+pub const MAP_DENYWRITE: ::c_int = 2048;
-+pub const MAP_EXECUTABLE: ::c_int = 4096;
-+pub const MAP_POPULATE: ::c_int = 32768;
-+pub const MAP_NONBLOCK: ::c_int = 65536;
-+pub const MAP_STACK: ::c_int = 131072;
-+pub const MAP_SYNC : ::c_int = 0x080000;
-+pub const EDEADLOCK: ::c_int = 35;
-+pub const EUCLEAN: ::c_int = 117;
-+pub const ENOTNAM: ::c_int = 118;
-+pub const ENAVAIL: ::c_int = 119;
-+pub const EISNAM: ::c_int = 120;
-+pub const EREMOTEIO: ::c_int = 121;
-+pub const FIOCLEX: ::c_ulong = 21585;
-+pub const FIONCLEX: ::c_ulong = 21584;
-+pub const FIONBIO: ::c_ulong = 21537;
-+pub const MCL_CURRENT: ::c_int = 1;
-+pub const MCL_FUTURE: ::c_int = 2;
-+pub const SIGSTKSZ: ::size_t = 8192;
-+pub const MINSIGSTKSZ: ::size_t = 2048;
-+pub const CBAUD: ::tcflag_t = 4111;
-+pub const TAB1: ::tcflag_t = 2048;
-+pub const TAB2: ::tcflag_t = 4096;
-+pub const TAB3: ::tcflag_t = 6144;
-+pub const CR1: ::tcflag_t = 512;
-+pub const CR2: ::tcflag_t = 1024;
-+pub const CR3: ::tcflag_t = 1536;
-+pub const FF1: ::tcflag_t = 32768;
-+pub const BS1: ::tcflag_t = 8192;
-+pub const VT1: ::tcflag_t = 16384;
-+pub const VWERASE: usize = 14;
-+pub const VREPRINT: usize = 12;
-+pub const VSUSP: usize = 10;
-+pub const VSTART: usize = 8;
-+pub const VSTOP: usize = 9;
-+pub const VDISCARD: usize = 13;
-+pub const VTIME: usize = 5;
-+pub const IXON: ::tcflag_t = 1024;
-+pub const IXOFF: ::tcflag_t = 4096;
-+pub const ONLCR: ::tcflag_t = 4;
-+pub const CSIZE: ::tcflag_t = 48;
-+pub const CS6: ::tcflag_t = 16;
-+pub const CS7: ::tcflag_t = 32;
-+pub const CS8: ::tcflag_t = 48;
-+pub const CSTOPB: ::tcflag_t = 64;
-+pub const CREAD: ::tcflag_t = 128;
-+pub const PARENB: ::tcflag_t = 256;
-+pub const PARODD: ::tcflag_t = 512;
-+pub const HUPCL: ::tcflag_t = 1024;
-+pub const CLOCAL: ::tcflag_t = 2048;
-+pub const ECHOKE: ::tcflag_t = 2048;
-+pub const ECHOE: ::tcflag_t = 16;
-+pub const ECHOK: ::tcflag_t = 32;
-+pub const ECHONL: ::tcflag_t = 64;
-+pub const ECHOPRT: ::tcflag_t = 1024;
-+pub const ECHOCTL: ::tcflag_t = 512;
-+pub const ISIG: ::tcflag_t = 1;
-+pub const ICANON: ::tcflag_t = 2;
-+pub const PENDIN: ::tcflag_t = 16384;
-+pub const NOFLSH: ::tcflag_t = 128;
-+pub const CIBAUD: ::tcflag_t = 269418496;
-+pub const CBAUDEX: ::tcflag_t = 4096;
-+pub const VSWTC: usize = 7;
-+pub const OLCUC: ::tcflag_t = 2;
-+pub const NLDLY: ::tcflag_t = 256;
-+pub const CRDLY: ::tcflag_t = 1536;
-+pub const TABDLY: ::tcflag_t = 6144;
-+pub const BSDLY: ::tcflag_t = 8192;
-+pub const FFDLY: ::tcflag_t = 32768;
-+pub const VTDLY: ::tcflag_t = 16384;
-+pub const XTABS: ::tcflag_t = 6144;
-+pub const B0: ::speed_t = 0;
-+pub const B50: ::speed_t = 1;
-+pub const B75: ::speed_t = 2;
-+pub const B110: ::speed_t = 3;
-+pub const B134: ::speed_t = 4;
-+pub const B150: ::speed_t = 5;
-+pub const B200: ::speed_t = 6;
-+pub const B300: ::speed_t = 7;
-+pub const B600: ::speed_t = 8;
-+pub const B1200: ::speed_t = 9;
-+pub const B1800: ::speed_t = 10;
-+pub const B2400: ::speed_t = 11;
-+pub const B4800: ::speed_t = 12;
-+pub const B9600: ::speed_t = 13;
-+pub const B19200: ::speed_t = 14;
-+pub const B38400: ::speed_t = 15;
-+pub const EXTA: ::speed_t = 14;
-+pub const EXTB: ::speed_t = 15;
-+pub const B57600: ::speed_t = 4097;
-+pub const B115200: ::speed_t = 4098;
-+pub const B230400: ::speed_t = 4099;
-+pub const B460800: ::speed_t = 4100;
-+pub const B500000: ::speed_t = 4101;
-+pub const B576000: ::speed_t = 4102;
-+pub const B921600: ::speed_t = 4103;
-+pub const B1000000: ::speed_t = 4104;
-+pub const B1152000: ::speed_t = 4105;
-+pub const B1500000: ::speed_t = 4106;
-+pub const B2000000: ::speed_t = 4107;
-+pub const B2500000: ::speed_t = 4108;
-+pub const B3000000: ::speed_t = 4109;
-+pub const B3500000: ::speed_t = 4110;
-+pub const B4000000: ::speed_t = 4111;
-+pub const VEOL: usize = 11;
-+pub const VEOL2: usize = 16;
-+pub const VMIN: usize = 6;
-+pub const IEXTEN: ::tcflag_t = 32768;
-+pub const TOSTOP: ::tcflag_t = 256;
-+pub const FLUSHO: ::tcflag_t = 4096;
-+pub const EXTPROC: ::tcflag_t = 65536;
-+pub const TCGETS: ::c_ulong = 21505;
-+pub const TCSETS: ::c_ulong = 21506;
-+pub const TCSETSW: ::c_ulong = 21507;
-+pub const TCSETSF: ::c_ulong = 21508;
-+pub const TCGETA: ::c_ulong = 21509;
-+pub const TCSETA: ::c_ulong = 21510;
-+pub const TCSETAW: ::c_ulong = 21511;
-+pub const TCSETAF: ::c_ulong = 21512;
-+pub const TCSBRK: ::c_ulong = 21513;
-+pub const TCXONC: ::c_ulong = 21514;
-+pub const TCFLSH: ::c_ulong = 21515;
-+pub const TIOCINQ: ::c_ulong = 21531;
-+pub const TIOCGPGRP: ::c_ulong = 21519;
-+pub const TIOCSPGRP: ::c_ulong = 21520;
-+pub const TIOCOUTQ: ::c_ulong = 21521;
-+pub const TIOCGWINSZ: ::c_ulong = 21523;
-+pub const TIOCSWINSZ: ::c_ulong = 21524;
-+pub const FIONREAD: ::c_ulong = 21531;
-+pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
-+pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
-+pub const SYS_read: ::c_long = 63;
-+pub const SYS_write: ::c_long = 64;
-+pub const SYS_close: ::c_long = 57;
-+pub const SYS_fstat: ::c_long = 80;
-+pub const SYS_lseek: ::c_long = 62;
-+pub const SYS_mmap: ::c_long = 222;
-+pub const SYS_mprotect: ::c_long = 226;
-+pub const SYS_munmap: ::c_long = 215;
-+pub const SYS_brk: ::c_long = 214;
-+pub const SYS_rt_sigaction: ::c_long = 134;
-+pub const SYS_rt_sigprocmask: ::c_long = 135;
-+pub const SYS_rt_sigreturn: ::c_long = 139;
-+pub const SYS_ioctl: ::c_long = 29;
-+pub const SYS_pread64: ::c_long = 67;
-+pub const SYS_pwrite64: ::c_long = 68;
-+pub const SYS_readv: ::c_long = 65;
-+pub const SYS_writev: ::c_long = 66;
-+pub const SYS_sched_yield: ::c_long = 124;
-+pub const SYS_mremap: ::c_long = 216;
-+pub const SYS_msync: ::c_long = 227;
-+pub const SYS_mincore: ::c_long = 232;
-+pub const SYS_madvise: ::c_long = 233;
-+pub const SYS_shmget: ::c_long = 194;
-+pub const SYS_shmat: ::c_long = 196;
-+pub const SYS_shmctl: ::c_long = 195;
-+pub const SYS_dup: ::c_long = 23;
-+pub const SYS_nanosleep: ::c_long = 101;
-+pub const SYS_getitimer: ::c_long = 102;
-+pub const SYS_setitimer: ::c_long = 103;
-+pub const SYS_getpid: ::c_long = 172;
-+pub const SYS_sendfile: ::c_long = 71;
-+pub const SYS_socket: ::c_long = 198;
-+pub const SYS_connect: ::c_long = 203;
-+pub const SYS_accept: ::c_long = 202;
-+pub const SYS_sendto: ::c_long = 206;
-+pub const SYS_recvfrom: ::c_long = 207;
-+pub const SYS_sendmsg: ::c_long = 211;
-+pub const SYS_recvmsg: ::c_long = 212;
-+pub const SYS_shutdown: ::c_long = 210;
-+pub const SYS_bind: ::c_long = 200;
-+pub const SYS_listen: ::c_long = 201;
-+pub const SYS_getsockname: ::c_long = 204;
-+pub const SYS_getpeername: ::c_long = 205;
-+pub const SYS_socketpair: ::c_long = 199;
-+pub const SYS_setsockopt: ::c_long = 208;
-+pub const SYS_getsockopt: ::c_long = 209;
-+pub const SYS_clone: ::c_long = 220;
-+pub const SYS_execve: ::c_long = 221;
-+pub const SYS_exit: ::c_long = 93;
-+pub const SYS_wait4: ::c_long = 260;
-+pub const SYS_kill: ::c_long = 129;
-+pub const SYS_uname: ::c_long = 160;
-+pub const SYS_semget: ::c_long = 190;
-+pub const SYS_semop: ::c_long = 193;
-+pub const SYS_semctl: ::c_long = 191;
-+pub const SYS_shmdt: ::c_long = 197;
-+pub const SYS_msgget: ::c_long = 186;
-+pub const SYS_msgsnd: ::c_long = 189;
-+pub const SYS_msgrcv: ::c_long = 188;
-+pub const SYS_msgctl: ::c_long = 187;
-+pub const SYS_fcntl: ::c_long = 25;
-+pub const SYS_flock: ::c_long = 32;
-+pub const SYS_fsync: ::c_long = 82;
-+pub const SYS_fdatasync: ::c_long = 83;
-+pub const SYS_truncate: ::c_long = 45;
-+pub const SYS_ftruncate: ::c_long = 46;
-+pub const SYS_getcwd: ::c_long = 17;
-+pub const SYS_chdir: ::c_long = 49;
-+pub const SYS_fchdir: ::c_long = 50;
-+pub const SYS_fchmod: ::c_long = 52;
-+pub const SYS_fchown: ::c_long = 55;
-+pub const SYS_umask: ::c_long = 166;
-+pub const SYS_gettimeofday: ::c_long = 169;
-+pub const SYS_getrlimit: ::c_long = 163;
-+pub const SYS_getrusage: ::c_long = 165;
-+pub const SYS_sysinfo: ::c_long = 179;
-+pub const SYS_times: ::c_long = 153;
-+pub const SYS_ptrace: ::c_long = 117;
-+pub const SYS_getuid: ::c_long = 174;
-+pub const SYS_syslog: ::c_long = 116;
-+pub const SYS_getgid: ::c_long = 176;
-+pub const SYS_setuid: ::c_long = 146;
-+pub const SYS_setgid: ::c_long = 144;
-+pub const SYS_geteuid: ::c_long = 175;
-+pub const SYS_getegid: ::c_long = 177;
-+pub const SYS_setpgid: ::c_long = 154;
-+pub const SYS_getppid: ::c_long = 173;
-+pub const SYS_setsid: ::c_long = 157;
-+pub const SYS_setreuid: ::c_long = 145;
-+pub const SYS_setregid: ::c_long = 143;
-+pub const SYS_getgroups: ::c_long = 158;
-+pub const SYS_setgroups: ::c_long = 159;
-+pub const SYS_setresuid: ::c_long = 147;
-+pub const SYS_getresuid: ::c_long = 148;
-+pub const SYS_setresgid: ::c_long = 149;
-+pub const SYS_getresgid: ::c_long = 150;
-+pub const SYS_getpgid: ::c_long = 155;
-+pub const SYS_setfsuid: ::c_long = 151;
-+pub const SYS_setfsgid: ::c_long = 152;
-+pub const SYS_getsid: ::c_long = 156;
-+pub const SYS_capget: ::c_long = 90;
-+pub const SYS_capset: ::c_long = 91;
-+pub const SYS_rt_sigpending: ::c_long = 136;
-+pub const SYS_rt_sigtimedwait: ::c_long = 137;
-+pub const SYS_rt_sigqueueinfo: ::c_long = 138;
-+pub const SYS_rt_sigsuspend: ::c_long = 133;
-+pub const SYS_sigaltstack: ::c_long = 132;
-+pub const SYS_personality: ::c_long = 92;
-+pub const SYS_statfs: ::c_long = 43;
-+pub const SYS_fstatfs: ::c_long = 44;
-+pub const SYS_getpriority: ::c_long = 141;
-+pub const SYS_setpriority: ::c_long = 140;
-+pub const SYS_sched_setparam: ::c_long = 118;
-+pub const SYS_sched_getparam: ::c_long = 121;
-+pub const SYS_sched_setscheduler: ::c_long = 119;
-+pub const SYS_sched_getscheduler: ::c_long = 120;
-+pub const SYS_sched_get_priority_max: ::c_long = 125;
-+pub const SYS_sched_get_priority_min: ::c_long = 126;
-+pub const SYS_sched_rr_get_interval: ::c_long = 127;
-+pub const SYS_mlock: ::c_long = 228;
-+pub const SYS_munlock: ::c_long = 229;
-+pub const SYS_mlockall: ::c_long = 230;
-+pub const SYS_munlockall: ::c_long = 231;
-+pub const SYS_vhangup: ::c_long = 58;
-+pub const SYS_pivot_root: ::c_long = 41;
-+pub const SYS_prctl: ::c_long = 167;
-+pub const SYS_adjtimex: ::c_long = 171;
-+pub const SYS_setrlimit: ::c_long = 164;
-+pub const SYS_chroot: ::c_long = 51;
-+pub const SYS_sync: ::c_long = 81;
-+pub const SYS_acct: ::c_long = 89;
-+pub const SYS_settimeofday: ::c_long = 170;
-+pub const SYS_mount: ::c_long = 40;
-+pub const SYS_umount2: ::c_long = 39;
-+pub const SYS_swapon: ::c_long = 224;
-+pub const SYS_swapoff: ::c_long = 225;
-+pub const SYS_reboot: ::c_long = 142;
-+pub const SYS_sethostname: ::c_long = 161;
-+pub const SYS_setdomainname: ::c_long = 162;
-+pub const SYS_init_module: ::c_long = 105;
-+pub const SYS_delete_module: ::c_long = 106;
-+pub const SYS_quotactl: ::c_long = 60;
-+pub const SYS_nfsservctl: ::c_long = 42;
-+pub const SYS_gettid: ::c_long = 178;
-+pub const SYS_readahead: ::c_long = 213;
-+pub const SYS_setxattr: ::c_long = 5;
-+pub const SYS_lsetxattr: ::c_long = 6;
-+pub const SYS_fsetxattr: ::c_long = 7;
-+pub const SYS_getxattr: ::c_long = 8;
-+pub const SYS_lgetxattr: ::c_long = 9;
-+pub const SYS_fgetxattr: ::c_long = 10;
-+pub const SYS_listxattr: ::c_long = 11;
-+pub const SYS_llistxattr: ::c_long = 12;
-+pub const SYS_flistxattr: ::c_long = 13;
-+pub const SYS_removexattr: ::c_long = 14;
-+pub const SYS_lremovexattr: ::c_long = 15;
-+pub const SYS_fremovexattr: ::c_long = 16;
-+pub const SYS_tkill: ::c_long = 130;
-+pub const SYS_futex: ::c_long = 98;
-+pub const SYS_sched_setaffinity: ::c_long = 122;
-+pub const SYS_sched_getaffinity: ::c_long = 123;
-+pub const SYS_io_setup: ::c_long = 0;
-+pub const SYS_io_destroy: ::c_long = 1;
-+pub const SYS_io_getevents: ::c_long = 4;
-+pub const SYS_io_submit: ::c_long = 2;
-+pub const SYS_io_cancel: ::c_long = 3;
-+pub const SYS_lookup_dcookie: ::c_long = 18;
-+pub const SYS_remap_file_pages: ::c_long = 234;
-+pub const SYS_getdents64: ::c_long = 61;
-+pub const SYS_set_tid_address: ::c_long = 96;
-+pub const SYS_restart_syscall: ::c_long = 128;
-+pub const SYS_semtimedop: ::c_long = 192;
-+pub const SYS_fadvise64: ::c_long = 223;
-+pub const SYS_timer_create: ::c_long = 107;
-+pub const SYS_timer_settime: ::c_long = 110;
-+pub const SYS_timer_gettime: ::c_long = 108;
-+pub const SYS_timer_getoverrun: ::c_long = 109;
-+pub const SYS_timer_delete: ::c_long = 111;
-+pub const SYS_clock_settime: ::c_long = 112;
-+pub const SYS_clock_gettime: ::c_long = 113;
-+pub const SYS_clock_getres: ::c_long = 114;
-+pub const SYS_clock_nanosleep: ::c_long = 115;
-+pub const SYS_exit_group: ::c_long = 94;
-+pub const SYS_epoll_ctl: ::c_long = 21;
-+pub const SYS_tgkill: ::c_long = 131;
-+pub const SYS_mbind: ::c_long = 235;
-+pub const SYS_set_mempolicy: ::c_long = 237;
-+pub const SYS_get_mempolicy: ::c_long = 236;
-+pub const SYS_mq_open: ::c_long = 180;
-+pub const SYS_mq_unlink: ::c_long = 181;
-+pub const SYS_mq_timedsend: ::c_long = 182;
-+pub const SYS_mq_timedreceive: ::c_long = 183;
-+pub const SYS_mq_notify: ::c_long = 184;
-+pub const SYS_mq_getsetattr: ::c_long = 185;
-+pub const SYS_kexec_load: ::c_long = 104;
-+pub const SYS_waitid: ::c_long = 95;
-+pub const SYS_add_key: ::c_long = 217;
-+pub const SYS_request_key: ::c_long = 218;
-+pub const SYS_keyctl: ::c_long = 219;
-+pub const SYS_ioprio_set: ::c_long = 30;
-+pub const SYS_ioprio_get: ::c_long = 31;
-+pub const SYS_inotify_add_watch: ::c_long = 27;
-+pub const SYS_inotify_rm_watch: ::c_long = 28;
-+pub const SYS_migrate_pages: ::c_long = 238;
-+pub const SYS_openat: ::c_long = 56;
-+pub const SYS_mkdirat: ::c_long = 34;
-+pub const SYS_mknodat: ::c_long = 33;
-+pub const SYS_fchownat: ::c_long = 54;
-+pub const SYS_newfstatat: ::c_long = 79;
-+pub const SYS_unlinkat: ::c_long = 35;
-+pub const SYS_linkat: ::c_long = 37;
-+pub const SYS_symlinkat: ::c_long = 36;
-+pub const SYS_readlinkat: ::c_long = 78;
-+pub const SYS_fchmodat: ::c_long = 53;
-+pub const SYS_faccessat: ::c_long = 48;
-+pub const SYS_pselect6: ::c_long = 72;
-+pub const SYS_ppoll: ::c_long = 73;
-+pub const SYS_unshare: ::c_long = 97;
-+pub const SYS_set_robust_list: ::c_long = 99;
-+pub const SYS_get_robust_list: ::c_long = 100;
-+pub const SYS_splice: ::c_long = 76;
-+pub const SYS_tee: ::c_long = 77;
-+pub const SYS_sync_file_range: ::c_long = 84;
-+pub const SYS_vmsplice: ::c_long = 75;
-+pub const SYS_move_pages: ::c_long = 239;
-+pub const SYS_utimensat: ::c_long = 88;
-+pub const SYS_epoll_pwait: ::c_long = 22;
-+pub const SYS_timerfd_create: ::c_long = 85;
-+pub const SYS_fallocate: ::c_long = 47;
-+pub const SYS_timerfd_settime: ::c_long = 86;
-+pub const SYS_timerfd_gettime: ::c_long = 87;
-+pub const SYS_accept4: ::c_long = 242;
-+pub const SYS_signalfd4: ::c_long = 74;
-+pub const SYS_eventfd2: ::c_long = 19;
-+pub const SYS_epoll_create1: ::c_long = 20;
-+pub const SYS_dup3: ::c_long = 24;
-+pub const SYS_pipe2: ::c_long = 59;
-+pub const SYS_inotify_init1: ::c_long = 26;
-+pub const SYS_preadv: ::c_long = 69;
-+pub const SYS_pwritev: ::c_long = 70;
-+pub const SYS_rt_tgsigqueueinfo: ::c_long = 240;
-+pub const SYS_perf_event_open: ::c_long = 241;
-+pub const SYS_recvmmsg: ::c_long = 243;
-+pub const SYS_fanotify_init: ::c_long = 262;
-+pub const SYS_fanotify_mark: ::c_long = 263;
-+pub const SYS_prlimit64: ::c_long = 261;
-+pub const SYS_name_to_handle_at: ::c_long = 264;
-+pub const SYS_open_by_handle_at: ::c_long = 265;
-+pub const SYS_clock_adjtime: ::c_long = 266;
-+pub const SYS_syncfs: ::c_long = 267;
-+pub const SYS_sendmmsg: ::c_long = 269;
-+pub const SYS_setns: ::c_long = 268;
-+pub const SYS_getcpu: ::c_long = 168;
-+pub const SYS_process_vm_readv: ::c_long = 270;
-+pub const SYS_process_vm_writev: ::c_long = 271;
-+pub const SYS_kcmp: ::c_long = 272;
-+pub const SYS_finit_module: ::c_long = 273;
-+pub const SYS_sched_setattr: ::c_long = 274;
-+pub const SYS_sched_getattr: ::c_long = 275;
-+pub const SYS_renameat2: ::c_long = 276;
-+pub const SYS_seccomp: ::c_long = 277;
-+pub const SYS_getrandom: ::c_long = 278;
-+pub const SYS_memfd_create: ::c_long = 279;
-+pub const SYS_bpf: ::c_long = 280;
-+pub const SYS_execveat: ::c_long = 281;
-+pub const SYS_userfaultfd: ::c_long = 282;
-+pub const SYS_membarrier: ::c_long = 283;
-+pub const SYS_mlock2: ::c_long = 284;
-+pub const SYS_copy_file_range: ::c_long = 285;
-+pub const SYS_preadv2: ::c_long = 286;
-+pub const SYS_pwritev2: ::c_long = 287;
-+pub const SYS_pkey_mprotect: ::c_long = 288;
-+pub const SYS_pkey_alloc: ::c_long = 289;
-+pub const SYS_pkey_free: ::c_long = 290;
-+pub const SYS_statx: ::c_long = 291;
-+pub const SYS_pidfd_open: ::c_long = 434;
-+pub const SYS_clone3: ::c_long = 435;
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg/0006-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set-libc-.patch b/poky/meta/recipes-gnome/librsvg/librsvg/0006-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set-libc-.patch
deleted file mode 100644
index e993c45..0000000
--- a/poky/meta/recipes-gnome/librsvg/librsvg/0006-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set-libc-.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 4319893ebb7fca8bbd2bffc4bddb8d3ecdc08cc2 Mon Sep 17 00:00:00 2001
-From: Ralf Anton Beier <ralf_beier@me.com>
-Date: Sun, 8 Aug 2021 11:07:21 +0200
-Subject: [PATCH 6/8] FIXUP: linux/musl/mod.rs: add riscv64 to b64 set -
- libc-0.2.93
-
-https://github.com/rust-lang/libc/pull/1994/commits/30070c822be2ef399b2ba38cdc1d72ac694d65a3
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
----
- vendor/libc-0.2.93/src/unix/linux_like/linux/musl/mod.rs | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
-+++ b/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
-@@ -800,7 +800,8 @@ cfg_if! {
-                  target_arch = "aarch64",
-                  target_arch = "mips64",
-                  target_arch = "powerpc64",
--                 target_arch = "s390x"))] {
-+                 target_arch = "s390x",
-+                 target_arch = "riscv64"))] {
-         mod b64;
-         pub use self::b64::*;
-     } else if #[cfg(any(target_arch = "x86",
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg/0007-FIXUP-Correct-definitions-to-match-musl-libc-0.2.93.patch b/poky/meta/recipes-gnome/librsvg/librsvg/0007-FIXUP-Correct-definitions-to-match-musl-libc-0.2.93.patch
deleted file mode 100644
index 77e6b0a..0000000
--- a/poky/meta/recipes-gnome/librsvg/librsvg/0007-FIXUP-Correct-definitions-to-match-musl-libc-0.2.93.patch
+++ /dev/null
@@ -1,736 +0,0 @@
-From 9d240d05c6e6620f36e4ddbcbcb5862fb3269d9f Mon Sep 17 00:00:00 2001
-From: Ralf Anton Beier <ralf_beier@me.com>
-Date: Sun, 8 Aug 2021 11:09:17 +0200
-Subject: [PATCH 7/8] FIXUP Correct definitions to match musl - libc-0.2.93
-
-https://github.com/rust-lang/libc/pull/1994/commits/5f6a4d9745c79c81be63c708515ab116786554a3
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
----
- .../linux_like/linux/musl/b64/riscv64/mod.rs  | 708 ++++++++----------
- 1 file changed, 311 insertions(+), 397 deletions(-)
-
---- a/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
-+++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
-@@ -191,403 +191,8 @@ s! {
-         pub l_len: ::off64_t,
-         pub l_pid: ::pid_t,
-     }
--
--    pub struct ip_mreqn {
--        pub imr_multiaddr: ::in_addr,
--        pub imr_address: ::in_addr,
--        pub imr_ifindex: ::c_int,
--    }
- }
- 
--pub const POSIX_FADV_DONTNEED: ::c_int = 4;
--pub const POSIX_FADV_NOREUSE: ::c_int = 5;
--pub const VEOF: usize = 4;
--pub const RTLD_DEEPBIND: ::c_int = 0x8;
--pub const RTLD_GLOBAL: ::c_int = 0x100;
--pub const RTLD_NOLOAD: ::c_int = 0x4;
--pub const TIOCGSOFTCAR: ::c_ulong = 21529;
--pub const TIOCSSOFTCAR: ::c_ulong = 21530;
--pub const TIOCGRS485: ::c_int = 21550;
--pub const TIOCSRS485: ::c_int = 21551;
--pub const RLIMIT_RSS: ::__rlimit_resource_t = 5;
--pub const RLIMIT_AS: ::__rlimit_resource_t = 9;
--pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8;
--pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7;
--pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6;
--pub const O_APPEND: ::c_int = 1024;
--pub const O_CREAT: ::c_int = 64;
--pub const O_EXCL: ::c_int = 128;
--pub const O_NOCTTY: ::c_int = 256;
--pub const O_NONBLOCK: ::c_int = 2048;
--pub const O_SYNC: ::c_int = 1052672;
--pub const O_RSYNC: ::c_int = 1052672;
--pub const O_DSYNC: ::c_int = 4096;
--pub const O_FSYNC: ::c_int = 1052672;
--pub const O_NOATIME: ::c_int = 262144;
--pub const O_PATH: ::c_int = 2097152;
--pub const O_TMPFILE: ::c_int = 4259840;
--pub const MAP_GROWSDOWN: ::c_int = 256;
--pub const EDEADLK: ::c_int = 35;
--pub const ENAMETOOLONG: ::c_int = 36;
--pub const ENOLCK: ::c_int = 37;
--pub const ENOSYS: ::c_int = 38;
--pub const ENOTEMPTY: ::c_int = 39;
--pub const ELOOP: ::c_int = 40;
--pub const ENOMSG: ::c_int = 42;
--pub const EIDRM: ::c_int = 43;
--pub const ECHRNG: ::c_int = 44;
--pub const EL2NSYNC: ::c_int = 45;
--pub const EL3HLT: ::c_int = 46;
--pub const EL3RST: ::c_int = 47;
--pub const ELNRNG: ::c_int = 48;
--pub const EUNATCH: ::c_int = 49;
--pub const ENOCSI: ::c_int = 50;
--pub const EL2HLT: ::c_int = 51;
--pub const EBADE: ::c_int = 52;
--pub const EBADR: ::c_int = 53;
--pub const EXFULL: ::c_int = 54;
--pub const ENOANO: ::c_int = 55;
--pub const EBADRQC: ::c_int = 56;
--pub const EBADSLT: ::c_int = 57;
--pub const EMULTIHOP: ::c_int = 72;
--pub const EOVERFLOW: ::c_int = 75;
--pub const ENOTUNIQ: ::c_int = 76;
--pub const EBADFD: ::c_int = 77;
--pub const EBADMSG: ::c_int = 74;
--pub const EREMCHG: ::c_int = 78;
--pub const ELIBACC: ::c_int = 79;
--pub const ELIBBAD: ::c_int = 80;
--pub const ELIBSCN: ::c_int = 81;
--pub const ELIBMAX: ::c_int = 82;
--pub const ELIBEXEC: ::c_int = 83;
--pub const EILSEQ: ::c_int = 84;
--pub const ERESTART: ::c_int = 85;
--pub const ESTRPIPE: ::c_int = 86;
--pub const EUSERS: ::c_int = 87;
--pub const ENOTSOCK: ::c_int = 88;
--pub const EDESTADDRREQ: ::c_int = 89;
--pub const EMSGSIZE: ::c_int = 90;
--pub const EPROTOTYPE: ::c_int = 91;
--pub const ENOPROTOOPT: ::c_int = 92;
--pub const EPROTONOSUPPORT: ::c_int = 93;
--pub const ESOCKTNOSUPPORT: ::c_int = 94;
--pub const EOPNOTSUPP: ::c_int = 95;
--pub const EPFNOSUPPORT: ::c_int = 96;
--pub const EAFNOSUPPORT: ::c_int = 97;
--pub const EADDRINUSE: ::c_int = 98;
--pub const EADDRNOTAVAIL: ::c_int = 99;
--pub const ENETDOWN: ::c_int = 100;
--pub const ENETUNREACH: ::c_int = 101;
--pub const ENETRESET: ::c_int = 102;
--pub const ECONNABORTED: ::c_int = 103;
--pub const ECONNRESET: ::c_int = 104;
--pub const ENOBUFS: ::c_int = 105;
--pub const EISCONN: ::c_int = 106;
--pub const ENOTCONN: ::c_int = 107;
--pub const ESHUTDOWN: ::c_int = 108;
--pub const ETOOMANYREFS: ::c_int = 109;
--pub const ETIMEDOUT: ::c_int = 110;
--pub const ECONNREFUSED: ::c_int = 111;
--pub const EHOSTDOWN: ::c_int = 112;
--pub const EHOSTUNREACH: ::c_int = 113;
--pub const EALREADY: ::c_int = 114;
--pub const EINPROGRESS: ::c_int = 115;
--pub const ESTALE: ::c_int = 116;
--pub const EDQUOT: ::c_int = 122;
--pub const ENOMEDIUM: ::c_int = 123;
--pub const EMEDIUMTYPE: ::c_int = 124;
--pub const ECANCELED: ::c_int = 125;
--pub const ENOKEY: ::c_int = 126;
--pub const EKEYEXPIRED: ::c_int = 127;
--pub const EKEYREVOKED: ::c_int = 128;
--pub const EKEYREJECTED: ::c_int = 129;
--pub const EOWNERDEAD: ::c_int = 130;
--pub const ENOTRECOVERABLE: ::c_int = 131;
--pub const EHWPOISON: ::c_int = 133;
--pub const ERFKILL: ::c_int = 132;
--pub const SOL_SOCKET: ::c_int = 1;
--pub const SO_REUSEADDR: ::c_int = 2;
--pub const SO_TYPE: ::c_int = 3;
--pub const SO_ERROR: ::c_int = 4;
--pub const SO_DONTROUTE: ::c_int = 5;
--pub const SO_BROADCAST: ::c_int = 6;
--pub const SO_SNDBUF: ::c_int = 7;
--pub const SO_RCVBUF: ::c_int = 8;
--pub const SO_SNDBUFFORCE: ::c_int = 32;
--pub const SO_RCVBUFFORCE: ::c_int = 33;
--pub const SO_KEEPALIVE: ::c_int = 9;
--pub const SO_OOBINLINE: ::c_int = 10;
--pub const SO_NO_CHECK: ::c_int = 11;
--pub const SO_PRIORITY: ::c_int = 12;
--pub const SO_LINGER: ::c_int = 13;
--pub const SO_BSDCOMPAT: ::c_int = 14;
--pub const SO_REUSEPORT: ::c_int = 15;
--pub const SO_PASSCRED: ::c_int = 16;
--pub const SO_PEERCRED: ::c_int = 17;
--pub const SO_RCVLOWAT: ::c_int = 18;
--pub const SO_SNDLOWAT: ::c_int = 19;
--pub const SO_RCVTIMEO: ::c_int = 20;
--pub const SO_SNDTIMEO: ::c_int = 21;
--pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22;
--pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23;
--pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24;
--pub const SO_BINDTODEVICE: ::c_int = 25;
--pub const SO_ATTACH_FILTER: ::c_int = 26;
--pub const SO_DETACH_FILTER: ::c_int = 27;
--pub const SO_GET_FILTER: ::c_int = 26;
--pub const SO_PEERNAME: ::c_int = 28;
--pub const SO_TIMESTAMP: ::c_int = 29;
--pub const SO_ACCEPTCONN: ::c_int = 30;
--pub const SO_PEERSEC: ::c_int = 31;
--pub const SO_PASSSEC: ::c_int = 34;
--pub const SO_TIMESTAMPNS: ::c_int = 35;
--pub const SCM_TIMESTAMPNS: ::c_int = 35;
--pub const SO_MARK: ::c_int = 36;
--pub const SO_PROTOCOL: ::c_int = 38;
--pub const SO_DOMAIN: ::c_int = 39;
--pub const SO_RXQ_OVFL: ::c_int = 40;
--pub const SO_WIFI_STATUS: ::c_int = 41;
--pub const SCM_WIFI_STATUS: ::c_int = 41;
--pub const SO_PEEK_OFF: ::c_int = 42;
--pub const SO_NOFCS: ::c_int = 43;
--pub const SO_LOCK_FILTER: ::c_int = 44;
--pub const SO_SELECT_ERR_QUEUE: ::c_int = 45;
--pub const SO_BUSY_POLL: ::c_int = 46;
--pub const SO_MAX_PACING_RATE: ::c_int = 47;
--pub const SO_BPF_EXTENSIONS: ::c_int = 48;
--pub const SO_INCOMING_CPU: ::c_int = 49;
--pub const SO_ATTACH_BPF: ::c_int = 50;
--pub const SO_DETACH_BPF: ::c_int = 27;
--pub const SOCK_STREAM: ::c_int = 1;
--pub const SOCK_DGRAM: ::c_int = 2;
--pub const SA_ONSTACK: ::c_int = 134217728;
--pub const SA_SIGINFO: ::c_int = 4;
--pub const SA_NOCLDWAIT: ::c_int = 2;
--pub const SIGTTIN: ::c_int = 21;
--pub const SIGTTOU: ::c_int = 22;
--pub const SIGXCPU: ::c_int = 24;
--pub const SIGXFSZ: ::c_int = 25;
--pub const SIGVTALRM: ::c_int = 26;
--pub const SIGPROF: ::c_int = 27;
--pub const SIGWINCH: ::c_int = 28;
--pub const SIGCHLD: ::c_int = 17;
--pub const SIGBUS: ::c_int = 7;
--pub const SIGUSR1: ::c_int = 10;
--pub const SIGUSR2: ::c_int = 12;
--pub const SIGCONT: ::c_int = 18;
--pub const SIGSTOP: ::c_int = 19;
--pub const SIGTSTP: ::c_int = 20;
--pub const SIGURG: ::c_int = 23;
--pub const SIGIO: ::c_int = 29;
--pub const SIGSYS: ::c_int = 31;
--pub const SIGSTKFLT: ::c_int = 16;
--pub const SIGPOLL: ::c_int = 29;
--pub const SIGPWR: ::c_int = 30;
--pub const SIG_SETMASK: ::c_int = 2;
--pub const SIG_BLOCK: ::c_int = 0;
--pub const SIG_UNBLOCK: ::c_int = 1;
--pub const POLLWRNORM: ::c_short = 256;
--pub const POLLWRBAND: ::c_short = 512;
--pub const O_ASYNC: ::c_int = 8192;
--pub const O_NDELAY: ::c_int = 2048;
--pub const PTRACE_DETACH: ::c_uint = 17;
--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_SETLK: ::c_int = 6;
--pub const F_SETLKW: ::c_int = 7;
--pub const F_RDLCK: ::c_int = 0;
--pub const F_WRLCK: ::c_int = 1;
--pub const F_UNLCK: ::c_int = 2;
--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 SFD_NONBLOCK: ::c_int = 2048;
--pub const TCSANOW: ::c_int = 0;
--pub const TCSADRAIN: ::c_int = 1;
--pub const TCSAFLUSH: ::c_int = 2;
--pub const TIOCLINUX: ::c_ulong = 21532;
--pub const TIOCGSERIAL: ::c_ulong = 21534;
--pub const TIOCEXCL: ::c_ulong = 21516;
--pub const TIOCNXCL: ::c_ulong = 21517;
--pub const TIOCSCTTY: ::c_ulong = 21518;
--pub const TIOCSTI: ::c_ulong = 21522;
--pub const TIOCMGET: ::c_ulong = 21525;
--pub const TIOCMBIS: ::c_ulong = 21526;
--pub const TIOCMBIC: ::c_ulong = 21527;
--pub const TIOCMSET: ::c_ulong = 21528;
--pub const TIOCCONS: ::c_ulong = 21533;
--pub const TIOCM_ST: ::c_int = 8;
--pub const TIOCM_SR: ::c_int = 16;
--pub const TIOCM_CTS: ::c_int = 32;
--pub const TIOCM_CAR: ::c_int = 64;
--pub const TIOCM_RNG: ::c_int = 128;
--pub const TIOCM_DSR: ::c_int = 256;
--pub const SFD_CLOEXEC: ::c_int = 524288;
--pub const NCCS: usize = 32;
--pub const O_TRUNC: ::c_int = 512;
--pub const O_CLOEXEC: ::c_int = 524288;
--pub const EBFONT: ::c_int = 59;
--pub const ENOSTR: ::c_int = 60;
--pub const ENODATA: ::c_int = 61;
--pub const ETIME: ::c_int = 62;
--pub const ENOSR: ::c_int = 63;
--pub const ENONET: ::c_int = 64;
--pub const ENOPKG: ::c_int = 65;
--pub const EREMOTE: ::c_int = 66;
--pub const ENOLINK: ::c_int = 67;
--pub const EADV: ::c_int = 68;
--pub const ESRMNT: ::c_int = 69;
--pub const ECOMM: ::c_int = 70;
--pub const EPROTO: ::c_int = 71;
--pub const EDOTDOT: ::c_int = 73;
--pub const SA_NODEFER: ::c_int = 1073741824;
--pub const SA_RESETHAND: ::c_int = -2147483648;
--pub const SA_RESTART: ::c_int = 268435456;
--pub const SA_NOCLDSTOP: ::c_int = 1;
--pub const EPOLL_CLOEXEC: ::c_int = 524288;
--pub const EFD_CLOEXEC: ::c_int = 524288;
--pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
--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_NOFOLLOW: ::c_int = 131072;
--pub const MAP_HUGETLB: ::c_int = 262144;
--pub const MAP_LOCKED: ::c_int = 8192;
--pub const MAP_NORESERVE: ::c_int = 16384;
--pub const MAP_ANON: ::c_int = 32;
--pub const MAP_ANONYMOUS: ::c_int = 32;
--pub const MAP_DENYWRITE: ::c_int = 2048;
--pub const MAP_EXECUTABLE: ::c_int = 4096;
--pub const MAP_POPULATE: ::c_int = 32768;
--pub const MAP_NONBLOCK: ::c_int = 65536;
--pub const MAP_STACK: ::c_int = 131072;
--pub const MAP_SYNC : ::c_int = 0x080000;
--pub const EDEADLOCK: ::c_int = 35;
--pub const EUCLEAN: ::c_int = 117;
--pub const ENOTNAM: ::c_int = 118;
--pub const ENAVAIL: ::c_int = 119;
--pub const EISNAM: ::c_int = 120;
--pub const EREMOTEIO: ::c_int = 121;
--pub const FIOCLEX: ::c_ulong = 21585;
--pub const FIONCLEX: ::c_ulong = 21584;
--pub const FIONBIO: ::c_ulong = 21537;
--pub const MCL_CURRENT: ::c_int = 1;
--pub const MCL_FUTURE: ::c_int = 2;
--pub const SIGSTKSZ: ::size_t = 8192;
--pub const MINSIGSTKSZ: ::size_t = 2048;
--pub const CBAUD: ::tcflag_t = 4111;
--pub const TAB1: ::tcflag_t = 2048;
--pub const TAB2: ::tcflag_t = 4096;
--pub const TAB3: ::tcflag_t = 6144;
--pub const CR1: ::tcflag_t = 512;
--pub const CR2: ::tcflag_t = 1024;
--pub const CR3: ::tcflag_t = 1536;
--pub const FF1: ::tcflag_t = 32768;
--pub const BS1: ::tcflag_t = 8192;
--pub const VT1: ::tcflag_t = 16384;
--pub const VWERASE: usize = 14;
--pub const VREPRINT: usize = 12;
--pub const VSUSP: usize = 10;
--pub const VSTART: usize = 8;
--pub const VSTOP: usize = 9;
--pub const VDISCARD: usize = 13;
--pub const VTIME: usize = 5;
--pub const IXON: ::tcflag_t = 1024;
--pub const IXOFF: ::tcflag_t = 4096;
--pub const ONLCR: ::tcflag_t = 4;
--pub const CSIZE: ::tcflag_t = 48;
--pub const CS6: ::tcflag_t = 16;
--pub const CS7: ::tcflag_t = 32;
--pub const CS8: ::tcflag_t = 48;
--pub const CSTOPB: ::tcflag_t = 64;
--pub const CREAD: ::tcflag_t = 128;
--pub const PARENB: ::tcflag_t = 256;
--pub const PARODD: ::tcflag_t = 512;
--pub const HUPCL: ::tcflag_t = 1024;
--pub const CLOCAL: ::tcflag_t = 2048;
--pub const ECHOKE: ::tcflag_t = 2048;
--pub const ECHOE: ::tcflag_t = 16;
--pub const ECHOK: ::tcflag_t = 32;
--pub const ECHONL: ::tcflag_t = 64;
--pub const ECHOPRT: ::tcflag_t = 1024;
--pub const ECHOCTL: ::tcflag_t = 512;
--pub const ISIG: ::tcflag_t = 1;
--pub const ICANON: ::tcflag_t = 2;
--pub const PENDIN: ::tcflag_t = 16384;
--pub const NOFLSH: ::tcflag_t = 128;
--pub const CIBAUD: ::tcflag_t = 269418496;
--pub const CBAUDEX: ::tcflag_t = 4096;
--pub const VSWTC: usize = 7;
--pub const OLCUC: ::tcflag_t = 2;
--pub const NLDLY: ::tcflag_t = 256;
--pub const CRDLY: ::tcflag_t = 1536;
--pub const TABDLY: ::tcflag_t = 6144;
--pub const BSDLY: ::tcflag_t = 8192;
--pub const FFDLY: ::tcflag_t = 32768;
--pub const VTDLY: ::tcflag_t = 16384;
--pub const XTABS: ::tcflag_t = 6144;
--pub const B0: ::speed_t = 0;
--pub const B50: ::speed_t = 1;
--pub const B75: ::speed_t = 2;
--pub const B110: ::speed_t = 3;
--pub const B134: ::speed_t = 4;
--pub const B150: ::speed_t = 5;
--pub const B200: ::speed_t = 6;
--pub const B300: ::speed_t = 7;
--pub const B600: ::speed_t = 8;
--pub const B1200: ::speed_t = 9;
--pub const B1800: ::speed_t = 10;
--pub const B2400: ::speed_t = 11;
--pub const B4800: ::speed_t = 12;
--pub const B9600: ::speed_t = 13;
--pub const B19200: ::speed_t = 14;
--pub const B38400: ::speed_t = 15;
--pub const EXTA: ::speed_t = 14;
--pub const EXTB: ::speed_t = 15;
--pub const B57600: ::speed_t = 4097;
--pub const B115200: ::speed_t = 4098;
--pub const B230400: ::speed_t = 4099;
--pub const B460800: ::speed_t = 4100;
--pub const B500000: ::speed_t = 4101;
--pub const B576000: ::speed_t = 4102;
--pub const B921600: ::speed_t = 4103;
--pub const B1000000: ::speed_t = 4104;
--pub const B1152000: ::speed_t = 4105;
--pub const B1500000: ::speed_t = 4106;
--pub const B2000000: ::speed_t = 4107;
--pub const B2500000: ::speed_t = 4108;
--pub const B3000000: ::speed_t = 4109;
--pub const B3500000: ::speed_t = 4110;
--pub const B4000000: ::speed_t = 4111;
--pub const VEOL: usize = 11;
--pub const VEOL2: usize = 16;
--pub const VMIN: usize = 6;
--pub const IEXTEN: ::tcflag_t = 32768;
--pub const TOSTOP: ::tcflag_t = 256;
--pub const FLUSHO: ::tcflag_t = 4096;
--pub const EXTPROC: ::tcflag_t = 65536;
--pub const TCGETS: ::c_ulong = 21505;
--pub const TCSETS: ::c_ulong = 21506;
--pub const TCSETSW: ::c_ulong = 21507;
--pub const TCSETSF: ::c_ulong = 21508;
--pub const TCGETA: ::c_ulong = 21509;
--pub const TCSETA: ::c_ulong = 21510;
--pub const TCSETAW: ::c_ulong = 21511;
--pub const TCSETAF: ::c_ulong = 21512;
--pub const TCSBRK: ::c_ulong = 21513;
--pub const TCXONC: ::c_ulong = 21514;
--pub const TCFLSH: ::c_ulong = 21515;
--pub const TIOCINQ: ::c_ulong = 21531;
--pub const TIOCGPGRP: ::c_ulong = 21519;
--pub const TIOCSPGRP: ::c_ulong = 21520;
--pub const TIOCOUTQ: ::c_ulong = 21521;
--pub const TIOCGWINSZ: ::c_ulong = 21523;
--pub const TIOCSWINSZ: ::c_ulong = 21524;
--pub const FIONREAD: ::c_ulong = 21531;
--pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
--pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
- pub const SYS_read: ::c_long = 63;
- pub const SYS_write: ::c_long = 64;
- pub const SYS_close: ::c_long = 57;
-@@ -863,5 +468,314 @@ pub const SYS_pkey_mprotect: ::c_long =
- pub const SYS_pkey_alloc: ::c_long = 289;
- pub const SYS_pkey_free: ::c_long = 290;
- pub const SYS_statx: ::c_long = 291;
--pub const SYS_pidfd_open: ::c_long = 434;
--pub const SYS_clone3: ::c_long = 435;
-+
-+pub const O_APPEND: ::c_int = 1024;
-+pub const O_DIRECT: ::c_int = 0x4000;
-+pub const O_DIRECTORY: ::c_int = 0x10000;
-+pub const O_LARGEFILE: ::c_int = 0;
-+pub const O_NOFOLLOW: ::c_int = 0x20000;
-+pub const O_CREAT: ::c_int = 64;
-+pub const O_EXCL: ::c_int = 128;
-+pub const O_NOCTTY: ::c_int = 256;
-+pub const O_NONBLOCK: ::c_int = 2048;
-+pub const O_SYNC: ::c_int = 1052672;
-+pub const O_RSYNC: ::c_int = 1052672;
-+pub const O_DSYNC: ::c_int = 4096;
-+pub const O_ASYNC: ::c_int = 0x2000;
-+
-+pub const TIOCGRS485: ::c_int = 0x542E;
-+pub const TIOCSRS485: ::c_int = 0x542F;
-+
-+pub const SIGSTKSZ: ::size_t = 8192;
-+pub const MINSIGSTKSZ: ::size_t = 2048;
-+
-+pub const ENAMETOOLONG: ::c_int = 36;
-+pub const ENOLCK: ::c_int = 37;
-+pub const ENOSYS: ::c_int = 38;
-+pub const ENOTEMPTY: ::c_int = 39;
-+pub const ELOOP: ::c_int = 40;
-+pub const ENOMSG: ::c_int = 42;
-+pub const EIDRM: ::c_int = 43;
-+pub const ECHRNG: ::c_int = 44;
-+pub const EL2NSYNC: ::c_int = 45;
-+pub const EL3HLT: ::c_int = 46;
-+pub const EL3RST: ::c_int = 47;
-+pub const ELNRNG: ::c_int = 48;
-+pub const EUNATCH: ::c_int = 49;
-+pub const ENOCSI: ::c_int = 50;
-+pub const EL2HLT: ::c_int = 51;
-+pub const EBADE: ::c_int = 52;
-+pub const EBADR: ::c_int = 53;
-+pub const EXFULL: ::c_int = 54;
-+pub const ENOANO: ::c_int = 55;
-+pub const EBADRQC: ::c_int = 56;
-+pub const EBADSLT: ::c_int = 57;
-+pub const EMULTIHOP: ::c_int = 72;
-+pub const EOVERFLOW: ::c_int = 75;
-+pub const ENOTUNIQ: ::c_int = 76;
-+pub const EBADFD: ::c_int = 77;
-+pub const EBADMSG: ::c_int = 74;
-+pub const EREMCHG: ::c_int = 78;
-+pub const ELIBACC: ::c_int = 79;
-+pub const ELIBBAD: ::c_int = 80;
-+pub const ELIBSCN: ::c_int = 81;
-+pub const ELIBMAX: ::c_int = 82;
-+pub const ELIBEXEC: ::c_int = 83;
-+pub const EILSEQ: ::c_int = 84;
-+pub const ERESTART: ::c_int = 85;
-+pub const ESTRPIPE: ::c_int = 86;
-+pub const EUSERS: ::c_int = 87;
-+pub const ENOTSOCK: ::c_int = 88;
-+pub const EDESTADDRREQ: ::c_int = 89;
-+pub const EMSGSIZE: ::c_int = 90;
-+pub const EPROTOTYPE: ::c_int = 91;
-+pub const ENOPROTOOPT: ::c_int = 92;
-+pub const EPROTONOSUPPORT: ::c_int = 93;
-+pub const ESOCKTNOSUPPORT: ::c_int = 94;
-+pub const EOPNOTSUPP: ::c_int = 95;
-+pub const EPFNOSUPPORT: ::c_int = 96;
-+pub const EAFNOSUPPORT: ::c_int = 97;
-+pub const EADDRINUSE: ::c_int = 98;
-+pub const EADDRNOTAVAIL: ::c_int = 99;
-+pub const ENETDOWN: ::c_int = 100;
-+pub const ENETUNREACH: ::c_int = 101;
-+pub const ENETRESET: ::c_int = 102;
-+pub const ECONNABORTED: ::c_int = 103;
-+pub const ECONNRESET: ::c_int = 104;
-+pub const ENOBUFS: ::c_int = 105;
-+pub const EISCONN: ::c_int = 106;
-+pub const ENOTCONN: ::c_int = 107;
-+pub const ESHUTDOWN: ::c_int = 108;
-+pub const ETOOMANYREFS: ::c_int = 109;
-+pub const ETIMEDOUT: ::c_int = 110;
-+pub const ECONNREFUSED: ::c_int = 111;
-+pub const EHOSTDOWN: ::c_int = 112;
-+pub const EHOSTUNREACH: ::c_int = 113;
-+pub const EALREADY: ::c_int = 114;
-+pub const EINPROGRESS: ::c_int = 115;
-+pub const ESTALE: ::c_int = 116;
-+pub const EDQUOT: ::c_int = 122;
-+pub const ENOMEDIUM: ::c_int = 123;
-+pub const EMEDIUMTYPE: ::c_int = 124;
-+pub const ECANCELED: ::c_int = 125;
-+pub const ENOKEY: ::c_int = 126;
-+pub const EKEYEXPIRED: ::c_int = 127;
-+pub const EKEYREVOKED: ::c_int = 128;
-+pub const EKEYREJECTED: ::c_int = 129;
-+pub const EOWNERDEAD: ::c_int = 130;
-+pub const ENOTRECOVERABLE: ::c_int = 131;
-+pub const EHWPOISON: ::c_int = 133;
-+pub const ERFKILL: ::c_int = 132;
-+
-+pub const SA_ONSTACK: ::c_int = 0x08000000;
-+pub const SA_SIGINFO: ::c_int = 0x00000004;
-+pub const SA_NOCLDWAIT: ::c_int = 0x00000002;
-+
-+pub const SIGCHLD: ::c_int = 17;
-+pub const SIGBUS: ::c_int = 7;
-+pub const SIGTTIN: ::c_int = 21;
-+pub const SIGTTOU: ::c_int = 22;
-+pub const SIGXCPU: ::c_int = 24;
-+pub const SIGXFSZ: ::c_int = 25;
-+pub const SIGVTALRM: ::c_int = 26;
-+pub const SIGPROF: ::c_int = 27;
-+pub const SIGWINCH: ::c_int = 28;
-+pub const SIGUSR1: ::c_int = 10;
-+pub const SIGUSR2: ::c_int = 12;
-+pub const SIGCONT: ::c_int = 18;
-+pub const SIGSTOP: ::c_int = 19;
-+pub const SIGTSTP: ::c_int = 20;
-+pub const SIGURG: ::c_int = 23;
-+pub const SIGIO: ::c_int = 29;
-+pub const SIGSYS: ::c_int = 31;
-+pub const SIGSTKFLT: ::c_int = 16;
-+pub const SIGPOLL: ::c_int = 29;
-+pub const SIGPWR: ::c_int = 30;
-+pub const SIG_SETMASK: ::c_int = 2;
-+pub const SIG_BLOCK: ::c_int = 0x000000;
-+pub const SIG_UNBLOCK: ::c_int = 0x01;
-+
-+pub const F_GETLK: ::c_int = 5;
-+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;
-+
-+pub const POLLWRNORM: ::c_short = 0x100;
-+pub const POLLWRBAND: ::c_short = 0x200;
-+
-+pub const SOCK_STREAM: ::c_int = 1;
-+pub const SOCK_DGRAM: ::c_int = 2;
-+pub const SOL_SOCKET: ::c_int = 1;
-+pub const SO_REUSEADDR: ::c_int = 2;
-+pub const SO_TYPE: ::c_int = 3;
-+pub const SO_ERROR: ::c_int = 4;
-+pub const SO_DONTROUTE: ::c_int = 5;
-+pub const SO_BROADCAST: ::c_int = 6;
-+pub const SO_SNDBUF: ::c_int = 7;
-+pub const SO_RCVBUF: ::c_int = 8;
-+pub const SO_KEEPALIVE: ::c_int = 9;
-+pub const SO_OOBINLINE: ::c_int = 10;
-+pub const SO_NO_CHECK: ::c_int = 11;
-+pub const SO_PRIORITY: ::c_int = 12;
-+pub const SO_LINGER: ::c_int = 13;
-+pub const SO_BSDCOMPAT: ::c_int = 14;
-+pub const SO_REUSEPORT: ::c_int = 15;
-+pub const SO_ACCEPTCONN: ::c_int = 30;
-+pub const SO_SNDBUFFORCE: ::c_int = 32;
-+pub const SO_RCVBUFFORCE: ::c_int = 33;
-+pub const SO_PROTOCOL: ::c_int = 38;
-+pub const SO_DOMAIN: ::c_int = 39;
-+
-+pub const MAP_ANON: ::c_int = 0x0020;
-+pub const MAP_GROWSDOWN: ::c_int = 0x0100;
-+pub const MAP_DENYWRITE: ::c_int = 0x0800;
-+pub const MAP_EXECUTABLE: ::c_int = 0x01000;
-+pub const MAP_LOCKED: ::c_int = 0x02000;
-+pub const MAP_NORESERVE: ::c_int = 0x04000;
-+pub const MAP_POPULATE: ::c_int = 0x08000;
-+pub const MAP_NONBLOCK: ::c_int = 0x010000;
-+pub const MAP_STACK: ::c_int = 0x020000;
-+pub const MAP_HUGETLB: ::c_int = 0x040000;
-+pub const MAP_SYNC : ::c_int = 0x080000;
-+
-+pub const RLIMIT_NLIMITS: ::c_int = 15;
-+pub const TIOCINQ: ::c_int = ::FIONREAD;
-+pub const MCL_CURRENT: ::c_int = 0x0001;
-+pub const MCL_FUTURE: ::c_int = 0x0002;
-+pub const CBAUD: ::tcflag_t = 0o0010017;
-+pub const TAB1: ::c_int = 0x00000800;
-+pub const TAB2: ::c_int = 0x00001000;
-+pub const TAB3: ::c_int = 0x00001800;
-+pub const CR1: ::c_int = 0x00000200;
-+pub const CR2: ::c_int = 0x00000400;
-+pub const CR3: ::c_int = 0x00000600;
-+pub const FF1: ::c_int = 0x00008000;
-+pub const BS1: ::c_int = 0x00002000;
-+pub const VT1: ::c_int = 0x00004000;
-+pub const VWERASE: usize = 14;
-+pub const VREPRINT: usize = 12;
-+pub const VSUSP: usize = 10;
-+pub const VSTART: usize = 8;
-+pub const VSTOP: usize = 9;
-+pub const VDISCARD: usize = 13;
-+pub const VTIME: usize = 5;
-+pub const IXON: ::tcflag_t = 0x00000400;
-+pub const IXOFF: ::tcflag_t = 0x00001000;
-+pub const ONLCR: ::tcflag_t = 0x4;
-+pub const CSIZE: ::tcflag_t = 0x00000030;
-+pub const CS6: ::tcflag_t = 0x00000010;
-+pub const CS7: ::tcflag_t = 0x00000020;
-+pub const CS8: ::tcflag_t = 0x00000030;
-+pub const CSTOPB: ::tcflag_t = 0x00000040;
-+pub const CREAD: ::tcflag_t = 0x00000080;
-+pub const PARENB: ::tcflag_t = 0x00000100;
-+pub const PARODD: ::tcflag_t = 0x00000200;
-+pub const HUPCL: ::tcflag_t = 0x00000400;
-+pub const CLOCAL: ::tcflag_t = 0x00000800;
-+pub const ECHOKE: ::tcflag_t = 0x00000800;
-+pub const ECHOE: ::tcflag_t = 0x00000010;
-+pub const ECHOK: ::tcflag_t = 0x00000020;
-+pub const ECHONL: ::tcflag_t = 0x00000040;
-+pub const ECHOPRT: ::tcflag_t = 0x00000400;
-+pub const ECHOCTL: ::tcflag_t = 0x00000200;
-+pub const ISIG: ::tcflag_t = 0x00000001;
-+pub const ICANON: ::tcflag_t = 0x00000002;
-+pub const PENDIN: ::tcflag_t = 0x00004000;
-+pub const NOFLSH: ::tcflag_t = 0x00000080;
-+pub const CIBAUD: ::tcflag_t = 0o02003600000;
-+pub const CBAUDEX: ::tcflag_t = 0o010000;
-+pub const VSWTC: usize = 7;
-+pub const OLCUC: ::tcflag_t = 0o000002;
-+pub const NLDLY: ::tcflag_t = 0o000400;
-+pub const CRDLY: ::tcflag_t = 0o003000;
-+pub const TABDLY: ::tcflag_t = 0o014000;
-+pub const BSDLY: ::tcflag_t = 0o020000;
-+pub const FFDLY: ::tcflag_t = 0o100000;
-+pub const VTDLY: ::tcflag_t = 0o040000;
-+pub const XTABS: ::tcflag_t = 0o014000;
-+pub const B57600: ::speed_t = 0o010001;
-+pub const B115200: ::speed_t = 0o010002;
-+pub const B230400: ::speed_t = 0o010003;
-+pub const B460800: ::speed_t = 0o010004;
-+pub const B500000: ::speed_t = 0o010005;
-+pub const B576000: ::speed_t = 0o010006;
-+pub const B921600: ::speed_t = 0o010007;
-+pub const B1000000: ::speed_t = 0o010010;
-+pub const B1152000: ::speed_t = 0o010011;
-+pub const B1500000: ::speed_t = 0o010012;
-+pub const B2000000: ::speed_t = 0o010013;
-+pub const B2500000: ::speed_t = 0o010014;
-+pub const B3000000: ::speed_t = 0o010015;
-+pub const B3500000: ::speed_t = 0o010016;
-+pub const B4000000: ::speed_t = 0o010017;
-+
-+pub const FIOCLEX: ::c_int = 0x5451;
-+pub const FIONCLEX: ::c_int = 0x5450;
-+pub const FIONBIO: ::c_int = 0x5421;
-+pub const EDEADLK: ::c_int = 35;
-+pub const EDEADLOCK: ::c_int = EDEADLK;
-+pub const SO_PASSCRED: ::c_int = 16;
-+pub const SO_PEERCRED: ::c_int = 17;
-+pub const SO_RCVLOWAT: ::c_int = 18;
-+pub const SO_SNDLOWAT: ::c_int = 19;
-+pub const SO_RCVTIMEO: ::c_int = 20;
-+pub const SO_SNDTIMEO: ::c_int = 21;
-+pub const EXTPROC: ::tcflag_t = 0x00010000;
-+pub const VEOL: usize = 11;
-+pub const VEOL2: usize = 16;
-+pub const VMIN: usize = 6;
-+pub const IEXTEN: ::tcflag_t = 0x00008000;
-+pub const TOSTOP: ::tcflag_t = 0x00000100;
-+pub const FLUSHO: ::tcflag_t = 0x00001000;
-+pub const TCGETS: ::c_int = 0x5401;
-+pub const TCSETS: ::c_int = 0x5402;
-+pub const TCSETSW: ::c_int = 0x5403;
-+pub const TCSETSF: ::c_int = 0x5404;
-+pub const TCGETA: ::c_int = 0x5405;
-+pub const TCSETA: ::c_int = 0x5406;
-+pub const TCSETAW: ::c_int = 0x5407;
-+pub const TCSETAF: ::c_int = 0x5408;
-+pub const TCSBRK: ::c_int = 0x5409;
-+pub const TCXONC: ::c_int = 0x540A;
-+pub const TCFLSH: ::c_int = 0x540B;
-+pub const TIOCGSOFTCAR: ::c_int = 0x5419;
-+pub const TIOCSSOFTCAR: ::c_int = 0x541A;
-+pub const TIOCLINUX: ::c_int = 0x541C;
-+pub const TIOCGSERIAL: ::c_int = 0x541E;
-+pub const TIOCEXCL: ::c_int = 0x540C;
-+pub const TIOCNXCL: ::c_int = 0x540D;
-+pub const TIOCSCTTY: ::c_int = 0x540E;
-+pub const TIOCGPGRP: ::c_int = 0x540F;
-+pub const TIOCSPGRP: ::c_int = 0x5410;
-+pub const TIOCOUTQ: ::c_int = 0x5411;
-+pub const TIOCSTI: ::c_int = 0x5412;
-+pub const TIOCGWINSZ: ::c_int = 0x5413;
-+pub const TIOCSWINSZ: ::c_int = 0x5414;
-+pub const TIOCMGET: ::c_int = 0x5415;
-+pub const TIOCMBIS: ::c_int = 0x5416;
-+pub const TIOCMBIC: ::c_int = 0x5417;
-+pub const TIOCMSET: ::c_int = 0x5418;
-+pub const FIONREAD: ::c_int = 0x541B;
-+pub const TIOCCONS: ::c_int = 0x541D;
-+
-+pub const TIOCM_LE: ::c_int = 0x001;
-+pub const TIOCM_DTR: ::c_int = 0x002;
-+pub const TIOCM_RTS: ::c_int = 0x004;
-+pub const TIOCM_ST: ::c_int = 0x008;
-+pub const TIOCM_SR: ::c_int = 0x010;
-+pub const TIOCM_CTS: ::c_int = 0x020;
-+pub const TIOCM_CAR: ::c_int = 0x040;
-+pub const TIOCM_RNG: ::c_int = 0x080;
-+pub const TIOCM_DSR: ::c_int = 0x100;
-+pub const TIOCM_CD: ::c_int = TIOCM_CAR;
-+pub const TIOCM_RI: ::c_int = TIOCM_RNG;
-+
-+extern "C" {
-+    pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int;
-+}
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg/0008-Update-checksums-for-modified-files-for-rust-1.54.0-.patch b/poky/meta/recipes-gnome/librsvg/librsvg/0008-Update-checksums-for-modified-files-for-rust-1.54.0-.patch
deleted file mode 100644
index 6c78d0c..0000000
--- a/poky/meta/recipes-gnome/librsvg/librsvg/0008-Update-checksums-for-modified-files-for-rust-1.54.0-.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-From 2b1c373f9a3341e8926d6be8d7cdcedc1fc6fca3 Mon Sep 17 00:00:00 2001
-From: Ralf Anton Beier <ralf_beier@me.com>
-Date: Sun, 8 Aug 2021 11:19:24 +0200
-Subject: [PATCH 8/8] Update checksums for modified files for rust 1.54.0 and
- libc-0.2.93
-
-Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
----
- vendor/libc-0.2.93/.cargo-checksum.json | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/vendor/libc/.cargo-checksum.json
-+++ b/vendor/libc/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{"CONTRIBUTING.md":"752eea5a703d11b485c6b5f195f51bd2c79aa5159b619ce09555c779e1fb586b","Cargo.toml":"aad61c58f04e78be520769d8927ab4c121a6536f532b159be1b706550fcd0234","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"8228847944f1332882fbb00275b6f30e4a8aad08a13569c25d52cac012cc2a47","build.rs":"8e0e8d33cc9e7c25cde75c2b502420f943266a681024169f94084774b422681d","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"34c60f12ec5eeb90f13ec3b954427532111c2446e69617616a97aefc1086a9f1","src/fuchsia/aarch64.rs":"378776a9e40766154a54c94c2a7b4675b5c302a38e6e42da99e67bfbaee60e56","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"520300ff260d377930f2f456135ec9a3ac7740a949ce7bf5269c0dc60d56c0df","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":"d4f7452c0fe720f3a961b918b74ec86d19cef33e6b4aac08efbbad6f6d818e09","src/macros.rs":"7844312c233a6889fa15395fe3106f6a8f6229211104a92f33ea3c9536eef763","src/psp.rs":"dd31aabd46171d474ec5828372e28588935120e7355c90c105360d8fa9264c1c","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/switch.rs":"9da3dd39b3de45a7928789926e8572d00e1e11a39e6f7289a1349aadce90edba","src/unix/align.rs":"2cdc7c826ef7ae61f5171c5ae8c445a743d86f1a7f2d9d7e4ceeec56d6874f65","src/unix/bsd/apple/b32/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b32/mod.rs":"6a4ce300da0d2b0db04b18548286603ffe4b47d679a41cf60f1902895894aa1f","src/unix/bsd/apple/b64/aarch64/align.rs":"f0c321265dd7671f16106b84951ac7dd77ed2e65c6623cbf2d29e76531984770","src/unix/bsd/apple/b64/aarch64/mod.rs":"46d5d061c7a74cbc09cbdfb3bee9a600867bf4e04c0e4d0ca6c817e6033b32e1","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":"cc6878dd130c3f255418e4da74992ae9ba6a3cdb0530772de76c518077d3b12a","src/unix/bsd/apple/mod.rs":"e0ebe1040b8ff87c52d581f96234291a6380ebe3af3088c4f6ff748fbd7d2a7a","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"1466715589ed18b66789d60904e8258b20d7783a6f3bf72f775617bc0d9373d8","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"2a215bd6136b8617aacedf9be738ccee94da9d29b418e9a78101d6291c182352","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":"6523af60c0e4937ad374003c1653e9e721f5b6f11572c747732f76522d07d034","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"0821543bf2073cb3dc46157e47140caa30704e062b23099d52bf80cb56e25321","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":"21416cad3e76f53d10d0c73840469290aa80c2d92c773307a1ca92485d3c0e13","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/mod.rs":"0ee5530ddde5690cdc6f91acca86ce74c37ec06886418c34b201c154fd2c9e41","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","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":"c3a0111252e201c172b99e7d9cbee4cf088d3dd47995110e819f04276bccd198","src/unix/bsd/freebsdlike/mod.rs":"77763a8dfe2d31c78ee7c3e64001ceee6d4ba34cc77b7fd4fdde153e5abbbeb8","src/unix/bsd/mod.rs":"2fed08973739d7f6a7412b204724af64b1a915c712689c250cf9a08263ba05ff","src/unix/bsd/netbsdlike/mod.rs":"4e9da54e541773c7ad4cca9dade1df00f28f2fdac3f8df5957f4c74b7e082344","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"65dcb58d11e8d8028401a9d07ca3eb4cb4f053e04249cc877353449d84ccc4cb","src/unix/bsd/netbsdlike/netbsd/arm.rs":"58cdbb70b0d6f536551f0f3bb3725d2d75c4690db12c26c034e7d6ec4a924452","src/unix/bsd/netbsdlike/netbsd/mod.rs":"96edbcf448b89c991c9254c194232322dce69fb8050bab9f9741f5aecb2104ea","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/mod.rs":"9a9878e70ee8765d95cb1b010e39d74004278ca6da58fb82354f69752a84c926","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":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"912969bc1d59a6cec74de3140982b7f0b69e74d44936646587f1c8820be7c0fe","src/unix/haiku/native.rs":"44855f52906f607de137fc4baa8c6b1b9a26baaa666f25d5f7a7ec5e017c8be6","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":"d971b98530a96f5892f98e1edc3133cf278d1b3939d77ab0a27a6323e0961715","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/mod.rs":"8fe667d2b14abc5ac8aad32e16c3da24350471d8156eaea9ab4989f73dd9f9fc","src/unix/linux_like/android/b64/mod.rs":"d7bbbadafdb2cb2ff8e9cde3d89a03b9facaabb6b2d45705225d3ece1c5cce37","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"06b22dc184e85a988ab969c75cadc52b9878faeab0eb9d21215878c95fe07c19","src/unix/linux_like/android/mod.rs":"8688204b3236db28b66ff0f1de5320f47ec5c1ef5395dddcc9df025a8d78630a","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/mod.rs":"6ef97140ca6fb24125fdd0aacb986ef785aa21993229660d7f703f8875ebfe49","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"213e70ebed2703e14a9cf17666b21ecbf180b7bff7fa22fdbb36dbbd52df326d","src/unix/linux_like/linux/arch/generic/mod.rs":"ff1fe8fad4ea15d9bec3db25efcfcb4939190c5189f86cfa4d05825aa8c10956","src/unix/linux_like/linux/arch/mips/mod.rs":"e4a980b002105aaa057eb6568e1e2c6168ade5c00e13a31ef67e316ddffdb900","src/unix/linux_like/linux/arch/mod.rs":"466a29622e47c6c7f1500682b2eb17f5566dd81b322cd6348f0fdd355cec593a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"1789eb5b41f75c29239795124a4a7cdcf7c8d213b88cf581b2f5bda08d7cf15b","src/unix/linux_like/linux/arch/sparc/mod.rs":"ded708124ee610267d011dee31fb02d1ec697c334aa822776ec95a7ddf6fc541","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"3fed009dc9af3cc81be7087da9d2d7d1f39845e4497e290259c5cdbae25f039d","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"07adf9f4b96854062db518aaf08521fde0ad4a21a5c049efccba437bd97b2b5a","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"1cb5c0c9df3af2bbe131a91593583259fac9118931744c8435e197a394eb0462","src/unix/linux_like/linux/gnu/b32/mod.rs":"794dbcbae7dae8fd6b0b814573243197ceb532b56ef0772ad86b4b401478fcd9","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"0cd7348badb9c4f8a0db31a2503b30c456a2bfcc7a0e5919762b1e12f912c5ad","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"ee5145a383386b716605a8d1ff3df212d418aae1aa1f37d2307d4f9cd1a08e99","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"1bcec269a8416ccc48a384ca5765eaaa23f30f39f32311f50008ef4eeadafb2f","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"5317dbf2323577b89370bbee3894882b89d8333176db4f7b271ddc2f036ef43c","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"21a21503ef2e095f4371044915d4bfb07a8578011cb5c713cd9f45947b0b5730","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"e78c3cd197f44832338b414d1a9bc0d194f44c74db77bd7bf830c1fff62b2690","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"c3730792dabcc166d8fd22929ef2633d49bc626875382dfcd401e8e125fb7a84","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"68bcb71bbfccb4e8648948e494366d94767ce96f36daab9c1329375cdd32a459","src/unix/linux_like/linux/gnu/b64/mod.rs":"6336065423c26b59681fd2ce77f1117ea36af13e163fdadaefd108bd8191e8c8","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"dbb8905e363ed4a2dfb984554ad9b6389d27f6a2d599ec2d80e38a6c7551a019","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"5b982c41097f4f91adcb0968290afeccb27dce1695a261c964d34ef85df87cf4","src/unix/linux_like/linux/gnu/b64/s390x.rs":"a9484dfd3c7ca1174537957bef997c3ba7ea41989cdf61ede22b1bbc45a667bf","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"26fda11bdce99372c2c246e60866b56d98beb9fb49a2f6b69347ecfd03d18255","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"5a5ce7c5c92f60d8900dce63d363a38f3126aaf5be981710e172bec96ef95ac6","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"f775ac2b754f90b63053fe22afe1d19d306b5404995568d6805baa9249fb617f","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"4ba1b58468f55254717366f50fdfd3e4114fde6dc442a56681926c4d7e5b6b0d","src/unix/linux_like/linux/gnu/mod.rs":"a040250bc2b4b2831ae2cad6f1abf3dc73e6015c4f570abf21350e220e898338","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"8f282fe98fe7fcdae158aad41b2a9e6130c130c7a041fe13919357bf7b548057","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"6255abe2ee04986832d12b7b2190589580f2a43e9bfb285b32b5747227f62727","src/unix/linux_like/linux/musl/b32/hexagon.rs":"a8811791809672be8338e6e27d1c4fcf383c2f26585be8bf9ab2923b219de032","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"b9e9ff42363ebbb884ddf6445129ec4164471df45846874fc08f5f458e659254","src/unix/linux_like/linux/musl/b32/mod.rs":"8ede3985e6243882814ce91e8ce543e7edbafc0cee5932816072b6f14207a671","src/unix/linux_like/linux/musl/b32/powerpc.rs":"4592dc5f1f2fe888dfef85fa862d42d168e73a2c6f4fc052b58287d0f4d4ffcd","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"a19a8decfab185af3cebd34aae4b15082e7552be573904b8c1a3f0c0e493ef34","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"798a9229d70ce235394f2dd625f6c4c1e10519a94382dc5b091952b638ae2928","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"a73035c6d9b776f13b839008e15c04c2c53455571efd06664affcb047e457112","src/unix/linux_like/linux/musl/b64/mips64.rs":"2744895451f3a777fbe54f7f2695be53310b965fd62084c9b7e9121c7fe28346","src/unix/linux_like/linux/musl/b64/mod.rs":"d18abc0aeba2e26342bf3416a4dba0836db2bb0ee013b0a39629475cf8640289","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"e5a55525b42493923956d668f978fb45e22d51deea00ce5edbfddf76ff19c741","src/unix/linux_like/linux/musl/b64/s390x.rs":"03dfec6794d93cb31a7c52b2d53a0973755168f91f8fa437cc5dbd54882c8ee7","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"0dd168f5a6881f32e5239fb312b23cf137b800d0ff323286a92c8a2c382b5456","src/unix/linux_like/linux/musl/mod.rs":"55ccd71342276ccb4c441a4bc2772aebfd163af299669b658c6c8c6add331ec3","src/unix/linux_like/linux/no_align.rs":"5ed04c53bf9d27da9b4d65ba7625c6ac53330162683d1b3df98950caafa3507b","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":"1e3bf809508b5872949136859bf48ddf58b7d24ae9f0b663e79f0efd1aaeb6a6","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":"fa4102d9a596d90de604ce2962b0e64f184dfbf10552a4c3ecf28f12d4704379","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":"e3085ba56cfbc528d7c3c55065880603238c333b6047ef51c58177508a487fcd","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"a2877679fef0f14f54a89ccbc41fb02f0c25bf6e536f9eb2cb2fa437e1d3f739","src/unix/linux_like/linux/uclibc/mod.rs":"82d504d3aa12cb0f7933980f81c4708fa6e070d4c57efdf407f2de05b71bc06d","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":"02e21c0550a423a3f6db0a0af6a0f37cf5937feb2562a490e0ad0e09a8d9fc77","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"0a97d43fdce7f9bd57a0b47d770867f4e234eba602adc9ef993ed02a182276f2","src/unix/mod.rs":"6b2b57833e37cd3231944696c8216eb587a2a68069346150cf321153eaf04d03","src/unix/newlib/aarch64/mod.rs":"bb269c1468a9676442554600e87417079a787fe6220dfc23b3109639259e8710","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"c71be856bfd7f576b2db28af9f680211cbe6c1cac7d537bbc8020b39591af07c","src/unix/newlib/espidf/mod.rs":"c198cb4beccdab483be61c102da74dc51ac80f766797e33021f3110394ed5a3d","src/unix/newlib/mod.rs":"d7271c13748be08305d36f9af6f41f6950a7a1d6d4382149194a35d5fe2090de","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"2d0f7af28b47f7a2a6c210ebd1c1f33ed8eac62e56b5af2b856de2ad3fdc5187","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/redox/mod.rs":"267a413e63dbdcaed6e758f9a5c10bd00178ed76c7b3527e8e984341f617d3a5","src/unix/solarish/compat.rs":"b07a5bfac925eb012003a459ba6bddbd3bfa9c44b3394da2ac5a602e54beae9c","src/unix/solarish/illumos.rs":"7d8f47fd37880715b449723688aaee568785325a46f1c360a05bdca13252278e","src/unix/solarish/mod.rs":"080e0cf03b50874ba9d5082b314eabb0d253532dc4b13d8af095a0c78e0fba84","src/unix/solarish/solaris.rs":"65b005453aefa9b9d4fc860fe77cfec80d8c97a51342b15daf55fc3e808bb384","src/unix/solarish/x86_64.rs":"9d761573bdccbdd1ac61da571f7e96b5374df70241d9b72d45a069611f495085","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":"2c945bce3ddd26bf20ff03fb4192c9c3f625f1308a479c5cb4bd4510a892629a","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"1cd9223293255b994814487e28d9979fb8ebef4538a236c1aa47fdc166a149cc","src/windows/msvc/mod.rs":"860dc98245039bc3aa5782ef2b5798d009ea6655bd27a63f244be2206d2cb47f","src/windows/msvc/x86_64.rs":"25d35a5ba8e19569a5bed573dcf8c82f7ce53da7c91941f9ceda6fe86cab1088","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6"}
-\ No newline at end of file
-+{"files":{"CONTRIBUTING.md":"752eea5a703d11b485c6b5f195f51bd2c79aa5159b619ce09555c779e1fb586b","Cargo.toml":"aad61c58f04e78be520769d8927ab4c121a6536f532b159be1b706550fcd0234","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"8228847944f1332882fbb00275b6f30e4a8aad08a13569c25d52cac012cc2a47","build.rs":"8e0e8d33cc9e7c25cde75c2b502420f943266a681024169f94084774b422681d","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"34c60f12ec5eeb90f13ec3b954427532111c2446e69617616a97aefc1086a9f1","src/fuchsia/aarch64.rs":"378776a9e40766154a54c94c2a7b4675b5c302a38e6e42da99e67bfbaee60e56","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"520300ff260d377930f2f456135ec9a3ac7740a949ce7bf5269c0dc60d56c0df","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":"d4f7452c0fe720f3a961b918b74ec86d19cef33e6b4aac08efbbad6f6d818e09","src/macros.rs":"7844312c233a6889fa15395fe3106f6a8f6229211104a92f33ea3c9536eef763","src/psp.rs":"dd31aabd46171d474ec5828372e28588935120e7355c90c105360d8fa9264c1c","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/switch.rs":"9da3dd39b3de45a7928789926e8572d00e1e11a39e6f7289a1349aadce90edba","src/unix/align.rs":"2cdc7c826ef7ae61f5171c5ae8c445a743d86f1a7f2d9d7e4ceeec56d6874f65","src/unix/bsd/apple/b32/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b32/mod.rs":"6a4ce300da0d2b0db04b18548286603ffe4b47d679a41cf60f1902895894aa1f","src/unix/bsd/apple/b64/aarch64/align.rs":"f0c321265dd7671f16106b84951ac7dd77ed2e65c6623cbf2d29e76531984770","src/unix/bsd/apple/b64/aarch64/mod.rs":"46d5d061c7a74cbc09cbdfb3bee9a600867bf4e04c0e4d0ca6c817e6033b32e1","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":"cc6878dd130c3f255418e4da74992ae9ba6a3cdb0530772de76c518077d3b12a","src/unix/bsd/apple/mod.rs":"e0ebe1040b8ff87c52d581f96234291a6380ebe3af3088c4f6ff748fbd7d2a7a","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"1466715589ed18b66789d60904e8258b20d7783a6f3bf72f775617bc0d9373d8","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"2a215bd6136b8617aacedf9be738ccee94da9d29b418e9a78101d6291c182352","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":"6523af60c0e4937ad374003c1653e9e721f5b6f11572c747732f76522d07d034","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"0821543bf2073cb3dc46157e47140caa30704e062b23099d52bf80cb56e25321","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":"21416cad3e76f53d10d0c73840469290aa80c2d92c773307a1ca92485d3c0e13","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/mod.rs":"0ee5530ddde5690cdc6f91acca86ce74c37ec06886418c34b201c154fd2c9e41","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","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":"c3a0111252e201c172b99e7d9cbee4cf088d3dd47995110e819f04276bccd198","src/unix/bsd/freebsdlike/mod.rs":"77763a8dfe2d31c78ee7c3e64001ceee6d4ba34cc77b7fd4fdde153e5abbbeb8","src/unix/bsd/mod.rs":"2fed08973739d7f6a7412b204724af64b1a915c712689c250cf9a08263ba05ff","src/unix/bsd/netbsdlike/mod.rs":"4e9da54e541773c7ad4cca9dade1df00f28f2fdac3f8df5957f4c74b7e082344","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"65dcb58d11e8d8028401a9d07ca3eb4cb4f053e04249cc877353449d84ccc4cb","src/unix/bsd/netbsdlike/netbsd/arm.rs":"58cdbb70b0d6f536551f0f3bb3725d2d75c4690db12c26c034e7d6ec4a924452","src/unix/bsd/netbsdlike/netbsd/mod.rs":"96edbcf448b89c991c9254c194232322dce69fb8050bab9f9741f5aecb2104ea","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/mod.rs":"9a9878e70ee8765d95cb1b010e39d74004278ca6da58fb82354f69752a84c926","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":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"912969bc1d59a6cec74de3140982b7f0b69e74d44936646587f1c8820be7c0fe","src/unix/haiku/native.rs":"44855f52906f607de137fc4baa8c6b1b9a26baaa666f25d5f7a7ec5e017c8be6","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":"d971b98530a96f5892f98e1edc3133cf278d1b3939d77ab0a27a6323e0961715","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/mod.rs":"8fe667d2b14abc5ac8aad32e16c3da24350471d8156eaea9ab4989f73dd9f9fc","src/unix/linux_like/android/b64/mod.rs":"d7bbbadafdb2cb2ff8e9cde3d89a03b9facaabb6b2d45705225d3ece1c5cce37","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"06b22dc184e85a988ab969c75cadc52b9878faeab0eb9d21215878c95fe07c19","src/unix/linux_like/android/mod.rs":"8688204b3236db28b66ff0f1de5320f47ec5c1ef5395dddcc9df025a8d78630a","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/mod.rs":"6ef97140ca6fb24125fdd0aacb986ef785aa21993229660d7f703f8875ebfe49","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"213e70ebed2703e14a9cf17666b21ecbf180b7bff7fa22fdbb36dbbd52df326d","src/unix/linux_like/linux/arch/generic/mod.rs":"ff1fe8fad4ea15d9bec3db25efcfcb4939190c5189f86cfa4d05825aa8c10956","src/unix/linux_like/linux/arch/mips/mod.rs":"e4a980b002105aaa057eb6568e1e2c6168ade5c00e13a31ef67e316ddffdb900","src/unix/linux_like/linux/arch/mod.rs":"466a29622e47c6c7f1500682b2eb17f5566dd81b322cd6348f0fdd355cec593a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"1789eb5b41f75c29239795124a4a7cdcf7c8d213b88cf581b2f5bda08d7cf15b","src/unix/linux_like/linux/arch/sparc/mod.rs":"ded708124ee610267d011dee31fb02d1ec697c334aa822776ec95a7ddf6fc541","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"3fed009dc9af3cc81be7087da9d2d7d1f39845e4497e290259c5cdbae25f039d","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"07adf9f4b96854062db518aaf08521fde0ad4a21a5c049efccba437bd97b2b5a","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"1cb5c0c9df3af2bbe131a91593583259fac9118931744c8435e197a394eb0462","src/unix/linux_like/linux/gnu/b32/mod.rs":"794dbcbae7dae8fd6b0b814573243197ceb532b56ef0772ad86b4b401478fcd9","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"0cd7348badb9c4f8a0db31a2503b30c456a2bfcc7a0e5919762b1e12f912c5ad","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"ee5145a383386b716605a8d1ff3df212d418aae1aa1f37d2307d4f9cd1a08e99","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"1bcec269a8416ccc48a384ca5765eaaa23f30f39f32311f50008ef4eeadafb2f","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"5317dbf2323577b89370bbee3894882b89d8333176db4f7b271ddc2f036ef43c","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"21a21503ef2e095f4371044915d4bfb07a8578011cb5c713cd9f45947b0b5730","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"e78c3cd197f44832338b414d1a9bc0d194f44c74db77bd7bf830c1fff62b2690","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"c3730792dabcc166d8fd22929ef2633d49bc626875382dfcd401e8e125fb7a84","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"68bcb71bbfccb4e8648948e494366d94767ce96f36daab9c1329375cdd32a459","src/unix/linux_like/linux/gnu/b64/mod.rs":"6336065423c26b59681fd2ce77f1117ea36af13e163fdadaefd108bd8191e8c8","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"dbb8905e363ed4a2dfb984554ad9b6389d27f6a2d599ec2d80e38a6c7551a019","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"5b982c41097f4f91adcb0968290afeccb27dce1695a261c964d34ef85df87cf4","src/unix/linux_like/linux/gnu/b64/s390x.rs":"a9484dfd3c7ca1174537957bef997c3ba7ea41989cdf61ede22b1bbc45a667bf","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"26fda11bdce99372c2c246e60866b56d98beb9fb49a2f6b69347ecfd03d18255","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"5a5ce7c5c92f60d8900dce63d363a38f3126aaf5be981710e172bec96ef95ac6","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"f775ac2b754f90b63053fe22afe1d19d306b5404995568d6805baa9249fb617f","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"4ba1b58468f55254717366f50fdfd3e4114fde6dc442a56681926c4d7e5b6b0d","src/unix/linux_like/linux/gnu/mod.rs":"a040250bc2b4b2831ae2cad6f1abf3dc73e6015c4f570abf21350e220e898338","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"8f282fe98fe7fcdae158aad41b2a9e6130c130c7a041fe13919357bf7b548057","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"6255abe2ee04986832d12b7b2190589580f2a43e9bfb285b32b5747227f62727","src/unix/linux_like/linux/musl/b32/hexagon.rs":"a8811791809672be8338e6e27d1c4fcf383c2f26585be8bf9ab2923b219de032","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"b9e9ff42363ebbb884ddf6445129ec4164471df45846874fc08f5f458e659254","src/unix/linux_like/linux/musl/b32/mod.rs":"8ede3985e6243882814ce91e8ce543e7edbafc0cee5932816072b6f14207a671","src/unix/linux_like/linux/musl/b32/powerpc.rs":"4592dc5f1f2fe888dfef85fa862d42d168e73a2c6f4fc052b58287d0f4d4ffcd","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"a19a8decfab185af3cebd34aae4b15082e7552be573904b8c1a3f0c0e493ef34","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"798a9229d70ce235394f2dd625f6c4c1e10519a94382dc5b091952b638ae2928","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"a73035c6d9b776f13b839008e15c04c2c53455571efd06664affcb047e457112","src/unix/linux_like/linux/musl/b64/mips64.rs":"2744895451f3a777fbe54f7f2695be53310b965fd62084c9b7e9121c7fe28346","src/unix/linux_like/linux/musl/b64/mod.rs":"d847206d9f2d594c8febe780a938cdccf40d985dafc11e90f235947735a09bac","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"e5a55525b42493923956d668f978fb45e22d51deea00ce5edbfddf76ff19c741","src/unix/linux_like/linux/musl/b64/s390x.rs":"03dfec6794d93cb31a7c52b2d53a0973755168f91f8fa437cc5dbd54882c8ee7","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"0dd168f5a6881f32e5239fb312b23cf137b800d0ff323286a92c8a2c382b5456","src/unix/linux_like/linux/musl/mod.rs":"ac08dd0891304a0e6f478a38bffa4fe8e6b27ad79094b2f7139c7a95082c3a18","src/unix/linux_like/linux/no_align.rs":"5ed04c53bf9d27da9b4d65ba7625c6ac53330162683d1b3df98950caafa3507b","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":"1e3bf809508b5872949136859bf48ddf58b7d24ae9f0b663e79f0efd1aaeb6a6","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":"fa4102d9a596d90de604ce2962b0e64f184dfbf10552a4c3ecf28f12d4704379","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":"e3085ba56cfbc528d7c3c55065880603238c333b6047ef51c58177508a487fcd","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"a2877679fef0f14f54a89ccbc41fb02f0c25bf6e536f9eb2cb2fa437e1d3f739","src/unix/linux_like/linux/uclibc/mod.rs":"82d504d3aa12cb0f7933980f81c4708fa6e070d4c57efdf407f2de05b71bc06d","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":"02e21c0550a423a3f6db0a0af6a0f37cf5937feb2562a490e0ad0e09a8d9fc77","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"0a97d43fdce7f9bd57a0b47d770867f4e234eba602adc9ef993ed02a182276f2","src/unix/mod.rs":"6b2b57833e37cd3231944696c8216eb587a2a68069346150cf321153eaf04d03","src/unix/newlib/aarch64/mod.rs":"bb269c1468a9676442554600e87417079a787fe6220dfc23b3109639259e8710","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"c71be856bfd7f576b2db28af9f680211cbe6c1cac7d537bbc8020b39591af07c","src/unix/newlib/espidf/mod.rs":"c198cb4beccdab483be61c102da74dc51ac80f766797e33021f3110394ed5a3d","src/unix/newlib/mod.rs":"d7271c13748be08305d36f9af6f41f6950a7a1d6d4382149194a35d5fe2090de","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"2d0f7af28b47f7a2a6c210ebd1c1f33ed8eac62e56b5af2b856de2ad3fdc5187","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/redox/mod.rs":"267a413e63dbdcaed6e758f9a5c10bd00178ed76c7b3527e8e984341f617d3a5","src/unix/solarish/compat.rs":"b07a5bfac925eb012003a459ba6bddbd3bfa9c44b3394da2ac5a602e54beae9c","src/unix/solarish/illumos.rs":"7d8f47fd37880715b449723688aaee568785325a46f1c360a05bdca13252278e","src/unix/solarish/mod.rs":"080e0cf03b50874ba9d5082b314eabb0d253532dc4b13d8af095a0c78e0fba84","src/unix/solarish/solaris.rs":"65b005453aefa9b9d4fc860fe77cfec80d8c97a51342b15daf55fc3e808bb384","src/unix/solarish/x86_64.rs":"9d761573bdccbdd1ac61da571f7e96b5374df70241d9b72d45a069611f495085","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":"2c945bce3ddd26bf20ff03fb4192c9c3f625f1308a479c5cb4bd4510a892629a","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"1cd9223293255b994814487e28d9979fb8ebef4538a236c1aa47fdc166a149cc","src/windows/msvc/mod.rs":"860dc98245039bc3aa5782ef2b5798d009ea6655bd27a63f244be2206d2cb47f","src/windows/msvc/x86_64.rs":"25d35a5ba8e19569a5bed573dcf8c82f7ce53da7c91941f9ceda6fe86cab1088","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6"}
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg_2.52.2.bb b/poky/meta/recipes-gnome/librsvg/librsvg_2.52.2.bb
deleted file mode 100644
index 1197559..0000000
--- a/poky/meta/recipes-gnome/librsvg/librsvg_2.52.2.bb
+++ /dev/null
@@ -1,76 +0,0 @@
-SUMMARY = "Library for rendering SVG files"
-DESCRIPTION = "A small library to render Scalable Vector Graphics (SVG), \
-associated with the GNOME Project. It renders SVG files to Cairo surfaces. \
-Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to \
-the screen or to generate output for printing."
-HOMEPAGE = "https://gitlab.gnome.org/GNOME/librsvg"
-BUGTRACKER = "https://gitlab.gnome.org/GNOME/librsvg/issues"
-
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-                   "
-
-SECTION = "x11/utils"
-DEPENDS = "cairo gdk-pixbuf glib-2.0 libcroco libxml2 pango"
-BBCLASSEXTEND = "native"
-
-inherit gnomebase gtk-doc pixbufcache upstream-version-is-even gobject-introspection rust
-
-SRC_URI += "file://0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch \
-           file://0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch \
-           file://0001-crossbeam-utils-check-only-the-architecture-not-the-.patch \
-           file://0001-vendor-system-deps-sort-dependencies-before-using-th.patch \
-           file://0005-Add-base-definitions-for-riscv64-musl-libc-0.2.93.patch \
-           file://0006-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set-libc-.patch \
-           file://0007-FIXUP-Correct-definitions-to-match-musl-libc-0.2.93.patch \
-           file://0008-Update-checksums-for-modified-files-for-rust-1.54.0-.patch \
-           "
-
-SRC_URI[archive.sha256sum] = "03d2887c18ffb906e1a60f97fe46a7169f69aa28d6db5d285748f3618b093427"
-
-# librsvg is still autotools-based, but is calling cargo from its automake-driven makefiles
-# so we cannot use cargo class directly, but still need bits and pieces from it 
-# for cargo to be happy
-BASEDEPENDS:append = " cargo-native"
-
-export RUST_BACKTRACE = "full"
-export RUSTFLAGS
-export RUST_TARGET_PATH
-
-export RUST_TARGET = "${HOST_SYS}"
-
-# rust-cross writes the target linker binary into target json definition without any flags.
-# This breaks here because the linker isn't going to work without at least knowing where
-# the sysroot is. So copy the json to workdir, and patch in the path to wrapper from rust class
-# which supplies the needed flags.
-do_compile:prepend() {
-    cp ${STAGING_LIBDIR_NATIVE}/rustlib/${HOST_SYS}.json ${WORKDIR}
-    cp ${STAGING_LIBDIR_NATIVE}/rustlib/${BUILD_SYS}.json ${WORKDIR}
-    sed -ie 's,"linker": ".*","linker": "${RUST_TARGET_CC}",g' ${WORKDIR}/${HOST_SYS}.json
-    RUST_TARGET_PATH="${WORKDIR}"
-    export RUST_TARGET_PATH
-}
-
-# Issue only on windows
-CVE_CHECK_WHITELIST += "CVE-2018-1000041"
-
-CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
-
-PACKAGECONFIG ??= "gdkpixbuf"
-# The gdk-pixbuf loader
-PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native"
-
-do_install:append() {
-	# Loadable modules don't need .a or .la on Linux
-	rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la
-}
-
-PACKAGES =+ "librsvg-gtk rsvg"
-FILES:rsvg = "${bindir}/rsvg* \
-	      ${datadir}/pixmaps/svg-viewer.svg \
-	      ${datadir}/themes"
-FILES:librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so \
-                     ${datadir}/thumbnailers/librsvg.thumbnailer"
-RRECOMMENDS:librsvg-gtk = "gdk-pixbuf-bin"
-
-PIXBUF_PACKAGES = "librsvg-gtk"
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg_2.52.5.bb b/poky/meta/recipes-gnome/librsvg/librsvg_2.52.5.bb
new file mode 100644
index 0000000..5a764d8
--- /dev/null
+++ b/poky/meta/recipes-gnome/librsvg/librsvg_2.52.5.bb
@@ -0,0 +1,75 @@
+SUMMARY = "Library for rendering SVG files"
+DESCRIPTION = "A small library to render Scalable Vector Graphics (SVG), \
+associated with the GNOME Project. It renders SVG files to Cairo surfaces. \
+Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to \
+the screen or to generate output for printing."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/librsvg"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/librsvg/issues"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+                   "
+
+SECTION = "x11/utils"
+DEPENDS = "cairo gdk-pixbuf glib-2.0 libcroco libxml2 pango"
+BBCLASSEXTEND = "native"
+
+inherit gnomebase gtk-doc pixbufcache upstream-version-is-even gobject-introspection rust
+
+SRC_URI += "file://0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch \
+           file://0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch \
+           "
+
+SRC_URI[archive.sha256sum] = "407cbbab518137ea18a3f3220bea180fbee75f3e5bd6ba10a7a862c1a6f74d82"
+
+# librsvg is still autotools-based, but is calling cargo from its automake-driven makefiles
+# so we cannot use cargo class directly, but still need bits and pieces from it 
+# for cargo to be happy
+BASEDEPENDS:append = " cargo-native"
+
+export RUST_BACKTRACE = "full"
+export RUSTFLAGS
+export RUST_TARGET_PATH
+
+export RUST_TARGET = "${HOST_SYS}"
+
+RUSTFLAGS:append:mips = " --cfg crossbeam_no_atomic_64"
+RUSTFLAGS:append:mipsel = " --cfg crossbeam_no_atomic_64"
+RUSTFLAGS:append:powerpc = " --cfg crossbeam_no_atomic_64"
+RUSTFLAGS:append:riscv32 = " --cfg crossbeam_no_atomic_64"
+
+# rust-cross writes the target linker binary into target json definition without any flags.
+# This breaks here because the linker isn't going to work without at least knowing where
+# the sysroot is. So copy the json to workdir, and patch in the path to wrapper from rust class
+# which supplies the needed flags.
+do_compile:prepend() {
+    cp ${STAGING_LIBDIR_NATIVE}/rustlib/${HOST_SYS}.json ${WORKDIR}
+    cp ${STAGING_LIBDIR_NATIVE}/rustlib/${BUILD_SYS}.json ${WORKDIR}
+    sed -ie 's,"linker": ".*","linker": "${RUST_TARGET_CC}",g' ${WORKDIR}/${HOST_SYS}.json
+    RUST_TARGET_PATH="${WORKDIR}"
+    export RUST_TARGET_PATH
+}
+
+# Issue only on windows
+CVE_CHECK_WHITELIST += "CVE-2018-1000041"
+
+CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
+
+PACKAGECONFIG ??= "gdkpixbuf"
+# The gdk-pixbuf loader
+PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native"
+
+do_install:append() {
+	# Loadable modules don't need .a or .la on Linux
+	rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la
+}
+
+PACKAGES =+ "librsvg-gtk rsvg"
+FILES:rsvg = "${bindir}/rsvg* \
+	      ${datadir}/pixmaps/svg-viewer.svg \
+	      ${datadir}/themes"
+FILES:librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so \
+                     ${datadir}/thumbnailers/librsvg.thumbnailer"
+RRECOMMENDS:librsvg-gtk = "gdk-pixbuf-bin"
+
+PIXBUF_PACKAGES = "librsvg-gtk"
diff --git a/poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.301.bb b/poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.301.bb
deleted file mode 100644
index 8e39ef0..0000000
--- a/poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.301.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Cantarell, a Humanist sans-serif font family"
-
-DESCRIPTION = "The Cantarell font typeface is designed as a \
-               contemporary Humanist sans serif, and was developed for \
-               on-screen reading; in particular, reading web pages on an \
-               HTC Dream mobile phone."
-
-HOMEPAGE = "https://gitlab.gnome.org/GNOME/cantarell-fonts/"
-SECTION = "fonts"
-LICENSE = "OFL-1.1 & Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fb1ef92b6909969a472a6ea3c4e99cb7"
-
-inherit gnomebase meson allarch fontcache pkgconfig
-SRC_URI[archive.sha256sum] = "3d35db0ac03f9e6b0d5a53577591b714238985f4cfc31a0aa17f26cd74675e83"
-
-# remove at next version upgrade or when output changes
-PR = "r1"
-HASHEQUIV_HASH_VERSION .= ".2"
-
-EXTRA_OEMESON += "-Duseprebuilt=true -Dbuildappstream=false"
-
-FILES:${PN} = "${datadir}/fonts ${datadir}/fontconfig"
-
-# This isn't a GNOME-style version do gnome_verdir fails. Just return the
-# version as that is how the directory is structured.
-def gnome_verdir(v):
-    return v
diff --git a/poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.303.1.bb b/poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.303.1.bb
new file mode 100644
index 0000000..a3a69ae
--- /dev/null
+++ b/poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.303.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Cantarell, a Humanist sans-serif font family"
+
+DESCRIPTION = "The Cantarell font typeface is designed as a \
+               contemporary Humanist sans serif, and was developed for \
+               on-screen reading; in particular, reading web pages on an \
+               HTC Dream mobile phone."
+
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/cantarell-fonts/"
+SECTION = "fonts"
+LICENSE = "OFL-1.1 & Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fb1ef92b6909969a472a6ea3c4e99cb7"
+
+inherit gnomebase meson allarch fontcache pkgconfig
+SRC_URI[archive.sha256sum] = "f9463a0659c63e57e381fdd753cf1929225395c5b49135989424761830530411"
+
+EXTRA_OEMESON += "-Duseprebuilt=true -Dbuildappstream=false"
+
+FILES:${PN} = "${datadir}/fonts ${datadir}/fontconfig"
diff --git a/poky/meta/recipes-graphics/drm/libdrm_2.4.107.bb b/poky/meta/recipes-graphics/drm/libdrm_2.4.107.bb
deleted file mode 100644
index b645898..0000000
--- a/poky/meta/recipes-graphics/drm/libdrm_2.4.107.bb
+++ /dev/null
@@ -1,60 +0,0 @@
-SUMMARY = "Userspace interface to the kernel DRM services"
-DESCRIPTION = "The runtime library for accessing the kernel DRM services.  DRM \
-stands for \"Direct Rendering Manager\", which is the kernel portion of the \
-\"Direct Rendering Infrastructure\" (DRI).  DRI is required for many hardware \
-accelerated OpenGL drivers."
-HOMEPAGE = "http://dri.freedesktop.org"
-SECTION = "x11/base"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71"
-PROVIDES = "drm"
-DEPENDS = "libpthread-stubs"
-
-SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz \
-          "
-
-SRC_URI[sha256sum] = "c554cef03b033636a975543eab363cc19081cb464595d3da1ec129f87370f888"
-
-inherit meson pkgconfig manpages
-
-PACKAGECONFIG ??= "libkms intel radeon amdgpu nouveau vmwgfx omap freedreno vc4 etnaviv install-test-programs"
-PACKAGECONFIG[libkms] = "-Dlibkms=true,-Dlibkms=false"
-PACKAGECONFIG[intel] = "-Dintel=true,-Dintel=false,libpciaccess"
-PACKAGECONFIG[radeon] = "-Dradeon=true,-Dradeon=false"
-PACKAGECONFIG[amdgpu] = "-Damdgpu=true,-Damdgpu=false"
-PACKAGECONFIG[nouveau] = "-Dnouveau=true,-Dnouveau=false"
-PACKAGECONFIG[vmwgfx] = "-Dvmwgfx=true,-Dvmwgfx=false"
-PACKAGECONFIG[omap] = "-Domap=true,-Domap=false"
-PACKAGECONFIG[exynos] = "-Dexynos=true,-Dexynos=false"
-PACKAGECONFIG[freedreno] = "-Dfreedreno=true,-Dfreedreno=false"
-PACKAGECONFIG[tegra] = "-Dtegra=true,-Dtegra=false"
-PACKAGECONFIG[vc4] = "-Dvc4=true,-Dvc4=false"
-PACKAGECONFIG[etnaviv] = "-Detnaviv=true,-Detnaviv=false"
-PACKAGECONFIG[freedreno-kgsl] = "-Dfreedreno-kgsl=true,-Dfreedreno-kgsl=false"
-PACKAGECONFIG[valgrind] = "-Dvalgrind=true,-Dvalgrind=false,valgrind"
-PACKAGECONFIG[install-test-programs] = "-Dinstall-test-programs=true,-Dinstall-test-programs=false"
-PACKAGECONFIG[cairo-tests] = "-Dcairo-tests=true,-Dcairo-tests=false"
-PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev"
-PACKAGECONFIG[manpages] = "-Dman-pages=true,-Dman-pages=false,libxslt-native xmlto-native python3-docutils-native"
-
-ALLOW_EMPTY:${PN}-drivers = "1"
-PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \
-             ${PN}-intel ${PN}-exynos ${PN}-kms ${PN}-freedreno ${PN}-amdgpu \
-             ${PN}-etnaviv"
-
-RRECOMMENDS:${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \
-                             ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \
-                             ${PN}-etnaviv"
-
-FILES:${PN}-tests = "${bindir}/*"
-FILES:${PN}-radeon = "${libdir}/libdrm_radeon.so.*"
-FILES:${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*"
-FILES:${PN}-omap = "${libdir}/libdrm_omap.so.*"
-FILES:${PN}-intel = "${libdir}/libdrm_intel.so.*"
-FILES:${PN}-exynos = "${libdir}/libdrm_exynos.so.*"
-FILES:${PN}-kms = "${libdir}/libkms*.so.*"
-FILES:${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*"
-FILES:${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.* ${datadir}/${PN}/amdgpu.ids"
-FILES:${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/drm/libdrm_2.4.109.bb b/poky/meta/recipes-graphics/drm/libdrm_2.4.109.bb
new file mode 100644
index 0000000..fb5ddd8
--- /dev/null
+++ b/poky/meta/recipes-graphics/drm/libdrm_2.4.109.bb
@@ -0,0 +1,60 @@
+SUMMARY = "Userspace interface to the kernel DRM services"
+DESCRIPTION = "The runtime library for accessing the kernel DRM services.  DRM \
+stands for \"Direct Rendering Manager\", which is the kernel portion of the \
+\"Direct Rendering Infrastructure\" (DRI).  DRI is required for many hardware \
+accelerated OpenGL drivers."
+HOMEPAGE = "http://dri.freedesktop.org"
+SECTION = "x11/base"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71"
+PROVIDES = "drm"
+DEPENDS = "libpthread-stubs"
+
+SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz \
+          "
+
+SRC_URI[sha256sum] = "629352e08c1fe84862ca046598d8a08ce14d26ab25ee1f4704f993d074cb7f26"
+
+inherit meson pkgconfig manpages
+
+PACKAGECONFIG ??= "libkms intel radeon amdgpu nouveau vmwgfx omap freedreno vc4 etnaviv install-test-programs"
+PACKAGECONFIG[libkms] = "-Dlibkms=true,-Dlibkms=false"
+PACKAGECONFIG[intel] = "-Dintel=true,-Dintel=false,libpciaccess"
+PACKAGECONFIG[radeon] = "-Dradeon=true,-Dradeon=false"
+PACKAGECONFIG[amdgpu] = "-Damdgpu=true,-Damdgpu=false"
+PACKAGECONFIG[nouveau] = "-Dnouveau=true,-Dnouveau=false"
+PACKAGECONFIG[vmwgfx] = "-Dvmwgfx=true,-Dvmwgfx=false"
+PACKAGECONFIG[omap] = "-Domap=true,-Domap=false"
+PACKAGECONFIG[exynos] = "-Dexynos=true,-Dexynos=false"
+PACKAGECONFIG[freedreno] = "-Dfreedreno=true,-Dfreedreno=false"
+PACKAGECONFIG[tegra] = "-Dtegra=true,-Dtegra=false"
+PACKAGECONFIG[vc4] = "-Dvc4=true,-Dvc4=false"
+PACKAGECONFIG[etnaviv] = "-Detnaviv=true,-Detnaviv=false"
+PACKAGECONFIG[freedreno-kgsl] = "-Dfreedreno-kgsl=true,-Dfreedreno-kgsl=false"
+PACKAGECONFIG[valgrind] = "-Dvalgrind=true,-Dvalgrind=false,valgrind"
+PACKAGECONFIG[install-test-programs] = "-Dinstall-test-programs=true,-Dinstall-test-programs=false"
+PACKAGECONFIG[cairo-tests] = "-Dcairo-tests=true,-Dcairo-tests=false"
+PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev"
+PACKAGECONFIG[manpages] = "-Dman-pages=true,-Dman-pages=false,libxslt-native xmlto-native python3-docutils-native"
+
+ALLOW_EMPTY:${PN}-drivers = "1"
+PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \
+             ${PN}-intel ${PN}-exynos ${PN}-kms ${PN}-freedreno ${PN}-amdgpu \
+             ${PN}-etnaviv"
+
+RRECOMMENDS:${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \
+                             ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \
+                             ${PN}-etnaviv"
+
+FILES:${PN}-tests = "${bindir}/*"
+FILES:${PN}-radeon = "${libdir}/libdrm_radeon.so.*"
+FILES:${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*"
+FILES:${PN}-omap = "${libdir}/libdrm_omap.so.*"
+FILES:${PN}-intel = "${libdir}/libdrm_intel.so.*"
+FILES:${PN}-exynos = "${libdir}/libdrm_exynos.so.*"
+FILES:${PN}-kms = "${libdir}/libkms*.so.*"
+FILES:${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*"
+FILES:${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.* ${datadir}/${PN}/amdgpu.ids"
+FILES:${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/freetype/freetype/use-right-libtool.patch b/poky/meta/recipes-graphics/freetype/freetype/use-right-libtool.patch
deleted file mode 100644
index b389455..0000000
--- a/poky/meta/recipes-graphics/freetype/freetype/use-right-libtool.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 50499e4482d40cff2ef05905c658ba4380e7e6fc Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Thu, 7 Jan 2016 21:13:07 +0000
-Subject: [PATCH] freetype: enable out-of-tree builds, and use host zlib
-
-Freetype think that it knows best about where libtool is, and explicitly the
-libtool autoconf macros telling it where to find the libtool script.  Of course
-we prefix the script with the target triplet, so it's wrong.  Fix this by
-removing the forced assignment, so the configure script's knowledge of where it
-put libtool is used.
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
----
- builds/unix/unix-cc.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/builds/unix/unix-cc.in b/builds/unix/unix-cc.in
-index 89be450..72609d3 100644
---- a/builds/unix/unix-cc.in
-+++ b/builds/unix/unix-cc.in
-@@ -16,7 +16,7 @@ CC           := @CC@
- COMPILER_SEP := $(SEP)
- FT_LIBTOOL_DIR ?= $(PLATFORM_DIR)
- 
--LIBTOOL := $(FT_LIBTOOL_DIR)/libtool
-+LIBTOOL := $(FT_LIBTOOL_DIR)/@LIBTOOL@ --tag CC
- 
- 
- # The object file extension (for standard and static libraries).  This can be
diff --git a/poky/meta/recipes-graphics/freetype/freetype_2.11.0.bb b/poky/meta/recipes-graphics/freetype/freetype_2.11.0.bb
deleted file mode 100644
index 1ec34e7..0000000
--- a/poky/meta/recipes-graphics/freetype/freetype_2.11.0.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "Freetype font rendering library"
-DESCRIPTION = "FreeType is a software font engine that is designed to be small, efficient, \
-highly customizable, and portable while capable of producing high-quality output (glyph \
-images). It can be used in graphics libraries, display servers, font conversion tools, text \
-image generation tools, and many other products as well."
-HOMEPAGE = "http://www.freetype.org/"
-BUGTRACKER = "https://savannah.nongnu.org/bugs/?group=freetype"
-SECTION = "libs"
-
-LICENSE = "FreeType | GPLv2+"
-LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=a5927784d823d443c6cae55701d01553 \
-                    file://docs/FTL.TXT;md5=9f37b4e6afa3fef9dba8932b16bd3f97 \
-                    file://docs/GPLv2.TXT;md5=8ef380476f642c20ebf40fecb0add2ec"
-
-SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BP}.tar.xz \
-           file://use-right-libtool.patch \
-          "
-SRC_URI[sha256sum] = "8bee39bd3968c4804b70614a0a3ad597299ad0e824bc8aad5ce8aaf48067bde7"
-
-UPSTREAM_CHECK_REGEX = "freetype-(?P<pver>\d+(\.\d+)+)"
-
-inherit autotools pkgconfig multilib_header
-
-# Adapt autotools to work with the minimal autoconf usage in freetype
-AUTOTOOLS_SCRIPT_PATH = "${S}/builds/unix"
-CONFIGURE_SCRIPT = "${S}/configure"
-EXTRA_AUTORECONF += "--exclude=autoheader --exclude=automake"
-
-PACKAGECONFIG ??= "zlib pixmap"
-
-PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2"
-# harfbuzz results in a circular dependency so enabling is non-trivial
-PACKAGECONFIG[harfbuzz] = "--with-harfbuzz,--without-harfbuzz,harfbuzz"
-PACKAGECONFIG[pixmap] = "--with-png,--without-png,libpng"
-PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
-PACKAGECONFIG[freetypeconfig] = "--enable-freetype-config=yes,--enable-freetype-config=no,"
-
-EXTRA_OECONF = "CC_BUILD='${BUILD_CC}'"
-
-TARGET_CPPFLAGS += "-D_FILE_OFFSET_BITS=64"
-
-do_install:append() {
-	oe_multilib_header freetype2/freetype/config/ftconfig.h
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/freetype/freetype_2.11.1.bb b/poky/meta/recipes-graphics/freetype/freetype_2.11.1.bb
new file mode 100644
index 0000000..04b56ad
--- /dev/null
+++ b/poky/meta/recipes-graphics/freetype/freetype_2.11.1.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Freetype font rendering library"
+DESCRIPTION = "FreeType is a software font engine that is designed to be small, efficient, \
+highly customizable, and portable while capable of producing high-quality output (glyph \
+images). It can be used in graphics libraries, display servers, font conversion tools, text \
+image generation tools, and many other products as well."
+HOMEPAGE = "http://www.freetype.org/"
+BUGTRACKER = "https://savannah.nongnu.org/bugs/?group=freetype"
+SECTION = "libs"
+
+LICENSE = "FreeType | GPLv2+"
+LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=a5927784d823d443c6cae55701d01553 \
+                    file://docs/FTL.TXT;md5=9f37b4e6afa3fef9dba8932b16bd3f97 \
+                    file://docs/GPLv2.TXT;md5=8ef380476f642c20ebf40fecb0add2ec"
+
+SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BP}.tar.xz"
+SRC_URI[sha256sum] = "3333ae7cfda88429c97a7ae63b7d01ab398076c3b67182e960e5684050f2c5c8"
+
+UPSTREAM_CHECK_REGEX = "freetype-(?P<pver>\d+(\.\d+)+)"
+
+inherit autotools pkgconfig multilib_header
+
+# Adapt autotools to work with the minimal autoconf usage in freetype
+AUTOTOOLS_SCRIPT_PATH = "${S}/builds/unix"
+CONFIGURE_SCRIPT = "${S}/configure"
+EXTRA_AUTORECONF += "--exclude=autoheader --exclude=automake"
+
+PACKAGECONFIG ??= "zlib pixmap"
+
+PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2"
+# harfbuzz results in a circular dependency so enabling is non-trivial
+PACKAGECONFIG[harfbuzz] = "--with-harfbuzz,--without-harfbuzz,harfbuzz"
+PACKAGECONFIG[pixmap] = "--with-png,--without-png,libpng"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
+PACKAGECONFIG[freetypeconfig] = "--enable-freetype-config=yes,--enable-freetype-config=no,"
+
+EXTRA_OECONF = "CC_BUILD='${BUILD_CC}'"
+
+TARGET_CPPFLAGS += "-D_FILE_OFFSET_BITS=64"
+
+do_install:append() {
+	oe_multilib_header freetype2/freetype/config/ftconfig.h
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/glew/glew/0001-Fix-build-race-in-Makefile.patch b/poky/meta/recipes-graphics/glew/glew/0001-Fix-build-race-in-Makefile.patch
index 7edcfe8..2418646 100644
--- a/poky/meta/recipes-graphics/glew/glew/0001-Fix-build-race-in-Makefile.patch
+++ b/poky/meta/recipes-graphics/glew/glew/0001-Fix-build-race-in-Makefile.patch
@@ -1,4 +1,4 @@
-Upstream-Status: Submitted [https://github.com/nigels-com/glew/pull/311]
+Upstream-Status: Backport [767e0316450911f1158bd4f7fd8dcd066bae5c55]
 Signed-off-by: Ross Burton <ross.burton@arm.com>
 
 From 0ce0a85597db48a2fca619bd95e34af091e54ae8 Mon Sep 17 00:00:00 2001
diff --git a/poky/meta/recipes-graphics/glew/glew/no-strip.patch b/poky/meta/recipes-graphics/glew/glew/no-strip.patch
index e411f11..5708d93 100644
--- a/poky/meta/recipes-graphics/glew/glew/no-strip.patch
+++ b/poky/meta/recipes-graphics/glew/glew/no-strip.patch
@@ -1,7 +1,7 @@
 Don't forcibly strip the binaries.
 
 Signed-off-by: Ross Burton <ross.burton@intel.com>
-Upstream-Status: Pending
+Upstream-Status: Backport [d7693eea09ac76c67f5f3aa538bb911ce2291e2c]
 
 diff --git a/Makefile b/Makefile
 index 6a9803c..170c0ce 100644
diff --git a/poky/meta/recipes-graphics/glew/glew/notempdir.patch b/poky/meta/recipes-graphics/glew/glew/notempdir.patch
index 8d79ce0..68b46b6 100644
--- a/poky/meta/recipes-graphics/glew/glew/notempdir.patch
+++ b/poky/meta/recipes-graphics/glew/glew/notempdir.patch
@@ -2,6 +2,8 @@
 creates a new temp directory in /tmp/ for every invocation of make. Lets
 not do that.
 
+https://github.com/nigels-com/glew/issues/334
+
 Upstream-Status: Pending [a revised version would be needed for upstream]
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
 
diff --git a/poky/meta/recipes-graphics/glslang/glslang_11.6.0.bb b/poky/meta/recipes-graphics/glslang/glslang_11.6.0.bb
deleted file mode 100644
index c39be55..0000000
--- a/poky/meta/recipes-graphics/glslang/glslang_11.6.0.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "OpenGL / OpenGL ES Reference Compiler"
-DESCRIPTION = "Glslang is the official reference compiler front end for the \
-OpenGL ES and OpenGL shading languages. It implements a strict interpretation \
-of the specifications for these languages. It is open and free for anyone to use, \
-either from a command line or programmatically."
-SECTION = "graphics"
-HOMEPAGE = "https://www.khronos.org/opengles/sdk/tools/Reference-Compiler"
-LICENSE = "BSD-3-Clause & BSD-2-Clause & MIT & Apache-2.0 & GPL-3-with-bison-exception"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c5ce49c0456e9b413b98a4368c378229"
-
-SRCREV = "2fb89a0072ae7316af1c856f22663fde4928128a"
-SRC_URI = "git://github.com/KhronosGroup/glslang.git;protocol=https \
-           file://0001-generate-glslang-pkg-config.patch"
-UPSTREAM_CHECK_GITTAGREGEX = "^(?P<pver>\d+(\.\d+)+)$"
-S = "${WORKDIR}/git"
-
-inherit cmake python3native
-
-EXTRA_OECMAKE = " \
-    -DCMAKE_BUILD_TYPE=Release \
-    -DBUILD_SHARED_LIBS=ON \
-    -DENABLE_PCH=OFF \
-    -DENABLE_CTEST=OFF \
-    -DBUILD_EXTERNAL=OFF \
-"
-
-SOLIBSDEV = "glslang.so"
-# all the other libraries are unversioned, so pack it on PN
-FILES:${PN} += "${libdir}/*.so"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/glslang/glslang_11.7.1.bb b/poky/meta/recipes-graphics/glslang/glslang_11.7.1.bb
new file mode 100644
index 0000000..30d9954
--- /dev/null
+++ b/poky/meta/recipes-graphics/glslang/glslang_11.7.1.bb
@@ -0,0 +1,31 @@
+SUMMARY = "OpenGL / OpenGL ES Reference Compiler"
+DESCRIPTION = "Glslang is the official reference compiler front end for the \
+OpenGL ES and OpenGL shading languages. It implements a strict interpretation \
+of the specifications for these languages. It is open and free for anyone to use, \
+either from a command line or programmatically."
+SECTION = "graphics"
+HOMEPAGE = "https://www.khronos.org/opengles/sdk/tools/Reference-Compiler"
+LICENSE = "BSD-3-Clause & BSD-2-Clause & MIT & Apache-2.0 & GPL-3-with-bison-exception"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c5ce49c0456e9b413b98a4368c378229"
+
+SRCREV = "c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5"
+SRC_URI = "git://github.com/KhronosGroup/glslang.git;protocol=https;branch=master \
+           file://0001-generate-glslang-pkg-config.patch"
+UPSTREAM_CHECK_GITTAGREGEX = "^(?P<pver>\d+(\.\d+)+)$"
+S = "${WORKDIR}/git"
+
+inherit cmake python3native
+
+EXTRA_OECMAKE = " \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DBUILD_SHARED_LIBS=ON \
+    -DENABLE_PCH=OFF \
+    -DENABLE_CTEST=OFF \
+    -DBUILD_EXTERNAL=OFF \
+"
+
+SOLIBSDEV = "glslang.so"
+# all the other libraries are unversioned, so pack it on PN
+FILES:${PN} += "${libdir}/*.so"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_3.0.0.bb b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_3.0.0.bb
deleted file mode 100644
index fef9453..0000000
--- a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_3.0.0.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SUMMARY = "Text shaping library"
-DESCRIPTION = "HarfBuzz is an OpenType text shaping engine."
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz"
-BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6ee0f16281694fb6aa689cca1e0fb3da \
-                    file://src/hb-ucd.cc;beginline=1;endline=15;md5=29d4dcb6410429195df67efe3382d8bc \
-                    "
-
-UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
-UPSTREAM_CHECK_REGEX = "harfbuzz-(?P<pver>\d+(\.\d+)+).tar"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "036b0ee118451539783ec7864148bb4106be42a2eb964df4e83e6703ec46f3d9"
-
-inherit meson pkgconfig lib_package gtk-doc gobject-introspection
-
-GIR_MESON_ENABLE_FLAG = 'enabled'
-GIR_MESON_DISABLE_FLAG = 'disabled'
-GTKDOC_MESON_ENABLE_FLAG = 'enabled'
-GTKDOC_MESON_DISABLE_FLAG = 'disabled'
-
-PACKAGECONFIG ??= "cairo freetype glib icu"
-PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo"
-PACKAGECONFIG[freetype] = "-Dfreetype=enabled,-Dfreetype=disabled,freetype"
-PACKAGECONFIG[glib] = "-Dglib=enabled,-Dglib=disabled,glib-2.0"
-PACKAGECONFIG[graphite] = "-Dgraphite=enabled,-Dgraphite=disabled,graphite2"
-PACKAGECONFIG[icu] = "-Dicu=enabled,-Dicu=disabled,icu"
-
-PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset"
-
-LEAD_SONAME = "libharfbuzz.so"
-
-do_install:append() {
-    # If no tools are installed due to PACKAGECONFIG then this directory is
-    #still installed, so remove it to stop packaging wanings.
-    rmdir --ignore-fail-on-non-empty ${D}${bindir}
-}
-
-FILES:${PN}-icu = "${libdir}/libharfbuzz-icu.so.*"
-FILES:${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \
-                       ${libdir}/libharfbuzz-icu.so \
-                       ${libdir}/pkgconfig/harfbuzz-icu.pc \
-"
-FILES:${PN}-subset = "${libdir}/libharfbuzz-subset.so.*"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_3.2.0.bb b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_3.2.0.bb
new file mode 100644
index 0000000..647bafc
--- /dev/null
+++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_3.2.0.bb
@@ -0,0 +1,48 @@
+SUMMARY = "Text shaping library"
+DESCRIPTION = "HarfBuzz is an OpenType text shaping engine."
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ee0f16281694fb6aa689cca1e0fb3da \
+                    file://src/hb-ucd.cc;beginline=1;endline=15;md5=29d4dcb6410429195df67efe3382d8bc \
+                    "
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+UPSTREAM_CHECK_REGEX = "harfbuzz-(?P<pver>\d+(\.\d+)+).tar"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "0ada50a1c199bb6f70843ab893c55867743a443b84d087d54df08ad883ebc2cd"
+
+inherit meson pkgconfig lib_package gtk-doc gobject-introspection
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_ENABLE_FLAG = 'enabled'
+GTKDOC_MESON_DISABLE_FLAG = 'disabled'
+
+PACKAGECONFIG ??= "cairo freetype glib icu"
+PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo"
+PACKAGECONFIG[freetype] = "-Dfreetype=enabled,-Dfreetype=disabled,freetype"
+PACKAGECONFIG[glib] = "-Dglib=enabled,-Dglib=disabled,glib-2.0"
+PACKAGECONFIG[graphite] = "-Dgraphite=enabled,-Dgraphite=disabled,graphite2"
+PACKAGECONFIG[icu] = "-Dicu=enabled,-Dicu=disabled,icu"
+
+PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset"
+
+LEAD_SONAME = "libharfbuzz.so"
+
+do_install:append() {
+    # If no tools are installed due to PACKAGECONFIG then this directory is
+    #still installed, so remove it to stop packaging wanings.
+    rmdir --ignore-fail-on-non-empty ${D}${bindir}
+}
+
+FILES:${PN}-icu = "${libdir}/libharfbuzz-icu.so.*"
+FILES:${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \
+                       ${libdir}/libharfbuzz-icu.so \
+                       ${libdir}/pkgconfig/harfbuzz-icu.pc \
+"
+FILES:${PN}-subset = "${libdir}/libharfbuzz-subset.so.*"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/0001-lib-meson.build-fix-meson-0.60-compatibility.patch b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/0001-lib-meson.build-fix-meson-0.60-compatibility.patch
index 159425a..e7c7820 100644
--- a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/0001-lib-meson.build-fix-meson-0.60-compatibility.patch
+++ b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/0001-lib-meson.build-fix-meson-0.60-compatibility.patch
@@ -3,7 +3,7 @@
 Date: Mon, 25 Oct 2021 18:18:15 +0200
 Subject: [PATCH] lib/meson.build: fix meson 0.60 compatibility
 
-Upstream-Status: Pending
+Upstream-Status: Backport [https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/commit/963917a3565466832a3b2fc22e9285d34a0bf944]
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
 ---
  lib/meson.build | 2 +-
diff --git a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
index 7d912e4..bb2f956 100644
--- a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
+++ b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
@@ -12,7 +12,7 @@
 SRCREV = "203def046b466fb2da67f9f15552d84e1c0b41f2"
 PV = "1.26"
 
-SRC_URI = "git://gitlab.freedesktop.org/drm/igt-gpu-tools.git;protocol=https \
+SRC_URI = "git://gitlab.freedesktop.org/drm/igt-gpu-tools.git;protocol=https;branch=master \
            file://0001-lib-meson.build-fix-meson-0.60-compatibility.patch \
            "
 
diff --git a/poky/meta/recipes-graphics/jpeg/files/0001-libjpeg-turbo-fix-package_qa-error.patch b/poky/meta/recipes-graphics/jpeg/files/0001-libjpeg-turbo-fix-package_qa-error.patch
index 152db44..fab5109 100644
--- a/poky/meta/recipes-graphics/jpeg/files/0001-libjpeg-turbo-fix-package_qa-error.patch
+++ b/poky/meta/recipes-graphics/jpeg/files/0001-libjpeg-turbo-fix-package_qa-error.patch
@@ -7,7 +7,7 @@
 libjpeg.so.62.3.0 contains probably-redundant RPATH /usr/lib [useless-rpaths]
 usr/bin/cjpeg contains probably-redundant RPATH /usr/lib
 
-Upstream-Status: Inappropriate[oe-specific]
+Upstream-Status: Inappropriate [oe-specific]
 
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
 Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
diff --git a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.1.1.bb b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.1.1.bb
deleted file mode 100644
index fbed6ee..0000000
--- a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.1.1.bb
+++ /dev/null
@@ -1,62 +0,0 @@
-SUMMARY = "Hardware accelerated JPEG compression/decompression library"
-DESCRIPTION = "libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression"
-HOMEPAGE = "http://libjpeg-turbo.org/"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=13;md5=8a61af33cc1c681cd5cc297150bbb5bd \
-                    file://jpeglib.h;endline=16;md5=52b5eaade8d5b6a452a7693dfe52c084 \
-                    file://djpeg.c;endline=11;md5=b61f01ad6aff437b34d1f9e8004280a4 \
-                    "
-DEPENDS:append:x86-64:class-target = " nasm-native"
-DEPENDS:append:x86:class-target = " nasm-native"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
-           file://0001-libjpeg-turbo-fix-package_qa-error.patch \
-           "
-
-SRC_URI[sha256sum] = "b76aaedefb71ba882cbad4e9275b30c2ae493e3195be0a099425b5c6b99bd510"
-UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/"
-UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P<pver>(\d+[\.\-_]*)+)/"
-
-PE = "1"
-
-# Drop-in replacement for jpeg
-PROVIDES = "jpeg"
-RPROVIDES:${PN} += "jpeg"
-RREPLACES:${PN} += "jpeg"
-RCONFLICTS:${PN} += "jpeg"
-
-inherit cmake pkgconfig
-
-export NASMENV = "--reproducible --debug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
-
-# Add nasm-native dependency consistently for all build arches is hard
-EXTRA_OECMAKE:append:class-native = " -DWITH_SIMD=False"
-EXTRA_OECMAKE:append:class-nativesdk = " -DWITH_SIMD=False"
-
-# Work around missing x32 ABI support
-EXTRA_OECMAKE:append:class-target = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", "-DWITH_SIMD=False", "", d)}"
-
-# Work around missing non-floating point ABI support in MIPS
-EXTRA_OECMAKE:append:class-target = " ${@bb.utils.contains("MIPSPKGSFX_FPU", "-nf", "-DWITH_SIMD=False", "", d)}"
-
-EXTRA_OECMAKE:append:class-target:arm = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "", "-DWITH_SIMD=False", d)}"
-EXTRA_OECMAKE:append:class-target:armeb = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "", "-DWITH_SIMD=False", d)}"
-
-# Provide a workaround if Altivec unit is not present in PPC
-EXTRA_OECMAKE:append:class-target:powerpc = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}"
-EXTRA_OECMAKE:append:class-target:powerpc64 = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}"
-EXTRA_OECMAKE:append:class-target:powerpc64le = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}"
-
-DEBUG_OPTIMIZATION:append:armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
-DEBUG_OPTIMIZATION:append:armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
-
-PACKAGES =+ "jpeg-tools libturbojpeg"
-
-DESCRIPTION:jpeg-tools = "The jpeg-tools package includes client programs to access libjpeg functionality.  These tools allow for the compression, decompression, transformation and display of JPEG files and benchmarking of the libjpeg library."
-FILES:jpeg-tools = "${bindir}/*"
-
-DESCRIPTION:libturbojpeg = "A SIMD-accelerated JPEG codec which provides only TurboJPEG APIs"
-FILES:libturbojpeg = "${libdir}/libturbojpeg.so.*"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.1.2.bb b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.1.2.bb
new file mode 100644
index 0000000..25b83f7
--- /dev/null
+++ b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.1.2.bb
@@ -0,0 +1,62 @@
+SUMMARY = "Hardware accelerated JPEG compression/decompression library"
+DESCRIPTION = "libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression"
+HOMEPAGE = "http://libjpeg-turbo.org/"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=13;md5=8a61af33cc1c681cd5cc297150bbb5bd \
+                    file://jpeglib.h;endline=16;md5=52b5eaade8d5b6a452a7693dfe52c084 \
+                    file://djpeg.c;endline=11;md5=b61f01ad6aff437b34d1f9e8004280a4 \
+                    "
+DEPENDS:append:x86-64:class-target = " nasm-native"
+DEPENDS:append:x86:class-target = " nasm-native"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
+           file://0001-libjpeg-turbo-fix-package_qa-error.patch \
+           "
+
+SRC_URI[sha256sum] = "09b96cb8cbff9ea556a9c2d173485fd19488844d55276ed4f42240e1e2073ce5"
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/"
+UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P<pver>(\d+[\.\-_]*)+)/"
+
+PE = "1"
+
+# Drop-in replacement for jpeg
+PROVIDES = "jpeg"
+RPROVIDES:${PN} += "jpeg"
+RREPLACES:${PN} += "jpeg"
+RCONFLICTS:${PN} += "jpeg"
+
+inherit cmake pkgconfig
+
+export NASMENV = "--reproducible --debug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
+
+# Add nasm-native dependency consistently for all build arches is hard
+EXTRA_OECMAKE:append:class-native = " -DWITH_SIMD=False"
+EXTRA_OECMAKE:append:class-nativesdk = " -DWITH_SIMD=False"
+
+# Work around missing x32 ABI support
+EXTRA_OECMAKE:append:class-target = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", "-DWITH_SIMD=False", "", d)}"
+
+# Work around missing non-floating point ABI support in MIPS
+EXTRA_OECMAKE:append:class-target = " ${@bb.utils.contains("MIPSPKGSFX_FPU", "-nf", "-DWITH_SIMD=False", "", d)}"
+
+EXTRA_OECMAKE:append:class-target:arm = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "", "-DWITH_SIMD=False", d)}"
+EXTRA_OECMAKE:append:class-target:armeb = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "", "-DWITH_SIMD=False", d)}"
+
+# Provide a workaround if Altivec unit is not present in PPC
+EXTRA_OECMAKE:append:class-target:powerpc = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}"
+EXTRA_OECMAKE:append:class-target:powerpc64 = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}"
+EXTRA_OECMAKE:append:class-target:powerpc64le = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}"
+
+DEBUG_OPTIMIZATION:append:armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
+DEBUG_OPTIMIZATION:append:armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
+
+PACKAGES =+ "jpeg-tools libturbojpeg"
+
+DESCRIPTION:jpeg-tools = "The jpeg-tools package includes client programs to access libjpeg functionality.  These tools allow for the compression, decompression, transformation and display of JPEG files and benchmarking of the libjpeg library."
+FILES:jpeg-tools = "${bindir}/*"
+
+DESCRIPTION:libturbojpeg = "A SIMD-accelerated JPEG codec which provides only TurboJPEG APIs"
+FILES:libturbojpeg = "${libdir}/libturbojpeg.so.*"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/kmscube/kmscube/0001-texturator-Use-correct-GL-extension-header.patch b/poky/meta/recipes-graphics/kmscube/kmscube/0001-texturator-Use-correct-GL-extension-header.patch
new file mode 100644
index 0000000..5965782
--- /dev/null
+++ b/poky/meta/recipes-graphics/kmscube/kmscube/0001-texturator-Use-correct-GL-extension-header.patch
@@ -0,0 +1,33 @@
+From 2b74e0e32235f6ab2e3e42d53dea985a7ba6227f Mon Sep 17 00:00:00 2001
+From: Damian Hobson-Garcia <dhobsong@igel.co.jp>
+Date: Wed, 16 Dec 2020 11:08:25 +0900
+Subject: [PATCH] texturator: Use correct GL extension header
+
+gl2ext.h is the extenstion header for OpenGL ES 2.0 and all later
+versions according to the Khronos documentation [1].  gl3ext.h is either
+an empty stub, or may not even exist on some platforms.
+
+[1]: https://www.khronos.org/registry/OpenGL/index_es.php#headers
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/kmscube/-/merge_requests/26]
+Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
+---
+ texturator.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/texturator.c b/texturator.c
+index d9335d7..6d97856 100644
+--- a/texturator.c
++++ b/texturator.c
+@@ -30,7 +30,7 @@
+ #include <math.h>
+ 
+ #include <GLES3/gl3.h>
+-#include <GLES3/gl3ext.h>
++#include <GLES2/gl2ext.h>
+ 
+ #ifdef HAVE_LIBPNG
+ #include <png.h>
+-- 
+2.33.1
+
diff --git a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
index f4e6cd4..54993be 100644
--- a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
+++ b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
@@ -6,12 +6,13 @@
 HOMEPAGE = "https://cgit.freedesktop.org/mesa/kmscube/"
 LICENSE = "MIT"
 SECTION = "graphics"
-DEPENDS = "virtual/libgles2 virtual/egl libdrm"
+DEPENDS = "virtual/libgles3 virtual/libgles2 virtual/egl libdrm"
 
 LIC_FILES_CHKSUM = "file://kmscube.c;beginline=1;endline=23;md5=8b309d4ee67b7315ff7381270dd631fb"
 
 SRCREV = "9f63f359fab1b5d8e862508e4e51c9dfe339ccb0"
 SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https"
+SRC_URI += "file://0001-texturator-Use-correct-GL-extension-header.patch"
 UPSTREAM_CHECK_COMMITS = "1"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-graphics/libfakekey/libfakekey_git.bb b/poky/meta/recipes-graphics/libfakekey/libfakekey_git.bb
index ab6f5ac..33ea6fe 100644
--- a/poky/meta/recipes-graphics/libfakekey/libfakekey_git.bb
+++ b/poky/meta/recipes-graphics/libfakekey/libfakekey_git.bb
@@ -13,7 +13,7 @@
 SRCREV = "7ad885912efb2131e80914e964d5e635b0d07b40"
 PV = "0.3+git${SRCPV}"
 
-SRC_URI = "git://git.yoctoproject.org/${BPN}"
+SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb b/poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb
index 1a31677..06bd682 100644
--- a/poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb
+++ b/poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb
@@ -17,7 +17,7 @@
 
 #SRCREV for 1.12
 SRCREV = "e846ee434f8e23d9db38af13c523f791495e0e87"
-SRC_URI = "git://git.yoctoproject.org/${BPN}"
+SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-sdlchecks.cmake-pass-cflags-to-the-appropriate-cmake.patch b/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-sdlchecks.cmake-pass-cflags-to-the-appropriate-cmake.patch
new file mode 100644
index 0000000..e5d6cda
--- /dev/null
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-sdlchecks.cmake-pass-cflags-to-the-appropriate-cmake.patch
@@ -0,0 +1,46 @@
+From dbf0a3f6ea77a1d5f5e3c4dec7a22fcc09a49537 Mon Sep 17 00:00:00 2001
+From: Max Krummenacher <max.krummenacher@toradex.com>
+Date: Mon, 10 Jan 2022 21:52:02 +0000
+Subject: [PATCH] cmake: sdlchecks.cmake: pass cflags to the appropriate cmake
+ variable
+
+If egl.pc sets at least two macros as the i.MX Vivante driver does, e.g.:
+| Cflags: -I${includedir} -DLINUX -DWL_EGL_PLATFORM
+
+then we get the following error during configuration:
+
+| -- Performing Test HAVE_OPENGL_EGL
+| CMake Error: Parse error in command line argument: WL_EGL_PLATFORM
+|  Should be: VAR:type=value
+
+If one changes to add a value to the macro, e.g.
+| Cflags: -I${includedir} -DLINUX=1 -DWL_EGL_PLATFORM=1
+then cmake does not error out but the macro is not passed to the
+C compiler.
+
+CMAKE_REQUIRED_FLAGS is the wrong variable to pass the CFLAGS in,
+CMAKE_REQUIRED_DEFINITIONS should be used.
+
+Upstream-Status: Submitted [https://github.com/libsdl-org/SDL/pull/5209]
+Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
+---
+ cmake/sdlchecks.cmake | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake
+index 32be19c..f61b8df 100644
+--- a/cmake/sdlchecks.cmake
++++ b/cmake/sdlchecks.cmake
+@@ -808,8 +808,7 @@ endmacro()
+ macro(CheckEGL)
+   if (SDL_OPENGL OR SDL_OPENGLES)
+     pkg_check_modules(EGL egl)
+-    string(REPLACE "-D_THREAD_SAFE;" "-D_THREAD_SAFE=1;" EGL_CFLAGS "${EGL_CFLAGS}")
+-    set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${EGL_CFLAGS}")
++    set(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} ${EGL_CFLAGS}")
+     check_c_source_compiles("
+         #define EGL_API_FB
+         #define MESA_EGL_NO_X11_HEADERS
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch b/poky/meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch
deleted file mode 100644
index 8ca52eb..0000000
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From e0f4b6d18ce6f025c78773e909b9c395ad833c7a Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Mon, 29 Jul 2019 08:38:32 +0800
-Subject: [PATCH] configure: fix dependencies
-
-Many source files include e.g. wayland-protocols.h which should be found in the
-sysroot but SDL wants to build its own headers from the XML definitions.
-
-However the rules to generate those headers are only dependencies of the
-top-level libSDL2.la object so can be built in parallel with the rest of the
-objects, which can lead to interesting errors if the header is parsed by the
-compiler whilst it's being written by another process:
-
-| gen/wayland-client-protocol.h:3: error: unterminated #ifndef
-|  #ifndef WAYLAND_CLIENT_PROTOCOL_H
-
-Solve this by adding more dependencies so the generated files are built before
-the primary objects.
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-[Moved to configure.ac]
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- configure.ac | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9e782c6..997915a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -4061,7 +4061,7 @@ DEPENDS=`echo $SOURCES | tr ' ' '\n'`
- for EXT in asm cc m c S; do
-     OBJECTS=`echo "$OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.'$EXT',$(objects)/\1.lo,g'`
-     DEPENDS=`echo "$DEPENDS" | sed "s,^\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.$EXT\\$,\\\\
--\\$(objects)/\\2.lo: \\1/\\2.$EXT \\$(objects)/.created\\\\
-+\\$(objects)/\\2.lo: \\1/\\2.$EXT \\$(objects)/.created \\$(GEN_OBJECTS)\\\\
- 	\\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
- done
- 
-@@ -4078,14 +4078,14 @@ SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
- SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES`
- SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'`
- SDLMAIN_DEPENDS=`echo "$SDLMAIN_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
--\\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created\\\\
-+\\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created \\$(GEN_OBJECTS)\\\\
- 	\\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
- 
- SDLTEST_OBJECTS=`echo $SDLTEST_SOURCES`
- SDLTEST_DEPENDS=`echo $SDLTEST_SOURCES`
- SDLTEST_OBJECTS=`echo "$SDLTEST_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'`
- SDLTEST_DEPENDS=`echo "$SDLTEST_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
--\\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created\\\\
-+\\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created \\$(GEN_OBJECTS)\\\\
- 	\\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
- 
- # Set runtime shared library paths as needed
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2/optional-libunwind-generic.patch b/poky/meta/recipes-graphics/libsdl2/libsdl2/optional-libunwind-generic.patch
new file mode 100644
index 0000000..757b99a
--- /dev/null
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2/optional-libunwind-generic.patch
@@ -0,0 +1,18 @@
+Do not error when libunwind-generic is not found, Not all
+implementations of libunwind will provide this library therefore
+do not make it hard error if its not found.
+
+Upstream-Status: Submitted [https://github.com/libsdl-org/SDL/pull/5194]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1358,7 +1358,7 @@ elseif(UNIX AND NOT APPLE AND NOT ANDROI
+       if(HAVE_LIBUNWIND_H)
+         # We've already found the header, so REQUIRE the lib to be present
+         pkg_search_module(UNWIND REQUIRED libunwind)
+-        pkg_search_module(UNWIND_GENERIC REQUIRED libunwind-generic)
++        pkg_search_module(UNWIND_GENERIC libunwind-generic)
+         list(APPEND EXTRA_LIBS ${UNWIND_LIBRARIES} ${UNWIND_GENERIC_LIBRARIES})
+       endif()
+     endif()
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.16.bb b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.16.bb
deleted file mode 100644
index bd7dea2..0000000
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.16.bb
+++ /dev/null
@@ -1,79 +0,0 @@
-SUMMARY = "Simple DirectMedia Layer"
-DESCRIPTION = "Simple DirectMedia Layer is a cross-platform multimedia \
-library designed to provide low level access to audio, keyboard, mouse, \
-joystick, 3D hardware via OpenGL, and 2D video framebuffer."
-HOMEPAGE = "http://www.libsdl.org"
-BUGTRACKER = "http://bugzilla.libsdl.org/"
-
-SECTION = "libs"
-
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=095c2687a3c3908e26984eaa8ec2d770"
-
-# arm-neon adds MIT license
-LICENSE:append = " ${@bb.utils.contains('PACKAGECONFIG', 'arm-neon', '& MIT', '', d)}"
-LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'arm-neon', 'file://src/video/arm/pixman-arm-neon-asm.h;md5=9a9cc1e51abbf1da58f4d9528ec9d49b;beginline=1;endline=24', '', d)}"
-
-PROVIDES = "virtual/libsdl2"
-
-SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \
-           file://more-gen-depends.patch \
-"
-
-S = "${WORKDIR}/SDL2-${PV}"
-
-SRC_URI[sha256sum] = "65be9ff6004034b5b2ce9927b5a4db1814930f169c4b2dae0a1e4697075f287b"
-
-inherit autotools lib_package binconfig-disabled pkgconfig
-
-BINCONFIG = "${bindir}/sdl2-config"
-
-CVE_PRODUCT = "simple_directmedia_layer sdl"
-
-EXTRA_OECONF = "--disable-oss --disable-esd --disable-arts \
-                --disable-diskaudio --disable-nas --disable-esd-shared --disable-esdtest \
-                --disable-video-dummy \
-                --disable-video-rpi \
-                --enable-pthreads \
-                --enable-sdl-dlopen \
-                --disable-rpath \
-                --disable-sndio \
-                --disable-fcitx --disable-ibus \
-                "
-
-# opengl packageconfig factored out to make it easy for distros
-# and BSP layers to pick either (desktop) opengl, gles2, or no GL
-PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
-
-PACKAGECONFIG:class-native = "x11 ${PACKAGECONFIG_GL}"
-PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} ${PACKAGECONFIG_GL}"
-PACKAGECONFIG ??= " \
-    ${PACKAGECONFIG_GL} \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \
-    ${@bb.utils.contains("TUNE_FEATURES", "neon","arm-neon","",d)} \
-"
-PACKAGECONFIG[alsa]       = "--enable-alsa --disable-alsatest,--disable-alsa,alsa-lib,"
-PACKAGECONFIG[arm-neon]   = "--enable-arm-neon,--disable-arm-neon"
-PACKAGECONFIG[directfb]   = "--enable-video-directfb,--disable-video-directfb,directfb,directfb"
-PACKAGECONFIG[gles2]      = "--enable-video-opengles,--disable-video-opengles,virtual/libgles2"
-PACKAGECONFIG[jack]       = "--enable-jack,--disable-jack,jack"
-PACKAGECONFIG[kmsdrm]     = "--enable-video-kmsdrm,--disable-video-kmsdrm,libdrm virtual/libgbm"
-PACKAGECONFIG[opengl]     = "--enable-video-opengl,--disable-video-opengl,virtual/libgl"
-PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio"
-PACKAGECONFIG[wayland]    = "--enable-video-wayland,--disable-video-wayland,wayland-native wayland wayland-protocols libxkbcommon"
-PACKAGECONFIG[x11]        = "--enable-video-x11,--disable-video-x11,virtual/libx11 libxext libxrandr libxrender"
-
-EXTRA_AUTORECONF += "--include=acinclude --exclude=autoheader"
-CFLAGS:append:class-native = " -DNO_SHARED_MEMORY"
-
-do_configure:prepend() {
-        # Remove old libtool macros.
-        MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
-        for i in ${MACROS}; do
-               rm -f ${S}/acinclude/$i
-        done
-        export SYSROOT=$PKG_CONFIG_SYSROOT_DIR
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.20.bb b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.20.bb
new file mode 100644
index 0000000..90724ab
--- /dev/null
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.20.bb
@@ -0,0 +1,77 @@
+SUMMARY = "Simple DirectMedia Layer"
+DESCRIPTION = "Simple DirectMedia Layer is a cross-platform multimedia \
+library designed to provide low level access to audio, keyboard, mouse, \
+joystick, 3D hardware via OpenGL, and 2D video framebuffer."
+HOMEPAGE = "http://www.libsdl.org"
+BUGTRACKER = "http://bugzilla.libsdl.org/"
+
+SECTION = "libs"
+
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=68a088513da90254b2fbe664f42af315"
+
+# arm-neon adds MIT license
+LICENSE:append = " ${@bb.utils.contains('PACKAGECONFIG', 'arm-neon', '& MIT', '', d)}"
+LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'arm-neon', 'file://src/video/arm/pixman-arm-neon-asm.h;md5=9a9cc1e51abbf1da58f4d9528ec9d49b;beginline=1;endline=24', '', d)}"
+
+PROVIDES = "virtual/libsdl2"
+
+SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \
+           file://optional-libunwind-generic.patch \
+           file://0001-sdlchecks.cmake-pass-cflags-to-the-appropriate-cmake.patch \
+           "
+
+S = "${WORKDIR}/SDL2-${PV}"
+
+SRC_URI[sha256sum] = "c56aba1d7b5b0e7e999e4a7698c70b63a3394ff9704b5f6e1c57e0c16f04dd06"
+
+inherit cmake lib_package binconfig-disabled pkgconfig
+
+BINCONFIG = "${bindir}/sdl2-config"
+
+CVE_PRODUCT = "simple_directmedia_layer sdl"
+
+EXTRA_OECMAKE = "-DSDL_OSS=OFF -DSDL_ESD=OFF -DSDL_ARTS=OFF \
+                 -DSDL_DISKAUDIO=OFF -DSDL_NAS=OFF -DSDL_ESD_SHARED=OFF \
+                 -DSDL_DUMMYVIDEO=OFF \
+                 -DSDL_RPI=OFF \
+                 -DSDL_PTHREADS=ON \
+                 -DSDL_RPATH=OFF \
+                 -DSDL_SNDIO=OFF \
+                 -DSDL_X11_XVM=OFF \
+                 -DSDL_X11_XCURSOR=OFF \
+                 -DSDL_X11_XINERAMA=OFF \
+                 -DSDL_X11_XDBE=OFF \
+                 -DSDL_X11_XFIXES=OFF \
+                 -DSDL_X11_XINPUT=OFF \
+                 -DSDL_X11_XRANDR=OFF \
+                 -DSDL_X11_XSCRNSAVER=OFF \
+                 -DSDL_X11_XSHAPE=OFF \
+"
+
+# opengl packageconfig factored out to make it easy for distros
+# and BSP layers to pick either (desktop) opengl, gles2, or no GL
+PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
+
+PACKAGECONFIG:class-native = "x11 ${PACKAGECONFIG_GL}"
+PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} ${PACKAGECONFIG_GL}"
+PACKAGECONFIG ??= " \
+    ${PACKAGECONFIG_GL} \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \
+    ${@bb.utils.contains("TUNE_FEATURES", "neon","arm-neon","",d)} \
+"
+PACKAGECONFIG[alsa]       = "-DSDL_ALSA=ON,-DSDL_ALSA=OFF,alsa-lib,"
+PACKAGECONFIG[arm-neon]   = "-DSDL_ARMNEON=ON,-DSDL_ARMNEON=OFF"
+PACKAGECONFIG[directfb]   = "-DSDL_DIRECTFB=ON,-DSDL_DIRECTFB=OFF,directfb,directfb"
+PACKAGECONFIG[gles2]      = "-DSDL_OPENGLES=ON,-DSDL_OPENGLES=OFF,virtual/libgles2"
+PACKAGECONFIG[jack]       = "-DSDL_JACK=ON,-DSDL_JACK=OFF,jack"
+PACKAGECONFIG[kmsdrm]     = "-DSDL_KMSDRM=ON,-DSDL_KMSDRM=OFF,libdrm virtual/libgbm"
+PACKAGECONFIG[opengl]     = "-DSDL_OPENGL=ON,-DSDL_OPENGL=OFF,virtual/libgl"
+PACKAGECONFIG[pulseaudio] = "-DSDL_PULSEAUDIO=ON,-DSDL_PULSEAUDIO=OFF,pulseaudio"
+PACKAGECONFIG[wayland]    = "-DSDL_WAYLAND=ON,-DSDL_WAYLAND=OFF,wayland-native wayland wayland-protocols libxkbcommon"
+PACKAGECONFIG[x11]        = "-DSDL_X11=ON,-DSDL_X11=OFF,virtual/libx11 libxext libxrandr libxrender"
+
+CFLAGS:append:class-native = " -DNO_SHARED_MEMORY"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/libva/libva-initial_2.13.0.bb b/poky/meta/recipes-graphics/libva/libva-initial_2.13.0.bb
index 4c3045b..4530968 100644
--- a/poky/meta/recipes-graphics/libva/libva-initial_2.13.0.bb
+++ b/poky/meta/recipes-graphics/libva/libva-initial_2.13.0.bb
@@ -1,5 +1,8 @@
 require libva.inc
 
+PACKAGECONFIG ?= ""
+
 do_install:append () {
 	rm -f ${D}${libdir}/*.so*
 }
+
diff --git a/poky/meta/recipes-graphics/libva/libva-utils_2.13.0.bb b/poky/meta/recipes-graphics/libva/libva-utils_2.13.0.bb
index baa0719..c93cdb4 100644
--- a/poky/meta/recipes-graphics/libva/libva-utils_2.13.0.bb
+++ b/poky/meta/recipes-graphics/libva/libva-utils_2.13.0.bb
@@ -14,7 +14,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e"
 
-SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.13-branch"
+SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.13-branch;protocol=https"
 SRCREV = "7bad184b2cf2ffaf4fb3cc71d4df63d7b142d592"
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-graphics/libva/libva.inc b/poky/meta/recipes-graphics/libva/libva.inc
index bcf9757..dcdc1f3 100644
--- a/poky/meta/recipes-graphics/libva/libva.inc
+++ b/poky/meta/recipes-graphics/libva/libva.inc
@@ -27,3 +27,9 @@
 DEPENDS = "libdrm"
 
 inherit meson pkgconfig
+
+PACKAGECONFIG[x11] = "-Dwith_x11=yes,-Dwith_x11=no,virtual/libx11 libxext libxfixes"
+PACKAGECONFIG[glx] = "-Dwith_glx=yes,-Dwith_glx=no,virtual/mesa"
+
+PACKAGECONFIG[wayland] = "-Dwith_wayland=yes,-Dwith_wayland=no,wayland-native wayland"
+
diff --git a/poky/meta/recipes-graphics/libva/libva_2.13.0.bb b/poky/meta/recipes-graphics/libva/libva_2.13.0.bb
index ed2be28..63dc5af 100644
--- a/poky/meta/recipes-graphics/libva/libva_2.13.0.bb
+++ b/poky/meta/recipes-graphics/libva/libva_2.13.0.bb
@@ -5,11 +5,6 @@
     ${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)} \
 "
 
-PACKAGECONFIG[x11] = "-Dwith_x11=yes,-Dwith_x11=no,virtual/libx11 libxext libxfixes"
-PACKAGECONFIG[glx] = "-Dwith_glx=yes,-Dwith_glx=no,virtual/mesa"
-
-PACKAGECONFIG[wayland] = "-Dwith_wayland=yes,-Dwith_wayland=no,wayland-native wayland"
-
 PACKAGES =+ "${PN}-x11 ${PN}-glx ${PN}-wayland"
 
 RDEPENDS:${PN}-x11 =+ "${PN}"
diff --git a/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb b/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb
index 95a0604..f452ea0 100644
--- a/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb
+++ b/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb
@@ -12,7 +12,7 @@
 
 # SRCREV tagged 1.2.2
 SRCREV = "27da947e7fbdf9659f7e5bd1e92af92af6c03970"
-SRC_URI = "git://git.yoctoproject.org/matchbox-window-manager \
+SRC_URI = "git://git.yoctoproject.org/matchbox-window-manager;branch=master \
            file://0001-Fix-build-with-gcc-10.patch \
            file://kbdconfig"
 
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-util-format-Check-for-NEON-before-using-it.patch b/poky/meta/recipes-graphics/mesa/files/0001-util-format-Check-for-NEON-before-using-it.patch
new file mode 100644
index 0000000..80b9af0
--- /dev/null
+++ b/poky/meta/recipes-graphics/mesa/files/0001-util-format-Check-for-NEON-before-using-it.patch
@@ -0,0 +1,49 @@
+From 4febda271c6bb0dc69ebf573446c6922a1ec35fb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 2 Dec 2021 19:57:42 -0800
+Subject: [PATCH] util/format: Check for NEON before using it
+
+This fixes build on rpi0-w and any other machine which does not have
+neon unit and is not used as FPU unit
+
+Fixes errors e.g.
+
+In file included from ../mesa-21.3.0/src/util/format/u_format_unpack_neon.c:35:
+/mnt/b/yoe/master/build/tmp/work/arm1176jzfshf-vfp-yoe-linux-gnueabi/mesa/2_21.3.0-r0/recipe-sysroot-native/usr/lib/clang/13.0.1/include/arm_neon.h:32:2: error: "NEON support not enabled"
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14032]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/util/format/u_format.c             | 2 +-
+ src/util/format/u_format_unpack_neon.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/util/format/u_format.c b/src/util/format/u_format.c
+index 36c5e52008e..f0a00971691 100644
+--- a/src/util/format/u_format.c
++++ b/src/util/format/u_format.c
+@@ -1138,7 +1138,7 @@ static void
+ util_format_unpack_table_init(void)
+ {
+    for (enum pipe_format format = PIPE_FORMAT_NONE; format < PIPE_FORMAT_COUNT; format++) {
+-#if (defined(PIPE_ARCH_AARCH64) || defined(PIPE_ARCH_ARM)) && !defined(NO_FORMAT_ASM) && !defined(__SOFTFP__)
++#if (defined(PIPE_ARCH_AARCH64) || (defined(__ARM_NEON) && defined(PIPE_ARCH_ARM))) && !defined(NO_FORMAT_ASM)
+       const struct util_format_unpack_description *unpack = util_format_unpack_description_neon(format);
+       if (unpack) {
+          util_format_unpack_table[format] = unpack;
+diff --git a/src/util/format/u_format_unpack_neon.c b/src/util/format/u_format_unpack_neon.c
+index a4a5cb1f723..1e4f794a295 100644
+--- a/src/util/format/u_format_unpack_neon.c
++++ b/src/util/format/u_format_unpack_neon.c
+@@ -23,7 +23,7 @@
+ 
+ #include <u_format.h>
+ 
+-#if (defined(PIPE_ARCH_AARCH64) || defined(PIPE_ARCH_ARM)) && !defined(NO_FORMAT_ASM) && !defined(__SOFTFP__)
++#if (defined(PIPE_ARCH_AARCH64) || (defined(__ARM_NEON) && defined(PIPE_ARCH_ARM))) && !defined(NO_FORMAT_ASM)
+ 
+ /* armhf builds default to vfp, not neon, and refuses to compile neon intrinsics
+  * unless you tell it "no really".
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-v3dv-account-for-64bit-time_t-on-32bit-arches.patch b/poky/meta/recipes-graphics/mesa/files/0001-v3dv-account-for-64bit-time_t-on-32bit-arches.patch
new file mode 100644
index 0000000..e87d7d7
--- /dev/null
+++ b/poky/meta/recipes-graphics/mesa/files/0001-v3dv-account-for-64bit-time_t-on-32bit-arches.patch
@@ -0,0 +1,41 @@
+From e2e2fe86dd61b6fae682a1fec31bd0755ced5cd5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 7 Dec 2021 11:13:27 -0800
+Subject: [PATCH] v3dv: account for 64bit time_t on 32bit arches
+
+This makes is a bit more portable, especially on 32bit architectures
+with 64bit time_t defaults. Especially on musl its a must.
+
+Fixes
+../mesa-21.3.0/src/broadcom/vulkan/v3dv_bo.c:71:15: error: format specifies type 'long' but the argument has type 'time_t' (aka 'long long') [-Werror,-Wformat]
+              time.tv_sec);
+              ^~~~~~~~~~~
+
+Also reported here [1]
+
+[1] https://github.com/agherzan/meta-raspberrypi/issues/969
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14118]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/broadcom/vulkan/v3dv_bo.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/broadcom/vulkan/v3dv_bo.c b/src/broadcom/vulkan/v3dv_bo.c
+index 71679ce..dc5e7f5 100644
+--- a/src/broadcom/vulkan/v3dv_bo.c
++++ b/src/broadcom/vulkan/v3dv_bo.c
+@@ -67,8 +67,8 @@ bo_dump_stats(struct v3dv_device *device)
+ 
+       struct timespec time;
+       clock_gettime(CLOCK_MONOTONIC, &time);
+-      fprintf(stderr, "  now:               %ld\n",
+-              time.tv_sec);
++      fprintf(stderr, "  now:               %lld\n",
++              (long long)time.tv_sec);
+    }
+ 
+    if (cache->size_list_size) {
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch b/poky/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch
index f6b59a1..e31827d 100644
--- a/poky/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch
+++ b/poky/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch
@@ -6,7 +6,12 @@
 * in some systems without X11 support we don't have GLEW, but
   mesa-demos are still useful
 
-Upstream-Status: Pending
+This isn't currently appropriate for upstream submission as glew has
+been replaced with glad there; glu situation would need to be re-assesed
+when upstream makes a new release, requested here:
+https://gitlab.freedesktop.org/mesa/demos/-/issues/22
+
+Upstream-Status: Inappropriate [see above]
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
 
diff --git a/poky/meta/recipes-graphics/mesa/mesa-demos/0013-only-build-GLX-demos-if-needed.patch b/poky/meta/recipes-graphics/mesa/mesa-demos/0013-only-build-GLX-demos-if-needed.patch
deleted file mode 100644
index e7be4df..0000000
--- a/poky/meta/recipes-graphics/mesa/mesa-demos/0013-only-build-GLX-demos-if-needed.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 322af294390a7f4e1524c5a79312be6cbebce988 Mon Sep 17 00:00:00 2001
-From: Awais Belal <awais_belal@mentor.com>
-Date: Wed, 11 Nov 2015 17:22:12 +0500
-Subject: [PATCH] only build GLX demos if needed
-
-There are platforms that default to EGL only configurations
-in which case the GLX applications are not required
-at all. Allow the user to control generation of these
-demos as needed through a configure switch.
-
-Signed-off-by: Awais Belal <awais_belal@mentor.com>
-Upstream-Status: Pending
----
- configure.ac    | 9 +++++++++
- src/Makefile.am | 6 +++++-
- 2 files changed, 14 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index f8ec7e3..1a4d96d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -132,6 +132,11 @@ if test "x$enable_glu" = xyes; then
-     DEMO_LIBS="$DEMO_LIBS $GLU_LIBS"
- fi
- 
-+AC_ARG_ENABLE([glx-demos],
-+    [AS_HELP_STRING([--enable-glx-demos],
-+        [enable GLX demos @<:@default=auto@:>@])],
-+    [glx_demos_enabled="$enableval"],
-+    [glx_demos_enabled=yes])
- AC_ARG_ENABLE([egl],
-     [AS_HELP_STRING([--enable-egl],
-         [enable EGL library @<:@default=auto@:>@])],
-@@ -325,6 +333,7 @@ AC_SUBST([WAYLAND_LIBS])
- 
- AM_CONDITIONAL(HAVE_GLU, test "x$glu_enabled" = "xyes")
- AM_CONDITIONAL(HAVE_GLEW, test "x$glew_enabled" = "xyes")
-+AM_CONDITIONAL(HAVE_GLX, test "x$glx_demos_enabled" = "xyes")
- AM_CONDITIONAL(HAVE_EGL, test "x$egl_enabled" = "xyes")
- AM_CONDITIONAL(HAVE_GLESV1, test "x$glesv1_enabled" = "xyes")
- AM_CONDITIONAL(HAVE_GLESV2, test "x$glesv2_enabled" = "xyes")
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 8b89dee..a4d7e8f 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -44,8 +44,12 @@ SUBDIRS = \
- 	slang \
- 	tests \
- 	tools \
--	wgl \
-+	wgl
-+
-+if HAVE_GLX
-+SUBDIRS += \
- 	xdemos
-+endif
- 
- if HAVE_GLEW
- SUBDIRS += \
--- 
-1.9.1
-
diff --git a/poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb b/poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb
index 368af4e..01e5b35 100644
--- a/poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb
+++ b/poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb
@@ -17,7 +17,6 @@
            file://0008-glsl-perf-Add-few-missing-.glsl-.vert-.frag-files-to.patch \
            file://0009-glsl-perf-Install-.glsl-.vert-.frag-files.patch \
            file://0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch \
-           file://0013-only-build-GLX-demos-if-needed.patch \
            "
 SRC_URI[md5sum] = "6b65a02622765522176d00f553086fa3"
 SRC_URI[sha256sum] = "01e99c94a0184e63e796728af89bfac559795fb2a0d6f506fa900455ca5fff7d"
@@ -27,7 +26,7 @@
 REQUIRED_DISTRO_FEATURES = "opengl x11"
 
 PACKAGECONFIG ?= "drm osmesa freetype2 gbm egl gles1 gles2 \
-                  x11 glew glu glx"
+                  x11 glew glu"
 
 # The Wayland code doesn't work with Wayland 1.0, so disable it for now
 #${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}"
@@ -47,7 +46,6 @@
 PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11"
 PACKAGECONFIG[glew] = "--enable-glew,--disable-glew,glew"
 PACKAGECONFIG[glu] = "--enable-glu,--disable-glu,virtual/libgl"
-PACKAGECONFIG[glx] = "--enable-glx-demos,--disable-glx-demos"
 
 do_install:append() {
 	# it can be completely empty when all PACKAGECONFIG options are disabled
diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_21.2.4.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_21.3.4.bb
similarity index 100%
rename from poky/meta/recipes-graphics/mesa/mesa-gl_21.2.4.bb
rename to poky/meta/recipes-graphics/mesa/mesa-gl_21.3.4.bb
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index f1a1e57..71cc3b4 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -19,9 +19,11 @@
            file://0002-meson.build-make-TLS-ELF-optional.patch \
            file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
            file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \
+           file://0001-util-format-Check-for-NEON-before-using-it.patch \
+           file://0001-v3dv-account-for-64bit-time_t-on-32bit-arches.patch \
            "
 
-SRC_URI[sha256sum] = "fe6ede82d1ac02339da3c2ec1820a379641902fd351a52cc01153f76eff85b44"
+SRC_URI[sha256sum] = "77104fd4a93bce69da3b0982f8ee88ba7c4fb98cfc491a669894339cdcd4a67d"
 
 UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
 
@@ -37,7 +39,7 @@
 EXTRANATIVEPATH += "chrpath-native"
 PROVIDES = " \
     ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'virtual/libgl', '', d)} \
-    ${@bb.utils.contains('PACKAGECONFIG', 'gles', 'virtual/libgles1 virtual/libgles2', '', d)} \
+    ${@bb.utils.contains('PACKAGECONFIG', 'gles', 'virtual/libgles1 virtual/libgles2 virtual/libgles3', '', d)} \
     ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'virtual/egl', '', d)} \
     ${@bb.utils.contains('PACKAGECONFIG', 'gbm', 'virtual/libgbm', '', d)} \
     virtual/mesa \
@@ -112,6 +114,7 @@
 VULKAN_DRIVERS:append:x86:class-target = ",intel"
 VULKAN_DRIVERS:append:x86-64:class-target = ",intel"
 VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
+VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}"
 PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',"
 
 PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false"
@@ -122,6 +125,7 @@
 # "egl" requires "dri", "opengl"
 PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled"
 
+PACKAGECONFIG[broadcom] = ""
 PACKAGECONFIG[etnaviv] = ""
 PACKAGECONFIG[freedreno] = ""
 PACKAGECONFIG[kmsro] = ""
@@ -182,8 +186,12 @@
 # Remove the mesa dependency on mesa-dev, as mesa is empty
 RDEPENDS:${PN}-dev = ""
 
-# Add dependency so that GLES3 header don't need to be added manually
-RDEPENDS:libgles2-mesa-dev += "libgles3-mesa-dev"
+# Khronos documentation says that include/GLES2/gl2ext.h can be used for
+# OpenGL ES 3 specification as well as for OpenGL ES 2.
+# There can be applications including GLES2/gl2ext.h instead of GLES3/gl3ext.h
+# meaning we should probably bring in GLES2/gl2ext.h if someone asks for
+# development package of libgles3.
+RDEPENDS:libgles3-mesa-dev += "libgles2-mesa-dev"
 
 PACKAGES =+ "libegl-mesa libegl-mesa-dev \
              libosmesa libosmesa-dev \
diff --git a/poky/meta/recipes-graphics/mesa/mesa_21.2.4.bb b/poky/meta/recipes-graphics/mesa/mesa_21.3.4.bb
similarity index 100%
rename from poky/meta/recipes-graphics/mesa/mesa_21.2.4.bb
rename to poky/meta/recipes-graphics/mesa/mesa_21.3.4.bb
diff --git a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
index 4e6d990..0185c93 100644
--- a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
+++ b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
@@ -9,7 +9,6 @@
 RDEPENDS:${PN} = "\
     packagegroup-core-x11-xserver \
     packagegroup-core-x11-utils \
-    dbus \
     matchbox-terminal \
     matchbox-wm \
     mini-x-session \
diff --git a/poky/meta/recipes-graphics/piglit/piglit/0001-Add-a-missing-include-for-htobe32-definition.patch b/poky/meta/recipes-graphics/piglit/piglit/0001-Add-a-missing-include-for-htobe32-definition.patch
index caa48e08..7b0cb17 100644
--- a/poky/meta/recipes-graphics/piglit/piglit/0001-Add-a-missing-include-for-htobe32-definition.patch
+++ b/poky/meta/recipes-graphics/piglit/piglit/0001-Add-a-missing-include-for-htobe32-definition.patch
@@ -3,7 +3,7 @@
 Date: Sun, 1 Nov 2020 20:08:49 +0000
 Subject: [PATCH] Add a missing include for htobe32 definition
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/609]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  tests/spec/nv_copy_depth_to_color/nv_copy_depth_to_color.c | 2 ++
diff --git a/poky/meta/recipes-graphics/piglit/piglit/0001-framework-profile.py-make-test-lists-reproducible.patch b/poky/meta/recipes-graphics/piglit/piglit/0001-framework-profile.py-make-test-lists-reproducible.patch
index cc9482c..c90f601 100644
--- a/poky/meta/recipes-graphics/piglit/piglit/0001-framework-profile.py-make-test-lists-reproducible.patch
+++ b/poky/meta/recipes-graphics/piglit/piglit/0001-framework-profile.py-make-test-lists-reproducible.patch
@@ -6,7 +6,7 @@
 These are created with os.walk, which yields different
 order depending on where it's run.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/610]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  framework/profile.py | 6 +++++-
diff --git a/poky/meta/recipes-graphics/piglit/piglit/0001-generated_tests-gen_tcs-tes_input_tests.py-do-not-ha.patch b/poky/meta/recipes-graphics/piglit/piglit/0001-generated_tests-gen_tcs-tes_input_tests.py-do-not-ha.patch
index 8704f98..cb675e8 100644
--- a/poky/meta/recipes-graphics/piglit/piglit/0001-generated_tests-gen_tcs-tes_input_tests.py-do-not-ha.patch
+++ b/poky/meta/recipes-graphics/piglit/piglit/0001-generated_tests-gen_tcs-tes_input_tests.py-do-not-ha.patch
@@ -6,7 +6,7 @@
 
 This helps reproducibility.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/610]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  generated_tests/gen_tcs_input_tests.py | 2 +-
diff --git a/poky/meta/recipes-graphics/piglit/piglit/0001-serializer.py-make-.gz-files-reproducible.patch b/poky/meta/recipes-graphics/piglit/piglit/0001-serializer.py-make-.gz-files-reproducible.patch
index 2efba6f..a1db298 100644
--- a/poky/meta/recipes-graphics/piglit/piglit/0001-serializer.py-make-.gz-files-reproducible.patch
+++ b/poky/meta/recipes-graphics/piglit/piglit/0001-serializer.py-make-.gz-files-reproducible.patch
@@ -6,7 +6,7 @@
 .gz format contains mtime of the compressed data, and
 SOURCE_DATE_EPOCH is the standard way to make it reproducuble.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/610]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  tests/serializer.py | 5 ++++-
diff --git a/poky/meta/recipes-graphics/piglit/piglit/0001-tests-shader.py-sort-the-file-list-before-working-on.patch b/poky/meta/recipes-graphics/piglit/piglit/0001-tests-shader.py-sort-the-file-list-before-working-on.patch
index 8321be8..dee876b 100644
--- a/poky/meta/recipes-graphics/piglit/piglit/0001-tests-shader.py-sort-the-file-list-before-working-on.patch
+++ b/poky/meta/recipes-graphics/piglit/piglit/0001-tests-shader.py-sort-the-file-list-before-working-on.patch
@@ -5,7 +5,7 @@
 
 This allows later xml output to be reproducible.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/610]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  tests/shader.py | 4 +++-
diff --git a/poky/meta/recipes-graphics/piglit/piglit_git.bb b/poky/meta/recipes-graphics/piglit/piglit_git.bb
index 0a3de46..08bbbac 100644
--- a/poky/meta/recipes-graphics/piglit/piglit_git.bb
+++ b/poky/meta/recipes-graphics/piglit/piglit_git.bb
@@ -18,7 +18,7 @@
            "
 UPSTREAM_CHECK_COMMITS = "1"
 
-SRCREV = "83bc56abf2686e2cd9024a152e121ca4aa524985"
+SRCREV = "11ee10ba04a95d4b36ef844420f0a5838002b5a8"
 # (when PV goes above 1.0 remove the trailing r)
 PV = "1.0+gitr${SRCPV}"
 
diff --git a/poky/meta/recipes-graphics/shaderc/shaderc_2021.2.bb b/poky/meta/recipes-graphics/shaderc/shaderc_2021.2.bb
deleted file mode 100644
index eee9817..0000000
--- a/poky/meta/recipes-graphics/shaderc/shaderc_2021.2.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY  = "A collection of tools, libraries and tests for shader compilation"
-DESCRIPTION = "The Shaderc library provides an API for compiling GLSL/HLSL \
-source code to SPIRV modules. It has been shipping in the Android NDK since version r12b."
-SECTION = "graphics"
-HOMEPAGE = "https://github.com/google/shaderc"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-SRCREV = "2c5ef1b8f8b1fdcbe1b22764e82d5caaa1d04ef9"
-SRC_URI = "git://github.com/google/shaderc.git;protocol=https;branch=main \
-           file://0001-cmake-disable-building-external-dependencies.patch \
-           file://0002-libshaderc_util-fix-glslang-header-file-location.patch \
-           "
-UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$"
-S = "${WORKDIR}/git"
-
-inherit cmake python3native pkgconfig
-
-DEPENDS = "spirv-headers spirv-tools glslang"
-
-EXTRA_OECMAKE = " \
-    -DCMAKE_BUILD_TYPE=Release \
-    -DBUILD_EXTERNAL=OFF \
-    -DSHADERC_SKIP_TESTS=ON \
-    -DSHADERC_SKIP_EXAMPLES=ON \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/shaderc/shaderc_2021.3.bb b/poky/meta/recipes-graphics/shaderc/shaderc_2021.3.bb
new file mode 100644
index 0000000..cc2cfc1
--- /dev/null
+++ b/poky/meta/recipes-graphics/shaderc/shaderc_2021.3.bb
@@ -0,0 +1,29 @@
+SUMMARY  = "A collection of tools, libraries and tests for shader compilation"
+DESCRIPTION = "The Shaderc library provides an API for compiling GLSL/HLSL \
+source code to SPIRV modules. It has been shipping in the Android NDK since version r12b."
+SECTION = "graphics"
+HOMEPAGE = "https://github.com/google/shaderc"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRCREV = "6fabc36fbebacfcef8cf82463df2a8247120ebf0"
+SRC_URI = "git://github.com/google/shaderc.git;protocol=https;branch=main \
+           file://0001-cmake-disable-building-external-dependencies.patch \
+           file://0002-libshaderc_util-fix-glslang-header-file-location.patch \
+           "
+UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$"
+S = "${WORKDIR}/git"
+
+inherit cmake python3native pkgconfig
+
+DEPENDS = "spirv-headers spirv-tools glslang"
+
+EXTRA_OECMAKE = " \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DBUILD_EXTERNAL=OFF \
+    -DSHADERC_SKIP_TESTS=ON \
+    -DSHADERC_SKIP_EXAMPLES=ON \
+    -DSHADERC_SKIP_COPYRIGHT_CHECK=ON \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/spir/spirv-headers_1.5.4.bb b/poky/meta/recipes-graphics/spir/spirv-headers_1.5.4.bb
index 8f8206d..5227086 100644
--- a/poky/meta/recipes-graphics/spir/spirv-headers_1.5.4.bb
+++ b/poky/meta/recipes-graphics/spir/spirv-headers_1.5.4.bb
@@ -7,8 +7,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c938b85bceb8fb26c1a807f28a52ae2d"
 
-SRCREV = "6cae8216a6ea19ff3f237af01e54378c1ff81fcd"
-SRC_URI = "git://github.com/KhronosGroup/SPIRV-Headers;protocol=https"
+SRCREV = "814e728b30ddd0f4509233099a3ad96fd4318c07"
+SRC_URI = "git://github.com/KhronosGroup/SPIRV-Headers;protocol=https;branch=master"
 UPSTREAM_CHECK_GITTAGREGEX = "^(?P<pver>\d+(\.\d+)+)$"
 S = "${WORKDIR}/git"
 PV .= "+git${SRCPV}"
diff --git a/poky/meta/recipes-graphics/spir/spirv-tools_2021.3.bb b/poky/meta/recipes-graphics/spir/spirv-tools_2021.3.bb
deleted file mode 100644
index 62330f2..0000000
--- a/poky/meta/recipes-graphics/spir/spirv-tools_2021.3.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY  = "The SPIR-V Tools project provides an API and commands for \
-processing SPIR-V modules"
-DESCRIPTION = "The project includes an assembler, binary module parser, \
-disassembler, validator, and optimizer for SPIR-V."
-HOMEPAGE = "https://github.com/KhronosGroup/SPIRV-Tools"
-SECTION = "graphics"
-LICENSE  = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRCREV = "1fbed83c8aab8517d821fcb4164c08567951938f"
-SRC_URI = "git://github.com/KhronosGroup/SPIRV-Tools.git"
-UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$"
-S = "${WORKDIR}/git"
-
-inherit cmake python3native
-
-DEPENDS = "spirv-headers"
-
-EXTRA_OECMAKE += "\
-    -DSPIRV-Headers_SOURCE_DIR=${STAGING_EXECPREFIXDIR} \
-    -DSPIRV_TOOLS_BUILD_STATIC=OFF \
-    -DBUILD_SHARED_LIBS=ON \
-    -DSPIRV_SKIP_TESTS=ON \
-"
-
-do_install:append:class-target() {
-    # reproducibility: remove build host path
-    sed -i ${D}${libdir}/cmake/SPIRV-Tools/SPIRV-ToolsTarget.cmake \
-        -e 's:${STAGING_DIR_HOST}::g'
-}
-
-# all the libraries are unversioned, so don't pack it on PN-dev
-SOLIBS = ".so"
-FILES_SOLIBSDEV = ""
-
-PACKAGES =+ "${PN}-lesspipe"
-FILES:${PN}-lesspipe = "${base_bindir}/spirv-lesspipe.sh"
-RDEPENDS:${PN}-lesspipe += "${PN} bash"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/spir/spirv-tools_2021.4.bb b/poky/meta/recipes-graphics/spir/spirv-tools_2021.4.bb
new file mode 100644
index 0000000..ed56f46
--- /dev/null
+++ b/poky/meta/recipes-graphics/spir/spirv-tools_2021.4.bb
@@ -0,0 +1,40 @@
+SUMMARY  = "The SPIR-V Tools project provides an API and commands for \
+processing SPIR-V modules"
+DESCRIPTION = "The project includes an assembler, binary module parser, \
+disassembler, validator, and optimizer for SPIR-V."
+HOMEPAGE = "https://github.com/KhronosGroup/SPIRV-Tools"
+SECTION = "graphics"
+LICENSE  = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRCREV = "ab8eb607750208066e2d57eff6a34dbaf05f5ada"
+SRC_URI = "git://github.com/KhronosGroup/SPIRV-Tools.git;branch=master;protocol=https"
+UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$"
+S = "${WORKDIR}/git"
+
+inherit cmake python3native
+
+DEPENDS = "spirv-headers"
+
+EXTRA_OECMAKE += "\
+    -DSPIRV-Headers_SOURCE_DIR=${STAGING_EXECPREFIXDIR} \
+    -DSPIRV_TOOLS_BUILD_STATIC=OFF \
+    -DBUILD_SHARED_LIBS=ON \
+    -DSPIRV_SKIP_TESTS=ON \
+"
+
+do_install:append:class-target() {
+    # reproducibility: remove build host path
+    sed -i ${D}${libdir}/cmake/SPIRV-Tools/SPIRV-ToolsTarget.cmake \
+        -e 's:${STAGING_DIR_HOST}::g'
+}
+
+# all the libraries are unversioned, so don't pack it on PN-dev
+SOLIBS = ".so"
+FILES_SOLIBSDEV = ""
+
+PACKAGES =+ "${PN}-lesspipe"
+FILES:${PN}-lesspipe = "${base_bindir}/spirv-lesspipe.sh"
+RDEPENDS:${PN}-lesspipe += "${PN} bash"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.2.191.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.2.191.0.bb
deleted file mode 100644
index 679a455..0000000
--- a/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.2.191.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Vulkan Header files and API registry"
-DESCRIPTION = "Vulkan is a 3D graphics and compute API providing cross-platform access \
-to modern GPUs with low overhead and targeting realtime graphics applications such as \
-games and interactive media. This package contains the development headers \
-for packages wanting to make use of Vulkan."
-HOMEPAGE = "https://www.khronos.org/vulkan/"
-BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Headers"
-SECTION = "libs"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=main"
-
-SRCREV = "4fee3efc189c83ccd26a9cd8265185c98458c94d"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-FILES:${PN} += "${datadir}/vulkan"
-
-UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.2.198.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.2.198.0.bb
new file mode 100644
index 0000000..43c0cdb
--- /dev/null
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.2.198.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Vulkan Header files and API registry"
+DESCRIPTION = "Vulkan is a 3D graphics and compute API providing cross-platform access \
+to modern GPUs with low overhead and targeting realtime graphics applications such as \
+games and interactive media. This package contains the development headers \
+for packages wanting to make use of Vulkan."
+HOMEPAGE = "https://www.khronos.org/vulkan/"
+BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Headers"
+SECTION = "libs"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=main;protocol=https"
+
+SRCREV = "8c1c27d5a9b9de8a17f500053bd08c7ca6bba19c"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+FILES:${PN} += "${datadir}/vulkan"
+
+UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.2.191.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.2.191.0.bb
deleted file mode 100644
index 898a790..0000000
--- a/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.2.191.0.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "3D graphics and compute API common loader"
-DESCRIPTION = "Vulkan is a new generation graphics and compute API \
-that provides efficient access to modern GPUs. These packages \
-provide only the common vendor-agnostic library loader, headers and \
-the vulkaninfo utility."
-HOMEPAGE = "https://www.khronos.org/vulkan/"
-BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Loader"
-SECTION = "libs"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7dbefed23242760aa3475ee42801c5ac"
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git \
-           "
-SRCREV = "7d7cdaa17bc8c349102cfee1d5062d6b7185c172"
-
-S = "${WORKDIR}/git"
-
-REQUIRED_DISTRO_FEATURES = "vulkan"
-
-inherit cmake features_check
-ANY_OF_DISTRO_FEATURES = "x11 wayland"
-
-DEPENDS += "vulkan-headers"
-
-EXTRA_OECMAKE = "\
-                 -DBUILD_TESTS=OFF \
-                 -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \
-                 -DASSEMBLER_WORKS=FALSE \
-                 -DVulkanHeaders_INCLUDE_DIR=${STAGING_INCDIR} \
-                 -DVulkanRegistry_DIR=${RECIPE_SYSROOT}/${datadir} \
-                 "
-
-# must choose x11 or wayland or both
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
-
-PACKAGECONFIG[x11] = "-DBUILD_WSI_XLIB_SUPPORT=ON -DBUILD_WSI_XCB_SUPPORT=ON, -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF, libxcb libx11 libxrandr"
-PACKAGECONFIG[wayland] = "-DBUILD_WSI_WAYLAND_SUPPORT=ON, -DBUILD_WSI_WAYLAND_SUPPORT=OFF, wayland"
-
-RRECOMMENDS:${PN} = "mesa-vulkan-drivers"
-
-UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.2.198.1.bb b/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.2.198.1.bb
new file mode 100644
index 0000000..dcd6e02
--- /dev/null
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.2.198.1.bb
@@ -0,0 +1,40 @@
+SUMMARY = "3D graphics and compute API common loader"
+DESCRIPTION = "Vulkan is a new generation graphics and compute API \
+that provides efficient access to modern GPUs. These packages \
+provide only the common vendor-agnostic library loader, headers and \
+the vulkaninfo utility."
+HOMEPAGE = "https://www.khronos.org/vulkan/"
+BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Loader"
+SECTION = "libs"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7dbefed23242760aa3475ee42801c5ac"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=sdk-1.2.198;protocol=https"
+SRCREV = "0ca96994f92b6f21b37badd6c99b22f61bfec932"
+
+S = "${WORKDIR}/git"
+
+REQUIRED_DISTRO_FEATURES = "vulkan"
+
+inherit cmake features_check pkgconfig
+ANY_OF_DISTRO_FEATURES = "x11 wayland"
+
+DEPENDS += "vulkan-headers"
+
+EXTRA_OECMAKE = "\
+                 -DBUILD_TESTS=OFF \
+                 -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \
+                 -DASSEMBLER_WORKS=FALSE \
+                 -DVulkanHeaders_INCLUDE_DIR=${STAGING_INCDIR} \
+                 -DVulkanRegistry_DIR=${RECIPE_SYSROOT}/${datadir} \
+                 "
+
+# must choose x11 or wayland or both
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
+
+PACKAGECONFIG[x11] = "-DBUILD_WSI_XLIB_SUPPORT=ON -DBUILD_WSI_XCB_SUPPORT=ON, -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF, libxcb libx11 libxrandr"
+PACKAGECONFIG[wayland] = "-DBUILD_WSI_WAYLAND_SUPPORT=ON, -DBUILD_WSI_WAYLAND_SUPPORT=OFF, wayland"
+
+RRECOMMENDS:${PN} = "mesa-vulkan-drivers"
+
+UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-framework-core-Add-explicit-static_cast-from-vk-Buff.patch b/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-framework-core-Add-explicit-static_cast-from-vk-Buff.patch
new file mode 100644
index 0000000..b0e7cda
--- /dev/null
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-framework-core-Add-explicit-static_cast-from-vk-Buff.patch
@@ -0,0 +1,35 @@
+From f88fd472e57b59013570f08949dbbc0875c1bae4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 13 Nov 2021 18:37:13 -0800
+Subject: [PATCH] framework/core: Add explicit static_cast from vk::Buffer to
+ VkBuffer
+
+This fixes errors like
+framework/core/hpp_buffer.cpp:149:3: error: no matching function for call to 'vmaDestroyBuffer'
+|                 vmaDestroyBuffer(vmaAllocator, handle, vmaAllocation);
+|                 ^~~~~~~~~~~~~~~~
+| /mnt/b/yoe/master/build/tmp/work/riscv32-yoe-linux-musl/vulkan-samples/git-r0/git/third_party/vma/src/vk_mem_alloc.h:3803:33: note: candidate function not viable: no known conversion from 'vk::Buffer' to 'V
+kBuffer' (aka 'unsigned long long') for 2nd argument
+
+Upstream-Status: Submitted [https://github.com/KhronosGroup/Vulkan-Samples/pull/395]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ framework/core/hpp_buffer.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/framework/core/hpp_buffer.cpp b/framework/core/hpp_buffer.cpp
+index c1f5649..2609e4e 100644
+--- a/framework/core/hpp_buffer.cpp
++++ b/framework/core/hpp_buffer.cpp
+@@ -146,7 +146,7 @@ void HPPBuffer::destroy()
+ 	{
+ 		assert(vmaAllocation != VK_NULL_HANDLE);
+ 		unmap();
+-		vmaDestroyBuffer(vmaAllocator, handle, vmaAllocation);
++		vmaDestroyBuffer(vmaAllocator, static_cast<VkBuffer>(handle), vmaAllocation);
+ 	}
+ }
+ 
+-- 
+2.33.1
+
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-framework-do-not-mix-plain-and-keyword-target_link_l.patch b/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-framework-do-not-mix-plain-and-keyword-target_link_l.patch
new file mode 100644
index 0000000..66ed8bb
--- /dev/null
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-framework-do-not-mix-plain-and-keyword-target_link_l.patch
@@ -0,0 +1,38 @@
+From 64b806ab702a6f445fd84aca5f03bb85b86a66e3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 11 Nov 2021 18:37:09 -0800
+Subject: [PATCH] framework: do not mix plain and keyword
+ target_link_libraries() signatures
+
+Fixes
+| CMake Error at framework/CMakeLists.txt:461 (target_link_libraries):
+|   The plain signature for target_link_libraries has already been used with
+|   the target "framework".  All uses of target_link_libraries with a target                                            |   must be either all-keyword or all-plain.
+|
+|   The uses of the plain signature are here:
+|                                                                                                                       |    * framework/CMakeLists.txt:453 (target_link_libraries)
+|
+
+Upstream-Status: Submitted [https://github.com/KhronosGroup/Vulkan-Samples/pull/395]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ framework/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/framework/CMakeLists.txt b/framework/CMakeLists.txt
+index 948c796..13d3324 100644
+--- a/framework/CMakeLists.txt
++++ b/framework/CMakeLists.txt
+@@ -450,7 +450,7 @@ target_link_libraries(${PROJECT_NAME} PUBLIC
+     plugins)
+ 
+ if(${NEED_LINK_ATOMIC})
+-    target_link_libraries(${PROJECT_NAME} atomic)
++    target_link_libraries(${PROJECT_NAME} PUBLIC atomic)
+ endif()
+ 
+ # Link platform specific libraries
+-- 
+2.33.1
+
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb b/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
index c5ead19..1e45e9f 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
@@ -5,18 +5,21 @@
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=48aa35cefb768436223a6e7f18dc2a2a"
 
-SRC_URI = "gitsm://github.com/KhronosGroup/Vulkan-Samples.git \
+SRC_URI = "gitsm://github.com/KhronosGroup/Vulkan-Samples.git;branch=master;protocol=https \
            file://0001-CMakeLists.txt-do-not-hardcode-lib-as-installation-t.patch \
+           file://0001-framework-do-not-mix-plain-and-keyword-target_link_l.patch \
+           file://0001-framework-core-Add-explicit-static_cast-from-vk-Buff.patch \
            file://debugfix.patch \
            "
 
 UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "d2187278cb6632ce35920575832eb6f6e2b2e46c"
+SRCREV = "ae6e4a3712cebde49a29e5996a3bd2f403566890"
 
 UPSTREAM_CHECK_GITTAGREGEX = "These are not the releases you're looking for"
 S = "${WORKDIR}/git"
 
 REQUIRED_DISTRO_FEATURES = 'vulkan'
+COMPATIBLE_HOST = "(x86_64|aarch64|mips64|powerpc64|riscv64).*-linux"
 
 inherit cmake features_check
 
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.2.191.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.2.191.0.bb
deleted file mode 100644
index 5350b6e..0000000
--- a/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.2.191.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Vulkan Utilities and Tools"
-DESCRIPTION = "Assist development by enabling developers to verify their applications correct use of the Vulkan API."
-HOMEPAGE = "https://www.khronos.org/vulkan/"
-BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Tools"
-SECTION = "libs"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git"
-SRCREV = "f4974ccd170cf2338c0582f607af5d8dfc3dac51"
-
-S = "${WORKDIR}/git"
-
-inherit cmake features_check
-ANY_OF_DISTRO_FEATURES = "x11 wayland"
-REQUIRED_DISTRO_FEATURES = "vulkan"
-
-DEPENDS += "vulkan-headers vulkan-loader"
-
-EXTRA_OECMAKE = "\
-                 -DBUILD_TESTS=OFF \
-                 -DBUILD_CUBE=OFF \
-                 -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \
-                 "
-
-# must choose x11 or wayland or both
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
-
-PACKAGECONFIG[x11] = "-DBUILD_WSI_XLIB_SUPPORT=ON -DBUILD_WSI_XCB_SUPPORT=ON, -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF, libxcb libx11 libxrandr"
-PACKAGECONFIG[wayland] = "-DBUILD_WSI_WAYLAND_SUPPORT=ON, -DBUILD_WSI_WAYLAND_SUPPORT=OFF, wayland"
-
-UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.2.198.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.2.198.0.bb
new file mode 100644
index 0000000..09f7538
--- /dev/null
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.2.198.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Vulkan Utilities and Tools"
+DESCRIPTION = "Assist development by enabling developers to verify their applications correct use of the Vulkan API."
+HOMEPAGE = "https://www.khronos.org/vulkan/"
+BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Tools"
+SECTION = "libs"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=sdk-1.2.198;protocol=https"
+SRCREV = "8040a7af8919a47346cfeaf1fbc2ebfe09cfea09"
+
+S = "${WORKDIR}/git"
+
+inherit cmake features_check
+ANY_OF_DISTRO_FEATURES = "x11 wayland"
+REQUIRED_DISTRO_FEATURES = "vulkan"
+
+DEPENDS += "vulkan-headers vulkan-loader"
+
+EXTRA_OECMAKE = "\
+                 -DBUILD_TESTS=OFF \
+                 -DBUILD_CUBE=OFF \
+                 -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \
+                 "
+
+# must choose x11 or wayland or both
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
+
+PACKAGECONFIG[x11] = "-DBUILD_WSI_XLIB_SUPPORT=ON -DBUILD_WSI_XCB_SUPPORT=ON, -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF, libxcb libx11 libxrandr"
+PACKAGECONFIG[wayland] = "-DBUILD_WSI_WAYLAND_SUPPORT=ON, -DBUILD_WSI_WAYLAND_SUPPORT=OFF, wayland"
+
+UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/waffle/waffle_1.7.0.bb b/poky/meta/recipes-graphics/waffle/waffle_1.7.0.bb
index 846cd0d..ea11309 100644
--- a/poky/meta/recipes-graphics/waffle/waffle_1.7.0.bb
+++ b/poky/meta/recipes-graphics/waffle/waffle_1.7.0.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4c5154407c2490750dd461c50ad94797 \
                     file://include/waffle-1/waffle.h;endline=24;md5=61dbf8697f61c78645e75a93c585b1bf"
 
-SRC_URI = "git://gitlab.freedesktop.org/mesa/waffle.git;protocol=https \
+SRC_URI = "git://gitlab.freedesktop.org/mesa/waffle.git;protocol=https;branch=master \
            file://0001-waffle-do-not-make-core-protocol-into-the-library.patch \
            "
 SRCREV = "905c6c10f2483adf0cbfa024e2d3c2ed541fb300"
@@ -17,7 +17,7 @@
 
 inherit meson features_check lib_package bash-completion pkgconfig
 
-DEPENDS:append = " python3"
+DEPENDS:append = " python3 cmake-native"
 
 # This should be overridden per-machine to reflect the capabilities of the GL
 # stack.
diff --git a/poky/meta/recipes-graphics/wayland/libinput_1.19.2.bb b/poky/meta/recipes-graphics/wayland/libinput_1.19.2.bb
deleted file mode 100644
index 590dee4..0000000
--- a/poky/meta/recipes-graphics/wayland/libinput_1.19.2.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "Library to handle input devices in Wayland compositors"
-DESCRIPTION = "libinput is a library to handle input devices in Wayland \
-compositors and to provide a generic X.Org input driver. It provides \
-device detection, device handling, input device event processing and \
-abstraction so minimize the amount of custom input code compositors need to \
-provide the common set of functionality that users expect."
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/"
-SECTION = "libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bab4ac7dc1c10bc0fb037dc76c46ef8a"
-
-DEPENDS = "libevdev udev mtdev libcheck"
-
-SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \
-           file://run-ptest \
-           file://determinism.patch \
-           "
-SRC_URI[sha256sum] = "0fc39f0af3ee1a77c60c34bc45391a4d0879169f7c0f7bbbeb5eef590b98b883"
-
-UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
-
-inherit meson pkgconfig lib_package ptest
-
-# Patch out build directory, otherwise it leaks into ptest binary
-do_configure:append() {
-    sed -i -e "s,${WORKDIR},,g" config.h
-    if [ -e "litest-config.h" ]; then
-        sed -i -e "s,${WORKDIR},,g" litest-config.h
-    fi
-}
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom"
-PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3"
-
-UDEVDIR = "`pkg-config --variable=udevdir udev`"
-
-EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \
-                  -Ddocumentation=false \
-                  ${@bb.utils.contains('PTEST_ENABLED', '1', '-Dtests=true -Dinstall-tests=true', '-Dtests=false -Dinstall-tests=false', d)} \
-                  -Dzshcompletiondir=no"
-
-# package name changed in 1.8.1 upgrade: make sure package upgrades work
-RPROVIDES:${PN} = "libinput"
-RREPLACES:${PN} = "libinput"
-RCONFLICTS:${PN} = "libinput"
-
-FILES:${PN}-ptest += "${libexecdir}/libinput/libinput-test-suite"
diff --git a/poky/meta/recipes-graphics/wayland/libinput_1.19.3.bb b/poky/meta/recipes-graphics/wayland/libinput_1.19.3.bb
new file mode 100644
index 0000000..a7f1324
--- /dev/null
+++ b/poky/meta/recipes-graphics/wayland/libinput_1.19.3.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Library to handle input devices in Wayland compositors"
+DESCRIPTION = "libinput is a library to handle input devices in Wayland \
+compositors and to provide a generic X.Org input driver. It provides \
+device detection, device handling, input device event processing and \
+abstraction so minimize the amount of custom input code compositors need to \
+provide the common set of functionality that users expect."
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bab4ac7dc1c10bc0fb037dc76c46ef8a"
+
+DEPENDS = "libevdev udev mtdev libcheck"
+
+SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \
+           file://run-ptest \
+           file://determinism.patch \
+           "
+SRC_URI[sha256sum] = "3cae78ccde19d7d0f387e58bc734d4d17ab5f6426f54a9e8b728c90b17baa068"
+
+UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
+
+inherit meson pkgconfig lib_package ptest
+
+# Patch out build directory, otherwise it leaks into ptest binary
+do_configure:append() {
+    sed -i -e "s,${WORKDIR},,g" config.h
+    if [ -e "litest-config.h" ]; then
+        sed -i -e "s,${WORKDIR},,g" litest-config.h
+    fi
+}
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom"
+PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3"
+
+UDEVDIR = "`pkg-config --variable=udevdir udev`"
+
+EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \
+                  -Ddocumentation=false \
+                  ${@bb.utils.contains('PTEST_ENABLED', '1', '-Dtests=true -Dinstall-tests=true', '-Dtests=false -Dinstall-tests=false', d)} \
+                  -Dzshcompletiondir=no"
+
+# package name changed in 1.8.1 upgrade: make sure package upgrades work
+RPROVIDES:${PN} = "libinput"
+RREPLACES:${PN} = "libinput"
+RCONFLICTS:${PN} = "libinput"
+
+FILES:${PN}-ptest += "${libexecdir}/libinput/libinput-test-suite"
diff --git a/poky/meta/recipes-graphics/wayland/wayland-protocols_1.23.bb b/poky/meta/recipes-graphics/wayland/wayland-protocols_1.23.bb
deleted file mode 100644
index 60b6eb1..0000000
--- a/poky/meta/recipes-graphics/wayland/wayland-protocols_1.23.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Collection of additional Wayland protocols"
-DESCRIPTION = "Wayland protocols that add functionality not \
-available in the Wayland core protocol. Such protocols either add \
-completely new functionality, or extend the functionality of some other \
-protocol either in Wayland core, or some other protocol in \
-wayland-protocols."
-HOMEPAGE = "http://wayland.freedesktop.org"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \
-                    file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53"
-
-SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
-           "
-SRC_URI[sha256sum] = "6c0af1915f96f615927a6270d025bd973ff1c58e521e4ca1fc9abfc914633f76"
-
-UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
-
-inherit allarch autotools pkgconfig
-
-PACKAGES = "${PN}"
-FILES:${PN} += "${datadir}/pkgconfig/wayland-protocols.pc"
diff --git a/poky/meta/recipes-graphics/wayland/wayland-protocols_1.24.bb b/poky/meta/recipes-graphics/wayland/wayland-protocols_1.24.bb
new file mode 100644
index 0000000..0cfdb90
--- /dev/null
+++ b/poky/meta/recipes-graphics/wayland/wayland-protocols_1.24.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Collection of additional Wayland protocols"
+DESCRIPTION = "Wayland protocols that add functionality not \
+available in the Wayland core protocol. Such protocols either add \
+completely new functionality, or extend the functionality of some other \
+protocol either in Wayland core, or some other protocol in \
+wayland-protocols."
+HOMEPAGE = "http://wayland.freedesktop.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \
+                    file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53"
+
+SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
+           "
+SRC_URI[sha256sum] = "bff0d8cffeeceb35159d6f4aa6bab18c807b80642c9d50f66cba52ecf7338bc2"
+
+UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
+
+inherit meson pkgconfig allarch
+
+EXTRA_OEMESON += "-Dtests=false"
+
+PACKAGES = "${PN}"
+FILES:${PN} += "${datadir}/pkgconfig/wayland-protocols.pc"
diff --git a/poky/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch b/poky/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch
index ad1063b..bc753de 100644
--- a/poky/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch
+++ b/poky/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch
@@ -1,4 +1,4 @@
-From 6a6223a8e217664a348835e92d5a602f50e18b2c Mon Sep 17 00:00:00 2001
+From b4c64b6f07743e3fb63ce52359bc664ab7d60df0 Mon Sep 17 00:00:00 2001
 From: Joshua Watt <JPEWhacker@gmail.com>
 Date: Thu, 20 Feb 2020 15:20:45 -0600
 Subject: [PATCH] build: Fix strndup detection on MinGW
@@ -11,27 +11,31 @@
 
 See: https://github.com/mesonbuild/meson/issues/3672
 
-Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
 Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/wayland/merge_requests/63]
 
+Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+Signed-off-by: Denys Dmytriyenko <denis@denix.org>
 ---
  meson.build | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/meson.build b/meson.build
-index 11c35fa..80729d0 100644
+index 3bc25c9..adde7b9 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -36,11 +36,11 @@ have_funcs = [
- 	'posix_fallocate',
+@@ -38,11 +38,11 @@ have_funcs = [
  	'prctl',
  	'memfd_create',
+ 	'mremap',
 -	'strndup',
  ]
  foreach f: have_funcs
  	config_h.set('HAVE_' + f.underscorify().to_upper(), cc.has_function(f))
  endforeach
 +config_h.set('HAVE_STRNDUP', cc.has_function('strndup') and cc.has_header_symbol('string.h', 'strndup'))
- 
- if get_option('libraries')
- 	ffi_dep = dependency('libffi')
+ config_h.set10('HAVE_XUCRED_CR_PID', cc.has_member('struct xucred', 'cr_pid', prefix : '#include <sys/ucred.h>'))
+ have_broken_msg_cmsg_cloexec = false
+ if host_machine.system() == 'freebsd'
+-- 
+2.7.4
+
diff --git a/poky/meta/recipes-graphics/wayland/wayland/0002-meson.build-find-the-native-wayland-scanner-directly.patch b/poky/meta/recipes-graphics/wayland/wayland/0002-meson.build-find-the-native-wayland-scanner-directly.patch
deleted file mode 100644
index 11dc069..0000000
--- a/poky/meta/recipes-graphics/wayland/wayland/0002-meson.build-find-the-native-wayland-scanner-directly.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 98e7902a4ddcd80b61cce6f35f97907e841a5eda Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Sun, 16 Feb 2020 16:29:53 +0100
-Subject: [PATCH] meson.build: find the native wayland-scanner directly in PATH
-
-Otherwise, meson attempts to use the target pkg-config and fails.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- src/meson.build | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/src/meson.build b/src/meson.build
-index d91c503..15730a3 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -59,8 +59,7 @@ if get_option('scanner')
- endif
- 
- if meson.is_cross_build() or not get_option('scanner')
--	scanner_dep = dependency('wayland-scanner', native: true, version: meson.project_version())
--	wayland_scanner_for_build = find_program(scanner_dep.get_pkgconfig_variable('wayland_scanner'))
-+	wayland_scanner_for_build = find_program('wayland-scanner')
- else
- 	wayland_scanner_for_build = wayland_scanner
- endif
diff --git a/poky/meta/recipes-graphics/wayland/wayland_1.19.0.bb b/poky/meta/recipes-graphics/wayland/wayland_1.19.0.bb
deleted file mode 100644
index d6e4684..0000000
--- a/poky/meta/recipes-graphics/wayland/wayland_1.19.0.bb
+++ /dev/null
@@ -1,62 +0,0 @@
-SUMMARY = "Wayland, a protocol between a compositor and clients"
-DESCRIPTION = "Wayland is a protocol for a compositor to talk to its clients \
-as well as a C library implementation of that protocol. The compositor can be \
-a standalone display server running on Linux kernel modesetting and evdev \
-input devices, an X application, or a wayland client itself. The clients can \
-be traditional applications, X servers (rootless or fullscreen) or other \
-display servers."
-HOMEPAGE = "http://wayland.freedesktop.org"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \
-                    file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce"
-
-DEPENDS = "expat libffi wayland-native"
-
-SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
-           file://run-ptest \
-           file://0002-meson.build-find-the-native-wayland-scanner-directly.patch \
-           file://0002-Do-not-hardcode-the-path-to-wayland-scanner.patch \
-           file://0001-build-Fix-strndup-detection-on-MinGW.patch \
-           "
-SRC_URI[sha256sum] = "baccd902300d354581cd5ad3cc49daa4921d55fb416a5883e218750fef166d15"
-
-UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
-
-inherit meson pkgconfig ptest
-
-PACKAGECONFIG ??= "dtd-validation"
-PACKAGECONFIG[dtd-validation] = "-Ddtd_validation=true,-Ddtd_validation=false,libxml2,,"
-
-EXTRA_OEMESON = "-Ddocumentation=false"
-EXTRA_OEMESON:class-native = "-Ddocumentation=false -Dlibraries=false"
-
-# Wayland installs a M4 macro for other projects to use, which uses the target
-# pkg-config to find files.  Replace pkg-config with pkg-config-native.
-do_install:append:class-native() {
-  sed -e 's,PKG_CHECK_MODULES(.*),,g' \
-      -e 's,$PKG_CONFIG,pkg-config-native,g' \
-      -i ${D}/${datadir}/aclocal/wayland-scanner.m4
-}
-
-do_install_ptest() {
-    mkdir -p ${D}${PTEST_PATH}/tests/data
-    cp -rf ${B}/tests/*-test ${B}/tests/*-checker ${D}${PTEST_PATH}/tests
-    cp -rf ${B}/tests/*-checker ${D}${PTEST_PATH}
-    cp -rf ${S}/tests/scanner-test.sh ${D}${PTEST_PATH}/tests
-    cp -rf ${S}/tests/data/* ${D}${PTEST_PATH}/tests/data/
-    cp -rf ${S}/egl/wayland-egl-symbols-check ${D}${PTEST_PATH}/tests/
-}
-
-sysroot_stage_all:append:class-target () {
-	rm ${SYSROOT_DESTDIR}/${datadir}/aclocal/wayland-scanner.m4
-	cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/
-}
-
-PACKAGES += "${PN}-tools"
-
-FILES:${PN} = "${libdir}/*${SOLIBS}"
-FILES:${PN}-tools += "${bindir} ${datadir}/wayland"
-
-BBCLASSEXTEND = "native nativesdk"
-
-RDEPENDS:${PN}-ptest += "binutils sed ${PN}-tools"
diff --git a/poky/meta/recipes-graphics/wayland/wayland_1.20.0.bb b/poky/meta/recipes-graphics/wayland/wayland_1.20.0.bb
new file mode 100644
index 0000000..e8636eb
--- /dev/null
+++ b/poky/meta/recipes-graphics/wayland/wayland_1.20.0.bb
@@ -0,0 +1,61 @@
+SUMMARY = "Wayland, a protocol between a compositor and clients"
+DESCRIPTION = "Wayland is a protocol for a compositor to talk to its clients \
+as well as a C library implementation of that protocol. The compositor can be \
+a standalone display server running on Linux kernel modesetting and evdev \
+input devices, an X application, or a wayland client itself. The clients can \
+be traditional applications, X servers (rootless or fullscreen) or other \
+display servers."
+HOMEPAGE = "http://wayland.freedesktop.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \
+                    file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce"
+
+DEPENDS = "expat libffi wayland-native"
+
+SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
+           file://run-ptest \
+           file://0002-Do-not-hardcode-the-path-to-wayland-scanner.patch \
+           file://0001-build-Fix-strndup-detection-on-MinGW.patch \
+           "
+SRC_URI[sha256sum] = "b8a034154c7059772e0fdbd27dbfcda6c732df29cae56a82274f6ec5d7cd8725"
+
+UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
+
+inherit meson pkgconfig ptest
+
+PACKAGECONFIG ??= "dtd-validation"
+PACKAGECONFIG[dtd-validation] = "-Ddtd_validation=true,-Ddtd_validation=false,libxml2,,"
+
+EXTRA_OEMESON = "-Ddocumentation=false"
+EXTRA_OEMESON:class-native = "-Ddocumentation=false -Dlibraries=false"
+
+# Wayland installs a M4 macro for other projects to use, which uses the target
+# pkg-config to find files.  Replace pkg-config with pkg-config-native.
+do_install:append:class-native() {
+  sed -e 's,PKG_CHECK_MODULES(.*),,g' \
+      -e 's,$PKG_CONFIG,pkg-config-native,g' \
+      -i ${D}/${datadir}/aclocal/wayland-scanner.m4
+}
+
+do_install_ptest() {
+    mkdir -p ${D}${PTEST_PATH}/tests/data
+    cp -rf ${B}/tests/*-test ${B}/tests/*-checker ${D}${PTEST_PATH}/tests
+    cp -rf ${B}/tests/*-checker ${D}${PTEST_PATH}
+    cp -rf ${S}/tests/scanner-test.sh ${D}${PTEST_PATH}/tests
+    cp -rf ${S}/tests/data/* ${D}${PTEST_PATH}/tests/data/
+    cp -rf ${S}/egl/wayland-egl-symbols-check ${D}${PTEST_PATH}/tests/
+}
+
+sysroot_stage_all:append:class-target () {
+	rm ${SYSROOT_DESTDIR}/${datadir}/aclocal/wayland-scanner.m4
+	cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/
+}
+
+PACKAGES =+ "${PN}-tools"
+
+FILES:${PN}-tools = "${bindir}/wayland-scanner"
+FILES:${PN}-dev += "${datadir}/${BPN}/wayland-scanner.mk"
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN}-ptest += "binutils sed ${PN}-tools"
diff --git a/poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
index 3279a72..f6ebfd8 100644
--- a/poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
+++ b/poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
@@ -11,7 +11,7 @@
 PAM is not available, provide a default version of weston-launch
 without non-root-user support.
 
-Upstream-Status: Pending
+Upstream-Status: Denied [https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/725]
 
 Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
 Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
diff --git a/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
index 2553d89..49c42bd 100644
--- a/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
+++ b/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
@@ -12,7 +12,7 @@
 REQUIRED_DISTRO_FEATURES = "x11"
 
 SRCREV = "18ec53f1cada39f905614ebfaffed5c7754ecf46"
-SRC_URI = "git://github.com/kreijack/xinput_calibrator.git;branch=libinput \
+SRC_URI = "git://github.com/kreijack/xinput_calibrator.git;branch=libinput;protocol=https \
            file://30xinput_calibrate.sh \
            file://Allow-xinput_calibrator_pointercal.sh-to-be-run-as-n.patch \
            file://0001-calibrator.hh-Include-string-to-get-std-string.patch \
diff --git a/poky/meta/recipes-graphics/xorg-app/xauth_1.1.1.bb b/poky/meta/recipes-graphics/xorg-app/xauth_1.1.1.bb
new file mode 100644
index 0000000..48259a6
--- /dev/null
+++ b/poky/meta/recipes-graphics/xorg-app/xauth_1.1.1.bb
@@ -0,0 +1,14 @@
+require xorg-app-common.inc
+SUMMARY = "X authority utilities"
+DESCRIPTION = "X application to edit and display the authorization \
+information used in connecting to the X server."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=5ec74dd7ea4d10c4715a7c44f159a40b"
+
+DEPENDS += "libxau libxext libxmu"
+PE = "1"
+
+SRC_URI[sha256sum] = "164ea0a29137b284a47b886ef2affcb0a74733bf3aad04f9b106b1a6c82ebd92"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/poky/meta/recipes-graphics/xorg-app/xauth_1.1.bb b/poky/meta/recipes-graphics/xorg-app/xauth_1.1.bb
deleted file mode 100644
index 24ad960..0000000
--- a/poky/meta/recipes-graphics/xorg-app/xauth_1.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require xorg-app-common.inc
-SUMMARY = "X authority utilities"
-DESCRIPTION = "X application to edit and display the authorization \
-information used in connecting to the X server."
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=5ec74dd7ea4d10c4715a7c44f159a40b"
-
-DEPENDS += "libxau libxext libxmu"
-PE = "1"
-
-SRC_URI[md5sum] = "e50587c1bb832aafd1a19d91a0890a0b"
-SRC_URI[sha256sum] = "6d1dd1b79dd185107c5b0fdd22d1d791ad749ad6e288d0cdf80964c4ffa7530c"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Sync-i915_pciids-upto-8717c6b7414f.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Sync-i915_pciids-upto-8717c6b7414f.patch
deleted file mode 100644
index ef3b1af..0000000
--- a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Sync-i915_pciids-upto-8717c6b7414f.patch
+++ /dev/null
@@ -1,505 +0,0 @@
-From 05909fea93f29b2b6e1d554dd64201551bd7a022 Mon Sep 17 00:00:00 2001
-From: Liwei Song <liwei.song@windriver.com>
-Date: Fri, 17 Apr 2020 16:11:59 +0800
-Subject: [PATCH] Sync i915_pciids upto 8717c6b7414f
-
-Import the kernel's i915_pciids.h, up to:
-
-commit 8717c6b7414ffb890672276dccc284c23078ac0e
-Author: Lee Shawn C <shawn.c.lee@intel.com>
-Date:   Tue Dec 10 23:04:15 2019 +0800
-
-    drm/i915/cml: Separate U series pci id from origianl list.
-
-Upstream-Status: Submitted [https://patchwork.kernel.org/patch/11494645/]
-
-Signed-off-by: Liwei Song <liwei.song@windriver.com>
----
- src/i915_pciids.h  | 265 ++++++++++++++++++++++++++++++++++-----------
- src/intel_module.c |   2 +-
- test/dri3-test.c   |   2 +-
- 3 files changed, 206 insertions(+), 63 deletions(-)
-
-diff --git a/src/i915_pciids.h b/src/i915_pciids.h
-index fd965ffbb92e..1d2c12219f44 100644
---- a/src/i915_pciids.h
-+++ b/src/i915_pciids.h
-@@ -108,8 +108,10 @@
- 	INTEL_VGA_DEVICE(0x2e42, info), /* B43_G */ \
- 	INTEL_VGA_DEVICE(0x2e92, info)	/* B43_G.1 */
- 
--#define INTEL_PINEVIEW_IDS(info)			\
--	INTEL_VGA_DEVICE(0xa001, info),			\
-+#define INTEL_PINEVIEW_G_IDS(info) \
-+	INTEL_VGA_DEVICE(0xa001, info)
-+
-+#define INTEL_PINEVIEW_M_IDS(info) \
- 	INTEL_VGA_DEVICE(0xa011, info)
- 
- #define INTEL_IRONLAKE_D_IDS(info) \
-@@ -166,7 +168,18 @@
- #define INTEL_IVB_Q_IDS(info) \
- 	INTEL_QUANTA_VGA_DEVICE(info) /* Quanta transcode */
- 
-+#define INTEL_HSW_ULT_GT1_IDS(info) \
-+	INTEL_VGA_DEVICE(0x0A02, info), /* ULT GT1 desktop */ \
-+	INTEL_VGA_DEVICE(0x0A0A, info), /* ULT GT1 server */ \
-+	INTEL_VGA_DEVICE(0x0A0B, info), /* ULT GT1 reserved */ \
-+	INTEL_VGA_DEVICE(0x0A06, info)  /* ULT GT1 mobile */
-+
-+#define INTEL_HSW_ULX_GT1_IDS(info) \
-+	INTEL_VGA_DEVICE(0x0A0E, info) /* ULX GT1 mobile */
-+
- #define INTEL_HSW_GT1_IDS(info) \
-+	INTEL_HSW_ULT_GT1_IDS(info), \
-+	INTEL_HSW_ULX_GT1_IDS(info), \
- 	INTEL_VGA_DEVICE(0x0402, info), /* GT1 desktop */ \
- 	INTEL_VGA_DEVICE(0x040a, info), /* GT1 server */ \
- 	INTEL_VGA_DEVICE(0x040B, info), /* GT1 reserved */ \
-@@ -175,20 +188,26 @@
- 	INTEL_VGA_DEVICE(0x0C0A, info), /* SDV GT1 server */ \
- 	INTEL_VGA_DEVICE(0x0C0B, info), /* SDV GT1 reserved */ \
- 	INTEL_VGA_DEVICE(0x0C0E, info), /* SDV GT1 reserved */ \
--	INTEL_VGA_DEVICE(0x0A02, info), /* ULT GT1 desktop */ \
--	INTEL_VGA_DEVICE(0x0A0A, info), /* ULT GT1 server */ \
--	INTEL_VGA_DEVICE(0x0A0B, info), /* ULT GT1 reserved */ \
- 	INTEL_VGA_DEVICE(0x0D02, info), /* CRW GT1 desktop */ \
- 	INTEL_VGA_DEVICE(0x0D0A, info), /* CRW GT1 server */ \
- 	INTEL_VGA_DEVICE(0x0D0B, info), /* CRW GT1 reserved */ \
- 	INTEL_VGA_DEVICE(0x0D0E, info), /* CRW GT1 reserved */ \
- 	INTEL_VGA_DEVICE(0x0406, info), /* GT1 mobile */ \
- 	INTEL_VGA_DEVICE(0x0C06, info), /* SDV GT1 mobile */ \
--	INTEL_VGA_DEVICE(0x0A06, info), /* ULT GT1 mobile */ \
--	INTEL_VGA_DEVICE(0x0A0E, info), /* ULX GT1 mobile */ \
- 	INTEL_VGA_DEVICE(0x0D06, info)  /* CRW GT1 mobile */
- 
-+#define INTEL_HSW_ULT_GT2_IDS(info) \
-+	INTEL_VGA_DEVICE(0x0A12, info), /* ULT GT2 desktop */ \
-+	INTEL_VGA_DEVICE(0x0A1A, info), /* ULT GT2 server */ \
-+	INTEL_VGA_DEVICE(0x0A1B, info), /* ULT GT2 reserved */ \
-+	INTEL_VGA_DEVICE(0x0A16, info)  /* ULT GT2 mobile */
-+
-+#define INTEL_HSW_ULX_GT2_IDS(info) \
-+	INTEL_VGA_DEVICE(0x0A1E, info) /* ULX GT2 mobile */ \
-+
- #define INTEL_HSW_GT2_IDS(info) \
-+	INTEL_HSW_ULT_GT2_IDS(info), \
-+	INTEL_HSW_ULX_GT2_IDS(info), \
- 	INTEL_VGA_DEVICE(0x0412, info), /* GT2 desktop */ \
- 	INTEL_VGA_DEVICE(0x041a, info), /* GT2 server */ \
- 	INTEL_VGA_DEVICE(0x041B, info), /* GT2 reserved */ \
-@@ -197,9 +216,6 @@
- 	INTEL_VGA_DEVICE(0x0C1A, info), /* SDV GT2 server */ \
- 	INTEL_VGA_DEVICE(0x0C1B, info), /* SDV GT2 reserved */ \
- 	INTEL_VGA_DEVICE(0x0C1E, info), /* SDV GT2 reserved */ \
--	INTEL_VGA_DEVICE(0x0A12, info), /* ULT GT2 desktop */ \
--	INTEL_VGA_DEVICE(0x0A1A, info), /* ULT GT2 server */ \
--	INTEL_VGA_DEVICE(0x0A1B, info), /* ULT GT2 reserved */ \
- 	INTEL_VGA_DEVICE(0x0D12, info), /* CRW GT2 desktop */ \
- 	INTEL_VGA_DEVICE(0x0D1A, info), /* CRW GT2 server */ \
- 	INTEL_VGA_DEVICE(0x0D1B, info), /* CRW GT2 reserved */ \
-@@ -207,11 +223,17 @@
- 	INTEL_VGA_DEVICE(0x0416, info), /* GT2 mobile */ \
- 	INTEL_VGA_DEVICE(0x0426, info), /* GT2 mobile */ \
- 	INTEL_VGA_DEVICE(0x0C16, info), /* SDV GT2 mobile */ \
--	INTEL_VGA_DEVICE(0x0A16, info), /* ULT GT2 mobile */ \
--	INTEL_VGA_DEVICE(0x0A1E, info), /* ULX GT2 mobile */ \
- 	INTEL_VGA_DEVICE(0x0D16, info)  /* CRW GT2 mobile */
- 
-+#define INTEL_HSW_ULT_GT3_IDS(info) \
-+	INTEL_VGA_DEVICE(0x0A22, info), /* ULT GT3 desktop */ \
-+	INTEL_VGA_DEVICE(0x0A2A, info), /* ULT GT3 server */ \
-+	INTEL_VGA_DEVICE(0x0A2B, info), /* ULT GT3 reserved */ \
-+	INTEL_VGA_DEVICE(0x0A26, info), /* ULT GT3 mobile */ \
-+	INTEL_VGA_DEVICE(0x0A2E, info)  /* ULT GT3 reserved */
-+
- #define INTEL_HSW_GT3_IDS(info) \
-+	INTEL_HSW_ULT_GT3_IDS(info), \
- 	INTEL_VGA_DEVICE(0x0422, info), /* GT3 desktop */ \
- 	INTEL_VGA_DEVICE(0x042a, info), /* GT3 server */ \
- 	INTEL_VGA_DEVICE(0x042B, info), /* GT3 reserved */ \
-@@ -220,16 +242,11 @@
- 	INTEL_VGA_DEVICE(0x0C2A, info), /* SDV GT3 server */ \
- 	INTEL_VGA_DEVICE(0x0C2B, info), /* SDV GT3 reserved */ \
- 	INTEL_VGA_DEVICE(0x0C2E, info), /* SDV GT3 reserved */ \
--	INTEL_VGA_DEVICE(0x0A22, info), /* ULT GT3 desktop */ \
--	INTEL_VGA_DEVICE(0x0A2A, info), /* ULT GT3 server */ \
--	INTEL_VGA_DEVICE(0x0A2B, info), /* ULT GT3 reserved */ \
- 	INTEL_VGA_DEVICE(0x0D22, info), /* CRW GT3 desktop */ \
- 	INTEL_VGA_DEVICE(0x0D2A, info), /* CRW GT3 server */ \
- 	INTEL_VGA_DEVICE(0x0D2B, info), /* CRW GT3 reserved */ \
- 	INTEL_VGA_DEVICE(0x0D2E, info), /* CRW GT3 reserved */ \
- 	INTEL_VGA_DEVICE(0x0C26, info), /* SDV GT3 mobile */ \
--	INTEL_VGA_DEVICE(0x0A26, info), /* ULT GT3 mobile */ \
--	INTEL_VGA_DEVICE(0x0A2E, info), /* ULT GT3 reserved */ \
- 	INTEL_VGA_DEVICE(0x0D26, info)  /* CRW GT3 mobile */
- 
- #define INTEL_HSW_IDS(info) \
-@@ -245,35 +262,59 @@
- 	INTEL_VGA_DEVICE(0x0157, info), \
- 	INTEL_VGA_DEVICE(0x0155, info)
- 
--#define INTEL_BDW_GT1_IDS(info)  \
--	INTEL_VGA_DEVICE(0x1602, info), /* GT1 ULT */ \
-+#define INTEL_BDW_ULT_GT1_IDS(info) \
- 	INTEL_VGA_DEVICE(0x1606, info), /* GT1 ULT */ \
--	INTEL_VGA_DEVICE(0x160B, info), /* GT1 Iris */ \
--	INTEL_VGA_DEVICE(0x160E, info), /* GT1 ULX */ \
-+	INTEL_VGA_DEVICE(0x160B, info)  /* GT1 Iris */
-+
-+#define INTEL_BDW_ULX_GT1_IDS(info) \
-+	INTEL_VGA_DEVICE(0x160E, info) /* GT1 ULX */
-+
-+#define INTEL_BDW_GT1_IDS(info) \
-+	INTEL_BDW_ULT_GT1_IDS(info), \
-+	INTEL_BDW_ULX_GT1_IDS(info), \
-+	INTEL_VGA_DEVICE(0x1602, info), /* GT1 ULT */ \
- 	INTEL_VGA_DEVICE(0x160A, info), /* GT1 Server */ \
- 	INTEL_VGA_DEVICE(0x160D, info)  /* GT1 Workstation */
- 
--#define INTEL_BDW_GT2_IDS(info)  \
--	INTEL_VGA_DEVICE(0x1612, info), /* GT2 Halo */	\
-+#define INTEL_BDW_ULT_GT2_IDS(info) \
- 	INTEL_VGA_DEVICE(0x1616, info), /* GT2 ULT */ \
--	INTEL_VGA_DEVICE(0x161B, info), /* GT2 ULT */ \
--	INTEL_VGA_DEVICE(0x161E, info), /* GT2 ULX */ \
-+	INTEL_VGA_DEVICE(0x161B, info)  /* GT2 ULT */
-+
-+#define INTEL_BDW_ULX_GT2_IDS(info) \
-+	INTEL_VGA_DEVICE(0x161E, info) /* GT2 ULX */
-+
-+#define INTEL_BDW_GT2_IDS(info) \
-+	INTEL_BDW_ULT_GT2_IDS(info), \
-+	INTEL_BDW_ULX_GT2_IDS(info), \
-+	INTEL_VGA_DEVICE(0x1612, info), /* GT2 Halo */	\
- 	INTEL_VGA_DEVICE(0x161A, info), /* GT2 Server */ \
- 	INTEL_VGA_DEVICE(0x161D, info)  /* GT2 Workstation */
- 
-+#define INTEL_BDW_ULT_GT3_IDS(info) \
-+	INTEL_VGA_DEVICE(0x1626, info), /* ULT */ \
-+	INTEL_VGA_DEVICE(0x162B, info)  /* Iris */ \
-+
-+#define INTEL_BDW_ULX_GT3_IDS(info) \
-+	INTEL_VGA_DEVICE(0x162E, info)  /* ULX */
-+
- #define INTEL_BDW_GT3_IDS(info) \
-+	INTEL_BDW_ULT_GT3_IDS(info), \
-+	INTEL_BDW_ULX_GT3_IDS(info), \
- 	INTEL_VGA_DEVICE(0x1622, info), /* ULT */ \
--	INTEL_VGA_DEVICE(0x1626, info), /* ULT */ \
--	INTEL_VGA_DEVICE(0x162B, info), /* Iris */ \
--	INTEL_VGA_DEVICE(0x162E, info),  /* ULX */\
- 	INTEL_VGA_DEVICE(0x162A, info), /* Server */ \
- 	INTEL_VGA_DEVICE(0x162D, info)  /* Workstation */
- 
-+#define INTEL_BDW_ULT_RSVD_IDS(info) \
-+	INTEL_VGA_DEVICE(0x1636, info), /* ULT */ \
-+	INTEL_VGA_DEVICE(0x163B, info)  /* Iris */
-+
-+#define INTEL_BDW_ULX_RSVD_IDS(info) \
-+	INTEL_VGA_DEVICE(0x163E, info) /* ULX */
-+
- #define INTEL_BDW_RSVD_IDS(info) \
-+	INTEL_BDW_ULT_RSVD_IDS(info), \
-+	INTEL_BDW_ULX_RSVD_IDS(info), \
- 	INTEL_VGA_DEVICE(0x1632, info), /* ULT */ \
--	INTEL_VGA_DEVICE(0x1636, info), /* ULT */ \
--	INTEL_VGA_DEVICE(0x163B, info), /* Iris */ \
--	INTEL_VGA_DEVICE(0x163E, info), /* ULX */ \
- 	INTEL_VGA_DEVICE(0x163A, info), /* Server */ \
- 	INTEL_VGA_DEVICE(0x163D, info)  /* Workstation */
- 
-@@ -289,25 +330,40 @@
- 	INTEL_VGA_DEVICE(0x22b2, info), \
- 	INTEL_VGA_DEVICE(0x22b3, info)
- 
-+#define INTEL_SKL_ULT_GT1_IDS(info) \
-+	INTEL_VGA_DEVICE(0x1906, info) /* ULT GT1 */
-+
-+#define INTEL_SKL_ULX_GT1_IDS(info) \
-+	INTEL_VGA_DEVICE(0x190E, info) /* ULX GT1 */
-+
- #define INTEL_SKL_GT1_IDS(info)	\
--	INTEL_VGA_DEVICE(0x1906, info), /* ULT GT1 */ \
--	INTEL_VGA_DEVICE(0x190E, info), /* ULX GT1 */ \
-+	INTEL_SKL_ULT_GT1_IDS(info), \
-+	INTEL_SKL_ULX_GT1_IDS(info), \
- 	INTEL_VGA_DEVICE(0x1902, info), /* DT  GT1 */ \
- 	INTEL_VGA_DEVICE(0x190B, info), /* Halo GT1 */ \
- 	INTEL_VGA_DEVICE(0x190A, info) /* SRV GT1 */
- 
--#define INTEL_SKL_GT2_IDS(info)	\
-+#define INTEL_SKL_ULT_GT2_IDS(info) \
- 	INTEL_VGA_DEVICE(0x1916, info), /* ULT GT2 */ \
--	INTEL_VGA_DEVICE(0x1921, info), /* ULT GT2F */ \
--	INTEL_VGA_DEVICE(0x191E, info), /* ULX GT2 */ \
-+	INTEL_VGA_DEVICE(0x1921, info)  /* ULT GT2F */
-+
-+#define INTEL_SKL_ULX_GT2_IDS(info) \
-+	INTEL_VGA_DEVICE(0x191E, info) /* ULX GT2 */
-+
-+#define INTEL_SKL_GT2_IDS(info)	\
-+	INTEL_SKL_ULT_GT2_IDS(info), \
-+	INTEL_SKL_ULX_GT2_IDS(info), \
- 	INTEL_VGA_DEVICE(0x1912, info), /* DT  GT2 */ \
- 	INTEL_VGA_DEVICE(0x191B, info), /* Halo GT2 */ \
- 	INTEL_VGA_DEVICE(0x191A, info), /* SRV GT2 */ \
- 	INTEL_VGA_DEVICE(0x191D, info)  /* WKS GT2 */
- 
-+#define INTEL_SKL_ULT_GT3_IDS(info) \
-+	INTEL_VGA_DEVICE(0x1926, info) /* ULT GT3 */
-+
- #define INTEL_SKL_GT3_IDS(info) \
-+	INTEL_SKL_ULT_GT3_IDS(info), \
- 	INTEL_VGA_DEVICE(0x1923, info), /* ULT GT3 */ \
--	INTEL_VGA_DEVICE(0x1926, info), /* ULT GT3 */ \
- 	INTEL_VGA_DEVICE(0x1927, info), /* ULT GT3 */ \
- 	INTEL_VGA_DEVICE(0x192B, info), /* Halo GT3 */ \
- 	INTEL_VGA_DEVICE(0x192D, info)  /* SRV GT3 */
-@@ -336,45 +392,91 @@
- 	INTEL_VGA_DEVICE(0x3184, info), \
- 	INTEL_VGA_DEVICE(0x3185, info)
- 
--#define INTEL_KBL_GT1_IDS(info)	\
--	INTEL_VGA_DEVICE(0x5913, info), /* ULT GT1.5 */ \
--	INTEL_VGA_DEVICE(0x5915, info), /* ULX GT1.5 */ \
-+#define INTEL_KBL_ULT_GT1_IDS(info) \
- 	INTEL_VGA_DEVICE(0x5906, info), /* ULT GT1 */ \
-+	INTEL_VGA_DEVICE(0x5913, info)  /* ULT GT1.5 */
-+
-+#define INTEL_KBL_ULX_GT1_IDS(info) \
- 	INTEL_VGA_DEVICE(0x590E, info), /* ULX GT1 */ \
-+	INTEL_VGA_DEVICE(0x5915, info)  /* ULX GT1.5 */
-+
-+#define INTEL_KBL_GT1_IDS(info)	\
-+	INTEL_KBL_ULT_GT1_IDS(info), \
-+	INTEL_KBL_ULX_GT1_IDS(info), \
- 	INTEL_VGA_DEVICE(0x5902, info), /* DT  GT1 */ \
- 	INTEL_VGA_DEVICE(0x5908, info), /* Halo GT1 */ \
- 	INTEL_VGA_DEVICE(0x590B, info), /* Halo GT1 */ \
- 	INTEL_VGA_DEVICE(0x590A, info) /* SRV GT1 */
- 
--#define INTEL_KBL_GT2_IDS(info)	\
-+#define INTEL_KBL_ULT_GT2_IDS(info) \
- 	INTEL_VGA_DEVICE(0x5916, info), /* ULT GT2 */ \
-+	INTEL_VGA_DEVICE(0x5921, info)  /* ULT GT2F */
-+
-+#define INTEL_KBL_ULX_GT2_IDS(info) \
-+	INTEL_VGA_DEVICE(0x591E, info)  /* ULX GT2 */
-+
-+#define INTEL_KBL_GT2_IDS(info)	\
-+	INTEL_KBL_ULT_GT2_IDS(info), \
-+	INTEL_KBL_ULX_GT2_IDS(info), \
- 	INTEL_VGA_DEVICE(0x5917, info), /* Mobile GT2 */ \
--	INTEL_VGA_DEVICE(0x5921, info), /* ULT GT2F */ \
--	INTEL_VGA_DEVICE(0x591E, info), /* ULX GT2 */ \
- 	INTEL_VGA_DEVICE(0x5912, info), /* DT  GT2 */ \
- 	INTEL_VGA_DEVICE(0x591B, info), /* Halo GT2 */ \
- 	INTEL_VGA_DEVICE(0x591A, info), /* SRV GT2 */ \
- 	INTEL_VGA_DEVICE(0x591D, info) /* WKS GT2 */
- 
-+#define INTEL_KBL_ULT_GT3_IDS(info) \
-+	INTEL_VGA_DEVICE(0x5926, info) /* ULT GT3 */
-+
- #define INTEL_KBL_GT3_IDS(info) \
-+	INTEL_KBL_ULT_GT3_IDS(info), \
- 	INTEL_VGA_DEVICE(0x5923, info), /* ULT GT3 */ \
--	INTEL_VGA_DEVICE(0x5926, info), /* ULT GT3 */ \
- 	INTEL_VGA_DEVICE(0x5927, info) /* ULT GT3 */
- 
- #define INTEL_KBL_GT4_IDS(info) \
- 	INTEL_VGA_DEVICE(0x593B, info) /* Halo GT4 */
- 
- /* AML/KBL Y GT2 */
--#define INTEL_AML_GT2_IDS(info) \
-+#define INTEL_AML_KBL_GT2_IDS(info) \
- 	INTEL_VGA_DEVICE(0x591C, info),  /* ULX GT2 */ \
- 	INTEL_VGA_DEVICE(0x87C0, info) /* ULX GT2 */
- 
-+/* AML/CFL Y GT2 */
-+#define INTEL_AML_CFL_GT2_IDS(info) \
-+	INTEL_VGA_DEVICE(0x87CA, info)
-+
-+/* CML GT1 */
-+#define INTEL_CML_GT1_IDS(info)	\
-+	INTEL_VGA_DEVICE(0x9BA5, info), \
-+	INTEL_VGA_DEVICE(0x9BA8, info), \
-+	INTEL_VGA_DEVICE(0x9BA4, info), \
-+	INTEL_VGA_DEVICE(0x9BA2, info)
-+
-+#define INTEL_CML_U_GT1_IDS(info) \
-+	INTEL_VGA_DEVICE(0x9B21, info), \
-+	INTEL_VGA_DEVICE(0x9BAA, info), \
-+	INTEL_VGA_DEVICE(0x9BAC, info)
-+
-+/* CML GT2 */
-+#define INTEL_CML_GT2_IDS(info)	\
-+	INTEL_VGA_DEVICE(0x9BC5, info), \
-+	INTEL_VGA_DEVICE(0x9BC8, info), \
-+	INTEL_VGA_DEVICE(0x9BC4, info), \
-+	INTEL_VGA_DEVICE(0x9BC2, info), \
-+	INTEL_VGA_DEVICE(0x9BC6, info), \
-+	INTEL_VGA_DEVICE(0x9BE6, info), \
-+	INTEL_VGA_DEVICE(0x9BF6, info)
-+
-+#define INTEL_CML_U_GT2_IDS(info) \
-+	INTEL_VGA_DEVICE(0x9B41, info), \
-+	INTEL_VGA_DEVICE(0x9BCA, info), \
-+	INTEL_VGA_DEVICE(0x9BCC, info)
-+
- #define INTEL_KBL_IDS(info) \
- 	INTEL_KBL_GT1_IDS(info), \
- 	INTEL_KBL_GT2_IDS(info), \
- 	INTEL_KBL_GT3_IDS(info), \
- 	INTEL_KBL_GT4_IDS(info), \
--	INTEL_AML_GT2_IDS(info)
-+	INTEL_AML_KBL_GT2_IDS(info)
- 
- /* CFL S */
- #define INTEL_CFL_S_GT1_IDS(info) \
-@@ -390,6 +492,9 @@
- 	INTEL_VGA_DEVICE(0x3E9A, info)  /* SRV GT2 */
- 
- /* CFL H */
-+#define INTEL_CFL_H_GT1_IDS(info) \
-+	INTEL_VGA_DEVICE(0x3E9C, info)
-+
- #define INTEL_CFL_H_GT2_IDS(info) \
- 	INTEL_VGA_DEVICE(0x3E9B, info), /* Halo GT2 */ \
- 	INTEL_VGA_DEVICE(0x3E94, info)  /* Halo GT2 */
-@@ -407,30 +512,43 @@
- 
- /* WHL/CFL U GT1 */
- #define INTEL_WHL_U_GT1_IDS(info) \
--	INTEL_VGA_DEVICE(0x3EA1, info)
-+	INTEL_VGA_DEVICE(0x3EA1, info), \
-+	INTEL_VGA_DEVICE(0x3EA4, info)
- 
- /* WHL/CFL U GT2 */
- #define INTEL_WHL_U_GT2_IDS(info) \
--	INTEL_VGA_DEVICE(0x3EA0, info)
-+	INTEL_VGA_DEVICE(0x3EA0, info), \
-+	INTEL_VGA_DEVICE(0x3EA3, info)
- 
- /* WHL/CFL U GT3 */
- #define INTEL_WHL_U_GT3_IDS(info) \
--	INTEL_VGA_DEVICE(0x3EA2, info), \
--	INTEL_VGA_DEVICE(0x3EA3, info), \
--	INTEL_VGA_DEVICE(0x3EA4, info)
-+	INTEL_VGA_DEVICE(0x3EA2, info)
- 
- #define INTEL_CFL_IDS(info)	   \
- 	INTEL_CFL_S_GT1_IDS(info), \
- 	INTEL_CFL_S_GT2_IDS(info), \
-+	INTEL_CFL_H_GT1_IDS(info), \
- 	INTEL_CFL_H_GT2_IDS(info), \
- 	INTEL_CFL_U_GT2_IDS(info), \
- 	INTEL_CFL_U_GT3_IDS(info), \
- 	INTEL_WHL_U_GT1_IDS(info), \
- 	INTEL_WHL_U_GT2_IDS(info), \
--	INTEL_WHL_U_GT3_IDS(info)
-+	INTEL_WHL_U_GT3_IDS(info), \
-+	INTEL_AML_CFL_GT2_IDS(info), \
-+	INTEL_CML_GT1_IDS(info), \
-+	INTEL_CML_GT2_IDS(info), \
-+	INTEL_CML_U_GT1_IDS(info), \
-+	INTEL_CML_U_GT2_IDS(info)
- 
- /* CNL */
-+#define INTEL_CNL_PORT_F_IDS(info) \
-+	INTEL_VGA_DEVICE(0x5A54, info), \
-+	INTEL_VGA_DEVICE(0x5A5C, info), \
-+	INTEL_VGA_DEVICE(0x5A44, info), \
-+	INTEL_VGA_DEVICE(0x5A4C, info)
-+
- #define INTEL_CNL_IDS(info) \
-+	INTEL_CNL_PORT_F_IDS(info), \
- 	INTEL_VGA_DEVICE(0x5A51, info), \
- 	INTEL_VGA_DEVICE(0x5A59, info), \
- 	INTEL_VGA_DEVICE(0x5A41, info), \
-@@ -440,22 +558,47 @@
- 	INTEL_VGA_DEVICE(0x5A42, info), \
- 	INTEL_VGA_DEVICE(0x5A4A, info), \
- 	INTEL_VGA_DEVICE(0x5A50, info), \
--	INTEL_VGA_DEVICE(0x5A40, info), \
--	INTEL_VGA_DEVICE(0x5A54, info), \
--	INTEL_VGA_DEVICE(0x5A5C, info), \
--	INTEL_VGA_DEVICE(0x5A44, info), \
--	INTEL_VGA_DEVICE(0x5A4C, info)
-+	INTEL_VGA_DEVICE(0x5A40, info)
- 
- /* ICL */
--#define INTEL_ICL_11_IDS(info) \
-+#define INTEL_ICL_PORT_F_IDS(info) \
- 	INTEL_VGA_DEVICE(0x8A50, info), \
--	INTEL_VGA_DEVICE(0x8A51, info), \
- 	INTEL_VGA_DEVICE(0x8A5C, info), \
--	INTEL_VGA_DEVICE(0x8A5D, info), \
-+	INTEL_VGA_DEVICE(0x8A59, info),	\
-+	INTEL_VGA_DEVICE(0x8A58, info),	\
- 	INTEL_VGA_DEVICE(0x8A52, info), \
- 	INTEL_VGA_DEVICE(0x8A5A, info), \
- 	INTEL_VGA_DEVICE(0x8A5B, info), \
-+	INTEL_VGA_DEVICE(0x8A57, info), \
-+	INTEL_VGA_DEVICE(0x8A56, info), \
- 	INTEL_VGA_DEVICE(0x8A71, info), \
--	INTEL_VGA_DEVICE(0x8A70, info)
-+	INTEL_VGA_DEVICE(0x8A70, info), \
-+	INTEL_VGA_DEVICE(0x8A53, info), \
-+	INTEL_VGA_DEVICE(0x8A54, info)
-+
-+#define INTEL_ICL_11_IDS(info) \
-+	INTEL_ICL_PORT_F_IDS(info), \
-+	INTEL_VGA_DEVICE(0x8A51, info), \
-+	INTEL_VGA_DEVICE(0x8A5D, info)
-+
-+/* EHL/JSL */
-+#define INTEL_EHL_IDS(info) \
-+	INTEL_VGA_DEVICE(0x4500, info),	\
-+	INTEL_VGA_DEVICE(0x4571, info), \
-+	INTEL_VGA_DEVICE(0x4551, info), \
-+	INTEL_VGA_DEVICE(0x4541, info), \
-+	INTEL_VGA_DEVICE(0x4E71, info), \
-+	INTEL_VGA_DEVICE(0x4E61, info), \
-+	INTEL_VGA_DEVICE(0x4E51, info)
-+
-+/* TGL */
-+#define INTEL_TGL_12_IDS(info) \
-+	INTEL_VGA_DEVICE(0x9A49, info), \
-+	INTEL_VGA_DEVICE(0x9A40, info), \
-+	INTEL_VGA_DEVICE(0x9A59, info), \
-+	INTEL_VGA_DEVICE(0x9A60, info), \
-+	INTEL_VGA_DEVICE(0x9A68, info), \
-+	INTEL_VGA_DEVICE(0x9A70, info), \
-+	INTEL_VGA_DEVICE(0x9A78, info)
- 
- #endif /* _I915_PCIIDS_H */
-diff --git a/src/intel_module.c b/src/intel_module.c
-index a71c2e40b774..e0b94c190254 100644
---- a/src/intel_module.c
-+++ b/src/intel_module.c
-@@ -357,7 +357,7 @@ static const struct pci_id_match intel_device_match[] = {
- 	INTEL_I945GM_IDS(&intel_i945_info),
- 
- 	INTEL_G33_IDS(&intel_g33_info),
--	INTEL_PINEVIEW_IDS(&intel_g33_info),
-+	INTEL_PINEVIEW_G_IDS(&intel_g33_info),
- 
- 	INTEL_I965G_IDS(&intel_i965_info),
- 	INTEL_I965GM_IDS(&intel_i965_info),
-diff --git a/test/dri3-test.c b/test/dri3-test.c
-index 78e105a8b64a..5265a30cea1b 100644
---- a/test/dri3-test.c
-+++ b/test/dri3-test.c
-@@ -76,7 +76,7 @@ static const struct pci_id_match ids[] = {
- 	INTEL_I945GM_IDS(031),
- 
- 	INTEL_G33_IDS(033),
--	INTEL_PINEVIEW_IDS(033),
-+	INTEL_PINEVIEW_G_IDS(033),
- 
- 	INTEL_I965G_IDS(040),
- 	INTEL_I965GM_IDS(040),
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch
deleted file mode 100644
index 765d9ec..0000000
--- a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From c2d730cf79eb3e4bea41f5ed8a8a21092ced8b03 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Hanno=20B=C3=B6ck?= <hanno@gentoo.org>
-Date: Sun, 2 Feb 2020 14:18:39 +0100
-Subject: [PATCH] i810: Avoid duplicate definition of I810PatternROP
-
-Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel/-/commit/652d93cbbdc159c0883f1b626ea48e28bac63ae3]
-Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/legacy/i810/i810.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/legacy/i810/i810.h b/src/legacy/i810/i810.h
-index 347188c9..19be049c 100644
---- a/src/legacy/i810/i810.h
-+++ b/src/legacy/i810/i810.h
-@@ -322,6 +322,6 @@ extern void I810InitMC(ScreenPtr pScreen);
- extern const OptionInfoRec *I810AvailableOptions(int chipid, int busid);
- 
- extern const int I810CopyROP[16];
--const int I810PatternROP[16];
-+extern const int I810PatternROP[16];
- 
- #endif /* _I810_H_ */
--- 
-2.28.0
-
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
index 1d8077a..9430c3f 100644
--- a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
+++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
@@ -9,13 +9,11 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e"
 
-SRCREV = "f66d39544bb8339130c96d282a80f87ca1606caf"
+SRCREV = "31486f40f8e8f8923ca0799aea84b58799754564"
 PV = "2.99.917+git${SRCPV}"
 S = "${WORKDIR}/git"
 
-SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel \
-           file://0001-Sync-i915_pciids-upto-8717c6b7414f.patch \
-           file://0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch \
+SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel;branch=master \
 "
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch
index 5bda720..b37f697 100644
--- a/poky/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch
+++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch
@@ -3,7 +3,7 @@
 Date: Fri, 9 Dec 2016 14:35:45 +0200
 Subject: [PATCH] Add option for vmwgfx
 
-Upstream-Status:Submitted
+Upstream-Status: Submitted
 
 Signed-off-by: Ross Burton <ross.burton@intel.com>
 Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb b/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb
index e53ccc6..796980b 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb
@@ -8,7 +8,7 @@
 
 require xorg-lib-common.inc
 
-LICENSE = "MIT & MIT-style & BSD-4-Clause & BSD-2-Clause"
+LICENSE = "MIT & MIT-style & BSD-1-Clause & HPND & HPND-sell-variant"
 LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7"
 
 SRC_URI[md5sum] = "c5fa5a86a20e3591bed6c046498d4b8f"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11/Fix-hanging-issue-in-_XReply.patch b/poky/meta/recipes-graphics/xorg-lib/libx11/Fix-hanging-issue-in-_XReply.patch
deleted file mode 100644
index 2a723b7..0000000
--- a/poky/meta/recipes-graphics/xorg-lib/libx11/Fix-hanging-issue-in-_XReply.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 5235a7f3692a4c3c90dd4ac1be3c670388904bbe Mon Sep 17 00:00:00 2001
-From: Tatu Frisk <tatu.frisk@ge.com>
-Date: Tue, 14 Mar 2017 14:41:27 +0200
-Subject: [PATCH] Fix hanging issue in _XReply
-
-Assume event queue is empty if another thread is blocking waiting for event.
-
-If one thread was blocking waiting for an event and another thread sent a
-reply to the X server, both threads got blocked until an event was
-received.
-
-Upstream-Status: Submitted [https://patchwork.freedesktop.org/patch/171458/]
-
-This patch needs to be removed once the corresponding patch has been merged upstream.
-
-https://patchwork.freedesktop.org/patch/171458/
-
-Signed-off-by: Tatu Frisk <tatu.frisk@ge.com>
-Signed-off-by: Jose Alarcon <jose.alarcon@ge.com>
-
-[Refreshed for 1.6.7 update]
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
----
- src/xcb_io.c | 19 +++++++------------
- 1 file changed, 7 insertions(+), 12 deletions(-)
-
-Index: libX11-1.6.7/src/xcb_io.c
-===================================================================
---- libX11-1.6.7.orig/src/xcb_io.c
-+++ libX11-1.6.7/src/xcb_io.c
-@@ -620,18 +620,14 @@ Status _XReply(Display *dpy, xReply *rep
- 		if(dpy->xcb->event_owner == XlibOwnsEventQueue)
- 		{
- 			xcb_generic_reply_t *event;
--			/* If some thread is already waiting for events,
--			 * it will get the first one. That thread must
--			 * process that event before we can continue. */
--			/* FIXME: That event might be after this reply,
--			 * and might never even come--or there might be
--			 * multiple threads trying to get events. */
--			while(dpy->xcb->event_waiter)
--			{ /* need braces around ConditionWait */
--				ConditionWait(dpy, dpy->xcb->event_notify);
--			}
--			while((event = poll_for_event(dpy, True)))
--				handle_response(dpy, event, True);
-+
-+			/* Assume event queue is empty if another thread is blocking
-+			 * waiting for event. */
-+			if(!dpy->xcb->event_waiter)
-+			{
-+				while((event = poll_for_response(dpy)))
-+					handle_response(dpy, event, True);
-+                        }
- 		}
- 
- 		req->reply_waiter = 0;
diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11/keysym.patch b/poky/meta/recipes-graphics/xorg-lib/libx11/keysym.patch
deleted file mode 100644
index f4d7419..0000000
--- a/poky/meta/recipes-graphics/xorg-lib/libx11/keysym.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/79]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From e92efc63acd7b377faa9e534f4bf52aaa86be2a9 Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Tue, 27 Jul 2021 11:46:19 +1000
-Subject: [PATCH] makekeys: handle the new _EVDEVK xorgproto symbols
-
-These keys are all defined through a macro in the form:
-   #define XF86XK_BrightnessAuto		_EVDEVK(0x0F4)
-
-The _EVDEVK macro is simply an offset of 0x10081000.
-Let's parse these lines correctly so those keysyms end up in our
-hashtables.
-
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
----
- src/util/makekeys.c | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/src/util/makekeys.c b/src/util/makekeys.c
-index e847ef4c..4896cc53 100644
---- a/src/util/makekeys.c
-+++ b/src/util/makekeys.c
-@@ -78,6 +78,18 @@ parse_line(const char *buf, char *key, KeySym *val, char *prefix)
-         return 1;
-     }
- 
-+    /* See if we can parse one of the _EVDEVK symbols */
-+    i = sscanf(buf, "#define %127s _EVDEVK(0x%lx)", key, val);
-+    if (i == 2 && (tmp = strstr(key, "XK_"))) {
-+        memcpy(prefix, key, (size_t)(tmp - key));
-+        prefix[tmp - key] = '\0';
-+        tmp += 3;
-+        memmove(key, tmp, strlen(tmp) + 1);
-+
-+        *val += 0x10081000;
-+        return 1;
-+    }
-+
-     /* Now try to catch alias (XK_foo XK_bar) definitions, and resolve them
-      * immediately: if the target is in the form XF86XK_foo, we need to
-      * canonicalise this to XF86foo before we do the lookup. */
--- 
-GitLab
-
diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.2.bb b/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.2.bb
deleted file mode 100644
index 7ee2a9c..0000000
--- a/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.2.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Xlib: C Language X Interface library"
-
-DESCRIPTION = "This package provides a client interface to the X Window \
-System, otherwise known as 'Xlib'.  It provides a complete API for the \
-basic functions of the window system."
-
-require xorg-lib-common.inc
-
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/libx11:"
-
-PE = "1"
-
-SRC_URI += "file://Fix-hanging-issue-in-_XReply.patch \
-           file://disable_tests.patch \
-           file://keysym.patch \
-           "
-
-SRC_URI[sha256sum] = "1cfa35e37aaabbe4792e9bb690468efefbfbf6b147d9c69d6f90d13c3092ea6c"
-
-PROVIDES = "virtual/libx11"
-
-XORG_PN = "libX11"
-LICENSE = "MIT & MIT-style & BSD-4-Clause & BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7"
-
-DEPENDS += "xorgproto xtrans libxcb"
-DEPENDS += "xorgproto-native"
-
-EXTRA_OECONF += "--with-keysymdefdir=${STAGING_INCDIR}/X11/ --disable-xf86bigfont"
-EXTRA_OEMAKE += 'CWARNFLAGS=""'
-
-PACKAGECONFIG ??= "xcms"
-PACKAGECONFIG[xcms] = "--enable-xcms,--disable-xcms"
-
-PACKAGES =+ "${PN}-xcb"
-
-inherit gettext
-
-FILES:${PN} += "${datadir}/X11/XKeysymDB ${datadir}/X11/XErrorDB ${datadir}/X11/Xcms.txt"
-FILES:${PN}-xcb += "${libdir}/libX11-xcb.so.*"
-FILES:${PN}-locale += "${datadir}/X11/locale ${libdir}/X11/locale"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.3.1.bb b/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.3.1.bb
new file mode 100644
index 0000000..be9b8df
--- /dev/null
+++ b/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.3.1.bb
@@ -0,0 +1,48 @@
+SUMMARY = "Xlib: C Language X Interface library"
+
+DESCRIPTION = "This package provides a client interface to the X Window \
+System, otherwise known as 'Xlib'.  It provides a complete API for the \
+basic functions of the window system."
+
+require xorg-lib-common.inc
+
+FILESEXTRAPATHS =. "${FILE_DIRNAME}/libx11:"
+
+PE = "1"
+
+# temporarily override SRC_URI which is hard-coded in xorg-lib-common.inc
+# since new versions of packages use a new compression format - .tar.gz
+SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.xz"
+
+SRC_URI += "file://disable_tests.patch \
+           "
+SRC_URI[sha256sum] = "2ffd417266fb875028fdc0ef349694f63dbcd76d0b0cfacfb52e6151f4b60989"
+
+PROVIDES = "virtual/libx11"
+
+XORG_PN = "libX11"
+LICENSE = "MIT & MIT-style & BSD-1-Clause & HPND & HPND-sell-variant"
+LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7"
+
+DEPENDS += "xorgproto \
+            xtrans \
+            libxcb \
+            xorgproto-native \
+            autoconf-archive \
+           "
+
+EXTRA_OECONF += "--with-keysymdefdir=${STAGING_INCDIR}/X11/ --disable-xf86bigfont"
+EXTRA_OEMAKE += 'CWARNFLAGS=""'
+
+PACKAGECONFIG ??= "xcms"
+PACKAGECONFIG[xcms] = "--enable-xcms,--disable-xcms"
+
+PACKAGES =+ "${PN}-xcb"
+
+inherit gettext
+
+FILES:${PN} += "${datadir}/X11/XKeysymDB ${datadir}/X11/XErrorDB ${datadir}/X11/Xcms.txt"
+FILES:${PN}-xcb += "${libdir}/libX11-xcb.so.*"
+FILES:${PN}-locale += "${datadir}/X11/locale ${libdir}/X11/locale"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxcvt_0.1.1.bb b/poky/meta/recipes-graphics/xorg-lib/libxcvt_0.1.1.bb
new file mode 100644
index 0000000..134c40a
--- /dev/null
+++ b/poky/meta/recipes-graphics/xorg-lib/libxcvt_0.1.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Library providing a standalone version of the X server \
+implementation of the VESA CVT standard timing modelines generator"
+HOMEPAGE = "https://gitlab.freedesktop.org/xorg/lib/libxcvt"
+BUGTRACKER = "https://gitlab.freedesktop.org/xorg/lib/libxcvt/-/issues"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=129947a06984d6faa6f9a9788fa2a03f"
+SECTION = "x11/libs"
+
+SRC_URI = "git://gitlab.freedesktop.org/xorg/lib/libxcvt.git;protocol=https;branch=master"
+SRCREV = "6fe840b9295cfdc41bd734586c5b8756f6af6f9b"
+
+S = "${WORKDIR}/git"
+
+inherit meson
+
+FILES:${PN} = " \
+    ${libdir}/libxcvt.so.0* \
+    ${bindir}/cvt \
+"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.3.1.bb b/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.3.1.bb
index 0e75ed0..7c5079c 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.3.1.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.3.1.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e525ed9809e1f8a07cf4bce8b09e8b87"
 LICENSE = "MIT & MIT-style"
 
-DEPENDS = "util-macros flex-native bison-native"
+DEPENDS = "flex-native bison-native"
 
 SRC_URI = "http://xkbcommon.org/download/${BPN}-${PV}.tar.xz"
 
@@ -15,11 +15,21 @@
 
 inherit meson pkgconfig
 
-EXTRA_OEMESON = "-Denable-docs=false -Denable-xkbregistry=false"
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)} xkbregistry"
 
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)}"
-PACKAGECONFIG[x11] = "-Denable-x11=true,-Denable-x11=false,libxcb xkeyboard-config,"
+PACKAGECONFIG[docs] = "-Denable-docs=true,-Denable-docs=false,doxygen-native"
 PACKAGECONFIG[wayland] = "-Denable-wayland=true,-Denable-wayland=false,wayland-native wayland wayland-protocols,"
+PACKAGECONFIG[x11] = "-Denable-x11=true,-Denable-x11=false,libxcb xkeyboard-config,"
+PACKAGECONFIG[xkbregistry] = "-Denable-xkbregistry=true,-Denable-xkbregistry=false,libxml2"
+
+PACKAGE_BEFORE_PN += "xkbcli"
+FILES:${PN} = ""
+FILES:xkbcli = "${bindir}/xkbcli ${libexecdir}/xkbcommon/xkbcli-*"
+
+python populate_packages:prepend () {
+    # Put the libraries into separate packages to avoid dependency creep
+    do_split_packages(d, d.expand('${libdir}'), r'^(lib.*)\.so\.*', '%s', '%s library', extra_depends='', allow_links=True)
+}
 
 # Fix a following runtime error:
 # xkbcommon: ERROR: couldn't find a Compose file for locale "C"
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
index e1fc0a0..437d5a8 100644
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
@@ -19,16 +19,24 @@
 
 UPSTREAM_CHECK_REGEX = "xorg-server-(?P<pver>\d+(\.(?!99)\d+)+)\.tar"
 
-CVE_PRODUCT = "xorg-server"
+CVE_PRODUCT = "xorg-server x_server"
+# This is specific to Debian's xserver-wrapper.c
+CVE_CHECK_WHITELIST += "CVE-2011-4613"
+# As per upstream, exploiting this flaw is non-trivial and it requires exact
+# timing on the behalf of the attacker. Many graphical applications exit if their
+# connection to the X server is lost, so a typical desktop session is either
+# impossible or difficult to exploit. There is currently no upstream patch
+# available for this flaw.
+CVE_CHECK_WHITELIST += "CVE-2020-25697"
 
 S = "${WORKDIR}/${XORG_PN}-${PV}"
 
-inherit autotools pkgconfig
+inherit meson pkgconfig
 
 inherit features_check
 REQUIRED_DISTRO_FEATURES = "x11"
 
-LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess"
+LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt libtirpc"
 DEPENDS = "xorgproto ${LIB_DEPS} font-util"
 
 # Split out some modules and extensions from the main package
@@ -78,7 +86,7 @@
 RDEPENDS:${PN}-xvfb += "xkeyboard-config"
 RDEPENDS:${PN}-module-exa = "${PN} (= ${EXTENDPKGV})"
 
-FILES:${PN} = "${bindir} ${libdir}/X11/Options ${libdir}/X11/Cards ${libdir}/X11/getconfig ${libdir}/X11/etc ${libdir}/modules/*.so ${libdir}/xorg/modules/*.so /etc/X11 ${libdir}/xorg/protocol.txt ${datadir}/X11/xorg.conf.d"
+FILES:${PN} = "${bindir} ${libdir}/X11/Options ${libdir}/X11/Cards ${libdir}/X11/getconfig ${libdir}/X11/etc ${libdir}/modules/*.so ${libdir}/xorg/modules/input/*.so ${libdir}/xorg/modules/*.so /etc/X11 ${libdir}/xorg/protocol.txt ${datadir}/X11/xorg.conf.d"
 FILES:${PN}-dev += "${libdir}/xorg/modules/*.la ${libdir}/xorg/modules/*/*.la"
 FILES:${PN}-doc += "${libdir}/X11/doc ${datadir}/X11/xkb/compiled/README.compiled ${localstatedir}/lib/xkb/README.compiled"
 FILES:${PN}-sdl = "${bindir}/Xsdl"
@@ -105,53 +113,38 @@
 FILES:${PN}-module-libxf4bpp = "${libdir}/xorg/modules/libxf4bpp.so"
 FILES:xf86-video-modesetting = "${libdir}/xorg/modules/drivers/modesetting_drv.so"
 
-EXTRA_OECONF += "--with-fop=no \
-                 --with-pic \
-                 --disable-static \
-                 --disable-record \
-                 --disable-dmx \
-                 --disable-xnest \
-                 --enable-xvfb \
-                 --enable-composite \
-                 --without-dtrace \
-                 --with-int10=x86emu \
-                 --sysconfdir=/etc/X11 \
-                 --localstatedir=/var \
-                 --with-xkb-output=/var/lib/xkb \
-                 --with-os-name=Linux \
+EXTRA_OEMESON += " \
+                 -Dxnest=false \
+                 -Dxvfb=true \
+                 -Ddtrace=false \
+                 -Dint10=x86emu \
+                 -Dxkb_output_dir=/var/lib/xkb \
 "
 
-OPENGL_PKGCONFIGS = "dri glx glamor dri3 xshmfence"
+OPENGL_PKGCONFIGS = "dri glx glamor dri3"
 PACKAGECONFIG ??= "dga dri2 udev ${XORG_CRYPTO} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '${OPENGL_PKGCONFIGS}', '', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-logind', '', d)} \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-logind', '', d)} \
 "
 
-PACKAGECONFIG[udev] = "--enable-config-udev,--disable-config-udev,udev"
-PACKAGECONFIG[dga] = "--enable-dga,--disable-dga"
-PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,virtual/mesa"
-PACKAGECONFIG[dri2] = "--enable-dri2,--disable-dri2"
-# DRI3 requires xshmfence to also be enabled
-PACKAGECONFIG[dri3] = "--enable-dri3,--disable-dri3"
-PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,virtual/libgl virtual/libx11"
-PACKAGECONFIG[glamor] = "--enable-glamor,--disable-glamor,libepoxy virtual/libgbm,libegl"
-PACKAGECONFIG[unwind] = "--enable-libunwind,--disable-libunwind,libunwind"
-PACKAGECONFIG[xshmfence] = "--enable-xshmfence,--disable-xshmfence,libxshmfence"
-PACKAGECONFIG[xmlto] = "--with-xmlto, --without-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
-PACKAGECONFIG[systemd-logind] = "--enable-systemd-logind=yes,--enable-systemd-logind=no,dbus,"
-PACKAGECONFIG[systemd] = "--with-systemd-daemon,--without-systemd-daemon,systemd"
-PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama"
-PACKAGECONFIG[xwayland] = "--enable-xwayland,--disable-xwayland,wayland wayland-native wayland-protocols libepoxy"
+PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev"
+PACKAGECONFIG[dga] = "-Ddga=true,-Ddga=false"
+PACKAGECONFIG[dri] = "-Ddri1=true,-Ddri1=false,virtual/mesa"
+PACKAGECONFIG[dri2] = "-Ddri2=true,-Ddri2=false"
+PACKAGECONFIG[dri3] = "-Ddri3=true,-Ddri3=false"
+PACKAGECONFIG[glx] = "-Dglx=true,-Dglx=false,virtual/libgl virtual/libx11"
+PACKAGECONFIG[glamor] = "-Dglamor=true,-Dglamor=false,libepoxy virtual/libgbm,libegl"
+PACKAGECONFIG[unwind] = "-Dlibunwind=true,-Dlibunwind=false,libunwind"
+PACKAGECONFIG[systemd-logind] = "-Dsystemd_logind=true,-Dsystemd_logind=false,dbus,"
+PACKAGECONFIG[xinerama] = "-Dxinerama=true,-Dxinerama=false"
 
 # Xorg requires a SHA1 implementation, pick one
 XORG_CRYPTO ??= "openssl"
-PACKAGECONFIG[openssl] = "--with-sha1=libcrypto,,openssl"
-PACKAGECONFIG[nettle] = "--with-sha1=libnettle,,nettle"
-PACKAGECONFIG[gcrypt] = "--with-sha1=libgcrypt,,libgcrypt"
+PACKAGECONFIG[openssl] = "-Dsha1=libcrypto,,openssl"
+PACKAGECONFIG[nettle] = "-Dsha1=libnettle,,nettle"
+PACKAGECONFIG[gcrypt] = "-Dsha1=libgcrypt,,libgcrypt"
 
 do_install:append () {
-	# Its assumed base-files creates this for us
-	rmdir ${D}${localstatedir}/log/
         sed -i -e 's,${libdir}/xorg/modules,${prefix}/lib*/xorg/modules,' ${D}${mandir}/man5/xorg.conf.5
 }
 
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch
index 4737040..11d5546 100644
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch
@@ -1,4 +1,4 @@
-From fc04acfd948ac99d04a5dc08c78f3b13bc0c5c41 Mon Sep 17 00:00:00 2001
+From ce3b8a230a3805c9b557c1f106795675bd034860 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 17 Aug 2020 10:50:51 -0700
 Subject: [PATCH] Avoid duplicate definitions of IOPortBase
@@ -10,26 +10,13 @@
 
 Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- hw/xfree86/common/compiler.h            | 2 +-
- hw/xfree86/os-support/linux/lnx_video.c | 1 +
- 2 files changed, 2 insertions(+), 1 deletion(-)
 
-diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
-index 2b2008b..c7d617e 100644
---- a/hw/xfree86/common/compiler.h
-+++ b/hw/xfree86/common/compiler.h
-@@ -525,7 +525,7 @@ xf86WriteMmio32Le(__volatile__ void *base, const unsigned long offset,
- #define PORT_SIZE short
- #endif
- 
--_X_EXPORT unsigned int IOPortBase;      /* Memory mapped I/O port area */
-+extern _X_EXPORT unsigned int IOPortBase;      /* Memory mapped I/O port area */
- 
- static __inline__ void
- outb(unsigned PORT_SIZE port, unsigned char val)
+---
+ hw/xfree86/os-support/linux/lnx_video.c | 1 +
+ 1 file changed, 1 insertion(+)
+
 diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c
-index 04e4509..9dc7316 100644
+index fd83022..1d0d96e 100644
 --- a/hw/xfree86/os-support/linux/lnx_video.c
 +++ b/hw/xfree86/os-support/linux/lnx_video.c
 @@ -78,6 +78,7 @@ xf86OSInitVidMem(VidMemInfoPtr pVidMem)
@@ -40,6 +27,3 @@
  
  #if defined(__powerpc__)
  volatile unsigned char *ioBase = NULL;
--- 
-2.28.0
-
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch
deleted file mode 100644
index 8b687d6..0000000
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From e50c85f4ebf559a3bac4817b41074c43d4691779 Mon Sep 17 00:00:00 2001
-From: Eric Anholt <eric@anholt.net>
-Date: Fri, 26 Oct 2018 17:47:30 -0700
-Subject: [PATCH] Fix segfault on probing a non-PCI platform device on a system
- with PCI.
-
-Some Broadcom set-top-box boards have PCI busses, but the GPU is still
-probed through DT.  We would dereference a null busid here in that
-case.
-
-Signed-off-by: Eric Anholt <eric@anholt.net>
-
-Upstream-Status: Backport [https://github.com/freedesktop/xorg-xserver/commit/e50c85f4e]
-Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
----
- hw/xfree86/common/xf86platformBus.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
-index cef47da03..dadbac6c8 100644
---- a/hw/xfree86/common/xf86platformBus.c
-+++ b/hw/xfree86/common/xf86platformBus.c
-@@ -289,7 +289,7 @@ xf86platformProbe(void)
-     for (i = 0; i < xf86_num_platform_devices; i++) {
-         char *busid = xf86_platform_odev_attributes(i)->busid;
- 
--        if (pci && (strncmp(busid, "pci:", 4) == 0)) {
-+        if (pci && busid && (strncmp(busid, "pci:", 4) == 0)) {
-             platform_find_pci_info(&xf86_platform_devices[i], busid);
-         }
- 
--- 
-2.28.0
-
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-drmmode_display.c-add-missing-mi.h-include.patch b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-drmmode_display.c-add-missing-mi.h-include.patch
deleted file mode 100644
index 4b8e43f..0000000
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-drmmode_display.c-add-missing-mi.h-include.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 84338444179cab7ede1252a11b66e3b8f657e6a4 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 7 Feb 2020 20:36:45 +0100
-Subject: [PATCH] drmmode_display.c: add missing mi.h include
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- hw/xfree86/drivers/modesetting/drmmode_display.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
-index e18cc37..3445cce 100644
---- a/hw/xfree86/drivers/modesetting/drmmode_display.c
-+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
-@@ -46,6 +46,7 @@
- #include "xf86Crtc.h"
- #include "drmmode_display.h"
- #include "present.h"
-+#include "mi.h"
- 
- #include <cursorstr.h>
- 
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-test-xtest-Initialize-array-with-braces.patch b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-test-xtest-Initialize-array-with-braces.patch
deleted file mode 100644
index c0c2428..0000000
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-test-xtest-Initialize-array-with-braces.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 8a382c015cd3c69fcfc146ef03dcbf30c77ff207 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 1 Mar 2019 09:47:57 -0800
-Subject: [PATCH] test/xtest: Initialize array with braces
-
-Fixes an error when extra warnings are enabled, this is caught with clang
-
-test/xtest.c:64:23: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]
-    WindowRec root = {0};
-                      ^
-                      {}
-1 error generated.
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- test/xtest.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/test/xtest.c b/test/xtest.c
-index fc5e433..d7e6620 100644
---- a/test/xtest.c
-+++ b/test/xtest.c
-@@ -61,7 +61,7 @@ xtest_init_devices(void)
- {
-     ScreenRec screen = {0};
-     ClientRec server_client = {0};
--    WindowRec root = {0};
-+    WindowRec root = {{0}};
-     WindowOptRec optional = {0};
- 
-     /* random stuff that needs initialization */
--- 
-2.21.0
-
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/pkgconfig.patch b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/pkgconfig.patch
deleted file mode 100644
index 2ef9fa9..0000000
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/pkgconfig.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/xorg/xserver/merge_requests/22]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 5f65a6246fe752764045dd1e38912f1dccec71e4 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Thu, 20 Sep 2018 20:12:24 +0100
-Subject: [PATCH] xorg-server.m4: just all cflags instead of just sdkdir
-
-Instead of fetching just the sdkdir variable of xorg-server using pkg-config,
-simply get all of the CFLAGS.  Aside from completeness, this helps builds in
-sysroots as pkg-config knows what to do with --cflags but doesn't remap
-arbitrary variables.
-
-Signed-off-by: Ross Burton <ross.burton@intel.com>
----
- xorg-server.m4 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/xorg-server.m4 b/xorg-server.m4
-index 18255b91a..195bda5d8 100644
---- a/xorg-server.m4
-+++ b/xorg-server.m4
-@@ -31,7 +31,7 @@ dnl
- AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
- 	AC_REQUIRE([PKG_PROG_PKG_CONFIG])
- 	SAVE_CFLAGS="$CFLAGS"
--	CFLAGS="$CFLAGS -I`$PKG_CONFIG --variable=sdkdir xorg-server`"
-+	CFLAGS="$CFLAGS `$PKG_CONFIG --cflags xorg-server`"
- 	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- #include "xorg-server.h"
- #if !defined $1
--- 
-2.11.0
-
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/sdksyms-no-build-path.patch b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/sdksyms-no-build-path.patch
deleted file mode 100644
index be198ec..0000000
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/sdksyms-no-build-path.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/merge_requests/253]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From ca832598d38ba55a001088b57d73c6d7261dc9a7 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Thu, 1 Aug 2019 15:24:51 +0100
-Subject: [PATCH] sdksyms.sh: don't embed the build path
-
-This script generates a header that has a comment containing the build path for
-no real reason.  As this source can end up deployed on targets in debug packages
-this means there is both potentially sensitive information leakage about the
-build environment, and a source of change for reproducible builds.
----
- hw/xfree86/sdksyms.sh | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/hw/xfree86/sdksyms.sh b/hw/xfree86/sdksyms.sh
-index 39e33711d..bdf47a71a 100755
---- a/hw/xfree86/sdksyms.sh
-+++ b/hw/xfree86/sdksyms.sh
-@@ -302,13 +302,16 @@ LC_ALL=C
- export LC_ALL
- ${CPP:-cpp} "$@" sdksyms.c > /dev/null || exit $?
- ${CPP:-cpp} "$@" sdksyms.c | ${AWK:-awk} -v topdir=$topdir '
-+function basename(file) {
-+    sub(".*/", "", file)
-+    return file
-+}
- BEGIN {
-     sdk = 0;
-     print("/*");
-     print(" * These symbols are referenced to ensure they");
-     print(" * will be available in the X Server binary.");
-     print(" */");
--    printf("/* topdir=%s */\n", topdir);
-     print("_X_HIDDEN void *xorg_symbols[] = {");
- 
-     printf("sdksyms.c:") > "sdksyms.dep";
-@@ -337,7 +340,7 @@ BEGIN {
- 	# remove quotes
- 	gsub(/"/, "", $3);
- 	line = $2;
--	header = $3;
-+	header = basename($3);
- 	if (! headers[$3]) {
- 	    printf(" \\\n  %s", $3) >> "sdksyms.dep";
- 	    headers[$3] = 1;
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.13.bb b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.13.bb
deleted file mode 100644
index 01a5407..0000000
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.13.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-require xserver-xorg.inc
-
-SRC_URI += "file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch \
-           file://pkgconfig.patch \
-           file://0001-test-xtest-Initialize-array-with-braces.patch \
-           file://sdksyms-no-build-path.patch \
-           file://0001-drmmode_display.c-add-missing-mi.h-include.patch \
-           file://0001-Avoid-duplicate-definitions-of-IOPortBase.patch \
-           file://0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch \
-           "
-SRC_URI[sha256sum] = "40aa4e96a56a81a301f15a9b10e06a22700f12b42d9e0e453c7f11d354386300"
-
-# These extensions are now integrated into the server, so declare the migration
-# path for in-place upgrades.
-
-RREPLACES:${PN} =  "${PN}-extension-dri \
-                    ${PN}-extension-dri2 \
-                    ${PN}-extension-record \
-                    ${PN}-extension-extmod \
-                    ${PN}-extension-dbe \
-                   "
-RPROVIDES:${PN} =  "${PN}-extension-dri \
-                    ${PN}-extension-dri2 \
-                    ${PN}-extension-record \
-                    ${PN}-extension-extmod \
-                    ${PN}-extension-dbe \
-                   "
-RCONFLICTS:${PN} = "${PN}-extension-dri \
-                    ${PN}-extension-dri2 \
-                    ${PN}-extension-record \
-                    ${PN}-extension-extmod \
-                    ${PN}-extension-dbe \
-                   "
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.3.bb b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.3.bb
new file mode 100644
index 0000000..3e076ec
--- /dev/null
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.3.bb
@@ -0,0 +1,28 @@
+require xserver-xorg.inc
+
+SRC_URI += "file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch \
+            file://0001-Avoid-duplicate-definitions-of-IOPortBase.patch \
+            "
+SRC_URI[sha256sum] = "61d6aad5b6b47a116b960bd7f0cba4ee7e6da95d6bb0b127bde75d7d1acdebe5"
+
+# These extensions are now integrated into the server, so declare the migration
+# path for in-place upgrades.
+
+RREPLACES:${PN} =  "${PN}-extension-dri \
+                    ${PN}-extension-dri2 \
+                    ${PN}-extension-record \
+                    ${PN}-extension-extmod \
+                    ${PN}-extension-dbe \
+                   "
+RPROVIDES:${PN} =  "${PN}-extension-dri \
+                    ${PN}-extension-dri2 \
+                    ${PN}-extension-record \
+                    ${PN}-extension-extmod \
+                    ${PN}-extension-dbe \
+                   "
+RCONFLICTS:${PN} = "${PN}-extension-dri \
+                    ${PN}-extension-dri2 \
+                    ${PN}-extension-record \
+                    ${PN}-extension-extmod \
+                    ${PN}-extension-dbe \
+                   "
diff --git a/poky/meta/recipes-graphics/xwayland/xwayland_21.1.2.bb b/poky/meta/recipes-graphics/xwayland/xwayland_21.1.2.bb
deleted file mode 100644
index 6aba659..0000000
--- a/poky/meta/recipes-graphics/xwayland/xwayland_21.1.2.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "XWayland is an X Server that runs under Wayland."
-DESCRIPTION = "XWayland is an X Server running as a Wayland client, \
-and thus is capable of displaying native X11 client applications in a \
-Wayland compositor environment. The goal of XWayland is to facilitate \
-the transition from X Window System to Wayland environments, providing \
-a way to run unported applications in the meantime."
-HOMEPAGE = "https://fedoraproject.org/wiki/Changes/XwaylandStandalone"
-
-LICENSE = "MIT-X"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880"
-
-SRC_URI = "https://www.x.org/archive/individual/xserver/xwayland-${PV}.tar.xz"
-SRC_URI[sha256sum] = "b81cbdd5ad60b8b7ad8c3ecc7ec2a28c9bf021448670735cebb501f08bebd18b"
-
-UPSTREAM_CHECK_REGEX = "xwayland-(?P<pver>\d+(\.(?!90\d)\d+)+)\.tar"
-
-inherit meson features_check pkgconfig
-REQUIRED_DISTRO_FEATURES = "x11 opengl"
-
-DEPENDS += "xorgproto xtrans pixman libxkbfile libxfont2 wayland wayland-native wayland-protocols libdrm libepoxy"
-
-OPENGL_PKGCONFIGS = "glx glamor dri3"
-PACKAGECONFIG ??= "${XORG_CRYPTO} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '${OPENGL_PKGCONFIGS}', '', d)} \
-"
-PACKAGECONFIG[dri3] = "-Ddri3=true,-Ddri3=false"
-PACKAGECONFIG[glx] = "-Dglx=true,-Dglx=false,virtual/libgl virtual/libx11"
-PACKAGECONFIG[glamor] = "-Dglamor=true,-Dglamor=false,libepoxy virtual/libgbm,libegl"
-PACKAGECONFIG[unwind] = "-Dlibunwind=true,-Dlibunwind=false,libunwind"
-PACKAGECONFIG[xinerama] = "-Dxinerama=true,-Dxinerama=false"
-
-# Xorg requires a SHA1 implementation, pick one
-XORG_CRYPTO ??= "openssl"
-PACKAGECONFIG[openssl] = "-Dsha1=libcrypto,,openssl"
-PACKAGECONFIG[nettle] = "-Dsha1=libnettle,,nettle"
-PACKAGECONFIG[gcrypt] = "-Dsha1=libgcrypt,,libgcrypt"
-
-do_install:append() {
-    # remove files not needed and clashing with xserver-xorg
-    rm -rf ${D}/${libdir}/xorg/
-}
-
-FILES:${PN} += "${libdir}/xorg/protocol.txt"
-
diff --git a/poky/meta/recipes-graphics/xwayland/xwayland_21.1.4.bb b/poky/meta/recipes-graphics/xwayland/xwayland_21.1.4.bb
new file mode 100644
index 0000000..029123b
--- /dev/null
+++ b/poky/meta/recipes-graphics/xwayland/xwayland_21.1.4.bb
@@ -0,0 +1,44 @@
+SUMMARY = "XWayland is an X Server that runs under Wayland."
+DESCRIPTION = "XWayland is an X Server running as a Wayland client, \
+and thus is capable of displaying native X11 client applications in a \
+Wayland compositor environment. The goal of XWayland is to facilitate \
+the transition from X Window System to Wayland environments, providing \
+a way to run unported applications in the meantime."
+HOMEPAGE = "https://fedoraproject.org/wiki/Changes/XwaylandStandalone"
+
+LICENSE = "MIT-X"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880"
+
+SRC_URI = "https://www.x.org/archive/individual/xserver/xwayland-${PV}.tar.xz"
+SRC_URI[sha256sum] = "19f6795f31cfa8eb352b1e5b3c379f22ee6020e98701ff2cc679da8c4f1159f7"
+
+UPSTREAM_CHECK_REGEX = "xwayland-(?P<pver>\d+(\.(?!90\d)\d+)+)\.tar"
+
+inherit meson features_check pkgconfig
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
+
+DEPENDS += "xorgproto xtrans pixman libxkbfile libxfont2 wayland wayland-native wayland-protocols libdrm libepoxy"
+
+OPENGL_PKGCONFIGS = "glx glamor dri3"
+PACKAGECONFIG ??= "${XORG_CRYPTO} \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '${OPENGL_PKGCONFIGS}', '', d)} \
+"
+PACKAGECONFIG[dri3] = "-Ddri3=true,-Ddri3=false"
+PACKAGECONFIG[glx] = "-Dglx=true,-Dglx=false,virtual/libgl virtual/libx11"
+PACKAGECONFIG[glamor] = "-Dglamor=true,-Dglamor=false,libepoxy virtual/libgbm,libegl"
+PACKAGECONFIG[unwind] = "-Dlibunwind=true,-Dlibunwind=false,libunwind"
+PACKAGECONFIG[xinerama] = "-Dxinerama=true,-Dxinerama=false"
+
+# Xorg requires a SHA1 implementation, pick one
+XORG_CRYPTO ??= "openssl"
+PACKAGECONFIG[openssl] = "-Dsha1=libcrypto,,openssl"
+PACKAGECONFIG[nettle] = "-Dsha1=libnettle,,nettle"
+PACKAGECONFIG[gcrypt] = "-Dsha1=libgcrypt,,libgcrypt"
+
+do_install:append() {
+    # remove files not needed and clashing with xserver-xorg
+    rm -rf ${D}/${libdir}/xorg/
+}
+
+FILES:${PN} += "${libdir}/xorg/protocol.txt"
+
diff --git a/poky/meta/recipes-kernel/blktrace/blktrace_git.bb b/poky/meta/recipes-kernel/blktrace/blktrace_git.bb
index d00b1bd..b108676 100644
--- a/poky/meta/recipes-kernel/blktrace/blktrace_git.bb
+++ b/poky/meta/recipes-kernel/blktrace/blktrace_git.bb
@@ -14,7 +14,7 @@
 
 PV = "1.3.0+git${SRCPV}"
 
-SRC_URI = "git://git.kernel.dk/blktrace.git"
+SRC_URI = "git://git.kernel.dk/blktrace.git;branch=master"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-kernel/cryptodev/cryptodev.inc b/poky/meta/recipes-kernel/cryptodev/cryptodev.inc
index ae2c308..6ada0b0 100644
--- a/poky/meta/recipes-kernel/cryptodev/cryptodev.inc
+++ b/poky/meta/recipes-kernel/cryptodev/cryptodev.inc
@@ -8,7 +8,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
-SRC_URI = "git://github.com/cryptodev-linux/cryptodev-linux \
+SRC_URI = "git://github.com/cryptodev-linux/cryptodev-linux;branch=master;protocol=https \
            "
 SRCREV = "e0c25e289d6baf1d83c2b9cb523d3bc237d0c0c9"
 
diff --git a/poky/meta/recipes-kernel/dtc/dtc.inc b/poky/meta/recipes-kernel/dtc/dtc.inc
deleted file mode 100644
index bfdc9f8..0000000
--- a/poky/meta/recipes-kernel/dtc/dtc.inc
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Device Tree Compiler"
-HOMEPAGE = "https://devicetree.org/"
-DESCRIPTION = "The Device Tree Compiler is a tool used to manipulate the Open-Firmware-like device tree used by PowerPC kernels."
-SECTION = "bootloader"
-LICENSE = "GPLv2 | BSD-2-Clause"
-DEPENDS = "flex-native bison-native"
-
-SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git \
-           file://make_install.patch \
-           file://0001-dtc-Fix-Makefile-to-add-CFLAGS-not-override.patch \
-           "
-
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
-
-EXTRA_OEMAKE='NO_PYTHON=1 PREFIX="${prefix}" LIBDIR="${libdir}" DESTDIR="${D}"'
-
-inherit pkgconfig
-
-S = "${WORKDIR}/git"
-
-do_install () {
-	oe_runmake install
-}
-
-PACKAGES =+ "${PN}-misc"
-FILES:${PN}-misc = "${bindir}/convert-dtsv0 ${bindir}/ftdump ${bindir}/dtdiff"
-
-RDEPENDS:${PN}-misc += "bash diffutils"
diff --git a/poky/meta/recipes-kernel/dtc/dtc/0001-dtc-Fix-Makefile-to-add-CFLAGS-not-override.patch b/poky/meta/recipes-kernel/dtc/dtc/0001-dtc-Fix-Makefile-to-add-CFLAGS-not-override.patch
deleted file mode 100644
index a2deb12..0000000
--- a/poky/meta/recipes-kernel/dtc/dtc/0001-dtc-Fix-Makefile-to-add-CFLAGS-not-override.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From f0119060ef1b9bd80e2cae487df1e4aedffb0e9b Mon Sep 17 00:00:00 2001
-From: Oleksiy Obitotskyy <oobitots@cisco.com>
-Date: Fri, 22 Jan 2021 09:12:48 +0200
-Subject: [PATCH] dtc: Fix Makefile to add CFLAGS not override
-
-Makefile override CFLAGS not extend them, so some of them
-missing. Sources builds out of kernel tree and probably not all
-options could be used (?). We need at least -fmacro-prefix-map/
-debug-prefix-map to eliminate absolute path in binaries.
-
-Upstream-Status: Pending
-Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
----
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 35d936f..b5b13cf 100644
---- a/Makefile
-+++ b/Makefile
-@@ -20,10 +20,10 @@ CONFIG_LOCALVERSION =
- # See libfdt_internal.h for details
- ASSUME_MASK ?= 0
- 
--CPPFLAGS = -I libfdt -I . -DFDT_ASSUME_MASK=$(ASSUME_MASK)
-+CPPFLAGS += -I libfdt -I . -DFDT_ASSUME_MASK=$(ASSUME_MASK)
- WARNINGS = -Wall -Wpointer-arith -Wcast-qual -Wnested-externs \
- 	-Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wshadow
--CFLAGS = -g -Os $(SHAREDLIB_CFLAGS) -Werror $(WARNINGS) $(EXTRA_CFLAGS)
-+CFLAGS += -g -Os $(SHAREDLIB_CFLAGS) -Werror $(WARNINGS) $(EXTRA_CFLAGS)
- 
- BISON = bison
- LEX = flex
--- 
-2.25.1
-
diff --git a/poky/meta/recipes-kernel/dtc/dtc/0001-fdtdump-fix-Werror-int-to-pointer-cast.patch b/poky/meta/recipes-kernel/dtc/dtc/0001-fdtdump-fix-Werror-int-to-pointer-cast.patch
new file mode 100644
index 0000000..4c3e34b
--- /dev/null
+++ b/poky/meta/recipes-kernel/dtc/dtc/0001-fdtdump-fix-Werror-int-to-pointer-cast.patch
@@ -0,0 +1,40 @@
+Fix the build of fdtdump with mingw.
+
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From ae0ce1fa7f4d679b5f8df1fc0e797246e43547fe Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
+Date: Wed, 25 Aug 2021 16:13:50 +0400
+Subject: [PATCH] fdtdump: fix -Werror=int-to-pointer-cast
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+With mingw64-gcc, the compiler complains with various warnings:
+error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
+
+Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
+Message-Id: <20210825121350.213551-1-marcandre.lureau@redhat.com>
+Acked-by: Rob Herring <robh@kernel.org>
+Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
+---
+ fdtdump.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fdtdump.c b/fdtdump.c
+index d9fb374..483f367 100644
+--- a/fdtdump.c
++++ b/fdtdump.c
+@@ -21,7 +21,7 @@
+ #define MAX_VERSION 17
+ 
+ #define ALIGN(x, a)	(((x) + ((a) - 1)) & ~((a) - 1))
+-#define PALIGN(p, a)	((void *)(ALIGN((unsigned long)(p), (a))))
++#define PALIGN(p, a)	((void *)(ALIGN((uintptr_t)(p), (a))))
+ #define GET_CELL(p)	(p += 4, *((const fdt32_t *)(p-4)))
+ 
+ static const char *tagname(uint32_t tag)
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-kernel/dtc/dtc/make_install.patch b/poky/meta/recipes-kernel/dtc/dtc/make_install.patch
deleted file mode 100644
index ea9359e..0000000
--- a/poky/meta/recipes-kernel/dtc/dtc/make_install.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From e9852b9d206df1e42aa4c8afec55a0f5e099b533 Mon Sep 17 00:00:00 2001
-From: Saul Wold <sgw@linux.intel.com>
-Date: Thu, 3 Nov 2011 08:35:47 -0700
-Subject: [PATCH] dtc: Add patch to correctly install shared libraries and
-
-Upstream-Status: Inappropriate [configuration]
-
----
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index d8ebc4f..f5e01be 100644
---- a/Makefile
-+++ b/Makefile
-@@ -205,8 +205,8 @@ install-bin: all $(SCRIPTS)
- install-lib: all
- 	@$(VECHO) INSTALL-LIB
- 	$(INSTALL) -d $(DESTDIR)$(LIBDIR)
--	$(INSTALL_LIB) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR)
--	ln -sf $(notdir $(LIBFDT_lib)) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname)
-+	$(INSTALL) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname)
-+	ln -sf $(LIBFDT_soname) $(DESTDIR)$(LIBDIR)/$(notdir $(LIBFDT_lib))
- 	ln -sf $(LIBFDT_soname) $(DESTDIR)$(LIBDIR)/libfdt.$(SHAREDLIB_EXT)
- 	$(INSTALL_DATA) $(LIBFDT_archive) $(DESTDIR)$(LIBDIR)
- 
diff --git a/poky/meta/recipes-kernel/dtc/dtc_1.6.1.bb b/poky/meta/recipes-kernel/dtc/dtc_1.6.1.bb
index de9a46d..2610b26 100644
--- a/poky/meta/recipes-kernel/dtc/dtc_1.6.1.bb
+++ b/poky/meta/recipes-kernel/dtc/dtc_1.6.1.bb
@@ -1,10 +1,30 @@
-require dtc.inc
+SUMMARY = "Device Tree Compiler"
+HOMEPAGE = "https://devicetree.org/"
+DESCRIPTION = "The Device Tree Compiler is a tool used to manipulate the Open-Firmware-like device tree used by PowerPC kernels."
+SECTION = "bootloader"
+LICENSE = "GPLv2 | BSD-2-Clause"
 
 LIC_FILES_CHKSUM = "file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-		    file://libfdt/libfdt.h;beginline=4;endline=7;md5=05bb357cfb75cae7d2b01d2ee8d76407"
+                    file://libfdt/libfdt.h;beginline=4;endline=7;md5=05bb357cfb75cae7d2b01d2ee8d76407"
 
+SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=master \
+           file://0001-fdtdump-fix-Werror-int-to-pointer-cast.patch"
 SRCREV = "b6910bec11614980a21e46fbccc35934b671bd81"
 
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
 S = "${WORKDIR}/git"
 
+inherit meson pkgconfig
+
+EXTRA_OEMESON = "-Dpython=disabled -Dvalgrind=disabled"
+
+PACKAGECONFIG ??= "tools"
+PACKAGECONFIG[tools] = "-Dtools=true,-Dtools=false,flex-native bison-native"
+PACKAGECONFIG[yaml] = "-Dyaml=enabled,-Dyaml=disabled,libyaml"
+
+PACKAGES =+ "${PN}-misc"
+FILES:${PN}-misc = "${bindir}/convert-dtsv0 ${bindir}/ftdump ${bindir}/dtdiff"
+RDEPENDS:${PN}-misc += "${@bb.utils.contains('PACKAGECONFIG', 'tools', 'bash diffutils', '', d)}"
+
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-doc-validate b/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-doc-validate
new file mode 100644
index 0000000..2aa5785
--- /dev/null
+++ b/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-doc-validate
@@ -0,0 +1,20 @@
+#!/bin/sh
+# dt-doc-validate wrapper to allow kernel dt-validation to pass
+#
+# Copyright (C) 2021 Bruce Ashfield <bruce.ashfield@gmail.com>
+# License: MIT (see COPYING.MIT at the root of the repository for terms)
+
+for arg; do
+    case "$arg" in
+        --version)
+            echo "v2021.10"
+            ;;
+    esac
+done
+
+# TBD: left for future consideration
+# exec dt-doc-validate.real "$@"
+
+# we always succeed
+exit 0
+
diff --git a/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-mk-schema b/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-mk-schema
new file mode 100644
index 0000000..24b89d8
--- /dev/null
+++ b/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-mk-schema
@@ -0,0 +1,20 @@
+#!/bin/sh
+# dt-mk-schema wrapper to allow kernel dt-validation to pass
+#
+# Copyright (C) 2021 Bruce Ashfield <bruce.ashfield@gmail.com>
+# License: MIT (see COPYING.MIT at the root of the repository for terms)
+
+for arg; do
+    case "$arg" in
+        --version)
+            echo "v2021.10"
+            ;;
+    esac
+done
+
+# TBD: left for future consideration
+# exec dt-mk-schema.real "$@"
+
+# we always succeed
+exit 0
+
diff --git a/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-validate b/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-validate
new file mode 100644
index 0000000..8a4710a
--- /dev/null
+++ b/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-validate
@@ -0,0 +1,20 @@
+#!/bin/sh
+# dt-validate wrapper to allow kernel dt-validation to pass
+#
+# Copyright (C) 2021 Bruce Ashfield <bruce.ashfield@gmail.com>
+# License: MIT (see COPYING.MIT at the root of the repository for terms)
+
+for arg; do
+    case "$arg" in
+        --version)
+            echo "v2021.10"
+            ;;
+    esac
+done
+
+# TBD: left for future consideration
+# exec dt-validate.real "$@"
+
+# we always succeed
+exit 0
+
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
new file mode 100644
index 0000000..c869274
--- /dev/null
+++ b/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "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"
+
+SRC_URI = "file://dt-doc-validate \
+           file://dt-mk-schema \
+           file://dt-validate"
+
+do_install() {
+    install -d ${D}${bindir}/
+    install -m 755 ${WORKDIR}/dt-doc-validate ${D}${bindir}/
+    install -m 755 ${WORKDIR}/dt-mk-schema ${D}${bindir}/
+    install -m 755 ${WORKDIR}/dt-validate ${D}${bindir}/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb b/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
index e967f48..74db936 100644
--- a/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
+++ b/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
@@ -8,15 +8,13 @@
 
 DEPENDS = "git-native"
 
-SRCREV = "d220b063852245fdd16b9731a395ace525f932d6"
-PR = "r12"
-PV = "0.2+git${SRCPV}"
+SRCREV = "90598a5fae1172e3f7782a1b02f7b7518efd32c8"
+PV = "0.3+git${SRCPV}"
 
 inherit native
 
-SRC_URI = "git://git.yoctoproject.org/yocto-kernel-tools.git"
+SRC_URI = "git://git.yoctoproject.org/yocto-kernel-tools.git;branch=master"
 S = "${WORKDIR}/git"
-UPSTREAM_CHECK_COMMITS = "1"
 
 do_configure() {
 	:
diff --git a/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-arch-ppc-kexec-ppc.c-correct-double-definition.patch b/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-arch-ppc-kexec-ppc.c-correct-double-definition.patch
deleted file mode 100644
index 6aeebc3..0000000
--- a/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-arch-ppc-kexec-ppc.c-correct-double-definition.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From ba2fb5baf6b0a8c882ac32301dd7a8d16de0dcf6 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Sun, 27 Dec 2020 23:39:29 +0100
-Subject: [PATCH] kexec/arch/ppc/kexec-ppc.c: correct double definition error
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- kexec/arch/ppc/kexec-ppc.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/kexec/arch/ppc/kexec-ppc.c b/kexec/arch/ppc/kexec-ppc.c
-index 03bec36..5b3e244 100644
---- a/kexec/arch/ppc/kexec-ppc.c
-+++ b/kexec/arch/ppc/kexec-ppc.c
-@@ -35,7 +35,6 @@ unsigned long long initrd_base = 0, initrd_size = 0;
- unsigned long long ramdisk_base = 0, ramdisk_size = 0;
- unsigned int rtas_base, rtas_size;
- int max_memory_ranges;
--const char *ramdisk;
- 
- /*
-  * Reads the #address-cells and #size-cells on this platform.
diff --git a/poky/meta/recipes-kernel/kexec/kexec-tools/0007-kexec-un-break-the-build-on-32-bit-x86.patch b/poky/meta/recipes-kernel/kexec/kexec-tools/0007-kexec-un-break-the-build-on-32-bit-x86.patch
deleted file mode 100644
index 36b0845..0000000
--- a/poky/meta/recipes-kernel/kexec/kexec-tools/0007-kexec-un-break-the-build-on-32-bit-x86.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From bb6a26371d15473b380459ac4404bf330634b585 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 20 Dec 2019 17:21:08 +0100
-Subject: [PATCH] kexec: un-break the build on 32 bit x86
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- kexec/arch/i386/Makefile    | 1 +
- kexec/arch/i386/kexec-x86.h | 4 ++++
- 2 files changed, 5 insertions(+)
-
-diff --git a/kexec/arch/i386/Makefile b/kexec/arch/i386/Makefile
-index f486103..5d560be 100644
---- a/kexec/arch/i386/Makefile
-+++ b/kexec/arch/i386/Makefile
-@@ -12,6 +12,7 @@ i386_KEXEC_SRCS += kexec/arch/i386/kexec-beoboot-x86.c
- i386_KEXEC_SRCS += kexec/arch/i386/kexec-nbi.c
- i386_KEXEC_SRCS += kexec/arch/i386/x86-linux-setup.c
- i386_KEXEC_SRCS += kexec/arch/i386/crashdump-x86.c
-+i386_KEXEC_SRCS += kexec/arch/i386/kexec-mb2-x86.c
- 
- dist += kexec/arch/i386/Makefile $(i386_KEXEC_SRCS)			\
- 	kexec/arch/i386/crashdump-x86.h					\
-diff --git a/kexec/arch/i386/kexec-x86.h b/kexec/arch/i386/kexec-x86.h
-index 0f941df..c423171 100644
---- a/kexec/arch/i386/kexec-x86.h
-+++ b/kexec/arch/i386/kexec-x86.h
-@@ -56,9 +56,13 @@ struct arch_options_t {
- };
- 
- int multiboot_x86_probe(const char *buf, off_t len);
-+int multiboot2_x86_probe(const char *buf, off_t len);
- int multiboot_x86_load(int argc, char **argv, const char *buf, off_t len,
- 	struct kexec_info *info);
-+int multiboot2_x86_load(int argc, char **argv, const char *buf, off_t len,
-+	struct kexec_info *info);
- void multiboot_x86_usage(void);
-+void multiboot2_x86_usage(void);
- 
- int multiboot2_x86_load(int argc, char **argv, const char *buf, off_t len,
- 			struct kexec_info *info);
diff --git a/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.22.bb b/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.22.bb
deleted file mode 100644
index 95ff5e6..0000000
--- a/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.22.bb
+++ /dev/null
@@ -1,88 +0,0 @@
-
-SUMMARY = "Kexec fast reboot tools"
-DESCRIPTION = "Kexec is a fast reboot feature that lets you reboot to a new Linux kernel"
-AUTHOR = "Eric Biederman"
-HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/"
-SECTION = "kernel/userland"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a \
-                    file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09"
-DEPENDS = "zlib xz"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz \
-           file://kdump \
-           file://kdump.conf \
-           file://kdump.service \
-           file://0001-powerpc-change-the-memory-size-limit.patch \
-           file://0002-purgatory-Pass-r-directly-to-linker.patch \
-           file://0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch \
-           file://0005-Disable-PIE-during-link.patch \
-           file://0007-kexec-un-break-the-build-on-32-bit-x86.patch \
-           file://0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch \
-           file://0001-kexec-arch-ppc-kexec-ppc.c-correct-double-definition.patch \
-           "
-
-SRC_URI[sha256sum] = "40623d4321be2865ef9ea2cd6ec998d31dcf93d0f74353cbd3aa06d8821e3e41"
-
-inherit autotools update-rc.d systemd
-
-export LDFLAGS = "-L${STAGING_LIBDIR}"
-EXTRA_OECONF = " --with-zlib=yes"
-
-do_compile:prepend() {
-    # Remove the prepackaged config.h from the source tree as it overrides
-    # the same file generated by configure and placed in the build tree
-    rm -f ${S}/include/config.h
-
-    # Remove the '*.d' file to make sure the recompile is OK
-    for dep in `find ${B} -type f -name '*.d'`; do
-        dep_no_d="`echo $dep | sed 's#.d$##'`"
-        # Remove file.d when there is a file.o
-        if [ -f "$dep_no_d.o" ]; then
-            rm -f $dep
-        fi
-    done
-}
-
-do_install:append () {
-        install -d ${D}${sysconfdir}/sysconfig
-        install -m 0644 ${WORKDIR}/kdump.conf ${D}${sysconfdir}/sysconfig
-
-        if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
-                install -D -m 0755 ${WORKDIR}/kdump ${D}${sysconfdir}/init.d/kdump
-        fi
-
-        if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
-                install -D -m 0755 ${WORKDIR}/kdump ${D}${libexecdir}/kdump-helper
-                install -D -m 0644 ${WORKDIR}/kdump.service ${D}${systemd_system_unitdir}/kdump.service
-                sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' ${D}${systemd_system_unitdir}/kdump.service
-        fi
-}
-
-PACKAGES =+ "kexec kdump vmcore-dmesg"
-
-ALLOW_EMPTY:${PN} = "1"
-RRECOMMENDS:${PN} = "kexec kdump vmcore-dmesg"
-
-FILES:kexec = "${sbindir}/kexec"
-FILES:kdump = "${sbindir}/kdump \
-               ${sysconfdir}/sysconfig/kdump.conf \
-               ${sysconfdir}/init.d/kdump \
-               ${libexecdir}/kdump-helper \
-               ${systemd_system_unitdir}/kdump.service \
-"
-
-FILES:vmcore-dmesg = "${sbindir}/vmcore-dmesg"
-
-INITSCRIPT_PACKAGES = "kdump"
-INITSCRIPT_NAME:kdump = "kdump"
-INITSCRIPT_PARAMS:kdump = "start 56 2 3 4 5 . stop 56 0 1 6 ."
-
-SYSTEMD_PACKAGES = "kdump"
-SYSTEMD_SERVICE:kdump = "kdump.service"
-
-SECURITY_PIE_CFLAGS:remove = "-fPIE -pie"
-
-COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|powerpc.*|mips.*)-(linux|freebsd.*)'
-
-INSANE_SKIP:${PN} = "arch"
diff --git a/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.23.bb b/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.23.bb
new file mode 100644
index 0000000..066de99
--- /dev/null
+++ b/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.23.bb
@@ -0,0 +1,86 @@
+
+SUMMARY = "Kexec fast reboot tools"
+DESCRIPTION = "Kexec is a fast reboot feature that lets you reboot to a new Linux kernel"
+AUTHOR = "Eric Biederman"
+HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/"
+SECTION = "kernel/userland"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a \
+                    file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09"
+DEPENDS = "zlib xz"
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz \
+           file://kdump \
+           file://kdump.conf \
+           file://kdump.service \
+           file://0001-powerpc-change-the-memory-size-limit.patch \
+           file://0002-purgatory-Pass-r-directly-to-linker.patch \
+           file://0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch \
+           file://0005-Disable-PIE-during-link.patch \
+           file://0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch \
+           "
+
+SRC_URI[sha256sum] = "c7dcc59f5b66004d9d91264324e20e0387ea263dbb449708fbf84a4e5ff7decc"
+
+inherit autotools update-rc.d systemd
+
+export LDFLAGS = "-L${STAGING_LIBDIR}"
+EXTRA_OECONF = " --with-zlib=yes"
+
+do_compile:prepend() {
+    # Remove the prepackaged config.h from the source tree as it overrides
+    # the same file generated by configure and placed in the build tree
+    rm -f ${S}/include/config.h
+
+    # Remove the '*.d' file to make sure the recompile is OK
+    for dep in `find ${B} -type f -name '*.d'`; do
+        dep_no_d="`echo $dep | sed 's#.d$##'`"
+        # Remove file.d when there is a file.o
+        if [ -f "$dep_no_d.o" ]; then
+            rm -f $dep
+        fi
+    done
+}
+
+do_install:append () {
+        install -d ${D}${sysconfdir}/sysconfig
+        install -m 0644 ${WORKDIR}/kdump.conf ${D}${sysconfdir}/sysconfig
+
+        if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+                install -D -m 0755 ${WORKDIR}/kdump ${D}${sysconfdir}/init.d/kdump
+        fi
+
+        if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+                install -D -m 0755 ${WORKDIR}/kdump ${D}${libexecdir}/kdump-helper
+                install -D -m 0644 ${WORKDIR}/kdump.service ${D}${systemd_system_unitdir}/kdump.service
+                sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' ${D}${systemd_system_unitdir}/kdump.service
+        fi
+}
+
+PACKAGES =+ "kexec kdump vmcore-dmesg"
+
+ALLOW_EMPTY:${PN} = "1"
+RRECOMMENDS:${PN} = "kexec kdump vmcore-dmesg"
+
+FILES:kexec = "${sbindir}/kexec"
+FILES:kdump = "${sbindir}/kdump \
+               ${sysconfdir}/sysconfig/kdump.conf \
+               ${sysconfdir}/init.d/kdump \
+               ${libexecdir}/kdump-helper \
+               ${systemd_system_unitdir}/kdump.service \
+"
+
+FILES:vmcore-dmesg = "${sbindir}/vmcore-dmesg"
+
+INITSCRIPT_PACKAGES = "kdump"
+INITSCRIPT_NAME:kdump = "kdump"
+INITSCRIPT_PARAMS:kdump = "start 56 2 3 4 5 . stop 56 0 1 6 ."
+
+SYSTEMD_PACKAGES = "kdump"
+SYSTEMD_SERVICE:kdump = "kdump.service"
+
+SECURITY_PIE_CFLAGS:remove = "-fPIE -pie"
+
+COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|powerpc.*|mips.*)-(linux|freebsd.*)'
+
+INSANE_SKIP:${PN} = "arch"
diff --git a/poky/meta/recipes-kernel/kmod/kmod-native_git.bb b/poky/meta/recipes-kernel/kmod/kmod-native_git.bb
deleted file mode 100644
index 4dd34b1..0000000
--- a/poky/meta/recipes-kernel/kmod/kmod-native_git.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-require kmod.inc
-
-DEPENDS += "zlib-native"
-
-inherit native
-
-do_install:append (){
-	for tool in depmod insmod lsmod modinfo modprobe rmmod
-	do
-		ln -s kmod ${D}${bindir}/$tool
-	done
-}
diff --git a/poky/meta/recipes-kernel/kmod/kmod.inc b/poky/meta/recipes-kernel/kmod/kmod.inc
deleted file mode 100644
index c2d550a..0000000
--- a/poky/meta/recipes-kernel/kmod/kmod.inc
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Tools for managing Linux kernel modules"
-DESCRIPTION = "kmod is a set of tools to handle common tasks with Linux kernel modules like \
-               insert, remove, list, check properties, resolve dependencies and aliases."
-HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kmod/"
-LICENSE = "GPL-2.0+ & LGPL-2.1+"
-LICENSE:libkmod = "LGPL-2.1+"
-SECTION = "base"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
-                    file://libkmod/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
-                    file://tools/COPYING;md5=751419260aa954499f7abaabaa882bbe \
-                   "
-inherit autotools gtk-doc pkgconfig manpages
-
-SRCREV = "b6ecfc916a17eab8f93be5b09f4e4f845aabd3d1"
-# Lookout for PV bump too when SRCREV is changed
-PV = "29"
-
-SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git \
-           file://depmod-search.conf \
-           file://avoid_parallel_tests.patch \
-           "
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF +=" --enable-tools --with-zlib"
-
-PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
-PACKAGECONFIG[logging] = " --enable-logging,--disable-logging"
-PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native"
-PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz"
-PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
-
-GTKDOC_DOCDIR = "${S}/libkmod/docs"
diff --git a/poky/meta/recipes-kernel/kmod/kmod_29.bb b/poky/meta/recipes-kernel/kmod/kmod_29.bb
new file mode 100644
index 0000000..9ac5214
--- /dev/null
+++ b/poky/meta/recipes-kernel/kmod/kmod_29.bb
@@ -0,0 +1,86 @@
+# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Tools for managing Linux kernel modules"
+DESCRIPTION = "kmod is a set of tools to handle common tasks with Linux kernel modules like \
+               insert, remove, list, check properties, resolve dependencies and aliases."
+HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kmod/"
+LICENSE = "GPL-2.0+ & LGPL-2.1+"
+LICENSE:libkmod = "LGPL-2.1+"
+SECTION = "base"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+                    file://libkmod/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+                    file://tools/COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                   "
+inherit autotools bash-completion gtk-doc pkgconfig manpages update-alternatives
+
+SRCREV = "b6ecfc916a17eab8f93be5b09f4e4f845aabd3d1"
+
+SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git;branch=master \
+           file://depmod-search.conf \
+           file://avoid_parallel_tests.patch \
+           "
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += "--enable-tools"
+
+PACKAGECONFIG ??= "zlib"
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
+PACKAGECONFIG[logging] = " --enable-logging,--disable-logging"
+PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
+PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
+PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
+
+GTKDOC_DOCDIR = "${S}/libkmod/docs"
+
+PROVIDES += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
+RPROVIDES:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
+RCONFLICTS:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
+RREPLACES:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
+
+# to force user to remove old module-init-tools and replace them with kmod variants
+RCONFLICTS:libkmod2 += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
+
+# autotools set prefix to /usr, however we want them in /bin and /sbin
+EXTRA_OECONF += "--bindir=${base_bindir} --sbindir=${base_sbindir}"
+
+do_install:append () {
+        install -dm755 ${D}${base_bindir}
+        install -dm755 ${D}${base_sbindir}
+        # add symlinks to kmod
+        ln -rs ${D}${base_bindir}/kmod ${D}${base_bindir}/lsmod
+        for tool in insmod rmmod depmod modinfo modprobe; do
+                ln -rs ${D}${base_bindir}/kmod ${D}${base_sbindir}/${tool}
+        done
+        # configuration directories
+        install -dm755 ${D}${nonarch_base_libdir}/depmod.d
+        install -dm755 ${D}${nonarch_base_libdir}/modprobe.d
+        install -dm755 ${D}${sysconfdir}/depmod.d
+        install -dm755 ${D}${sysconfdir}/modprobe.d
+
+        # install depmod.d file for search/ dir
+        install -Dm644 "${WORKDIR}/depmod-search.conf" "${D}${nonarch_base_libdir}/depmod.d/search.conf"
+}
+
+ALTERNATIVE_PRIORITY = "70"
+
+ALTERNATIVE:kmod = "insmod modprobe rmmod modinfo bin-lsmod lsmod depmod"
+
+ALTERNATIVE_LINK_NAME[depmod] = "${base_sbindir}/depmod"
+ALTERNATIVE_LINK_NAME[insmod] = "${base_sbindir}/insmod"
+ALTERNATIVE_LINK_NAME[modprobe] = "${base_sbindir}/modprobe"
+ALTERNATIVE_LINK_NAME[rmmod] = "${base_sbindir}/rmmod"
+ALTERNATIVE_LINK_NAME[modinfo] = "${base_sbindir}/modinfo"
+ALTERNATIVE_LINK_NAME[bin-lsmod] = "${base_bindir}/lsmod"
+ALTERNATIVE_LINK_NAME[lsmod] = "${base_sbindir}/lsmod"
+ALTERNATIVE_TARGET[lsmod] = "${base_bindir}/lsmod.${BPN}"
+
+PACKAGES =+ "libkmod"
+FILES:libkmod = "${base_libdir}/libkmod*${SOLIBS} ${libdir}/libkmod*${SOLIBS}"
+FILES:${PN} += "${nonarch_base_libdir}/depmod.d ${nonarch_base_libdir}/modprobe.d"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-kernel/kmod/kmod_git.bb b/poky/meta/recipes-kernel/kmod/kmod_git.bb
deleted file mode 100644
index eb5d176..0000000
--- a/poky/meta/recipes-kernel/kmod/kmod_git.bb
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-require kmod.inc
-
-DEPENDS += "zlib"
-PROVIDES += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
-RPROVIDES:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
-RCONFLICTS:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
-RREPLACES:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
-
-# to force user to remove old module-init-tools and replace them with kmod variants
-RCONFLICTS:libkmod2 += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
-
-# autotools set prefix to /usr, however we want them in /bin and /sbin
-EXTRA_OECONF += " --bindir=${base_bindir} --sbindir=${base_sbindir}"
-
-do_install:append () {
-        install -dm755 ${D}${base_bindir}
-        install -dm755 ${D}${base_sbindir}
-        # add symlinks to kmod
-        lnr ${D}${base_bindir}/kmod ${D}${base_bindir}/lsmod
-        for tool in insmod rmmod depmod modinfo modprobe; do
-                lnr ${D}${base_bindir}/kmod ${D}${base_sbindir}/${tool}
-        done
-        # configuration directories
-        install -dm755 ${D}${nonarch_base_libdir}/depmod.d
-        install -dm755 ${D}${nonarch_base_libdir}/modprobe.d
-        install -dm755 ${D}${sysconfdir}/depmod.d
-        install -dm755 ${D}${sysconfdir}/modprobe.d
-
-        # install depmod.d file for search/ dir
-        install -Dm644 "${WORKDIR}/depmod-search.conf" "${D}${nonarch_base_libdir}/depmod.d/search.conf"
-}
-
-do_compile:prepend() {
-            sed -i 's/ac_pwd=/#ac_pwd=/' config.status ; sed -i "/#ac_pwd=/a\ac_pwd='.'" config.status
-}
-
-inherit update-alternatives bash-completion
-
-ALTERNATIVE_PRIORITY = "70"
-
-ALTERNATIVE:kmod = "insmod modprobe rmmod modinfo bin-lsmod lsmod depmod"
-
-ALTERNATIVE_LINK_NAME[insmod] = "${base_sbindir}/insmod"
-ALTERNATIVE_LINK_NAME[modprobe] = "${base_sbindir}/modprobe"
-ALTERNATIVE_LINK_NAME[rmmod] = "${base_sbindir}/rmmod"
-ALTERNATIVE_LINK_NAME[modinfo] = "${base_sbindir}/modinfo"
-ALTERNATIVE_LINK_NAME[bin-lsmod] = "${base_bindir}/lsmod"
-
-ALTERNATIVE_LINK_NAME[lsmod] = "${base_sbindir}/lsmod"
-ALTERNATIVE_TARGET[lsmod] = "${base_bindir}/lsmod.${BPN}"
-
-ALTERNATIVE_LINK_NAME[depmod] = "${base_sbindir}/depmod"
-
-PACKAGES =+ "libkmod"
-
-FILES:libkmod = "${base_libdir}/libkmod*${SOLIBS} ${libdir}/libkmod*${SOLIBS}"
-FILES:${PN} += "${nonarch_base_libdir}/depmod.d ${nonarch_base_libdir}/modprobe.d"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210919.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210919.bb
deleted file mode 100644
index 48c01d9..0000000
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210919.bb
+++ /dev/null
@@ -1,1067 +0,0 @@
-SUMMARY = "Firmware files for use with Linux kernel"
-HOMEPAGE = "https://www.kernel.org/"
-DESCRIPTION = "Linux firmware is a package distributed alongside the Linux kernel \
-that contains firmware binary blobs necessary for partial or full functionality \
-of certain hardware devices."
-SECTION = "kernel"
-
-LICENSE = "\
-    Firmware-Abilis \
-    & Firmware-adsp_sst \
-    & Firmware-agere \
-    & Firmware-amdgpu \
-    & Firmware-amd-ucode \
-    & Firmware-amlogic_vdec \
-    & Firmware-atheros_firmware \
-    & Firmware-atmel \
-    & Firmware-broadcom_bcm43xx \
-    & Firmware-ca0132 \
-    & Firmware-cavium \
-    & Firmware-chelsio_firmware \
-    & Firmware-cw1200 \
-    & Firmware-cypress \
-    & Firmware-dib0700 \
-    & Firmware-e100 \
-    & Firmware-ene_firmware \
-    & Firmware-fw_sst_0f28 \
-    & Firmware-go7007 \
-    & Firmware-GPLv2 \
-    & Firmware-hfi1_firmware \
-    & Firmware-i2400m \
-    & Firmware-i915 \
-    & Firmware-ibt_firmware \
-    & Firmware-ice \
-    & Firmware-it913x \
-    & Firmware-iwlwifi_firmware \
-    & Firmware-IntcSST2 \
-    & Firmware-kaweth \
-    & Firmware-Lontium \
-    & Firmware-Marvell \
-    & Firmware-moxa \
-    & Firmware-myri10ge_firmware \
-    & Firmware-netronome \
-    & Firmware-nvidia \
-    & Firmware-OLPC \
-    & Firmware-ath9k-htc \
-    & Firmware-phanfw \
-    & Firmware-qat \
-    & Firmware-qcom \
-    & Firmware-qla1280 \
-    & Firmware-qla2xxx \
-    & Firmware-qualcommAthos_ar3k \
-    & Firmware-qualcommAthos_ath10k \
-    & Firmware-r8a779x_usb3 \
-    & Firmware-radeon \
-    & Firmware-ralink_a_mediatek_company_firmware \
-    & Firmware-ralink-firmware \
-    & Firmware-rtlwifi_firmware \
-    & Firmware-imx-sdma_firmware \
-    & Firmware-siano \
-    & Firmware-tda7706-firmware \
-    & Firmware-ti-connectivity \
-    & Firmware-ti-keystone \
-    & Firmware-ueagle-atm4-firmware \
-    & Firmware-via_vt6656 \
-    & Firmware-wl1251 \
-    & Firmware-xc4000 \
-    & Firmware-xc5000 \
-    & Firmware-xc5000c \
-    & WHENCE \
-"
-
-LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \
-                    file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \
-                    file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \
-                    file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \
-                    file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f \
-                    file://LICENSE.amlogic_vdec;md5=dc44f59bf64a81643e500ad3f39a468a \
-                    file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \
-                    file://LICENSE.atmel;md5=aa74ac0c60595dee4d4e239107ea77a3 \
-                    file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \
-                    file://LICENCE.ca0132;md5=209b33e66ee5be0461f13d31da392198 \
-                    file://LICENCE.cadence;md5=009f46816f6956cfb75ede13d3e1cee0 \
-                    file://LICENCE.cavium;md5=c37aaffb1ebe5939b2580d073a95daea \
-                    file://LICENCE.chelsio_firmware;md5=819aa8c3fa453f1b258ed8d168a9d903 \
-                    file://LICENCE.cw1200;md5=f0f770864e7a8444a5c5aa9d12a3a7ed \
-                    file://LICENCE.cypress;md5=48cd9436c763bf873961f9ed7b5c147b \
-                    file://LICENSE.dib0700;md5=f7411825c8a555a1a3e5eab9ca773431 \
-                    file://LICENCE.e100;md5=ec0f84136766df159a3ae6d02acdf5a8 \
-                    file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \
-                    file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \
-                    file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \
-                    file://GPL-2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \
-                    file://LICENCE.i2400m;md5=14b901969e23c41881327c0d9e4b7d36 \
-                    file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \
-                    file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \
-                    file://LICENSE.ice;md5=742ab4850f2670792940e6d15c974b2f \
-                    file://LICENCE.IntcSST2;md5=9e7d8bea77612d7cc7d9e9b54b623062 \
-                    file://LICENCE.it913x;md5=1fbf727bfb6a949810c4dbfa7e6ce4f8 \
-                    file://LICENCE.iwlwifi_firmware;md5=2ce6786e0fc11ac6e36b54bb9b799f1b \
-                    file://LICENCE.kaweth;md5=b1d876e562f4b3b8d391ad8395dfe03f \
-                    file://LICENSE.Lontium;md5=4ec8dc582ff7295f39e2ca6a7b0be2b6 \
-                    file://LICENCE.Marvell;md5=28b6ed8bd04ba105af6e4dcd6e997772 \
-                    file://LICENCE.mediatek;md5=7c1976b63217d76ce47d0a11d8a79cf2 \
-                    file://LICENCE.moxa;md5=1086614767d8ccf744a923289d3d4261 \
-                    file://LICENCE.myri10ge_firmware;md5=42e32fb89f6b959ca222e25ac8df8fed \
-                    file://LICENCE.Netronome;md5=4add08f2577086d44447996503cddf5f \
-                    file://LICENCE.nvidia;md5=4428a922ed3ba2ceec95f076a488ce07 \
-                    file://LICENCE.NXP;md5=58bb8ba632cd729b9ba6183bc6aed36f \
-                    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://LICENSE.qcom;md5=164e3362a538eb11d3ac51e8e134294b \
-                    file://LICENCE.qla1280;md5=d6895732e622d950609093223a2c4f5d \
-                    file://LICENCE.qla2xxx;md5=505855e921b75f1be4a437ad9b79dff0 \
-                    file://LICENSE.QualcommAtheros_ar3k;md5=b5fe244fb2b532311de1472a3bc06da5 \
-                    file://LICENSE.QualcommAtheros_ath10k;md5=cb42b686ee5f5cb890275e4321db60a8 \
-                    file://LICENCE.r8a779x_usb3;md5=4c1671656153025d7076105a5da7e498 \
-                    file://LICENSE.radeon;md5=68ec28bacb3613200bca44f404c69b16 \
-                    file://LICENCE.ralink_a_mediatek_company_firmware;md5=728f1a85fd53fd67fa8d7afb080bc435 \
-                    file://LICENCE.ralink-firmware.txt;md5=ab2c269277c45476fb449673911a2dfd \
-                    file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \
-                    file://LICENSE.sdma_firmware;md5=51e8c19ecc2270f4b8ea30341ad63ce9 \
-                    file://LICENCE.siano;md5=4556c1bf830067f12ca151ad953ec2a5 \
-                    file://LICENCE.tda7706-firmware.txt;md5=835997cf5e3c131d0dddd695c7d9103e \
-                    file://LICENCE.ti-connectivity;md5=c5e02be633f1499c109d1652514d85ec \
-                    file://LICENCE.ti-keystone;md5=3a86335d32864b0bef996bee26cc0f2c \
-                    file://LICENCE.ueagle-atm4-firmware;md5=4ed7ea6b507ccc583b9d594417714118 \
-                    file://LICENCE.via_vt6656;md5=e4159694cba42d4377a912e78a6e850f \
-                    file://LICENCE.wl1251;md5=ad3f81922bb9e197014bb187289d3b5b \
-                    file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \
-                    file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \
-                    file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \
-                    file://WHENCE;md5=76f012f7e9b2260d34eccf5726374f08 \
-                    "
-
-# These are not common licenses, set NO_GENERIC_LICENSE for them
-# so that the license files will be copied from fetched source
-NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENCE.Abilis"
-NO_GENERIC_LICENSE[Firmware-adsp_sst] = "LICENCE.adsp_sst"
-NO_GENERIC_LICENSE[Firmware-agere] = "LICENCE.agere"
-NO_GENERIC_LICENSE[Firmware-amdgpu] = "LICENSE.amdgpu"
-NO_GENERIC_LICENSE[Firmware-amd-ucode] = "LICENSE.amd-ucode"
-NO_GENERIC_LICENSE[Firmware-amlogic_vdec] = "LICENSE.amlogic_vdec"
-NO_GENERIC_LICENSE[Firmware-atheros_firmware] = "LICENCE.atheros_firmware"
-NO_GENERIC_LICENSE[Firmware-atmel] = "LICENSE.atmel"
-NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx] = "LICENCE.broadcom_bcm43xx"
-NO_GENERIC_LICENSE[Firmware-ca0132] = "LICENCE.ca0132"
-NO_GENERIC_LICENSE[Firmware-cadence] = "LICENCE.cadence"
-NO_GENERIC_LICENSE[Firmware-cavium] = "LICENCE.cavium"
-NO_GENERIC_LICENSE[Firmware-chelsio_firmware] = "LICENCE.chelsio_firmware"
-NO_GENERIC_LICENSE[Firmware-cw1200] = "LICENCE.cw1200"
-NO_GENERIC_LICENSE[Firmware-cypress] = "LICENCE.cypress"
-NO_GENERIC_LICENSE[Firmware-dib0700] = "LICENSE.dib0700"
-NO_GENERIC_LICENSE[Firmware-e100] = "LICENCE.e100"
-NO_GENERIC_LICENSE[Firmware-ene_firmware] = "LICENCE.ene_firmware"
-NO_GENERIC_LICENSE[Firmware-fw_sst_0f28] = "LICENCE.fw_sst_0f28"
-NO_GENERIC_LICENSE[Firmware-go7007] = "LICENCE.go7007"
-NO_GENERIC_LICENSE[Firmware-GPLv2] = "GPL-2"
-NO_GENERIC_LICENSE[Firmware-hfi1_firmware] = "LICENSE.hfi1_firmware"
-NO_GENERIC_LICENSE[Firmware-i2400m] = "LICENCE.i2400m"
-NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915"
-NO_GENERIC_LICENSE[Firmware-ibt_firmware] = "LICENCE.ibt_firmware"
-NO_GENERIC_LICENSE[Firmware-ice] = "LICENSE.ice"
-NO_GENERIC_LICENSE[Firmware-IntcSST2] = "LICENCE.IntcSST2"
-NO_GENERIC_LICENSE[Firmware-it913x] = "LICENCE.it913x"
-NO_GENERIC_LICENSE[Firmware-iwlwifi_firmware] = "LICENCE.iwlwifi_firmware"
-NO_GENERIC_LICENSE[Firmware-kaweth] = "LICENCE.kaweth"
-NO_GENERIC_LICENSE[Firmware-Lontium] = "LICENSE.Lontium"
-NO_GENERIC_LICENSE[Firmware-Marvell] = "LICENCE.Marvell"
-NO_GENERIC_LICENSE[Firmware-mediatek] = "LICENCE.mediatek"
-NO_GENERIC_LICENSE[Firmware-moxa] = "LICENCE.moxa"
-NO_GENERIC_LICENSE[Firmware-myri10ge_firmware] = "LICENCE.myri10ge_firmware"
-NO_GENERIC_LICENSE[Firmware-netronome] = "LICENCE.Netronome"
-NO_GENERIC_LICENSE[Firmware-nvidia] = "LICENCE.nvidia"
-NO_GENERIC_LICENSE[Firmware-OLPC] = "LICENCE.OLPC"
-NO_GENERIC_LICENSE[Firmware-ath9k-htc] = "LICENCE.open-ath9k-htc-firmware"
-NO_GENERIC_LICENSE[Firmware-phanfw] = "LICENCE.phanfw"
-NO_GENERIC_LICENSE[Firmware-qat] = "LICENCE.qat_firmware"
-NO_GENERIC_LICENSE[Firmware-qcom] = "LICENSE.qcom"
-NO_GENERIC_LICENSE[Firmware-qla1280] = "LICENCE.qla1280"
-NO_GENERIC_LICENSE[Firmware-qla2xxx] = "LICENCE.qla2xxx"
-NO_GENERIC_LICENSE[Firmware-qualcommAthos_ar3k] = "LICENSE.QualcommAtheros_ar3k"
-NO_GENERIC_LICENSE[Firmware-qualcommAthos_ath10k] = "LICENSE.QualcommAtheros_ath10k"
-NO_GENERIC_LICENSE[Firmware-r8a779x_usb3] = "LICENCE.r8a779x_usb3"
-NO_GENERIC_LICENSE[Firmware-radeon] = "LICENSE.radeon"
-NO_GENERIC_LICENSE[Firmware-ralink_a_mediatek_company_firmware] = "LICENCE.ralink_a_mediatek_company_firmware"
-NO_GENERIC_LICENSE[Firmware-ralink-firmware] = "LICENCE.ralink-firmware.txt"
-NO_GENERIC_LICENSE[Firmware-rtlwifi_firmware] = "LICENCE.rtlwifi_firmware.txt"
-NO_GENERIC_LICENSE[Firmware-siano] = "LICENCE.siano"
-NO_GENERIC_LICENSE[Firmware-imx-sdma_firmware] = "LICENSE.sdma_firmware"
-NO_GENERIC_LICENSE[Firmware-tda7706-firmware] = "LICENCE.tda7706-firmware.txt"
-NO_GENERIC_LICENSE[Firmware-ti-connectivity] = "LICENCE.ti-connectivity"
-NO_GENERIC_LICENSE[Firmware-ti-keystone] = "LICENCE.ti-keystone"
-NO_GENERIC_LICENSE[Firmware-ueagle-atm4-firmware] = "LICENCE.ueagle-atm4-firmware"
-NO_GENERIC_LICENSE[Firmware-via_vt6656] = "LICENCE.via_vt6656"
-NO_GENERIC_LICENSE[Firmware-wl1251] = "LICENCE.wl1251"
-NO_GENERIC_LICENSE[Firmware-xc4000] = "LICENCE.xc4000"
-NO_GENERIC_LICENSE[Firmware-xc5000] = "LICENCE.xc5000"
-NO_GENERIC_LICENSE[Firmware-xc5000c] = "LICENCE.xc5000c"
-NO_GENERIC_LICENSE[WHENCE] = "WHENCE"
-
-PE = "1"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz"
-
-SRC_URI[sha256sum] = "2fb22a5d7d23bf1f5800ab8152b39a00a445fbf4923de5a01b59d3f6253f0a9f"
-
-inherit allarch
-
-CLEANBROKEN = "1"
-
-do_compile() {
-	:
-}
-
-do_install() {
-        oe_runmake 'DESTDIR=${D}' 'FIRMWAREDIR=${nonarch_base_libdir}/firmware' install
-        cp GPL-2 LICEN[CS]E.* WHENCE ${D}${nonarch_base_libdir}/firmware/
-}
-
-
-PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \
-             ${PN}-mt7601u-license ${PN}-mt7601u \
-             ${PN}-radeon-license ${PN}-radeon \
-             ${PN}-marvell-license ${PN}-pcie8897 ${PN}-pcie8997 \
-             ${PN}-sd8686 ${PN}-sd8688 ${PN}-sd8787 ${PN}-sd8797 ${PN}-sd8801 \
-             ${PN}-sd8887 ${PN}-sd8897 ${PN}-sd8997 ${PN}-usb8997 \
-             ${PN}-ti-connectivity-license ${PN}-wlcommon ${PN}-wl12xx ${PN}-wl18xx \
-             ${PN}-vt6656-license ${PN}-vt6656 \
-             ${PN}-rs9113 ${PN}-rs9116 \
-             ${PN}-rtl-license ${PN}-rtl8188 ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su ${PN}-rtl8723 ${PN}-rtl8821 \
-             ${PN}-rtl8168 \
-             ${PN}-cypress-license \
-             ${PN}-broadcom-license \
-             ${PN}-bcm-0bb4-0306 \
-             ${PN}-bcm43143 \
-             ${PN}-bcm43236b \
-             ${PN}-bcm43241b0 \
-             ${PN}-bcm43241b4 \
-             ${PN}-bcm43241b5 \
-             ${PN}-bcm43242a \
-             ${PN}-bcm4329 \
-             ${PN}-bcm4329-fullmac \
-             ${PN}-bcm4330 \
-             ${PN}-bcm4334 \
-             ${PN}-bcm43340 \
-             ${PN}-bcm4335 \
-             ${PN}-bcm43362 \
-             ${PN}-bcm4339 \
-             ${PN}-bcm43430 \
-             ${PN}-bcm43430a0 \
-             ${PN}-bcm43455 \
-             ${PN}-bcm4350 \
-             ${PN}-bcm4350c2 \
-             ${PN}-bcm4354 \
-             ${PN}-bcm4356 \
-             ${PN}-bcm4356-pcie \
-             ${PN}-bcm43569 \
-             ${PN}-bcm43570 \
-             ${PN}-bcm4358 \
-             ${PN}-bcm43602 \
-             ${PN}-bcm4366b \
-             ${PN}-bcm4366c \
-             ${PN}-bcm4371 \
-             ${PN}-bcm4373 \
-             ${PN}-bcm43xx \
-             ${PN}-bcm43xx-hdr \
-             ${PN}-atheros-license ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k \
-             ${PN}-gplv2-license ${PN}-carl9170 \
-             ${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k ${PN}-ath11k ${PN}-qca \
-             \
-             ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \
-             \
-             ${PN}-iwlwifi-license ${PN}-iwlwifi \
-             ${PN}-iwlwifi-135-6 \
-             ${PN}-iwlwifi-3160-7 ${PN}-iwlwifi-3160-8 ${PN}-iwlwifi-3160-9 \
-             ${PN}-iwlwifi-3160-10 ${PN}-iwlwifi-3160-12 ${PN}-iwlwifi-3160-13 \
-             ${PN}-iwlwifi-3160-16 ${PN}-iwlwifi-3160-17 \
-             ${PN}-iwlwifi-6000-4 ${PN}-iwlwifi-6000g2a-5 ${PN}-iwlwifi-6000g2a-6 \
-             ${PN}-iwlwifi-6000g2b-5 ${PN}-iwlwifi-6000g2b-6 \
-             ${PN}-iwlwifi-6050-4 ${PN}-iwlwifi-6050-5 \
-             ${PN}-iwlwifi-7260 \
-             ${PN}-iwlwifi-7265 \
-             ${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \
-             ${PN}-iwlwifi-9000 \
-             ${PN}-iwlwifi-misc \
-             ${PN}-ibt-license ${PN}-ibt \
-             ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \
-             ${PN}-ibt-17 \
-             ${PN}-ibt-20 \
-             ${PN}-ibt-misc \
-             ${PN}-i915-license ${PN}-i915 \
-             ${PN}-ice-license ${PN}-ice \
-             ${PN}-adsp-sst-license ${PN}-adsp-sst \
-             ${PN}-bnx2-mips \
-             ${PN}-liquidio \
-             ${PN}-nvidia-license \
-             ${PN}-nvidia-tegra-k1 ${PN}-nvidia-tegra \
-             ${PN}-nvidia-gpu \
-             ${PN}-netronome-license ${PN}-netronome \
-             ${PN}-qat ${PN}-qat-license \
-             ${PN}-qcom-license \
-             ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 ${PN}-qcom-venus-5.2 ${PN}-qcom-venus-5.4 \
-             ${PN}-qcom-vpu-1.0 ${PN}-qcom-vpu-2.0 \
-             ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a530 \
-             ${PN}-qcom-adreno-a630 ${PN}-qcom-adreno-a650 ${PN}-qcom-adreno-a660 \
-             ${PN}-qcom-sdm845-audio ${PN}-qcom-sdm845-compute ${PN}-qcom-sdm845-modem \
-             ${PN}-qcom-sm8250-audio ${PN}-qcom-sm8250-compute \
-             ${PN}-amlogic-vdec-license ${PN}-amlogic-vdec \
-             ${PN}-lt9611uxc ${PN}-lontium-license \
-             ${PN}-whence-license \
-             ${PN}-license \
-             "
-
-# For atheros
-LICENSE:${PN}-ar9170 = "Firmware-atheros_firmware"
-LICENSE:${PN}-ath6k = "Firmware-atheros_firmware"
-LICENSE:${PN}-ath9k = "Firmware-atheros_firmware"
-LICENSE:${PN}-atheros-license = "Firmware-atheros_firmware"
-
-FILES:${PN}-atheros-license = "${nonarch_base_libdir}/firmware/LICENCE.atheros_firmware"
-FILES:${PN}-ar9170 = " \
-  ${nonarch_base_libdir}/firmware/ar9170*.fw \
-"
-FILES:${PN}-ath6k = " \
-  ${nonarch_base_libdir}/firmware/ath6k \
-"
-FILES:${PN}-ath9k = " \
-  ${nonarch_base_libdir}/firmware/ar9271.fw \
-  ${nonarch_base_libdir}/firmware/ar7010*.fw \
-  ${nonarch_base_libdir}/firmware/htc_9271.fw \
-  ${nonarch_base_libdir}/firmware/htc_7010.fw \
-  ${nonarch_base_libdir}/firmware/ath9k_htc/htc_7010-1.4.0.fw \
-  ${nonarch_base_libdir}/firmware/ath9k_htc/htc_9271-1.4.0.fw \
-"
-
-RDEPENDS:${PN}-ar9170 += "${PN}-atheros-license"
-RDEPENDS:${PN}-ath6k += "${PN}-atheros-license"
-RDEPENDS:${PN}-ath9k += "${PN}-atheros-license"
-
-# For carl9170
-LICENSE:${PN}-carl9170 = "Firmware-GPLv2"
-LICENSE:${PN}-gplv2-license = "Firmware-GPLv2"
-
-FILES:${PN}-gplv2-license = "${nonarch_base_libdir}/firmware/GPL-2"
-FILES:${PN}-carl9170 = " \
-  ${nonarch_base_libdir}/firmware/carl9170*.fw \
-"
-
-RDEPENDS:${PN}-carl9170 += "${PN}-gplv2-license"
-
-# For QualCommAthos
-LICENSE:${PN}-ar3k = "Firmware-qualcommAthos_ar3k"
-LICENSE:${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k"
-LICENSE:${PN}-ath10k = "Firmware-qualcommAthos_ath10k"
-LICENSE:${PN}-ath10k-license = "Firmware-qualcommAthos_ath10k"
-LICENSE:${PN}-qca = "Firmware-qualcommAthos_ath10k"
-
-FILES:${PN}-ar3k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ar3k"
-FILES:${PN}-ar3k = " \
-  ${nonarch_base_libdir}/firmware/ar3k \
-"
-
-FILES:${PN}-ath10k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ath10k"
-FILES:${PN}-ath10k = " \
-  ${nonarch_base_libdir}/firmware/ath10k \
-"
-
-FILES:${PN}-ath11k = " \
-  ${nonarch_base_libdir}/firmware/ath11k \
-"
-
-FILES:${PN}-qca = " \
-  ${nonarch_base_libdir}/firmware/qca \
-"
-
-RDEPENDS:${PN}-ar3k += "${PN}-ar3k-license"
-RDEPENDS:${PN}-ath10k += "${PN}-ath10k-license"
-RDEPENDS:${PN}-ath11k += "${PN}-ath10k-license"
-RDEPENDS:${PN}-qca += "${PN}-ath10k-license"
-
-# For ralink
-LICENSE:${PN}-ralink = "Firmware-ralink-firmware"
-LICENSE:${PN}-ralink-license = "Firmware-ralink-firmware"
-
-FILES:${PN}-ralink-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink-firmware.txt"
-FILES:${PN}-ralink = " \
-  ${nonarch_base_libdir}/firmware/rt*.bin \
-"
-
-RDEPENDS:${PN}-ralink += "${PN}-ralink-license"
-
-# For mediatek MT7601U
-LICENSE:${PN}-mt7601u = "Firmware-ralink_a_mediatek_company_firmware"
-LICENSE:${PN}-mt7601u-license = "Firmware-ralink_a_mediatek_company_firmware"
-
-FILES:${PN}-mt7601u-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink_a_mediatek_company_firmware"
-FILES:${PN}-mt7601u = " \
-  ${nonarch_base_libdir}/firmware/mt7601u.bin \
-"
-
-RDEPENDS:${PN}-mt7601u += "${PN}-mt7601u-license"
-
-# For radeon
-LICENSE:${PN}-radeon = "Firmware-radeon"
-LICENSE:${PN}-radeon-license = "Firmware-radeon"
-
-FILES:${PN}-radeon-license = "${nonarch_base_libdir}/firmware/LICENSE.radeon"
-FILES:${PN}-radeon = " \
-  ${nonarch_base_libdir}/firmware/radeon \
-"
-
-RDEPENDS:${PN}-radeon += "${PN}-radeon-license"
-
-# For lontium
-LICENSE:${PN}-lt9611uxc = "Firmware-Lontium"
-
-FILES:${PN}-lontium-license = "${nonarch_base_libdir}/firmware/LICENSE.Lontium"
-FILES:${PN}-lt9611uxc = "${nonarch_base_libdir}/firmware/lt9611uxc_fw.bin"
-
-# For marvell
-LICENSE:${PN}-pcie8897 = "Firmware-Marvell"
-LICENSE:${PN}-pcie8997 = "Firmware-Marvell"
-LICENSE:${PN}-sd8686 = "Firmware-Marvell"
-LICENSE:${PN}-sd8688 = "Firmware-Marvell"
-LICENSE:${PN}-sd8787 = "Firmware-Marvell"
-LICENSE:${PN}-sd8797 = "Firmware-Marvell"
-LICENSE:${PN}-sd8801 = "Firmware-Marvell"
-LICENSE:${PN}-sd8887 = "Firmware-Marvell"
-LICENSE:${PN}-sd8897 = "Firmware-Marvell"
-LICENSE:${PN}-sd8997 = "Firmware-Marvell"
-LICENSE:${PN}-usb8997 = "Firmware-Marvell"
-LICENSE:${PN}-marvell-license = "Firmware-Marvell"
-
-FILES:${PN}-marvell-license = "${nonarch_base_libdir}/firmware/LICENCE.Marvell"
-FILES:${PN}-pcie8897 = " \
-  ${nonarch_base_libdir}/firmware/mrvl/pcie8897_uapsta.bin \
-"
-FILES:${PN}-pcie8997 = " \
-  ${nonarch_base_libdir}/firmware/mrvl/pcie8997_wlan_v4.bin \
-  ${nonarch_base_libdir}/firmware/mrvl/pcieuart8997_combo_v4.bin \
-  ${nonarch_base_libdir}/firmware/mrvl/pcieusb8997_combo_v4.bin \
-"
-FILES:${PN}-sd8686 = " \
-  ${nonarch_base_libdir}/firmware/libertas/sd8686_v9* \
-  ${nonarch_base_libdir}/firmware/sd8686* \
-"
-FILES:${PN}-sd8688 = " \
-  ${nonarch_base_libdir}/firmware/libertas/sd8688* \
-  ${nonarch_base_libdir}/firmware/mrvl/sd8688* \
-"
-FILES:${PN}-sd8787 = " \
-  ${nonarch_base_libdir}/firmware/mrvl/sd8787_uapsta.bin \
-"
-FILES:${PN}-sd8797 = " \
-  ${nonarch_base_libdir}/firmware/mrvl/sd8797_uapsta.bin \
-"
-FILES:${PN}-sd8801 = " \
-  ${nonarch_base_libdir}/firmware/mrvl/sd8801_uapsta.bin \
-"
-FILES:${PN}-sd8887 = " \
-  ${nonarch_base_libdir}/firmware/mrvl/sd8887_uapsta.bin \
-"
-FILES:${PN}-sd8897 = " \
-  ${nonarch_base_libdir}/firmware/mrvl/sd8897_uapsta.bin \
-"
-do_install:append() {
-    # The kernel 5.6.x driver still uses the old name, provide a symlink for
-    # older kernels
-    ln -fs sdsd8997_combo_v4.bin ${D}${nonarch_base_libdir}/firmware/mrvl/sd8997_uapsta.bin
-}
-FILES:${PN}-sd8997 = " \
-  ${nonarch_base_libdir}/firmware/mrvl/sd8997_uapsta.bin \
-  ${nonarch_base_libdir}/firmware/mrvl/sdsd8997_combo_v4.bin \
-"
-FILES:${PN}-usb8997 = " \
-  ${nonarch_base_libdir}/firmware/mrvl/usbusb8997_combo_v4.bin \
-"
-
-RDEPENDS:${PN}-sd8686 += "${PN}-marvell-license"
-RDEPENDS:${PN}-sd8688 += "${PN}-marvell-license"
-RDEPENDS:${PN}-sd8787 += "${PN}-marvell-license"
-RDEPENDS:${PN}-sd8797 += "${PN}-marvell-license"
-RDEPENDS:${PN}-sd8801 += "${PN}-marvell-license"
-RDEPENDS:${PN}-sd8887 += "${PN}-marvell-license"
-RDEPENDS:${PN}-sd8897 += "${PN}-marvell-license"
-RDEPENDS:${PN}-sd8997 += "${PN}-marvell-license"
-RDEPENDS:${PN}-usb8997 += "${PN}-marvell-license"
-
-# For netronome
-LICENSE:${PN}-netronome = "Firmware-netronome"
-
-FILES:${PN}-netronome-license = " \
-  ${nonarch_base_libdir}/firmware/LICENCE.Netronome \
-"
-FILES:${PN}-netronome = " \
-  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0081*.nffw \
-  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0096*.nffw \
-  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0097*.nffw \
-  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0099*.nffw \
-  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0058-0011_2x40.nffw \
-  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0058-0012_2x40.nffw \
-  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0078-0011_1x100.nffw \
-  ${nonarch_base_libdir}/firmware/netronome/bpf \
-  ${nonarch_base_libdir}/firmware/netronome/flower \
-  ${nonarch_base_libdir}/firmware/netronome/nic \
-  ${nonarch_base_libdir}/firmware/netronome/nic-sriov \
-"
-
-RDEPENDS:${PN}-netronome += "${PN}-netronome-license"
-
-# For Nvidia
-LICENSE:${PN}-nvidia-gpu = "Firmware-nvidia"
-LICENSE:${PN}-nvidia-tegra = "Firmware-nvidia"
-LICENSE:${PN}-nvidia-tegra-k1 = "Firmware-nvidia"
-LICENSE:${PN}-nvidia-license = "Firmware-nvidia"
-
-FILES:${PN}-nvidia-gpu = "${nonarch_base_libdir}/firmware/nvidia"
-FILES:${PN}-nvidia-tegra = " \
-  ${nonarch_base_libdir}/firmware/nvidia/tegra* \
-  ${nonarch_base_libdir}/firmware/nvidia/gm20b \
-  ${nonarch_base_libdir}/firmware/nvidia/gp10b \
-"
-FILES:${PN}-nvidia-tegra-k1 = " \
-  ${nonarch_base_libdir}/firmware/nvidia/tegra124 \
-  ${nonarch_base_libdir}/firmware/nvidia/gk20a \
-"
-FILES:${PN}-nvidia-license = "${nonarch_base_libdir}/firmware/LICENCE.nvidia"
-
-RDEPENDS:${PN}-nvidia-gpu += "${PN}-nvidia-license"
-RDEPENDS:${PN}-nvidia-tegra += "${PN}-nvidia-license"
-RDEPENDS:${PN}-nvidia-tegra-k1 += "${PN}-nvidia-license"
-
-# For RSI RS911x WiFi
-LICENSE:${PN}-rs9113 = "WHENCE"
-LICENSE:${PN}-rs9116 = "WHENCE"
-
-FILES:${PN}-rs9113 = " ${nonarch_base_libdir}/firmware/rsi/rs9113*.rps "
-FILES:${PN}-rs9116 = " ${nonarch_base_libdir}/firmware/rsi/rs9116*.rps "
-
-RDEPENDS:${PN}-rs9113 += "${PN}-whence-license"
-RDEPENDS:${PN}-rs9116 += "${PN}-whence-license"
-
-# For rtl
-LICENSE:${PN}-rtl8188 = "Firmware-rtlwifi_firmware"
-LICENSE:${PN}-rtl8192cu = "Firmware-rtlwifi_firmware"
-LICENSE:${PN}-rtl8192ce = "Firmware-rtlwifi_firmware"
-LICENSE:${PN}-rtl8192su = "Firmware-rtlwifi_firmware"
-LICENSE:${PN}-rtl8723 = "Firmware-rtlwifi_firmware"
-LICENSE:${PN}-rtl8821 = "Firmware-rtlwifi_firmware"
-LICENSE:${PN}-rtl-license = "Firmware-rtlwifi_firmware"
-LICENSE:${PN}-rtl8168 = "WHENCE"
-
-FILES:${PN}-rtl-license = " \
-  ${nonarch_base_libdir}/firmware/LICENCE.rtlwifi_firmware.txt \
-"
-FILES:${PN}-rtl8188 = " \
-  ${nonarch_base_libdir}/firmware/rtlwifi/rtl8188*.bin \
-"
-FILES:${PN}-rtl8192cu = " \
-  ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cufw*.bin \
-"
-FILES:${PN}-rtl8192ce = " \
-  ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cfw*.bin \
-"
-FILES:${PN}-rtl8192su = " \
-  ${nonarch_base_libdir}/firmware/rtlwifi/rtl8712u.bin \
-"
-FILES:${PN}-rtl8723 = " \
-  ${nonarch_base_libdir}/firmware/rtlwifi/rtl8723*.bin \
-"
-FILES:${PN}-rtl8821 = " \
-  ${nonarch_base_libdir}/firmware/rtlwifi/rtl8821*.bin \
-"
-FILES:${PN}-rtl8168 = " \
-  ${nonarch_base_libdir}/firmware/rtl_nic/rtl8168*.fw \
-"
-
-RDEPENDS:${PN}-rtl8188 += "${PN}-rtl-license"
-RDEPENDS:${PN}-rtl8192ce += "${PN}-rtl-license"
-RDEPENDS:${PN}-rtl8192cu += "${PN}-rtl-license"
-RDEPENDS:${PN}-rtl8192su = "${PN}-rtl-license"
-RDEPENDS:${PN}-rtl8723 += "${PN}-rtl-license"
-RDEPENDS:${PN}-rtl8821 += "${PN}-rtl-license"
-RDEPENDS:${PN}-rtl8168 += "${PN}-whence-license"
-
-# For ti-connectivity
-LICENSE:${PN}-wlcommon = "Firmware-ti-connectivity"
-LICENSE:${PN}-wl12xx = "Firmware-ti-connectivity"
-LICENSE:${PN}-wl18xx = "Firmware-ti-connectivity"
-LICENSE:${PN}-ti-connectivity-license = "Firmware-ti-connectivity"
-
-FILES:${PN}-ti-connectivity-license = "${nonarch_base_libdir}/firmware/LICENCE.ti-connectivity"
-# wl18xx optionally needs wl1271-nvs.bin (which itself is a symlink to
-# wl127x-nvs.bin) - see linux/drivers/net/wireless/ti/wlcore/sdio.c
-# and drivers/net/wireless/ti/wlcore/spi.c.
-# While they're optional and actually only used to override the MAC
-# address on wl18xx, driver loading will delay (by udev timout - 60s)
-# if not there. So let's make it available always. Because it's a
-# symlink, both need to go to wlcommon.
-FILES:${PN}-wlcommon = " \
-  ${nonarch_base_libdir}/firmware/ti-connectivity/TI* \
-  ${nonarch_base_libdir}/firmware/ti-connectivity/wl127x-nvs.bin \
-  ${nonarch_base_libdir}/firmware/ti-connectivity/wl1271-nvs.bin \
-"
-FILES:${PN}-wl12xx = " \
-  ${nonarch_base_libdir}/firmware/ti-connectivity/wl12* \
-"
-FILES:${PN}-wl18xx = " \
-  ${nonarch_base_libdir}/firmware/ti-connectivity/wl18* \
-"
-
-RDEPENDS:${PN}-wl12xx = "${PN}-ti-connectivity-license ${PN}-wlcommon"
-RDEPENDS:${PN}-wl18xx = "${PN}-ti-connectivity-license ${PN}-wlcommon"
-
-# For vt6656
-LICENSE:${PN}-vt6656 = "Firmware-via_vt6656"
-LICENSE:${PN}-vt6656-license = "Firmware-via_vt6656"
-
-FILES:${PN}-vt6656-license = "${nonarch_base_libdir}/firmware/LICENCE.via_vt6656"
-FILES:${PN}-vt6656 = " \
-  ${nonarch_base_libdir}/firmware/vntwusb.fw \
-"
-
-RDEPENDS:${PN}-vt6656 = "${PN}-vt6656-license"
-
-# For broadcom
-
-# for i in `grep brcm WHENCE  | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e "             \${PN}-$pkg \\"; done  | sort -u
-
-LICENSE:${PN}-broadcom-license = "Firmware-broadcom_bcm43xx"
-FILES:${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx"
-
-# for i in `grep brcm WHENCE  | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo "$i - $pkg"; echo -e "FILES:\${PN}-$pkg = \"\${nonarch_base_libdir}/firmware/brcm/$i\""; done | grep ^FILES
-
-FILES:${PN}-bcm43xx = "${nonarch_base_libdir}/firmware/brcm/bcm43xx-0.fw"
-FILES:${PN}-bcm43xx-hdr = "${nonarch_base_libdir}/firmware/brcm/bcm43xx_hdr-0.fw"
-FILES:${PN}-bcm4329-fullmac = "${nonarch_base_libdir}/firmware/brcm/bcm4329-fullmac-4.bin"
-FILES:${PN}-bcm43236b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43236b.bin"
-FILES:${PN}-bcm4329 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4329-sdio.bin"
-FILES:${PN}-bcm4330 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.*"
-FILES:${PN}-bcm4334 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4334-sdio.bin"
-FILES:${PN}-bcm4335 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4335-sdio.bin"
-FILES:${PN}-bcm4339 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4339-sdio.bin \
-  ${nonarch_base_libdir}/firmware/cypress/cyfmac4339-sdio.bin \
-"
-FILES:${PN}-bcm43241b0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b0-sdio.bin"
-FILES:${PN}-bcm43241b4 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b4-sdio.bin"
-FILES:${PN}-bcm43241b5 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b5-sdio.bin"
-FILES:${PN}-bcm43242a = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43242a.bin"
-FILES:${PN}-bcm43143 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43143.bin \
-  ${nonarch_base_libdir}/firmware/brcm/brcmfmac43143-sdio.bin \
-"
-FILES:${PN}-bcm43430a0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430a0-sdio.*"
-FILES:${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.* \
-  ${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio.* \
-"
-FILES:${PN}-bcm4350c2 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350c2-pcie.bin"
-FILES:${PN}-bcm4350 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350-pcie.bin"
-FILES:${PN}-bcm4356 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-sdio.* \
-  ${nonarch_base_libdir}/firmware/cypress/cyfmac4356-sdio.* \
-"
-FILES:${PN}-bcm43569 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43569.bin"
-FILES:${PN}-bcm43570 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43570-pcie.bin \
-  ${nonarch_base_libdir}/firmware/cypress/cyfmac43570-pcie.bin \
-"
-FILES:${PN}-bcm4358 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4358-pcie.bin"
-FILES:${PN}-bcm43602 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.bin \
-  ${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.ap.bin \
-"
-FILES:${PN}-bcm4366b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366b-pcie.bin"
-FILES:${PN}-bcm4366c = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366c-pcie.bin"
-FILES:${PN}-bcm4371 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4371-pcie.bin"
-
-# for i in `grep brcm WHENCE  | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e "LICENSE:\${PN}-$pkg = \"Firmware-broadcom_bcm43xx\"\nRDEPENDS_\${PN}-$pkg += \"\${PN}-broadcom-license\""; done
-# Currently 1st one and last 6 have cypress LICENSE
-
-LICENSE:${PN}-bcm43xx = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm43xx += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm43xx-hdr = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm43xx-hdr += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm4329-fullmac = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm4329-fullmac += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm43236b = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm43236b += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm4329 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm4329 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm4330 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm4330 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm4334 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm4334 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm4335 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm4335 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm4339 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm4339 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm43241b0 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm43241b0 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm43241b4 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm43241b4 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm43241b5 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm43241b5 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm43242a = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm43242a += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm43143 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm43143 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm43430a0 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm43430a0 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm43455 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm43455 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm4350c2 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm4350c2 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm4350 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm4350 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm4356 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm4356 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm43569 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm43569 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm43570 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm43570 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm4358 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm4358 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm43602 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm43602 += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm4366b = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm4366b += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm4366c = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm4366c += "${PN}-broadcom-license"
-LICENSE:${PN}-bcm4371 = "Firmware-broadcom_bcm43xx"
-RDEPENDS:${PN}-bcm4371 += "${PN}-broadcom-license"
-
-# For broadcom cypress
-
-LICENSE:${PN}-cypress-license = "Firmware-cypress"
-FILES:${PN}-cypress-license = "${nonarch_base_libdir}/firmware/LICENCE.cypress"
-
-FILES:${PN}-bcm-0bb4-0306 = "${nonarch_base_libdir}/firmware/brcm/BCM-0bb4-0306.hcd"
-FILES:${PN}-bcm43340 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.* \
-  ${nonarch_base_libdir}/firmware/cypress/cyfmac43340-sdio.*"
-FILES:${PN}-bcm43362 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43362-sdio.* \
-  ${nonarch_base_libdir}/firmware/cypress/cyfmac43362-sdio.*"
-FILES:${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.* \
-  ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.*"
-FILES:${PN}-bcm4354 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4354-sdio.bin \
-  ${nonarch_base_libdir}/firmware/cypress/cyfmac4354-sdio.bin \
-"
-FILES:${PN}-bcm4356-pcie = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-pcie.* \
-  ${nonarch_base_libdir}/firmware/cypress/cyfmac4356-pcie.* \
-"
-FILES:${PN}-bcm4373 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4373-sdio.bin \
-  ${nonarch_base_libdir}/firmware/brcm/brcmfmac4373.bin \
-  ${nonarch_base_libdir}/firmware/cypress/cyfmac4373-sdio.bin \
-"
-
-LICENSE:${PN}-bcm-0bb4-0306 = "Firmware-cypress"
-RDEPENDS:${PN}-bcm-0bb4-0306 += "${PN}-cypress-license"
-LICENSE:${PN}-bcm43340 = "Firmware-cypress"
-RDEPENDS:${PN}-bcm43340 += "${PN}-cypress-license"
-LICENSE:${PN}-bcm43362 = "Firmware-cypress"
-RDEPENDS:${PN}-bcm43362 += "${PN}-cypress-license"
-LICENSE:${PN}-bcm43430 = "Firmware-cypress"
-RDEPENDS:${PN}-bcm43430 += "${PN}-cypress-license"
-LICENSE:${PN}-bcm4354 = "Firmware-cypress"
-RDEPENDS:${PN}-bcm4354 += "${PN}-cypress-license"
-LICENSE:${PN}-bcm4356-pcie = "Firmware-cypress"
-RDEPENDS:${PN}-bcm4356-pcie += "${PN}-cypress-license"
-LICENSE:${PN}-bcm4373 = "Firmware-cypress"
-RDEPENDS:${PN}-bcm4373 += "${PN}-cypress-license"
-
-# For Broadcom bnx2-mips
-#
-# which is a separate case to the other Broadcom firmwares since its
-# license is contained in the shared WHENCE file.
-
-LICENSE:${PN}-bnx2-mips = "WHENCE"
-LICENSE:${PN}-whence-license = "WHENCE"
-
-FILES:${PN}-bnx2-mips = "${nonarch_base_libdir}/firmware/bnx2/bnx2-mips-09-6.2.1b.fw"
-FILES:${PN}-whence-license = "${nonarch_base_libdir}/firmware/WHENCE"
-
-RDEPENDS:${PN}-bnx2-mips += "${PN}-whence-license"
-
-# For imx-sdma
-LICENSE:${PN}-imx-sdma-imx6q       = "Firmware-imx-sdma_firmware"
-LICENSE:${PN}-imx-sdma-imx7d       = "Firmware-imx-sdma_firmware"
-LICENSE:${PN}-imx-sdma-license       = "Firmware-imx-sdma_firmware"
-
-FILES:${PN}-imx-sdma-imx6q = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx6q.bin"
-
-RPROVIDES:${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q"
-RREPLACES:${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q"
-RCONFLICTS:${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q"
-
-FILES:${PN}-imx-sdma-imx7d = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx7d.bin"
-
-FILES:${PN}-imx-sdma-license = "${nonarch_base_libdir}/firmware/LICENSE.sdma_firmware"
-
-RDEPENDS:${PN}-imx-sdma-imx6q += "${PN}-imx-sdma-license"
-RDEPENDS:${PN}-imx-sdma-imx7d += "${PN}-imx-sdma-license"
-
-# For iwlwifi
-LICENSE:${PN}-iwlwifi           = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-135-6     = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-3160-7    = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-3160-8    = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-3160-9    = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-3160-10   = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-3160-12   = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-3160-13   = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-3160-16   = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-3160-17   = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-6000-4    = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-6000g2a-5 = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-6000g2a-6 = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-6000g2b-5 = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-6000g2b-6 = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-6050-4    = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-6050-5    = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-7260      = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-7265      = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-7265d     = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-8000c     = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-8265      = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-9000      = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-misc      = "Firmware-iwlwifi_firmware"
-LICENSE:${PN}-iwlwifi-license   = "Firmware-iwlwifi_firmware"
-
-
-FILES:${PN}-iwlwifi-license = "${nonarch_base_libdir}/firmware/LICENCE.iwlwifi_firmware"
-FILES:${PN}-iwlwifi-135-6 = "${nonarch_base_libdir}/firmware/iwlwifi-135-6.ucode"
-FILES:${PN}-iwlwifi-3160-7 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-7.ucode"
-FILES:${PN}-iwlwifi-3160-8 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-8.ucode"
-FILES:${PN}-iwlwifi-3160-9 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-9.ucode"
-FILES:${PN}-iwlwifi-3160-10 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-10.ucode"
-FILES:${PN}-iwlwifi-3160-12 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-12.ucode"
-FILES:${PN}-iwlwifi-3160-13 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-13.ucode"
-FILES:${PN}-iwlwifi-3160-16 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-16.ucode"
-FILES:${PN}-iwlwifi-3160-17 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-17.ucode"
-FILES:${PN}-iwlwifi-6000-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6000-4.ucode"
-FILES:${PN}-iwlwifi-6000g2a-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-5.ucode"
-FILES:${PN}-iwlwifi-6000g2a-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-6.ucode"
-FILES:${PN}-iwlwifi-6000g2b-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-5.ucode"
-FILES:${PN}-iwlwifi-6000g2b-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-6.ucode"
-FILES:${PN}-iwlwifi-6050-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-4.ucode"
-FILES:${PN}-iwlwifi-6050-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-5.ucode"
-FILES:${PN}-iwlwifi-7260   = "${nonarch_base_libdir}/firmware/iwlwifi-7260-*.ucode"
-FILES:${PN}-iwlwifi-7265   = "${nonarch_base_libdir}/firmware/iwlwifi-7265-*.ucode"
-FILES:${PN}-iwlwifi-7265d   = "${nonarch_base_libdir}/firmware/iwlwifi-7265D-*.ucode"
-FILES:${PN}-iwlwifi-8000c   = "${nonarch_base_libdir}/firmware/iwlwifi-8000C-*.ucode"
-FILES:${PN}-iwlwifi-8265   = "${nonarch_base_libdir}/firmware/iwlwifi-8265-*.ucode"
-FILES:${PN}-iwlwifi-9000   = "${nonarch_base_libdir}/firmware/iwlwifi-9000-*.ucode"
-FILES:${PN}-iwlwifi-misc   = "${nonarch_base_libdir}/firmware/iwlwifi-*.ucode"
-
-RDEPENDS:${PN}-iwlwifi-135-6     = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-3160-7    = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-3160-8    = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-3160-9    = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-3160-10   = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-3160-12   = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-3160-13   = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-3160-16   = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-3160-17   = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-6000-4    = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-6000g2a-5 = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-6000g2a-6 = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-6000g2b-5 = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-6000g2b-6 = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-6050-4    = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-6050-5    = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-7260      = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-7265      = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-7265d     = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-8000c     = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-8265      = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-9000      = "${PN}-iwlwifi-license"
-RDEPENDS:${PN}-iwlwifi-misc      = "${PN}-iwlwifi-license"
-
-# -iwlwifi-misc is a "catch all" package that includes all the iwlwifi
-# firmwares that are not already included in other -iwlwifi- packages.
-# -iwlwifi is a virtual package that depends upon all iwlwifi packages.
-# These are distinct in order to allow the -misc firmwares to be installed
-# without pulling in every other iwlwifi package.
-ALLOW_EMPTY:${PN}-iwlwifi = "1"
-ALLOW_EMPTY:${PN}-iwlwifi-misc = "1"
-
-# Handle package updating for the newly merged iwlwifi groupings
-RPROVIDES:${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9"
-RREPLACES:${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9"
-RCONFLICTS:${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9"
-
-RPROVIDES:${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9"
-RREPLACES:${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9"
-RCONFLICTS:${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9"
-
-# For ibt
-LICENSE:${PN}-ibt-license = "Firmware-ibt_firmware"
-LICENSE:${PN}-ibt-hw-37-7 = "Firmware-ibt_firmware"
-LICENSE:${PN}-ibt-hw-37-8 = "Firmware-ibt_firmware"
-LICENSE:${PN}-ibt-11-5    = "Firmware-ibt_firmware"
-LICENSE:${PN}-ibt-12-16   = "Firmware-ibt_firmware"
-LICENSE:${PN}-ibt-17 = "Firmware-ibt_firmware"
-LICENSE:${PN}-ibt-20 = "Firmware-ibt_firmware"
-LICENSE:${PN}-ibt-misc    = "Firmware-ibt_firmware"
-
-FILES:${PN}-ibt-license = "${nonarch_base_libdir}/firmware/LICENCE.ibt_firmware"
-FILES:${PN}-ibt-hw-37-7 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.7*.bseq"
-FILES:${PN}-ibt-hw-37-8 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.8*.bseq"
-FILES:${PN}-ibt-11-5    = "${nonarch_base_libdir}/firmware/intel/ibt-11-5.sfi ${nonarch_base_libdir}/firmware/intel/ibt-11-5.ddc"
-FILES:${PN}-ibt-12-16   = "${nonarch_base_libdir}/firmware/intel/ibt-12-16.sfi ${nonarch_base_libdir}/firmware/intel/ibt-12-16.ddc"
-FILES:${PN}-ibt-17 = "${nonarch_base_libdir}/firmware/intel/ibt-17-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-17-*.ddc"
-FILES:${PN}-ibt-20 = "${nonarch_base_libdir}/firmware/intel/ibt-20-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-20-*.ddc"
-FILES:${PN}-ibt-misc    = "${nonarch_base_libdir}/firmware/intel/ibt-*"
-
-RDEPENDS:${PN}-ibt-hw-37-7 = "${PN}-ibt-license"
-RDEPENDS:${PN}-ibt-hw-37.8 = "${PN}-ibt-license"
-RDEPENDS:${PN}-ibt-11-5    = "${PN}-ibt-license"
-RDEPENDS:${PN}-ibt-12-16   = "${PN}-ibt-license"
-RDEPENDS:${PN}-ibt-17 = "${PN}-ibt-license"
-RDEPENDS:${PN}-ibt-20 = "${PN}-ibt-license"
-RDEPENDS:${PN}-ibt-misc    = "${PN}-ibt-license"
-
-ALLOW_EMPTY:${PN}-ibt= "1"
-ALLOW_EMPTY:${PN}-ibt-misc = "1"
-
-LICENSE:${PN}-i915       = "Firmware-i915"
-LICENSE:${PN}-i915-license = "Firmware-i915"
-FILES:${PN}-i915-license = "${nonarch_base_libdir}/firmware/LICENSE.i915"
-FILES:${PN}-i915         = "${nonarch_base_libdir}/firmware/i915"
-RDEPENDS:${PN}-i915      = "${PN}-i915-license"
-
-LICENSE:${PN}-ice       = "Firmware-ice"
-LICENSE:${PN}-ice-license = "Firmware-ice"
-FILES:${PN}-ice-license = "${nonarch_base_libdir}/firmware/LICENSE.ice"
-FILES:${PN}-ice         = "${nonarch_base_libdir}/firmware/intel/ice"
-RDEPENDS:${PN}-ice      = "${PN}-ice-license"
-
-FILES:${PN}-adsp-sst-license      = "${nonarch_base_libdir}/firmware/LICENCE.adsp_sst"
-LICENSE:${PN}-adsp-sst            = "Firmware-adsp_sst"
-LICENSE:${PN}-adsp-sst-license    = "Firmware-adsp_sst"
-FILES:${PN}-adsp-sst              = "${nonarch_base_libdir}/firmware/intel/dsp_fw*"
-RDEPENDS:${PN}-adsp-sst           = "${PN}-adsp-sst-license"
-
-# For QAT
-LICENSE:${PN}-qat         = "Firmware-qat"
-LICENSE:${PN}-qat-license = "Firmware-qat"
-FILES:${PN}-qat-license   = "${nonarch_base_libdir}/firmware/LICENCE.qat_firmware"
-FILES:${PN}-qat           = "${nonarch_base_libdir}/firmware/qat*.bin"
-RDEPENDS:${PN}-qat        = "${PN}-qat-license"
-
-# For QCOM VPU/GPU and SDM845
-LICENSE:${PN}-qcom-license = "Firmware-qcom"
-FILES:${PN}-qcom-license   = "${nonarch_base_libdir}/firmware/LICENSE.qcom ${nonarch_base_libdir}/firmware/qcom/NOTICE.txt"
-FILES:${PN}-qcom-venus-1.8 = "${nonarch_base_libdir}/firmware/qcom/venus-1.8/*"
-FILES:${PN}-qcom-venus-4.2 = "${nonarch_base_libdir}/firmware/qcom/venus-4.2/*"
-FILES:${PN}-qcom-venus-5.2 = "${nonarch_base_libdir}/firmware/qcom/venus-5.2/*"
-FILES:${PN}-qcom-venus-5.4 = "${nonarch_base_libdir}/firmware/qcom/venus-5.4/*"
-FILES:${PN}-qcom-vpu-1.0 = "${nonarch_base_libdir}/firmware/qcom/vpu-1.0/*"
-FILES:${PN}-qcom-vpu-2.0 = "${nonarch_base_libdir}/firmware/qcom/vpu-2.0/*"
-FILES:${PN}-qcom-adreno-a3xx = "${nonarch_base_libdir}/firmware/qcom/a300_*.fw ${nonarch_base_libdir}/firmware/a300_*.fw"
-FILES:${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.*"
-FILES:${PN}-qcom-adreno-a630 = "${nonarch_base_libdir}/firmware/qcom/a630*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/a630*.*"
-FILES:${PN}-qcom-adreno-a650 = "${nonarch_base_libdir}/firmware/qcom/a650*.* ${nonarch_base_libdir}/firmware/qcom/sm8250/a650*.*"
-FILES:${PN}-qcom-adreno-a660 = "${nonarch_base_libdir}/firmware/qcom/a660*.*"
-FILES:${PN}-qcom-sdm845-audio = "${nonarch_base_libdir}/firmware/qcom/sdm845/adsp*.*"
-FILES:${PN}-qcom-sdm845-compute = "${nonarch_base_libdir}/firmware/qcom/sdm845/cdsp*.*"
-FILES:${PN}-qcom-sdm845-modem = "${nonarch_base_libdir}/firmware/qcom/sdm845/mba.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/modem*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/wlanmdsp.mbn"
-FILES:${PN}-qcom-sm8250-audio = "${nonarch_base_libdir}/firmware/qcom/sm8250/adsp*.*"
-FILES:${PN}-qcom-sm8250-compute = "${nonarch_base_libdir}/firmware/qcom/sm8250/cdsp*.*"
-RDEPENDS:${PN}-qcom-venus-1.8 = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-venus-4.2 = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-venus-5.2 = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-venus-5.4 = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-vpu-1.0 = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-vpu-2.0 = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-adreno-a3xx = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-adreno-a530 = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-adreno-a630 = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-adreno-a650 = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-adreno-a660 = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-sdm845-audio = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-sdm845-compute = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-sdm845-modem = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-sm8250-audio = "${PN}-qcom-license"
-RDEPENDS:${PN}-qcom-sm8250-compute = "${PN}-qcom-license"
-
-FILES:${PN}-liquidio = "${nonarch_base_libdir}/firmware/liquidio"
-
-# For Amlogic VDEC
-LICENSE:${PN}-amlogic-vdec = "Firmware-amlogic_vdec"
-FILES:${PN}-amlogic-vdec-license = "${nonarch_base_libdir}/firmware/LICENSE.amlogic_vdec"
-FILES:${PN}-amlogic-vdec = "${nonarch_base_libdir}/firmware/meson/vdec/*"
-RDEPENDS:${PN}-amlogic-vdec = "${PN}-amlogic-vdec-license"
-
-# For other firmwares
-# Maybe split out to separate packages when needed.
-LICENSE:${PN} = "\
-    Firmware-Abilis \
-    & Firmware-agere \
-    & Firmware-amdgpu \
-    & Firmware-amd-ucode \
-    & Firmware-amlogic_vdec \
-    & Firmware-atmel \
-    & Firmware-ca0132 \
-    & Firmware-cavium \
-    & Firmware-chelsio_firmware \
-    & Firmware-cw1200 \
-    & Firmware-dib0700 \
-    & Firmware-e100 \
-    & Firmware-ene_firmware \
-    & Firmware-fw_sst_0f28 \
-    & Firmware-go7007 \
-    & Firmware-hfi1_firmware \
-    & Firmware-i2400m \
-    & Firmware-ibt_firmware \
-    & Firmware-it913x \
-    & Firmware-IntcSST2 \
-    & Firmware-kaweth \
-    & Firmware-moxa \
-    & Firmware-myri10ge_firmware \
-    & Firmware-nvidia \
-    & Firmware-OLPC \
-    & Firmware-ath9k-htc \
-    & Firmware-phanfw \
-    & Firmware-qat \
-    & Firmware-qcom \
-    & Firmware-qla1280 \
-    & Firmware-qla2xxx \
-    & Firmware-r8a779x_usb3 \
-    & Firmware-radeon \
-    & Firmware-ralink_a_mediatek_company_firmware \
-    & Firmware-ralink-firmware \
-    & Firmware-imx-sdma_firmware \
-    & Firmware-siano \
-    & Firmware-tda7706-firmware \
-    & Firmware-ti-connectivity \
-    & Firmware-ti-keystone \
-    & Firmware-ueagle-atm4-firmware \
-    & Firmware-wl1251 \
-    & Firmware-xc4000 \
-    & Firmware-xc5000 \
-    & Firmware-xc5000c \
-    & WHENCE \
-"
-
-FILES:${PN}-license += "${nonarch_base_libdir}/firmware/LICEN*"
-FILES:${PN} += "${nonarch_base_libdir}/firmware/*"
-RDEPENDS:${PN} += "${PN}-license"
-RDEPENDS:${PN} += "${PN}-whence-license"
-
-# Make linux-firmware depend on all of the split-out packages.
-# Make linux-firmware-iwlwifi depend on all of the split-out iwlwifi packages.
-# Make linux-firmware-ibt depend on all of the split-out ibt packages.
-python populate_packages:prepend () {
-    firmware_pkgs = oe.utils.packages_filter_out_system(d)
-    d.appendVar('RRECOMMENDS:linux-firmware', ' ' + ' '.join(firmware_pkgs))
-
-    iwlwifi_pkgs = filter(lambda x: x.find('-iwlwifi-') != -1, firmware_pkgs)
-    d.appendVar('RRECOMMENDS:linux-firmware-iwlwifi', ' ' + ' '.join(iwlwifi_pkgs))
-
-    ibt_pkgs = filter(lambda x: x.find('-ibt-') != -1, firmware_pkgs)
-    d.appendVar('RRECOMMENDS:linux-firmware-ibt', ' ' + ' '.join(ibt_pkgs))
-}
-
-# Firmware files are generally not ran on the CPU, so they can be
-# allarch despite being architecture specific
-INSANE_SKIP = "arch"
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20211216.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20211216.bb
new file mode 100644
index 0000000..65bfda1
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20211216.bb
@@ -0,0 +1,1067 @@
+SUMMARY = "Firmware files for use with Linux kernel"
+HOMEPAGE = "https://www.kernel.org/"
+DESCRIPTION = "Linux firmware is a package distributed alongside the Linux kernel \
+that contains firmware binary blobs necessary for partial or full functionality \
+of certain hardware devices."
+SECTION = "kernel"
+
+LICENSE = "\
+    Firmware-Abilis \
+    & Firmware-adsp_sst \
+    & Firmware-agere \
+    & Firmware-amdgpu \
+    & Firmware-amd-ucode \
+    & Firmware-amlogic_vdec \
+    & Firmware-atheros_firmware \
+    & Firmware-atmel \
+    & Firmware-broadcom_bcm43xx \
+    & Firmware-ca0132 \
+    & Firmware-cavium \
+    & Firmware-chelsio_firmware \
+    & Firmware-cw1200 \
+    & Firmware-cypress \
+    & Firmware-dib0700 \
+    & Firmware-e100 \
+    & Firmware-ene_firmware \
+    & Firmware-fw_sst_0f28 \
+    & Firmware-go7007 \
+    & Firmware-GPLv2 \
+    & Firmware-hfi1_firmware \
+    & Firmware-i2400m \
+    & Firmware-i915 \
+    & Firmware-ibt_firmware \
+    & Firmware-ice \
+    & Firmware-it913x \
+    & Firmware-iwlwifi_firmware \
+    & Firmware-IntcSST2 \
+    & Firmware-kaweth \
+    & Firmware-Lontium \
+    & Firmware-Marvell \
+    & Firmware-moxa \
+    & Firmware-myri10ge_firmware \
+    & Firmware-netronome \
+    & Firmware-nvidia \
+    & Firmware-OLPC \
+    & Firmware-ath9k-htc \
+    & Firmware-phanfw \
+    & Firmware-qat \
+    & Firmware-qcom \
+    & Firmware-qla1280 \
+    & Firmware-qla2xxx \
+    & Firmware-qualcommAthos_ar3k \
+    & Firmware-qualcommAthos_ath10k \
+    & Firmware-r8a779x_usb3 \
+    & Firmware-radeon \
+    & Firmware-ralink_a_mediatek_company_firmware \
+    & Firmware-ralink-firmware \
+    & Firmware-rtlwifi_firmware \
+    & Firmware-imx-sdma_firmware \
+    & Firmware-siano \
+    & Firmware-tda7706-firmware \
+    & Firmware-ti-connectivity \
+    & Firmware-ti-keystone \
+    & Firmware-ueagle-atm4-firmware \
+    & Firmware-via_vt6656 \
+    & Firmware-wl1251 \
+    & Firmware-xc4000 \
+    & Firmware-xc5000 \
+    & Firmware-xc5000c \
+    & WHENCE \
+"
+
+LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \
+                    file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \
+                    file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \
+                    file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \
+                    file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f \
+                    file://LICENSE.amlogic_vdec;md5=dc44f59bf64a81643e500ad3f39a468a \
+                    file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \
+                    file://LICENSE.atmel;md5=aa74ac0c60595dee4d4e239107ea77a3 \
+                    file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \
+                    file://LICENCE.ca0132;md5=209b33e66ee5be0461f13d31da392198 \
+                    file://LICENCE.cadence;md5=009f46816f6956cfb75ede13d3e1cee0 \
+                    file://LICENCE.cavium;md5=c37aaffb1ebe5939b2580d073a95daea \
+                    file://LICENCE.chelsio_firmware;md5=819aa8c3fa453f1b258ed8d168a9d903 \
+                    file://LICENCE.cw1200;md5=f0f770864e7a8444a5c5aa9d12a3a7ed \
+                    file://LICENCE.cypress;md5=48cd9436c763bf873961f9ed7b5c147b \
+                    file://LICENSE.dib0700;md5=f7411825c8a555a1a3e5eab9ca773431 \
+                    file://LICENCE.e100;md5=ec0f84136766df159a3ae6d02acdf5a8 \
+                    file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \
+                    file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \
+                    file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \
+                    file://GPL-2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \
+                    file://LICENCE.i2400m;md5=14b901969e23c41881327c0d9e4b7d36 \
+                    file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \
+                    file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \
+                    file://LICENSE.ice;md5=742ab4850f2670792940e6d15c974b2f \
+                    file://LICENCE.IntcSST2;md5=9e7d8bea77612d7cc7d9e9b54b623062 \
+                    file://LICENCE.it913x;md5=1fbf727bfb6a949810c4dbfa7e6ce4f8 \
+                    file://LICENCE.iwlwifi_firmware;md5=2ce6786e0fc11ac6e36b54bb9b799f1b \
+                    file://LICENCE.kaweth;md5=b1d876e562f4b3b8d391ad8395dfe03f \
+                    file://LICENSE.Lontium;md5=4ec8dc582ff7295f39e2ca6a7b0be2b6 \
+                    file://LICENCE.Marvell;md5=28b6ed8bd04ba105af6e4dcd6e997772 \
+                    file://LICENCE.mediatek;md5=7c1976b63217d76ce47d0a11d8a79cf2 \
+                    file://LICENCE.moxa;md5=1086614767d8ccf744a923289d3d4261 \
+                    file://LICENCE.myri10ge_firmware;md5=42e32fb89f6b959ca222e25ac8df8fed \
+                    file://LICENCE.Netronome;md5=4add08f2577086d44447996503cddf5f \
+                    file://LICENCE.nvidia;md5=4428a922ed3ba2ceec95f076a488ce07 \
+                    file://LICENCE.NXP;md5=58bb8ba632cd729b9ba6183bc6aed36f \
+                    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://LICENSE.qcom;md5=164e3362a538eb11d3ac51e8e134294b \
+                    file://LICENCE.qla1280;md5=d6895732e622d950609093223a2c4f5d \
+                    file://LICENCE.qla2xxx;md5=505855e921b75f1be4a437ad9b79dff0 \
+                    file://LICENSE.QualcommAtheros_ar3k;md5=b5fe244fb2b532311de1472a3bc06da5 \
+                    file://LICENSE.QualcommAtheros_ath10k;md5=cb42b686ee5f5cb890275e4321db60a8 \
+                    file://LICENCE.r8a779x_usb3;md5=4c1671656153025d7076105a5da7e498 \
+                    file://LICENSE.radeon;md5=68ec28bacb3613200bca44f404c69b16 \
+                    file://LICENCE.ralink_a_mediatek_company_firmware;md5=728f1a85fd53fd67fa8d7afb080bc435 \
+                    file://LICENCE.ralink-firmware.txt;md5=ab2c269277c45476fb449673911a2dfd \
+                    file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \
+                    file://LICENSE.sdma_firmware;md5=51e8c19ecc2270f4b8ea30341ad63ce9 \
+                    file://LICENCE.siano;md5=4556c1bf830067f12ca151ad953ec2a5 \
+                    file://LICENCE.tda7706-firmware.txt;md5=835997cf5e3c131d0dddd695c7d9103e \
+                    file://LICENCE.ti-connectivity;md5=c5e02be633f1499c109d1652514d85ec \
+                    file://LICENCE.ti-keystone;md5=3a86335d32864b0bef996bee26cc0f2c \
+                    file://LICENCE.ueagle-atm4-firmware;md5=4ed7ea6b507ccc583b9d594417714118 \
+                    file://LICENCE.via_vt6656;md5=e4159694cba42d4377a912e78a6e850f \
+                    file://LICENCE.wl1251;md5=ad3f81922bb9e197014bb187289d3b5b \
+                    file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \
+                    file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \
+                    file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \
+                    file://WHENCE;md5=79f477f9d53eedee5a65b45193785963 \
+                    "
+
+# These are not common licenses, set NO_GENERIC_LICENSE for them
+# so that the license files will be copied from fetched source
+NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENCE.Abilis"
+NO_GENERIC_LICENSE[Firmware-adsp_sst] = "LICENCE.adsp_sst"
+NO_GENERIC_LICENSE[Firmware-agere] = "LICENCE.agere"
+NO_GENERIC_LICENSE[Firmware-amdgpu] = "LICENSE.amdgpu"
+NO_GENERIC_LICENSE[Firmware-amd-ucode] = "LICENSE.amd-ucode"
+NO_GENERIC_LICENSE[Firmware-amlogic_vdec] = "LICENSE.amlogic_vdec"
+NO_GENERIC_LICENSE[Firmware-atheros_firmware] = "LICENCE.atheros_firmware"
+NO_GENERIC_LICENSE[Firmware-atmel] = "LICENSE.atmel"
+NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx] = "LICENCE.broadcom_bcm43xx"
+NO_GENERIC_LICENSE[Firmware-ca0132] = "LICENCE.ca0132"
+NO_GENERIC_LICENSE[Firmware-cadence] = "LICENCE.cadence"
+NO_GENERIC_LICENSE[Firmware-cavium] = "LICENCE.cavium"
+NO_GENERIC_LICENSE[Firmware-chelsio_firmware] = "LICENCE.chelsio_firmware"
+NO_GENERIC_LICENSE[Firmware-cw1200] = "LICENCE.cw1200"
+NO_GENERIC_LICENSE[Firmware-cypress] = "LICENCE.cypress"
+NO_GENERIC_LICENSE[Firmware-dib0700] = "LICENSE.dib0700"
+NO_GENERIC_LICENSE[Firmware-e100] = "LICENCE.e100"
+NO_GENERIC_LICENSE[Firmware-ene_firmware] = "LICENCE.ene_firmware"
+NO_GENERIC_LICENSE[Firmware-fw_sst_0f28] = "LICENCE.fw_sst_0f28"
+NO_GENERIC_LICENSE[Firmware-go7007] = "LICENCE.go7007"
+NO_GENERIC_LICENSE[Firmware-GPLv2] = "GPL-2"
+NO_GENERIC_LICENSE[Firmware-hfi1_firmware] = "LICENSE.hfi1_firmware"
+NO_GENERIC_LICENSE[Firmware-i2400m] = "LICENCE.i2400m"
+NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915"
+NO_GENERIC_LICENSE[Firmware-ibt_firmware] = "LICENCE.ibt_firmware"
+NO_GENERIC_LICENSE[Firmware-ice] = "LICENSE.ice"
+NO_GENERIC_LICENSE[Firmware-IntcSST2] = "LICENCE.IntcSST2"
+NO_GENERIC_LICENSE[Firmware-it913x] = "LICENCE.it913x"
+NO_GENERIC_LICENSE[Firmware-iwlwifi_firmware] = "LICENCE.iwlwifi_firmware"
+NO_GENERIC_LICENSE[Firmware-kaweth] = "LICENCE.kaweth"
+NO_GENERIC_LICENSE[Firmware-Lontium] = "LICENSE.Lontium"
+NO_GENERIC_LICENSE[Firmware-Marvell] = "LICENCE.Marvell"
+NO_GENERIC_LICENSE[Firmware-mediatek] = "LICENCE.mediatek"
+NO_GENERIC_LICENSE[Firmware-moxa] = "LICENCE.moxa"
+NO_GENERIC_LICENSE[Firmware-myri10ge_firmware] = "LICENCE.myri10ge_firmware"
+NO_GENERIC_LICENSE[Firmware-netronome] = "LICENCE.Netronome"
+NO_GENERIC_LICENSE[Firmware-nvidia] = "LICENCE.nvidia"
+NO_GENERIC_LICENSE[Firmware-OLPC] = "LICENCE.OLPC"
+NO_GENERIC_LICENSE[Firmware-ath9k-htc] = "LICENCE.open-ath9k-htc-firmware"
+NO_GENERIC_LICENSE[Firmware-phanfw] = "LICENCE.phanfw"
+NO_GENERIC_LICENSE[Firmware-qat] = "LICENCE.qat_firmware"
+NO_GENERIC_LICENSE[Firmware-qcom] = "LICENSE.qcom"
+NO_GENERIC_LICENSE[Firmware-qla1280] = "LICENCE.qla1280"
+NO_GENERIC_LICENSE[Firmware-qla2xxx] = "LICENCE.qla2xxx"
+NO_GENERIC_LICENSE[Firmware-qualcommAthos_ar3k] = "LICENSE.QualcommAtheros_ar3k"
+NO_GENERIC_LICENSE[Firmware-qualcommAthos_ath10k] = "LICENSE.QualcommAtheros_ath10k"
+NO_GENERIC_LICENSE[Firmware-r8a779x_usb3] = "LICENCE.r8a779x_usb3"
+NO_GENERIC_LICENSE[Firmware-radeon] = "LICENSE.radeon"
+NO_GENERIC_LICENSE[Firmware-ralink_a_mediatek_company_firmware] = "LICENCE.ralink_a_mediatek_company_firmware"
+NO_GENERIC_LICENSE[Firmware-ralink-firmware] = "LICENCE.ralink-firmware.txt"
+NO_GENERIC_LICENSE[Firmware-rtlwifi_firmware] = "LICENCE.rtlwifi_firmware.txt"
+NO_GENERIC_LICENSE[Firmware-siano] = "LICENCE.siano"
+NO_GENERIC_LICENSE[Firmware-imx-sdma_firmware] = "LICENSE.sdma_firmware"
+NO_GENERIC_LICENSE[Firmware-tda7706-firmware] = "LICENCE.tda7706-firmware.txt"
+NO_GENERIC_LICENSE[Firmware-ti-connectivity] = "LICENCE.ti-connectivity"
+NO_GENERIC_LICENSE[Firmware-ti-keystone] = "LICENCE.ti-keystone"
+NO_GENERIC_LICENSE[Firmware-ueagle-atm4-firmware] = "LICENCE.ueagle-atm4-firmware"
+NO_GENERIC_LICENSE[Firmware-via_vt6656] = "LICENCE.via_vt6656"
+NO_GENERIC_LICENSE[Firmware-wl1251] = "LICENCE.wl1251"
+NO_GENERIC_LICENSE[Firmware-xc4000] = "LICENCE.xc4000"
+NO_GENERIC_LICENSE[Firmware-xc5000] = "LICENCE.xc5000"
+NO_GENERIC_LICENSE[Firmware-xc5000c] = "LICENCE.xc5000c"
+NO_GENERIC_LICENSE[WHENCE] = "WHENCE"
+
+PE = "1"
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz"
+
+SRC_URI[sha256sum] = "eeddb4e6bef31fd1a3757f12ccc324929bbad97855c0b9ec5ed780f74de1837d"
+
+inherit allarch
+
+CLEANBROKEN = "1"
+
+do_compile() {
+	:
+}
+
+do_install() {
+        oe_runmake 'DESTDIR=${D}' 'FIRMWAREDIR=${nonarch_base_libdir}/firmware' install
+        cp GPL-2 LICEN[CS]E.* WHENCE ${D}${nonarch_base_libdir}/firmware/
+}
+
+
+PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \
+             ${PN}-mt7601u-license ${PN}-mt7601u \
+             ${PN}-radeon-license ${PN}-radeon \
+             ${PN}-marvell-license ${PN}-pcie8897 ${PN}-pcie8997 \
+             ${PN}-sd8686 ${PN}-sd8688 ${PN}-sd8787 ${PN}-sd8797 ${PN}-sd8801 \
+             ${PN}-sd8887 ${PN}-sd8897 ${PN}-sd8997 ${PN}-usb8997 \
+             ${PN}-ti-connectivity-license ${PN}-wlcommon ${PN}-wl12xx ${PN}-wl18xx \
+             ${PN}-vt6656-license ${PN}-vt6656 \
+             ${PN}-rs9113 ${PN}-rs9116 \
+             ${PN}-rtl-license ${PN}-rtl8188 ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su ${PN}-rtl8723 ${PN}-rtl8821 \
+             ${PN}-rtl8168 \
+             ${PN}-cypress-license \
+             ${PN}-broadcom-license \
+             ${PN}-bcm-0bb4-0306 \
+             ${PN}-bcm43143 \
+             ${PN}-bcm43236b \
+             ${PN}-bcm43241b0 \
+             ${PN}-bcm43241b4 \
+             ${PN}-bcm43241b5 \
+             ${PN}-bcm43242a \
+             ${PN}-bcm4329 \
+             ${PN}-bcm4329-fullmac \
+             ${PN}-bcm4330 \
+             ${PN}-bcm4334 \
+             ${PN}-bcm43340 \
+             ${PN}-bcm4335 \
+             ${PN}-bcm43362 \
+             ${PN}-bcm4339 \
+             ${PN}-bcm43430 \
+             ${PN}-bcm43430a0 \
+             ${PN}-bcm43455 \
+             ${PN}-bcm4350 \
+             ${PN}-bcm4350c2 \
+             ${PN}-bcm4354 \
+             ${PN}-bcm4356 \
+             ${PN}-bcm4356-pcie \
+             ${PN}-bcm43569 \
+             ${PN}-bcm43570 \
+             ${PN}-bcm4358 \
+             ${PN}-bcm43602 \
+             ${PN}-bcm4366b \
+             ${PN}-bcm4366c \
+             ${PN}-bcm4371 \
+             ${PN}-bcm4373 \
+             ${PN}-bcm43xx \
+             ${PN}-bcm43xx-hdr \
+             ${PN}-atheros-license ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k \
+             ${PN}-gplv2-license ${PN}-carl9170 \
+             ${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k ${PN}-ath11k ${PN}-qca \
+             \
+             ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \
+             \
+             ${PN}-iwlwifi-license ${PN}-iwlwifi \
+             ${PN}-iwlwifi-135-6 \
+             ${PN}-iwlwifi-3160-7 ${PN}-iwlwifi-3160-8 ${PN}-iwlwifi-3160-9 \
+             ${PN}-iwlwifi-3160-10 ${PN}-iwlwifi-3160-12 ${PN}-iwlwifi-3160-13 \
+             ${PN}-iwlwifi-3160-16 ${PN}-iwlwifi-3160-17 \
+             ${PN}-iwlwifi-6000-4 ${PN}-iwlwifi-6000g2a-5 ${PN}-iwlwifi-6000g2a-6 \
+             ${PN}-iwlwifi-6000g2b-5 ${PN}-iwlwifi-6000g2b-6 \
+             ${PN}-iwlwifi-6050-4 ${PN}-iwlwifi-6050-5 \
+             ${PN}-iwlwifi-7260 \
+             ${PN}-iwlwifi-7265 \
+             ${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \
+             ${PN}-iwlwifi-9000 \
+             ${PN}-iwlwifi-misc \
+             ${PN}-ibt-license ${PN}-ibt \
+             ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \
+             ${PN}-ibt-17 \
+             ${PN}-ibt-20 \
+             ${PN}-ibt-misc \
+             ${PN}-i915-license ${PN}-i915 \
+             ${PN}-ice-license ${PN}-ice \
+             ${PN}-adsp-sst-license ${PN}-adsp-sst \
+             ${PN}-bnx2-mips \
+             ${PN}-liquidio \
+             ${PN}-nvidia-license \
+             ${PN}-nvidia-tegra-k1 ${PN}-nvidia-tegra \
+             ${PN}-nvidia-gpu \
+             ${PN}-netronome-license ${PN}-netronome \
+             ${PN}-qat ${PN}-qat-license \
+             ${PN}-qcom-license \
+             ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 ${PN}-qcom-venus-5.2 ${PN}-qcom-venus-5.4 \
+             ${PN}-qcom-vpu-1.0 ${PN}-qcom-vpu-2.0 \
+             ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a530 \
+             ${PN}-qcom-adreno-a630 ${PN}-qcom-adreno-a650 ${PN}-qcom-adreno-a660 \
+             ${PN}-qcom-sdm845-audio ${PN}-qcom-sdm845-compute ${PN}-qcom-sdm845-modem \
+             ${PN}-qcom-sm8250-audio ${PN}-qcom-sm8250-compute \
+             ${PN}-amlogic-vdec-license ${PN}-amlogic-vdec \
+             ${PN}-lt9611uxc ${PN}-lontium-license \
+             ${PN}-whence-license \
+             ${PN}-license \
+             "
+
+# For atheros
+LICENSE:${PN}-ar9170 = "Firmware-atheros_firmware"
+LICENSE:${PN}-ath6k = "Firmware-atheros_firmware"
+LICENSE:${PN}-ath9k = "Firmware-atheros_firmware"
+LICENSE:${PN}-atheros-license = "Firmware-atheros_firmware"
+
+FILES:${PN}-atheros-license = "${nonarch_base_libdir}/firmware/LICENCE.atheros_firmware"
+FILES:${PN}-ar9170 = " \
+  ${nonarch_base_libdir}/firmware/ar9170*.fw \
+"
+FILES:${PN}-ath6k = " \
+  ${nonarch_base_libdir}/firmware/ath6k \
+"
+FILES:${PN}-ath9k = " \
+  ${nonarch_base_libdir}/firmware/ar9271.fw \
+  ${nonarch_base_libdir}/firmware/ar7010*.fw \
+  ${nonarch_base_libdir}/firmware/htc_9271.fw \
+  ${nonarch_base_libdir}/firmware/htc_7010.fw \
+  ${nonarch_base_libdir}/firmware/ath9k_htc/htc_7010-1.4.0.fw \
+  ${nonarch_base_libdir}/firmware/ath9k_htc/htc_9271-1.4.0.fw \
+"
+
+RDEPENDS:${PN}-ar9170 += "${PN}-atheros-license"
+RDEPENDS:${PN}-ath6k += "${PN}-atheros-license"
+RDEPENDS:${PN}-ath9k += "${PN}-atheros-license"
+
+# For carl9170
+LICENSE:${PN}-carl9170 = "Firmware-GPLv2"
+LICENSE:${PN}-gplv2-license = "Firmware-GPLv2"
+
+FILES:${PN}-gplv2-license = "${nonarch_base_libdir}/firmware/GPL-2"
+FILES:${PN}-carl9170 = " \
+  ${nonarch_base_libdir}/firmware/carl9170*.fw \
+"
+
+RDEPENDS:${PN}-carl9170 += "${PN}-gplv2-license"
+
+# For QualCommAthos
+LICENSE:${PN}-ar3k = "Firmware-qualcommAthos_ar3k"
+LICENSE:${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k"
+LICENSE:${PN}-ath10k = "Firmware-qualcommAthos_ath10k"
+LICENSE:${PN}-ath10k-license = "Firmware-qualcommAthos_ath10k"
+LICENSE:${PN}-qca = "Firmware-qualcommAthos_ath10k"
+
+FILES:${PN}-ar3k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ar3k"
+FILES:${PN}-ar3k = " \
+  ${nonarch_base_libdir}/firmware/ar3k \
+"
+
+FILES:${PN}-ath10k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ath10k"
+FILES:${PN}-ath10k = " \
+  ${nonarch_base_libdir}/firmware/ath10k \
+"
+
+FILES:${PN}-ath11k = " \
+  ${nonarch_base_libdir}/firmware/ath11k \
+"
+
+FILES:${PN}-qca = " \
+  ${nonarch_base_libdir}/firmware/qca \
+"
+
+RDEPENDS:${PN}-ar3k += "${PN}-ar3k-license"
+RDEPENDS:${PN}-ath10k += "${PN}-ath10k-license"
+RDEPENDS:${PN}-ath11k += "${PN}-ath10k-license"
+RDEPENDS:${PN}-qca += "${PN}-ath10k-license"
+
+# For ralink
+LICENSE:${PN}-ralink = "Firmware-ralink-firmware"
+LICENSE:${PN}-ralink-license = "Firmware-ralink-firmware"
+
+FILES:${PN}-ralink-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink-firmware.txt"
+FILES:${PN}-ralink = " \
+  ${nonarch_base_libdir}/firmware/rt*.bin \
+"
+
+RDEPENDS:${PN}-ralink += "${PN}-ralink-license"
+
+# For mediatek MT7601U
+LICENSE:${PN}-mt7601u = "Firmware-ralink_a_mediatek_company_firmware"
+LICENSE:${PN}-mt7601u-license = "Firmware-ralink_a_mediatek_company_firmware"
+
+FILES:${PN}-mt7601u-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink_a_mediatek_company_firmware"
+FILES:${PN}-mt7601u = " \
+  ${nonarch_base_libdir}/firmware/mt7601u.bin \
+"
+
+RDEPENDS:${PN}-mt7601u += "${PN}-mt7601u-license"
+
+# For radeon
+LICENSE:${PN}-radeon = "Firmware-radeon"
+LICENSE:${PN}-radeon-license = "Firmware-radeon"
+
+FILES:${PN}-radeon-license = "${nonarch_base_libdir}/firmware/LICENSE.radeon"
+FILES:${PN}-radeon = " \
+  ${nonarch_base_libdir}/firmware/radeon \
+"
+
+RDEPENDS:${PN}-radeon += "${PN}-radeon-license"
+
+# For lontium
+LICENSE:${PN}-lt9611uxc = "Firmware-Lontium"
+
+FILES:${PN}-lontium-license = "${nonarch_base_libdir}/firmware/LICENSE.Lontium"
+FILES:${PN}-lt9611uxc = "${nonarch_base_libdir}/firmware/lt9611uxc_fw.bin"
+
+# For marvell
+LICENSE:${PN}-pcie8897 = "Firmware-Marvell"
+LICENSE:${PN}-pcie8997 = "Firmware-Marvell"
+LICENSE:${PN}-sd8686 = "Firmware-Marvell"
+LICENSE:${PN}-sd8688 = "Firmware-Marvell"
+LICENSE:${PN}-sd8787 = "Firmware-Marvell"
+LICENSE:${PN}-sd8797 = "Firmware-Marvell"
+LICENSE:${PN}-sd8801 = "Firmware-Marvell"
+LICENSE:${PN}-sd8887 = "Firmware-Marvell"
+LICENSE:${PN}-sd8897 = "Firmware-Marvell"
+LICENSE:${PN}-sd8997 = "Firmware-Marvell"
+LICENSE:${PN}-usb8997 = "Firmware-Marvell"
+LICENSE:${PN}-marvell-license = "Firmware-Marvell"
+
+FILES:${PN}-marvell-license = "${nonarch_base_libdir}/firmware/LICENCE.Marvell"
+FILES:${PN}-pcie8897 = " \
+  ${nonarch_base_libdir}/firmware/mrvl/pcie8897_uapsta.bin \
+"
+FILES:${PN}-pcie8997 = " \
+  ${nonarch_base_libdir}/firmware/mrvl/pcie8997_wlan_v4.bin \
+  ${nonarch_base_libdir}/firmware/mrvl/pcieuart8997_combo_v4.bin \
+  ${nonarch_base_libdir}/firmware/mrvl/pcieusb8997_combo_v4.bin \
+"
+FILES:${PN}-sd8686 = " \
+  ${nonarch_base_libdir}/firmware/libertas/sd8686_v9* \
+  ${nonarch_base_libdir}/firmware/sd8686* \
+"
+FILES:${PN}-sd8688 = " \
+  ${nonarch_base_libdir}/firmware/libertas/sd8688* \
+  ${nonarch_base_libdir}/firmware/mrvl/sd8688* \
+"
+FILES:${PN}-sd8787 = " \
+  ${nonarch_base_libdir}/firmware/mrvl/sd8787_uapsta.bin \
+"
+FILES:${PN}-sd8797 = " \
+  ${nonarch_base_libdir}/firmware/mrvl/sd8797_uapsta.bin \
+"
+FILES:${PN}-sd8801 = " \
+  ${nonarch_base_libdir}/firmware/mrvl/sd8801_uapsta.bin \
+"
+FILES:${PN}-sd8887 = " \
+  ${nonarch_base_libdir}/firmware/mrvl/sd8887_uapsta.bin \
+"
+FILES:${PN}-sd8897 = " \
+  ${nonarch_base_libdir}/firmware/mrvl/sd8897_uapsta.bin \
+"
+do_install:append() {
+    # The kernel 5.6.x driver still uses the old name, provide a symlink for
+    # older kernels
+    ln -fs sdsd8997_combo_v4.bin ${D}${nonarch_base_libdir}/firmware/mrvl/sd8997_uapsta.bin
+}
+FILES:${PN}-sd8997 = " \
+  ${nonarch_base_libdir}/firmware/mrvl/sd8997_uapsta.bin \
+  ${nonarch_base_libdir}/firmware/mrvl/sdsd8997_combo_v4.bin \
+"
+FILES:${PN}-usb8997 = " \
+  ${nonarch_base_libdir}/firmware/mrvl/usbusb8997_combo_v4.bin \
+"
+
+RDEPENDS:${PN}-sd8686 += "${PN}-marvell-license"
+RDEPENDS:${PN}-sd8688 += "${PN}-marvell-license"
+RDEPENDS:${PN}-sd8787 += "${PN}-marvell-license"
+RDEPENDS:${PN}-sd8797 += "${PN}-marvell-license"
+RDEPENDS:${PN}-sd8801 += "${PN}-marvell-license"
+RDEPENDS:${PN}-sd8887 += "${PN}-marvell-license"
+RDEPENDS:${PN}-sd8897 += "${PN}-marvell-license"
+RDEPENDS:${PN}-sd8997 += "${PN}-marvell-license"
+RDEPENDS:${PN}-usb8997 += "${PN}-marvell-license"
+
+# For netronome
+LICENSE:${PN}-netronome = "Firmware-netronome"
+
+FILES:${PN}-netronome-license = " \
+  ${nonarch_base_libdir}/firmware/LICENCE.Netronome \
+"
+FILES:${PN}-netronome = " \
+  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0081*.nffw \
+  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0096*.nffw \
+  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0097*.nffw \
+  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0099*.nffw \
+  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0058-0011_2x40.nffw \
+  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0058-0012_2x40.nffw \
+  ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0078-0011_1x100.nffw \
+  ${nonarch_base_libdir}/firmware/netronome/bpf \
+  ${nonarch_base_libdir}/firmware/netronome/flower \
+  ${nonarch_base_libdir}/firmware/netronome/nic \
+  ${nonarch_base_libdir}/firmware/netronome/nic-sriov \
+"
+
+RDEPENDS:${PN}-netronome += "${PN}-netronome-license"
+
+# For Nvidia
+LICENSE:${PN}-nvidia-gpu = "Firmware-nvidia"
+LICENSE:${PN}-nvidia-tegra = "Firmware-nvidia"
+LICENSE:${PN}-nvidia-tegra-k1 = "Firmware-nvidia"
+LICENSE:${PN}-nvidia-license = "Firmware-nvidia"
+
+FILES:${PN}-nvidia-gpu = "${nonarch_base_libdir}/firmware/nvidia"
+FILES:${PN}-nvidia-tegra = " \
+  ${nonarch_base_libdir}/firmware/nvidia/tegra* \
+  ${nonarch_base_libdir}/firmware/nvidia/gm20b \
+  ${nonarch_base_libdir}/firmware/nvidia/gp10b \
+"
+FILES:${PN}-nvidia-tegra-k1 = " \
+  ${nonarch_base_libdir}/firmware/nvidia/tegra124 \
+  ${nonarch_base_libdir}/firmware/nvidia/gk20a \
+"
+FILES:${PN}-nvidia-license = "${nonarch_base_libdir}/firmware/LICENCE.nvidia"
+
+RDEPENDS:${PN}-nvidia-gpu += "${PN}-nvidia-license"
+RDEPENDS:${PN}-nvidia-tegra += "${PN}-nvidia-license"
+RDEPENDS:${PN}-nvidia-tegra-k1 += "${PN}-nvidia-license"
+
+# For RSI RS911x WiFi
+LICENSE:${PN}-rs9113 = "WHENCE"
+LICENSE:${PN}-rs9116 = "WHENCE"
+
+FILES:${PN}-rs9113 = " ${nonarch_base_libdir}/firmware/rsi/rs9113*.rps "
+FILES:${PN}-rs9116 = " ${nonarch_base_libdir}/firmware/rsi/rs9116*.rps "
+
+RDEPENDS:${PN}-rs9113 += "${PN}-whence-license"
+RDEPENDS:${PN}-rs9116 += "${PN}-whence-license"
+
+# For rtl
+LICENSE:${PN}-rtl8188 = "Firmware-rtlwifi_firmware"
+LICENSE:${PN}-rtl8192cu = "Firmware-rtlwifi_firmware"
+LICENSE:${PN}-rtl8192ce = "Firmware-rtlwifi_firmware"
+LICENSE:${PN}-rtl8192su = "Firmware-rtlwifi_firmware"
+LICENSE:${PN}-rtl8723 = "Firmware-rtlwifi_firmware"
+LICENSE:${PN}-rtl8821 = "Firmware-rtlwifi_firmware"
+LICENSE:${PN}-rtl-license = "Firmware-rtlwifi_firmware"
+LICENSE:${PN}-rtl8168 = "WHENCE"
+
+FILES:${PN}-rtl-license = " \
+  ${nonarch_base_libdir}/firmware/LICENCE.rtlwifi_firmware.txt \
+"
+FILES:${PN}-rtl8188 = " \
+  ${nonarch_base_libdir}/firmware/rtlwifi/rtl8188*.bin \
+"
+FILES:${PN}-rtl8192cu = " \
+  ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cufw*.bin \
+"
+FILES:${PN}-rtl8192ce = " \
+  ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cfw*.bin \
+"
+FILES:${PN}-rtl8192su = " \
+  ${nonarch_base_libdir}/firmware/rtlwifi/rtl8712u.bin \
+"
+FILES:${PN}-rtl8723 = " \
+  ${nonarch_base_libdir}/firmware/rtlwifi/rtl8723*.bin \
+"
+FILES:${PN}-rtl8821 = " \
+  ${nonarch_base_libdir}/firmware/rtlwifi/rtl8821*.bin \
+"
+FILES:${PN}-rtl8168 = " \
+  ${nonarch_base_libdir}/firmware/rtl_nic/rtl8168*.fw \
+"
+
+RDEPENDS:${PN}-rtl8188 += "${PN}-rtl-license"
+RDEPENDS:${PN}-rtl8192ce += "${PN}-rtl-license"
+RDEPENDS:${PN}-rtl8192cu += "${PN}-rtl-license"
+RDEPENDS:${PN}-rtl8192su = "${PN}-rtl-license"
+RDEPENDS:${PN}-rtl8723 += "${PN}-rtl-license"
+RDEPENDS:${PN}-rtl8821 += "${PN}-rtl-license"
+RDEPENDS:${PN}-rtl8168 += "${PN}-whence-license"
+
+# For ti-connectivity
+LICENSE:${PN}-wlcommon = "Firmware-ti-connectivity"
+LICENSE:${PN}-wl12xx = "Firmware-ti-connectivity"
+LICENSE:${PN}-wl18xx = "Firmware-ti-connectivity"
+LICENSE:${PN}-ti-connectivity-license = "Firmware-ti-connectivity"
+
+FILES:${PN}-ti-connectivity-license = "${nonarch_base_libdir}/firmware/LICENCE.ti-connectivity"
+# wl18xx optionally needs wl1271-nvs.bin (which itself is a symlink to
+# wl127x-nvs.bin) - see linux/drivers/net/wireless/ti/wlcore/sdio.c
+# and drivers/net/wireless/ti/wlcore/spi.c.
+# While they're optional and actually only used to override the MAC
+# address on wl18xx, driver loading will delay (by udev timout - 60s)
+# if not there. So let's make it available always. Because it's a
+# symlink, both need to go to wlcommon.
+FILES:${PN}-wlcommon = " \
+  ${nonarch_base_libdir}/firmware/ti-connectivity/TI* \
+  ${nonarch_base_libdir}/firmware/ti-connectivity/wl127x-nvs.bin \
+  ${nonarch_base_libdir}/firmware/ti-connectivity/wl1271-nvs.bin \
+"
+FILES:${PN}-wl12xx = " \
+  ${nonarch_base_libdir}/firmware/ti-connectivity/wl12* \
+"
+FILES:${PN}-wl18xx = " \
+  ${nonarch_base_libdir}/firmware/ti-connectivity/wl18* \
+"
+
+RDEPENDS:${PN}-wl12xx = "${PN}-ti-connectivity-license ${PN}-wlcommon"
+RDEPENDS:${PN}-wl18xx = "${PN}-ti-connectivity-license ${PN}-wlcommon"
+
+# For vt6656
+LICENSE:${PN}-vt6656 = "Firmware-via_vt6656"
+LICENSE:${PN}-vt6656-license = "Firmware-via_vt6656"
+
+FILES:${PN}-vt6656-license = "${nonarch_base_libdir}/firmware/LICENCE.via_vt6656"
+FILES:${PN}-vt6656 = " \
+  ${nonarch_base_libdir}/firmware/vntwusb.fw \
+"
+
+RDEPENDS:${PN}-vt6656 = "${PN}-vt6656-license"
+
+# For broadcom
+
+# for i in `grep brcm WHENCE  | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e "             \${PN}-$pkg \\"; done  | sort -u
+
+LICENSE:${PN}-broadcom-license = "Firmware-broadcom_bcm43xx"
+FILES:${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx"
+
+# for i in `grep brcm WHENCE  | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo "$i - $pkg"; echo -e "FILES:\${PN}-$pkg = \"\${nonarch_base_libdir}/firmware/brcm/$i\""; done | grep ^FILES
+
+FILES:${PN}-bcm43xx = "${nonarch_base_libdir}/firmware/brcm/bcm43xx-0.fw"
+FILES:${PN}-bcm43xx-hdr = "${nonarch_base_libdir}/firmware/brcm/bcm43xx_hdr-0.fw"
+FILES:${PN}-bcm4329-fullmac = "${nonarch_base_libdir}/firmware/brcm/bcm4329-fullmac-4.bin"
+FILES:${PN}-bcm43236b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43236b.bin"
+FILES:${PN}-bcm4329 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4329-sdio.bin"
+FILES:${PN}-bcm4330 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.*"
+FILES:${PN}-bcm4334 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4334-sdio.bin"
+FILES:${PN}-bcm4335 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4335-sdio.bin"
+FILES:${PN}-bcm4339 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4339-sdio.bin \
+  ${nonarch_base_libdir}/firmware/cypress/cyfmac4339-sdio.bin \
+"
+FILES:${PN}-bcm43241b0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b0-sdio.bin"
+FILES:${PN}-bcm43241b4 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b4-sdio.bin"
+FILES:${PN}-bcm43241b5 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b5-sdio.bin"
+FILES:${PN}-bcm43242a = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43242a.bin"
+FILES:${PN}-bcm43143 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43143.bin \
+  ${nonarch_base_libdir}/firmware/brcm/brcmfmac43143-sdio.bin \
+"
+FILES:${PN}-bcm43430a0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430a0-sdio.*"
+FILES:${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.* \
+  ${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio.* \
+"
+FILES:${PN}-bcm4350c2 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350c2-pcie.bin"
+FILES:${PN}-bcm4350 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350-pcie.bin"
+FILES:${PN}-bcm4356 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-sdio.* \
+  ${nonarch_base_libdir}/firmware/cypress/cyfmac4356-sdio.* \
+"
+FILES:${PN}-bcm43569 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43569.bin"
+FILES:${PN}-bcm43570 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43570-pcie.bin \
+  ${nonarch_base_libdir}/firmware/cypress/cyfmac43570-pcie.bin \
+"
+FILES:${PN}-bcm4358 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4358-pcie.bin"
+FILES:${PN}-bcm43602 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.bin \
+  ${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.ap.bin \
+"
+FILES:${PN}-bcm4366b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366b-pcie.bin"
+FILES:${PN}-bcm4366c = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366c-pcie.bin"
+FILES:${PN}-bcm4371 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4371-pcie.bin"
+
+# for i in `grep brcm WHENCE  | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e "LICENSE:\${PN}-$pkg = \"Firmware-broadcom_bcm43xx\"\nRDEPENDS_\${PN}-$pkg += \"\${PN}-broadcom-license\""; done
+# Currently 1st one and last 6 have cypress LICENSE
+
+LICENSE:${PN}-bcm43xx = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm43xx += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm43xx-hdr = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm43xx-hdr += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm4329-fullmac = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm4329-fullmac += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm43236b = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm43236b += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm4329 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm4329 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm4330 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm4330 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm4334 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm4334 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm4335 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm4335 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm4339 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm4339 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm43241b0 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm43241b0 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm43241b4 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm43241b4 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm43241b5 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm43241b5 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm43242a = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm43242a += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm43143 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm43143 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm43430a0 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm43430a0 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm43455 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm43455 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm4350c2 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm4350c2 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm4350 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm4350 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm4356 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm4356 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm43569 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm43569 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm43570 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm43570 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm4358 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm4358 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm43602 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm43602 += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm4366b = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm4366b += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm4366c = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm4366c += "${PN}-broadcom-license"
+LICENSE:${PN}-bcm4371 = "Firmware-broadcom_bcm43xx"
+RDEPENDS:${PN}-bcm4371 += "${PN}-broadcom-license"
+
+# For broadcom cypress
+
+LICENSE:${PN}-cypress-license = "Firmware-cypress"
+FILES:${PN}-cypress-license = "${nonarch_base_libdir}/firmware/LICENCE.cypress"
+
+FILES:${PN}-bcm-0bb4-0306 = "${nonarch_base_libdir}/firmware/brcm/BCM-0bb4-0306.hcd"
+FILES:${PN}-bcm43340 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.* \
+  ${nonarch_base_libdir}/firmware/cypress/cyfmac43340-sdio.*"
+FILES:${PN}-bcm43362 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43362-sdio.* \
+  ${nonarch_base_libdir}/firmware/cypress/cyfmac43362-sdio.*"
+FILES:${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.* \
+  ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.*"
+FILES:${PN}-bcm4354 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4354-sdio.bin \
+  ${nonarch_base_libdir}/firmware/cypress/cyfmac4354-sdio.bin \
+"
+FILES:${PN}-bcm4356-pcie = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-pcie.* \
+  ${nonarch_base_libdir}/firmware/cypress/cyfmac4356-pcie.* \
+"
+FILES:${PN}-bcm4373 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4373-sdio.bin \
+  ${nonarch_base_libdir}/firmware/brcm/brcmfmac4373.bin \
+  ${nonarch_base_libdir}/firmware/cypress/cyfmac4373-sdio.bin \
+"
+
+LICENSE:${PN}-bcm-0bb4-0306 = "Firmware-cypress"
+RDEPENDS:${PN}-bcm-0bb4-0306 += "${PN}-cypress-license"
+LICENSE:${PN}-bcm43340 = "Firmware-cypress"
+RDEPENDS:${PN}-bcm43340 += "${PN}-cypress-license"
+LICENSE:${PN}-bcm43362 = "Firmware-cypress"
+RDEPENDS:${PN}-bcm43362 += "${PN}-cypress-license"
+LICENSE:${PN}-bcm43430 = "Firmware-cypress"
+RDEPENDS:${PN}-bcm43430 += "${PN}-cypress-license"
+LICENSE:${PN}-bcm4354 = "Firmware-cypress"
+RDEPENDS:${PN}-bcm4354 += "${PN}-cypress-license"
+LICENSE:${PN}-bcm4356-pcie = "Firmware-cypress"
+RDEPENDS:${PN}-bcm4356-pcie += "${PN}-cypress-license"
+LICENSE:${PN}-bcm4373 = "Firmware-cypress"
+RDEPENDS:${PN}-bcm4373 += "${PN}-cypress-license"
+
+# For Broadcom bnx2-mips
+#
+# which is a separate case to the other Broadcom firmwares since its
+# license is contained in the shared WHENCE file.
+
+LICENSE:${PN}-bnx2-mips = "WHENCE"
+LICENSE:${PN}-whence-license = "WHENCE"
+
+FILES:${PN}-bnx2-mips = "${nonarch_base_libdir}/firmware/bnx2/bnx2-mips-09-6.2.1b.fw"
+FILES:${PN}-whence-license = "${nonarch_base_libdir}/firmware/WHENCE"
+
+RDEPENDS:${PN}-bnx2-mips += "${PN}-whence-license"
+
+# For imx-sdma
+LICENSE:${PN}-imx-sdma-imx6q       = "Firmware-imx-sdma_firmware"
+LICENSE:${PN}-imx-sdma-imx7d       = "Firmware-imx-sdma_firmware"
+LICENSE:${PN}-imx-sdma-license       = "Firmware-imx-sdma_firmware"
+
+FILES:${PN}-imx-sdma-imx6q = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx6q.bin"
+
+RPROVIDES:${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q"
+RREPLACES:${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q"
+RCONFLICTS:${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q"
+
+FILES:${PN}-imx-sdma-imx7d = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx7d.bin"
+
+FILES:${PN}-imx-sdma-license = "${nonarch_base_libdir}/firmware/LICENSE.sdma_firmware"
+
+RDEPENDS:${PN}-imx-sdma-imx6q += "${PN}-imx-sdma-license"
+RDEPENDS:${PN}-imx-sdma-imx7d += "${PN}-imx-sdma-license"
+
+# For iwlwifi
+LICENSE:${PN}-iwlwifi           = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-135-6     = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-3160-7    = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-3160-8    = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-3160-9    = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-3160-10   = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-3160-12   = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-3160-13   = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-3160-16   = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-3160-17   = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-6000-4    = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-6000g2a-5 = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-6000g2a-6 = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-6000g2b-5 = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-6000g2b-6 = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-6050-4    = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-6050-5    = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-7260      = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-7265      = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-7265d     = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-8000c     = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-8265      = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-9000      = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-misc      = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-license   = "Firmware-iwlwifi_firmware"
+
+
+FILES:${PN}-iwlwifi-license = "${nonarch_base_libdir}/firmware/LICENCE.iwlwifi_firmware"
+FILES:${PN}-iwlwifi-135-6 = "${nonarch_base_libdir}/firmware/iwlwifi-135-6.ucode"
+FILES:${PN}-iwlwifi-3160-7 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-7.ucode"
+FILES:${PN}-iwlwifi-3160-8 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-8.ucode"
+FILES:${PN}-iwlwifi-3160-9 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-9.ucode"
+FILES:${PN}-iwlwifi-3160-10 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-10.ucode"
+FILES:${PN}-iwlwifi-3160-12 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-12.ucode"
+FILES:${PN}-iwlwifi-3160-13 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-13.ucode"
+FILES:${PN}-iwlwifi-3160-16 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-16.ucode"
+FILES:${PN}-iwlwifi-3160-17 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-17.ucode"
+FILES:${PN}-iwlwifi-6000-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6000-4.ucode"
+FILES:${PN}-iwlwifi-6000g2a-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-5.ucode"
+FILES:${PN}-iwlwifi-6000g2a-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-6.ucode"
+FILES:${PN}-iwlwifi-6000g2b-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-5.ucode"
+FILES:${PN}-iwlwifi-6000g2b-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-6.ucode"
+FILES:${PN}-iwlwifi-6050-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-4.ucode"
+FILES:${PN}-iwlwifi-6050-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-5.ucode"
+FILES:${PN}-iwlwifi-7260   = "${nonarch_base_libdir}/firmware/iwlwifi-7260-*.ucode"
+FILES:${PN}-iwlwifi-7265   = "${nonarch_base_libdir}/firmware/iwlwifi-7265-*.ucode"
+FILES:${PN}-iwlwifi-7265d   = "${nonarch_base_libdir}/firmware/iwlwifi-7265D-*.ucode"
+FILES:${PN}-iwlwifi-8000c   = "${nonarch_base_libdir}/firmware/iwlwifi-8000C-*.ucode"
+FILES:${PN}-iwlwifi-8265   = "${nonarch_base_libdir}/firmware/iwlwifi-8265-*.ucode"
+FILES:${PN}-iwlwifi-9000   = "${nonarch_base_libdir}/firmware/iwlwifi-9000-*.ucode"
+FILES:${PN}-iwlwifi-misc   = "${nonarch_base_libdir}/firmware/iwlwifi-*.ucode"
+
+RDEPENDS:${PN}-iwlwifi-135-6     = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-3160-7    = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-3160-8    = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-3160-9    = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-3160-10   = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-3160-12   = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-3160-13   = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-3160-16   = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-3160-17   = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-6000-4    = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-6000g2a-5 = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-6000g2a-6 = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-6000g2b-5 = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-6000g2b-6 = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-6050-4    = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-6050-5    = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-7260      = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-7265      = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-7265d     = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-8000c     = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-8265      = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-9000      = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-misc      = "${PN}-iwlwifi-license"
+
+# -iwlwifi-misc is a "catch all" package that includes all the iwlwifi
+# firmwares that are not already included in other -iwlwifi- packages.
+# -iwlwifi is a virtual package that depends upon all iwlwifi packages.
+# These are distinct in order to allow the -misc firmwares to be installed
+# without pulling in every other iwlwifi package.
+ALLOW_EMPTY:${PN}-iwlwifi = "1"
+ALLOW_EMPTY:${PN}-iwlwifi-misc = "1"
+
+# Handle package updating for the newly merged iwlwifi groupings
+RPROVIDES:${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9"
+RREPLACES:${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9"
+RCONFLICTS:${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9"
+
+RPROVIDES:${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9"
+RREPLACES:${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9"
+RCONFLICTS:${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9"
+
+# For ibt
+LICENSE:${PN}-ibt-license = "Firmware-ibt_firmware"
+LICENSE:${PN}-ibt-hw-37-7 = "Firmware-ibt_firmware"
+LICENSE:${PN}-ibt-hw-37-8 = "Firmware-ibt_firmware"
+LICENSE:${PN}-ibt-11-5    = "Firmware-ibt_firmware"
+LICENSE:${PN}-ibt-12-16   = "Firmware-ibt_firmware"
+LICENSE:${PN}-ibt-17 = "Firmware-ibt_firmware"
+LICENSE:${PN}-ibt-20 = "Firmware-ibt_firmware"
+LICENSE:${PN}-ibt-misc    = "Firmware-ibt_firmware"
+
+FILES:${PN}-ibt-license = "${nonarch_base_libdir}/firmware/LICENCE.ibt_firmware"
+FILES:${PN}-ibt-hw-37-7 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.7*.bseq"
+FILES:${PN}-ibt-hw-37-8 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.8*.bseq"
+FILES:${PN}-ibt-11-5    = "${nonarch_base_libdir}/firmware/intel/ibt-11-5.sfi ${nonarch_base_libdir}/firmware/intel/ibt-11-5.ddc"
+FILES:${PN}-ibt-12-16   = "${nonarch_base_libdir}/firmware/intel/ibt-12-16.sfi ${nonarch_base_libdir}/firmware/intel/ibt-12-16.ddc"
+FILES:${PN}-ibt-17 = "${nonarch_base_libdir}/firmware/intel/ibt-17-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-17-*.ddc"
+FILES:${PN}-ibt-20 = "${nonarch_base_libdir}/firmware/intel/ibt-20-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-20-*.ddc"
+FILES:${PN}-ibt-misc    = "${nonarch_base_libdir}/firmware/intel/ibt-*"
+
+RDEPENDS:${PN}-ibt-hw-37-7 = "${PN}-ibt-license"
+RDEPENDS:${PN}-ibt-hw-37.8 = "${PN}-ibt-license"
+RDEPENDS:${PN}-ibt-11-5    = "${PN}-ibt-license"
+RDEPENDS:${PN}-ibt-12-16   = "${PN}-ibt-license"
+RDEPENDS:${PN}-ibt-17 = "${PN}-ibt-license"
+RDEPENDS:${PN}-ibt-20 = "${PN}-ibt-license"
+RDEPENDS:${PN}-ibt-misc    = "${PN}-ibt-license"
+
+ALLOW_EMPTY:${PN}-ibt= "1"
+ALLOW_EMPTY:${PN}-ibt-misc = "1"
+
+LICENSE:${PN}-i915       = "Firmware-i915"
+LICENSE:${PN}-i915-license = "Firmware-i915"
+FILES:${PN}-i915-license = "${nonarch_base_libdir}/firmware/LICENSE.i915"
+FILES:${PN}-i915         = "${nonarch_base_libdir}/firmware/i915"
+RDEPENDS:${PN}-i915      = "${PN}-i915-license"
+
+LICENSE:${PN}-ice       = "Firmware-ice"
+LICENSE:${PN}-ice-license = "Firmware-ice"
+FILES:${PN}-ice-license = "${nonarch_base_libdir}/firmware/LICENSE.ice"
+FILES:${PN}-ice         = "${nonarch_base_libdir}/firmware/intel/ice"
+RDEPENDS:${PN}-ice      = "${PN}-ice-license"
+
+FILES:${PN}-adsp-sst-license      = "${nonarch_base_libdir}/firmware/LICENCE.adsp_sst"
+LICENSE:${PN}-adsp-sst            = "Firmware-adsp_sst"
+LICENSE:${PN}-adsp-sst-license    = "Firmware-adsp_sst"
+FILES:${PN}-adsp-sst              = "${nonarch_base_libdir}/firmware/intel/dsp_fw*"
+RDEPENDS:${PN}-adsp-sst           = "${PN}-adsp-sst-license"
+
+# For QAT
+LICENSE:${PN}-qat         = "Firmware-qat"
+LICENSE:${PN}-qat-license = "Firmware-qat"
+FILES:${PN}-qat-license   = "${nonarch_base_libdir}/firmware/LICENCE.qat_firmware"
+FILES:${PN}-qat           = "${nonarch_base_libdir}/firmware/qat*.bin"
+RDEPENDS:${PN}-qat        = "${PN}-qat-license"
+
+# For QCOM VPU/GPU and SDM845
+LICENSE:${PN}-qcom-license = "Firmware-qcom"
+FILES:${PN}-qcom-license   = "${nonarch_base_libdir}/firmware/LICENSE.qcom ${nonarch_base_libdir}/firmware/qcom/NOTICE.txt"
+FILES:${PN}-qcom-venus-1.8 = "${nonarch_base_libdir}/firmware/qcom/venus-1.8/*"
+FILES:${PN}-qcom-venus-4.2 = "${nonarch_base_libdir}/firmware/qcom/venus-4.2/*"
+FILES:${PN}-qcom-venus-5.2 = "${nonarch_base_libdir}/firmware/qcom/venus-5.2/*"
+FILES:${PN}-qcom-venus-5.4 = "${nonarch_base_libdir}/firmware/qcom/venus-5.4/*"
+FILES:${PN}-qcom-vpu-1.0 = "${nonarch_base_libdir}/firmware/qcom/vpu-1.0/*"
+FILES:${PN}-qcom-vpu-2.0 = "${nonarch_base_libdir}/firmware/qcom/vpu-2.0/*"
+FILES:${PN}-qcom-adreno-a3xx = "${nonarch_base_libdir}/firmware/qcom/a300_*.fw ${nonarch_base_libdir}/firmware/a300_*.fw"
+FILES:${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.*"
+FILES:${PN}-qcom-adreno-a630 = "${nonarch_base_libdir}/firmware/qcom/a630*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/a630*.*"
+FILES:${PN}-qcom-adreno-a650 = "${nonarch_base_libdir}/firmware/qcom/a650*.* ${nonarch_base_libdir}/firmware/qcom/sm8250/a650*.*"
+FILES:${PN}-qcom-adreno-a660 = "${nonarch_base_libdir}/firmware/qcom/a660*.*"
+FILES:${PN}-qcom-sdm845-audio = "${nonarch_base_libdir}/firmware/qcom/sdm845/adsp*.*"
+FILES:${PN}-qcom-sdm845-compute = "${nonarch_base_libdir}/firmware/qcom/sdm845/cdsp*.*"
+FILES:${PN}-qcom-sdm845-modem = "${nonarch_base_libdir}/firmware/qcom/sdm845/mba.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/modem*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/wlanmdsp.mbn"
+FILES:${PN}-qcom-sm8250-audio = "${nonarch_base_libdir}/firmware/qcom/sm8250/adsp*.*"
+FILES:${PN}-qcom-sm8250-compute = "${nonarch_base_libdir}/firmware/qcom/sm8250/cdsp*.*"
+RDEPENDS:${PN}-qcom-venus-1.8 = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-venus-4.2 = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-venus-5.2 = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-venus-5.4 = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-vpu-1.0 = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-vpu-2.0 = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-adreno-a3xx = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-adreno-a530 = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-adreno-a630 = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-adreno-a650 = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-adreno-a660 = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-sdm845-audio = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-sdm845-compute = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-sdm845-modem = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-sm8250-audio = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-sm8250-compute = "${PN}-qcom-license"
+
+FILES:${PN}-liquidio = "${nonarch_base_libdir}/firmware/liquidio"
+
+# For Amlogic VDEC
+LICENSE:${PN}-amlogic-vdec = "Firmware-amlogic_vdec"
+FILES:${PN}-amlogic-vdec-license = "${nonarch_base_libdir}/firmware/LICENSE.amlogic_vdec"
+FILES:${PN}-amlogic-vdec = "${nonarch_base_libdir}/firmware/meson/vdec/*"
+RDEPENDS:${PN}-amlogic-vdec = "${PN}-amlogic-vdec-license"
+
+# For other firmwares
+# Maybe split out to separate packages when needed.
+LICENSE:${PN} = "\
+    Firmware-Abilis \
+    & Firmware-agere \
+    & Firmware-amdgpu \
+    & Firmware-amd-ucode \
+    & Firmware-amlogic_vdec \
+    & Firmware-atmel \
+    & Firmware-ca0132 \
+    & Firmware-cavium \
+    & Firmware-chelsio_firmware \
+    & Firmware-cw1200 \
+    & Firmware-dib0700 \
+    & Firmware-e100 \
+    & Firmware-ene_firmware \
+    & Firmware-fw_sst_0f28 \
+    & Firmware-go7007 \
+    & Firmware-hfi1_firmware \
+    & Firmware-i2400m \
+    & Firmware-ibt_firmware \
+    & Firmware-it913x \
+    & Firmware-IntcSST2 \
+    & Firmware-kaweth \
+    & Firmware-moxa \
+    & Firmware-myri10ge_firmware \
+    & Firmware-nvidia \
+    & Firmware-OLPC \
+    & Firmware-ath9k-htc \
+    & Firmware-phanfw \
+    & Firmware-qat \
+    & Firmware-qcom \
+    & Firmware-qla1280 \
+    & Firmware-qla2xxx \
+    & Firmware-r8a779x_usb3 \
+    & Firmware-radeon \
+    & Firmware-ralink_a_mediatek_company_firmware \
+    & Firmware-ralink-firmware \
+    & Firmware-imx-sdma_firmware \
+    & Firmware-siano \
+    & Firmware-tda7706-firmware \
+    & Firmware-ti-connectivity \
+    & Firmware-ti-keystone \
+    & Firmware-ueagle-atm4-firmware \
+    & Firmware-wl1251 \
+    & Firmware-xc4000 \
+    & Firmware-xc5000 \
+    & Firmware-xc5000c \
+    & WHENCE \
+"
+
+FILES:${PN}-license += "${nonarch_base_libdir}/firmware/LICEN*"
+FILES:${PN} += "${nonarch_base_libdir}/firmware/*"
+RDEPENDS:${PN} += "${PN}-license"
+RDEPENDS:${PN} += "${PN}-whence-license"
+
+# Make linux-firmware depend on all of the split-out packages.
+# Make linux-firmware-iwlwifi depend on all of the split-out iwlwifi packages.
+# Make linux-firmware-ibt depend on all of the split-out ibt packages.
+python populate_packages:prepend () {
+    firmware_pkgs = oe.utils.packages_filter_out_system(d)
+    d.appendVar('RRECOMMENDS:linux-firmware', ' ' + ' '.join(firmware_pkgs))
+
+    iwlwifi_pkgs = filter(lambda x: x.find('-iwlwifi-') != -1, firmware_pkgs)
+    d.appendVar('RRECOMMENDS:linux-firmware-iwlwifi', ' ' + ' '.join(iwlwifi_pkgs))
+
+    ibt_pkgs = filter(lambda x: x.find('-ibt-') != -1, firmware_pkgs)
+    d.appendVar('RRECOMMENDS:linux-firmware-ibt', ' ' + ' '.join(ibt_pkgs))
+}
+
+# Firmware files are generally not ran on the CPU, so they can be
+# allarch despite being architecture specific
+INSANE_SKIP = "arch"
diff --git a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.14.bb b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.14.bb
deleted file mode 100644
index 282c04d..0000000
--- a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.14.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require linux-libc-headers.inc
-
-SRC_URI:append:libc-musl = "\
-    file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \
-    file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \
-    file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \
-    file://0001-include-linux-stddef.h-in-swab.h-uapi-header.patch \
-   "
-
-SRC_URI:append = "\
-    file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \
-    file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \
-"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-
-SRC_URI[md5sum] = "a082ef5748b813abca0649dab8be5f52"
-SRC_URI[sha256sum] = "7e068b5e0d26a62b10e5320b25dce57588cbbc6f781c090442138c9c9c3271b2"
-
-
diff --git a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.15.bb b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.15.bb
new file mode 100644
index 0000000..588cc3a
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.15.bb
@@ -0,0 +1,20 @@
+require linux-libc-headers.inc
+
+SRC_URI:append:libc-musl = "\
+    file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \
+    file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \
+    file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \
+    file://0001-include-linux-stddef.h-in-swab.h-uapi-header.patch \
+   "
+
+SRC_URI:append = "\
+    file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \
+    file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \
+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+
+SRC_URI[md5sum] = "071d49ff4e020d58c04f9f3f76d3b594"
+SRC_URI[sha256sum] = "57b2cf6991910e3b67a1b3490022e8a0674b6965c74c12da1e99d138d1991ee8"
+
+
diff --git a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
index d395739..4ceb35f 100644
--- a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
+++ b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
@@ -48,7 +48,7 @@
     mkdir -p ${D}/usr/src
     (
 	cd ${D}/usr/src
-	lnr ${D}${KERNEL_BUILD_ROOT}${KERNEL_VERSION}/source kernel
+	ln -rs ${D}${KERNEL_BUILD_ROOT}${KERNEL_VERSION}/source kernel
     )
 
     # for on target purposes, we unify build and source
@@ -109,8 +109,8 @@
 	    fi
 	fi
 
-	if [ "${ARCH}" = "arm64" ]; then
-	    cp -a --parents arch/arm64/kernel/vdso/vdso.lds $kerneldir/build/
+	if [ "${ARCH}" = "arm64" -o "${ARCH}" = "riscv" ]; then
+	    cp -a --parents arch/${ARCH}/kernel/vdso/vdso.lds $kerneldir/build/
 	fi
 	if [ "${ARCH}" = "powerpc" ]; then
 	    cp -a --parents arch/powerpc/kernel/vdso32/vdso32.lds $kerneldir/build 2>/dev/null || :
@@ -185,6 +185,12 @@
 	    cp -a --parents arch/${ARCH}/kernel/vdso32/* $kerneldir/build/ 2>/dev/null || :
 	    cp -a --parents arch/${ARCH}/kernel/vdso64/* $kerneldir/build/ 2>/dev/null || :
 	fi
+	if [ "${ARCH}" = "riscv" ]; then
+            cp -a --parents arch/riscv/kernel/vdso/*gettimeofday.* $kerneldir/build/
+            cp -a --parents arch/riscv/kernel/vdso/note.S $kerneldir/build/
+            cp -a --parents arch/riscv/kernel/vdso/gen_vdso_offsets.sh $kerneldir/build/
+	    cp -a --parents arch/riscv/kernel/vdso/* $kerneldir/build/ 2>/dev/null || :
+	fi
 
 	# include the machine specific headers for ARM variants, if available.
 	if [ "${ARCH}" = "arm" ]; then
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
index 005b688..0d94637 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -16,7 +16,7 @@
 # provide this .inc to set specific revisions
 include recipes-kernel/linux/linux-yocto-dev-revisions.inc
 
-KBRANCH = "standard/base"
+KBRANCH = "v5.16/standard/base"
 KMETA = "kernel-meta"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name=machine \
@@ -30,7 +30,7 @@
 SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
 SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
 
-LINUX_VERSION ?= "5.15+"
+LINUX_VERSION ?= "5.16+"
 LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}"
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
@@ -40,6 +40,16 @@
 DEPENDS += "openssl-native util-linux-native"
 DEPENDS += "gmp-native libmpc-native"
 
+# yaml and dtschema are required for 5.16+ device tree validation, libyaml is checked
+# via pkgconfig, so must always be present, but we can wrap the others to make them
+# conditional
+DEPENDS += "libyaml-native"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[dt-validation] = ",,python3-dtschema-native"
+# we need the wrappers if validation isn't in the packageconfig
+DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'dt-validation', '', 'python3-dtschema-wrapper-native', d)}"
+
 COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64)"
 
 KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
index 2795887..420d670 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
@@ -11,13 +11,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "1d0eb980c3f825c193b07e925090a1a3dd752dbc"
-SRCREV_meta ?= "9ff1e75562075e35b5c8649b0a1aece50d8531b7"
+SRCREV_machine ?= "85c14e209f1ab7cee673735c4561e656b4e65217"
+SRCREV_meta ?= "de35f8006d0f932924752ddda94dd24e2da67fbc"
 
 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.10;destsuffix=${KMETA}"
 
-LINUX_VERSION ?= "5.10.75"
+LINUX_VERSION ?= "5.10.91"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.14.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.14.bb
deleted file mode 100644
index e5dc3c3..0000000
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.14.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-KBRANCH ?= "v5.14/standard/preempt-rt/base"
-
-require recipes-kernel/linux/linux-yocto.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
-# core-image-rt-sdk, core-image-rt.
-python () {
-    if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt":
-        raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
-}
-
-SRCREV_machine ?= "725e45fd0b3b344905a44398b1d7ba64b76c6af2"
-SRCREV_meta ?= "11430e73de6cbc577b69ab4844250346146eb3cf"
-
-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.14;destsuffix=${KMETA}"
-
-LINUX_VERSION ?= "5.14.14"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-
-DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
-DEPENDS += "openssl-native util-linux-native"
-
-PV = "${LINUX_VERSION}+git${SRCPV}"
-
-KMETA = "kernel-meta"
-KCONF_BSP_AUDIT_LEVEL = "1"
-
-LINUX_KERNEL_TYPE = "preempt-rt"
-
-COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)"
-
-KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
-
-# Functionality flags
-KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
-KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
-KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
-KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
-KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
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
new file mode 100644
index 0000000..4713e45
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb
@@ -0,0 +1,45 @@
+KBRANCH ?= "v5.15/standard/preempt-rt/base"
+
+require recipes-kernel/linux/linux-yocto.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
+# core-image-rt-sdk, core-image-rt.
+python () {
+    if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt":
+        raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
+}
+
+SRCREV_machine ?= "799919ec2113ffcec02207ea67abdc629f3bbebe"
+SRCREV_meta ?= "72e4eafb6b3c999aefc56e1c1b9dfa0c94ae2fbb"
+
+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.14"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+
+DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
+DEPENDS += "openssl-native util-linux-native"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "1"
+
+LINUX_KERNEL_TYPE = "preempt-rt"
+
+COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)"
+
+KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
+
+# Functionality flags
+KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
+KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
+KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
+KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
+KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
index 94d0473..dabcb97 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
@@ -6,7 +6,7 @@
 
 require recipes-kernel/linux/linux-yocto.inc
 
-LINUX_VERSION ?= "5.10.75"
+LINUX_VERSION ?= "5.10.91"
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine:qemuarm ?= "773ad5db722c1cbac17a944ab2fd4f1d9d72c55d"
-SRCREV_machine ?= "b1ee56b4baf8a85fa02965b76dbc4ba7de898540"
-SRCREV_meta ?= "9ff1e75562075e35b5c8649b0a1aece50d8531b7"
+SRCREV_machine:qemuarm ?= "2227ab16358ca3193f03d0cd8509092076aeffbb"
+SRCREV_machine ?= "b3fdab7a9f3c11a61565cead0445883a61081583"
+SRCREV_meta ?= "de35f8006d0f932924752ddda94dd24e2da67fbc"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.14.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.14.bb
deleted file mode 100644
index 0da8ae5..0000000
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.14.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-KBRANCH ?= "v5.14/standard/tiny/base"
-KBRANCH:qemuarm  ?= "v5.14/standard/tiny/arm-versatile-926ejs"
-
-LINUX_KERNEL_TYPE = "tiny"
-KCONFIG_MODE = "--allnoconfig"
-
-require recipes-kernel/linux/linux-yocto.inc
-
-LINUX_VERSION ?= "5.14.14"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-
-DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
-DEPENDS += "openssl-native util-linux-native"
-
-KMETA = "kernel-meta"
-KCONF_BSP_AUDIT_LEVEL = "2"
-
-SRCREV_machine:qemuarm ?= "bdbb56b345a04855091cbf667c70d761f417ddff"
-SRCREV_machine ?= "28c011f5b095822798d2a8320f104abc0fc216cd"
-SRCREV_meta ?= "11430e73de6cbc577b69ab4844250346146eb3cf"
-
-PV = "${LINUX_VERSION}+git${SRCPV}"
-
-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.14;destsuffix=${KMETA}"
-
-COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5"
-
-# Functionality flags
-KERNEL_FEATURES = ""
-
-KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
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
new file mode 100644
index 0000000..b539752
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb
@@ -0,0 +1,32 @@
+KBRANCH ?= "v5.15/standard/tiny/base"
+KBRANCH:qemuarm  ?= "v5.15/standard/tiny/arm-versatile-926ejs"
+
+LINUX_KERNEL_TYPE = "tiny"
+KCONFIG_MODE = "--allnoconfig"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+LINUX_VERSION ?= "5.15.14"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+
+DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
+DEPENDS += "openssl-native util-linux-native"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "2"
+
+SRCREV_machine:qemuarm ?= "a499d1d7ad7cee5ddea8a737bfd0c44b109b63b6"
+SRCREV_machine ?= "f77b2ba7d575bca40670dd20fcafa4574d9e56f1"
+SRCREV_meta ?= "72e4eafb6b3c999aefc56e1c1b9dfa0c94ae2fbb"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+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}"
+
+COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5"
+
+# Functionality flags
+KERNEL_FEATURES = ""
+
+KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto.inc b/poky/meta/recipes-kernel/linux/linux-yocto.inc
index 331727d..a3b2416 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto.inc
+++ b/poky/meta/recipes-kernel/linux/linux-yocto.inc
@@ -46,6 +46,7 @@
 # Pick up shared functions
 inherit kernel
 inherit kernel-yocto
+inherit pkgconfig
 
 B = "${WORKDIR}/linux-${PACKAGE_ARCH}-${LINUX_KERNEL_TYPE}-build"
 
@@ -57,3 +58,15 @@
 
 # enable kernel-sample for oeqa/runtime/cases's ksample.py test
 KERNEL_FEATURES:append:qemuall=" features/kernel-sample/kernel-sample.scc"
+
+KERNEL_DEBUG_OPTIONS ?= "stack"
+KERNEL_EXTRA_ARGS:append:x86-64 = "${@bb.utils.contains('KERNEL_DEBUG_OPTIONS', 'stack', 'HOST_LIBELF_LIBS="-L${RECIPE_SYSROOT_NATIVE}/usr/lib/pkgconfig/../../../usr/lib/ -lelf"', '', d)}"
+
+do_devshell:prepend() {
+    # setup native pkg-config variables (kconfig scripts call pkg-config directly, cannot generically be overriden to pkg-config-native)
+    d.setVar("PKG_CONFIG_DIR", "${STAGING_DIR_NATIVE}${libdir_native}/pkgconfig")
+    d.setVar("PKG_CONFIG_PATH", "${PKG_CONFIG_DIR}:${STAGING_DATADIR_NATIVE}/pkgconfig")
+    d.setVar("PKG_CONFIG_LIBDIR", "${PKG_CONFIG_DIR}")
+    d.setVarFlag("PKG_CONFIG_SYSROOT_DIR", "unexport", "1")
+    d.appendVar("OE_TERMINAL_EXPORTS", " PKG_CONFIG_DIR PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR")
+}
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb
index e7f8cc1..9c43738 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb
@@ -13,17 +13,17 @@
 KBRANCH:qemux86-64 ?= "v5.10/standard/base"
 KBRANCH:qemumips64 ?= "v5.10/standard/mti-malta64"
 
-SRCREV_machine:qemuarm ?= "eaf94169288a0cdaa7f919e81b9cde11637328a0"
-SRCREV_machine:qemuarm64 ?= "0a2409ae4ca5c3efc6633891d807c189f8c2e6ec"
-SRCREV_machine:qemumips ?= "73ca3b526488435d4f2a404642078b3b111879af"
-SRCREV_machine:qemuppc ?= "14edaae440f2835071ffacced9f240cdd8cf7094"
-SRCREV_machine:qemuriscv64 ?= "97699547a2625645320510db2237e8619a7954ef"
-SRCREV_machine:qemuriscv32 ?= "97699547a2625645320510db2237e8619a7954ef"
-SRCREV_machine:qemux86 ?= "97699547a2625645320510db2237e8619a7954ef"
-SRCREV_machine:qemux86-64 ?= "97699547a2625645320510db2237e8619a7954ef"
-SRCREV_machine:qemumips64 ?= "9e86c3417c2c6a61a52664ebcfdd541f6af7e099"
-SRCREV_machine ?= "97699547a2625645320510db2237e8619a7954ef"
-SRCREV_meta ?= "9ff1e75562075e35b5c8649b0a1aece50d8531b7"
+SRCREV_machine:qemuarm ?= "fb570663823bd492e4c8d4339be825bda4210dc6"
+SRCREV_machine:qemuarm64 ?= "5a52b700c1693a95b8efa54cb65bec7807a75cd2"
+SRCREV_machine:qemumips ?= "8eb8a801f5f4764c362aefd5e97e704755cf740b"
+SRCREV_machine:qemuppc ?= "21b014e385a6b54a2fd7d667a1b556c69cda77de"
+SRCREV_machine:qemuriscv64 ?= "77c8d144b066f69e009ce2ee540a593b11eb736a"
+SRCREV_machine:qemuriscv32 ?= "77c8d144b066f69e009ce2ee540a593b11eb736a"
+SRCREV_machine:qemux86 ?= "77c8d144b066f69e009ce2ee540a593b11eb736a"
+SRCREV_machine:qemux86-64 ?= "77c8d144b066f69e009ce2ee540a593b11eb736a"
+SRCREV_machine:qemumips64 ?= "5468343e50389dba73b5d441289d5094bd0dc9f0"
+SRCREV_machine ?= "77c8d144b066f69e009ce2ee540a593b11eb736a"
+SRCREV_meta ?= "de35f8006d0f932924752ddda94dd24e2da67fbc"
 
 # remap qemuarm to qemuarma15 for the 5.8 kernel
 # KMACHINE:qemuarm ?= "qemuarma15"
@@ -32,11 +32,11 @@
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "5.10.75"
+LINUX_VERSION ?= "5.10.91"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
 DEPENDS += "openssl-native util-linux-native"
-DEPENDS += "gmp-native"
+DEPENDS += "gmp-native libmpc-native"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.14.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.14.bb
deleted file mode 100644
index ed20557..0000000
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.14.bb
+++ /dev/null
@@ -1,68 +0,0 @@
-KBRANCH ?= "v5.14/standard/base"
-
-require recipes-kernel/linux/linux-yocto.inc
-
-# board specific branches
-KBRANCH:qemuarm  ?= "v5.14/standard/arm-versatile-926ejs"
-KBRANCH:qemuarm64 ?= "v5.14/standard/qemuarm64"
-KBRANCH:qemumips ?= "v5.14/standard/mti-malta32"
-KBRANCH:qemuppc  ?= "v5.14/standard/qemuppc"
-KBRANCH:qemuriscv64  ?= "v5.14/standard/base"
-KBRANCH:qemuriscv32  ?= "v5.14/standard/base"
-KBRANCH:qemux86  ?= "v5.14/standard/base"
-KBRANCH:qemux86-64 ?= "v5.14/standard/base"
-KBRANCH:qemumips64 ?= "v5.14/standard/mti-malta64"
-
-SRCREV_machine:qemuarm ?= "3e04a89e8e89fe2f799cd201f6994ff515ca95c1"
-SRCREV_machine:qemuarm64 ?= "28c011f5b095822798d2a8320f104abc0fc216cd"
-SRCREV_machine:qemumips ?= "566b7915f715e00e4ebb2a4121239de4cb1f33b5"
-SRCREV_machine:qemuppc ?= "28c011f5b095822798d2a8320f104abc0fc216cd"
-SRCREV_machine:qemuriscv64 ?= "28c011f5b095822798d2a8320f104abc0fc216cd"
-SRCREV_machine:qemuriscv32 ?= "28c011f5b095822798d2a8320f104abc0fc216cd"
-SRCREV_machine:qemux86 ?= "28c011f5b095822798d2a8320f104abc0fc216cd"
-SRCREV_machine:qemux86-64 ?= "28c011f5b095822798d2a8320f104abc0fc216cd"
-SRCREV_machine:qemumips64 ?= "13d9e1b6481efec1e72733134e83b981e0adf6bb"
-SRCREV_machine ?= "28c011f5b095822798d2a8320f104abc0fc216cd"
-SRCREV_meta ?= "11430e73de6cbc577b69ab4844250346146eb3cf"
-
-# 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"
-DEFAULT_PREFERENCE:class-devupstream = "-1"
-SRCREV_machine:class-devupstream ?= "fe024e004fa31dc64d18440c006b02cd8d722a03"
-PN:class-devupstream = "linux-yocto-upstream"
-KBRANCH:class-devupstream = "v5.14/base"
-
-# remap qemuarm to qemuarma15 for the 5.8 kernel
-# KMACHINE:qemuarm ?= "qemuarma15"
-
-SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
-           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.14;destsuffix=${KMETA}"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "5.14.14"
-
-DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
-DEPENDS += "openssl-native util-linux-native"
-DEPENDS += "gmp-native libmpc-native"
-
-PV = "${LINUX_VERSION}+git${SRCPV}"
-
-KMETA = "kernel-meta"
-KCONF_BSP_AUDIT_LEVEL = "1"
-
-KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
-
-COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64|qemuriscv64|qemuriscv32"
-
-# Functionality flags
-KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
-KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
-KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
-KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
-KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
-KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb
new file mode 100644
index 0000000..daa83eb
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb
@@ -0,0 +1,68 @@
+KBRANCH ?= "v5.15/standard/base"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+# board specific branches
+KBRANCH:qemuarm  ?= "v5.15/standard/arm-versatile-926ejs"
+KBRANCH:qemuarm64 ?= "v5.15/standard/qemuarm64"
+KBRANCH:qemumips ?= "v5.15/standard/mti-malta32"
+KBRANCH:qemuppc  ?= "v5.15/standard/qemuppc"
+KBRANCH:qemuriscv64  ?= "v5.15/standard/base"
+KBRANCH:qemuriscv32  ?= "v5.15/standard/base"
+KBRANCH:qemux86  ?= "v5.15/standard/base"
+KBRANCH:qemux86-64 ?= "v5.15/standard/base"
+KBRANCH:qemumips64 ?= "v5.15/standard/mti-malta64"
+
+SRCREV_machine:qemuarm ?= "03294d897ba8374d172b5c035e8c5698f676a1d7"
+SRCREV_machine:qemuarm64 ?= "f77b2ba7d575bca40670dd20fcafa4574d9e56f1"
+SRCREV_machine:qemumips ?= "84d8700593a35c850938994e080422bd354245ce"
+SRCREV_machine:qemuppc ?= "f77b2ba7d575bca40670dd20fcafa4574d9e56f1"
+SRCREV_machine:qemuriscv64 ?= "f77b2ba7d575bca40670dd20fcafa4574d9e56f1"
+SRCREV_machine:qemuriscv32 ?= "f77b2ba7d575bca40670dd20fcafa4574d9e56f1"
+SRCREV_machine:qemux86 ?= "f77b2ba7d575bca40670dd20fcafa4574d9e56f1"
+SRCREV_machine:qemux86-64 ?= "f77b2ba7d575bca40670dd20fcafa4574d9e56f1"
+SRCREV_machine:qemumips64 ?= "4b8ef0714dd9fe90b5f92fab297926c482a58b88"
+SRCREV_machine ?= "f77b2ba7d575bca40670dd20fcafa4574d9e56f1"
+SRCREV_meta ?= "72e4eafb6b3c999aefc56e1c1b9dfa0c94ae2fbb"
+
+# 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"
+DEFAULT_PREFERENCE:class-devupstream = "-1"
+SRCREV_machine:class-devupstream ?= "d114b082bef784345bfac1e1d5c17257005284f2"
+PN:class-devupstream = "linux-yocto-upstream"
+KBRANCH:class-devupstream = "v5.15/base"
+
+# remap qemuarm to qemuarma15 for the 5.8 kernel
+# KMACHINE:qemuarm ?= "qemuarma15"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
+           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.14"
+
+DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
+DEPENDS += "openssl-native util-linux-native"
+DEPENDS += "gmp-native libmpc-native"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "1"
+
+KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
+
+COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64|qemuriscv64|qemuriscv32"
+
+# Functionality flags
+KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
+KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
+KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
+KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
+KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
+KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-cpu-hotplug-Remove-deprecated-CPU-hotplug-functi.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-cpu-hotplug-Remove-deprecated-CPU-hotplug-functi.patch
deleted file mode 100644
index 4e52e5f..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-cpu-hotplug-Remove-deprecated-CPU-hotplug-functi.patch
+++ /dev/null
@@ -1,394 +0,0 @@
-From 8be4c8a38ee1e297578e094a6e4c143ec5259aba Mon Sep 17 00:00:00 2001
-From: Michael Jeanson <mjeanson@efficios.com>
-Date: Mon, 13 Sep 2021 12:00:38 -0400
-Subject: [PATCH 1/2] fix: cpu/hotplug: Remove deprecated CPU-hotplug
- functions. (v5.15)
-
-The CPU-hotplug functions get|put_online_cpus() were deprecated in v4.13
-and removed in v5.15.
-
-See upstream commits :
-
-commit 8c854303ce0e38e5bbedd725ff39da7e235865d8
-Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-Date:   Tue Aug 3 16:16:21 2021 +0200
-
-    cpu/hotplug: Remove deprecated CPU-hotplug functions.
-
-    No users in tree use the deprecated CPU-hotplug functions anymore.
-
-    Remove them.
-
-Introduced in v4.13 :
-
-  commit 8f553c498e1772cccb39a114da4a498d22992758
-  Author: Thomas Gleixner <tglx@linutronix.de>
-  Date:   Wed May 24 10:15:12 2017 +0200
-
-    cpu/hotplug: Provide cpus_read|write_[un]lock()
-
-    The counting 'rwsem' hackery of get|put_online_cpus() is going to be
-    replaced by percpu rwsem.
-
-    Rename the functions to make it clear that it's locking and not some
-    refcount style interface. These new functions will be used for the
-    preparatory patches which make the code ready for the percpu rwsem
-    conversion.
-
-    Rename all instances in the cpu hotplug code while at it.
-
-Upstream-Status: backport [https://git.lttng.org/?p=lttng-modules.git;a=commit;h=ffcc873470121ef1ebb110df3d9038a38d9cb7cb]
-
-Change-Id: I5a37cf5afc075a402b7347989fac637dfa60a1ed
-Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
-Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
----
- include/wrapper/cpu.h                     | 44 +++++++++++++++++++++++
- src/lib/ringbuffer/ring_buffer_backend.c  |  8 ++---
- src/lib/ringbuffer/ring_buffer_frontend.c | 17 ++++-----
- src/lib/ringbuffer/ring_buffer_iterator.c | 15 ++++----
- src/lttng-context-perf-counters.c         | 11 +++---
- src/lttng-statedump-impl.c                |  6 ++--
- 6 files changed, 74 insertions(+), 27 deletions(-)
- create mode 100644 include/wrapper/cpu.h
-
-diff --git a/include/wrapper/cpu.h b/include/wrapper/cpu.h
-new file mode 100644
-index 00000000..cbee1962
---- /dev/null
-+++ b/include/wrapper/cpu.h
-@@ -0,0 +1,44 @@
-+/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
-+ *
-+ * wrapper/cpu.h
-+ *
-+ * Copyright (C) 2021 Michael Jeanson <mjeanson@efficios.com>
-+ */
-+
-+#ifndef _LTTNG_WRAPPER_CPU_H
-+#define _LTTNG_WRAPPER_CPU_H
-+
-+#include <linux/cpu.h>
-+#include <lttng/kernel-version.h>
-+
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
-+
-+static inline
-+void lttng_cpus_read_lock(void)
-+{
-+	cpus_read_lock();
-+}
-+
-+static inline
-+void lttng_cpus_read_unlock(void)
-+{
-+	cpus_read_unlock();
-+}
-+
-+#else /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0) */
-+
-+static inline
-+void lttng_cpus_read_lock(void)
-+{
-+	get_online_cpus();
-+}
-+
-+static inline
-+void lttng_cpus_read_unlock(void)
-+{
-+	put_online_cpus();
-+}
-+
-+#endif /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0) */
-+
-+#endif /* _LTTNG_WRAPPER_CPU_H */
-diff --git a/src/lib/ringbuffer/ring_buffer_backend.c b/src/lib/ringbuffer/ring_buffer_backend.c
-index 26efb2bc..9a339be0 100644
---- a/src/lib/ringbuffer/ring_buffer_backend.c
-+++ b/src/lib/ringbuffer/ring_buffer_backend.c
-@@ -12,10 +12,10 @@
- #include <linux/delay.h>
- #include <linux/errno.h>
- #include <linux/slab.h>
--#include <linux/cpu.h>
- #include <linux/mm.h>
- #include <linux/vmalloc.h>
- 
-+#include <wrapper/cpu.h>
- #include <wrapper/mm.h>
- #include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_mappings() */
- #include <ringbuffer/config.h>
-@@ -445,14 +445,14 @@ int channel_backend_init(struct channel_backend *chanb,
- 			chanb->cpu_hp_notifier.priority = 5;
- 			register_hotcpu_notifier(&chanb->cpu_hp_notifier);
- 
--			get_online_cpus();
-+			lttng_cpus_read_lock();
- 			for_each_online_cpu(i) {
- 				ret = lib_ring_buffer_create(per_cpu_ptr(chanb->buf, i),
- 							 chanb, i);
- 				if (ret)
- 					goto free_bufs;	/* cpu hotplug locked */
- 			}
--			put_online_cpus();
-+			lttng_cpus_read_unlock();
- #else
- 			for_each_possible_cpu(i) {
- 				ret = lib_ring_buffer_create(per_cpu_ptr(chanb->buf, i),
-@@ -485,7 +485,7 @@ free_bufs:
- 		 */
- #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
- #ifdef CONFIG_HOTPLUG_CPU
--		put_online_cpus();
-+		lttng_cpus_read_unlock();
- 		unregister_hotcpu_notifier(&chanb->cpu_hp_notifier);
- #endif
- #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
-diff --git a/src/lib/ringbuffer/ring_buffer_frontend.c b/src/lib/ringbuffer/ring_buffer_frontend.c
-index e9056118..87a575d0 100644
---- a/src/lib/ringbuffer/ring_buffer_frontend.c
-+++ b/src/lib/ringbuffer/ring_buffer_frontend.c
-@@ -48,6 +48,7 @@
- #include <ringbuffer/iterator.h>
- #include <ringbuffer/nohz.h>
- #include <wrapper/atomic.h>
-+#include <wrapper/cpu.h>
- #include <wrapper/kref.h>
- #include <wrapper/percpu-defs.h>
- #include <wrapper/timer.h>
-@@ -724,7 +725,7 @@ static void channel_unregister_notifiers(struct lttng_kernel_ring_buffer_channel
- 			int cpu;
- 
- #ifdef CONFIG_HOTPLUG_CPU
--			get_online_cpus();
-+			lttng_cpus_read_lock();
- 			chan->cpu_hp_enable = 0;
- 			for_each_online_cpu(cpu) {
- 				struct lttng_kernel_ring_buffer *buf = per_cpu_ptr(chan->backend.buf,
-@@ -732,7 +733,7 @@ static void channel_unregister_notifiers(struct lttng_kernel_ring_buffer_channel
- 				lib_ring_buffer_stop_switch_timer(buf);
- 				lib_ring_buffer_stop_read_timer(buf);
- 			}
--			put_online_cpus();
-+			lttng_cpus_read_unlock();
- 			unregister_cpu_notifier(&chan->cpu_hp_notifier);
- #else
- 			for_each_possible_cpu(cpu) {
-@@ -772,14 +773,14 @@ void lib_ring_buffer_set_quiescent_channel(struct lttng_kernel_ring_buffer_chann
- 	const struct lttng_kernel_ring_buffer_config *config = &chan->backend.config;
- 
- 	if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
--		get_online_cpus();
-+		lttng_cpus_read_lock();
- 		for_each_channel_cpu(cpu, chan) {
- 			struct lttng_kernel_ring_buffer *buf = per_cpu_ptr(chan->backend.buf,
- 							      cpu);
- 
- 			lib_ring_buffer_set_quiescent(buf);
- 		}
--		put_online_cpus();
-+		lttng_cpus_read_unlock();
- 	} else {
- 		struct lttng_kernel_ring_buffer *buf = chan->backend.buf;
- 
-@@ -794,14 +795,14 @@ void lib_ring_buffer_clear_quiescent_channel(struct lttng_kernel_ring_buffer_cha
- 	const struct lttng_kernel_ring_buffer_config *config = &chan->backend.config;
- 
- 	if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
--		get_online_cpus();
-+		lttng_cpus_read_lock();
- 		for_each_channel_cpu(cpu, chan) {
- 			struct lttng_kernel_ring_buffer *buf = per_cpu_ptr(chan->backend.buf,
- 							      cpu);
- 
- 			lib_ring_buffer_clear_quiescent(buf);
- 		}
--		put_online_cpus();
-+		lttng_cpus_read_unlock();
- 	} else {
- 		struct lttng_kernel_ring_buffer *buf = chan->backend.buf;
- 
-@@ -899,7 +900,7 @@ struct lttng_kernel_ring_buffer_channel *channel_create(const struct lttng_kerne
- 			chan->cpu_hp_notifier.priority = 6;
- 			register_cpu_notifier(&chan->cpu_hp_notifier);
- 
--			get_online_cpus();
-+			lttng_cpus_read_lock();
- 			for_each_online_cpu(cpu) {
- 				struct lttng_kernel_ring_buffer *buf = per_cpu_ptr(chan->backend.buf,
- 								       cpu);
-@@ -909,7 +910,7 @@ struct lttng_kernel_ring_buffer_channel *channel_create(const struct lttng_kerne
- 				spin_unlock(&per_cpu(ring_buffer_nohz_lock, cpu));
- 			}
- 			chan->cpu_hp_enable = 1;
--			put_online_cpus();
-+			lttng_cpus_read_unlock();
- #else
- 			for_each_possible_cpu(cpu) {
- 				struct lttng_kernel_ring_buffer *buf = per_cpu_ptr(chan->backend.buf,
-diff --git a/src/lib/ringbuffer/ring_buffer_iterator.c b/src/lib/ringbuffer/ring_buffer_iterator.c
-index 25839af6..60c95ca6 100644
---- a/src/lib/ringbuffer/ring_buffer_iterator.c
-+++ b/src/lib/ringbuffer/ring_buffer_iterator.c
-@@ -10,6 +10,7 @@
-  */
- 
- #include <ringbuffer/iterator.h>
-+#include <wrapper/cpu.h>
- #include <wrapper/file.h>
- #include <wrapper/uaccess.h>
- #include <linux/jiffies.h>
-@@ -440,13 +441,13 @@ int channel_iterator_init(struct lttng_kernel_ring_buffer_channel *chan)
- 			chan->hp_iter_notifier.priority = 10;
- 			register_cpu_notifier(&chan->hp_iter_notifier);
- 
--			get_online_cpus();
-+			lttng_cpus_read_lock();
- 			for_each_online_cpu(cpu) {
- 				buf = per_cpu_ptr(chan->backend.buf, cpu);
- 				lib_ring_buffer_iterator_init(chan, buf);
- 			}
- 			chan->hp_iter_enable = 1;
--			put_online_cpus();
-+			lttng_cpus_read_unlock();
- #else
- 			for_each_possible_cpu(cpu) {
- 				buf = per_cpu_ptr(chan->backend.buf, cpu);
-@@ -519,7 +520,7 @@ int channel_iterator_open(struct lttng_kernel_ring_buffer_channel *chan)
- 	CHAN_WARN_ON(chan, config->output != RING_BUFFER_ITERATOR);
- 
- 	if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
--		get_online_cpus();
-+		lttng_cpus_read_lock();
- 		/* Allow CPU hotplug to keep track of opened reader */
- 		chan->iter.read_open = 1;
- 		for_each_channel_cpu(cpu, chan) {
-@@ -529,7 +530,7 @@ int channel_iterator_open(struct lttng_kernel_ring_buffer_channel *chan)
- 				goto error;
- 			buf->iter.read_open = 1;
- 		}
--		put_online_cpus();
-+		lttng_cpus_read_unlock();
- 	} else {
- 		buf = channel_get_ring_buffer(config, chan, 0);
- 		ret = lib_ring_buffer_iterator_open(buf);
-@@ -538,7 +539,7 @@ int channel_iterator_open(struct lttng_kernel_ring_buffer_channel *chan)
- error:
- 	/* Error should always happen on CPU 0, hence no close is required. */
- 	CHAN_WARN_ON(chan, cpu != 0);
--	put_online_cpus();
-+	lttng_cpus_read_unlock();
- 	return ret;
- }
- EXPORT_SYMBOL_GPL(channel_iterator_open);
-@@ -550,7 +551,7 @@ void channel_iterator_release(struct lttng_kernel_ring_buffer_channel *chan)
- 	int cpu;
- 
- 	if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
--		get_online_cpus();
-+		lttng_cpus_read_lock();
- 		for_each_channel_cpu(cpu, chan) {
- 			buf = channel_get_ring_buffer(config, chan, cpu);
- 			if (buf->iter.read_open) {
-@@ -559,7 +560,7 @@ void channel_iterator_release(struct lttng_kernel_ring_buffer_channel *chan)
- 			}
- 		}
- 		chan->iter.read_open = 0;
--		put_online_cpus();
-+		lttng_cpus_read_unlock();
- 	} else {
- 		buf = channel_get_ring_buffer(config, chan, 0);
- 		lib_ring_buffer_iterator_release(buf);
-diff --git a/src/lttng-context-perf-counters.c b/src/lttng-context-perf-counters.c
-index b0227d47..372f05e0 100644
---- a/src/lttng-context-perf-counters.c
-+++ b/src/lttng-context-perf-counters.c
-@@ -16,6 +16,7 @@
- #include <lttng/events.h>
- #include <lttng/events-internal.h>
- #include <ringbuffer/frontend_types.h>
-+#include <wrapper/cpu.h>
- #include <wrapper/vmalloc.h>
- #include <wrapper/perf.h>
- #include <lttng/tracer.h>
-@@ -97,10 +98,10 @@ void lttng_destroy_perf_counter_ctx_field(void *priv)
- 	{
- 		int cpu;
- 
--		get_online_cpus();
-+		lttng_cpus_read_lock();
- 		for_each_online_cpu(cpu)
- 			perf_event_release_kernel(events[cpu]);
--		put_online_cpus();
-+		lttng_cpus_read_unlock();
- #ifdef CONFIG_HOTPLUG_CPU
- 		unregister_cpu_notifier(&perf_field->nb);
- #endif
-@@ -304,7 +305,7 @@ int lttng_add_perf_counter_to_ctx(uint32_t type,
- 		perf_field->nb.priority = 0;
- 		register_cpu_notifier(&perf_field->nb);
- #endif
--		get_online_cpus();
-+		lttng_cpus_read_lock();
- 		for_each_online_cpu(cpu) {
- 			events[cpu] = wrapper_perf_event_create_kernel_counter(attr,
- 						cpu, NULL, overflow_callback);
-@@ -317,7 +318,7 @@ int lttng_add_perf_counter_to_ctx(uint32_t type,
- 				goto counter_busy;
- 			}
- 		}
--		put_online_cpus();
-+		lttng_cpus_read_unlock();
- 		perf_field->hp_enable = 1;
- 	}
- #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
-@@ -351,7 +352,7 @@ counter_error:
- 			if (events[cpu] && !IS_ERR(events[cpu]))
- 				perf_event_release_kernel(events[cpu]);
- 		}
--		put_online_cpus();
-+		lttng_cpus_read_unlock();
- #ifdef CONFIG_HOTPLUG_CPU
- 		unregister_cpu_notifier(&perf_field->nb);
- #endif
-diff --git a/src/lttng-statedump-impl.c b/src/lttng-statedump-impl.c
-index 4dfbca0b..2b42783a 100644
---- a/src/lttng-statedump-impl.c
-+++ b/src/lttng-statedump-impl.c
-@@ -23,7 +23,6 @@
- #include <linux/file.h>
- #include <linux/interrupt.h>
- #include <linux/irqnr.h>
--#include <linux/cpu.h>
- #include <linux/netdevice.h>
- #include <linux/inetdevice.h>
- #include <linux/mm.h>
-@@ -34,6 +33,7 @@
- 
- #include <lttng/events.h>
- #include <lttng/tracer.h>
-+#include <wrapper/cpu.h>
- #include <wrapper/irqdesc.h>
- #include <wrapper/fdtable.h>
- #include <wrapper/namespace.h>
-@@ -770,7 +770,7 @@ int do_lttng_statedump(struct lttng_kernel_session *session)
- 	 * is to guarantee that each CPU has been in a state where is was in
- 	 * syscall mode (i.e. not in a trap, an IRQ or a soft IRQ).
- 	 */
--	get_online_cpus();
-+	lttng_cpus_read_lock();
- 	atomic_set(&kernel_threads_to_run, num_online_cpus());
- 	for_each_online_cpu(cpu) {
- 		INIT_DELAYED_WORK(&cpu_work[cpu], lttng_statedump_work_func);
-@@ -778,7 +778,7 @@ int do_lttng_statedump(struct lttng_kernel_session *session)
- 	}
- 	/* Wait for all threads to run */
- 	__wait_event(statedump_wq, (atomic_read(&kernel_threads_to_run) == 0));
--	put_online_cpus();
-+	lttng_cpus_read_unlock();
- 	/* Our work is done */
- 	trace_lttng_statedump_end(session);
- 	return 0;
--- 
-2.19.1
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Revert-Makefile-Enable-Wimplicit-fallthrough-for.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Revert-Makefile-Enable-Wimplicit-fallthrough-for.patch
deleted file mode 100644
index 5b5edc5..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Revert-Makefile-Enable-Wimplicit-fallthrough-for.patch
+++ /dev/null
@@ -1,829 +0,0 @@
-From c570be0da77e963d77bac099d468bc0cd5f1bd63 Mon Sep 17 00:00:00 2001
-From: Michael Jeanson <mjeanson@efficios.com>
-Date: Mon, 13 Sep 2021 14:16:22 -0400
-Subject: [PATCH 2/2] fix: Revert "Makefile: Enable -Wimplicit-fallthrough for
- Clang" (v5.15)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Starting with v5.15, "-Wimplicit-fallthrough=5" was added to the build
-flags which requires the use of "__attribute__((__fallthrough__))" to
-annotate fallthrough case statements.
-
-See upstream commit by the man himself:
-
-  commit d936eb23874433caa3e3d841cfa16f5434b85dcf
-  Author: Linus Torvalds <torvalds@linux-foundation.org>
-  Date:   Thu Jul 15 18:05:31 2021 -0700
-
-    Revert "Makefile: Enable -Wimplicit-fallthrough for Clang"
-
-    This reverts commit b7eb335e26a9c7f258c96b3962c283c379d3ede0.
-
-    It turns out that the problem with the clang -Wimplicit-fallthrough
-    warning is not about the kernel source code, but about clang itself, and
-    that the warning is unusable until clang fixes its broken ways.
-
-    In particular, when you enable this warning for clang, you not only get
-    warnings about implicit fallthroughs.  You also get this:
-
-       warning: fallthrough annotation in unreachable code [-Wimplicit-fallthrough]
-
-    which is completely broken becasue it
-
-     (a) doesn't even tell you where the problem is (seriously: no line
-         numbers, no filename, no nothing).
-
-     (b) is fundamentally broken anyway, because there are perfectly valid
-         reasons to have a fallthrough statement even if it turns out that
-         it can perhaps not be reached.
-
-    In the kernel, an example of that second case is code in the scheduler:
-
-                    switch (state) {
-                    case cpuset:
-                            if (IS_ENABLED(CONFIG_CPUSETS)) {
-                                    cpuset_cpus_allowed_fallback(p);
-                                    state = possible;
-                                    break;
-                            }
-                            fallthrough;
-                    case possible:
-
-    where if CONFIG_CPUSETS is enabled you actually never hit the
-    fallthrough case at all.  But that in no way makes the fallthrough
-    wrong.
-
-    So the warning is completely broken, and enabling it for clang is a very
-    bad idea.
-
-    In the meantime, we can keep the gcc option enabled, and make the gcc
-    build use
-
-        -Wimplicit-fallthrough=5
-
-    which means that we will at least continue to require a proper
-    fallthrough statement, and that gcc won't silently accept the magic
-    comment versions. Because gcc does this all correctly, and while the odd
-    "=5" part is kind of obscure, it's documented in [1]:
-
-      "-Wimplicit-fallthrough=5 doesn’t recognize any comments as
-       fallthrough comments, only attributes disable the warning"
-
-    so if clang ever fixes its bad behavior we can try enabling it there again.
-
-Upstream-Status: backport [https://git.lttng.org/?p=lttng-modules.git;a=commit;h=c190d76e8c7b44d62b3651ab845b765c1b1f8104]
-
-Change-Id: Iea69849592fb69ac04fb9bb28efcd6b8dce8ba88
-Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
-Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
----
- include/counter/counter-api.h         |   4 +-
- include/lttng/events-internal.h       |  11 ++-
- include/wrapper/compiler_attributes.h |  34 +++++++
- src/lib/counter/counter.c             |  13 ++-
- src/lttng-abi.c                       |  91 ++++++++++++------
- src/lttng-bytecode-interpreter.c      |   4 +-
- src/lttng-bytecode-specialize.c       |   5 +-
- src/lttng-events.c                    | 129 +++++++++++++++++---------
- src/lttng-string-utils.c              |   3 +-
- src/probes/lttng-kretprobes.c         |   7 +-
- 10 files changed, 215 insertions(+), 86 deletions(-)
- create mode 100644 include/wrapper/compiler_attributes.h
-
-diff --git a/include/counter/counter-api.h b/include/counter/counter-api.h
-index fbc65818..c9f2b141 100644
---- a/include/counter/counter-api.h
-+++ b/include/counter/counter-api.h
-@@ -15,6 +15,7 @@
- #include <linux/bitops.h>
- #include <counter/counter.h>
- #include <counter/counter-internal.h>
-+#include <wrapper/compiler_attributes.h>
- #include <wrapper/limits.h>
- 
- /*
-@@ -256,7 +257,8 @@ static __always_inline int lttng_counter_add(const struct lib_counter_config *co
- 				    const size_t *dimension_indexes, int64_t v)
- {
- 	switch (config->alloc) {
--	case COUNTER_ALLOC_PER_CPU:	/* Fallthrough */
-+	case COUNTER_ALLOC_PER_CPU:
-+		lttng_fallthrough;
- 	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:
- 		return __lttng_counter_add_percpu(config, counter, dimension_indexes, v);
- 	case COUNTER_ALLOC_GLOBAL:
-diff --git a/include/lttng/events-internal.h b/include/lttng/events-internal.h
-index cd560de8..ca2190c4 100644
---- a/include/lttng/events-internal.h
-+++ b/include/lttng/events-internal.h
-@@ -8,6 +8,8 @@
- #ifndef _LTTNG_EVENTS_INTERNAL_H
- #define _LTTNG_EVENTS_INTERNAL_H
- 
-+#include <wrapper/compiler_attributes.h>
-+
- #include <lttng/events.h>
- 
- struct lttng_syscall_filter;
-@@ -561,9 +563,12 @@ static inline bool lttng_kernel_type_is_bytewise_integer(const struct lttng_kern
- 	if (!type_integer)
- 		return false;
- 	switch (type_integer->size) {
--	case 8:		/* Fall-through. */
--	case 16:	/* Fall-through. */
--	case 32:	/* Fall-through. */
-+	case 8:
-+		lttng_fallthrough;
-+	case 16:
-+		lttng_fallthrough;
-+	case 32:
-+		lttng_fallthrough;
- 	case 64:
- 		break;
- 	default:
-diff --git a/include/wrapper/compiler_attributes.h b/include/wrapper/compiler_attributes.h
-new file mode 100644
-index 00000000..c2c96e76
---- /dev/null
-+++ b/include/wrapper/compiler_attributes.h
-@@ -0,0 +1,34 @@
-+/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
-+ *
-+ * wrapper/compiler_attributes.h
-+ *
-+ * Copyright (C) 2021 Michael Jeanson <mjeanson@efficios.com>
-+ */
-+
-+#ifndef _LTTNG_WRAPPER_COMPILER_ATTRIBUTES_H
-+#define _LTTNG_WRAPPER_COMPILER_ATTRIBUTES_H
-+
-+#include <lttng/kernel-version.h>
-+
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0))
-+#include <linux/compiler_attributes.h>
-+#endif
-+
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,4,0))
-+
-+/*
-+ * Use the kernel provided fallthrough attribute macro.
-+ */
-+#define lttng_fallthrough fallthrough
-+
-+#else /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,4,0) */
-+
-+/*
-+ * Fallback to the comment for kernels pre 5.15 that don't build with
-+ * '-Wimplicit-fallthrough=5'.
-+ */
-+#define lttng_fallthrough do {} while (0)  /* fallthrough */
-+
-+#endif /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,4,0) */
-+
-+#endif /* _LTTNG_WRAPPER_COMPILER_ATTRIBUTES_H */
-diff --git a/src/lib/counter/counter.c b/src/lib/counter/counter.c
-index a4500a0e..bf038aac 100644
---- a/src/lib/counter/counter.c
-+++ b/src/lib/counter/counter.c
-@@ -11,6 +11,7 @@
- #include <linux/cpumask.h>
- #include <counter/counter.h>
- #include <counter/counter-internal.h>
-+#include <wrapper/compiler_attributes.h>
- #include <wrapper/vmalloc.h>
- #include <wrapper/limits.h>
- 
-@@ -324,7 +325,8 @@ int lttng_counter_aggregate(const struct lib_counter_config *config,
- 	*underflow = false;
- 
- 	switch (config->alloc) {
--	case COUNTER_ALLOC_GLOBAL:	/* Fallthrough */
-+	case COUNTER_ALLOC_GLOBAL:
-+		lttng_fallthrough;
- 	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:
- 		/* Read global counter. */
- 		ret = lttng_counter_read(config, counter, dimension_indexes,
-@@ -342,7 +344,8 @@ int lttng_counter_aggregate(const struct lib_counter_config *config,
- 	switch (config->alloc) {
- 	case COUNTER_ALLOC_GLOBAL:
- 		break;
--	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:	/* Fallthrough */
-+	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:
-+		lttng_fallthrough;
- 	case COUNTER_ALLOC_PER_CPU:
- 		//TODO: integrate with CPU hotplug and online cpus
- 		for (cpu = 0; cpu < num_possible_cpus(); cpu++) {
-@@ -448,7 +451,8 @@ int lttng_counter_clear(const struct lib_counter_config *config,
- 	int cpu, ret;
- 
- 	switch (config->alloc) {
--	case COUNTER_ALLOC_GLOBAL:	/* Fallthrough */
-+	case COUNTER_ALLOC_GLOBAL:
-+		lttng_fallthrough;
- 	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:
- 		/* Clear global counter. */
- 		ret = lttng_counter_clear_cpu(config, counter, dimension_indexes, -1);
-@@ -462,7 +466,8 @@ int lttng_counter_clear(const struct lib_counter_config *config,
- 	switch (config->alloc) {
- 	case COUNTER_ALLOC_GLOBAL:
- 		break;
--	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:	/* Fallthrough */
-+	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:
-+		lttng_fallthrough;
- 	case COUNTER_ALLOC_PER_CPU:
- 		//TODO: integrate with CPU hotplug and online cpus
- 		for (cpu = 0; cpu < num_possible_cpus(); cpu++) {
-diff --git a/src/lttng-abi.c b/src/lttng-abi.c
-index cc453894..eac1afd1 100644
---- a/src/lttng-abi.c
-+++ b/src/lttng-abi.c
-@@ -34,6 +34,7 @@
- #include <ringbuffer/vfs.h>
- #include <ringbuffer/backend.h>
- #include <ringbuffer/frontend.h>
-+#include <wrapper/compiler_attributes.h>
- #include <wrapper/poll.h>
- #include <wrapper/file.h>
- #include <wrapper/kref.h>
-@@ -1332,7 +1333,8 @@ long lttng_metadata_ring_buffer_ioctl(struct file *filp,
- 		 */
- 		return -ENOSYS;
- 	}
--	case LTTNG_KERNEL_ABI_RING_BUFFER_FLUSH_EMPTY:	/* Fall-through. */
-+	case LTTNG_KERNEL_ABI_RING_BUFFER_FLUSH_EMPTY:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_RING_BUFFER_FLUSH:
- 	{
- 		struct lttng_metadata_stream *stream = filp->private_data;
-@@ -1441,7 +1443,8 @@ long lttng_metadata_ring_buffer_compat_ioctl(struct file *filp,
- 		 */
- 		return -ENOSYS;
- 	}
--	case LTTNG_KERNEL_ABI_RING_BUFFER_FLUSH_EMPTY:	/* Fall-through. */
-+	case LTTNG_KERNEL_ABI_RING_BUFFER_FLUSH_EMPTY:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_RING_BUFFER_FLUSH:
- 	{
- 		struct lttng_metadata_stream *stream = filp->private_data;
-@@ -1758,8 +1761,10 @@ int lttng_abi_validate_event_param(struct lttng_kernel_abi_event *event_param)
- 	switch (event_param->instrumentation) {
- 	case LTTNG_KERNEL_ABI_SYSCALL:
- 		switch (event_param->u.syscall.entryexit) {
--		case LTTNG_KERNEL_ABI_SYSCALL_ENTRY:	/* Fall-through */
--		case LTTNG_KERNEL_ABI_SYSCALL_EXIT:		/* Fall-through */
-+		case LTTNG_KERNEL_ABI_SYSCALL_ENTRY:
-+			lttng_fallthrough;
-+		case LTTNG_KERNEL_ABI_SYSCALL_EXIT:
-+			lttng_fallthrough;
- 		case LTTNG_KERNEL_ABI_SYSCALL_ENTRYEXIT:
- 			break;
- 		default:
-@@ -1783,20 +1788,26 @@ int lttng_abi_validate_event_param(struct lttng_kernel_abi_event *event_param)
- 		switch (event_param->u.kretprobe.entryexit) {
- 		case LTTNG_KERNEL_ABI_SYSCALL_ENTRYEXIT:
- 			break;
--		case LTTNG_KERNEL_ABI_SYSCALL_ENTRY:	/* Fall-through */
--		case LTTNG_KERNEL_ABI_SYSCALL_EXIT:		/* Fall-through */
-+		case LTTNG_KERNEL_ABI_SYSCALL_ENTRY:
-+			lttng_fallthrough;
-+		case LTTNG_KERNEL_ABI_SYSCALL_EXIT:
-+			lttng_fallthrough;
- 		default:
- 			return -EINVAL;
- 		}
- 		break;
- 
--	case LTTNG_KERNEL_ABI_TRACEPOINT:	/* Fall-through */
--	case LTTNG_KERNEL_ABI_KPROBE:	/* Fall-through */
-+	case LTTNG_KERNEL_ABI_TRACEPOINT:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_KPROBE:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_UPROBE:
- 		break;
- 
--	case LTTNG_KERNEL_ABI_FUNCTION:	/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		return -EINVAL;
- 	}
-@@ -1830,18 +1841,23 @@ int lttng_abi_create_event(struct file *channel_file,
- 	}
- 
- 	switch (event_param->instrumentation) {
--	case LTTNG_KERNEL_ABI_TRACEPOINT:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_TRACEPOINT:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_SYSCALL:
- 		fops = &lttng_event_recorder_enabler_fops;
- 		break;
--	case LTTNG_KERNEL_ABI_KPROBE:			/* Fall-through */
--	case LTTNG_KERNEL_ABI_KRETPROBE:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KPROBE:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_KRETPROBE:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_UPROBE:
- 		fops = &lttng_event_recorder_event_fops;
- 		break;
- 
--	case LTTNG_KERNEL_ABI_FUNCTION:			/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:			/* Fall-through */
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		return -EINVAL;
- 	}
-@@ -1867,7 +1883,8 @@ int lttng_abi_create_event(struct file *channel_file,
- 		goto event_error;
- 
- 	switch (event_param->instrumentation) {
--	case LTTNG_KERNEL_ABI_TRACEPOINT:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_TRACEPOINT:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_SYSCALL:
- 	{
- 		struct lttng_event_enabler *event_enabler;
-@@ -1887,8 +1904,10 @@ int lttng_abi_create_event(struct file *channel_file,
- 		break;
- 	}
- 
--	case LTTNG_KERNEL_ABI_KPROBE:			/* Fall-through */
--	case LTTNG_KERNEL_ABI_KRETPROBE:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KPROBE:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_KRETPROBE:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_UPROBE:
- 	{
- 		struct lttng_kernel_event_recorder *event;
-@@ -1908,8 +1927,10 @@ int lttng_abi_create_event(struct file *channel_file,
- 		break;
- 	}
- 
--	case LTTNG_KERNEL_ABI_FUNCTION:			/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:			/* Fall-through */
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		ret = -EINVAL;
- 		goto event_error;
-@@ -2043,18 +2064,23 @@ int lttng_abi_create_event_notifier(struct file *event_notifier_group_file,
- 	}
- 
- 	switch (event_notifier_param->event.instrumentation) {
--	case LTTNG_KERNEL_ABI_TRACEPOINT:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_TRACEPOINT:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_SYSCALL:
- 		fops = &lttng_event_notifier_enabler_fops;
- 		break;
--	case LTTNG_KERNEL_ABI_KPROBE:			/* Fall-through */
--	case LTTNG_KERNEL_ABI_KRETPROBE:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KPROBE:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_KRETPROBE:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_UPROBE:
- 		fops = &lttng_event_notifier_event_fops;
- 		break;
- 
--	case LTTNG_KERNEL_ABI_FUNCTION:			/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:			/* Fall-through */
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		ret = -EINVAL;
- 		goto inval_instr;
-@@ -2086,7 +2112,8 @@ int lttng_abi_create_event_notifier(struct file *event_notifier_group_file,
- 		goto event_notifier_error;
- 
- 	switch (event_notifier_param->event.instrumentation) {
--	case LTTNG_KERNEL_ABI_TRACEPOINT:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_TRACEPOINT:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_SYSCALL:
- 	{
- 		struct lttng_event_notifier_enabler *enabler;
-@@ -2110,8 +2137,10 @@ int lttng_abi_create_event_notifier(struct file *event_notifier_group_file,
- 		break;
- 	}
- 
--	case LTTNG_KERNEL_ABI_KPROBE:			/* Fall-through */
--	case LTTNG_KERNEL_ABI_KRETPROBE:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KPROBE:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_KRETPROBE:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_UPROBE:
- 	{
- 		struct lttng_kernel_event_notifier *event_notifier;
-@@ -2135,8 +2164,10 @@ int lttng_abi_create_event_notifier(struct file *event_notifier_group_file,
- 		break;
- 	}
- 
--	case LTTNG_KERNEL_ABI_FUNCTION:			/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:			/* Fall-through */
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		ret = -EINVAL;
- 		goto event_notifier_error;
-diff --git a/src/lttng-bytecode-interpreter.c b/src/lttng-bytecode-interpreter.c
-index b46a23b7..a2a932c6 100644
---- a/src/lttng-bytecode-interpreter.c
-+++ b/src/lttng-bytecode-interpreter.c
-@@ -7,6 +7,7 @@
-  * Copyright (C) 2010-2016 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
-  */
- 
-+#include <wrapper/compiler_attributes.h>
- #include <wrapper/uaccess.h>
- #include <wrapper/objtool.h>
- #include <wrapper/types.h>
-@@ -421,7 +422,8 @@ static int dynamic_get_index(struct lttng_kernel_probe_ctx *lttng_probe_ctx,
- 		}
- 		break;
- 	case LOAD_ROOT_CONTEXT:
--	case LOAD_ROOT_APP_CONTEXT:	/* Fall-through */
-+		lttng_fallthrough;
-+	case LOAD_ROOT_APP_CONTEXT:
- 	{
- 		ret = context_get_index(lttng_probe_ctx,
- 				&stack_top->u.ptr,
-diff --git a/src/lttng-bytecode-specialize.c b/src/lttng-bytecode-specialize.c
-index c4b9d04b..f8b5f19d 100644
---- a/src/lttng-bytecode-specialize.c
-+++ b/src/lttng-bytecode-specialize.c
-@@ -8,6 +8,8 @@
-  */
- 
- #include <linux/slab.h>
-+#include <wrapper/compiler_attributes.h>
-+
- #include <lttng/lttng-bytecode.h>
- #include <lttng/align.h>
- #include <lttng/events-internal.h>
-@@ -271,7 +273,8 @@ static int specialize_get_index(struct bytecode_runtime *runtime,
- 		}
- 		case OBJECT_TYPE_STRUCT:
- 			/* Only generated by the specialize phase. */
--		case OBJECT_TYPE_VARIANT:	/* Fall-through */
-+		case OBJECT_TYPE_VARIANT:
-+			lttng_fallthrough;
- 		default:
- 			printk(KERN_WARNING "LTTng: bytecode: Unexpected get index type %d",
- 				(int) stack_top->load.object_type);
-diff --git a/src/lttng-events.c b/src/lttng-events.c
-index e785fe4d..230e3934 100644
---- a/src/lttng-events.c
-+++ b/src/lttng-events.c
-@@ -28,6 +28,7 @@
- #include <linux/vmalloc.h>
- #include <linux/dmi.h>
- 
-+#include <wrapper/compiler_attributes.h>
- #include <wrapper/uuid.h>
- #include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_mappings() */
- #include <wrapper/random.h>
-@@ -659,12 +660,14 @@ int lttng_event_enable(struct lttng_kernel_event_common *event)
- 		goto end;
- 	}
- 	switch (event->priv->instrumentation) {
--	case LTTNG_KERNEL_ABI_TRACEPOINT:	/* Fall-through */
-+	case LTTNG_KERNEL_ABI_TRACEPOINT:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_SYSCALL:
- 		ret = -EINVAL;
- 		break;
- 
--	case LTTNG_KERNEL_ABI_KPROBE:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KPROBE:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_UPROBE:
- 		WRITE_ONCE(event->enabled, 1);
- 		break;
-@@ -673,8 +676,10 @@ int lttng_event_enable(struct lttng_kernel_event_common *event)
- 		ret = lttng_kretprobes_event_enable_state(event, 1);
- 		break;
- 
--	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		WARN_ON_ONCE(1);
- 		ret = -EINVAL;
-@@ -719,12 +724,14 @@ int lttng_event_disable(struct lttng_kernel_event_common *event)
- 		goto end;
- 	}
- 	switch (event->priv->instrumentation) {
--	case LTTNG_KERNEL_ABI_TRACEPOINT:	/* Fall-through */
-+	case LTTNG_KERNEL_ABI_TRACEPOINT:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_SYSCALL:
- 		ret = -EINVAL;
- 		break;
- 
--	case LTTNG_KERNEL_ABI_KPROBE:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KPROBE:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_UPROBE:
- 		WRITE_ONCE(event->enabled, 0);
- 		break;
-@@ -733,8 +740,10 @@ int lttng_event_disable(struct lttng_kernel_event_common *event)
- 		ret = lttng_kretprobes_event_enable_state(event, 0);
- 		break;
- 
--	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		WARN_ON_ONCE(1);
- 		ret = -EINVAL;
-@@ -873,15 +882,20 @@ struct lttng_kernel_event_recorder *_lttng_kernel_event_recorder_create(struct l
- 		event_name = event_desc->event_name;
- 		break;
- 
--	case LTTNG_KERNEL_ABI_KPROBE:		/* Fall-through */
--	case LTTNG_KERNEL_ABI_UPROBE:		/* Fall-through */
--	case LTTNG_KERNEL_ABI_KRETPROBE:	/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KPROBE:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_UPROBE:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_KRETPROBE:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_SYSCALL:
- 		event_name = event_param->name;
- 		break;
- 
--	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		WARN_ON_ONCE(1);
- 		ret = -EINVAL;
-@@ -1093,8 +1107,10 @@ struct lttng_kernel_event_recorder *_lttng_kernel_event_recorder_create(struct l
- 		WARN_ON_ONCE(!ret);
- 		break;
- 
--	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		WARN_ON_ONCE(1);
- 		ret = -EINVAL;
-@@ -1141,15 +1157,20 @@ struct lttng_kernel_event_notifier *_lttng_event_notifier_create(
- 		event_name = event_desc->event_name;
- 		break;
- 
--	case LTTNG_KERNEL_ABI_KPROBE:		/* Fall-through */
--	case LTTNG_KERNEL_ABI_UPROBE:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KPROBE:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_UPROBE:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_SYSCALL:
- 		event_name = event_notifier_param->event.name;
- 		break;
- 
--	case LTTNG_KERNEL_ABI_KRETPROBE:	/* Fall-through */
--	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KRETPROBE:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		WARN_ON_ONCE(1);
- 		ret = -EINVAL;
-@@ -1296,9 +1317,12 @@ struct lttng_kernel_event_notifier *_lttng_event_notifier_create(
- 		WARN_ON_ONCE(!ret);
- 		break;
- 
--	case LTTNG_KERNEL_ABI_KRETPROBE:	/* Fall-through */
--	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KRETPROBE:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		WARN_ON_ONCE(1);
- 		ret = -EINVAL;
-@@ -1423,14 +1447,18 @@ void register_event(struct lttng_kernel_event_recorder *event_recorder)
- 		ret = lttng_syscall_filter_enable_event(event_recorder->chan, event_recorder);
- 		break;
- 
--	case LTTNG_KERNEL_ABI_KPROBE:		/* Fall-through */
--	case LTTNG_KERNEL_ABI_UPROBE:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KPROBE:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_UPROBE:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_KRETPROBE:
- 		ret = 0;
- 		break;
- 
--	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		WARN_ON_ONCE(1);
- 	}
-@@ -1481,7 +1509,8 @@ int _lttng_event_unregister(struct lttng_kernel_event_recorder *event_recorder)
- 		ret = 0;
- 		break;
- 
--	case LTTNG_KERNEL_ABI_FUNCTION:	/* Fall-through */
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
- 	default:
- 		WARN_ON_ONCE(1);
- 	}
-@@ -1512,14 +1541,18 @@ void register_event_notifier(struct lttng_kernel_event_notifier *event_notifier)
- 		ret = lttng_syscall_filter_enable_event_notifier(event_notifier);
- 		break;
- 
--	case LTTNG_KERNEL_ABI_KPROBE:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KPROBE:
-+		lttng_fallthrough;
- 	case LTTNG_KERNEL_ABI_UPROBE:
- 		ret = 0;
- 		break;
- 
--	case LTTNG_KERNEL_ABI_KRETPROBE:	/* Fall-through */
--	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KRETPROBE:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		WARN_ON_ONCE(1);
- 	}
-@@ -1559,9 +1592,12 @@ int _lttng_event_notifier_unregister(
- 		ret = lttng_syscall_filter_disable_event_notifier(event_notifier);
- 		break;
- 
--	case LTTNG_KERNEL_ABI_KRETPROBE:	/* Fall-through */
--	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
--	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
-+	case LTTNG_KERNEL_ABI_KRETPROBE:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_FUNCTION:
-+		lttng_fallthrough;
-+	case LTTNG_KERNEL_ABI_NOOP:
-+		lttng_fallthrough;
- 	default:
- 		WARN_ON_ONCE(1);
- 	}
-@@ -1614,8 +1650,10 @@ void _lttng_event_destroy(struct lttng_kernel_event_common *event)
- 			lttng_uprobes_destroy_event_private(event_recorder);
- 			break;
- 
--		case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
--		case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
-+		case LTTNG_KERNEL_ABI_FUNCTION:
-+			lttng_fallthrough;
-+		case LTTNG_KERNEL_ABI_NOOP:
-+			lttng_fallthrough;
- 		default:
- 			WARN_ON_ONCE(1);
- 		}
-@@ -1647,9 +1685,12 @@ void _lttng_event_destroy(struct lttng_kernel_event_common *event)
- 			lttng_uprobes_destroy_event_notifier_private(event_notifier);
- 			break;
- 
--		case LTTNG_KERNEL_ABI_KRETPROBE:	/* Fall-through */
--		case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
--		case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
-+		case LTTNG_KERNEL_ABI_KRETPROBE:
-+			lttng_fallthrough;
-+		case LTTNG_KERNEL_ABI_FUNCTION:
-+			lttng_fallthrough;
-+		case LTTNG_KERNEL_ABI_NOOP:
-+			lttng_fallthrough;
- 		default:
- 			WARN_ON_ONCE(1);
- 		}
-@@ -2713,7 +2754,8 @@ void lttng_session_sync_event_enablers(struct lttng_kernel_session *session)
- 		int nr_filters = 0;
- 
- 		switch (event_recorder_priv->parent.instrumentation) {
--		case LTTNG_KERNEL_ABI_TRACEPOINT:	/* Fall-through */
-+		case LTTNG_KERNEL_ABI_TRACEPOINT:
-+			lttng_fallthrough;
- 		case LTTNG_KERNEL_ABI_SYSCALL:
- 			/* Enable events */
- 			list_for_each_entry(enabler_ref,
-@@ -2807,7 +2849,8 @@ void lttng_event_notifier_group_sync_enablers(struct lttng_event_notifier_group
- 		int nr_filters = 0, nr_captures = 0;
- 
- 		switch (event_notifier_priv->parent.instrumentation) {
--		case LTTNG_KERNEL_ABI_TRACEPOINT:	/* Fall-through */
-+		case LTTNG_KERNEL_ABI_TRACEPOINT:
-+			lttng_fallthrough;
- 		case LTTNG_KERNEL_ABI_SYSCALL:
- 			/* Enable event_notifiers */
- 			list_for_each_entry(enabler_ref,
-@@ -3877,7 +3920,7 @@ int print_escaped_ctf_string(struct lttng_kernel_session *session, const char *s
- 			if (ret)
- 				goto error;
- 			/* We still print the current char */
--			/* Fallthrough */
-+			lttng_fallthrough;
- 		default:
- 			ret = lttng_metadata_printf(session, "%c", cur);
- 			break;
-diff --git a/src/lttng-string-utils.c b/src/lttng-string-utils.c
-index d9447903..65946193 100644
---- a/src/lttng-string-utils.c
-+++ b/src/lttng-string-utils.c
-@@ -4,6 +4,7 @@
-  */
- 
- #include <linux/types.h>
-+#include <wrapper/compiler_attributes.h>
- 
- #include <lttng/string-utils.h>
- 
-@@ -302,7 +303,7 @@ retry:
- 			p = pattern_get_char_at_cb(p_at,
- 				pattern_get_char_at_cb_data);
- 
--			/* Fall-through. */
-+			lttng_fallthrough;
- 		default:
- 			/*
- 			 * Default case which will compare the escaped
-diff --git a/src/probes/lttng-kretprobes.c b/src/probes/lttng-kretprobes.c
-index 0fa6a1bf..1d0a5ecb 100644
---- a/src/probes/lttng-kretprobes.c
-+++ b/src/probes/lttng-kretprobes.c
-@@ -14,6 +14,7 @@
- #include <lttng/events.h>
- #include <lttng/events-internal.h>
- #include <ringbuffer/frontend_types.h>
-+#include <wrapper/compiler_attributes.h>
- #include <wrapper/vmalloc.h>
- #include <wrapper/irqflags.h>
- #include <lttng/tracer.h>
-@@ -61,7 +62,8 @@ int _lttng_kretprobes_handler(struct kretprobe_instance *krpi,
- 			return 0;
- 		break;
- 	}
--	case LTTNG_KERNEL_EVENT_TYPE_NOTIFIER:	/* Fall-through. */
-+	case LTTNG_KERNEL_EVENT_TYPE_NOTIFIER:
-+		lttng_fallthrough;
- 	default:
- 		WARN_ON_ONCE(1);
- 	}
-@@ -90,7 +92,8 @@ int _lttng_kretprobes_handler(struct kretprobe_instance *krpi,
- 		chan->ops->event_commit(&ctx);
- 		break;
- 	}
--	case LTTNG_KERNEL_EVENT_TYPE_NOTIFIER:	/* Fall-through. */
-+	case LTTNG_KERNEL_EVENT_TYPE_NOTIFIER:
-+		lttng_fallthrough;
- 	default:
- 		WARN_ON_ONCE(1);
- 	}
--- 
-2.19.1
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.0.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.0.bb
deleted file mode 100644
index 6dfde8d..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.0.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-SECTION = "devel"
-SUMMARY = "Linux Trace Toolkit KERNEL MODULE"
-DESCRIPTION = "The lttng-modules 2.0 package contains the kernel tracer modules"
-HOMEPAGE = "https://lttng.org/"
-LICENSE = "LGPLv2.1 & GPLv2 & MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0464cff101a009c403cd2ed65d01d4c4"
-
-inherit module
-
-include lttng-platforms.inc
-
-SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
-           file://0001-fix-cpu-hotplug-Remove-deprecated-CPU-hotplug-functi.patch \
-           file://0002-fix-Revert-Makefile-Enable-Wimplicit-fallthrough-for.patch \
-          "
-# Use :append here so that the patch is applied also when using devupstream
-SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch"
-
-SRC_URI[sha256sum] = "5ebf2b3cd128b3a1c8afaea1e98d5a6f7f0676fd524fcf72361c34d9dc603356"
-
-export INSTALL_MOD_DIR="kernel/lttng-modules"
-
-EXTRA_OEMAKE += "KERNELDIR='${STAGING_KERNEL_DIR}'"
-
-MODULES_MODULE_SYMVERS_LOCATION = "src"
-
-do_install:append() {
-	# Delete empty directories to avoid QA failures if no modules were built
-	if [ -d ${D}/${nonarch_base_libdir} ]; then
-		find ${D}/${nonarch_base_libdir} -depth -type d -empty -exec rmdir {} \;
-	fi
-}
-
-python do_package:prepend() {
-    if not os.path.exists(os.path.join(d.getVar('D'), d.getVar('nonarch_base_libdir')[1:], 'modules')):
-        bb.warn("%s: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel." % d.getVar('PN'))
-}
-
-BBCLASSEXTEND = "devupstream:target"
-LIC_FILES_CHKSUM:class-devupstream = "file://LICENSE;md5=0464cff101a009c403cd2ed65d01d4c4"
-DEFAULT_PREFERENCE:class-devupstream = "-1"
-SRC_URI:class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.13"
-
-SRCREV:class-devupstream = "c570be0da77e963d77bac099d468bc0cd5f1bd63"
-PV:class-devupstream = "2.13.0+git${SRCPV}"
-S:class-devupstream = "${WORKDIR}/git"
-SRCREV_FORMAT ?= "lttng_git"
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.1.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.1.bb
new file mode 100644
index 0000000..b05cad6
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.1.bb
@@ -0,0 +1,45 @@
+SECTION = "devel"
+SUMMARY = "Linux Trace Toolkit KERNEL MODULE"
+DESCRIPTION = "The lttng-modules 2.0 package contains the kernel tracer modules"
+HOMEPAGE = "https://lttng.org/"
+LICENSE = "LGPLv2.1 & GPLv2 & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0464cff101a009c403cd2ed65d01d4c4"
+
+inherit module
+
+include lttng-platforms.inc
+
+SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
+          "
+# Use :append here so that the patch is applied also when using devupstream
+SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch"
+
+SRC_URI[sha256sum] = "a7c86d91c9bbe66d27f025aa04b8cfc6d7785ed2fc7ef774930800ee44d7f343"
+
+export INSTALL_MOD_DIR="kernel/lttng-modules"
+
+EXTRA_OEMAKE += "KERNELDIR='${STAGING_KERNEL_DIR}'"
+
+MODULES_MODULE_SYMVERS_LOCATION = "src"
+
+do_install:append() {
+	# Delete empty directories to avoid QA failures if no modules were built
+	if [ -d ${D}/${nonarch_base_libdir} ]; then
+		find ${D}/${nonarch_base_libdir} -depth -type d -empty -exec rmdir {} \;
+	fi
+}
+
+python do_package:prepend() {
+    if not os.path.exists(os.path.join(d.getVar('D'), d.getVar('nonarch_base_libdir')[1:], 'modules')):
+        bb.warn("%s: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel." % d.getVar('PN'))
+}
+
+BBCLASSEXTEND = "devupstream:target"
+LIC_FILES_CHKSUM:class-devupstream = "file://LICENSE;md5=0464cff101a009c403cd2ed65d01d4c4"
+DEFAULT_PREFERENCE:class-devupstream = "-1"
+SRC_URI:class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.13"
+
+SRCREV:class-devupstream = "c570be0da77e963d77bac099d468bc0cd5f1bd63"
+PV:class-devupstream = "2.13.0+git${SRCPV}"
+S:class-devupstream = "${WORKDIR}/git"
+SRCREV_FORMAT ?= "lttng_git"
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/0001-src-common-correct-header-location.patch b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-src-common-correct-header-location.patch
deleted file mode 100644
index 925b51c..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-tools/0001-src-common-correct-header-location.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 790ef313364d1f1efb6f283705bb324eea2979ba Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Sun, 5 Sep 2021 10:13:08 +0200
-Subject: [PATCH] src/common: correct header location
-
-sys/unistd.h is not guaranteed to exist, and does not with
-e.g. musl C library.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- src/common/kernel-probe.c    | 2 +-
- src/common/userspace-probe.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/common/kernel-probe.c b/src/common/kernel-probe.c
-index 2beb53f..44100bc 100644
---- a/src/common/kernel-probe.c
-+++ b/src/common/kernel-probe.c
-@@ -20,7 +20,7 @@
- #include <lttng/kernel-probe.h>
- #include <sys/stat.h>
- #include <sys/types.h>
--#include <sys/unistd.h>
-+#include <unistd.h>
- 
- static
- int lttng_kernel_probe_location_address_serialize(
-diff --git a/src/common/userspace-probe.c b/src/common/userspace-probe.c
-index 67b0ee6..66afc6f 100644
---- a/src/common/userspace-probe.c
-+++ b/src/common/userspace-probe.c
-@@ -20,7 +20,7 @@
- #include <lttng/userspace-probe-internal.h>
- #include <sys/stat.h>
- #include <sys/types.h>
--#include <sys/unistd.h>
-+#include <unistd.h>
- 
- static
- int lttng_userspace_probe_location_function_set_binary_fd_handle(
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/disable-tests.patch b/poky/meta/recipes-kernel/lttng/lttng-tools/disable-tests.patch
new file mode 100644
index 0000000..3a77ea2
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools/disable-tests.patch
@@ -0,0 +1,34 @@
+Upstream-Status: Inappropriate [need to root cause the test hangs]
+
+We keep seeing hangs in the tools/notifications tests on x86 and arm for
+a variety of distros. Exclude them for now to work out if this is the
+only place we see them and give SWAT/triage a break from the stream
+of them.
+
+https://bugzilla.yoctoproject.org/show_bug.cgi?id=14263
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: lttng-tools-2.13.1/tests/regression/Makefile.am
+===================================================================
+--- lttng-tools-2.13.1.orig/tests/regression/Makefile.am
++++ lttng-tools-2.13.1/tests/regression/Makefile.am
+@@ -29,18 +29,6 @@ TESTS = tools/base-path/test_ust \
+ 	tools/crash/test_crash \
+ 	tools/regen-metadata/test_ust \
+ 	tools/regen-statedump/test_ust \
+-	tools/notification/test_notification_ust_error \
+-	tools/notification/test_notification_ust_buffer_usage \
+-	tools/notification/test_notification_ust_capture \
+-	tools/notification/test_notification_ust_event_rule_condition_exclusion \
+-	tools/notification/test_notification_kernel_error \
+-	tools/notification/test_notification_kernel_buffer_usage \
+-	tools/notification/test_notification_kernel_capture \
+-	tools/notification/test_notification_kernel_instrumentation \
+-	tools/notification/test_notification_kernel_syscall \
+-	tools/notification/test_notification_notifier_discarded_count \
+-	tools/notification/test_notification_kernel_userspace_probe \
+-	tools/notification/test_notification_multi_app \
+ 	tools/rotation/test_ust \
+ 	tools/rotation/test_kernel \
+ 	tools/rotation/test_save_load_mi \
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.1.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.1.bb
deleted file mode 100644
index 063d8e8..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.1.bb
+++ /dev/null
@@ -1,188 +0,0 @@
-SECTION = "devel"
-SUMMARY = "Linux Trace Toolkit Control"
-DESCRIPTION = "The Linux trace toolkit is a suite of tools designed \
-to extract program execution details from the Linux operating system \
-and interpret them."
-HOMEPAGE = "https://github.com/lttng/lttng-tools"
-
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=40ef17463fbd6f377db3c47b1cbaded8 \
-                    file://LICENSES/GPL-2.0;md5=e68f69a54b44ba526ad7cb963e18fbce \
-                    file://LICENSES/LGPL-2.1;md5=9920968d0f2ff585ce61fae30344dd95"
-
-include lttng-platforms.inc
-
-DEPENDS = "liburcu popt libxml2 util-linux bison-native"
-RDEPENDS:${PN} = "libgcc"
-RRECOMMENDS:${PN} += "${LTTNGMODULES}"
-RDEPENDS:${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod ${LTTNGMODULES} sed python3-core grep"
-RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils"
-RDEPENDS:${PN}-ptest:append:libc-musl = " musl-utils"
-# babelstats.pl wants getopt-long
-RDEPENDS:${PN}-ptest += "perl-module-getopt-long"
-
-PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \
-                 am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \
-                 PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \
-"
-PACKAGECONFIG ??= "${LTTNGUST} kmod"
-PACKAGECONFIG[python] = "--enable-python-bindings ${PYTHON_OPTION},,python3 swig-native"
-PACKAGECONFIG[lttng-ust] = "--with-lttng-ust, --without-lttng-ust, lttng-ust"
-PACKAGECONFIG[kmod] = "--with-kmod, --without-kmod, kmod"
-PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native"
-
-SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \
-           file://0001-tests-do-not-strip-a-helper-library.patch \
-           file://run-ptest \
-           file://lttng-sessiond.service \
-           file://determinism.patch \
-           file://0001-src-common-correct-header-location.patch \
-           "
-
-SRC_URI[sha256sum] = "cfe6df7da831fc07fd07ce46b442c2ec1074c167af73f3a1b1d2fba0c453c8b5"
-
-inherit autotools ptest pkgconfig useradd python3-dir manpages systemd
-
-CACHED_CONFIGUREVARS = "PGREP=/usr/bin/pgrep"
-
-SYSTEMD_SERVICE:${PN} = "lttng-sessiond.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM:${PN} = "tracing"
-
-FILES:${PN} += "${libdir}/lttng/libexec/* ${datadir}/xml/lttng \
-                ${PYTHON_SITEPACKAGES_DIR}/*"
-FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
-FILES:${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
-
-# Since files are installed into ${libdir}/lttng/libexec we match 
-# the libexec insane test so skip it.
-# Python module needs to keep _lttng.so
-INSANE_SKIP:${PN} = "libexec dev-so"
-INSANE_SKIP:${PN}-dbg = "libexec"
-
-PRIVATE_LIBS:${PN}-ptest = "libfoo.so"
-
-do_install:append () {
-    # install systemd unit file
-    install -d ${D}${systemd_system_unitdir}
-    install -m 0644 ${WORKDIR}/lttng-sessiond.service ${D}${systemd_system_unitdir}
-}
-
-do_install_ptest () {
-    for f in Makefile tests/Makefile tests/utils/utils.sh tests/regression/tools/save-load/*.lttng \
-            tests/regression/tools/save-load/configuration/load-42*.lttng tests/regression/tools/health/test_health.sh \
-            tests/regression/tools/metadata/utils.sh tests/regression/tools/rotation/rotate_utils.sh \
-            tests/regression/tools/notification/util_event_generator.sh \
-            tests/regression/tools/base-path/*.lttng; do
-        install -D "${B}/$f" "${D}${PTEST_PATH}/$f"
-    done
-
-    for f in tests/utils/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-4.1.xsd; do
-        install -D "${S}/$f" "${D}${PTEST_PATH}/$f"
-    done
-
-    # Patch in the correct path for the custom libraries a helper executable needs
-    sed -i -e 's!FIXMEPTESTPATH!${PTEST_PATH}!' "${D}${PTEST_PATH}/run-ptest"
-
-    # Prevent 'make check' from recursing into non-test subdirectories.
-    sed -i -e 's!^SUBDIRS = .*!SUBDIRS = tests!' "${D}${PTEST_PATH}/Makefile"
-
-    # We don't need these
-    sed -i -e '/dist_noinst_SCRIPTS = /,/^$/d' "${D}${PTEST_PATH}/tests/Makefile"
-
-    # We shouldn't need to build anything in tests/utils
-    sed -i -e 's!am__append_1 = . utils!am__append_1 = . !' \
-        "${D}${PTEST_PATH}/tests/Makefile"
-
-    # Copy the tests directory tree and the executables and
-    # Makefiles found within.
-    for d in $(find "${B}/tests" -type d -not -name .libs -printf '%P ') ; do
-        install -d "${D}${PTEST_PATH}/tests/$d"
-        find "${B}/tests/$d" -maxdepth 1 -executable -type f \
-            -exec install -t "${D}${PTEST_PATH}/tests/$d" {} +
-        # Take all .py scripts for tests using the python bindings.
-        find "${B}/tests/$d" -maxdepth 1 -type f -name "*.py" \
-            -exec install -t "${D}${PTEST_PATH}/tests/$d" {} +
-        test -r "${B}/tests/$d/Makefile" && \
-            install -t "${D}${PTEST_PATH}/tests/$d" "${B}/tests/$d/Makefile"
-    done
-
-    for d in $(find "${B}/tests" -type d -name .libs -printf '%P ') ; do
-        for f in $(find "${B}/tests/$d" -maxdepth 1 -executable -type f -printf '%P ') ; do
-            cp ${B}/tests/$d/$f ${D}${PTEST_PATH}/tests/`dirname $d`/$f
-            case $f in
-                *.so|userspace-probe-elf-binary)
-                    install -d ${D}${PTEST_PATH}/tests/$d/
-                    ln -s  ../$f ${D}${PTEST_PATH}/tests/$d/$f
-                    # Remove any rpath/runpath to pass QA check.
-                    chrpath --delete ${D}${PTEST_PATH}/tests/$d/$f
-                    ;;
-            esac
-        done
-    done
-
-    chrpath --delete ${D}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary
-    chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libbar.so
-    chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libfoo.so
-
-    #
-    # Use the versioned libs of liblttng-ust-dl.
-    #
-    ustdl="${D}${PTEST_PATH}/tests/regression/ust/ust-dl/test_ust-dl.py"
-    if [ -e $ustdl ]; then
-        sed -i -e 's!:liblttng-ust-dl.so!:liblttng-ust-dl.so.0!' $ustdl
-    fi
-
-    install ${B}/tests/unit/ini_config/sample.ini ${D}${PTEST_PATH}/tests/unit/ini_config/
-
-    # We shouldn't need to build anything in tests/regression/tools
-    sed -i -e 's!^SUBDIRS = tools !SUBDIRS = !' \
-        "${D}${PTEST_PATH}/tests/regression/Makefile"
-
-    # Prevent attempts to update Makefiles during test runs, and
-    # silence "Making check in $SUBDIR" messages.
-    find "${D}${PTEST_PATH}" -name Makefile -type f -exec \
-        sed -i -e '/Makefile:/,/^$/d' -e '/%: %.in/,/^$/d' \
-        -e '/echo "Making $$target in $$subdir"; \\/d' \
-        -e 's/^srcdir = \(.*\)/srcdir = ./' \
-        -e 's/^builddir = \(.*\)/builddir = ./' \
-        -e 's/^all-am:.*/all-am:/' \
-        {} +
-
-    find "${D}${PTEST_PATH}" -name Makefile -type f -exec \
-        touch -r "${B}/Makefile" {} +
-
-    #
-    # Need to stop generated binaries from rebuilding by removing their source dependencies
-    #
-    sed -e 's#\(^test.*OBJECTS.=\)#disable\1#g' \
-        -e 's#\(^test.*DEPENDENCIES.=\)#disable\1#g' \
-        -e 's#\(^test.*SOURCES.=\)#disable\1#g' \
-        -e 's#\(^test.*LDADD.=\)#disable\1#g' \
-        -i ${D}${PTEST_PATH}/tests/unit/Makefile
-
-    # Fix hardcoded build path
-    sed -e 's#TESTAPP_PATH=.*/tests/regression/#TESTAPP_PATH="${PTEST_PATH}/tests/regression/#' \
-        -i ${D}${PTEST_PATH}/tests/regression/ust/python-logging/test_python_logging
-
-    # Substitute links to installed binaries.
-    for prog in lttng lttng-relayd lttng-sessiond lttng-consumerd lttng-crash; do
-        exedir="${D}${PTEST_PATH}/src/bin/${prog}"
-        install -d "$exedir"
-        case "$prog" in
-            lttng-consumerd)
-                ln -s "${libdir}/lttng/libexec/$prog" "$exedir"
-                ;;
-            *)
-                ln -s "${bindir}/$prog" "$exedir"
-                ;;
-        esac
-    done
-}
-
-INHIBIT_PACKAGE_STRIP_FILES = "\
-    ${PKGD}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary \
-    ${PKGD}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/.libs/userspace-probe-elf-binary \
-    "
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.2.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.2.bb
new file mode 100644
index 0000000..d6ce2c7
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.2.bb
@@ -0,0 +1,188 @@
+SECTION = "devel"
+SUMMARY = "Linux Trace Toolkit Control"
+DESCRIPTION = "The Linux trace toolkit is a suite of tools designed \
+to extract program execution details from the Linux operating system \
+and interpret them."
+HOMEPAGE = "https://github.com/lttng/lttng-tools"
+
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=40ef17463fbd6f377db3c47b1cbaded8 \
+                    file://LICENSES/GPL-2.0;md5=e68f69a54b44ba526ad7cb963e18fbce \
+                    file://LICENSES/LGPL-2.1;md5=9920968d0f2ff585ce61fae30344dd95"
+
+include lttng-platforms.inc
+
+DEPENDS = "liburcu popt libxml2 util-linux bison-native"
+RDEPENDS:${PN} = "libgcc"
+RRECOMMENDS:${PN} += "${LTTNGMODULES}"
+RDEPENDS:${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod ${LTTNGMODULES} sed python3-core grep"
+RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils"
+RDEPENDS:${PN}-ptest:append:libc-musl = " musl-utils"
+# babelstats.pl wants getopt-long
+RDEPENDS:${PN}-ptest += "perl-module-getopt-long"
+
+PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \
+                 am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \
+                 PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \
+"
+PACKAGECONFIG ??= "${LTTNGUST} kmod"
+PACKAGECONFIG[python] = "--enable-python-bindings ${PYTHON_OPTION},,python3 swig-native"
+PACKAGECONFIG[lttng-ust] = "--with-lttng-ust, --without-lttng-ust, lttng-ust"
+PACKAGECONFIG[kmod] = "--with-kmod, --without-kmod, kmod"
+PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native"
+
+SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \
+           file://0001-tests-do-not-strip-a-helper-library.patch \
+           file://run-ptest \
+           file://lttng-sessiond.service \
+           file://determinism.patch \
+           file://disable-tests.patch \
+           "
+
+SRC_URI[sha256sum] = "ced2ba00020da77fd17ac92b5a53825502409a07e3aeca28f9515d4a844fd7bd"
+
+inherit autotools ptest pkgconfig useradd python3-dir manpages systemd
+
+CACHED_CONFIGUREVARS = "PGREP=/usr/bin/pgrep"
+
+SYSTEMD_SERVICE:${PN} = "lttng-sessiond.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "tracing"
+
+FILES:${PN} += "${libdir}/lttng/libexec/* ${datadir}/xml/lttng \
+                ${PYTHON_SITEPACKAGES_DIR}/*"
+FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
+FILES:${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
+
+# Since files are installed into ${libdir}/lttng/libexec we match 
+# the libexec insane test so skip it.
+# Python module needs to keep _lttng.so
+INSANE_SKIP:${PN} = "libexec dev-so"
+INSANE_SKIP:${PN}-dbg = "libexec"
+
+PRIVATE_LIBS:${PN}-ptest = "libfoo.so"
+
+do_install:append () {
+    # install systemd unit file
+    install -d ${D}${systemd_system_unitdir}
+    install -m 0644 ${WORKDIR}/lttng-sessiond.service ${D}${systemd_system_unitdir}
+}
+
+do_install_ptest () {
+    for f in Makefile tests/Makefile tests/utils/utils.sh tests/regression/tools/save-load/*.lttng \
+            tests/regression/tools/save-load/configuration/load-42*.lttng tests/regression/tools/health/test_health.sh \
+            tests/regression/tools/metadata/utils.sh tests/regression/tools/rotation/rotate_utils.sh \
+            tests/regression/tools/notification/util_event_generator.sh \
+            tests/regression/tools/base-path/*.lttng; do
+        install -D "${B}/$f" "${D}${PTEST_PATH}/$f"
+    done
+
+    for f in tests/utils/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-4.1.xsd; do
+        install -D "${S}/$f" "${D}${PTEST_PATH}/$f"
+    done
+
+    # Patch in the correct path for the custom libraries a helper executable needs
+    sed -i -e 's!FIXMEPTESTPATH!${PTEST_PATH}!' "${D}${PTEST_PATH}/run-ptest"
+
+    # Prevent 'make check' from recursing into non-test subdirectories.
+    sed -i -e 's!^SUBDIRS = .*!SUBDIRS = tests!' "${D}${PTEST_PATH}/Makefile"
+
+    # We don't need these
+    sed -i -e '/dist_noinst_SCRIPTS = /,/^$/d' "${D}${PTEST_PATH}/tests/Makefile"
+
+    # We shouldn't need to build anything in tests/utils
+    sed -i -e 's!am__append_1 = . utils!am__append_1 = . !' \
+        "${D}${PTEST_PATH}/tests/Makefile"
+
+    # Copy the tests directory tree and the executables and
+    # Makefiles found within.
+    for d in $(find "${B}/tests" -type d -not -name .libs -printf '%P ') ; do
+        install -d "${D}${PTEST_PATH}/tests/$d"
+        find "${B}/tests/$d" -maxdepth 1 -executable -type f \
+            -exec install -t "${D}${PTEST_PATH}/tests/$d" {} +
+        # Take all .py scripts for tests using the python bindings.
+        find "${B}/tests/$d" -maxdepth 1 -type f -name "*.py" \
+            -exec install -t "${D}${PTEST_PATH}/tests/$d" {} +
+        test -r "${B}/tests/$d/Makefile" && \
+            install -t "${D}${PTEST_PATH}/tests/$d" "${B}/tests/$d/Makefile"
+    done
+
+    for d in $(find "${B}/tests" -type d -name .libs -printf '%P ') ; do
+        for f in $(find "${B}/tests/$d" -maxdepth 1 -executable -type f -printf '%P ') ; do
+            cp ${B}/tests/$d/$f ${D}${PTEST_PATH}/tests/`dirname $d`/$f
+            case $f in
+                *.so|userspace-probe-elf-binary)
+                    install -d ${D}${PTEST_PATH}/tests/$d/
+                    ln -s  ../$f ${D}${PTEST_PATH}/tests/$d/$f
+                    # Remove any rpath/runpath to pass QA check.
+                    chrpath --delete ${D}${PTEST_PATH}/tests/$d/$f
+                    ;;
+            esac
+        done
+    done
+
+    chrpath --delete ${D}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary
+    chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libbar.so
+    chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libfoo.so
+
+    #
+    # Use the versioned libs of liblttng-ust-dl.
+    #
+    ustdl="${D}${PTEST_PATH}/tests/regression/ust/ust-dl/test_ust-dl.py"
+    if [ -e $ustdl ]; then
+        sed -i -e 's!:liblttng-ust-dl.so!:liblttng-ust-dl.so.0!' $ustdl
+    fi
+
+    install ${B}/tests/unit/ini_config/sample.ini ${D}${PTEST_PATH}/tests/unit/ini_config/
+
+    # We shouldn't need to build anything in tests/regression/tools
+    sed -i -e 's!^SUBDIRS = tools !SUBDIRS = !' \
+        "${D}${PTEST_PATH}/tests/regression/Makefile"
+
+    # Prevent attempts to update Makefiles during test runs, and
+    # silence "Making check in $SUBDIR" messages.
+    find "${D}${PTEST_PATH}" -name Makefile -type f -exec \
+        sed -i -e '/Makefile:/,/^$/d' -e '/%: %.in/,/^$/d' \
+        -e '/echo "Making $$target in $$subdir"; \\/d' \
+        -e 's/^srcdir = \(.*\)/srcdir = ./' \
+        -e 's/^builddir = \(.*\)/builddir = ./' \
+        -e 's/^all-am:.*/all-am:/' \
+        {} +
+
+    find "${D}${PTEST_PATH}" -name Makefile -type f -exec \
+        touch -r "${B}/Makefile" {} +
+
+    #
+    # Need to stop generated binaries from rebuilding by removing their source dependencies
+    #
+    sed -e 's#\(^test.*OBJECTS.=\)#disable\1#g' \
+        -e 's#\(^test.*DEPENDENCIES.=\)#disable\1#g' \
+        -e 's#\(^test.*SOURCES.=\)#disable\1#g' \
+        -e 's#\(^test.*LDADD.=\)#disable\1#g' \
+        -i ${D}${PTEST_PATH}/tests/unit/Makefile
+
+    # Fix hardcoded build path
+    sed -e 's#TESTAPP_PATH=.*/tests/regression/#TESTAPP_PATH="${PTEST_PATH}/tests/regression/#' \
+        -i ${D}${PTEST_PATH}/tests/regression/ust/python-logging/test_python_logging
+
+    # Substitute links to installed binaries.
+    for prog in lttng lttng-relayd lttng-sessiond lttng-consumerd lttng-crash; do
+        exedir="${D}${PTEST_PATH}/src/bin/${prog}"
+        install -d "$exedir"
+        case "$prog" in
+            lttng-consumerd)
+                ln -s "${libdir}/lttng/libexec/$prog" "$exedir"
+                ;;
+            *)
+                ln -s "${bindir}/$prog" "$exedir"
+                ;;
+        esac
+    done
+}
+
+INHIBIT_PACKAGE_STRIP_FILES = "\
+    ${PKGD}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary \
+    ${PKGD}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/.libs/userspace-probe-elf-binary \
+    "
diff --git a/poky/meta/recipes-kernel/lttng/lttng-ust/0001-lttng-ust-common-link-with-liburcu-explicitly.patch b/poky/meta/recipes-kernel/lttng/lttng-ust/0001-lttng-ust-common-link-with-liburcu-explicitly.patch
index 2d61dfa..d3c451f 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-ust/0001-lttng-ust-common-link-with-liburcu-explicitly.patch
+++ b/poky/meta/recipes-kernel/lttng/lttng-ust/0001-lttng-ust-common-link-with-liburcu-explicitly.patch
@@ -5,7 +5,7 @@
 
 Otherwise linking errors are seen on x86-32.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [by email to lttng-dev, Francis, Jonathan]
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
 ---
  src/lib/lttng-ust-common/Makefile.am | 1 +
diff --git a/poky/meta/recipes-kernel/lttng/lttng-ust_2.13.0.bb b/poky/meta/recipes-kernel/lttng/lttng-ust_2.13.0.bb
deleted file mode 100644
index 7c6a074..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-ust_2.13.0.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Linux Trace Toolkit Userspace Tracer 2.x"
-DESCRIPTION = "The LTTng UST 2.x package contains the userspace tracer library to trace userspace codes."
-HOMEPAGE = "http://lttng.org/ust"
-BUGTRACKER = "https://bugs.lttng.org/projects/lttng-ust"
-
-LICENSE = "LGPLv2.1+ & MIT & GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a46577a38ad0c36ff6ff43ccf40c480f"
-
-PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \
-                 am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \
-                 PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \
-"
-
-inherit autotools lib_package manpages python3native pkgconfig
-
-include lttng-platforms.inc
-
-EXTRA_OECONF = "--disable-numa"
-CPPFLAGS:append:arm = "${@oe.utils.vartrue('DEBUG_BUILD', '-DUATOMIC_NO_LINK_ERROR', '', d)}"
-
-DEPENDS = "liburcu util-linux"
-RDEPENDS:${PN}-bin = "python3-core"
-
-# For backwards compatibility after rename
-RPROVIDES:${PN} = "lttng2-ust"
-RREPLACES:${PN} = "lttng2-ust"
-RCONFLICTS:${PN} = "lttng2-ust"
-
-PE = "2"
-
-SRC_URI = "https://lttng.org/files/lttng-ust/lttng-ust-${PV}.tar.bz2 \
-           file://0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch \
-           file://0001-lttng-ust-common-link-with-liburcu-explicitly.patch \
-           file://0001-Makefile.am-update-rpath-link.patch \
-           "
-
-SRC_URI[sha256sum] = "54e4c933679cf6a07971dc5861ce57fc4876ab740ab612407b30b5fc85371750"
-
-CVE_PRODUCT = "ust"
-
-PACKAGECONFIG[examples] = "--enable-examples, --disable-examples,"
-PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native"
-PACKAGECONFIG[python3-agent] = "--enable-python-agent ${PYTHON_OPTION}, --disable-python-agent, python3, python3"
-
-FILES:${PN} += " ${PYTHON_SITEPACKAGES_DIR}/*"
-FILES:${PN}-staticdev += " ${PYTHON_SITEPACKAGES_DIR}/*.a"
-FILES:${PN}-dev += " ${PYTHON_SITEPACKAGES_DIR}/*.la"
-
-do_install:append() {
-        # Patch python tools to use Python 3; they should be source compatible, but
-        # still refer to Python 2 in the shebang
-        sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${bindir}/lttng-gen-tp
-}
diff --git a/poky/meta/recipes-kernel/lttng/lttng-ust_2.13.1.bb b/poky/meta/recipes-kernel/lttng/lttng-ust_2.13.1.bb
new file mode 100644
index 0000000..82e544a
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-ust_2.13.1.bb
@@ -0,0 +1,53 @@
+SUMMARY = "Linux Trace Toolkit Userspace Tracer 2.x"
+DESCRIPTION = "The LTTng UST 2.x package contains the userspace tracer library to trace userspace codes."
+HOMEPAGE = "http://lttng.org/ust"
+BUGTRACKER = "https://bugs.lttng.org/projects/lttng-ust"
+
+LICENSE = "LGPLv2.1+ & MIT & GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a46577a38ad0c36ff6ff43ccf40c480f"
+
+PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \
+                 am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \
+                 PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \
+"
+
+inherit autotools lib_package manpages python3native pkgconfig
+
+include lttng-platforms.inc
+
+EXTRA_OECONF = "--disable-numa"
+CPPFLAGS:append:arm = "${@oe.utils.vartrue('DEBUG_BUILD', '-DUATOMIC_NO_LINK_ERROR', '', d)}"
+
+DEPENDS = "liburcu util-linux"
+RDEPENDS:${PN}-bin = "python3-core"
+
+# For backwards compatibility after rename
+RPROVIDES:${PN} = "lttng2-ust"
+RREPLACES:${PN} = "lttng2-ust"
+RCONFLICTS:${PN} = "lttng2-ust"
+
+PE = "2"
+
+SRC_URI = "https://lttng.org/files/lttng-ust/lttng-ust-${PV}.tar.bz2 \
+           file://0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch \
+           file://0001-lttng-ust-common-link-with-liburcu-explicitly.patch \
+           file://0001-Makefile.am-update-rpath-link.patch \
+           "
+
+SRC_URI[sha256sum] = "5667bf0269e1e62e2d9cb974c456ff86e0401bd7aa3bfc8d5fdb97233249eddc"
+
+CVE_PRODUCT = "ust"
+
+PACKAGECONFIG[examples] = "--enable-examples, --disable-examples,"
+PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native"
+PACKAGECONFIG[python3-agent] = "--enable-python-agent ${PYTHON_OPTION}, --disable-python-agent, python3, python3"
+
+FILES:${PN} += " ${PYTHON_SITEPACKAGES_DIR}/*"
+FILES:${PN}-staticdev += " ${PYTHON_SITEPACKAGES_DIR}/*.a"
+FILES:${PN}-dev += " ${PYTHON_SITEPACKAGES_DIR}/*.la"
+
+do_install:append() {
+        # Patch python tools to use Python 3; they should be source compatible, but
+        # still refer to Python 2 in the shebang
+        sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${bindir}/lttng-gen-tp
+}
diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb
index f473272..ec0c6ef 100644
--- a/poky/meta/recipes-kernel/perf/perf.bb
+++ b/poky/meta/recipes-kernel/perf/perf.bb
@@ -31,7 +31,6 @@
 
 # libunwind is not yet ported for some architectures
 PACKAGECONFIG:remove:arc = "libunwind"
-PACKAGECONFIG:remove:riscv64 = "libunwind"
 PACKAGECONFIG:remove:riscv32 = "libunwind"
 
 DEPENDS = " \
@@ -126,9 +125,11 @@
 
 PERF_EXTRA_LDFLAGS = ""
 
-# MIPS N32
+# MIPS N32/N64
 PERF_EXTRA_LDFLAGS:mipsarchn32eb = "-m elf32btsmipn32"
 PERF_EXTRA_LDFLAGS:mipsarchn32el = "-m elf32ltsmipn32"
+PERF_EXTRA_LDFLAGS:mipsarchn64eb = "-m elf64btsmip"
+PERF_EXTRA_LDFLAGS:mipsarchn64el = "-m elf64ltsmip"
 
 do_compile() {
 	# Linux kernel build system is expected to do the right thing
diff --git a/poky/meta/recipes-kernel/perf/perf/sort-pmuevents.py b/poky/meta/recipes-kernel/perf/perf/sort-pmuevents.py
index 5ddf0f1..09ba332 100755
--- a/poky/meta/recipes-kernel/perf/perf/sort-pmuevents.py
+++ b/poky/meta/recipes-kernel/perf/perf/sort-pmuevents.py
@@ -33,10 +33,10 @@
 with open(infile, 'r') as file:
     data = file.read()
 
-preamble_regex = re.compile( '^(.*?)^struct', re.MULTILINE | re.DOTALL )
+preamble_regex = re.compile( '^(.*?)^(struct|const struct|static struct|static const struct)', re.MULTILINE | re.DOTALL )
 
 preamble = re.search( preamble_regex, data )
-struct_block_regex = re.compile( '^struct.*?(\w+) (.*?)\[\] = {(.*?)^};', re.MULTILINE | re.DOTALL )
+struct_block_regex = re.compile( '^(struct|const struct|static struct|static const struct).*?(\w+) (.*?)\[\] = {(.*?)^};', re.MULTILINE | re.DOTALL )
 field_regex =  re.compile( '{.*?},', re.MULTILINE | re.DOTALL )
 cpuid_regex = re.compile( '\.cpuid = (.*?),', re.MULTILINE | re.DOTALL )
 name_regex = re.compile( '\.name = (.*?),', re.MULTILINE | re.DOTALL )
@@ -45,22 +45,25 @@
 # types and then their fields.
 entry_dict = {}
 for struct in re.findall( struct_block_regex, data ):
-    # print( "struct: %s %s" % (struct[0],struct[1]) )
-    entry_dict[struct[1]] = {}
-    entry_dict[struct[1]]['type'] = struct[0]
-    entry_dict[struct[1]]['fields'] = {}
-    for entry in re.findall( field_regex, struct[2] ):
+    # print( "struct: %s %s %s" % (struct[0],struct[1],struct[2]) )
+    entry_dict[struct[2]] = {}
+    entry_dict[struct[2]]['type_prefix'] = struct[0]
+    entry_dict[struct[2]]['type'] = struct[1]
+    entry_dict[struct[2]]['fields'] = {}
+    for entry in re.findall( field_regex, struct[3] ):
         #print( "    entry: %s" % entry )
         cpuid = re.search( cpuid_regex, entry )
         if cpuid:
             #print( "    cpuid found: %s" % cpuid.group(1) )
-            entry_dict[struct[1]]['fields'][cpuid.group(1)] = entry
-            
+            entry_dict[struct[2]]['fields'][cpuid.group(1)] = entry
+
         name = re.search( name_regex, entry )
         if name:
             #print( "    name found: %s" % name.group(1) )
-            entry_dict[struct[1]]['fields'][name.group(1)] = entry
-        
+            entry_dict[struct[2]]['fields'][name.group(1)] = entry
+
+        if not entry_dict[struct[2]]['fields']:
+            entry_dict[struct[2]]['fields']['0'] = entry
 
 # created ordered dictionaries from the captured values. These are ordered by
 # a sorted() iteration of the keys. We don't care about the order we read
@@ -72,6 +75,7 @@
 entry_dict_sorted = OrderedDict()
 for i in sorted(entry_dict.keys()):
     entry_dict_sorted[i] = {}
+    entry_dict_sorted[i]['type_prefix'] = entry_dict[i]['type_prefix']
     entry_dict_sorted[i]['type'] = entry_dict[i]['type']
     entry_dict_sorted[i]['fields'] = {}
     for f in sorted(entry_dict[i]['fields'].keys()):
@@ -83,7 +87,7 @@
 print( preamble.group(1) )
 outf.write( preamble.group(1) )
 for d in entry_dict_sorted:
-    outf.write( "struct %s %s[] = {\n" % (entry_dict_sorted[d]['type'],d) )
+    outf.write( "%s %s %s[] = {\n" % (entry_dict_sorted[d]['type_prefix'], entry_dict_sorted[d]['type'],d) )
     for f in entry_dict_sorted[d]['fields']:
         outf.write( entry_dict_sorted[d]['fields'][f] + '\n' )
 
diff --git a/poky/meta/recipes-kernel/powertop/powertop_2.14.bb b/poky/meta/recipes-kernel/powertop/powertop_2.14.bb
index 3a7c3ba..b46e5e8 100644
--- a/poky/meta/recipes-kernel/powertop/powertop_2.14.bb
+++ b/poky/meta/recipes-kernel/powertop/powertop_2.14.bb
@@ -6,7 +6,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
 
-SRC_URI = "git://github.com/fenrus75/powertop;protocol=https \
+SRC_URI = "git://github.com/fenrus75/powertop;protocol=https;branch=master \
            file://0001-wakeup_xxx.h-include-limits.h.patch \
            file://0001-src-fix-compatibility-with-ncurses-6.3.patch \
            "
diff --git a/poky/meta/recipes-kernel/systemtap/systemtap/0001-PR28778-gcc-warning-tweak-for-sprintf-precision-para.patch b/poky/meta/recipes-kernel/systemtap/systemtap/0001-PR28778-gcc-warning-tweak-for-sprintf-precision-para.patch
new file mode 100644
index 0000000..0801cb5
--- /dev/null
+++ b/poky/meta/recipes-kernel/systemtap/systemtap/0001-PR28778-gcc-warning-tweak-for-sprintf-precision-para.patch
@@ -0,0 +1,45 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From b0422e9e5a539164af75cddcaeb01bceca56bf12 Mon Sep 17 00:00:00 2001
+From: "Frank Ch. Eigler" <fche@redhat.com>
+Date: Thu, 13 Jan 2022 18:33:15 -0500
+Subject: [PATCH] PR28778: gcc warning tweak for sprintf precision parameter
+
+A precision=-1 sentinel value got interpreted as UINT_MAX in a
+context, leading to diagnostics like:
+
+/usr/share/systemtap/runtime/vsprintf.c:341:23: error: 'strnlen' specified bound 4294967295 may exceed maximum object size 2147483647 [-Werror=stringop-overread]
+
+Adding a clamp_t() around the parameter field to keep it limited to
+STP_BUFFER_SIZE (8K by default), which is apprx. the limit for a
+single printf.
+---
+ runtime/vsprintf.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/runtime/vsprintf.c b/runtime/vsprintf.c
+index cd31a938b..606f685e8 100644
+--- a/runtime/vsprintf.c
++++ b/runtime/vsprintf.c
+@@ -338,7 +338,7 @@ _stp_vsprint_memory(char * str, char * end, const char * ptr,
+ 	if (format == 's') {
+ 		if ((unsigned long)ptr < PAGE_SIZE)
+ 			ptr = "<NULL>";
+-		len = strnlen(ptr, precision);
++		len = strnlen(ptr, clamp_t(size_t, precision, 0, STP_BUFFER_SIZE));                
+ 	}
+ 	else if (precision > 0)
+ 		len = precision;
+@@ -410,7 +410,7 @@ _stp_vsprint_memory_size(const char * ptr, int width, int precision,
+ 	if (format == 's') {
+ 		if ((unsigned long)ptr < PAGE_SIZE)
+ 			ptr = "<NULL>";
+-		len = strnlen(ptr, precision);
++		len = strnlen(ptr, clamp_t(size_t, precision, 0, STP_BUFFER_SIZE));
+ 	}
+ 	else if (precision > 0)
+ 		len = precision;
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-kernel/systemtap/systemtap/0001-staprun-address-ncurses-6.3-failures.patch b/poky/meta/recipes-kernel/systemtap/systemtap/0001-staprun-address-ncurses-6.3-failures.patch
index b53e107..1decf21 100644
--- a/poky/meta/recipes-kernel/systemtap/systemtap/0001-staprun-address-ncurses-6.3-failures.patch
+++ b/poky/meta/recipes-kernel/systemtap/systemtap/0001-staprun-address-ncurses-6.3-failures.patch
@@ -3,7 +3,7 @@
 Date: Mon, 25 Oct 2021 17:59:24 +0200
 Subject: [PATCH] staprun: address ncurses 6.3 failures
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [by email to smakarov@redhat.com,systemtap@sourceware.org]
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
 ---
  staprun/monitor.c | 24 ++++++++++++------------
diff --git a/poky/meta/recipes-kernel/systemtap/systemtap_git.bb b/poky/meta/recipes-kernel/systemtap/systemtap_git.bb
index d11d9b9..04f7e03 100644
--- a/poky/meta/recipes-kernel/systemtap/systemtap_git.bb
+++ b/poky/meta/recipes-kernel/systemtap/systemtap_git.bb
@@ -31,7 +31,7 @@
 PACKAGECONFIG[python3-probes] = "--with-python3-probes,--without-python3-probes,python3-setuptools-native"
 
 inherit autotools gettext pkgconfig systemd
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3-probes', 'distutils3-base', '', d)}
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3-probes', 'setuptools3-base', '', d)}
 
 # exporter comes with python3-probes
 PACKAGES =+ "${PN}-exporter"
diff --git a/poky/meta/recipes-kernel/systemtap/systemtap_git.inc b/poky/meta/recipes-kernel/systemtap/systemtap_git.inc
index b6ff98f..36c934c 100644
--- a/poky/meta/recipes-kernel/systemtap/systemtap_git.inc
+++ b/poky/meta/recipes-kernel/systemtap/systemtap_git.inc
@@ -1,12 +1,13 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRCREV = "7f6992539fb22c93c21ac30c94508bf655d496a7"
-PV = "4.5"
+SRCREV = "2e9f2f6967e44ce2bf8f34932b5bdd738ece2161"
+PV = "4.6"
 
-SRC_URI = "git://sourceware.org/git/systemtap.git \
+SRC_URI = "git://sourceware.org/git/systemtap.git;branch=master \
            file://0001-Do-not-let-configure-write-a-python-location-into-th.patch \
            file://0001-Install-python-modules-to-correct-library-dir.patch \
            file://0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch \
+           file://0001-PR28778-gcc-warning-tweak-for-sprintf-precision-para.patch \
            "
 
 COMPATIBLE_HOST = '(x86_64|i.86|powerpc|arm|aarch64|microblazeel|mips).*-linux'
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.5.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.5.1.bb
deleted file mode 100644
index cf7c3fc..0000000
--- a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.5.1.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "ALSA sound library"
-DESCRIPTION = "(Occasionally a.k.a. libasound) is a userspace library that \
-provides a level of abstraction over the /dev interfaces provided by the kernel modules."
-HOMEPAGE = "http://www.alsa-project.org"
-BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
-SECTION = "libs/multimedia"
-LICENSE = "LGPLv2.1 & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \
-                    file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \
-                    "
-
-SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "628421d950cecaf234de3f899d520c0a6923313c964ad751ffac081df331438e"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF += " \
-    ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-softfloat', '', d)} \
-    --disable-python \
-"
-
-PACKAGES =+ "alsa-server alsa-conf libatopology"
-
-FILES:alsa-server = "${bindir}/*"
-FILES:alsa-conf = "${datadir}/alsa/"
-FILES:libatopology = "${libdir}/libatopology.so.*"
-
-RDEPENDS:${PN}:class-target = "alsa-conf alsa-ucm-conf"
-RDEPENDS:libatopology:class-target = "alsa-topology-conf"
-
-# upgrade path
-RPROVIDES:${PN} = "libasound"
-RREPLACES:${PN} = "libasound"
-RCONFLICTS:${PN} = "libasound"
-
-RPROVIDES:${PN}-dev = "alsa-dev"
-RREPLACES:${PN}-dev = "alsa-dev"
-RCONFLICTS:${PN}-dev = "alsa-dev"
-
-RPROVIDES:alsa-conf = "alsa-conf-base"
-RREPLACES:alsa-conf = "alsa-conf-base"
-RCONFLICTS:alsa-conf = "alsa-conf-base"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.6.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.6.1.bb
new file mode 100644
index 0000000..7c03287
--- /dev/null
+++ b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.6.1.bb
@@ -0,0 +1,44 @@
+SUMMARY = "ALSA sound library"
+DESCRIPTION = "(Occasionally a.k.a. libasound) is a userspace library that \
+provides a level of abstraction over the /dev interfaces provided by the kernel modules."
+HOMEPAGE = "http://www.alsa-project.org"
+BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
+SECTION = "libs/multimedia"
+LICENSE = "LGPLv2.1 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \
+                    file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \
+                    "
+
+SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "ad582993d52cdb5fb159a0beab60a6ac57eab0cc1bdf85dc4db6d6197f02333f"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += " \
+    ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-softfloat', '', d)} \
+    --disable-python \
+"
+
+PACKAGES =+ "alsa-server alsa-conf libatopology"
+
+FILES:alsa-server = "${bindir}/*"
+FILES:alsa-conf = "${datadir}/alsa/"
+FILES:libatopology = "${libdir}/libatopology.so.*"
+
+RDEPENDS:${PN}:class-target = "alsa-conf alsa-ucm-conf"
+RDEPENDS:libatopology:class-target = "alsa-topology-conf"
+
+# upgrade path
+RPROVIDES:${PN} = "libasound"
+RREPLACES:${PN} = "libasound"
+RCONFLICTS:${PN} = "libasound"
+
+RPROVIDES:${PN}-dev = "alsa-dev"
+RREPLACES:${PN}-dev = "alsa-dev"
+RCONFLICTS:${PN}-dev = "alsa-dev"
+
+RPROVIDES:alsa-conf = "alsa-conf-base"
+RREPLACES:alsa-conf = "alsa-conf-base"
+RCONFLICTS:alsa-conf = "alsa-conf-base"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.5.bb b/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.5.bb
deleted file mode 100644
index 0eac982..0000000
--- a/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.5.bb
+++ /dev/null
@@ -1,174 +0,0 @@
-SUMMARY = "ALSA Plugins"
-DESCRIPTION = "Used to create virtual devices that can be used like normal \
-hardware devices but cause extra processing of the sound stream to take place. \
-They are used while configuring ALSA in the .asoundrc file."
-HOMEPAGE = "http://alsa-project.org"
-BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
-SECTION = "multimedia"
-
-# The primary license of alsa-plugins is LGPLv2.1.
-#
-# m4/attributes.m4 is licensed under GPLv2+. m4/attributes.m4 is part of the
-# build system, and doesn't affect the licensing of the build result.
-#
-# The samplerate plugin source code is licensed under GPLv2+ to be consistent
-# with the libsamplerate license. However, if the licensee has a commercial
-# license for libsamplerate, the samplerate plugin may be used under the terms
-# of LGPLv2.1 like the rest of the plugins.
-LICENSE = "LGPLv2.1 & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \
-                    file://COPYING.GPL;md5=59530bdf33659b29e73d4adb9f9f6552 \
-                    file://m4/attributes.m4;endline=33;md5=bb8c6b2a67ac15156961e242fec33e50 \
-                    file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \
-                    "
-
-SRC_URI = "https://www.alsa-project.org/files/pub/plugins/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "42eef98433d2c8d11f1deeeb459643619215a75aa5a5bbdd06a794e4c413df20"
-
-DEPENDS += "alsa-lib"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= "\
-        samplerate \
-        speexdsp \
-        ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
-"
-PACKAGECONFIG[aaf] = "--enable-aaf,--disable-aaf,avtp"
-PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
-PACKAGECONFIG[libav] = "--enable-libav,--disable-libav,libav"
-PACKAGECONFIG[maemo-plugin] = "--enable-maemo-plugin,--disable-maemo-plugin"
-PACKAGECONFIG[maemo-resource-manager] = "--enable-maemo-resource-manager,--disable-maemo-resource-manager,dbus"
-PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio"
-PACKAGECONFIG[samplerate] = "--enable-samplerate,--disable-samplerate,libsamplerate0"
-PACKAGECONFIG[speexdsp] = "--with-speex=lib,--with-speex=no,speexdsp"
-
-PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}"
-
-PACKAGES_DYNAMIC = "^libasound-module-.*"
-
-# The alsa-plugins package doesn't itself contain anything, it just depends on
-# all built plugins.
-FILES:${PN} = ""
-ALLOW_EMPTY:${PN} = "1"
-
-do_install:append() {
-	rm -f ${D}${libdir}/alsa-lib/*.la
-
-	if [ "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'yes', 'no', d)}" = "yes" ]; then
-		# We use the example as is. Upstream installs the file under
-		# /etc, but we move it under /usr/share and add a symlink under
-		# /etc to be consistent with other installed configuration
-		# files.
-		mv ${D}${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf.example ${D}${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf
-		ln -s ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf ${D}${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf
-	fi
-}
-
-python populate_packages:prepend() {
-    plugindir = d.expand('${libdir}/alsa-lib/')
-    packages = " ".join(do_split_packages(d, plugindir, r'^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s', extra_depends=''))
-    d.setVar("RDEPENDS:alsa-plugins", packages)
-}
-
-# Many plugins have a configuration file (plus a symlink in /etc) associated
-# with them. We put the plugin and it's configuration usually in the same
-# package, but that's problematic when the configuration file is related to
-# multiple plugins, as is the case with the pulse, oss and maemo plugins. In
-# case of the pulse plugins, we have a separate alsa-plugins-pulseaudio-conf
-# package that depends on all the pulse plugins, which ensures that all plugins
-# that the configuration references are installed. The oss and maemo
-# configuration files, on the other hand, are in the respective pcm plugin
-# packages. Therefore it's possible to install the configuration file without
-# the ctl plugin that the configuration file references. This is unlikely to
-# cause big problems, but some kind of improvement to the packaging could
-# probably be done here (at least it would be good to handle the different
-# plugins in a consistent way).
-FILES:${MLPREFIX}libasound-module-ctl-arcam-av += "\
-        ${datadir}/alsa/alsa.conf.d/50-arcam-av-ctl.conf \
-        ${sysconfdir}/alsa/conf.d/50-arcam-av-ctl.conf \
-"
-FILES:${MLPREFIX}libasound-module-pcm-a52 += "\
-        ${datadir}/alsa/alsa.conf.d/60-a52-encoder.conf \
-        ${sysconfdir}/alsa/conf.d/60-a52-encoder.conf \
-"
-FILES:${MLPREFIX}libasound-module-pcm-alsa-dsp += "\
-        ${datadir}/alsa/alsa.conf.d/98-maemo.conf \
-        ${sysconfdir}/alsa/conf.d/98-maemo.conf \
-"
-FILES:${MLPREFIX}libasound-module-pcm-jack += "\
-        ${datadir}/alsa/alsa.conf.d/50-jack.conf \
-        ${sysconfdir}/alsa/conf.d/50-jack.conf \
-"
-FILES:${MLPREFIX}libasound-module-pcm-oss += "\
-        ${datadir}/alsa/alsa.conf.d/50-oss.conf \
-        ${sysconfdir}/alsa/conf.d/50-oss.conf \
-"
-FILES:${MLPREFIX}libasound-module-pcm-speex += "\
-        ${datadir}/alsa/alsa.conf.d/60-speex.conf \
-        ${sysconfdir}/alsa/conf.d/60-speex.conf \
-"
-FILES:${MLPREFIX}libasound-module-pcm-upmix += "\
-        ${datadir}/alsa/alsa.conf.d/60-upmix.conf \
-        ${sysconfdir}/alsa/conf.d/60-upmix.conf \
-"
-FILES:${MLPREFIX}libasound-module-pcm-usb-stream += "\
-        ${datadir}/alsa/alsa.conf.d/98-usb-stream.conf \
-        ${sysconfdir}/alsa/conf.d/98-usb-stream.conf \
-"
-FILES:${MLPREFIX}libasound-module-pcm-vdownmix += "\
-        ${datadir}/alsa/alsa.conf.d/60-vdownmix.conf \
-        ${sysconfdir}/alsa/conf.d/60-vdownmix.conf \
-"
-FILES:${MLPREFIX}libasound-module-rate-lavrate += "\
-        ${datadir}/alsa/alsa.conf.d/10-rate-lav.conf \
-        ${sysconfdir}/alsa/conf.d/10-rate-lav.conf \
-"
-FILES:${MLPREFIX}libasound-module-rate-samplerate += "\
-        ${datadir}/alsa/alsa.conf.d/10-samplerate.conf \
-        ${sysconfdir}/alsa/conf.d/10-samplerate.conf \
-"
-FILES:${MLPREFIX}libasound-module-rate-speexrate += "\
-        ${datadir}/alsa/alsa.conf.d/10-speexrate.conf \
-        ${sysconfdir}/alsa/conf.d/10-speexrate.conf \
-"
-
-# The rate plugins create some symlinks. For example, the samplerate plugin
-# creates these links to the main plugin file:
-#
-#   libasound_module_rate_samplerate_best.so
-#   libasound_module_rate_samplerate_linear.so
-#   libasound_module_rate_samplerate_medium.so
-#   libasound_module_rate_samplerate_order.so
-#
-# The other rate plugins create similar links. We have to add the links to
-# FILES manually, because do_split_packages() skips the links (which is good,
-# because we wouldn't want do_split_packages() to create separate packages for
-# the symlinks).
-#
-# The symlinks cause QA errors, because usually it's a bug if a non
-# -dev/-dbg/-nativesdk package contains links to .so files, but in this case
-# the errors are false positives, so we disable the QA checks.
-FILES:${MLPREFIX}libasound-module-rate-lavrate += "${libdir}/alsa-lib/*rate_lavrate_*.so"
-FILES:${MLPREFIX}libasound-module-rate-samplerate += "${libdir}/alsa-lib/*rate_samplerate_*.so"
-FILES:${MLPREFIX}libasound-module-rate-speexrate += "${libdir}/alsa-lib/*rate_speexrate_*.so"
-INSANE_SKIP:${MLPREFIX}libasound-module-rate-lavrate = "dev-so"
-INSANE_SKIP:${MLPREFIX}libasound-module-rate-samplerate = "dev-so"
-INSANE_SKIP:${MLPREFIX}libasound-module-rate-speexrate = "dev-so"
-
-# 50-pulseaudio.conf defines a device named "pulse" that applications can use
-# if they explicitly want to use the PulseAudio plugin.
-# 99-pulseaudio-default.conf configures the "default" device to use the
-# PulseAudio plugin.
-FILES:${PN}-pulseaudio-conf += "\
-        ${datadir}/alsa/alsa.conf.d/50-pulseaudio.conf \
-        ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf \
-        ${sysconfdir}/alsa/conf.d/50-pulseaudio.conf \
-        ${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf \
-"
-
-RDEPENDS:${PN}-pulseaudio-conf += "\
-        ${MLPREFIX}libasound-module-conf-pulse \
-        ${MLPREFIX}libasound-module-ctl-pulse \
-        ${MLPREFIX}libasound-module-pcm-pulse \
-"
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.6.bb b/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.6.bb
new file mode 100644
index 0000000..7b1ca2e
--- /dev/null
+++ b/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.6.bb
@@ -0,0 +1,174 @@
+SUMMARY = "ALSA Plugins"
+DESCRIPTION = "Used to create virtual devices that can be used like normal \
+hardware devices but cause extra processing of the sound stream to take place. \
+They are used while configuring ALSA in the .asoundrc file."
+HOMEPAGE = "http://alsa-project.org"
+BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
+SECTION = "multimedia"
+
+# The primary license of alsa-plugins is LGPLv2.1.
+#
+# m4/attributes.m4 is licensed under GPLv2+. m4/attributes.m4 is part of the
+# build system, and doesn't affect the licensing of the build result.
+#
+# The samplerate plugin source code is licensed under GPLv2+ to be consistent
+# with the libsamplerate license. However, if the licensee has a commercial
+# license for libsamplerate, the samplerate plugin may be used under the terms
+# of LGPLv2.1 like the rest of the plugins.
+LICENSE = "LGPLv2.1 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \
+                    file://COPYING.GPL;md5=59530bdf33659b29e73d4adb9f9f6552 \
+                    file://m4/attributes.m4;endline=33;md5=bb8c6b2a67ac15156961e242fec33e50 \
+                    file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \
+                    "
+
+SRC_URI = "https://www.alsa-project.org/files/pub/plugins/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "068818a4b55d8c029daa00015d853d45113f56b224b7c64e1e117988c825b2a0"
+
+DEPENDS += "alsa-lib"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "\
+        samplerate \
+        speexdsp \
+        ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
+"
+PACKAGECONFIG[aaf] = "--enable-aaf,--disable-aaf,avtp"
+PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
+PACKAGECONFIG[libav] = "--enable-libav,--disable-libav,libav"
+PACKAGECONFIG[maemo-plugin] = "--enable-maemo-plugin,--disable-maemo-plugin"
+PACKAGECONFIG[maemo-resource-manager] = "--enable-maemo-resource-manager,--disable-maemo-resource-manager,dbus"
+PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio"
+PACKAGECONFIG[samplerate] = "--enable-samplerate,--disable-samplerate,libsamplerate0"
+PACKAGECONFIG[speexdsp] = "--with-speex=lib,--with-speex=no,speexdsp"
+
+PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}"
+
+PACKAGES_DYNAMIC = "^libasound-module-.*"
+
+# The alsa-plugins package doesn't itself contain anything, it just depends on
+# all built plugins.
+FILES:${PN} = ""
+ALLOW_EMPTY:${PN} = "1"
+
+do_install:append() {
+	rm -f ${D}${libdir}/alsa-lib/*.la
+
+	if [ "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'yes', 'no', d)}" = "yes" ]; then
+		# We use the example as is. Upstream installs the file under
+		# /etc, but we move it under /usr/share and add a symlink under
+		# /etc to be consistent with other installed configuration
+		# files.
+		mv ${D}${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf.example ${D}${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf
+		ln -s ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf ${D}${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf
+	fi
+}
+
+python populate_packages:prepend() {
+    plugindir = d.expand('${libdir}/alsa-lib/')
+    packages = " ".join(do_split_packages(d, plugindir, r'^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s', extra_depends=''))
+    d.setVar("RDEPENDS:alsa-plugins", packages)
+}
+
+# Many plugins have a configuration file (plus a symlink in /etc) associated
+# with them. We put the plugin and it's configuration usually in the same
+# package, but that's problematic when the configuration file is related to
+# multiple plugins, as is the case with the pulse, oss and maemo plugins. In
+# case of the pulse plugins, we have a separate alsa-plugins-pulseaudio-conf
+# package that depends on all the pulse plugins, which ensures that all plugins
+# that the configuration references are installed. The oss and maemo
+# configuration files, on the other hand, are in the respective pcm plugin
+# packages. Therefore it's possible to install the configuration file without
+# the ctl plugin that the configuration file references. This is unlikely to
+# cause big problems, but some kind of improvement to the packaging could
+# probably be done here (at least it would be good to handle the different
+# plugins in a consistent way).
+FILES:${MLPREFIX}libasound-module-ctl-arcam-av += "\
+        ${datadir}/alsa/alsa.conf.d/50-arcam-av-ctl.conf \
+        ${sysconfdir}/alsa/conf.d/50-arcam-av-ctl.conf \
+"
+FILES:${MLPREFIX}libasound-module-pcm-a52 += "\
+        ${datadir}/alsa/alsa.conf.d/60-a52-encoder.conf \
+        ${sysconfdir}/alsa/conf.d/60-a52-encoder.conf \
+"
+FILES:${MLPREFIX}libasound-module-pcm-alsa-dsp += "\
+        ${datadir}/alsa/alsa.conf.d/98-maemo.conf \
+        ${sysconfdir}/alsa/conf.d/98-maemo.conf \
+"
+FILES:${MLPREFIX}libasound-module-pcm-jack += "\
+        ${datadir}/alsa/alsa.conf.d/50-jack.conf \
+        ${sysconfdir}/alsa/conf.d/50-jack.conf \
+"
+FILES:${MLPREFIX}libasound-module-pcm-oss += "\
+        ${datadir}/alsa/alsa.conf.d/50-oss.conf \
+        ${sysconfdir}/alsa/conf.d/50-oss.conf \
+"
+FILES:${MLPREFIX}libasound-module-pcm-speex += "\
+        ${datadir}/alsa/alsa.conf.d/60-speex.conf \
+        ${sysconfdir}/alsa/conf.d/60-speex.conf \
+"
+FILES:${MLPREFIX}libasound-module-pcm-upmix += "\
+        ${datadir}/alsa/alsa.conf.d/60-upmix.conf \
+        ${sysconfdir}/alsa/conf.d/60-upmix.conf \
+"
+FILES:${MLPREFIX}libasound-module-pcm-usb-stream += "\
+        ${datadir}/alsa/alsa.conf.d/98-usb-stream.conf \
+        ${sysconfdir}/alsa/conf.d/98-usb-stream.conf \
+"
+FILES:${MLPREFIX}libasound-module-pcm-vdownmix += "\
+        ${datadir}/alsa/alsa.conf.d/60-vdownmix.conf \
+        ${sysconfdir}/alsa/conf.d/60-vdownmix.conf \
+"
+FILES:${MLPREFIX}libasound-module-rate-lavrate += "\
+        ${datadir}/alsa/alsa.conf.d/10-rate-lav.conf \
+        ${sysconfdir}/alsa/conf.d/10-rate-lav.conf \
+"
+FILES:${MLPREFIX}libasound-module-rate-samplerate += "\
+        ${datadir}/alsa/alsa.conf.d/10-samplerate.conf \
+        ${sysconfdir}/alsa/conf.d/10-samplerate.conf \
+"
+FILES:${MLPREFIX}libasound-module-rate-speexrate += "\
+        ${datadir}/alsa/alsa.conf.d/10-speexrate.conf \
+        ${sysconfdir}/alsa/conf.d/10-speexrate.conf \
+"
+
+# The rate plugins create some symlinks. For example, the samplerate plugin
+# creates these links to the main plugin file:
+#
+#   libasound_module_rate_samplerate_best.so
+#   libasound_module_rate_samplerate_linear.so
+#   libasound_module_rate_samplerate_medium.so
+#   libasound_module_rate_samplerate_order.so
+#
+# The other rate plugins create similar links. We have to add the links to
+# FILES manually, because do_split_packages() skips the links (which is good,
+# because we wouldn't want do_split_packages() to create separate packages for
+# the symlinks).
+#
+# The symlinks cause QA errors, because usually it's a bug if a non
+# -dev/-dbg/-nativesdk package contains links to .so files, but in this case
+# the errors are false positives, so we disable the QA checks.
+FILES:${MLPREFIX}libasound-module-rate-lavrate += "${libdir}/alsa-lib/*rate_lavrate_*.so"
+FILES:${MLPREFIX}libasound-module-rate-samplerate += "${libdir}/alsa-lib/*rate_samplerate_*.so"
+FILES:${MLPREFIX}libasound-module-rate-speexrate += "${libdir}/alsa-lib/*rate_speexrate_*.so"
+INSANE_SKIP:${MLPREFIX}libasound-module-rate-lavrate = "dev-so"
+INSANE_SKIP:${MLPREFIX}libasound-module-rate-samplerate = "dev-so"
+INSANE_SKIP:${MLPREFIX}libasound-module-rate-speexrate = "dev-so"
+
+# 50-pulseaudio.conf defines a device named "pulse" that applications can use
+# if they explicitly want to use the PulseAudio plugin.
+# 99-pulseaudio-default.conf configures the "default" device to use the
+# PulseAudio plugin.
+FILES:${PN}-pulseaudio-conf += "\
+        ${datadir}/alsa/alsa.conf.d/50-pulseaudio.conf \
+        ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf \
+        ${sysconfdir}/alsa/conf.d/50-pulseaudio.conf \
+        ${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf \
+"
+
+RDEPENDS:${PN}-pulseaudio-conf += "\
+        ${MLPREFIX}libasound-module-conf-pulse \
+        ${MLPREFIX}libasound-module-ctl-pulse \
+        ${MLPREFIX}libasound-module-pcm-pulse \
+"
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.5.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.5.1.bb
deleted file mode 100644
index 9d874ec..0000000
--- a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.5.1.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "ALSA Use Case Manager configuration"
-DESCRIPTION = "This package contains ALSA Use Case Manager configuration \
-of audio input/output names and routing for specific audio hardware. \
-They can be used with the alsaucm tool. "
-HOMEPAGE = "https://alsa-project.org"
-BUGTRACKER = "https://alsa-project.org/wiki/Bug_Tracking"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4"
-
-SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "5841a444166dcbf479db751303dbc3556f685085ac7e00f0c9e7755676195d97"
-# Something went wrong at upstream tarballing
-
-inherit allarch
-
-do_install() {
-        install -d "${D}${datadir}/alsa"
-        cp -r "${S}/ucm" "${D}${datadir}/alsa"
-        cp -r "${S}/ucm2" "${D}${datadir}/alsa"
-}
-
-PACKAGES = "${PN}"
-
-FILES:${PN} = "*"
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.6.3.bb b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.6.3.bb
new file mode 100644
index 0000000..a493269
--- /dev/null
+++ b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.6.3.bb
@@ -0,0 +1,24 @@
+SUMMARY = "ALSA Use Case Manager configuration"
+DESCRIPTION = "This package contains ALSA Use Case Manager configuration \
+of audio input/output names and routing for specific audio hardware. \
+They can be used with the alsaucm tool. "
+HOMEPAGE = "https://alsa-project.org"
+BUGTRACKER = "https://alsa-project.org/wiki/Bug_Tracking"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4"
+
+SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "b8a03aa387a624a2f65edc201bf777421190b60529a92087646823afbd96c5cd"
+# Something went wrong at upstream tarballing
+
+inherit allarch
+
+do_install() {
+        install -d "${D}${datadir}/alsa"
+        cp -r "${S}/ucm" "${D}${datadir}/alsa"
+        cp -r "${S}/ucm2" "${D}${datadir}/alsa"
+}
+
+PACKAGES = "${PN}"
+
+FILES:${PN} = "*"
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.5.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.6.bb
similarity index 100%
rename from poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.5.1.bb
rename to poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.6.bb
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils.inc b/poky/meta/recipes-multimedia/alsa/alsa-utils.inc
index 95b93d4..631cbe1 100644
--- a/poky/meta/recipes-multimedia/alsa/alsa-utils.inc
+++ b/poky/meta/recipes-multimedia/alsa/alsa-utils.inc
@@ -24,7 +24,7 @@
 
 # alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe
 SRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2"
-SRC_URI[sha256sum] = "9c169ae37a49295f9b97b92ace772803daf6b6510a19574e0b78f87e562118d0"
+SRC_URI[sha256sum] = "6a1efd8a1f1d9d38e489633eaec1fffa5c315663b316cab804be486887e6145d"
 
 # On build machines with python-docutils (not python3-docutils !!) installed
 # rst2man (not rst2man.py) is detected and compile fails with
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.5.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.6.bb
similarity index 100%
rename from poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.5.1.bb
rename to poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.6.bb
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libavutil-include-assembly-with-full-path-from-sourc.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libavutil-include-assembly-with-full-path-from-sourc.patch
index 3b503c4..7d0a06f 100644
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libavutil-include-assembly-with-full-path-from-sourc.patch
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libavutil-include-assembly-with-full-path-from-sourc.patch
@@ -1,4 +1,4 @@
-From 24a58d70cbb3997e471366bd5afe54be9007bfb1 Mon Sep 17 00:00:00 2001
+From 4a891e1eddbf63f32fe769b5bff289f6748abf45 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 10 Nov 2020 15:32:14 +0000
 Subject: [PATCH] libavutil: include assembly with full path from source root
@@ -6,8 +6,9 @@
 Otherwise nasm writes the full host-specific paths into .o
 output, which breaks binary reproducibility.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [http://ffmpeg.org/pipermail/ffmpeg-devel/2022-January/291781.html]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
 ---
  libavutil/x86/cpuid.asm      | 2 +-
  libavutil/x86/emms.asm       | 2 +-
@@ -15,7 +16,8 @@
  libavutil/x86/float_dsp.asm  | 2 +-
  libavutil/x86/lls.asm        | 2 +-
  libavutil/x86/pixelutils.asm | 2 +-
- 6 files changed, 6 insertions(+), 6 deletions(-)
+ libavutil/x86/tx_float.asm   | 2 +-
+ 7 files changed, 7 insertions(+), 7 deletions(-)
 
 diff --git a/libavutil/x86/cpuid.asm b/libavutil/x86/cpuid.asm
 index c3f7866..766f77f 100644
@@ -95,3 +97,16 @@
  
  SECTION .text
  
+diff --git a/libavutil/x86/tx_float.asm b/libavutil/x86/tx_float.asm
+index 4d2283f..ea39f21 100644
+--- a/libavutil/x86/tx_float.asm
++++ b/libavutil/x86/tx_float.asm
+@@ -29,7 +29,7 @@
+ ;       replace some shuffles with vblends?
+ ;       avx512 split-radix
+ 
+-%include "x86util.asm"
++%include "libavutil/x86/x86util.asm"
+ 
+ %if ARCH_X86_64
+ %define ptr resq
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-20446.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-20446.patch
deleted file mode 100644
index f048c2e..0000000
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-20446.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 223b5e8ac9f6461bb13ed365419ec485c5b2b002 Mon Sep 17 00:00:00 2001
-From: Michael Niedermayer <michael@niedermayer.cc>
-Date: Fri, 28 May 2021 20:18:25 +0200
-Subject: [PATCH] avcodec/aacpsy: Avoid floating point division by 0 of
- norm_fac
-
-Fixes: Ticket7995
-Fixes: CVE-2020-20446
-
-Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
-CVE: CVE-2020-20446
-Upstream-Status: Backport [223b5e8ac9f6461bb13ed365419ec485c5b2b002]
-
-Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
----
- libavcodec/aacpsy.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libavcodec/aacpsy.c b/libavcodec/aacpsy.c
-index 482113d427..e51d29750b 100644
---- a/libavcodec/aacpsy.c
-+++ b/libavcodec/aacpsy.c
-@@ -794,7 +794,7 @@ static void psy_3gpp_analyze_channel(FFPsyContext *ctx, int channel,
- 
-         if (pe < 1.15f * desired_pe) {
-             /* 6.6.1.3.6 "Final threshold modification by linearization" */
--            norm_fac = 1.0f / norm_fac;
-+            norm_fac = norm_fac ? 1.0f / norm_fac : 0;
-             for (w = 0; w < wi->num_windows*16; w += 16) {
-                 for (g = 0; g < num_bands; g++) {
-                     AacPsyBand *band = &pch->band[w+g];
--- 
-2.32.0
-
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-20453.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-20453.patch
deleted file mode 100644
index b1c9405..0000000
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-20453.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From a7a7f32c8ad0179a1a85d0a8cff35924e6d90be8 Mon Sep 17 00:00:00 2001
-From: Michael Niedermayer <michael@niedermayer.cc>
-Date: Fri, 28 May 2021 21:37:26 +0200
-Subject: [PATCH] avcodec/aacenc: Avoid 0 lambda
-
-Fixes: Ticket8003
-Fixes: CVE-2020-20453
-
-Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
-CVE: CVE-2020-20453
-Upstream-Status: Backport [a7a7f32c8ad0179a1a85d0a8cff35924e6d90be8]
-
-Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
----
- libavcodec/aacenc.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
-index aa223cf25f..e80591ba86 100644
---- a/libavcodec/aacenc.c
-+++ b/libavcodec/aacenc.c
-@@ -28,6 +28,7 @@
-  *              TODOs:
-  * add sane pulse detection
-  ***********************************/
-+#include <float.h>
- 
- #include "libavutil/libm.h"
- #include "libavutil/float_dsp.h"
-@@ -852,7 +853,7 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
-                 /* Not so fast though */
-                 ratio = sqrtf(ratio);
-             }
--            s->lambda = FFMIN(s->lambda * ratio, 65536.f);
-+            s->lambda = av_clipf(s->lambda * ratio, FLT_MIN, 65536.f);
- 
-             /* Keep iterating if we must reduce and lambda is in the sky */
-             if (ratio > 0.9f && ratio < 1.1f) {
--- 
-2.32.0
-
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-22015.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-22015.patch
deleted file mode 100644
index 5c91129..0000000
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-22015.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 4c1afa292520329eecd1cc7631bc59a8cca95c46 Mon Sep 17 00:00:00 2001
-From: Michael Niedermayer <michael@niedermayer.cc>
-Date: Sat, 29 May 2021 09:22:27 +0200
-Subject: [PATCH] avformat/movenc: Check pal_size before use
-
-Fixes: assertion failure
-Fixes: out of array read
-Fixes: Ticket8190
-Fixes: CVE-2020-22015
-
-Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
-
-CVE: CVE-2020-22015
-Upstream-Status: Backport [4c1afa292520329eecd1cc7631bc59a8cca95c46]
-
-Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
----
- libavformat/movenc.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/libavformat/movenc.c b/libavformat/movenc.c
-index 2ab507df15..7d839f447b 100644
---- a/libavformat/movenc.c
-+++ b/libavformat/movenc.c
-@@ -2160,11 +2160,13 @@ static int mov_write_video_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex
-         avio_wb16(pb, 0x18); /* Reserved */
- 
-     if (track->mode == MODE_MOV && track->par->format == AV_PIX_FMT_PAL8) {
--        int pal_size = 1 << track->par->bits_per_coded_sample;
--        int i;
-+        int pal_size, i;
-         avio_wb16(pb, 0);             /* Color table ID */
-         avio_wb32(pb, 0);             /* Color table seed */
-         avio_wb16(pb, 0x8000);        /* Color table flags */
-+        if (track->par->bits_per_coded_sample < 0 || track->par->bits_per_coded_sample > 8)
-+            return AVERROR(EINVAL);
-+        pal_size = 1 << track->par->bits_per_coded_sample;
-         avio_wb16(pb, pal_size - 1);  /* Color table size (zero-relative) */
-         for (i = 0; i < pal_size; i++) {
-             uint32_t rgb = track->palette[i];
--- 
-2.32.0
-
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-22021.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-22021.patch
deleted file mode 100644
index 6f7fce0..0000000
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-22021.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 7971f62120a55c141ec437aa3f0bacc1c1a3526b Mon Sep 17 00:00:00 2001
-From: Michael Niedermayer <michael@niedermayer.cc>
-Date: Sat, 29 May 2021 11:17:35 +0200
-Subject: [PATCH] avfilter/vf_yadif: Fix handing of tiny images
-
-Fixes: out of array access
-Fixes: Ticket8240
-Fixes: CVE-2020-22021
-
-Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
-CVE: CVE-2020-22021
-Upstream-Status: Backport [7971f62120a55c141ec437aa3f0bacc1c1a3526b]
-
-Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
----
- libavfilter/vf_yadif.c | 32 ++++++++++++++++++--------------
- 1 file changed, 18 insertions(+), 14 deletions(-)
-
-diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c
-index 91cc79ecc3..b0d9fbaf1f 100644
---- a/libavfilter/vf_yadif.c
-+++ b/libavfilter/vf_yadif.c
-@@ -123,20 +123,22 @@ static void filter_edges(void *dst1, void *prev1, void *cur1, void *next1,
-     uint8_t *next2 = parity ? cur  : next;
- 
-     const int edge = MAX_ALIGN - 1;
-+    int offset = FFMAX(w - edge, 3);
- 
-     /* Only edge pixels need to be processed here.  A constant value of false
-      * for is_not_edge should let the compiler ignore the whole branch. */
--    FILTER(0, 3, 0)
-+    FILTER(0, FFMIN(3, w), 0)
- 
--    dst  = (uint8_t*)dst1  + w - edge;
--    prev = (uint8_t*)prev1 + w - edge;
--    cur  = (uint8_t*)cur1  + w - edge;
--    next = (uint8_t*)next1 + w - edge;
-+    dst  = (uint8_t*)dst1  + offset;
-+    prev = (uint8_t*)prev1 + offset;
-+    cur  = (uint8_t*)cur1  + offset;
-+    next = (uint8_t*)next1 + offset;
-     prev2 = (uint8_t*)(parity ? prev : cur);
-     next2 = (uint8_t*)(parity ? cur  : next);
- 
--    FILTER(w - edge, w - 3, 1)
--    FILTER(w - 3, w, 0)
-+    FILTER(offset, w - 3, 1)
-+    offset = FFMAX(offset, w - 3);
-+    FILTER(offset, w, 0)
- }
- 
- 
-@@ -170,21 +172,23 @@ static void filter_edges_16bit(void *dst1, void *prev1, void *cur1, void *next1,
-     uint16_t *next2 = parity ? cur  : next;
- 
-     const int edge = MAX_ALIGN / 2 - 1;
-+    int offset = FFMAX(w - edge, 3);
- 
-     mrefs /= 2;
-     prefs /= 2;
- 
--    FILTER(0, 3, 0)
-+    FILTER(0,  FFMIN(3, w), 0)
- 
--    dst   = (uint16_t*)dst1  + w - edge;
--    prev  = (uint16_t*)prev1 + w - edge;
--    cur   = (uint16_t*)cur1  + w - edge;
--    next  = (uint16_t*)next1 + w - edge;
-+    dst   = (uint16_t*)dst1  + offset;
-+    prev  = (uint16_t*)prev1 + offset;
-+    cur   = (uint16_t*)cur1  + offset;
-+    next  = (uint16_t*)next1 + offset;
-     prev2 = (uint16_t*)(parity ? prev : cur);
-     next2 = (uint16_t*)(parity ? cur  : next);
- 
--    FILTER(w - edge, w - 3, 1)
--    FILTER(w - 3, w, 0)
-+    FILTER(offset, w - 3, 1)
-+    offset = FFMAX(offset, w - 3);
-+    FILTER(offset, w, 0)
- }
- 
- static int filter_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
--- 
-2.32.0
-
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-22033-CVE-2020-22019.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-22033-CVE-2020-22019.patch
deleted file mode 100644
index 5d979ca..0000000
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2020-22033-CVE-2020-22019.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 82ad1b76751bcfad5005440db48c46a4de5d6f02 Mon Sep 17 00:00:00 2001
-From: Michael Niedermayer <michael@niedermayer.cc>
-Date: Sat, 29 May 2021 09:58:31 +0200
-Subject: [PATCH] avfilter/vf_vmafmotion: Check dimensions
-
-Fixes: out of array access
-Fixes: Ticket8241
-Fixes: Ticket8246
-Fixes: CVE-2020-22019
-Fixes: CVE-2020-22033
-
-Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
-
-CVE: CVE-2020-22033
-CVE: CVE-2020-22019
-Upstream-Status: Backport [82ad1b76751bcfad5005440db48c46a4de5d6f02]
-
-Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
----
- libavfilter/vf_vmafmotion.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/libavfilter/vf_vmafmotion.c b/libavfilter/vf_vmafmotion.c
-index 2db4783d8d..454ebb8afa 100644
---- a/libavfilter/vf_vmafmotion.c
-+++ b/libavfilter/vf_vmafmotion.c
-@@ -238,6 +238,9 @@ int ff_vmafmotion_init(VMAFMotionData *s,
-     int i;
-     const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(fmt);
- 
-+    if (w < 3 || h < 3)
-+        return AVERROR(EINVAL);
-+
-     s->width = w;
-     s->height = h;
-     s->stride = FFALIGN(w * sizeof(uint16_t), 32);
--- 
-2.32.0
-
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2021-33815.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2021-33815.patch
deleted file mode 100644
index 51edb76..0000000
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2021-33815.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 26d3c81bc5ef2f8c3f09d45eaeacfb4b1139a777 Mon Sep 17 00:00:00 2001
-From: Michael Niedermayer <michael@niedermayer.cc>
-Date: Tue, 25 May 2021 19:29:18 +0200
-Subject: [PATCH] avcodec/exr: More strictly check dc_count
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixes: out of array access
-Fixes: exr/deneme
-
-Found-by: Burak Çarıkçı <burakcarikci@crypttech.com>
-Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
-
-CVE: CVE-2021-33815
-Upstream-Status: Backport [26d3c81bc5ef2f8c3f09d45eaeacfb4b1139a777]
-
-Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
----
- libavcodec/exr.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libavcodec/exr.c b/libavcodec/exr.c
-index 9377a89169..4648ed7d62 100644
---- a/libavcodec/exr.c
-+++ b/libavcodec/exr.c
-@@ -1059,11 +1059,11 @@ static int dwa_uncompress(EXRContext *s, const uint8_t *src, int compressed_size
-         bytestream2_skip(&gb, ac_size);
-     }
- 
--    if (dc_size > 0) {
-+    {
-         unsigned long dest_len = dc_count * 2LL;
-         GetByteContext agb = gb;
- 
--        if (dc_count > (6LL * td->xsize * td->ysize + 63) / 64)
-+        if (dc_count != dc_w * dc_h * 3)
-             return AVERROR_INVALIDDATA;
- 
-         av_fast_padded_malloc(&td->dc_data, &td->dc_size, FFALIGN(dest_len, 64) * 2);
--- 
-2.32.0
-
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2021-38114.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2021-38114.patch
deleted file mode 100644
index ab3ecfe..0000000
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2021-38114.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-CVE: CVE-2021-38114
-Upstream-Status: Backport
-Signed-off-by: Kiran Surendran <kiran.surendran@windriver.com>
-
-From 463dbe4e78cc560ca5b09f23a07add0eb78ccee8 Mon Sep 17 00:00:00 2001
-From: maryam ebr <me22bee@outlook.com>
-Date: Tue, 3 Aug 2021 01:05:47 -0400
-Subject: [PATCH] avcodec/dnxhddec: check and propagate function return value
-
-Similar to CVE-2013-0868, here return value check for 'init_vlc' is needed.
-crafted DNxHD data can cause unspecified impact.
-
-Reviewed-by: Paul B Mahol <onemda@gmail.com>
-Signed-off-by: James Almer <jamrial@gmail.com>
----
- libavcodec/dnxhddec.c | 22 +++++++++++++++-------
- 1 file changed, 15 insertions(+), 7 deletions(-)
-
-diff --git a/libavcodec/dnxhddec.c b/libavcodec/dnxhddec.c
-index c78d55aee5..9b475a6979 100644
---- a/libavcodec/dnxhddec.c
-+++ b/libavcodec/dnxhddec.c
-@@ -112,6 +112,7 @@ static av_cold int dnxhd_decode_init(AVCodecContext *avctx)
- 
- static int dnxhd_init_vlc(DNXHDContext *ctx, uint32_t cid, int bitdepth)
- {
-+    int ret;
-     if (cid != ctx->cid) {
-         const CIDEntry *cid_table = ff_dnxhd_get_cid_table(cid);
- 
-@@ -132,19 +133,26 @@ static int dnxhd_init_vlc(DNXHDContext *ctx, uint32_t cid, int bitdepth)
-         ff_free_vlc(&ctx->dc_vlc);
-         ff_free_vlc(&ctx->run_vlc);
- 
--        init_vlc(&ctx->ac_vlc, DNXHD_VLC_BITS, 257,
-+        if ((ret = init_vlc(&ctx->ac_vlc, DNXHD_VLC_BITS, 257,
-                  ctx->cid_table->ac_bits, 1, 1,
--                 ctx->cid_table->ac_codes, 2, 2, 0);
--        init_vlc(&ctx->dc_vlc, DNXHD_DC_VLC_BITS, bitdepth > 8 ? 14 : 12,
-+                 ctx->cid_table->ac_codes, 2, 2, 0)) < 0)
-+            goto out;
-+        if ((ret = init_vlc(&ctx->dc_vlc, DNXHD_DC_VLC_BITS, bitdepth > 8 ? 14 : 12,
-                  ctx->cid_table->dc_bits, 1, 1,
--                 ctx->cid_table->dc_codes, 1, 1, 0);
--        init_vlc(&ctx->run_vlc, DNXHD_VLC_BITS, 62,
-+                 ctx->cid_table->dc_codes, 1, 1, 0)) < 0)
-+            goto out;
-+        if ((ret = init_vlc(&ctx->run_vlc, DNXHD_VLC_BITS, 62,
-                  ctx->cid_table->run_bits, 1, 1,
--                 ctx->cid_table->run_codes, 2, 2, 0);
-+                 ctx->cid_table->run_codes, 2, 2, 0)) < 0)
-+            goto out;
- 
-         ctx->cid = cid;
-     }
--    return 0;
-+    ret = 0;
-+out:
-+    if (ret < 0)
-+        av_log(ctx->avctx, AV_LOG_ERROR, "init_vlc failed\n");
-+    return ret;
- }
- 
- static int dnxhd_get_profile(int cid)
--- 
-2.31.1
-
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2021-38171.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2021-38171.patch
deleted file mode 100644
index d82f3a4..0000000
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2021-38171.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-CVE: CVE-2021-38171
-Upstream-Status: Backport
-Signed-off-by: Kiran Surendran <kiran.surendran@windriver.com>
-
-From fb993619d1035fa9646506925ea70fb122038999 Mon Sep 17 00:00:00 2001
-From: maryam ebrahimzadeh <me22bee@outlook.com>
-Date: Wed, 4 Aug 2021 16:15:18 -0400
-Subject: [PATCH] avformat/adtsenc: return value check for init_get_bits in
- adts_decode_extradata
-
-As the second argument for init_get_bits (buf) can be crafted, a return value check for this function call is necessary.
-'buf' is  part of  'AVPacket pkt'.
-replace init_get_bits with init_get_bits8.
-
-Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-(cherry picked from commit 9ffa49496d1aae4cbbb387aac28a9e061a6ab0a6)
-Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
----
- libavformat/adtsenc.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/libavformat/adtsenc.c b/libavformat/adtsenc.c
-index 3595cb3bb2..c35a12a628 100644
---- a/libavformat/adtsenc.c
-+++ b/libavformat/adtsenc.c
-@@ -51,9 +51,11 @@ static int adts_decode_extradata(AVFormatContext *s, ADTSContext *adts, const ui
-     GetBitContext gb;
-     PutBitContext pb;
-     MPEG4AudioConfig m4ac;
--    int off;
-+    int off, ret;
- 
--    init_get_bits(&gb, buf, size * 8);
-+    ret = init_get_bits8(&gb, buf, size);
-+    if (ret < 0)
-+        return ret;
-     off = avpriv_mpeg4audio_get_config2(&m4ac, buf, size, 1, s);
-     if (off < 0)
-         return off;
--- 
-2.31.1
-
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb
deleted file mode 100644
index c0318ef..0000000
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb
+++ /dev/null
@@ -1,188 +0,0 @@
-SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video."
-DESCRIPTION = "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, \
-               mux, demux, stream, filter and play pretty much anything that humans and machines \
-               have created. It supports the most obscure ancient formats up to the cutting edge."
-HOMEPAGE = "https://www.ffmpeg.org/"
-SECTION = "libs"
-
-LICENSE = "GPLv2+ & LGPLv2.1+ & ISC & MIT & BSD-2-Clause & BSD-3-Clause & IJG"
-LICENSE:${PN} = "GPLv2+"
-LICENSE:libavcodec = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
-LICENSE:libavdevice = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
-LICENSE:libavfilter = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
-LICENSE:libavformat = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
-LICENSE:libavresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
-LICENSE:libavutil = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
-LICENSE:libpostproc = "GPLv2+"
-LICENSE:libswresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
-LICENSE:libswscale = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
-LICENSE_FLAGS = "commercial"
-
-LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
-                    file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
-                    file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
-
-SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
-           file://0001-libavutil-include-assembly-with-full-path-from-sourc.patch \
-           file://fix-CVE-2020-20446.patch \
-           file://fix-CVE-2020-20453.patch \
-           file://fix-CVE-2020-22015.patch \
-           file://fix-CVE-2020-22021.patch \
-           file://fix-CVE-2020-22033-CVE-2020-22019.patch \
-           file://fix-CVE-2021-33815.patch \
-           file://fix-CVE-2021-38171.patch \
-	   file://fix-CVE-2021-38114.patch \ 
-          "
-SRC_URI[sha256sum] = "06b10a183ce5371f915c6bb15b7b1fffbe046e8275099c96affc29e17645d909"
-
-# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
-ARM_INSTRUCTION_SET:armv4 = "arm"
-ARM_INSTRUCTION_SET:armv5 = "arm"
-ARM_INSTRUCTION_SET:armv6 = "arm"
-
-# Should be API compatible with libav (which was a fork of ffmpeg)
-# libpostproc was previously packaged from a separate recipe
-PROVIDES = "libav libpostproc"
-
-DEPENDS = "nasm-native"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc avresample \
-                   alsa bzlib lzma pic pthreads shared theora zlib \
-                   ${@bb.utils.contains('AVAILTUNES', 'mips32r2', 'mips32r2', '', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv xcb', '', d)}"
-
-# libraries to build in addition to avutil
-PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice"
-PACKAGECONFIG[avfilter] = "--enable-avfilter,--disable-avfilter"
-PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec"
-PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat"
-PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample"
-PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale"
-PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc"
-PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample"
-
-# features to support
-PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
-PACKAGECONFIG[altivec] = "--enable-altivec,--disable-altivec,"
-PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2"
-PACKAGECONFIG[fdk-aac] = "--enable-libfdk-aac --enable-nonfree,--disable-libfdk-aac,fdk-aac"
-PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl"
-PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm"
-PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack"
-PACKAGECONFIG[libopus] = "--enable-libopus,--disable-libopus,libopus"
-PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis"
-PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz"
-PACKAGECONFIG[mfx] = "--enable-libmfx,--disable-libmfx,intel-mediasdk"
-PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame"
-PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
-PACKAGECONFIG[sdl2] = "--enable-sdl2,--disable-sdl2,virtual/libsdl2"
-PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex"
-PACKAGECONFIG[srt] = "--enable-libsrt,--disable-libsrt,srt"
-PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora libogg"
-PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
-PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
-PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx"
-PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264"
-PACKAGECONFIG[x265] = "--enable-libx265,--disable-libx265,x265"
-PACKAGECONFIG[xcb] = "--enable-libxcb,--disable-libxcb,libxcb"
-PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv"
-PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib"
-
-# other configuration options
-PACKAGECONFIG[mips32r2] = ",--disable-mipsdsp --disable-mipsdspr2"
-PACKAGECONFIG[pic] = "--enable-pic"
-PACKAGECONFIG[pthreads] = "--enable-pthreads,--disable-pthreads"
-PACKAGECONFIG[shared] = "--enable-shared"
-PACKAGECONFIG[strip] = ",--disable-stripping"
-
-# Check codecs that require --enable-nonfree
-USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'openssl' ], 'yes', '', d)}"
-
-def cpu(d):
-    for arg in (d.getVar('TUNE_CCARGS') or '').split():
-        if arg.startswith('-mcpu='):
-            return arg[6:]
-    return 'generic'
-
-EXTRA_OECONF = " \
-    ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \
-    \
-    --cross-prefix=${TARGET_PREFIX} \
-    \
-    --ld='${CCLD}' \
-    --cc='${CC}' \
-    --cxx='${CXX}' \
-    --arch=${TARGET_ARCH} \
-    --target-os='linux' \
-    --enable-cross-compile \
-    --extra-cflags='${CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}' \
-    --extra-ldflags='${LDFLAGS}' \
-    --sysroot='${STAGING_DIR_TARGET}' \
-    ${EXTRA_FFCONF} \
-    --libdir=${libdir} \
-    --shlibdir=${libdir} \
-    --datadir=${datadir}/ffmpeg \
-    --cpu=${@cpu(d)} \
-    --pkg-config=pkg-config \
-"
-
-EXTRA_OECONF:append:linux-gnux32 = " --disable-asm"
-
-EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', '--disable-mips64r2 --disable-mips32r2', '', d)}"
-EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r2', '--disable-mips64r6 --disable-mips32r6', '', d)}"
-EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mips32r2', '--disable-mips64r6 --disable-mips32r6', '', d)}"
-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 --disable-msa2"
-EXTRA_OECONF:append:riscv32 = " --extra-libs=-latomic"
-EXTRA_OECONF:append:armv5 = " --extra-libs=-latomic"
-
-# gold crashes on x86, another solution is to --disable-asm but thats more hacky
-# ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684
-
-LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
-
-EXTRA_OEMAKE = "V=1"
-
-do_configure() {
-    ${S}/configure ${EXTRA_OECONF}
-}
-
-# patch out build host paths for reproducibility
-do_compile:prepend:class-target() {
-        sed -i -e "s,${WORKDIR},,g" ${B}/config.h
-}
-
-PACKAGES =+ "libavcodec \
-             libavdevice \
-             libavfilter \
-             libavformat \
-             libavresample \
-             libavutil \
-             libpostproc \
-             libswresample \
-             libswscale"
-
-FILES:libavcodec = "${libdir}/libavcodec${SOLIBS}"
-FILES:libavdevice = "${libdir}/libavdevice${SOLIBS}"
-FILES:libavfilter = "${libdir}/libavfilter${SOLIBS}"
-FILES:libavformat = "${libdir}/libavformat${SOLIBS}"
-FILES:libavresample = "${libdir}/libavresample${SOLIBS}"
-FILES:libavutil = "${libdir}/libavutil${SOLIBS}"
-FILES:libpostproc = "${libdir}/libpostproc${SOLIBS}"
-FILES:libswresample = "${libdir}/libswresample${SOLIBS}"
-FILES:libswscale = "${libdir}/libswscale${SOLIBS}"
-
-# ffmpeg disables PIC on some platforms (e.g. x86-32)
-INSANE_SKIP:${MLPREFIX}libavcodec = "textrel"
-INSANE_SKIP:${MLPREFIX}libavdevice = "textrel"
-INSANE_SKIP:${MLPREFIX}libavfilter = "textrel"
-INSANE_SKIP:${MLPREFIX}libavformat = "textrel"
-INSANE_SKIP:${MLPREFIX}libavutil = "textrel"
-INSANE_SKIP:${MLPREFIX}libavresample = "textrel"
-INSANE_SKIP:${MLPREFIX}libswscale = "textrel"
-INSANE_SKIP:${MLPREFIX}libswresample = "textrel"
-INSANE_SKIP:${MLPREFIX}libpostproc = "textrel"
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_5.0.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_5.0.bb
new file mode 100644
index 0000000..4ba5ff4
--- /dev/null
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_5.0.bb
@@ -0,0 +1,176 @@
+SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video."
+DESCRIPTION = "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, \
+               mux, demux, stream, filter and play pretty much anything that humans and machines \
+               have created. It supports the most obscure ancient formats up to the cutting edge."
+HOMEPAGE = "https://www.ffmpeg.org/"
+SECTION = "libs"
+
+LICENSE = "GPLv2+ & LGPLv2.1+ & ISC & MIT & BSD-2-Clause & BSD-3-Clause & IJG"
+LICENSE:${PN} = "GPLv2+"
+LICENSE:libavcodec = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE:libavdevice = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE:libavfilter = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE:libavformat = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE:libavutil = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE:libpostproc = "GPLv2+"
+LICENSE:libswresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE:libswscale = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE_FLAGS = "commercial"
+
+LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
+                    file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
+           file://0001-libavutil-include-assembly-with-full-path-from-sourc.patch \
+           "
+SRC_URI[sha256sum] = "51e919f7d205062c0fd4fae6243a84850391115104ccf1efc451733bc0ac7298"
+
+# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
+ARM_INSTRUCTION_SET:armv4 = "arm"
+ARM_INSTRUCTION_SET:armv5 = "arm"
+ARM_INSTRUCTION_SET:armv6 = "arm"
+
+# Should be API compatible with libav (which was a fork of ffmpeg)
+# libpostproc was previously packaged from a separate recipe
+PROVIDES = "libav libpostproc"
+
+DEPENDS = "nasm-native"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc \
+                   alsa bzlib lzma pic pthreads shared theora zlib \
+                   ${@bb.utils.contains('AVAILTUNES', 'mips32r2', 'mips32r2', '', d)} \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv xcb', '', d)}"
+
+# libraries to build in addition to avutil
+PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice"
+PACKAGECONFIG[avfilter] = "--enable-avfilter,--disable-avfilter"
+PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec"
+PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat"
+PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample"
+PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale"
+PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc"
+
+# features to support
+PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
+PACKAGECONFIG[altivec] = "--enable-altivec,--disable-altivec,"
+PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2"
+PACKAGECONFIG[fdk-aac] = "--enable-libfdk-aac --enable-nonfree,--disable-libfdk-aac,fdk-aac"
+PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl"
+PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm"
+PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack"
+PACKAGECONFIG[libopus] = "--enable-libopus,--disable-libopus,libopus"
+PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis"
+PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz"
+PACKAGECONFIG[mfx] = "--enable-libmfx,--disable-libmfx,intel-mediasdk"
+PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame"
+PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
+PACKAGECONFIG[sdl2] = "--enable-sdl2,--disable-sdl2,virtual/libsdl2"
+PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex"
+PACKAGECONFIG[srt] = "--enable-libsrt,--disable-libsrt,srt"
+PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora libogg"
+PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
+PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
+PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx"
+PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264"
+PACKAGECONFIG[x265] = "--enable-libx265,--disable-libx265,x265"
+PACKAGECONFIG[xcb] = "--enable-libxcb,--disable-libxcb,libxcb"
+PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv"
+PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib"
+
+# other configuration options
+PACKAGECONFIG[mips32r2] = ",--disable-mipsdsp --disable-mipsdspr2"
+PACKAGECONFIG[pic] = "--enable-pic"
+PACKAGECONFIG[pthreads] = "--enable-pthreads,--disable-pthreads"
+PACKAGECONFIG[shared] = "--enable-shared"
+PACKAGECONFIG[strip] = ",--disable-stripping"
+
+# Check codecs that require --enable-nonfree
+USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'openssl' ], 'yes', '', d)}"
+
+def cpu(d):
+    for arg in (d.getVar('TUNE_CCARGS') or '').split():
+        if arg.startswith('-mcpu='):
+            return arg[6:]
+    return 'generic'
+
+EXTRA_OECONF = " \
+    ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \
+    \
+    --cross-prefix=${TARGET_PREFIX} \
+    \
+    --ld='${CCLD}' \
+    --cc='${CC}' \
+    --cxx='${CXX}' \
+    --arch=${TARGET_ARCH} \
+    --target-os='linux' \
+    --enable-cross-compile \
+    --extra-cflags='${CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}' \
+    --extra-ldflags='${LDFLAGS}' \
+    --sysroot='${STAGING_DIR_TARGET}' \
+    ${EXTRA_FFCONF} \
+    --libdir=${libdir} \
+    --shlibdir=${libdir} \
+    --datadir=${datadir}/ffmpeg \
+    --cpu=${@cpu(d)} \
+    --pkg-config=pkg-config \
+"
+
+EXTRA_OECONF:append:linux-gnux32 = " --disable-asm"
+
+EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', '--disable-mips64r2 --disable-mips32r2', '', d)}"
+EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r2', '--disable-mips64r6 --disable-mips32r6', '', d)}"
+EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mips32r2', '--disable-mips64r6 --disable-mips32r6', '', d)}"
+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 --disable-msa2"
+EXTRA_OECONF:append:riscv32 = " --extra-libs=-latomic"
+EXTRA_OECONF:append:armv5 = " --extra-libs=-latomic"
+EXTRA_OECONF:append:powerpc = " --extra-libs=-latomic"
+
+# gold crashes on x86, another solution is to --disable-asm but thats more hacky
+# ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684
+
+LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
+EXTRA_OEMAKE = "V=1"
+
+do_configure() {
+    ${S}/configure ${EXTRA_OECONF}
+}
+
+# patch out build host paths for reproducibility
+do_compile:prepend:class-target() {
+        sed -i -e "s,${WORKDIR},,g" ${B}/config.h
+}
+
+PACKAGES =+ "libavcodec \
+             libavdevice \
+             libavfilter \
+             libavformat \
+             libavutil \
+             libpostproc \
+             libswresample \
+             libswscale"
+
+FILES:libavcodec = "${libdir}/libavcodec${SOLIBS}"
+FILES:libavdevice = "${libdir}/libavdevice${SOLIBS}"
+FILES:libavfilter = "${libdir}/libavfilter${SOLIBS}"
+FILES:libavformat = "${libdir}/libavformat${SOLIBS}"
+FILES:libavutil = "${libdir}/libavutil${SOLIBS}"
+FILES:libpostproc = "${libdir}/libpostproc${SOLIBS}"
+FILES:libswresample = "${libdir}/libswresample${SOLIBS}"
+FILES:libswscale = "${libdir}/libswscale${SOLIBS}"
+
+# ffmpeg disables PIC on some platforms (e.g. x86-32)
+INSANE_SKIP:${MLPREFIX}libavcodec = "textrel"
+INSANE_SKIP:${MLPREFIX}libavdevice = "textrel"
+INSANE_SKIP:${MLPREFIX}libavfilter = "textrel"
+INSANE_SKIP:${MLPREFIX}libavformat = "textrel"
+INSANE_SKIP:${MLPREFIX}libavutil = "textrel"
+INSANE_SKIP:${MLPREFIX}libswscale = "textrel"
+INSANE_SKIP:${MLPREFIX}libswresample = "textrel"
+INSANE_SKIP:${MLPREFIX}libpostproc = "textrel"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-gst-libav-fix-build-with-ffmpeg-5.0.0.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-gst-libav-fix-build-with-ffmpeg-5.0.0.patch
new file mode 100644
index 0000000..022ff9a
--- /dev/null
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-gst-libav-fix-build-with-ffmpeg-5.0.0.patch
@@ -0,0 +1,346 @@
+From 38d10ee800e42afeacc6bee714216e4c974c11f5 Mon Sep 17 00:00:00 2001
+From: Xi Ruoyao <xry111@mengyan1223.wang>
+Date: Mon, 17 Jan 2022 01:33:47 +0800
+Subject: [PATCH] gst-libav: fix build with ffmpeg-5.0.0
+
+Latest ffmpeg has removed avcodec_get_context_defaults(), and its
+documentation says a new AVCodecContext should be allocated for this
+purpose.  The pointer returned by avcodec_find_decoder() is now
+const-qualified so we also need to adjust for it.  And, AVCOL_RANGE_MPEG
+is now rejected with strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL.
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1531>
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ ext/libav/gstavauddec.c   | 22 ++++++++-------------
+ ext/libav/gstavaudenc.c   | 40 +++++++++++++++++++--------------------
+ ext/libav/gstavcodecmap.c |  7 ++++---
+ ext/libav/gstavutils.c    |  2 +-
+ ext/libav/gstavviddec.c   | 28 +++++++++++----------------
+ ext/libav/gstavvidenc.c   | 21 ++++++++++----------
+ 6 files changed, 54 insertions(+), 66 deletions(-)
+
+diff --git a/ext/libav/gstavauddec.c b/ext/libav/gstavauddec.c
+index baf7aa5..b03a724 100644
+--- a/ext/libav/gstavauddec.c
++++ b/ext/libav/gstavauddec.c
+@@ -168,12 +168,7 @@ gst_ffmpegauddec_finalize (GObject * object)
+   GstFFMpegAudDec *ffmpegdec = (GstFFMpegAudDec *) object;
+ 
+   av_frame_free (&ffmpegdec->frame);
+-
+-  if (ffmpegdec->context != NULL) {
+-    gst_ffmpeg_avcodec_close (ffmpegdec->context);
+-    av_free (ffmpegdec->context);
+-    ffmpegdec->context = NULL;
+-  }
++  avcodec_free_context (&ffmpegdec->context);
+ 
+   G_OBJECT_CLASS (parent_class)->finalize (object);
+ }
+@@ -193,14 +188,12 @@ gst_ffmpegauddec_close (GstFFMpegAudDec * ffmpegdec, gboolean reset)
+   gst_ffmpeg_avcodec_close (ffmpegdec->context);
+   ffmpegdec->opened = FALSE;
+ 
+-  if (ffmpegdec->context->extradata) {
+-    av_free (ffmpegdec->context->extradata);
+-    ffmpegdec->context->extradata = NULL;
+-  }
++  av_freep (&ffmpegdec->context->extradata);
+ 
+   if (reset) {
+-    if (avcodec_get_context_defaults3 (ffmpegdec->context,
+-            oclass->in_plugin) < 0) {
++    avcodec_free_context (&ffmpegdec->context);
++    ffmpegdec->context = avcodec_alloc_context3 (oclass->in_plugin);
++    if (ffmpegdec->context == NULL) {
+       GST_DEBUG_OBJECT (ffmpegdec, "Failed to set context defaults");
+       return FALSE;
+     }
+@@ -219,8 +212,9 @@ gst_ffmpegauddec_start (GstAudioDecoder * decoder)
+   oclass = (GstFFMpegAudDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec));
+ 
+   GST_OBJECT_LOCK (ffmpegdec);
+-  gst_ffmpeg_avcodec_close (ffmpegdec->context);
+-  if (avcodec_get_context_defaults3 (ffmpegdec->context, oclass->in_plugin) < 0) {
++  avcodec_free_context (&ffmpegdec->context);
++  ffmpegdec->context = avcodec_alloc_context3 (oclass->in_plugin);
++  if (ffmpegdec->context == NULL) {
+     GST_DEBUG_OBJECT (ffmpegdec, "Failed to set context defaults");
+     GST_OBJECT_UNLOCK (ffmpegdec);
+     return FALSE;
+diff --git a/ext/libav/gstavaudenc.c b/ext/libav/gstavaudenc.c
+index 3ff6432..689982f 100644
+--- a/ext/libav/gstavaudenc.c
++++ b/ext/libav/gstavaudenc.c
+@@ -175,10 +175,8 @@ gst_ffmpegaudenc_finalize (GObject * object)
+ 
+   /* clean up remaining allocated data */
+   av_frame_free (&ffmpegaudenc->frame);
+-  gst_ffmpeg_avcodec_close (ffmpegaudenc->context);
+-  gst_ffmpeg_avcodec_close (ffmpegaudenc->refcontext);
+-  av_free (ffmpegaudenc->context);
+-  av_free (ffmpegaudenc->refcontext);
++  avcodec_free_context (&ffmpegaudenc->context);
++  avcodec_free_context (&ffmpegaudenc->refcontext);
+ 
+   G_OBJECT_CLASS (parent_class)->finalize (object);
+ }
+@@ -193,9 +191,9 @@ gst_ffmpegaudenc_start (GstAudioEncoder * encoder)
+   ffmpegaudenc->opened = FALSE;
+   ffmpegaudenc->need_reopen = FALSE;
+ 
+-  gst_ffmpeg_avcodec_close (ffmpegaudenc->context);
+-  if (avcodec_get_context_defaults3 (ffmpegaudenc->context,
+-          oclass->in_plugin) < 0) {
++  avcodec_free_context (&ffmpegaudenc->context);
++  ffmpegaudenc->context = avcodec_alloc_context3 (oclass->in_plugin);
++  if (ffmpegaudenc->context == NULL) {
+     GST_DEBUG_OBJECT (ffmpegaudenc, "Failed to set context defaults");
+     return FALSE;
+   }
+@@ -241,10 +239,10 @@ gst_ffmpegaudenc_set_format (GstAudioEncoder * encoder, GstAudioInfo * info)
+ 
+   /* close old session */
+   if (ffmpegaudenc->opened) {
+-    gst_ffmpeg_avcodec_close (ffmpegaudenc->context);
++    avcodec_free_context (&ffmpegaudenc->context);
+     ffmpegaudenc->opened = FALSE;
+-    if (avcodec_get_context_defaults3 (ffmpegaudenc->context,
+-            oclass->in_plugin) < 0) {
++    ffmpegaudenc->context = avcodec_alloc_context3 (oclass->in_plugin);
++    if (ffmpegaudenc->context == NULL) {
+       GST_DEBUG_OBJECT (ffmpegaudenc, "Failed to set context defaults");
+       return FALSE;
+     }
+@@ -286,11 +284,11 @@ gst_ffmpegaudenc_set_format (GstAudioEncoder * encoder, GstAudioInfo * info)
+   /* open codec */
+   if (gst_ffmpeg_avcodec_open (ffmpegaudenc->context, oclass->in_plugin) < 0) {
+     gst_caps_unref (allowed_caps);
+-    gst_ffmpeg_avcodec_close (ffmpegaudenc->context);
++    avcodec_free_context (&ffmpegaudenc->context);
+     GST_DEBUG_OBJECT (ffmpegaudenc, "avenc_%s: Failed to open FFMPEG codec",
+         oclass->in_plugin->name);
+-    if (avcodec_get_context_defaults3 (ffmpegaudenc->context,
+-            oclass->in_plugin) < 0)
++    ffmpegaudenc->context = avcodec_alloc_context3 (oclass->in_plugin);
++    if (ffmpegaudenc->context == NULL)
+       GST_DEBUG_OBJECT (ffmpegaudenc, "Failed to set context defaults");
+ 
+     if ((oclass->in_plugin->capabilities & AV_CODEC_CAP_EXPERIMENTAL) &&
+@@ -312,10 +310,10 @@ gst_ffmpegaudenc_set_format (GstAudioEncoder * encoder, GstAudioInfo * info)
+ 
+   if (!other_caps) {
+     gst_caps_unref (allowed_caps);
+-    gst_ffmpeg_avcodec_close (ffmpegaudenc->context);
++    avcodec_free_context (&ffmpegaudenc->context);
+     GST_DEBUG ("Unsupported codec - no caps found");
+-    if (avcodec_get_context_defaults3 (ffmpegaudenc->context,
+-            oclass->in_plugin) < 0)
++    ffmpegaudenc->context = avcodec_alloc_context3 (oclass->in_plugin);
++    if (ffmpegaudenc->context == NULL)
+       GST_DEBUG_OBJECT (ffmpegaudenc, "Failed to set context defaults");
+     return FALSE;
+   }
+@@ -331,10 +329,10 @@ gst_ffmpegaudenc_set_format (GstAudioEncoder * encoder, GstAudioInfo * info)
+ 
+   if (!gst_audio_encoder_set_output_format (GST_AUDIO_ENCODER (ffmpegaudenc),
+           icaps)) {
+-    gst_ffmpeg_avcodec_close (ffmpegaudenc->context);
++    avcodec_free_context (&ffmpegaudenc->context);
+     gst_caps_unref (icaps);
+-    if (avcodec_get_context_defaults3 (ffmpegaudenc->context,
+-            oclass->in_plugin) < 0)
++    ffmpegaudenc->context = avcodec_alloc_context3 (oclass->in_plugin);
++    if (ffmpegaudenc->context == NULL)
+       GST_DEBUG_OBJECT (ffmpegaudenc, "Failed to set context defaults");
+     return FALSE;
+   }
+@@ -403,8 +401,8 @@ buffer_info_free (void *opaque, guint8 * data)
+     gst_buffer_unmap (info->buffer, &info->map);
+     gst_buffer_unref (info->buffer);
+   } else {
+-    av_free (info->ext_data);
+-    av_free (info->ext_data_array);
++    av_freep (&info->ext_data);
++    av_freep (&info->ext_data_array);
+   }
+   g_slice_free (BufferInfo, info);
+ }
+diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c
+index f58633d..e2a3641 100644
+--- a/ext/libav/gstavcodecmap.c
++++ b/ext/libav/gstavcodecmap.c
+@@ -2331,7 +2331,7 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id,
+   }
+ 
+   if (buildcaps) {
+-    AVCodec *codec;
++    const AVCodec *codec;
+ 
+     if ((codec = avcodec_find_decoder (codec_id)) ||
+         (codec = avcodec_find_encoder (codec_id))) {
+@@ -2975,6 +2975,7 @@ gst_ffmpeg_videoinfo_to_context (GstVideoInfo * info, AVCodecContext * context)
+     context->color_range = AVCOL_RANGE_JPEG;
+   } else {
+     context->color_range = AVCOL_RANGE_MPEG;
++    context->strict_std_compliance = FF_COMPLIANCE_UNOFFICIAL;
+   }
+ }
+ 
+@@ -4330,7 +4331,7 @@ gst_ffmpeg_caps_to_codecid (const GstCaps * caps, AVCodecContext * context)
+     audio = TRUE;
+   } else if (!strncmp (mimetype, "audio/x-gst-av-", 15)) {
+     gchar ext[16];
+-    AVCodec *codec;
++    const AVCodec *codec;
+ 
+     if (strlen (mimetype) <= 30 &&
+         sscanf (mimetype, "audio/x-gst-av-%s", ext) == 1) {
+@@ -4342,7 +4343,7 @@ gst_ffmpeg_caps_to_codecid (const GstCaps * caps, AVCodecContext * context)
+     }
+   } else if (!strncmp (mimetype, "video/x-gst-av-", 15)) {
+     gchar ext[16];
+-    AVCodec *codec;
++    const AVCodec *codec;
+ 
+     if (strlen (mimetype) <= 30 &&
+         sscanf (mimetype, "video/x-gst-av-%s", ext) == 1) {
+diff --git a/ext/libav/gstavutils.c b/ext/libav/gstavutils.c
+index 3780cff..f3878c3 100644
+--- a/ext/libav/gstavutils.c
++++ b/ext/libav/gstavutils.c
+@@ -36,7 +36,7 @@
+ const gchar *
+ gst_ffmpeg_get_codecid_longname (enum AVCodecID codec_id)
+ {
+-  AVCodec *codec;
++  const AVCodec *codec;
+   /* Let's use what ffmpeg can provide us */
+ 
+   if ((codec = avcodec_find_decoder (codec_id)) ||
+diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c
+index 7ec5766..5dd207e 100644
+--- a/ext/libav/gstavviddec.c
++++ b/ext/libav/gstavviddec.c
+@@ -320,12 +320,7 @@ gst_ffmpegviddec_finalize (GObject * object)
+   GstFFMpegVidDec *ffmpegdec = (GstFFMpegVidDec *) object;
+ 
+   av_frame_free (&ffmpegdec->picture);
+-
+-  if (ffmpegdec->context != NULL) {
+-    gst_ffmpeg_avcodec_close (ffmpegdec->context);
+-    av_free (ffmpegdec->context);
+-    ffmpegdec->context = NULL;
+-  }
++  avcodec_free_context (&ffmpegdec->context);
+ 
+   G_OBJECT_CLASS (parent_class)->finalize (object);
+ }
+@@ -363,13 +358,11 @@ gst_ffmpegviddec_close (GstFFMpegVidDec * ffmpegdec, gboolean reset)
+ 
+   gst_buffer_replace (&ffmpegdec->palette, NULL);
+ 
+-  if (ffmpegdec->context->extradata) {
+-    av_free (ffmpegdec->context->extradata);
+-    ffmpegdec->context->extradata = NULL;
+-  }
++  av_freep (&ffmpegdec->context->extradata);
+   if (reset) {
+-    if (avcodec_get_context_defaults3 (ffmpegdec->context,
+-            oclass->in_plugin) < 0) {
++    avcodec_free_context (&ffmpegdec->context);
++    ffmpegdec->context = avcodec_alloc_context3 (oclass->in_plugin);
++    if (ffmpegdec->context == NULL) {
+       GST_DEBUG_OBJECT (ffmpegdec, "Failed to set context defaults");
+       return FALSE;
+     }
+@@ -1704,7 +1697,7 @@ gst_ffmpegviddec_video_frame (GstFFMpegVidDec * ffmpegdec,
+     if (side_data) {
+       GST_LOG_OBJECT (ffmpegdec,
+           "Found CC side data of type AV_FRAME_DATA_A53_CC, size %d",
+-          side_data->size);
++          (int) side_data->size);
+       GST_MEMDUMP ("A53 CC", side_data->data, side_data->size);
+ 
+       /* do not add closed caption meta if it already exists */
+@@ -1966,8 +1959,9 @@ gst_ffmpegviddec_start (GstVideoDecoder * decoder)
+   oclass = (GstFFMpegVidDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec));
+ 
+   GST_OBJECT_LOCK (ffmpegdec);
+-  gst_ffmpeg_avcodec_close (ffmpegdec->context);
+-  if (avcodec_get_context_defaults3 (ffmpegdec->context, oclass->in_plugin) < 0) {
++  avcodec_free_context (&ffmpegdec->context);
++  ffmpegdec->context = avcodec_alloc_context3 (oclass->in_plugin);
++  if (ffmpegdec->context == NULL) {
+     GST_DEBUG_OBJECT (ffmpegdec, "Failed to set context defaults");
+     GST_OBJECT_UNLOCK (ffmpegdec);
+     return FALSE;
+@@ -2261,10 +2255,10 @@ gst_ffmpegviddec_get_property (GObject * object,
+ 
+   switch (prop_id) {
+     case PROP_LOWRES:
+-      g_value_set_enum (value, ffmpegdec->context->lowres);
++      g_value_set_enum (value, ffmpegdec->lowres);
+       break;
+     case PROP_SKIPFRAME:
+-      g_value_set_enum (value, ffmpegdec->context->skip_frame);
++      g_value_set_enum (value, ffmpegdec->skip_frame);
+       break;
+     case PROP_DIRECT_RENDERING:
+       g_value_set_boolean (value, ffmpegdec->direct_rendering);
+diff --git a/ext/libav/gstavvidenc.c b/ext/libav/gstavvidenc.c
+index 0468d88..2ed9e5a 100644
+--- a/ext/libav/gstavvidenc.c
++++ b/ext/libav/gstavvidenc.c
+@@ -224,8 +224,8 @@ gst_ffmpegvidenc_finalize (GObject * object)
+   av_frame_free (&ffmpegenc->picture);
+   gst_ffmpeg_avcodec_close (ffmpegenc->context);
+   gst_ffmpeg_avcodec_close (ffmpegenc->refcontext);
+-  av_free (ffmpegenc->context);
+-  av_free (ffmpegenc->refcontext);
++  av_freep (&ffmpegenc->context);
++  av_freep (&ffmpegenc->refcontext);
+ 
+   G_OBJECT_CLASS (parent_class)->finalize (object);
+ }
+@@ -247,10 +247,10 @@ gst_ffmpegvidenc_set_format (GstVideoEncoder * encoder,
+ 
+   /* close old session */
+   if (ffmpegenc->opened) {
+-    gst_ffmpeg_avcodec_close (ffmpegenc->context);
++    avcodec_free_context (&ffmpegenc->context);
+     ffmpegenc->opened = FALSE;
+-    if (avcodec_get_context_defaults3 (ffmpegenc->context,
+-            oclass->in_plugin) < 0) {
++    ffmpegenc->context = avcodec_alloc_context3 (oclass->in_plugin);
++    if (ffmpegenc->context == NULL) {
+       GST_DEBUG_OBJECT (ffmpegenc, "Failed to set context defaults");
+       return FALSE;
+     }
+@@ -454,9 +454,9 @@ bad_input_fmt:
+   }
+ close_codec:
+   {
+-    gst_ffmpeg_avcodec_close (ffmpegenc->context);
+-    if (avcodec_get_context_defaults3 (ffmpegenc->context,
+-            oclass->in_plugin) < 0)
++    avcodec_free_context (&ffmpegenc->context);
++    ffmpegenc->context = avcodec_alloc_context3 (oclass->in_plugin);
++    if (ffmpegenc->context == NULL)
+       GST_DEBUG_OBJECT (ffmpegenc, "Failed to set context defaults");
+     goto cleanup_stats_in;
+   }
+@@ -896,8 +896,9 @@ gst_ffmpegvidenc_start (GstVideoEncoder * encoder)
+   ffmpegenc->need_reopen = FALSE;
+ 
+   /* close old session */
+-  gst_ffmpeg_avcodec_close (ffmpegenc->context);
+-  if (avcodec_get_context_defaults3 (ffmpegenc->context, oclass->in_plugin) < 0) {
++  avcodec_free_context (&ffmpegenc->context);
++  ffmpegenc->context = avcodec_alloc_context3 (oclass->in_plugin);
++  if (ffmpegenc->context == NULL) {
+     GST_DEBUG_OBJECT (ffmpegenc, "Failed to set context defaults");
+     return FALSE;
+   }
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.5.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.5.bb
index a77ec62..64b8bcd 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.5.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.5.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://0001-gst-libav-fix-build-with-ffmpeg-5.0.0.patch \
+           "
 SRC_URI[sha256sum] = "822e008a910e9dd13aedbdd8dc63fedef4040c0ee2e927bab3112e9de693a548"
 
 S = "${WORKDIR}/gst-libav-${PV}"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.5.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.5.bb
index f3ea6f7..f90dff6 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.5.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.5.bb
@@ -18,6 +18,10 @@
 LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
+# remove at next version upgrade or when output changes
+PR = "r1"
+HASHEQUIV_HASH_VERSION .= ".1"
+
 DEPENDS += "gstreamer1.0-plugins-base"
 
 inherit gobject-introspection
@@ -25,7 +29,7 @@
 PACKAGECONFIG ??= " \
     ${GSTREAMER_ORC} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan x11', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
     bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \
@@ -93,6 +97,7 @@
 PACKAGECONFIG[webrtc]          = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice"
 PACKAGECONFIG[webrtcdsp]       = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing"
 PACKAGECONFIG[zbar]            = "-Dzbar=enabled,-Dzbar=disabled,zbar"
+PACKAGECONFIG[x11]             = "-Dx11=enabled,-Dx11=disabled,libxcb libxkbcommon"
 PACKAGECONFIG[x265]            = "-Dx265=enabled,-Dx265=disabled,x265"
 
 EXTRA_OEMESON += " \
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.5.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.5.bb
index 5e2cca3..1802418 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.5.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.5.bb
@@ -43,6 +43,7 @@
 
 PACKAGECONFIG[alsa]         = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib"
 PACKAGECONFIG[cdparanoia]   = "-Dcdparanoia=enabled,-Dcdparanoia=disabled,cdparanoia"
+PACKAGECONFIG[graphene]     = "-Dgl-graphene=enabled,-Dgl-graphene=disabled,graphene"
 PACKAGECONFIG[jpeg]         = "-Dgl-jpeg=enabled,-Dgl-jpeg=disabled,jpeg"
 PACKAGECONFIG[ogg]          = "-Dogg=enabled,-Dogg=disabled,libogg"
 PACKAGECONFIG[opus]         = "-Dopus=enabled,-Dopus=disabled,libopus"
@@ -71,7 +72,6 @@
 
 EXTRA_OEMESON += " \
     -Ddoc=disabled \
-    -Dgl-graphene=disabled \
     ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \
     ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \
     ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.18.5.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.18.5.bb
index a32805d..1dd7d0d 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.18.5.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.18.5.bb
@@ -21,14 +21,6 @@
 
 # gobject-introspection is mandatory and cannot be configured
 REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+GIR_MESON_OPTION = ""
 
-inherit meson pkgconfig distutils3-base upstream-version-is-even features_check
-
-# 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 prelink-native"
-
-# Even though introspection is disabled on -native, gobject-introspection package is still
-# needed for m4 macros.
-DEPENDS:append:class-native = " gobject-introspection-native"
-DEPENDS:append:class-nativesdk = " gobject-introspection-native"
+inherit meson pkgconfig setuptools3-base upstream-version-is-even gobject-introspection features_check
diff --git a/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0/0001-configure.ac-improve-alsa-handling.patch b/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0/0001-configure.ac-improve-alsa-handling.patch
deleted file mode 100644
index d19b514..0000000
--- a/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0/0001-configure.ac-improve-alsa-handling.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 957ebce3837588f71016e37ffaf9aad0a9d41cec Mon Sep 17 00:00:00 2001
-From: Tanu Kaskinen <tanuk@iki.fi>
-Date: Fri, 23 Sep 2016 12:02:06 +0300
-Subject: [PATCH] configure.ac: improve alsa handling
-
-Three improvements:
-
-1) "--enable-alsa" or "--disable-alsa" caused a warning about an
-unsupported configure option, because AC_ARG_ENABLE was not used.
-
-2) If alsa was disabled, the "Have ALSA" item in the summary would print
-an empty string instead of "no".
-
-3) If "--enable-alsa" was passed to configure, but the headers were not
-found, configure would still succeed (with alsa disabled). It's better
-to fail and abort configure if a feature that was explicitly requested
-can't be enabled.
-
-Upstream-Status: Submitted [sent to src@mega-nerd.com]
-
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- configure.ac | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 474c6ab..bad597e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -101,6 +101,9 @@ AC_ARG_ENABLE(cpu-clip,
- 		AC_HELP_STRING([--disable-cpu-clip], [disable tricky cpu specific clipper]),
- 		ac_arg_cpu_clip="N", ac_arg_cpu_clip="Y")
- 
-+AC_ARG_ENABLE(alsa,
-+                AC_HELP_STRING([--disable-alsa], [disable ALSA support in the varispeed-play example program]))
-+
- #====================================================================================
- # Check types and their sizes.
- 
-@@ -194,6 +197,10 @@ if test x$enable_alsa != xno ; then
- 	if test x$ac_cv_header_alsa_asoundlib_h = xyes ; then
- 		ALSA_LIBS="-lasound"
- 		enable_alsa=yes
-+        elif test x$enable_alsa = xyes ; then
-+                AC_MSG_ERROR(["ALSA headers not found"])
-+        else
-+                enable_alsa=no
- 		fi
- 	fi
- 
-@@ -340,7 +347,7 @@ AC_MSG_RESULT([
-     Have FFTW : ................... ${ac_cv_fftw3}])
- 
- AC_MSG_RESULT([    Have libsndfile : ............. ${ac_cv_sndfile}])
--AC_MSG_RESULT([    Have ALSA : ................... ${ac_cv_header_alsa_asoundlib_h}
-+AC_MSG_RESULT([    Have ALSA : ................... ${enable_alsa}
- ])
- 
- AC_MSG_RESULT([  Installation directories :
--- 
-2.9.3
-
diff --git a/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0/shared_version_info.patch b/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0/shared_version_info.patch
deleted file mode 100644
index b42d564..0000000
--- a/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0/shared_version_info.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: libsamplerate-0.1.8/configure.ac
-===================================================================
---- libsamplerate-0.1.8.orig/configure.ac
-+++ libsamplerate-0.1.8/configure.ac
-@@ -53,7 +53,7 @@ AC_PROG_LN_S
- #  6. If any interfaces have been removed since the last public release, then set age
- #     to 0.
- 
--SHARED_VERSION_INFO="1:8:1"
-+SHARED_VERSION_INFO="1:9:1"
- 
- 
- 
diff --git a/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.9.bb b/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.9.bb
deleted file mode 100644
index 8345d68..0000000
--- a/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.9.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Audio Sample Rate Conversion library"
-DESCRIPTION = "Also known as Secret Rabbit Code - a library for performing sample rate conversion of audio data."
-HOMEPAGE = "http://www.mega-nerd.com/SRC/"
-SECTION = "libs"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=336d6faf40fb600bafb0061f4052f1f4 \
-                    file://src/samplerate.c;beginline=1;endline=7;md5=5b6982a8c2811c7312c13cccbf55f55e"
-DEPENDS = "libsndfile1"
-PR = "r1"
-
-SRC_URI = "http://www.mega-nerd.com/SRC/libsamplerate-${PV}.tar.gz \
-           file://0001-configure.ac-improve-alsa-handling.patch \
-           file://shared_version_info.patch \
-"
-
-SRC_URI[md5sum] = "2b78ae9fe63b36b9fbb6267fad93f259"
-SRC_URI[sha256sum] = "0a7eb168e2f21353fb6d84da152e4512126f7dc48ccb0be80578c565413444c1"
-
-CVE_PRODUCT = "libsamplerate"
-
-UPSTREAM_CHECK_URI = "http://www.mega-nerd.com/SRC/download.html"
-
-S = "${WORKDIR}/libsamplerate-${PV}"
-
-inherit autotools pkgconfig
-
-# FFTW and ALSA are only used in tests and examples, so they don't affect
-# normal builds. It should be safe to ignore these, but explicitly disabling
-# them adds some extra certainty that builds are deterministic.
-EXTRA_OECONF = "--disable-fftw --disable-alsa"
diff --git a/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb b/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb
new file mode 100644
index 0000000..ed2b643
--- /dev/null
+++ b/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Audio Sample Rate Conversion library"
+DESCRIPTION = "Also known as Secret Rabbit Code - a library for performing sample rate conversion of audio data."
+HOMEPAGE = "https://libsndfile.github.io/libsamplerate/"
+SECTION = "libs"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=336d6faf40fb600bafb0061f4052f1f4 \
+                    file://src/samplerate.c;beginline=1;endline=7;md5=7a4238289dc36bfb70968ccaa5bd0d4f"
+DEPENDS = "libsndfile1"
+
+SRC_URI = "https://github.com/libsndfile/libsamplerate/releases/download/${PV}/libsamplerate-${PV}.tar.xz \
+"
+
+SRC_URI[sha256sum] = "3258da280511d24b49d6b08615bbe824d0cacc9842b0e4caf11c52cf2b043893"
+
+CVE_PRODUCT = "libsamplerate"
+
+UPSTREAM_CHECK_URI = "https://github.com/libsndfile/libsamplerate/releases"
+
+S = "${WORKDIR}/libsamplerate-${PV}"
+
+inherit autotools pkgconfig
+
+# FFTW and ALSA are only used in tests and examples, so they don't affect
+# normal builds. It should be safe to ignore these, but explicitly disabling
+# them adds some extra certainty that builds are deterministic.
+EXTRA_OECONF = "--disable-fftw --disable-alsa"
diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.29.2.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.29.2.bb
deleted file mode 100644
index ba09e1c..0000000
--- a/poky/meta/recipes-multimedia/mpg123/mpg123_1.29.2.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "Audio decoder for MPEG-1 Layer 1/2/3"
-DESCRIPTION = "The core of mpg123 is an MPEG-1 Layer 1/2/3 decoding library, which can be used by other programs. \
-mpg123 also comes with a command-line tool which can playback using ALSA, PulseAudio, OSS, and several other APIs, \
-and also can write the decoded audio to WAV."
-HOMEPAGE = "http://mpg123.de/"
-BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/"
-SECTION = "multimedia"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169"
-
-SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "9071214ebdfc1b6ed0c0a85d530010bbb8ebc044cfe5ae5930e83f7e6b7937e6"
-
-UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar"
-
-inherit autotools pkgconfig
-
-# The options should be mutually exclusive for configuration script.
-# If both alsa and pulseaudio are specified (as in the default distro features)
-# pulseaudio takes precedence.
-PACKAGECONFIG_ALSA = "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}"
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '${PACKAGECONFIG_ALSA}', d)}"
-
-PACKAGECONFIG[alsa] = "--with-default-audio=alsa,,alsa-lib"
-PACKAGECONFIG[esd] = ",,esound"
-PACKAGECONFIG[jack] = ",,jack"
-PACKAGECONFIG[openal] = ",,openal-soft"
-PACKAGECONFIG[portaudio] = ",,portaudio-v19"
-PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio"
-PACKAGECONFIG[sdl] = ",,libsdl2"
-
-# Following are possible sound output modules:
-# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi
-AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}"
-AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}"
-
-EXTRA_OECONF = " \
-    --enable-shared \
-    --with-audio='${AUDIOMODS}' \
-    ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \
-    ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \
-    ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-cpu=generic_nofpu', '', d)} \
-"
-# Fails to build with thumb-1 (qemuarm)
-#| {standard input}: Assembler messages:
-#| {standard input}:47: Error: selected processor does not support Thumb mode `smull r5,r6,r7,r4'
-#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24'
-#...
-#| make[3]: *** [equalizer.lo] Error 1
-ARM_INSTRUCTION_SET:armv4 = "arm"
-ARM_INSTRUCTION_SET:armv5 = "arm"
diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.29.3.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.29.3.bb
new file mode 100644
index 0000000..6e0dc1b
--- /dev/null
+++ b/poky/meta/recipes-multimedia/mpg123/mpg123_1.29.3.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Audio decoder for MPEG-1 Layer 1/2/3"
+DESCRIPTION = "The core of mpg123 is an MPEG-1 Layer 1/2/3 decoding library, which can be used by other programs. \
+mpg123 also comes with a command-line tool which can playback using ALSA, PulseAudio, OSS, and several other APIs, \
+and also can write the decoded audio to WAV."
+HOMEPAGE = "http://mpg123.de/"
+BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/"
+SECTION = "multimedia"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169"
+
+SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "963885d8cc77262f28b77187c7d189e32195e64244de2530b798ddf32183e847"
+
+UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar"
+
+inherit autotools pkgconfig
+
+# The options should be mutually exclusive for configuration script.
+# If both alsa and pulseaudio are specified (as in the default distro features)
+# pulseaudio takes precedence.
+PACKAGECONFIG_ALSA = "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}"
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '${PACKAGECONFIG_ALSA}', d)}"
+
+PACKAGECONFIG[alsa] = "--with-default-audio=alsa,,alsa-lib"
+PACKAGECONFIG[esd] = ",,esound"
+PACKAGECONFIG[jack] = ",,jack"
+PACKAGECONFIG[openal] = ",,openal-soft"
+PACKAGECONFIG[portaudio] = ",,portaudio-v19"
+PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio"
+PACKAGECONFIG[sdl] = ",,libsdl2"
+
+# Following are possible sound output modules:
+# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi
+AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}"
+AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}"
+
+EXTRA_OECONF = " \
+    --enable-shared \
+    --with-audio='${AUDIOMODS}' \
+    ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \
+    ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \
+    ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-cpu=generic_nofpu', '', d)} \
+"
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:47: Error: selected processor does not support Thumb mode `smull r5,r6,r7,r4'
+#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24'
+#...
+#| make[3]: *** [equalizer.lo] Error 1
+ARM_INSTRUCTION_SET:armv4 = "arm"
+ARM_INSTRUCTION_SET:armv5 = "arm"
diff --git a/poky/meta/recipes-multimedia/speex/speex/CVE-2020-23903.patch b/poky/meta/recipes-multimedia/speex/speex/CVE-2020-23903.patch
new file mode 100644
index 0000000..eb16e95
--- /dev/null
+++ b/poky/meta/recipes-multimedia/speex/speex/CVE-2020-23903.patch
@@ -0,0 +1,30 @@
+Backport patch to fix CVE-2020-23903.
+
+CVE: CVE-2020-23903
+Upstream-Status: Backport [https://github.com/xiph/speex/commit/870ff84]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From 870ff845b32f314aec0036641ffe18aba4916887 Mon Sep 17 00:00:00 2001
+From: Tristan Matthews <tmatth@videolan.org>
+Date: Mon, 13 Jul 2020 23:25:03 -0400
+Subject: [PATCH] wav_io: guard against invalid channel numbers
+
+Fixes #13
+---
+ src/wav_io.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/wav_io.c b/src/wav_io.c
+index b5183015..09d62eb0 100644
+--- a/src/wav_io.c
++++ b/src/wav_io.c
+@@ -111,7 +111,7 @@ int read_wav_header(FILE *file, int *rate, int *channels, int *format, spx_int32
+    stmp = le_short(stmp);
+    *channels = stmp;
+ 
+-   if (stmp>2)
++   if (stmp>2 || stmp<1)
+    {
+       fprintf (stderr, "Only mono and (intensity) stereo supported\n");
+       return -1;
diff --git a/poky/meta/recipes-multimedia/speex/speex_1.2.0.bb b/poky/meta/recipes-multimedia/speex/speex_1.2.0.bb
index 3a0911d..ea475f0 100644
--- a/poky/meta/recipes-multimedia/speex/speex_1.2.0.bb
+++ b/poky/meta/recipes-multimedia/speex/speex_1.2.0.bb
@@ -7,7 +7,9 @@
                     file://include/speex/speex.h;beginline=1;endline=34;md5=ef8c8ea4f7198d71cf3509c6ed05ea50"
 DEPENDS = "libogg speexdsp"
 
-SRC_URI = "http://downloads.xiph.org/releases/speex/speex-${PV}.tar.gz"
+SRC_URI = "http://downloads.xiph.org/releases/speex/speex-${PV}.tar.gz \
+           file://CVE-2020-23903.patch \
+           "
 UPSTREAM_CHECK_REGEX = "speex-(?P<pver>\d+(\.\d+)+)\.tar"
 
 SRC_URI[md5sum] = "8ab7bb2589110dfaf0ed7fa7757dc49c"
diff --git a/poky/meta/recipes-multimedia/x264/x264_git.bb b/poky/meta/recipes-multimedia/x264/x264_git.bb
index 9f23794..c49e935 100644
--- a/poky/meta/recipes-multimedia/x264/x264_git.bb
+++ b/poky/meta/recipes-multimedia/x264/x264_git.bb
@@ -8,7 +8,7 @@
 
 DEPENDS = "nasm-native"
 
-SRC_URI = "git://github.com/mirror/x264;branch=stable \
+SRC_URI = "git://github.com/mirror/x264;branch=stable;protocol=https \
            file://don-t-default-to-cortex-a9-with-neon.patch \
            file://Fix-X32-build-by-disabling-asm.patch \
            "
diff --git a/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch b/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch
index 1e8ff46..43c2a2f 100644
--- a/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch
+++ b/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch
@@ -19,7 +19,7 @@
 --- a/Makefile
 +++ b/Makefile
 @@ -1,6 +1,6 @@
- VERSION = 2.2
+ VERSION = 2.3
 -CC = $(CROSS_COMPILE)gcc
 -AR = $(CROSS_COMPILE)ar
 +CC ?= $(CROSS_COMPILE)gcc
diff --git a/poky/meta/recipes-rt/rt-tests/rt-tests.inc b/poky/meta/recipes-rt/rt-tests/rt-tests.inc
index 7122730..e519dfd 100644
--- a/poky/meta/recipes-rt/rt-tests/rt-tests.inc
+++ b/poky/meta/recipes-rt/rt-tests/rt-tests.inc
@@ -1,5 +1,5 @@
-SRCREV = "75c16956e32817dfb0d5cb7379e731061e16593f"
-PV = "2.2"
+SRCREV = "338843c1ee157ae5d990c6f544f66b447b24fa8b"
+PV = "2.3"
 PE = "1"
 
 SRC_URI = "git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git;branch=main"
diff --git a/poky/meta/recipes-sato/l3afpad/l3afpad_git.bb b/poky/meta/recipes-sato/l3afpad/l3afpad_git.bb
index f19d038..50f6da2 100644
--- a/poky/meta/recipes-sato/l3afpad/l3afpad_git.bb
+++ b/poky/meta/recipes-sato/l3afpad/l3afpad_git.bb
@@ -16,7 +16,7 @@
 DEPENDS = "gtk+3 intltool-native gettext-native"
 
 PV = "0.8.18.1.11+git${SRCPV}"
-SRC_URI = "git://github.com/stevenhoneyman/l3afpad.git"
+SRC_URI = "git://github.com/stevenhoneyman/l3afpad.git;branch=master;protocol=https"
 SRCREV ="3cdccdc9505643e50f8208171d9eee5de11a42ff"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-sato/libptytty/libptytty/0001-CMakeLists.txt-do-not-run-cross-binary.patch b/poky/meta/recipes-sato/libptytty/libptytty/0001-CMakeLists.txt-do-not-run-cross-binary.patch
new file mode 100644
index 0000000..d3a458f
--- /dev/null
+++ b/poky/meta/recipes-sato/libptytty/libptytty/0001-CMakeLists.txt-do-not-run-cross-binary.patch
@@ -0,0 +1,24 @@
+From 989ae1f3651686c1f1046fe1c1596d564c3f452d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Mon, 13 Dec 2021 14:33:01 +0100
+Subject: [PATCH] CMakeLists.txt: do not run cross-binary
+
+Upstream-Status: Inappropriate [issue reported at https://github.com/yusiwen/libptytty/issues/2]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c1ad6c0..3bd4d97 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -271,7 +271,7 @@ if(NOT HAVE_UNIX_FDPASS)
+   message(FATAL_ERROR "libptytty requires unix-compliant filehandle passing ability")
+ endif()
+ 
+-check_c_source_runs(
++check_c_source_compiles(
+   "
+    #include <grp.h>
+    #include <sys/stat.h>
diff --git a/poky/meta/recipes-sato/libptytty/libptytty_2.0.bb b/poky/meta/recipes-sato/libptytty/libptytty_2.0.bb
new file mode 100644
index 0000000..85e3a36
--- /dev/null
+++ b/poky/meta/recipes-sato/libptytty/libptytty_2.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = " OS independent and secure pty/tty and utmp/wtmp/lastlog handling"
+HOMEPAGE = "http://software.schmorp.de/pkg/libptytty.html"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+SRC_URI = "http://dist.schmorp.de/libptytty/libptytty-${PV}.tar.gz \
+           file://0001-CMakeLists.txt-do-not-run-cross-binary.patch \
+           "
+SRC_URI[sha256sum] = "8033ed3aadf28759660d4f11f2d7b030acf2a6890cb0f7926fb0cfa6739d31f7"
+
+inherit cmake
+
+EXTRA_OECMAKE:append:libc-musl = " -DWTMP_SUPPORT=OFF"
diff --git a/poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb b/poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
index d5fe9b5..8f3151b 100644
--- a/poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
+++ b/poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
@@ -11,7 +11,7 @@
 
 # SRCREV tagged 0.2
 SRCREV = "ef2192ce98d9374ffdad5f78544c3f8f353c16aa"
-SRC_URI = "git://git.yoctoproject.org/${BPN} \
+SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master \
            file://no-handed.patch"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
 
diff --git a/poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb b/poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb
index 79ccb03..c85f044 100644
--- a/poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb
+++ b/poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb
@@ -13,7 +13,7 @@
 
 # SRCREV tagged 2.2
 SRCREV = "6bc67d09da4147e5552fe30011a05a2c59d2f777"
-SRC_URI = "git://git.yoctoproject.org/${BPN}-2 \
+SRC_URI = "git://git.yoctoproject.org/${BPN}-2;branch=master \
            file://vfolders/ \
            "
 
diff --git a/poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb b/poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb
index c6de14e..49f9fdb 100644
--- a/poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb
+++ b/poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb
@@ -23,7 +23,7 @@
 RREPLACES:${PN} = "matchbox-panel"
 RCONFLICTS:${PN} = "matchbox-panel"
 
-SRC_URI = "git://git.yoctoproject.org/${BPN} \
+SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master \
            file://0001-applets-systray-Allow-icons-to-be-smaller.patch \
            "
 
diff --git a/poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb b/poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb
index 9f00281..e2e81c2 100644
--- a/poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb
+++ b/poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb
@@ -11,7 +11,7 @@
 
 #SRCREV tagged 0.2
 SRCREV = "161276d0f5d1be8187010fd0d9581a6feca70ea5"
-SRC_URI = "git://git.yoctoproject.org/${BPN}"
+SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.2.bb b/poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.2.bb
index 7a043d3..bc40247 100644
--- a/poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.2.bb
+++ b/poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.2.bb
@@ -2,7 +2,7 @@
 
 # SRCREV tagged 0.2
 SRCREV = "df085ba9cdaeaf2956890b0e29d7ea1779bf6c78"
-SRC_URI = "git://git.yoctoproject.org/matchbox-sato"
+SRC_URI = "git://git.yoctoproject.org/matchbox-sato;branch=master"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-sato/puzzles/files/0001-malloc-Check-for-excessive-values-to-malloc.patch b/poky/meta/recipes-sato/puzzles/files/0001-malloc-Check-for-excessive-values-to-malloc.patch
deleted file mode 100644
index 66af6af..0000000
--- a/poky/meta/recipes-sato/puzzles/files/0001-malloc-Check-for-excessive-values-to-malloc.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 1c01a5bc9ac7f8aaa484b1a8e0e74aa5f8899d0e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 8 Nov 2020 11:17:59 -0800
-Subject: [PATCH] malloc: Check for excessive values to malloc
-
-with whole program optimizers like lto smalloc()
-is inlined the excessive constant argument is propagated to
-malloc() and ultimately triggers the warning.
-
-malloc.c:15:9: error: argument 1 range [18446744065119617024, 18446744073709551580] exceeds maximum object size 9223372036854775807 [-Werror=alloc-size-larger-than=]
-
-therefore add a check before excessive constant argument before calling
-malloc
-
-Note that this will not happen with normal compile since they happen to
-be in different translation units and compiler can not semantically
-analyze as much
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- malloc.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/malloc.c b/malloc.c
-index a7fa7c5..520377c 100644
---- a/malloc.c
-+++ b/malloc.c
-@@ -2,6 +2,7 @@
-  * malloc.c: safe wrappers around malloc, realloc, free, strdup
-  */
- 
-+#include <stdint.h>
- #include <stdlib.h>
- #include <string.h>
- #include "puzzles.h"
-@@ -12,6 +13,8 @@
-  */
- void *smalloc(size_t size) {
-     void *p;
-+    if (size > PTRDIFF_MAX)
-+	fatal("exceeds maximum object size");
-     p = malloc(size);
-     if (!p)
- 	fatal("out of memory");
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-sato/puzzles/files/0001-map-Fix-stringop-overflow-warning.patch b/poky/meta/recipes-sato/puzzles/files/0001-map-Fix-stringop-overflow-warning.patch
deleted file mode 100644
index a02d873..0000000
--- a/poky/meta/recipes-sato/puzzles/files/0001-map-Fix-stringop-overflow-warning.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 3d78d4cffcdc1242892b6c21c26d1c96938c48d1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 27 Feb 2021 10:02:43 -0800
-Subject: [PATCH] map: Fix stringop-overflow warning
-
-Fixes
-
-../git/map.c: In function 'new_game_desc':
-../git/map.c:1663:23: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
- 1663 |         ret[retlen++] = ',';
-      |         ~~~~~~~~~~~~~~^~~~~
-../git/./map.c: In function 'new_game_desc':
-../git/./map.c:1663:23: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
- 1663 |         ret[retlen++] = ',';
-      |         ~~~~~~~~~~~~~~^~~~~
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- map.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/map.c b/map.c
-index 412305c..fa0c493 100644
---- a/map.c
-+++ b/map.c
-@@ -1659,8 +1659,10 @@ static char *new_game_desc(const game_params *params, random_state *rs,
- 	    }
- 	}
- 
--	ret[retlen++] = 'a'-1 + run;
--	ret[retlen++] = ',';
-+	if(ret != NULL) {
-+		ret[retlen++] = 'a'-1 + run;
-+		ret[retlen++] = ',';
-+	}
- 
- 	run = 0;
- 	for (i = 0; i < n; i++) {
--- 
-2.30.1
-
diff --git a/poky/meta/recipes-sato/puzzles/files/0001-palisade-Fix-warnings-with-clang-on-arm.patch b/poky/meta/recipes-sato/puzzles/files/0001-palisade-Fix-warnings-with-clang-on-arm.patch
deleted file mode 100644
index 143e898..0000000
--- a/poky/meta/recipes-sato/puzzles/files/0001-palisade-Fix-warnings-with-clang-on-arm.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 453587d714473b806473b309727f865b673cbc06 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 13 Jan 2016 23:10:19 -0800
-Subject: [PATCH] palisade: Fix warnings with clang on arm
-
-ARM treats 'char' as unsigned char when 'char' is not qualified with
-'signed' or 'unsigned' explicitly.
-
-This results in warnings e.g.
-
-palisade.c:531:22: error: comparison of constant -1 with expression of
-type 'clue' (aka 'char') is always false
-[-Werror,-Wtautological-constant-out-of-range-compare]
-        if (clues[i] == EMPTY) continue;
-
-Therefore, typcast the contant to char in such places to be explicit
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Submitted
----
- palisade.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/palisade.c b/palisade.c
-index 6ffbf2d..8b54d42 100644
---- a/palisade.c
-+++ b/palisade.c
-@@ -304,11 +304,11 @@ static void solver_connected_clues_versus_region_size(solver_ctx *ctx)
-      * If p = q = 3 then the region has size exactly 2. */
- 
-     for (i = 0; i < wh; ++i) {
--        if (ctx->clues[i] == EMPTY) continue;
-+        if (ctx->clues[i] == (char)EMPTY) continue;
-         for (dir = 0; dir < 4; ++dir) {
-             int j = i + dx[dir] + w*dy[dir];
-             if (disconnected(ctx, i, j, dir)) continue;
--            if (ctx->clues[j] == EMPTY) continue;
-+            if (ctx->clues[j] == (char)EMPTY) continue;
-             if ((8 - ctx->clues[i] - ctx->clues[j] > ctx->params->k) ||
-                 (ctx->clues[i] == 3 && ctx->clues[j] == 3 &&
-                  ctx->params->k != 2))
-@@ -326,7 +326,7 @@ static bool solver_number_exhausted(solver_ctx *ctx)
-     bool changed = false;
- 
-     for (i = 0; i < wh; ++i) {
--        if (ctx->clues[i] == EMPTY) continue;
-+        if (ctx->clues[i] == (char)EMPTY) continue;
- 
-         if (bitcount[(ctx->borders[i] & BORDER_MASK)] == ctx->clues[i]) {
-             for (dir = 0; dir < 4; ++dir) {
-@@ -538,7 +538,7 @@ static bool is_solved(const game_params *params, clue *clues,
-     for (i = 0; i < wh; ++i) {
-         if (dsf[i] == UNVISITED) dfs_dsf(i, params->w, border, dsf, true);
-         if (dsf_size(dsf, i) != k) goto error;
--        if (clues[i] == EMPTY) continue;
-+        if (clues[i] == (char)EMPTY) continue;
-         if (clues[i] != bitcount[border[i] & BORDER_MASK]) goto error;
-     }
- 
-@@ -685,7 +685,7 @@ static char *new_game_desc(const game_params *params, random_state *rs,
-     p = numbers;
-     r = 0;
-     for (i = 0; i < wh; ++i) {
--        if (numbers[i] != EMPTY) {
-+        if (numbers[i] != (char)EMPTY) {
-             while (r) {
-                 while (r > 26) {
-                     *p++ = 'z';
diff --git a/poky/meta/recipes-sato/puzzles/files/0001-pattern.c-Change-string-lenght-parameter-to-be-size_.patch b/poky/meta/recipes-sato/puzzles/files/0001-pattern.c-Change-string-lenght-parameter-to-be-size_.patch
deleted file mode 100644
index 7ca582f..0000000
--- a/poky/meta/recipes-sato/puzzles/files/0001-pattern.c-Change-string-lenght-parameter-to-be-size_.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 3af5a1e579e3324a13ba1f892c7befb3ab32d899 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 7 Mar 2019 21:56:57 -0800
-Subject: [PATCH] pattern.c: Change string lenght parameter to be size_t in
- do_row()
-
-This fixes below error on some architectures e.g. RISC-V
-
-pattern.c:455:9: error: 'memset' specified size between 18446744071562067968 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Werror=stringop-overflow=]                                                                     455 |         memset(deduced, DOT, (size_t)len);                                                                                   |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- pattern.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pattern.c b/pattern.c
-index ffadd3f..4e5f187 100644
---- a/pattern.c
-+++ b/pattern.c
-@@ -428,7 +428,7 @@ static bool do_row(unsigned char *known, unsigned char *deduced,
-                    unsigned char *row,
-                    unsigned char *minpos_done, unsigned char *maxpos_done,
-                    unsigned char *minpos_ok, unsigned char *maxpos_ok,
--                   unsigned char *start, int len, int step, int *data,
-+                   unsigned char *start, size_t len, int step, int *data,
-                    unsigned int *changed
- #ifdef STANDALONE_SOLVER
-                    , const char *rowcol, int index, int cluewid
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch b/poky/meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch
deleted file mode 100644
index 2804052..0000000
--- a/poky/meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 876c6ff1e20f51b0921acda99861f476b6423f26 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 11 Aug 2014 12:39:53 +0800
-Subject: [PATCH] gtk.c: fix compiling failure with option -g -O
-
-There were compiling failure with option -g -O
-...
-././gtk.c: In function 'configure_area':
-././gtk.c:397:2: error: 'cr' may be used uninitialized in this function [-Werror=maybe-uninitialized]
-  cairo_set_source_rgb(cr,
-  ^
-././gtk.c:384:14: note: 'cr' was declared here
-     cairo_t *cr;
-              ^
-././gtk.c: In function 'main':
-././gtk.c:2911:6: error: 'error' may be used uninitialized in this function [-Werror=maybe-uninitialized]
-      fprintf(stderr, "%s: %s\n", pname, error);
-      ^
-cc1: all warnings being treated as errors
-...
-
-Initialized pointer 'cr' and 'error' with NULL
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- gtk.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gtk.c b/gtk.c
-index 4565836..5e83b48 100644
---- a/gtk.c
-+++ b/gtk.c
-@@ -2944,7 +2944,7 @@ static void list_presets_from_menu(struct preset_menu *menu)
- int main(int argc, char **argv)
- {
-     char *pname = argv[0];
--    char *error;
-+    char *error = NULL;
-     int ngenerate = 0, px = 1, py = 1;
-     bool print = false;
-     bool time_generation = false, test_solve = false, list_presets = false;
diff --git a/poky/meta/recipes-sato/puzzles/files/fix-ki-uninitialized.patch b/poky/meta/recipes-sato/puzzles/files/fix-ki-uninitialized.patch
deleted file mode 100644
index 7218d62..0000000
--- a/poky/meta/recipes-sato/puzzles/files/fix-ki-uninitialized.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-puzzles: avoid compiler unitialized variable error
-
-The compiler does not realize that we must go through the while()
-loop at least once, so we replace it with a for() loop.
-
-Upstream-Status: Pending
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
---- a/tree234.c
-+++ b/tree234.c
-@@ -326,8 +326,11 @@ static void *add234_internal(tree234 *t,
- 	return orig_e;
-     }
- 
--    n = t->root;
--    while (n) {
-+    /*
-+     * We know t->root is not NULL.  The logic
-+     * to break out of this is at the end of the loop.
-+     */
-+    for (n = t->root;;) {
- 	LOG(("  node %p: %p/%d \"%s\" %p/%d \"%s\" %p/%d \"%s\" %p/%d\n",
- 	     n,
- 	     n->kids[0], n->counts[0], n->elems[0],
diff --git a/poky/meta/recipes-sato/puzzles/puzzles_git.bb b/poky/meta/recipes-sato/puzzles/puzzles_git.bb
index 1355630..0bf878f 100644
--- a/poky/meta/recipes-sato/puzzles/puzzles_git.bb
+++ b/poky/meta/recipes-sato/puzzles/puzzles_git.bb
@@ -7,17 +7,10 @@
 # gtk support includes a bunch of x11 headers
 REQUIRED_DISTRO_FEATURES = "x11"
 
-SRC_URI = "git://git.tartarus.org/simon/puzzles.git;branch=main \
-           file://fix-compiling-failure-with-option-g-O.patch \
-           file://0001-palisade-Fix-warnings-with-clang-on-arm.patch \
-           file://0001-pattern.c-Change-string-lenght-parameter-to-be-size_.patch \
-           file://fix-ki-uninitialized.patch \
-           file://0001-malloc-Check-for-excessive-values-to-malloc.patch \
-           file://0001-map-Fix-stringop-overflow-warning.patch \
-           "
+SRC_URI = "git://git.tartarus.org/simon/puzzles.git;branch=main"
 
 UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "ad1c6ade2af0e681fb964a17cc3a031951047068"
+SRCREV = "229d062d6ce63f0a5e00d2de62ee0fb389ccfdb6"
 PE = "2"
 PV = "0.0+git${SRCPV}"
 
diff --git a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
index 69b8a65..e7d520e 100644
--- a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
+++ b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
@@ -6,7 +6,7 @@
 output. It also supports mixing multiple fonts at the \
 same time, including Xft fonts."
 HOMEPAGE = "https://rxvt.org/"
-DEPENDS = "virtual/libx11 libxt libxft gdk-pixbuf libxmu"
+DEPENDS = "virtual/libx11 libxt libxft gdk-pixbuf libxmu libptytty"
 
 SRC_URI = "http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${PV}.tar.bz2 \
 	   file://xwc.patch \
@@ -22,7 +22,6 @@
 CFLAGS:append = " -fpermissive"
 
 EXTRA_OECONF = "--enable-xim \
-		--enable-utmp --enable-wtmp --enable-lastlog \
 		--with-term=rxvt --enable-keepscrolling \
 		--enable-xft --with-name=rxvt --enable-frills \
 		--enable-swapscreen --enable-transparency \
@@ -31,8 +30,6 @@
 		--enable-combining --disable-perl \
 		--with-x=${STAGING_DIR_HOST}${prefix}"
 
-EXTRA_OECONF:append:libc-musl = " --disable-wtmp --disable-lastlog"
-
 PACKAGECONFIG ??= ""
 PACKAGECONFIG[startup] = "--enable-startup-notification,--disable-startup-notification,startup-notification,"
 
diff --git a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.26.bb b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.26.bb
deleted file mode 100644
index 3fe69a5..0000000
--- a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.26.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require rxvt-unicode.inc
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
-                    file://src/main.C;beginline=1;endline=31;md5=d3600d7ee1062667fcd1193fbe6485f6"
-
-SRC_URI[sha256sum] = "643116b9a25d29ad29f4890131796d42e6d2d21312282a613ef66c80c5b8c98b"
-
diff --git a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.30.bb b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.30.bb
new file mode 100644
index 0000000..0133029
--- /dev/null
+++ b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.30.bb
@@ -0,0 +1,8 @@
+require rxvt-unicode.inc
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://src/main.C;beginline=1;endline=31;md5=d3600d7ee1062667fcd1193fbe6485f6"
+
+SRC_URI[sha256sum] = "fe1c93d12f385876457a989fc3ae05c0915d2692efc59289d0f70fabe5b44d2d"
+
diff --git a/poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb b/poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
index b2913b4..7fd9272 100644
--- a/poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
+++ b/poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
@@ -11,7 +11,7 @@
 
 # SRCREV tagged 0.3
 SRCREV = "9250fa5a012d84ff45984e8c4345ee7635227756"
-SRC_URI = "git://git.yoctoproject.org/screenshot"
+SRC_URI = "git://git.yoctoproject.org/screenshot;branch=master"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb b/poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
index 742364f..77ecd3f 100644
--- a/poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
+++ b/poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
@@ -9,7 +9,7 @@
 
 # SRCREV tagged 0.0.2
 SRCREV = "b2e5da502f8c5ff75e9e6da771372ef8e40fd9a2"
-SRC_URI = "git://git.yoctoproject.org/xsettings-daemon \
+SRC_URI = "git://git.yoctoproject.org/xsettings-daemon;branch=master \
            file://addsoundkeys.patch \
            file://70settings-daemon.sh \
            "
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
index fae3b0b..54d34b1 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
@@ -4,7 +4,7 @@
 Subject: [PATCH] FindGObjectIntrospection.cmake: prefix variables obtained
  from pkg-config with PKG_CONFIG_SYSROOT_DIR
 
-Upstream-Status: Pending [review on oe-core list]
+Upstream-Status: Submitted [https://bugs.webkit.org/show_bug.cgi?id=232933]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  Source/cmake/FindGObjectIntrospection.cmake | 1 +
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-without-opengl-or-es.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-without-opengl-or-es.patch
index e4c7d77..0925695 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-without-opengl-or-es.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-without-opengl-or-es.patch
@@ -16,7 +16,7 @@
   but in Source/cmake/OptionsGTK.cmake USE_COORDINATED_GRAPHICS was enabled only inside
   if (USE_OPENGL_OR_ES)
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://bugs.webkit.org/show_bug.cgi?id=232934]
 ---
  .../DrawingAreaProxyCoordinatedGraphics.cpp                 | 2 +-
  .../DrawingAreaProxyCoordinatedGraphics.h                   | 2 +-
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch
index 0c31c5f..e06607b 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch
@@ -3,7 +3,7 @@
 Date: Mon, 29 Aug 2016 16:38:11 +0300
 Subject: [PATCH] Fix racy parallel build of WebKit2-4.0.gir
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://bugs.webkit.org/show_bug.cgi?id=232935]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 
 ---
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch
index 3e03aa9..9e2bf09 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch
@@ -7,7 +7,7 @@
 g-ir-compiler is using a C compiler internally, so it needs to set
 the proper flags for it.
 
-Upstream-Status: Pending [review on oe-core list]
+Upstream-Status: Submitted [https://bugs.webkit.org/show_bug.cgi?id=232936]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 
 ---
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/include_xutil.patch b/poky/meta/recipes-sato/webkit/webkitgtk/include_xutil.patch
deleted file mode 100644
index e7a4cc2..0000000
--- a/poky/meta/recipes-sato/webkit/webkitgtk/include_xutil.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 2cc9d445b4c8eb70c2ab6c1723dfd208218f103e Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Fri, 6 Nov 2020 04:38:13 +0100
-Subject: [PATCH] webkitgtk: fix build with x11 enabled
-
-Since
-https://github.com/WebKit/webkit/commit/acd3f32cd43c363be032f93ede3aa10c4ee97fa4
-it uses XVisualInfo which is defined in Xutil.h
-
-Without this the build fails with:
-webkitgtk-2.30.2/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:132:5: error: 'XVisualInfo' was not declared in this scope; did you mean 'VisualID'?
-  132 |     XVisualInfo visualTemplate;
-      |     ^~~~~~~~~~~
-      |     VisualID
-
-Upstream-Status: Pending
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
----
- Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp b/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp
-index bad56eba..fc141f98 100644
---- a/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp
-+++ b/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp
-@@ -31,6 +31,7 @@
- #if PLATFORM(X11)
- #include <X11/Xatom.h>
- #include <X11/Xlib.h>
-+#include <X11/Xutil.h>
- #include <X11/extensions/Xcomposite.h>
- #if PLATFORM(GTK)
- #include <X11/Xutil.h>
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/reduce-memory-overheads.patch b/poky/meta/recipes-sato/webkit/webkitgtk/reduce-memory-overheads.patch
index aa11c13..907d36c 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/reduce-memory-overheads.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/reduce-memory-overheads.patch
@@ -3,7 +3,7 @@
 Date: Sun, 25 Apr 2021 18:45:13 +0000
 Subject: [PATCH] Reduce memory usage when not using the Gold linker
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://bugs.webkit.org/show_bug.cgi?id=232938]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 
 ---
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/reproducibility.patch b/poky/meta/recipes-sato/webkit/webkitgtk/reproducibility.patch
new file mode 100644
index 0000000..e866a1a
--- /dev/null
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/reproducibility.patch
@@ -0,0 +1,22 @@
+Injection a year based on the current date isn't reproducible. Hack this
+to a specific year for now for reproducibilty and to avoid autobuilder failures.
+
+The correct fix would be to use SOURCE_DATE_EPOCH from the environment and
+then this could be submitted upstream, sadly my ruby isn't up to that.
+
+Upstream-Status: Pending [could be reworked]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: webkitgtk-2.34.2/Source/JavaScriptCore/generator/GeneratedFile.rb
+===================================================================
+--- webkitgtk-2.34.2.orig/Source/JavaScriptCore/generator/GeneratedFile.rb
++++ webkitgtk-2.34.2/Source/JavaScriptCore/generator/GeneratedFile.rb
+@@ -25,7 +25,7 @@ require 'date'
+ require 'digest'
+ 
+ $LICENSE = <<-EOF
+-Copyright (C) #{Date.today.year} Apple Inc. All rights reserved.
++Copyright (C) 2021 Apple Inc. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.34.1.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.34.1.bb
deleted file mode 100644
index 4e2562d..0000000
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.34.1.bb
+++ /dev/null
@@ -1,164 +0,0 @@
-SUMMARY = "WebKit web rendering engine for the GTK+ platform"
-HOMEPAGE = "https://www.webkitgtk.org/"
-BUGTRACKER = "https://bugs.webkit.org/"
-
-LICENSE = "BSD-2-Clause & LGPLv2+"
-LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \
-                    file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \
-		    file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \
-		    file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
-		   "
-
-SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
-           file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
-           file://0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch \
-           file://0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch \
-           file://0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch \
-           file://0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch \
-           file://include_xutil.patch \
-           file://reduce-memory-overheads.patch \
-           file://musl-lower-stack-usage.patch \
-           file://0001-Fix-build-without-opengl-or-es.patch \
-           "
-
-SRC_URI[sha256sum] = "443c1316705de024741748e85fe32324d299d9ee68e6feb340b89e4a04073dee"
-
-inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'opengl', '', d)}"
-
-CVE_PRODUCT = "webkitgtk webkitgtk\+"
-
-DEPENDS = " \
-          ruby-native \
-          gperf-native \
-          cairo \
-          harfbuzz \
-          jpeg \
-          atk \
-          libwebp \
-          gtk+3 \
-          libsoup \
-          libxslt \
-          libtasn1 \
-          libnotify \
-          gstreamer1.0 \
-          gstreamer1.0-plugins-base \
-          "
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd wayland x11', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'webgl opengl', '', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'webgl gles2 angle', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl-or-es', '', d)} \
-                   enchant \
-                   libsecret \
-                  "
-
-PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland libwpe wpebackend-fdo wayland-native"
-PACKAGECONFIG[angle] = "-DUSE_ANGLE_WEBGL=ON,-DUSE_ANGLE_WEBGL=OFF"
-PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11 libxcomposite libxdamage libxrender libxt"
-PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue"
-PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2"
-PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2"
-PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/libgl"
-PACKAGECONFIG[opengl] = "-DENABLE_GRAPHICS_CONTEXT_GL=ON,-DENABLE_GRAPHICS_CONTEXT_GL=OFF,virtual/libgl"
-PACKAGECONFIG[opengl-or-es] = "-DUSE_OPENGL_OR_ES=ON,-DUSE_OPENGL_OR_ES=OFF"
-PACKAGECONFIG[libsecret] = "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret"
-PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen"
-PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2"
-PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg"
-PACKAGECONFIG[systemd] = "-DUSE_SYSTEMD=ON,-DUSE_SYSTEMD=off,systemd"
-PACKAGECONFIG[reduce-size] = "-DCMAKE_BUILD_TYPE=MinSizeRel,-DCMAKE_BUILD_TYPE=Release,,"
-PACKAGECONFIG[lcms] = "-DUSE_LCMS=ON,-DUSE_LCMS=OFF,lcms"
-
-# 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('GTKDOC_ENABLED', 'True', '-DENABLE_GTKDOC=ON', '-DENABLE_GTKDOC=OFF', d)} \
-		-DENABLE_MINIBROWSER=ON \
-                -DPYTHON_EXECUTABLE=`which python3` \
-                -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
-                -DENABLE_GAMEPAD=OFF \
-		"
-
-# Javascript JIT is not supported on ARC
-EXTRA_OECMAKE:append:arc = " -DENABLE_JIT=OFF "
-# By default 25-bit "medium" calls are used on ARC
-# which is not enough for binaries larger than 32 MiB
-CFLAGS:append:arc = " -mlong-calls"
-CXXFLAGS:append:arc = " -mlong-calls"
-
-# Javascript JIT is not supported on powerpc
-EXTRA_OECMAKE:append:powerpc = " -DENABLE_JIT=OFF "
-EXTRA_OECMAKE:append:powerpc64 = " -DENABLE_JIT=OFF "
-
-# ARM JIT code does not build on ARMv4/5/6 anymore
-EXTRA_OECMAKE:append:armv5 = " -DENABLE_JIT=OFF "
-EXTRA_OECMAKE:append:armv6 = " -DENABLE_JIT=OFF "
-EXTRA_OECMAKE:append:armv4 = " -DENABLE_JIT=OFF "
-
-EXTRA_OECMAKE:append:mipsarch = " -DUSE_LD_GOLD=OFF "
-EXTRA_OECMAKE:append:powerpc = " -DUSE_LD_GOLD=OFF "
-
-# JIT and gold linker does not work on RISCV
-EXTRA_OECMAKE:append:riscv32 = " -DUSE_LD_GOLD=OFF -DENABLE_JIT=OFF"
-EXTRA_OECMAKE:append:riscv64 = " -DUSE_LD_GOLD=OFF -DENABLE_JIT=OFF"
-
-# JIT not supported on MIPS either
-EXTRA_OECMAKE:append:mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON "
-
-# JIT not supported on X32
-# An attempt was made to upstream JIT support for x32 in
-# https://bugs.webkit.org/show_bug.cgi?id=100450, but this was closed as
-# unresolved due to limited X32 adoption.
-EXTRA_OECMAKE:append:x86-x32 = " -DENABLE_JIT=OFF "
-
-SECURITY_CFLAGS:remove:aarch64 = "-fpie"
-SECURITY_CFLAGS:append:aarch64 = " -fPIE"
-
-FILES:${PN} += "${libdir}/webkit2gtk-4.1/injected-bundle/libwebkit2gtkinjectedbundle.so"
-
-RRECOMMENDS:${PN} += "ca-certificates shared-mime-info"
-
-# http://errors.yoctoproject.org/Errors/Details/20370/
-ARM_INSTRUCTION_SET:armv4 = "arm"
-ARM_INSTRUCTION_SET:armv5 = "arm"
-ARM_INSTRUCTION_SET:armv6 = "arm"
-
-# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474
-# https://bugs.webkit.org/show_bug.cgi?id=159880
-# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime.
-# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb).
-ARM_INSTRUCTION_SET:armv7a = "thumb"
-ARM_INSTRUCTION_SET:armv7r = "thumb"
-ARM_INSTRUCTION_SET:armv7ve = "thumb"
-
-# introspection inside qemu-arm hangs forever on musl/arm builds
-# therefore disable GI_DATA
-GI_DATA_ENABLED:libc-musl:armv7a = "False"
-GI_DATA_ENABLED:libc-musl:armv7ve = "False"
-
-# Can't be built with ccache
-CCACHE_DISABLE = "1"
-
-PACKAGE_PREPROCESS_FUNCS += "src_package_preprocess"
-src_package_preprocess () {
-        # Trim build paths from comments in generated sources to ensure reproducibility
-        sed -i -e "s,${WORKDIR},,g" \
-            ${B}/JavaScriptCore/DerivedSources/*.h \
-            ${B}/JavaScriptCore/DerivedSources/yarr/*.h \
-            ${B}/JavaScriptCore/PrivateHeaders/JavaScriptCore/*.h \
-            ${B}/WebKit2Gtk/DerivedSources/webkit2/*.cpp \
-            ${B}/WebKit2Gtk/DerivedSources/webkit2/*.h
-
-}
-
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.34.3.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.34.3.bb
new file mode 100644
index 0000000..4b3d89a
--- /dev/null
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.34.3.bb
@@ -0,0 +1,167 @@
+SUMMARY = "WebKit web rendering engine for the GTK+ platform"
+HOMEPAGE = "https://www.webkitgtk.org/"
+BUGTRACKER = "https://bugs.webkit.org/"
+
+LICENSE = "BSD-2-Clause & LGPLv2+"
+LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \
+                    file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \
+		    file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \
+		    file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
+		   "
+
+SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
+           file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
+           file://0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch \
+           file://0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch \
+           file://0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch \
+           file://0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch \
+           file://reduce-memory-overheads.patch \
+           file://musl-lower-stack-usage.patch \
+           file://0001-Fix-build-without-opengl-or-es.patch \
+           file://reproducibility.patch \
+           "
+
+SRC_URI[sha256sum] = "0d2f37aa32e21a36e4dd5a5ce7ae5ce27435c29d6803b962b8c90cb0cc49c52d"
+
+inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'opengl', '', d)}"
+
+CVE_PRODUCT = "webkitgtk webkitgtk\+"
+
+DEPENDS = " \
+          ruby-native \
+          gperf-native \
+          cairo \
+          harfbuzz \
+          jpeg \
+          atk \
+          libwebp \
+          gtk+3 \
+          libxslt \
+          libtasn1 \
+          libnotify \
+          gstreamer1.0 \
+          gstreamer1.0-plugins-base \
+          "
+
+PACKAGECONFIG_SOUP ?= "soup2"
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd wayland x11', d)} \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'webgl opengl', '', d)} \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'webgl gles2 angle', d)} \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl-or-es', '', d)} \
+                   enchant \
+                   libsecret \
+                   ${PACKAGECONFIG_SOUP} \
+                  "
+
+PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland libwpe wpebackend-fdo wayland-native"
+PACKAGECONFIG[angle] = "-DUSE_ANGLE_WEBGL=ON,-DUSE_ANGLE_WEBGL=OFF"
+PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11 libxcomposite libxdamage libxrender libxt"
+PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue"
+PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2"
+PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2"
+PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/libgl"
+PACKAGECONFIG[opengl] = "-DENABLE_GRAPHICS_CONTEXT_GL=ON,-DENABLE_GRAPHICS_CONTEXT_GL=OFF,virtual/libgl"
+PACKAGECONFIG[opengl-or-es] = "-DUSE_OPENGL_OR_ES=ON,-DUSE_OPENGL_OR_ES=OFF"
+PACKAGECONFIG[libsecret] = "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret"
+PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen"
+PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2"
+PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg"
+PACKAGECONFIG[systemd] = "-DUSE_SYSTEMD=ON,-DUSE_SYSTEMD=off,systemd"
+PACKAGECONFIG[reduce-size] = "-DCMAKE_BUILD_TYPE=MinSizeRel,-DCMAKE_BUILD_TYPE=Release,,"
+PACKAGECONFIG[lcms] = "-DUSE_LCMS=ON,-DUSE_LCMS=OFF,lcms"
+PACKAGECONFIG[soup2] = "-DUSE_SOUP2=ON,-DUSE_SOUP2=OFF,libsoup-2.4,,,soup3"
+PACKAGECONFIG[soup3] = ",,libsoup,,,soup2"
+
+# 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('GTKDOC_ENABLED', 'True', '-DENABLE_GTKDOC=ON', '-DENABLE_GTKDOC=OFF', d)} \
+		-DENABLE_MINIBROWSER=ON \
+                -DPYTHON_EXECUTABLE=`which python3` \
+                -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
+                -DENABLE_GAMEPAD=OFF \
+		"
+
+# Javascript JIT is not supported on ARC
+EXTRA_OECMAKE:append:arc = " -DENABLE_JIT=OFF "
+# By default 25-bit "medium" calls are used on ARC
+# which is not enough for binaries larger than 32 MiB
+CFLAGS:append:arc = " -mlong-calls"
+CXXFLAGS:append:arc = " -mlong-calls"
+
+# Javascript JIT is not supported on powerpc
+EXTRA_OECMAKE:append:powerpc = " -DENABLE_JIT=OFF "
+EXTRA_OECMAKE:append:powerpc64 = " -DENABLE_JIT=OFF "
+
+# ARM JIT code does not build on ARMv4/5/6 anymore
+EXTRA_OECMAKE:append:armv5 = " -DENABLE_JIT=OFF "
+EXTRA_OECMAKE:append:armv6 = " -DENABLE_JIT=OFF "
+EXTRA_OECMAKE:append:armv4 = " -DENABLE_JIT=OFF "
+
+EXTRA_OECMAKE:append:mipsarch = " -DUSE_LD_GOLD=OFF "
+EXTRA_OECMAKE:append:powerpc = " -DUSE_LD_GOLD=OFF "
+
+# JIT and gold linker does not work on RISCV
+EXTRA_OECMAKE:append:riscv32 = " -DUSE_LD_GOLD=OFF -DENABLE_JIT=OFF"
+EXTRA_OECMAKE:append:riscv64 = " -DUSE_LD_GOLD=OFF -DENABLE_JIT=OFF"
+
+# JIT not supported on MIPS either
+EXTRA_OECMAKE:append:mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON "
+
+# JIT not supported on X32
+# An attempt was made to upstream JIT support for x32 in
+# https://bugs.webkit.org/show_bug.cgi?id=100450, but this was closed as
+# unresolved due to limited X32 adoption.
+EXTRA_OECMAKE:append:x86-x32 = " -DENABLE_JIT=OFF "
+
+SECURITY_CFLAGS:remove:aarch64 = "-fpie"
+SECURITY_CFLAGS:append:aarch64 = " -fPIE"
+
+FILES:${PN} += "${libdir}/webkit2gtk-4.*/injected-bundle/libwebkit2gtkinjectedbundle.so"
+
+RRECOMMENDS:${PN} += "ca-certificates shared-mime-info"
+
+# http://errors.yoctoproject.org/Errors/Details/20370/
+ARM_INSTRUCTION_SET:armv4 = "arm"
+ARM_INSTRUCTION_SET:armv5 = "arm"
+ARM_INSTRUCTION_SET:armv6 = "arm"
+
+# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474
+# https://bugs.webkit.org/show_bug.cgi?id=159880
+# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime.
+# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb).
+ARM_INSTRUCTION_SET:armv7a = "thumb"
+ARM_INSTRUCTION_SET:armv7r = "thumb"
+ARM_INSTRUCTION_SET:armv7ve = "thumb"
+
+# introspection inside qemu-arm hangs forever on musl/arm builds
+# therefore disable GI_DATA
+GI_DATA_ENABLED:libc-musl:armv7a = "False"
+GI_DATA_ENABLED:libc-musl:armv7ve = "False"
+
+# Can't be built with ccache
+CCACHE_DISABLE = "1"
+
+PACKAGE_PREPROCESS_FUNCS += "src_package_preprocess"
+src_package_preprocess () {
+        # Trim build paths from comments in generated sources to ensure reproducibility
+        sed -i -e "s,${WORKDIR},,g" \
+            ${B}/JavaScriptCore/DerivedSources/*.h \
+            ${B}/JavaScriptCore/DerivedSources/yarr/*.h \
+            ${B}/JavaScriptCore/PrivateHeaders/JavaScriptCore/*.h \
+            ${B}/WebKit2Gtk/DerivedSources/webkit2/*.cpp \
+            ${B}/WebKit2Gtk/DerivedSources/webkit2/*.h
+
+}
+
diff --git a/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.12.0.bb b/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.12.0.bb
index ba6c544..4a18467 100644
--- a/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.12.0.bb
+++ b/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.12.0.bb
@@ -15,6 +15,10 @@
 SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz"
 SRC_URI[sha256sum] = "6239c9c15523410798d66315de6b491712ab30009ba180f3e0dd076d9b0074ac"
 
+# Especially helps compiling with clang which enable this as error when
+# using c++11
+CXXFLAGS += "-Wno-c++11-narrowing"
+
 # This is a tweak of upstream-version-is-even needed because
 # ipstream directory contains tarballs for other components as well.
 UPSTREAM_CHECK_REGEX = "wpebackend-fdo-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)\.tar"
diff --git a/poky/meta/recipes-support/apr/apr-util/0001-Fix-error-handling-in-gdbm.patch b/poky/meta/recipes-support/apr/apr-util/0001-Fix-error-handling-in-gdbm.patch
index 57e7453..6f27876 100644
--- a/poky/meta/recipes-support/apr/apr-util/0001-Fix-error-handling-in-gdbm.patch
+++ b/poky/meta/recipes-support/apr/apr-util/0001-Fix-error-handling-in-gdbm.patch
@@ -13,8 +13,7 @@
 
 Also ensure that dsize is 0 if dptr == NULL.
 
-Upstream-Status: Backport[https://svn.apache.org/viewvc?
-view=revision&amp;revision=1825311]
+Upstream-Status: Backport [https://svn.apache.org/viewvc?view=revision&amp;revision=1825311]
 
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
diff --git a/poky/meta/recipes-support/apr/apr_1.7.0.bb b/poky/meta/recipes-support/apr/apr_1.7.0.bb
index 5f8fd6a..9c826d4 100644
--- a/poky/meta/recipes-support/apr/apr_1.7.0.bb
+++ b/poky/meta/recipes-support/apr/apr_1.7.0.bb
@@ -63,7 +63,7 @@
                     ${PN}-dev:${datadir}/build-1/apr_rules.mk"
 
 FILES:${PN}-dev += "${libdir}/apr.exp ${datadir}/build-1/*"
-RDEPENDS:${PN}-dev += "bash"
+RDEPENDS:${PN}-dev += "bash libtool"
 
 RDEPENDS:${PN}-ptest += "libgcc"
 
@@ -80,6 +80,8 @@
 }
 
 do_install:append:class-target() {
+	rm -f ${D}${datadir}/build-1/libtool
+	sed -i s,LIBTOOL=.*,LIBTOOL=libtool,g ${D}${datadir}/build-1/apr_rules.mk
 	sed -i -e 's,${DEBUG_PREFIX_MAP},,g' \
 	       -e 's,${STAGING_DIR_HOST},,g' ${D}${datadir}/build-1/apr_rules.mk
 	sed -i -e 's,${STAGING_DIR_HOST},,g' \
@@ -97,12 +99,12 @@
 	cp ${S}/build/apr_rules.mk $d/
 	sed -i s,apr_builddir=.*,apr_builddir=,g $d/apr_rules.mk
 	sed -i s,apr_builders=.*,apr_builders=,g $d/apr_rules.mk
-	sed -i s,LIBTOOL=.*,LIBTOOL=${HOST_SYS}-libtool,g $d/apr_rules.mk
+	sed -i s,LIBTOOL=.*,LIBTOOL=libtool,g $d/apr_rules.mk
 	sed -i s,\$\(apr_builders\),${STAGING_DATADIR}/apr/,g $d/apr_rules.mk
 	cp ${S}/build/mkdir.sh $d/
 	cp ${S}/build/make_exports.awk $d/
 	cp ${S}/build/make_var_export.awk $d/
-	cp ${S}/${HOST_SYS}-libtool ${SYSROOT_DESTDIR}${datadir}/build-1/libtool
+	cp ${S}/libtool ${SYSROOT_DESTDIR}${datadir}/build-1/libtool
 }
 
 do_compile_ptest() {
diff --git a/poky/meta/recipes-support/bmap-tools/bmap-tools_3.6.bb b/poky/meta/recipes-support/bmap-tools/bmap-tools_3.6.bb
index c830a92..c66ff3a 100644
--- a/poky/meta/recipes-support/bmap-tools/bmap-tools_3.6.bb
+++ b/poky/meta/recipes-support/bmap-tools/bmap-tools_3.6.bb
@@ -9,7 +9,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
-SRC_URI = "git://github.com/intel/${BPN}"
+SRC_URI = "git://github.com/intel/${BPN};branch=master;protocol=https"
 
 SRCREV = "c0673962a8ec1624b5189dc1d24f33fe4f06785a"
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-support/boost/boost-1.77.0.inc b/poky/meta/recipes-support/boost/boost-1.77.0.inc
deleted file mode 100644
index 6df06e7..0000000
--- a/poky/meta/recipes-support/boost/boost-1.77.0.inc
+++ /dev/null
@@ -1,20 +0,0 @@
-# The Boost web site provides free peer-reviewed portable
-# C++ source libraries. The emphasis is on libraries which
-# work well with the C++ Standard Library. The libraries are
-# intended to be widely useful, and are in regular use by
-# thousands of programmers across a broad spectrum of applications.
-HOMEPAGE = "http://www.boost.org/"
-LICENSE = "BSL-1.0 & MIT & Python-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
-
-BOOST_VER = "${@"_".join(d.getVar("PV").split("."))}"
-BOOST_MAJ = "${@"_".join(d.getVar("PV").split(".")[0:2])}"
-BOOST_P = "boost_${BOOST_VER}"
-
-SRC_URI = "https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/${BOOST_P}.tar.bz2"
-SRC_URI[sha256sum] = "fc9f85fc030e233142908241af7a846e60630aa7388de9a5fafb1f3a26840854"
-
-UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/"
-UPSTREAM_CHECK_REGEX = "release/(?P<pver>.*)/source/"
-
-S = "${WORKDIR}/${BOOST_P}"
diff --git a/poky/meta/recipes-support/boost/boost-1.78.0.inc b/poky/meta/recipes-support/boost/boost-1.78.0.inc
new file mode 100644
index 0000000..729a47b
--- /dev/null
+++ b/poky/meta/recipes-support/boost/boost-1.78.0.inc
@@ -0,0 +1,20 @@
+# The Boost web site provides free peer-reviewed portable
+# C++ source libraries. The emphasis is on libraries which
+# work well with the C++ Standard Library. The libraries are
+# intended to be widely useful, and are in regular use by
+# thousands of programmers across a broad spectrum of applications.
+HOMEPAGE = "http://www.boost.org/"
+LICENSE = "BSL-1.0 & MIT & Python-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+
+BOOST_VER = "${@"_".join(d.getVar("PV").split("."))}"
+BOOST_MAJ = "${@"_".join(d.getVar("PV").split(".")[0:2])}"
+BOOST_P = "boost_${BOOST_VER}"
+
+SRC_URI = "https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/${BOOST_P}.tar.bz2"
+SRC_URI[sha256sum] = "8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc"
+
+UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/"
+UPSTREAM_CHECK_REGEX = "release/(?P<pver>.*)/source/"
+
+S = "${WORKDIR}/${BOOST_P}"
diff --git a/poky/meta/recipes-support/boost/boost-build-native_4.4.1.bb b/poky/meta/recipes-support/boost/boost-build-native_4.4.1.bb
index 2de0536..de566ee 100644
--- a/poky/meta/recipes-support/boost/boost-build-native_4.4.1.bb
+++ b/poky/meta/recipes-support/boost/boost-build-native_4.4.1.bb
@@ -6,7 +6,7 @@
 LICENSE = "BSL-1.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
 
-SRC_URI = "git://github.com/boostorg/build;protocol=https"
+SRC_URI = "git://github.com/boostorg/build;protocol=https;branch=master"
 SRCREV = "76da80f33187a3d9e5336157cdfae12ce82e37eb"
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+){2,}))"
diff --git a/poky/meta/recipes-support/boost/boost/0001-BoostConfig.cmake-allow-searching-for-python310.patch b/poky/meta/recipes-support/boost/boost/0001-BoostConfig.cmake-allow-searching-for-python310.patch
deleted file mode 100644
index 0a9ee2c..0000000
--- a/poky/meta/recipes-support/boost/boost/0001-BoostConfig.cmake-allow-searching-for-python310.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From e193f080c7d209516ac9b712fa0c50bb08026fa2 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 19 Oct 2021 12:24:31 +0000
-Subject: [PATCH] BoostConfig.cmake: allow searching for python310
-
-* accept double digits in Python3_VERSION_MINOR
-
-* if someone is using e.g.:
-  find_package(Python3 REQUIRED)
-  find_package(Boost REQUIRED python${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR})
-
-  with python-3.10 then it currently fails with:
-
-  -- Found PythonLibs: /usr/lib/libpython3.10.so (found version "3.10.0")
-  -- Found Python3: -native/usr/bin/python3-native/python3 (found version "3.10.0") found components: Interpreter
-  CMake Error at /usr/lib/cmake/Boost-1.77.0/BoostConfig.cmake:141 (find_package):
-    Could not find a package configuration file provided by "boost_python310"
-    (requested version 1.77.0) with any of the following names:
-
-      boost_python310Config.cmake
-      boost_python310-config.cmake
-
-    Add the installation prefix of "boost_python310" to CMAKE_PREFIX_PATH or
-    set "boost_python310_DIR" to a directory containing one of the above files.
-    If "boost_python310" provides a separate development package or SDK, be
-    sure it has been installed.
-  Call Stack (most recent call first):
-    /usr/lib/cmake/Boost-1.77.0/BoostConfig.cmake:258 (boost_find_component)
-    /usr/share/cmake-3.21/Modules/FindBoost.cmake:594 (find_package)
-    CMakeLists.txt:18 (find_package)
-
-Upstream-Status: Submitted [https://github.com/boostorg/boost_install/pull/53]
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- tools/boost_install/BoostConfig.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/boost_install/BoostConfig.cmake b/tools/boost_install/BoostConfig.cmake
-index fd17821..5dffa58 100644
---- a/tools/boost_install/BoostConfig.cmake
-+++ b/tools/boost_install/BoostConfig.cmake
-@@ -113,7 +113,7 @@ macro(boost_find_component comp required quiet)
-     set(_BOOST_REQUIRED REQUIRED)
-   endif()
- 
--  if("${comp}" MATCHES "^(python|numpy|mpi_python)([1-9])([0-9])$")
-+  if("${comp}" MATCHES "^(python|numpy|mpi_python)([1-9])([0-9][0-9]?)$")
- 
-     # handle pythonXY and numpyXY versioned components for compatibility
- 
diff --git a/poky/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch b/poky/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch
index 91ab53e..67d5dff 100644
--- a/poky/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch
+++ b/poky/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch
@@ -1,4 +1,4 @@
-From 8e1d30454afde37eaa3c593ec19d108cd5ed10d0 Mon Sep 17 00:00:00 2001
+From 4d2a8fc8117e56bc283349e5f7f889ebbfc55c71 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 18 Dec 2018 15:42:57 +0100
 Subject: [PATCH] Don't set up arch/instruction-set flags, we do that
@@ -10,14 +10,14 @@
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 
 ---
- tools/build/src/tools/gcc.jam | 139 ----------------------------------
- 1 file changed, 139 deletions(-)
+ tools/build/src/tools/gcc.jam | 144 ----------------------------------
+ 1 file changed, 144 deletions(-)
 
 diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
-index ff3209f7b..70cbc39a5 100644
+index 47a113223..d77525724 100644
 --- a/tools/build/src/tools/gcc.jam
 +++ b/tools/build/src/tools/gcc.jam
-@@ -1217,142 +1217,3 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + :
+@@ -1122,147 +1122,3 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + :
          <architecture>$(architecture)/<instruction-set>$(instruction-set)
          : $(values) ;
  }
@@ -158,5 +158,10 @@
 -cpu-flags gcc OPTIONS : s390x : z13 : -march=z13 ;
 -cpu-flags gcc OPTIONS : s390x : z14 : -march=z14 ;
 -cpu-flags gcc OPTIONS : s390x : z15 : -march=z15 ;
+-# ARM
+-cpu-flags gcc OPTIONS : arm : cortex-a9+vfpv3 : -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard ;
+-cpu-flags gcc OPTIONS : arm : cortex-a53 : -mcpu=cortex-a53 ;
+-cpu-flags gcc OPTIONS : arm : cortex-r5 : -mcpu=cortex-r5 ;
+-cpu-flags gcc OPTIONS : arm : cortex-r5+vfpv3-d16 : -mcpu=cortex-r5 -mfpu=vfpv3-d16 -mfloat-abi=hard ;
 -# AIX variant of RS/6000 & PowerPC
 -toolset.flags gcc AROPTIONS <address-model>64/<target-os>aix : "-X64" ;
diff --git a/poky/meta/recipes-support/boost/boost/0001-fiber-libs-Define-SYS_futex-if-it-does-not-exist.patch b/poky/meta/recipes-support/boost/boost/0001-fiber-libs-Define-SYS_futex-if-it-does-not-exist.patch
deleted file mode 100644
index 523568e..0000000
--- a/poky/meta/recipes-support/boost/boost/0001-fiber-libs-Define-SYS_futex-if-it-does-not-exist.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From d6f7b6064dc91d1d5fa18554b40b14822ab7a32b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 16 Oct 2020 11:13:22 -0700
-Subject: [PATCH] fiber,libs: Define SYS_futex if it does not exist
-
-__NR_futex is not defines by newer architectures e.g. arc, riscv32 as
-they only have 64bit variant of time_t. Glibc defines SYS_futex interface based on
-__NR_futex, since this is used in applications, such applications start
-to fail to build for these newer architectures. This patch defines a
-fallback to alias __NR_futex to __NR_futex_tim64 so SYS_futex keeps
-working
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- boost/fiber/detail/futex.hpp | 5 +++++
- libs/log/src/event.cpp       | 4 ++++
- 2 files changed, 9 insertions(+)
-
-diff --git a/boost/fiber/detail/futex.hpp b/boost/fiber/detail/futex.hpp
-index e64bd5990..16bee64f1 100644
---- a/boost/fiber/detail/futex.hpp
-+++ b/boost/fiber/detail/futex.hpp
-@@ -17,6 +17,11 @@ extern "C" {
- #include <linux/futex.h>
- #include <sys/syscall.h>
- }
-+
-+#if !defined(SYS_futex) && defined(SYS_futex_time64)
-+#define SYS_futex SYS_futex_time64
-+#endif
-+
- #elif BOOST_OS_WINDOWS
- #include <windows.h>
- #endif
-diff --git a/libs/log/src/event.cpp b/libs/log/src/event.cpp
-index 5485154d7..2c7c0381f 100644
---- a/libs/log/src/event.cpp
-+++ b/libs/log/src/event.cpp
-@@ -31,6 +31,10 @@
- #include <linux/futex.h>
- #include <boost/memory_order.hpp>
- 
-+#if !defined(SYS_futex) && defined(SYS_futex_time64)
-+#define SYS_futex SYS_futex_time64
-+#endif
-+
- // Some Android NDKs (Google NDK and older Crystax.NET NDK versions) don't define SYS_futex
- #if defined(SYS_futex)
- #define BOOST_LOG_SYS_FUTEX SYS_futex
--- 
-2.28.0
-
diff --git a/poky/meta/recipes-support/boost/boost/de657e01635306085488290ea83de541ec393f8b.patch b/poky/meta/recipes-support/boost/boost/de657e01635306085488290ea83de541ec393f8b.patch
new file mode 100644
index 0000000..867ec03
--- /dev/null
+++ b/poky/meta/recipes-support/boost/boost/de657e01635306085488290ea83de541ec393f8b.patch
@@ -0,0 +1,30 @@
+From de657e01635306085488290ea83de541ec393f8b Mon Sep 17 00:00:00 2001
+From: Leonardo Neumann <leonardo@neumann.dev.br>
+Date: Mon, 13 Dec 2021 01:07:20 -0300
+Subject: [PATCH] Fix missing sys/stat.h include on musl-based systems
+
+Boost 1.78.0 fails to build on musl-based systems because musl does
+not include sys/stat.h by default.
+
+Fixes #161 ("Boost compiler error")
+Upstream-Status: Submitted [https://github.com/boostorg/interprocess/pull/162]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ include/boost/interprocess/permissions.hpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/boost/interprocess/permissions.hpp b/boost/interprocess/permissions.hpp
+index ab55411e..0b21a685 100644
+--- a/boost/interprocess/permissions.hpp
++++ b/boost/interprocess/permissions.hpp
+@@ -29,6 +29,10 @@
+ 
+ #include <boost/interprocess/detail/win32_api.hpp>
+ 
++#else
++
++#include <sys/stat.h>
++
+ #endif
+ 
+ #endif   //#ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
diff --git a/poky/meta/recipes-support/boost/boost_1.77.0.bb b/poky/meta/recipes-support/boost/boost_1.77.0.bb
deleted file mode 100644
index ba60281..0000000
--- a/poky/meta/recipes-support/boost/boost_1.77.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require boost-${PV}.inc
-require boost.inc
-
-SRC_URI += "file://boost-CVE-2012-2677.patch \
-           file://boost-math-disable-pch-for-gcc.patch \
-           file://0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch \
-           file://0001-dont-setup-compiler-flags-m32-m64.patch \
-           file://0001-fiber-libs-Define-SYS_futex-if-it-does-not-exist.patch \
-           file://0001-BoostConfig.cmake-allow-searching-for-python310.patch \
-           "
diff --git a/poky/meta/recipes-support/boost/boost_1.78.0.bb b/poky/meta/recipes-support/boost/boost_1.78.0.bb
new file mode 100644
index 0000000..f4b6ed8
--- /dev/null
+++ b/poky/meta/recipes-support/boost/boost_1.78.0.bb
@@ -0,0 +1,9 @@
+require boost-${PV}.inc
+require boost.inc
+
+SRC_URI += "file://boost-CVE-2012-2677.patch \
+           file://boost-math-disable-pch-for-gcc.patch \
+           file://0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch \
+           file://0001-dont-setup-compiler-flags-m32-m64.patch \
+           file://de657e01635306085488290ea83de541ec393f8b.patch \
+           "
diff --git a/poky/meta/recipes-support/ca-certificates/ca-certificates_20211016.bb b/poky/meta/recipes-support/ca-certificates/ca-certificates_20211016.bb
index 0bb192c..dbee7dc 100644
--- a/poky/meta/recipes-support/ca-certificates/ca-certificates_20211016.bb
+++ b/poky/meta/recipes-support/ca-certificates/ca-certificates_20211016.bb
@@ -16,7 +16,7 @@
 
 SRCREV = "07de54fdcc5806bde549e1edf60738c6bccf50e8"
 
-SRC_URI = "git://salsa.debian.org/debian/ca-certificates.git;protocol=https \
+SRC_URI = "git://salsa.debian.org/debian/ca-certificates.git;protocol=https;branch=master \
            file://0002-update-ca-certificates-use-SYSROOT.patch \
            file://0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch \
            file://default-sysroot.patch \
diff --git a/poky/meta/recipes-support/curl/curl/0001-replace-krb5-config-with-pkg-config.patch b/poky/meta/recipes-support/curl/curl/0001-replace-krb5-config-with-pkg-config.patch
deleted file mode 100644
index a7db1b3..0000000
--- a/poky/meta/recipes-support/curl/curl/0001-replace-krb5-config-with-pkg-config.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From ed70f0623708b8a6c1f58a5d243d87c5ff45b24d Mon Sep 17 00:00:00 2001
-From: Roy Li <rongqing.li@windriver.com>
-Date: Tue, 26 Apr 2016 13:13:01 +0800
-Subject: [PATCH] replace krb5-config with pkg-config
-
-Upstream-Status:  Pending
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
-
----
- configure.ac | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 5569a26..56b0380 100755
---- a/configure.ac
-+++ b/configure.ac
-@@ -1290,7 +1290,7 @@ AC_ARG_WITH(gssapi,
-   fi
- ])
- 
--: ${KRB5CONFIG:="$GSSAPI_ROOT/bin/krb5-config"}
-+KRB5CONFIG=`which pkg-config`
- 
- save_CPPFLAGS="$CPPFLAGS"
- AC_MSG_CHECKING([if GSS-API support is requested])
-@@ -1301,7 +1301,7 @@ if test x"$want_gss" = xyes; then
-      if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then
-         GSSAPI_INCS=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --cflags gssapi`
-      elif test -f "$KRB5CONFIG"; then
--        GSSAPI_INCS=`$KRB5CONFIG --cflags gssapi`
-+        GSSAPI_INCS=`$KRB5CONFIG --cflags mit-krb5-gssapi`
-      elif test "$GSSAPI_ROOT" != "yes"; then
-         GSSAPI_INCS="-I$GSSAPI_ROOT/include"
-      fi
-@@ -1394,7 +1394,7 @@ if test x"$want_gss" = xyes; then
-         elif test -f "$KRB5CONFIG"; then
-            dnl krb5-config doesn't have --libs-only-L or similar, put everything
-            dnl into LIBS
--           gss_libs=`$KRB5CONFIG --libs gssapi`
-+           gss_libs=`$KRB5CONFIG --libs mit-krb5-gssapi`
-            LIBS="$gss_libs $LIBS"
-         else
-            case $host in
diff --git a/poky/meta/recipes-support/curl/curl_7.79.1.bb b/poky/meta/recipes-support/curl/curl_7.79.1.bb
deleted file mode 100644
index 919777c..0000000
--- a/poky/meta/recipes-support/curl/curl_7.79.1.bb
+++ /dev/null
@@ -1,90 +0,0 @@
-SUMMARY = "Command line tool and library for client-side URL transfers"
-DESCRIPTION = "It uses URL syntax to transfer data to and from servers. \
-curl is a widely used because of its ability to be flexible and complete \
-complex tasks. For example, you can use curl for things like user authentication, \
-HTTP post, SSL connections, proxy support, FTP uploads, and more!"
-HOMEPAGE = "http://curl.haxx.se/"
-BUGTRACKER = "http://curl.haxx.se/mail/list.cgi?list=curl-tracker"
-SECTION = "console/network"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=425f6fdc767cc067518eef9bbdf4ab7b"
-
-SRC_URI = "https://curl.haxx.se/download/curl-${PV}.tar.bz2 \
-           file://0001-replace-krb5-config-with-pkg-config.patch \
-           "
-
-SRC_URI[sha256sum] = "de62c4ab9a9316393962e8b94777a570bb9f71feb580fb4475e412f2f9387851"
-
-# Curl has used many names over the years...
-CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl"
-
-inherit autotools pkgconfig binconfig multilib_header
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} ssl libidn proxy threaded-resolver verbose zlib"
-PACKAGECONFIG:class-native = "ipv6 proxy ssl threaded-resolver verbose zlib"
-PACKAGECONFIG:class-nativesdk = "ipv6 proxy ssl threaded-resolver verbose zlib"
-
-# 'ares' and 'threaded-resolver' are mutually exclusive
-PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver"
-PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli"
-PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual"
-PACKAGECONFIG[dict] = "--enable-dict,--disable-dict,"
-PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
-PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher,"
-PACKAGECONFIG[imap] = "--enable-imap,--disable-imap,"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5"
-PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,"
-PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps,"
-PACKAGECONFIG[libgsasl] = "--with-libgsasl,--without-libgsasl,libgsasl"
-PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2"
-PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2"
-PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls"
-PACKAGECONFIG[mqtt] = "--enable-mqtt,--disable-mqtt,"
-PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2"
-PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3,"
-PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy,"
-PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump"
-PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp,"
-PACKAGECONFIG[smb] = "--enable-smb,--disable-smb,"
-PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp,"
-PACKAGECONFIG[ssl] = "--with-ssl --with-random=/dev/urandom,--without-ssl,openssl"
-PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss"
-PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet,"
-PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp,"
-PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares"
-PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose"
-PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib"
-
-EXTRA_OECONF = " \
-    --disable-libcurl-option \
-    --disable-ntlm-wb \
-    --enable-crypto-auth \
-    --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
-    --without-libpsl \
-    --enable-debug \
-    --enable-optimize \
-    --disable-curldebug \
-"
-
-do_install:append:class-target() {
-	# cleanup buildpaths from curl-config
-	sed -i \
-	    -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
-	    -e 's,--with-libtool-sysroot=${STAGING_DIR_TARGET},,g' \
-	    -e 's|${DEBUG_PREFIX_MAP}||g' \
-	    -e 's|${@" ".join(d.getVar("DEBUG_PREFIX_MAP").split())}||g' \
-	    ${D}${bindir}/curl-config
-}
-
-PACKAGES =+ "lib${BPN}"
-
-FILES:lib${BPN} = "${libdir}/lib*.so.*"
-RRECOMMENDS:lib${BPN} += "ca-certificates"
-
-FILES:${PN} += "${datadir}/zsh"
-
-inherit multilib_script
-MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/curl/curl_7.81.0.bb b/poky/meta/recipes-support/curl/curl_7.81.0.bb
new file mode 100644
index 0000000..c22a13c
--- /dev/null
+++ b/poky/meta/recipes-support/curl/curl_7.81.0.bb
@@ -0,0 +1,92 @@
+SUMMARY = "Command line tool and library for client-side URL transfers"
+DESCRIPTION = "It uses URL syntax to transfer data to and from servers. \
+curl is a widely used because of its ability to be flexible and complete \
+complex tasks. For example, you can use curl for things like user authentication, \
+HTTP post, SSL connections, proxy support, FTP uploads, and more!"
+HOMEPAGE = "https://curl.se/"
+BUGTRACKER = "https://github.com/curl/curl/issues"
+SECTION = "console/network"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=425f6fdc767cc067518eef9bbdf4ab7b"
+
+SRC_URI = "https://curl.se/download/${BP}.tar.xz"
+SRC_URI[sha256sum] = "a067b688d1645183febc31309ec1f3cdce9213d02136b6a6de3d50f69c95a7d3"
+
+# Curl has used many names over the years...
+CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl"
+
+inherit autotools pkgconfig binconfig multilib_header
+
+# Entropy source for random PACKAGECONFIG option
+RANDOM = "/dev/urandom"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} libidn openssl proxy random threaded-resolver verbose zlib"
+PACKAGECONFIG:class-native = "ipv6 openssl proxy random threaded-resolver verbose zlib"
+PACKAGECONFIG:class-nativesdk = "ipv6 openssl proxy random threaded-resolver verbose zlib"
+
+# 'ares' and 'threaded-resolver' are mutually exclusive
+PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver"
+PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli"
+PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual"
+PACKAGECONFIG[dict] = "--enable-dict,--disable-dict,"
+PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
+PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher,"
+PACKAGECONFIG[imap] = "--enable-imap,--disable-imap,"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5"
+PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,"
+PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps,"
+PACKAGECONFIG[libgsasl] = "--with-libgsasl,--without-libgsasl,libgsasl"
+PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2"
+PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2"
+PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls"
+PACKAGECONFIG[mqtt] = "--enable-mqtt,--disable-mqtt,"
+PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
+PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3,"
+PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy,"
+PACKAGECONFIG[random] = "--with-random=${RANDOM},--without-random"
+PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump"
+PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp,"
+PACKAGECONFIG[smb] = "--enable-smb,--disable-smb,"
+PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp,"
+PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss"
+PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet,"
+PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp,"
+PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares"
+PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose"
+PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib"
+PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
+
+EXTRA_OECONF = " \
+    --disable-libcurl-option \
+    --disable-ntlm-wb \
+    --enable-crypto-auth \
+    --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
+    --without-libpsl \
+    --enable-debug \
+    --enable-optimize \
+    --disable-curldebug \
+"
+
+do_install:append:class-target() {
+	# cleanup buildpaths from curl-config
+	sed -i \
+	    -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
+	    -e 's,--with-libtool-sysroot=${STAGING_DIR_TARGET},,g' \
+	    -e 's|${DEBUG_PREFIX_MAP}||g' \
+	    -e 's|${@" ".join(d.getVar("DEBUG_PREFIX_MAP").split())}||g' \
+	    ${D}${bindir}/curl-config
+}
+
+PACKAGES =+ "lib${BPN}"
+
+FILES:lib${BPN} = "${libdir}/lib*.so.*"
+RRECOMMENDS:lib${BPN} += "ca-certificates"
+
+FILES:${PN} += "${datadir}/zsh"
+
+inherit multilib_script
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/db/db/0001-Fix-libc-compatibility-by-renaming-atomic_init-API.patch b/poky/meta/recipes-support/db/db/0001-Fix-libc-compatibility-by-renaming-atomic_init-API.patch
index a4ff2ec..c82e7c3 100644
--- a/poky/meta/recipes-support/db/db/0001-Fix-libc-compatibility-by-renaming-atomic_init-API.patch
+++ b/poky/meta/recipes-support/db/db/0001-Fix-libc-compatibility-by-renaming-atomic_init-API.patch
@@ -7,7 +7,7 @@
 library identifier, atomic_init().  Therefore prefix all
 its internal defines with '__db_', to avoid collisions.
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [as far as open source community is concerned, upstream is dead]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
diff --git a/poky/meta/recipes-support/db/db/0001-atomic-Rename-local-__atomic_compare_exchange-to-avo.patch b/poky/meta/recipes-support/db/db/0001-atomic-Rename-local-__atomic_compare_exchange-to-avo.patch
index 571708e..2374885 100644
--- a/poky/meta/recipes-support/db/db/0001-atomic-Rename-local-__atomic_compare_exchange-to-avo.patch
+++ b/poky/meta/recipes-support/db/db/0001-atomic-Rename-local-__atomic_compare_exchange-to-avo.patch
@@ -11,7 +11,7 @@
 ../db-5.3.28/src/dbinc/atomic.h:179:19: error: definition of builtin function '__atomic_compare_exchange'
 static inline int __atomic_compare_exchange(
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [as far as open source community is concerned, upstream is dead]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
diff --git a/poky/meta/recipes-support/db/db/0001-clock-Do-not-define-own-timespec.patch b/poky/meta/recipes-support/db/db/0001-clock-Do-not-define-own-timespec.patch
index 9d51a44..d238b0f 100644
--- a/poky/meta/recipes-support/db/db/0001-clock-Do-not-define-own-timespec.patch
+++ b/poky/meta/recipes-support/db/db/0001-clock-Do-not-define-own-timespec.patch
@@ -10,7 +10,7 @@
 
 This can cause problems especially with 64bit time_t
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [as far as open source community is concerned, upstream is dead]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  src/dbinc/clock.h | 17 +----------------
diff --git a/poky/meta/recipes-support/db/db/0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch b/poky/meta/recipes-support/db/db/0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch
index cb28db1..a574cf6 100644
--- a/poky/meta/recipes-support/db/db/0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch
+++ b/poky/meta/recipes-support/db/db/0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch
@@ -7,7 +7,7 @@
 fail because CC variable is having -fPIE -pie and libtool
 smartly removes it when building libraries
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [as far as open source community is concerned, upstream is dead]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
diff --git a/poky/meta/recipes-support/db/db/fix-parallel-build.patch b/poky/meta/recipes-support/db/db/fix-parallel-build.patch
index 27632e1..42c2407 100644
--- a/poky/meta/recipes-support/db/db/fix-parallel-build.patch
+++ b/poky/meta/recipes-support/db/db/fix-parallel-build.patch
@@ -2,7 +2,7 @@
 libtool: link: `util_log.lo' is not a valid libtool object
 make: *** [db_replicate] Error 1
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [as far as open source community is concerned, upstream is dead]
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
 
diff --git a/poky/meta/recipes-support/db/db/sequence-type.patch b/poky/meta/recipes-support/db/db/sequence-type.patch
index a6fe3d6..fc9f7f0 100644
--- a/poky/meta/recipes-support/db/db/sequence-type.patch
+++ b/poky/meta/recipes-support/db/db/sequence-type.patch
@@ -6,7 +6,7 @@
 This then breaks the overly complicated type check but as we know that int64_t
 exists and works, we can just delete that.
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [as far as open source community is concerned, upstream is dead]
 Signed-off-by: Ross Burton <ross.burton@intel.com>
 
 --- a/dist/aclocal/sequence.m4~	2013-09-09 16:35:02.000000000 +0100
diff --git a/poky/meta/recipes-support/db/db_5.3.28.bb b/poky/meta/recipes-support/db/db_5.3.28.bb
index d5b788a..c5427f5 100644
--- a/poky/meta/recipes-support/db/db_5.3.28.bb
+++ b/poky/meta/recipes-support/db/db_5.3.28.bb
@@ -66,8 +66,6 @@
 PACKAGECONFIG[verify] = "--enable-verify, --disable-verify"
 PACKAGECONFIG[dbm] = "--enable-dbm,--disable-dbm,"
 
-EXTRA_OEMAKE += "LIBTOOL='./${HOST_SYS}-libtool'"
-
 EXTRA_AUTORECONF += "--exclude=autoheader  -I ${S}/dist/aclocal -I${S}/dist/aclocal_java"
 AUTOTOOLS_SCRIPT_PATH = "${S}/dist"
 
@@ -91,7 +89,7 @@
 
 do_compile:prepend() {
     # Stop libtool adding RPATHs
-    sed -i -e 's|hardcode_into_libs=yes|hardcode_into_libs=no|' ${B}/${HOST_SYS}-libtool
+    sed -i -e 's|hardcode_into_libs=yes|hardcode_into_libs=no|' ${B}/libtool
 }
 
 do_install:append() {
diff --git a/poky/meta/recipes-support/debianutils/debianutils_4.11.2.bb b/poky/meta/recipes-support/debianutils/debianutils_4.11.2.bb
deleted file mode 100644
index 231666c..0000000
--- a/poky/meta/recipes-support/debianutils/debianutils_4.11.2.bb
+++ /dev/null
@@ -1,60 +0,0 @@
-SUMMARY = "Miscellaneous utilities specific to Debian"
-DESCRIPTION = "Provides a number of small utilities which are used \
-primarily by the installation scripts of Debian packages, although \
-you may use them directly. "
-HOMEPAGE = "https://packages.debian.org/sid/debianutils"
-BUGTRACKER = "https://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=debianutils;dist=unstable"
-SECTION = "base"
-LICENSE = "GPLv2 & SMAIL_GPL"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=9b912cd0cc654134c0ef3424a0705b94"
-
-SRC_URI = "http://snapshot.debian.org/archive/debian/20200929T025235Z/pool/main/d/${BPN}/${BPN}_${PV}.tar.xz"
-# the package is taken from snapshots.debian.org; that source is static and goes stale
-# so we check the latest upstream from a directory that does get updated
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/"
-
-SRC_URI[sha256sum] = "3b680e81709b740387335fac8f8806d71611dcf60874e1a792e862e48a1650de"
-
-inherit autotools update-alternatives
-
-S = "${WORKDIR}/debianutils"
-do_configure:prepend() {
-    sed -i -e 's:tempfile.1 which.1:which.1:g' ${S}/Makefile.am
-}
-
-do_install:append() {
-    if [ "${base_bindir}" != "${bindir}" ]; then
-        # Debian places some utils into ${base_bindir} as does busybox
-        install -d ${D}${base_bindir}
-        for app in run-parts tempfile; do
-            mv ${D}${bindir}/$app ${D}${base_bindir}/$app
-        done
-    fi
-}
-
-# Note that we package the update-alternatives name.
-#
-PACKAGES =+ "${PN}-run-parts"
-FILES:${PN}-run-parts = "${base_bindir}/run-parts.debianutils"
-
-RDEPENDS:${PN} += "${PN}-run-parts"
-RDEPENDS:${PN}:class-native = ""
-
-ALTERNATIVE_PRIORITY = "30"
-ALTERNATIVE:${PN} = "add-shell installkernel remove-shell savelog tempfile which"
-
-ALTERNATIVE_PRIORITY_${PN}-run-parts = "60"
-ALTERNATIVE:${PN}-run-parts = "run-parts"
-
-ALTERNATIVE:${PN}-doc = "which.1"
-ALTERNATIVE_LINK_NAME[which.1] = "${mandir}/man1/which.1"
-
-ALTERNATIVE_LINK_NAME[add-shell] = "${sbindir}/add-shell"
-ALTERNATIVE_LINK_NAME[installkernel] = "${sbindir}/installkernel"
-ALTERNATIVE_LINK_NAME[remove-shell] = "${sbindir}/remove-shell"
-ALTERNATIVE_LINK_NAME[run-parts] = "${base_bindir}/run-parts"
-ALTERNATIVE_LINK_NAME[savelog] = "${bindir}/savelog"
-ALTERNATIVE_LINK_NAME[tempfile] = "${base_bindir}/tempfile"
-ALTERNATIVE_LINK_NAME[which] = "${bindir}/which"
-
-BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-support/debianutils/debianutils_5.5.bb b/poky/meta/recipes-support/debianutils/debianutils_5.5.bb
new file mode 100644
index 0000000..6eea86f
--- /dev/null
+++ b/poky/meta/recipes-support/debianutils/debianutils_5.5.bb
@@ -0,0 +1,60 @@
+SUMMARY = "Miscellaneous utilities specific to Debian"
+DESCRIPTION = "Provides a number of small utilities which are used \
+primarily by the installation scripts of Debian packages, although \
+you may use them directly. "
+HOMEPAGE = "https://packages.debian.org/sid/debianutils"
+BUGTRACKER = "https://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=debianutils;dist=unstable"
+SECTION = "base"
+LICENSE = "GPLv2 & SMAIL_GPL"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=9b912cd0cc654134c0ef3424a0705b94"
+
+SRC_URI = "git://salsa.debian.org/debian/debianutils.git;protocol=https;branch=master \
+           "
+
+SRCREV = "4c420893485ad07d771c327ef899819d4846408f"
+
+inherit autotools update-alternatives
+
+S = "${WORKDIR}/git"
+
+# Disable po4a (translated manpages) sub-directory, as that requires po4a to build
+do_configure:prepend() {
+    sed -i -e 's:po4a::g' ${S}/Makefile.am
+}
+
+
+do_install:append() {
+    if [ "${base_bindir}" != "${bindir}" ]; then
+        # Debian places some utils into ${base_bindir} as does busybox
+        install -d ${D}${base_bindir}
+        for app in run-parts; do
+            mv ${D}${bindir}/$app ${D}${base_bindir}/$app
+        done
+    fi
+}
+
+# Note that we package the update-alternatives name.
+#
+PACKAGES =+ "${PN}-run-parts"
+FILES:${PN}-run-parts = "${base_bindir}/run-parts.debianutils"
+
+RDEPENDS:${PN} += "${PN}-run-parts"
+RDEPENDS:${PN}:class-native = ""
+
+ALTERNATIVE_PRIORITY = "30"
+ALTERNATIVE:${PN} = "add-shell installkernel remove-shell savelog which"
+
+ALTERNATIVE_PRIORITY_${PN}-run-parts = "60"
+ALTERNATIVE:${PN}-run-parts = "run-parts"
+
+ALTERNATIVE:${PN}-doc = "which.1"
+ALTERNATIVE_LINK_NAME[which.1] = "${mandir}/man1/which.1"
+
+ALTERNATIVE_LINK_NAME[add-shell] = "${sbindir}/add-shell"
+ALTERNATIVE_LINK_NAME[installkernel] = "${sbindir}/installkernel"
+ALTERNATIVE_LINK_NAME[remove-shell] = "${sbindir}/remove-shell"
+ALTERNATIVE_LINK_NAME[run-parts] = "${base_bindir}/run-parts"
+ALTERNATIVE_LINK_NAME[savelog] = "${bindir}/savelog"
+ALTERNATIVE_LINK_NAME[which] = "${bindir}/which"
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_188.bb b/poky/meta/recipes-support/diffoscope/diffoscope_188.bb
deleted file mode 100644
index d4fd112..0000000
--- a/poky/meta/recipes-support/diffoscope/diffoscope_188.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "in-depth comparison of files, archives, and directories"
-DESCRIPTION = "Tries to get to the bottom of what makes files or directories \
-different. It will recursively unpack archives of many kinds and transform \
-various binary formats into more human-readable form to compare them. \
-It can compare two tarballs, ISO images, or PDF just as easily."
-HOMEPAGE = "https://diffoscope.org/"
-BUGTRACKER = "https://salsa.debian.org/reproducible-builds/diffoscope/-/issues"
-LICENSE = "GPL-3.0+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-PYPI_PACKAGE = "diffoscope"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "cdbc401c78d59779ad8ebbb8e2008166f912e77c7ed3be8dc788d36948712ff5"
-
-RDEPENDS:${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic python3-rpm"
-
-# Dependencies don't build for musl
-COMPATIBLE_HOST:libc-musl = 'null'
-
-do_install:append:class-native() {
-	create_wrapper ${D}${bindir}/diffoscope \
-		MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc \
-		RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \
-		LD_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE} \
-		RPM_ETCCONFIGDIR=${STAGING_DIR_NATIVE}
-}
-
-BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_200.bb b/poky/meta/recipes-support/diffoscope/diffoscope_200.bb
new file mode 100644
index 0000000..4239b34
--- /dev/null
+++ b/poky/meta/recipes-support/diffoscope/diffoscope_200.bb
@@ -0,0 +1,30 @@
+SUMMARY = "in-depth comparison of files, archives, and directories"
+DESCRIPTION = "Tries to get to the bottom of what makes files or directories \
+different. It will recursively unpack archives of many kinds and transform \
+various binary formats into more human-readable form to compare them. \
+It can compare two tarballs, ISO images, or PDF just as easily."
+HOMEPAGE = "https://diffoscope.org/"
+BUGTRACKER = "https://salsa.debian.org/reproducible-builds/diffoscope/-/issues"
+LICENSE = "GPL-3.0+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+PYPI_PACKAGE = "diffoscope"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "2fadac87b41cd5238fad7a624bab47ff5cd4c1f70c523e4e9cf6706c9d1a5e53"
+
+RDEPENDS:${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic python3-rpm"
+
+# Dependencies don't build for musl
+COMPATIBLE_HOST:libc-musl = 'null'
+
+do_install:append:class-native() {
+	create_wrapper ${D}${bindir}/diffoscope \
+		MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc \
+		RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \
+		LD_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE} \
+		RPM_ETCCONFIGDIR=${STAGING_DIR_NATIVE}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-support/dos2unix/dos2unix_7.4.2.bb b/poky/meta/recipes-support/dos2unix/dos2unix_7.4.2.bb
index 15d097e..509a0a0 100644
--- a/poky/meta/recipes-support/dos2unix/dos2unix_7.4.2.bb
+++ b/poky/meta/recipes-support/dos2unix/dos2unix_7.4.2.bb
@@ -8,7 +8,7 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://COPYING.txt;md5=8a7c3499a1142df819e727253cd53a12"
 
-SRC_URI = "git://git.code.sf.net/p/dos2unix/dos2unix"
+SRC_URI = "git://git.code.sf.net/p/dos2unix/dos2unix;branch=master"
 UPSTREAM_CHECK_GITTAGREGEX = "dos2unix-(?P<pver>(\d+(\.\d+)+))"
 
 SRCREV = "72596f0ae21faa25a07a872d4843bc885475115d"
diff --git a/poky/meta/recipes-support/enchant/enchant2_2.3.1.bb b/poky/meta/recipes-support/enchant/enchant2_2.3.1.bb
deleted file mode 100644
index 7260304..0000000
--- a/poky/meta/recipes-support/enchant/enchant2_2.3.1.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Enchant Spell checker API Library"
-DESCRIPTION = "A library (and command-line program) that wraps a number of \
-different spelling libraries and programs with a consistent interface."
-SECTION = "libs"
-HOMEPAGE = "https://abiword.github.io/enchant/"
-BUGTRACKER = "https://github.com/AbiWord/enchant/issues/"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "glib-2.0"
-
-inherit autotools pkgconfig
-
-SRC_URI = "https://github.com/AbiWord/enchant/releases/download/v${PV}/enchant-${PV}.tar.gz"
-SRC_URI[sha256sum] = "7b4b1afcf2cd8bfa691deea6188404d337f23174bbc39b9c2add2bf340736e9c"
-
-UPSTREAM_CHECK_URI = "https://github.com/AbiWord/enchant/releases"
-
-S = "${WORKDIR}/enchant-${PV}"
-
-EXTRA_OEMAKE = "pkgdatadir=${datadir}/enchant-2"
-
-PACKAGECONFIG ??= "aspell"
-PACKAGECONFIG[aspell]  = "--with-aspell,--without-aspell,aspell,aspell"
-PACKAGECONFIG[hunspell]  = "--with-hunspell,--without-hunspell,hunspell,hunspell"
-
-FILES:${PN} += " \
-    ${datadir}/enchant-2 \
-    ${libdir}/enchant-2 \
-"
-FILES:${PN}-staticdev += "${libdir}/enchant-2/*.a"
diff --git a/poky/meta/recipes-support/enchant/enchant2_2.3.2.bb b/poky/meta/recipes-support/enchant/enchant2_2.3.2.bb
new file mode 100644
index 0000000..c7b6504
--- /dev/null
+++ b/poky/meta/recipes-support/enchant/enchant2_2.3.2.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Enchant Spell checker API Library"
+DESCRIPTION = "A library (and command-line program) that wraps a number of \
+different spelling libraries and programs with a consistent interface."
+SECTION = "libs"
+HOMEPAGE = "https://abiword.github.io/enchant/"
+BUGTRACKER = "https://github.com/AbiWord/enchant/issues/"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "glib-2.0"
+
+inherit autotools pkgconfig
+
+SRC_URI = "https://github.com/AbiWord/enchant/releases/download/v${PV}/enchant-${PV}.tar.gz"
+SRC_URI[sha256sum] = "ce9ba47fd4d34031bd69445598a698a6611602b2b0e91d705e91a6f5099ead6e"
+
+UPSTREAM_CHECK_URI = "https://github.com/AbiWord/enchant/releases"
+
+S = "${WORKDIR}/enchant-${PV}"
+
+EXTRA_OEMAKE = "pkgdatadir=${datadir}/enchant-2"
+
+PACKAGECONFIG ??= "aspell"
+PACKAGECONFIG[aspell]  = "--with-aspell,--without-aspell,aspell,aspell"
+PACKAGECONFIG[hunspell]  = "--with-hunspell,--without-hunspell,hunspell,hunspell"
+
+FILES:${PN} += " \
+    ${datadir}/enchant-2 \
+    ${libdir}/enchant-2 \
+"
+FILES:${PN}-staticdev += "${libdir}/enchant-2/*.a"
diff --git a/poky/meta/recipes-support/gdbm/files/ptest.patch b/poky/meta/recipes-support/gdbm/files/ptest.patch
index 1e67dbd..187f096 100644
--- a/poky/meta/recipes-support/gdbm/files/ptest.patch
+++ b/poky/meta/recipes-support/gdbm/files/ptest.patch
@@ -1,4 +1,4 @@
-From 41448708e163c8ec1f980464e7dd6741db427c8a Mon Sep 17 00:00:00 2001
+From 8bea84a598b51a7ac7e50aa8f0f20857a9b6b07b Mon Sep 17 00:00:00 2001
 From: Josep Puigdemont <josep.puigdemont@enea.com>
 Date: Sun, 4 May 2014 16:02:07 +0200
 Subject: [PATCH] Add install-ptest rules.
@@ -13,12 +13,12 @@
  2 files changed, 16 insertions(+)
 
 diff --git a/Makefile.am b/Makefile.am
-index ecc03df..9fbbda5 100644
+index 25e200d..03d5ef0 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -55,3 +55,8 @@ ChangeLog:
-                 awk -f $(top_srcdir)/git2chg.awk                            \
-                     -v append=$(top_srcdir)/$(prev_change_log) > ChangeLog; \
+@@ -64,3 +64,8 @@ ChangeLog:
+             mv ChangeLog.tmp ChangeLog;                                     \
+           rm -f ChangeLog.tmp;                                              \
          fi
 +
 +install-ptest:
@@ -26,12 +26,12 @@
 +		$(MAKE) -C $$subdir DESTDIR=$(DESTDIR)/$$subdir $@; \
 +	done
 diff --git a/tests/Makefile.am b/tests/Makefile.am
-index dbe17dd..06f537f 100644
+index 337cbed..92ec3be 100644
 --- a/tests/Makefile.am
 +++ b/tests/Makefile.am
-@@ -169,3 +169,14 @@ EXTRA_DIST += \
-   gdbmtool/base.exp\
-   config/default.exp
+@@ -139,3 +139,14 @@ d_creat_ce_LDADD = ../src/libgdbm.la ../compat/libgdbm_compat.la
+ 
+ SUBDIRS = gdbmtool
  
 +buildtests: $(check_PROGRAMS) $(TESTSUITE)
 +
diff --git a/poky/meta/recipes-support/gdbm/gdbm_1.19.bb b/poky/meta/recipes-support/gdbm/gdbm_1.19.bb
deleted file mode 100644
index 1d1a0c8..0000000
--- a/poky/meta/recipes-support/gdbm/gdbm_1.19.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "Key/value database library with extensible hashing"
-DESCRIPTION = "Library of database functions that use extensible hashing \
-and work similar to the standard UNIX dbm. These routines are provided \
-to a programmer needing to create and manipulate a hashed database."
-HOMEPAGE = "http://www.gnu.org/software/gdbm/"
-SECTION = "libs"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=241da1b9fe42e642cbb2c24d5e0c4d24"
-
-
-SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz \
-           file://run-ptest \
-           file://ptest.patch \
-          "
-
-SRC_URI[md5sum] = "aeb29c6a90350a4c959cd1df38cd0a7e"
-SRC_URI[sha256sum] = "37ed12214122b972e18a0d94995039e57748191939ef74115b1d41d8811364bc"
-
-inherit autotools gettext texinfo lib_package ptest
-
-# Needed for dbm python module
-EXTRA_OECONF = "--enable-libgdbm-compat --without-readline"
-
-# Stop presence of dbm/nbdm on the host contaminating builds
-CACHED_CONFIGUREVARS += "ac_cv_lib_ndbm_main=no ac_cv_lib_dbm_main=no"
-
-BBCLASSEXTEND = "native nativesdk"
-
-do_install:append () {
-    # Create a symlink to ndbm.h and gdbm.h in include/gdbm to let other packages to find
-    # these headers
-    install -d ${D}${includedir}/gdbm
-    ln -sf ../ndbm.h ${D}/${includedir}/gdbm/ndbm.h
-    ln -sf ../gdbm.h ${D}/${includedir}/gdbm/gdbm.h
-}
-
-RDEPENDS:${PN}-ptest += "diffutils ${PN}-bin"
-
-do_compile_ptest() {
-    oe_runmake -C tests buildtests
-}
-
-PACKAGES =+ "${PN}-compat \
-            "
-FILES:${PN}-compat = "${libdir}/libgdbm_compat${SOLIBS} \
-                     "
diff --git a/poky/meta/recipes-support/gdbm/gdbm_1.22.bb b/poky/meta/recipes-support/gdbm/gdbm_1.22.bb
new file mode 100644
index 0000000..5cb12cd
--- /dev/null
+++ b/poky/meta/recipes-support/gdbm/gdbm_1.22.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Key/value database library with extensible hashing"
+DESCRIPTION = "Library of database functions that use extensible hashing \
+and work similar to the standard UNIX dbm. These routines are provided \
+to a programmer needing to create and manipulate a hashed database."
+HOMEPAGE = "http://www.gnu.org/software/gdbm/"
+SECTION = "libs"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=241da1b9fe42e642cbb2c24d5e0c4d24"
+
+
+SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz \
+           file://run-ptest \
+           file://ptest.patch \
+          "
+
+SRC_URI[sha256sum] = "f366c823a6724af313b6bbe975b2809f9a157e5f6a43612a72949138d161d762"
+
+inherit autotools gettext texinfo lib_package ptest
+
+# Needed for dbm python module
+EXTRA_OECONF = "--enable-libgdbm-compat --without-readline"
+
+# Stop presence of dbm/nbdm on the host contaminating builds
+CACHED_CONFIGUREVARS += "ac_cv_lib_ndbm_main=no ac_cv_lib_dbm_main=no"
+
+BBCLASSEXTEND = "native nativesdk"
+
+do_install:append () {
+    # Create a symlink to ndbm.h and gdbm.h in include/gdbm to let other packages to find
+    # these headers
+    install -d ${D}${includedir}/gdbm
+    ln -sf ../ndbm.h ${D}/${includedir}/gdbm/ndbm.h
+    ln -sf ../gdbm.h ${D}/${includedir}/gdbm/gdbm.h
+}
+
+RDEPENDS:${PN}-ptest += "diffutils ${PN}-bin"
+
+do_compile_ptest() {
+    oe_runmake -C tests buildtests
+}
+
+PACKAGES =+ "${PN}-compat \
+            "
+FILES:${PN}-compat = "${libdir}/libgdbm_compat${SOLIBS} \
+                     "
diff --git a/poky/meta/recipes-support/gmp/gmp/0001-confiure.ac-Believe-the-cflags-from-environment.patch b/poky/meta/recipes-support/gmp/gmp/0001-confiure.ac-Believe-the-cflags-from-environment.patch
index 56564db..b26f4db 100644
--- a/poky/meta/recipes-support/gmp/gmp/0001-confiure.ac-Believe-the-cflags-from-environment.patch
+++ b/poky/meta/recipes-support/gmp/gmp/0001-confiure.ac-Believe-the-cflags-from-environment.patch
@@ -12,8 +12,8 @@
 is made, since it is passed from cmdline
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Inappropriate [OE-Specific]
 ---
-Upstream-Status: Inappropriate[OE-Specific]
 
  configure.ac | 11 -----------
  1 file changed, 11 deletions(-)
diff --git a/poky/meta/recipes-support/gmp/gmp/cve-2021-43618.patch b/poky/meta/recipes-support/gmp/gmp/cve-2021-43618.patch
new file mode 100644
index 0000000..095fb21
--- /dev/null
+++ b/poky/meta/recipes-support/gmp/gmp/cve-2021-43618.patch
@@ -0,0 +1,27 @@
+CVE: CVE-2021-43618
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+# HG changeset patch
+# User Marco Bodrato <bodrato@mail.dm.unipi.it>
+# Date 1634836009 -7200
+# Node ID 561a9c25298e17bb01896801ff353546c6923dbd
+# Parent  e1fd9db13b475209a864577237ea4b9105b3e96e
+mpz/inp_raw.c: Avoid bit size overflows
+
+diff -r e1fd9db13b47 -r 561a9c25298e mpz/inp_raw.c
+--- a/mpz/inp_raw.c	Tue Dec 22 23:49:51 2020 +0100
++++ b/mpz/inp_raw.c	Thu Oct 21 19:06:49 2021 +0200
+@@ -88,8 +88,11 @@
+ 
+   abs_csize = ABS (csize);
+ 
++  if (UNLIKELY (abs_csize > ~(mp_bitcnt_t) 0 / 8))
++    return 0; /* Bit size overflows */
++
+   /* round up to a multiple of limbs */
+-  abs_xsize = BITS_TO_LIMBS (abs_csize*8);
++  abs_xsize = BITS_TO_LIMBS ((mp_bitcnt_t) abs_csize * 8);
+ 
+   if (abs_xsize != 0)
+     {
diff --git a/poky/meta/recipes-support/gmp/gmp_6.2.1.bb b/poky/meta/recipes-support/gmp/gmp_6.2.1.bb
index d5996ab..e61582a 100644
--- a/poky/meta/recipes-support/gmp/gmp_6.2.1.bb
+++ b/poky/meta/recipes-support/gmp/gmp_6.2.1.bb
@@ -12,6 +12,7 @@
            file://use-includedir.patch \
            file://0001-Append-the-user-provided-flags-to-the-auto-detected-.patch \
            file://0001-confiure.ac-Believe-the-cflags-from-environment.patch \
+           file://cve-2021-43618.patch \
            "
 SRC_URI[md5sum] = "28971fc21cf028042d4897f02fd355ea"
 SRC_URI[sha256sum] = "eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c"
diff --git a/poky/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb b/poky/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb
index 10200f5..8cd27e9 100644
--- a/poky/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb
+++ b/poky/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
                     file://src/gnome-desktop-testing-runner.c;beginline=1;endline=20;md5=7ef3ad9da2ffcf7707dc11151fe007f4"
 
-SRC_URI = "git://gitlab.gnome.org/GNOME/gnome-desktop-testing.git;protocol=http \
+SRC_URI = "git://gitlab.gnome.org/GNOME/gnome-desktop-testing.git;protocol=http;branch=master \
            file://0001-fix-non-literal-format-string-issue-with-clang.patch \
           "
 SRCREV = "e346cd4ed2e2102c9b195b614f3c642d23f5f6e7"
diff --git a/poky/meta/recipes-support/gnupg/gnupg/relocate.patch b/poky/meta/recipes-support/gnupg/gnupg/relocate.patch
index 53679bf..74f48e9 100644
--- a/poky/meta/recipes-support/gnupg/gnupg/relocate.patch
+++ b/poky/meta/recipes-support/gnupg/gnupg/relocate.patch
@@ -1,4 +1,4 @@
-From 766d37fe9acd9fdaaff9c094635e06b50c5902d7 Mon Sep 17 00:00:00 2001
+From 1e34e1d477f843c0ee2f1a3fddc20201f0233e81 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Wed, 19 Sep 2018 14:44:40 +0100
 Subject: [PATCH] Allow the environment to override where gnupg looks for its
@@ -8,15 +8,16 @@
 Signed-off-by: Ross Burton <ross.burton@intel.com>
 
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
 ---
  common/homedir.c | 14 +++++++-------
  1 file changed, 7 insertions(+), 7 deletions(-)
 
 diff --git a/common/homedir.c b/common/homedir.c
-index 455c188..55049db 100644
+index 174d961..f4c25fb 100644
 --- a/common/homedir.c
 +++ b/common/homedir.c
-@@ -1155,7 +1155,7 @@ gnupg_socketdir (void)
+@@ -1161,7 +1161,7 @@ gnupg_socketdir (void)
    if (!name)
      {
        unsigned int dummy;
@@ -25,7 +26,7 @@
        gpgrt_annotate_leaked_object (name);
      }
  
-@@ -1187,7 +1187,7 @@ gnupg_sysconfdir (void)
+@@ -1193,7 +1193,7 @@ gnupg_sysconfdir (void)
    if (dir)
      return dir;
    else
@@ -34,7 +35,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -1223,7 +1223,7 @@ gnupg_bindir (void)
+@@ -1229,7 +1229,7 @@ gnupg_bindir (void)
        return name;
      }
    else
@@ -43,7 +44,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -1250,7 +1250,7 @@ gnupg_libexecdir (void)
+@@ -1256,7 +1256,7 @@ gnupg_libexecdir (void)
        return name;
      }
    else
@@ -52,7 +53,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -1280,7 +1280,7 @@ gnupg_libdir (void)
+@@ -1286,7 +1286,7 @@ gnupg_libdir (void)
        return name;
      }
    else
@@ -61,7 +62,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -1311,7 +1311,7 @@ gnupg_datadir (void)
+@@ -1317,7 +1317,7 @@ gnupg_datadir (void)
        return name;
      }
    else
@@ -70,7 +71,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -1343,7 +1343,7 @@ gnupg_localedir (void)
+@@ -1349,7 +1349,7 @@ gnupg_localedir (void)
        return name;
      }
    else
@@ -79,6 +80,3 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-support/gnupg/gnupg_2.3.3.bb b/poky/meta/recipes-support/gnupg/gnupg_2.3.3.bb
deleted file mode 100644
index 5614ac6..0000000
--- a/poky/meta/recipes-support/gnupg/gnupg_2.3.3.bb
+++ /dev/null
@@ -1,85 +0,0 @@
-SUMMARY = "GNU Privacy Guard - encryption and signing tools (2.x)"
-DESCRIPTION = "A complete and free implementation of the OpenPGP standard \
-as defined by RFC4880 (also known as PGP). GnuPG allows you to encrypt \
-and sign your data and communications; it features a versatile key \
-management system, along with access modules for all kinds of public \
-key directories."
-HOMEPAGE = "http://www.gnupg.org/"
-LICENSE = "GPLv3 & LGPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=189af8afca6d6075ba6c9e0aa8077626 \
-                    file://COPYING.LGPL3;md5=a2b6bf2cb38ee52619e60f30a1fc7257"
-
-DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt"
-
-inherit autotools gettext texinfo pkgconfig
-
-UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
-SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
-           file://0002-use-pkgconfig-instead-of-npth-config.patch \
-           file://0003-dirmngr-uses-libgpg-error.patch \
-           file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \
-           file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \
-           "
-SRC_URI:append:class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \
-                                file://relocate.patch"
-SRC_URI:append:class-nativesdk = " file://relocate.patch"
-
-SRC_URI[sha256sum] = "5789b86da6a1a6752efb38598f16a77af51170a8494039c3842b085032e8e937"
-
-EXTRA_OECONF = "--disable-ldap \
-		--disable-ccid-driver \
-		--with-zlib=${STAGING_LIBDIR}/.. \
-		--with-bzip2=${STAGING_LIBDIR}/.. \
-		--with-readline=${STAGING_LIBDIR}/.. \
-		--with-mailprog=${sbindir}/sendmail \
-		--enable-gpg-is-gpg2 \
-               "
-
-# A minimal package containing just enough to run gpg+gpgagent (E.g. use gpgme in opkg)
-PACKAGES =+ "${PN}-gpg"
-FILES:${PN}-gpg = " \
-	${bindir}/gpg \
-	${bindir}/gpg2 \
-	${bindir}/gpg-agent \
-"
-
-# Normal package (gnupg) should depend on minimal package (gnupg-gpg)
-# to ensure all tools are included. This is done only in non-native
-# builds. Native builds don't have sub-packages, so appending RDEPENDS
-# in this case breaks recipe parsing.
-RDEPENDS:${PN} += "${@ "" if ("native" in d.getVar("PN")) else (d.getVar("PN") + "-gpg")}"
-
-RRECOMMENDS:${PN} = "pinentry"
-
-do_configure:prepend () {
-	# Else these could be used in prefernce to those in aclocal-copy
-	rm -f ${S}/m4/gpg-error.m4
-	rm -f ${S}/m4/libassuan.m4
-	rm -f ${S}/m4/ksba.m4
-	rm -f ${S}/m4/libgcrypt.m4
-}
-
-do_install:append() {
-	ln -sf gpg2 ${D}${bindir}/gpg
-	ln -sf gpgv2 ${D}${bindir}/gpgv
-}
-
-do_install:append:class-native() {
-	create_wrappers ${STAGING_BINDIR_NATIVE}
-}
-
-do_install:append:class-nativesdk() {
-	create_wrappers ${SDKPATHNATIVE}${bindir_nativesdk}
-}
-
-create_wrappers() {
-	for i in gpg2 gpgconf gpg-agent gpg-connect-agent; do
-		create_wrapper ${D}${bindir}/$i GNUPG_BINDIR=$1
-	done
-}
-
-PACKAGECONFIG ??= "gnutls"
-PACKAGECONFIG[gnutls] = "--enable-gnutls, --disable-gnutls, gnutls"
-PACKAGECONFIG[sqlite3] = "--enable-sqlite, --disable-sqlite, sqlite3"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/gnupg/gnupg_2.3.4.bb b/poky/meta/recipes-support/gnupg/gnupg_2.3.4.bb
new file mode 100644
index 0000000..7faaffb
--- /dev/null
+++ b/poky/meta/recipes-support/gnupg/gnupg_2.3.4.bb
@@ -0,0 +1,85 @@
+SUMMARY = "GNU Privacy Guard - encryption and signing tools (2.x)"
+DESCRIPTION = "A complete and free implementation of the OpenPGP standard \
+as defined by RFC4880 (also known as PGP). GnuPG allows you to encrypt \
+and sign your data and communications; it features a versatile key \
+management system, along with access modules for all kinds of public \
+key directories."
+HOMEPAGE = "http://www.gnupg.org/"
+LICENSE = "GPLv3 & LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=189af8afca6d6075ba6c9e0aa8077626 \
+                    file://COPYING.LGPL3;md5=a2b6bf2cb38ee52619e60f30a1fc7257"
+
+DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt"
+
+inherit autotools gettext texinfo pkgconfig
+
+UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
+SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
+           file://0002-use-pkgconfig-instead-of-npth-config.patch \
+           file://0003-dirmngr-uses-libgpg-error.patch \
+           file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \
+           file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \
+           "
+SRC_URI:append:class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \
+                                file://relocate.patch"
+SRC_URI:append:class-nativesdk = " file://relocate.patch"
+
+SRC_URI[sha256sum] = "f3468ecafb1d7f9ad7b51fd1db7aebf17ceb89d2efa8a05cf2f39b4d405402ae"
+
+EXTRA_OECONF = "--disable-ldap \
+		--disable-ccid-driver \
+		--with-zlib=${STAGING_LIBDIR}/.. \
+		--with-bzip2=${STAGING_LIBDIR}/.. \
+		--with-readline=${STAGING_LIBDIR}/.. \
+		--with-mailprog=${sbindir}/sendmail \
+		--enable-gpg-is-gpg2 \
+               "
+
+# A minimal package containing just enough to run gpg+gpgagent (E.g. use gpgme in opkg)
+PACKAGES =+ "${PN}-gpg"
+FILES:${PN}-gpg = " \
+	${bindir}/gpg \
+	${bindir}/gpg2 \
+	${bindir}/gpg-agent \
+"
+
+# Normal package (gnupg) should depend on minimal package (gnupg-gpg)
+# to ensure all tools are included. This is done only in non-native
+# builds. Native builds don't have sub-packages, so appending RDEPENDS
+# in this case breaks recipe parsing.
+RDEPENDS:${PN} += "${@ "" if ("native" in d.getVar("PN")) else (d.getVar("PN") + "-gpg")}"
+
+RRECOMMENDS:${PN} = "pinentry"
+
+do_configure:prepend () {
+	# Else these could be used in prefernce to those in aclocal-copy
+	rm -f ${S}/m4/gpg-error.m4
+	rm -f ${S}/m4/libassuan.m4
+	rm -f ${S}/m4/ksba.m4
+	rm -f ${S}/m4/libgcrypt.m4
+}
+
+do_install:append() {
+	ln -sf gpg2 ${D}${bindir}/gpg
+	ln -sf gpgv2 ${D}${bindir}/gpgv
+}
+
+do_install:append:class-native() {
+	create_wrappers ${STAGING_BINDIR_NATIVE}
+}
+
+do_install:append:class-nativesdk() {
+	create_wrappers ${SDKPATHNATIVE}${bindir_nativesdk}
+}
+
+create_wrappers() {
+	for i in gpg2 gpgconf gpg-agent gpg-connect-agent; do
+		create_wrapper ${D}${bindir}/$i GNUPG_BINDIR=$1
+	done
+}
+
+PACKAGECONFIG ??= "gnutls"
+PACKAGECONFIG[gnutls] = "--enable-gnutls, --disable-gnutls, gnutls"
+PACKAGECONFIG[sqlite3] = "--enable-sqlite, --disable-sqlite, sqlite3"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/gnutls/libtasn1/dont-depend-on-help2man.patch b/poky/meta/recipes-support/gnutls/libtasn1/dont-depend-on-help2man.patch
index 2ac89f3..216d636 100644
--- a/poky/meta/recipes-support/gnutls/libtasn1/dont-depend-on-help2man.patch
+++ b/poky/meta/recipes-support/gnutls/libtasn1/dont-depend-on-help2man.patch
@@ -1,14 +1,26 @@
+From 629fc6427710e48b78f8b1f300dd698fe898cfd4 Mon Sep 17 00:00:00 2001
+From: Marko Lindqvist <cazfi74@gmail.com>
+Date: Mon, 7 Jan 2013 01:49:40 +0200
+Subject: [PATCH] libtasn1: remove help2man dependency
+
 Upstream-Status: Inappropriate
 
 Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd libtasn1-2.14/doc/Makefile.am libtasn1-2.14/doc/Makefile.am
---- libtasn1-2.14/doc/Makefile.am	2012-09-24 15:08:42.000000000 +0300
-+++ libtasn1-2.14/doc/Makefile.am	2013-01-03 07:35:26.702763403 +0200
-@@ -31,7 +31,7 @@
- AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) \
-	--no-split --number-sections --css-include=texinfo.css
 
+---
+ doc/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index a0171a5..8aa4d3d 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -28,7 +28,7 @@ libtasn1_TEXINFOS += asn1Coding-help.texi asn1Decoding-help.texi asn1Parser-help
+ 
+ AM_MAKEINFOHTMLFLAGS = --no-split $(AM_MAKEINFOFLAGS)
+ 
 -dist_man_MANS = $(gdoc_MANS) asn1Parser.1 asn1Coding.1 asn1Decoding.1
 +dist_man_MANS = $(gdoc_MANS)
-
+ 
  HELP2MAN_OPTS = --info-page libtasn1
+ 
diff --git a/poky/meta/recipes-support/gnutls/libtasn1_4.17.0.bb b/poky/meta/recipes-support/gnutls/libtasn1_4.17.0.bb
deleted file mode 100644
index 111f5ac..0000000
--- a/poky/meta/recipes-support/gnutls/libtasn1_4.17.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Library for ASN.1 and DER manipulation"
-DESCRIPTION = "A highly portable C library that encodes and decodes \
-DER/BER data following an ASN.1 schema. "
-HOMEPAGE = "http://www.gnu.org/software/libtasn1/"
-
-LICENSE = "GPLv3+ & LGPLv2.1+"
-LICENSE:${PN}-bin = "GPLv3+"
-LICENSE:${PN} = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://doc/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
-                    file://doc/COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \
-                    file://COPYING;md5=75ac100ec923f959898182307970c360"
-
-SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \
-           file://dont-depend-on-help2man.patch \
-           "
-
-DEPENDS = "bison-native"
-
-SRC_URI[md5sum] = "c46f6eb3bd1287031ae5d36465094402"
-SRC_URI[sha256sum] = "ece7551cea7922b8e10d7ebc70bc2248d1fdd73351646a2d6a8d68a9421c45a5"
-
-inherit autotools texinfo lib_package gtk-doc
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/gnutls/libtasn1_4.18.0.bb b/poky/meta/recipes-support/gnutls/libtasn1_4.18.0.bb
new file mode 100644
index 0000000..a0b91ee
--- /dev/null
+++ b/poky/meta/recipes-support/gnutls/libtasn1_4.18.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Library for ASN.1 and DER manipulation"
+DESCRIPTION = "A highly portable C library that encodes and decodes \
+DER/BER data following an ASN.1 schema. "
+HOMEPAGE = "http://www.gnu.org/software/libtasn1/"
+
+LICENSE = "GPLv3+ & LGPLv2.1+"
+LICENSE:${PN}-bin = "GPLv3+"
+LICENSE:${PN} = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://doc/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://doc/COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \
+                    file://COPYING;md5=75ac100ec923f959898182307970c360"
+
+SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \
+           file://dont-depend-on-help2man.patch \
+           "
+
+DEPENDS = "bison-native"
+
+SRC_URI[sha256sum] = "4365c154953563d64c67a024b607d1ee75c6db76e0d0f65709ea80a334cd1898"
+
+inherit autotools texinfo lib_package gtk-doc
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/gpgme/gpgme_1.16.0.bb b/poky/meta/recipes-support/gpgme/gpgme_1.16.0.bb
index 0ab30d9..d31e1b3 100644
--- a/poky/meta/recipes-support/gpgme/gpgme_1.16.0.bb
+++ b/poky/meta/recipes-support/gpgme/gpgme_1.16.0.bb
@@ -59,7 +59,7 @@
                  --disable-lang-python-test \
 '
 
-inherit autotools texinfo binconfig-disabled pkgconfig distutils-common-base ${PYTHON_INHERIT} multilib_header
+inherit autotools texinfo binconfig-disabled pkgconfig setuptools3-base ${PYTHON_INHERIT} multilib_header
 
 export PKG_CONFIG='pkg-config'
 
diff --git a/poky/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch b/poky/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch
index c5dc061..578517b 100644
--- a/poky/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch
+++ b/poky/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch
@@ -1,4 +1,4 @@
-From 500321387ceca48934bb0f323779117cd518bab6 Mon Sep 17 00:00:00 2001
+From e3c25af4b40d64f098e7b8ae5a91fdc3c90163c4 Mon Sep 17 00:00:00 2001
 From: Lei Maohui <leimaohui@cn.fujitsu.com>
 Date: Wed, 8 May 2019 14:42:30 +0900
 Subject: [PATCH] icu: Added armeb support.
@@ -8,12 +8,13 @@
 Upstream-Status: Pending
 
 Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+
 ---
  i18n/double-conversion-utils.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/i18n/double-conversion-utils.h b/i18n/double-conversion-utils.h
-index c937463..feaad0f 100644
+diff --git a/source/i18n/double-conversion-utils.h b/source/i18n/double-conversion-utils.h
+index 7f23e0a..7f89094 100644
 --- a/i18n/double-conversion-utils.h
 +++ b/i18n/double-conversion-utils.h
 @@ -115,7 +115,7 @@ int main(int argc, char** argv) {
@@ -24,7 +25,4 @@
 +    defined(__arm__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \
      defined(__hppa__) || defined(__ia64__) || \
      defined(__mips__) || \
-     defined(__nios2__) || defined(__ghs) || \
--- 
-2.25.1
-
+     defined(__loongarch__) || \
diff --git a/poky/meta/recipes-support/icu/icu_69.1.bb b/poky/meta/recipes-support/icu/icu_69.1.bb
deleted file mode 100644
index 4daf0fe..0000000
--- a/poky/meta/recipes-support/icu/icu_69.1.bb
+++ /dev/null
@@ -1,150 +0,0 @@
-SUMMARY = "International Component for Unicode libraries"
-DESCRIPTION = "The International Component for Unicode (ICU) is a mature, \
-portable set of C/C++ and Java libraries for Unicode support, software \
-internationalization (I18N) and globalization (G11N), giving applications the \
-same results on all platforms."
-HOMEPAGE = "http://site.icu-project.org/"
-
-LICENSE = "ICU"
-DEPENDS = "icu-native"
-DEPENDS:class-native = ""
-
-CVE_PRODUCT = "international_components_for_unicode"
-
-S = "${WORKDIR}/icu/source"
-SPDX_S = "${WORKDIR}/icu"
-STAGING_ICU_DIR_NATIVE = "${STAGING_DATADIR_NATIVE}/${BPN}/${PV}"
-
-BINCONFIG = "${bindir}/icu-config"
-
-ICU_MAJOR_VER = "${@d.getVar('PV').split('.')[0]}"
-
-inherit autotools pkgconfig binconfig multilib_script
-
-MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/icu-config"
-
-# ICU needs the native build directory as an argument to its --with-cross-build option when
-# cross-compiling. Taken the situation that different builds may share a common sstate-cache
-# into consideration, the native build directory needs to be staged.
-EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE}"
-EXTRA_OECONF:class-native = ""
-EXTRA_OECONF:class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE}"
-
-EXTRA_OECONF:append:class-target = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' --with-data-packaging=archive', '', d)}"
-TARGET_CXXFLAGS:append = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' -DICU_DATA_DIR=\\""${datadir}/${BPN}/${PV}\\""', '', d)}"
-
-ASNEEDED = ""
-
-do_compile:prepend:class-target () {
-	# Make sure certain build host references do not end up being compiled
-	# in the image. This only affects libicutu and icu-dbg
-	sed  \
-	    -e 's,DU_BUILD=,DU_BUILD_unused=,g' \
-	    -e '/^CPPFLAGS.*/ s,--sysroot=${STAGING_DIR_TARGET},,g' \
-	    -i ${B}/tools/toolutil/Makefile
-}
-
-PREPROCESS_RELOCATE_DIRS = "${datadir}/${BPN}/${PV}"
-do_install:append:class-native() {
-	mkdir -p ${D}/${STAGING_ICU_DIR_NATIVE}/config
-	cp -r ${B}/config/icucross.mk ${D}/${STAGING_ICU_DIR_NATIVE}/config
-	cp -r ${B}/config/icucross.inc ${D}/${STAGING_ICU_DIR_NATIVE}/config
-	cp -r ${B}/lib ${D}/${STAGING_ICU_DIR_NATIVE}
-	cp -r ${B}/bin ${D}/${STAGING_ICU_DIR_NATIVE}
-	cp -r ${B}/tools ${D}/${STAGING_ICU_DIR_NATIVE}
-}
-
-do_install:append:class-target() {
-    # The native pkgdata can not generate the correct data file.
-    # Use icupkg to re-generate it.
-    if [ "${SITEINFO_ENDIANNESS}" = "be" ] ; then
-        rm -f ${D}/${datadir}/${BPN}/${PV}/icudt${ICU_MAJOR_VER}b.dat
-        icupkg -tb ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat ${D}/${datadir}/${BPN}/${PV}/icudt${ICU_MAJOR_VER}b.dat
-    fi
-	
-	# Remove build host references...
-	sed -i  \
-	    -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
-	    -e 's|${DEBUG_PREFIX_MAP}||g' \
-	    -e 's:${HOSTTOOLS_DIR}/::g' \
-	    ${D}/${bindir}/icu-config ${D}/${libdir}/${BPN}/${PV}/Makefile.inc \
-	    ${D}/${libdir}/${BPN}/${PV}/pkgdata.inc
-}
-
-PACKAGES =+ "libicudata libicuuc libicui18n libicutu libicuio"
-
-FILES:${PN}-dev += "${libdir}/${BPN}/"
-
-FILES:libicudata = "${libdir}/libicudata.so.*"
-FILES:libicuuc = "${libdir}/libicuuc.so.*"
-FILES:libicui18n = "${libdir}/libicui18n.so.*"
-FILES:libicutu = "${libdir}/libicutu.so.*"
-FILES:libicuio = "${libdir}/libicuio.so.*"
-
-BBCLASSEXTEND = "native nativesdk"
-
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=002d2fdc32d17f0ec06e9a47f2c0c8d0"
-
-def icu_download_version(d):
-    pvsplit = d.getVar('PV').split('.')
-    return pvsplit[0] + "_" + pvsplit[1]
-
-def icu_download_folder(d):
-    pvsplit = d.getVar('PV').split('.')
-    return pvsplit[0] + "-" + pvsplit[1]
-
-ICU_PV = "${@icu_download_version(d)}"
-ICU_FOLDER = "${@icu_download_folder(d)}"
-
-# http://errors.yoctoproject.org/Errors/Details/20486/
-ARM_INSTRUCTION_SET:armv4 = "arm"
-ARM_INSTRUCTION_SET:armv5 = "arm"
-
-BASE_SRC_URI = "https://github.com/unicode-org/icu/releases/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-src.tgz"
-DATA_SRC_URI = "https://github.com/unicode-org/icu/releases/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-data.zip"
-SRC_URI = "${BASE_SRC_URI};name=code \
-           ${DATA_SRC_URI};name=data \
-           file://filter.json \
-           file://fix-install-manx.patch \
-           file://0001-icu-Added-armeb-support.patch \
-           "
-
-SRC_URI:append:class-target = "\
-           file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \
-          "
-SRC_URI[code.sha256sum] = "4cba7b7acd1d3c42c44bb0c14be6637098c7faf2b330ce876bc5f3b915d09745"
-SRC_URI[data.sha256sum] = "4fc2d8cfc3343673123586fca3967404abd4e346fba5515829204533b3bae4bf"
-
-UPSTREAM_CHECK_REGEX = "icu4c-(?P<pver>\d+(_\d+)+)-src"
-UPSTREAM_CHECK_URI = "https://github.com/unicode-org/icu/releases"
-
-EXTRA_OECONF:append:libc-musl = " ac_cv_func_strtod_l=no"
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[make-icudata] = ",,,"
-
-do_make_icudata:class-target () {
-    ${@bb.utils.contains('PACKAGECONFIG', 'make-icudata', '', 'exit 0', d)}
-    cd ${S}
-    rm -rf data
-    cp -a ${WORKDIR}/data .
-    AR='${BUILD_AR}' \
-    CC='${BUILD_CC}' \
-    CPP='${BUILD_CPP}' \
-    CXX='${BUILD_CXX}' \
-    RANLIB='${BUILD_RANLIB}' \
-    CFLAGS='${BUILD_CFLAGS}' \
-    CPPFLAGS='${BUILD_CPPFLAGS}' \
-    CXXFLAGS='${BUILD_CXXFLAGS}' \
-    LDFLAGS='${BUILD_LDFLAGS}' \
-    ICU_DATA_FILTER_FILE=${WORKDIR}/filter.json \
-    ./runConfigureICU Linux --with-data-packaging=archive
-    oe_runmake
-    install -Dm644 ${S}/data/out/icudt${ICU_MAJOR_VER}l.dat ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat
-}
-
-do_make_icudata() {
-    :
-}
-
-addtask make_icudata before do_configure after do_patch
diff --git a/poky/meta/recipes-support/icu/icu_70.1.bb b/poky/meta/recipes-support/icu/icu_70.1.bb
new file mode 100644
index 0000000..0988ae8
--- /dev/null
+++ b/poky/meta/recipes-support/icu/icu_70.1.bb
@@ -0,0 +1,150 @@
+SUMMARY = "International Component for Unicode libraries"
+DESCRIPTION = "The International Component for Unicode (ICU) is a mature, \
+portable set of C/C++ and Java libraries for Unicode support, software \
+internationalization (I18N) and globalization (G11N), giving applications the \
+same results on all platforms."
+HOMEPAGE = "http://site.icu-project.org/"
+
+LICENSE = "ICU"
+DEPENDS = "icu-native autoconf-archive"
+DEPENDS:class-native = "autoconf-archive-native"
+
+CVE_PRODUCT = "international_components_for_unicode"
+
+S = "${WORKDIR}/icu/source"
+SPDX_S = "${WORKDIR}/icu"
+STAGING_ICU_DIR_NATIVE = "${STAGING_DATADIR_NATIVE}/${BPN}/${PV}"
+
+BINCONFIG = "${bindir}/icu-config"
+
+ICU_MAJOR_VER = "${@d.getVar('PV').split('.')[0]}"
+
+inherit autotools pkgconfig binconfig multilib_script
+
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/icu-config"
+
+# ICU needs the native build directory as an argument to its --with-cross-build option when
+# cross-compiling. Taken the situation that different builds may share a common sstate-cache
+# into consideration, the native build directory needs to be staged.
+EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE}"
+EXTRA_OECONF:class-native = ""
+EXTRA_OECONF:class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE}"
+
+EXTRA_OECONF:append:class-target = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' --with-data-packaging=archive', '', d)}"
+TARGET_CXXFLAGS:append = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' -DICU_DATA_DIR=\\""${datadir}/${BPN}/${PV}\\""', '', d)}"
+
+ASNEEDED = ""
+
+do_compile:prepend:class-target () {
+	# Make sure certain build host references do not end up being compiled
+	# in the image. This only affects libicutu and icu-dbg
+	sed  \
+	    -e 's,DU_BUILD=,DU_BUILD_unused=,g' \
+	    -e '/^CPPFLAGS.*/ s,--sysroot=${STAGING_DIR_TARGET},,g' \
+	    -i ${B}/tools/toolutil/Makefile
+}
+
+PREPROCESS_RELOCATE_DIRS = "${datadir}/${BPN}/${PV}"
+do_install:append:class-native() {
+	mkdir -p ${D}/${STAGING_ICU_DIR_NATIVE}/config
+	cp -r ${B}/config/icucross.mk ${D}/${STAGING_ICU_DIR_NATIVE}/config
+	cp -r ${B}/config/icucross.inc ${D}/${STAGING_ICU_DIR_NATIVE}/config
+	cp -r ${B}/lib ${D}/${STAGING_ICU_DIR_NATIVE}
+	cp -r ${B}/bin ${D}/${STAGING_ICU_DIR_NATIVE}
+	cp -r ${B}/tools ${D}/${STAGING_ICU_DIR_NATIVE}
+}
+
+do_install:append:class-target() {
+    # The native pkgdata can not generate the correct data file.
+    # Use icupkg to re-generate it.
+    if [ "${SITEINFO_ENDIANNESS}" = "be" ] ; then
+        rm -f ${D}/${datadir}/${BPN}/${PV}/icudt${ICU_MAJOR_VER}b.dat
+        icupkg -tb ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat ${D}/${datadir}/${BPN}/${PV}/icudt${ICU_MAJOR_VER}b.dat
+    fi
+	
+	# Remove build host references...
+	sed -i  \
+	    -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
+	    -e 's|${DEBUG_PREFIX_MAP}||g' \
+	    -e 's:${HOSTTOOLS_DIR}/::g' \
+	    ${D}/${bindir}/icu-config ${D}/${libdir}/${BPN}/${PV}/Makefile.inc \
+	    ${D}/${libdir}/${BPN}/${PV}/pkgdata.inc
+}
+
+PACKAGES =+ "libicudata libicuuc libicui18n libicutu libicuio"
+
+FILES:${PN}-dev += "${libdir}/${BPN}/"
+
+FILES:libicudata = "${libdir}/libicudata.so.*"
+FILES:libicuuc = "${libdir}/libicuuc.so.*"
+FILES:libicui18n = "${libdir}/libicui18n.so.*"
+FILES:libicutu = "${libdir}/libicutu.so.*"
+FILES:libicuio = "${libdir}/libicuio.so.*"
+
+BBCLASSEXTEND = "native nativesdk"
+
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=dc9d616e558490c389609a0e8b81ae6d"
+
+def icu_download_version(d):
+    pvsplit = d.getVar('PV').split('.')
+    return pvsplit[0] + "_" + pvsplit[1]
+
+def icu_download_folder(d):
+    pvsplit = d.getVar('PV').split('.')
+    return pvsplit[0] + "-" + pvsplit[1]
+
+ICU_PV = "${@icu_download_version(d)}"
+ICU_FOLDER = "${@icu_download_folder(d)}"
+
+# http://errors.yoctoproject.org/Errors/Details/20486/
+ARM_INSTRUCTION_SET:armv4 = "arm"
+ARM_INSTRUCTION_SET:armv5 = "arm"
+
+BASE_SRC_URI = "https://github.com/unicode-org/icu/releases/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-src.tgz"
+DATA_SRC_URI = "https://github.com/unicode-org/icu/releases/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-data.zip"
+SRC_URI = "${BASE_SRC_URI};name=code \
+           ${DATA_SRC_URI};name=data \
+           file://filter.json \
+           file://fix-install-manx.patch \
+           file://0001-icu-Added-armeb-support.patch \
+           "
+
+SRC_URI:append:class-target = "\
+           file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \
+          "
+SRC_URI[code.sha256sum] = "8d205428c17bf13bb535300669ed28b338a157b1c01ae66d31d0d3e2d47c3fd5"
+SRC_URI[data.sha256sum] = "c72723ddba3300ffb231d6b09e2a728ea6e89de10ed5927f74bacbd77042336e"
+
+UPSTREAM_CHECK_REGEX = "icu4c-(?P<pver>\d+(_\d+)+)-src"
+UPSTREAM_CHECK_URI = "https://github.com/unicode-org/icu/releases"
+
+EXTRA_OECONF:append:libc-musl = " ac_cv_func_strtod_l=no"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[make-icudata] = ",,,"
+
+do_make_icudata:class-target () {
+    ${@bb.utils.contains('PACKAGECONFIG', 'make-icudata', '', 'exit 0', d)}
+    cd ${S}
+    rm -rf data
+    cp -a ${WORKDIR}/data .
+    AR='${BUILD_AR}' \
+    CC='${BUILD_CC}' \
+    CPP='${BUILD_CPP}' \
+    CXX='${BUILD_CXX}' \
+    RANLIB='${BUILD_RANLIB}' \
+    CFLAGS='${BUILD_CFLAGS}' \
+    CPPFLAGS='${BUILD_CPPFLAGS}' \
+    CXXFLAGS='${BUILD_CXXFLAGS}' \
+    LDFLAGS='${BUILD_LDFLAGS}' \
+    ICU_DATA_FILTER_FILE=${WORKDIR}/filter.json \
+    ./runConfigureICU Linux --with-data-packaging=archive
+    oe_runmake
+    install -Dm644 ${S}/data/out/icudt${ICU_MAJOR_VER}l.dat ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat
+}
+
+do_make_icudata() {
+    :
+}
+
+addtask make_icudata before do_configure after do_patch
diff --git a/poky/meta/recipes-support/iso-codes/iso-codes_4.7.0.bb b/poky/meta/recipes-support/iso-codes/iso-codes_4.7.0.bb
deleted file mode 100644
index 46988a7..0000000
--- a/poky/meta/recipes-support/iso-codes/iso-codes_4.7.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "ISO language, territory, currency, script codes and their translations"
-DESCRIPTION = "Provides lists of various ISO standards (e.g. country, \
-language, language scripts, and currency names) in one place, rather \
-than repeated in many programs throughout the system."
-HOMEPAGE = "https://salsa.debian.org/iso-codes-team/iso-codes"
-BUGTRACKER = "https://salsa.debian.org/iso-codes-team/iso-codes/issues"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=https;branch=main;"
-SRCREV = "59767ed869f3952575f7d0f639a290a4c4b315e5"
-
-# inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which
-# are inhibited by allarch
-DEPENDS = "gettext-native"
-
-S = "${WORKDIR}/git"
-
-inherit allarch autotools
-
-FILES:${PN} += "${datadir}/xml/"
diff --git a/poky/meta/recipes-support/iso-codes/iso-codes_4.9.0.bb b/poky/meta/recipes-support/iso-codes/iso-codes_4.9.0.bb
new file mode 100644
index 0000000..92932c3
--- /dev/null
+++ b/poky/meta/recipes-support/iso-codes/iso-codes_4.9.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "ISO language, territory, currency, script codes and their translations"
+DESCRIPTION = "Provides lists of various ISO standards (e.g. country, \
+language, language scripts, and currency names) in one place, rather \
+than repeated in many programs throughout the system."
+HOMEPAGE = "https://salsa.debian.org/iso-codes-team/iso-codes"
+BUGTRACKER = "https://salsa.debian.org/iso-codes-team/iso-codes/issues"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=https;branch=main;"
+SRCREV = "35ae2024024eb8e6603d3034dbbc406594f3874c"
+
+# inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which
+# are inhibited by allarch
+DEPENDS = "gettext-native"
+
+S = "${WORKDIR}/git"
+
+inherit allarch autotools
+
+FILES:${PN} += "${datadir}/xml/"
diff --git a/poky/meta/recipes-support/libcap/libcap_2.60.bb b/poky/meta/recipes-support/libcap/libcap_2.60.bb
deleted file mode 100644
index 030198c..0000000
--- a/poky/meta/recipes-support/libcap/libcap_2.60.bb
+++ /dev/null
@@ -1,76 +0,0 @@
-SUMMARY = "Library for getting/setting POSIX.1e capabilities"
-DESCRIPTION = "A library providing the API to access POSIX capabilities. \
-These allow giving various kinds of specific privileges to individual \
-users, without giving them full root permissions."
-HOMEPAGE = "http://sites.google.com/site/fullycapable/"
-# no specific GPL version required
-LICENSE = "BSD-3-Clause | GPLv2"
-LIC_FILES_CHKSUM = "file://License;md5=e2370ba375efe9e1a095c26d37e483b8"
-
-DEPENDS = "hostperl-runtime-native gperf-native"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz \
-           file://0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch \
-           file://0002-tests-do-not-run-target-executables.patch \
-           "
-SRC_URI:append:class-nativesdk = " \
-           file://0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch \
-           "
-SRC_URI[sha256sum] = "06a92076ce39a78bd28089e32085f1bde7f3bfa448fad37d895c2358f760b2eb"
-
-UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/"
-
-inherit lib_package
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
-PACKAGECONFIG:class-native ??= ""
-
-PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam"
-
-EXTRA_OEMAKE = " \
-  INDENT=  \
-  lib='${baselib}' \
-  RAISE_SETFCAP=no \
-  DYNAMIC=yes \
-  BUILD_GPERF=yes \
-"
-
-EXTRA_OEMAKE:append:class-target = " SYSTEM_HEADERS=${STAGING_INCDIR}"
-
-do_compile() {
-	unset CFLAGS BUILD_CFLAGS
-	oe_runmake \
-		${PACKAGECONFIG_CONFARGS} \
-		AR="${AR}" \
-		CC="${CC}" \
-		RANLIB="${RANLIB}" \
-                OBJCOPY="${OBJCOPY}" \
-		COPTS="${CFLAGS}" \
-		BUILD_COPTS="${BUILD_CFLAGS}"
-}
-
-do_install() {
-	oe_runmake install \
-		${PACKAGECONFIG_CONFARGS} \
-		DESTDIR="${D}" \
-		prefix="${prefix}" \
-		SBINDIR="${sbindir}"
-}
-
-do_install:append() {
-	# Move the library to base_libdir
-	install -d ${D}${base_libdir}
-	if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
-		mv ${D}${libdir}/libcap* ${D}${base_libdir}
-                if [ -d ${D}${libdir}/security ]; then
-			mv ${D}${libdir}/security ${D}${base_libdir}
-		fi
-	fi
-}
-
-FILES:${PN}-dev += "${base_libdir}/*.so"
-
-# pam files
-FILES:${PN} += "${base_libdir}/security/*.so"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libcap/libcap_2.62.bb b/poky/meta/recipes-support/libcap/libcap_2.62.bb
new file mode 100644
index 0000000..e08cac7
--- /dev/null
+++ b/poky/meta/recipes-support/libcap/libcap_2.62.bb
@@ -0,0 +1,76 @@
+SUMMARY = "Library for getting/setting POSIX.1e capabilities"
+DESCRIPTION = "A library providing the API to access POSIX capabilities. \
+These allow giving various kinds of specific privileges to individual \
+users, without giving them full root permissions."
+HOMEPAGE = "http://sites.google.com/site/fullycapable/"
+# no specific GPL version required
+LICENSE = "BSD-3-Clause | GPLv2"
+LIC_FILES_CHKSUM = "file://License;md5=e2370ba375efe9e1a095c26d37e483b8"
+
+DEPENDS = "hostperl-runtime-native gperf-native"
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz \
+           file://0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch \
+           file://0002-tests-do-not-run-target-executables.patch \
+           "
+SRC_URI:append:class-nativesdk = " \
+           file://0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch \
+           "
+SRC_URI[sha256sum] = "190c5baac9bee06a129eae20d3e827de62f664fe3507f0bf6c50a9a59fbd83a2"
+
+UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/"
+
+inherit lib_package
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
+PACKAGECONFIG:class-native ??= ""
+
+PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam"
+
+EXTRA_OEMAKE = " \
+  INDENT=  \
+  lib='${baselib}' \
+  RAISE_SETFCAP=no \
+  DYNAMIC=yes \
+  USE_GPERF=yes \
+"
+
+EXTRA_OEMAKE:append:class-target = " SYSTEM_HEADERS=${STAGING_INCDIR}"
+
+do_compile() {
+	unset CFLAGS BUILD_CFLAGS
+	oe_runmake \
+		${PACKAGECONFIG_CONFARGS} \
+		AR="${AR}" \
+		CC="${CC}" \
+		RANLIB="${RANLIB}" \
+                OBJCOPY="${OBJCOPY}" \
+		COPTS="${CFLAGS}" \
+		BUILD_COPTS="${BUILD_CFLAGS}"
+}
+
+do_install() {
+	oe_runmake install \
+		${PACKAGECONFIG_CONFARGS} \
+		DESTDIR="${D}" \
+		prefix="${prefix}" \
+		SBINDIR="${sbindir}"
+}
+
+do_install:append() {
+	# Move the library to base_libdir
+	install -d ${D}${base_libdir}
+	if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
+		mv ${D}${libdir}/libcap* ${D}${base_libdir}
+                if [ -d ${D}${libdir}/security ]; then
+			mv ${D}${libdir}/security ${D}${base_libdir}
+		fi
+	fi
+}
+
+FILES:${PN}-dev += "${base_libdir}/*.so"
+
+# pam files
+FILES:${PN} += "${base_libdir}/security/*.so"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libevdev/libevdev/determinism.patch b/poky/meta/recipes-support/libevdev/libevdev/determinism.patch
deleted file mode 100644
index 71cbd87..0000000
--- a/poky/meta/recipes-support/libevdev/libevdev/determinism.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 4f196323aba5b0f49979826533c65633b8a9b6a2 Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Fri, 7 Feb 2020 12:29:56 +0000
-Subject: [PATCH] libevdev: Fix determinism issue
-
-The order of dict values is not deterministic leading to differing header file generation.
-Sort to remove this inconsistency.
-
-RP 2020/2/7
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Submitted: https://lists.freedesktop.org/archives/input-tools/2021-February/001560.html
-Upstream-Status: Backport [https://gitlab.freedesktop.org/libevdev/libevdev/-/commit/8d70f449892c6f7659e07bb0f06b8347677bb7d8]
-
----
- libevdev/make-event-names.py | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/libevdev/make-event-names.py b/libevdev/make-event-names.py
-index 88addd7..c973e2a 100755
---- a/libevdev/make-event-names.py
-+++ b/libevdev/make-event-names.py
-@@ -70,10 +70,10 @@ def print_bits(bits, prefix):
-     if not hasattr(bits, prefix):
-         return
-     print("static const char * const %s_map[%s_MAX + 1] = {" % (prefix, prefix.upper()))
--    for val, name in list(getattr(bits, prefix).items()):
-+    for val, name in sorted(list(getattr(bits, prefix).items())):
-         print("    [%s] = \"%s\"," % (name, name))
-     if prefix == "key":
--        for val, name in list(getattr(bits, "btn").items()):
-+        for val, name in sorted(list(getattr(bits, "btn").items())):
-             print("    [%s] = \"%s\"," % (name, name))
-     print("};")
-     print("")
-@@ -118,7 +118,7 @@ def print_lookup(bits, prefix):
-     if not hasattr(bits, prefix):
-         return
- 
--    names = list(getattr(bits, prefix).items())
-+    names = sorted(list(getattr(bits, prefix).items()))
-     if prefix == "btn":
-         names = names + btn_additional
- 
diff --git a/poky/meta/recipes-support/libevdev/libevdev_1.11.0.bb b/poky/meta/recipes-support/libevdev/libevdev_1.11.0.bb
deleted file mode 100644
index 5aca76d..0000000
--- a/poky/meta/recipes-support/libevdev/libevdev_1.11.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Wrapper library for evdev devices"
-DESCRIPTION = "A library for handling evdev kernel devices. It abstracts \
-the evdev ioctls through type-safe interfaces and provides functions \
-to change the appearance of the device."
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libevdev/"
-SECTION = "libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=80c550b3197bcb8da7d7557ebcc3fc46 \
-                    "
-
-SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz \
-           file://determinism.patch"
-SRC_URI[sha256sum] = "63f4ea1489858a109080e0b40bd43e4e0903a1e12ea888d581db8c495747c2d0"
-
-inherit autotools pkgconfig
-
-UPSTREAM_CHECK_REGEX = "libevdev-(?P<pver>(\d+\.)+(?!90\d+)\d+)"
diff --git a/poky/meta/recipes-support/libevdev/libevdev_1.12.0.bb b/poky/meta/recipes-support/libevdev/libevdev_1.12.0.bb
new file mode 100644
index 0000000..38f2bad
--- /dev/null
+++ b/poky/meta/recipes-support/libevdev/libevdev_1.12.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Wrapper library for evdev devices"
+DESCRIPTION = "A library for handling evdev kernel devices. It abstracts \
+the evdev ioctls through type-safe interfaces and provides functions \
+to change the appearance of the device."
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libevdev/"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=80c550b3197bcb8da7d7557ebcc3fc46 \
+                    "
+
+SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz"
+SRC_URI[sha256sum] = "2f729e3480695791f9482e8388bd723402b89f0eaf118057bbdea3cecee9b237"
+
+inherit autotools pkgconfig
+
+UPSTREAM_CHECK_REGEX = "libevdev-(?P<pver>(\d+\.)+(?!90\d+)\d+)"
diff --git a/poky/meta/recipes-support/libexif/libexif_0.6.23.bb b/poky/meta/recipes-support/libexif/libexif_0.6.23.bb
deleted file mode 100644
index b33522d..0000000
--- a/poky/meta/recipes-support/libexif/libexif_0.6.23.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Library for reading extended image information (EXIF) from JPEG files"
-DESCRIPTION = "libexif is a library for parsing, editing, and saving EXIF data. It is \
-intended to replace lots of redundant implementations in command-line \
-utilities and programs with GUIs."
-HOMEPAGE = "https://libexif.github.io/"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad"
-
-def version_underscore(v):
-    return "_".join(v.split("."))
-
-SRC_URI = "https://github.com/libexif/libexif/releases/download/v${PV}/libexif-${PV}.tar.xz \
-           "
-
-SRC_URI[sha256sum] = "a740a99920eb81ae0aa802bb46e683ce6e0cde061c210f5d5bde5b8572380431"
-
-UPSTREAM_CHECK_URI = "https://github.com/libexif/libexif/releases/"
-
-inherit autotools gettext
-
-EXTRA_OECONF += "--disable-docs"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libexif/libexif_0.6.24.bb b/poky/meta/recipes-support/libexif/libexif_0.6.24.bb
new file mode 100644
index 0000000..95fa68c
--- /dev/null
+++ b/poky/meta/recipes-support/libexif/libexif_0.6.24.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Library for reading extended image information (EXIF) from JPEG files"
+DESCRIPTION = "libexif is a library for parsing, editing, and saving EXIF data. It is \
+intended to replace lots of redundant implementations in command-line \
+utilities and programs with GUIs."
+HOMEPAGE = "https://libexif.github.io/"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad"
+
+def version_underscore(v):
+    return "_".join(v.split("."))
+
+SRC_URI = "https://github.com/libexif/libexif/releases/download/v${PV}/libexif-${PV}.tar.bz2 \
+           "
+
+SRC_URI[sha256sum] = "d47564c433b733d83b6704c70477e0a4067811d184ec565258ac563d8223f6ae"
+
+UPSTREAM_CHECK_URI = "https://github.com/libexif/libexif/releases/"
+
+inherit autotools gettext
+
+EXTRA_OECONF += "--disable-docs"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libfm/libfm/0001-Correctly-check-the-stamp-file-that-indicates-if-we-.patch b/poky/meta/recipes-support/libfm/libfm/0001-Correctly-check-the-stamp-file-that-indicates-if-we-.patch
index fb91d90..701b259 100644
--- a/poky/meta/recipes-support/libfm/libfm/0001-Correctly-check-the-stamp-file-that-indicates-if-we-.patch
+++ b/poky/meta/recipes-support/libfm/libfm/0001-Correctly-check-the-stamp-file-that-indicates-if-we-.patch
@@ -4,7 +4,7 @@
 Subject: [PATCH] Correctly check the stamp file that indicates if we need to
  re-build vala code
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/lxde/libfm/pull/85]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  configure.ac | 2 +-
diff --git a/poky/meta/recipes-support/libfm/libfm/0001-Do-not-add-library-path-to-avoid-host-contamination.patch b/poky/meta/recipes-support/libfm/libfm/0001-Do-not-add-library-path-to-avoid-host-contamination.patch
index f4c8912..0437000 100644
--- a/poky/meta/recipes-support/libfm/libfm/0001-Do-not-add-library-path-to-avoid-host-contamination.patch
+++ b/poky/meta/recipes-support/libfm/libfm/0001-Do-not-add-library-path-to-avoid-host-contamination.patch
@@ -3,7 +3,7 @@
 Date: Wed, 2 May 2018 16:48:47 +0300
 Subject: [PATCH] Do not add library path to avoid host contamination
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/lxde/libfm/pull/86]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  src/modules/Makefile.am | 1 -
diff --git a/poky/meta/recipes-support/libgcrypt/files/0001-Makefile.am-add-a-missing-space.patch b/poky/meta/recipes-support/libgcrypt/files/0001-Makefile.am-add-a-missing-space.patch
index 8fbed9a..62b7484 100644
--- a/poky/meta/recipes-support/libgcrypt/files/0001-Makefile.am-add-a-missing-space.patch
+++ b/poky/meta/recipes-support/libgcrypt/files/0001-Makefile.am-add-a-missing-space.patch
@@ -3,7 +3,7 @@
 Date: Wed, 24 Feb 2021 19:43:07 +0000
 Subject: [PATCH] Makefile.am: add a missing space
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [by email to gniibe@fsij.org,gcrypt-devel@gnupg.org]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  cipher/Makefile.am | 2 +-
diff --git a/poky/meta/recipes-support/libgit2/libgit2_1.3.0.bb b/poky/meta/recipes-support/libgit2/libgit2_1.3.0.bb
index bf625c3..de913c7 100644
--- a/poky/meta/recipes-support/libgit2/libgit2_1.3.0.bb
+++ b/poky/meta/recipes-support/libgit2/libgit2_1.3.0.bb
@@ -5,7 +5,7 @@
 
 DEPENDS = "curl openssl zlib libssh2 libgcrypt libpcre2"
 
-SRC_URI = "git://github.com/libgit2/libgit2.git;branch=main"
+SRC_URI = "git://github.com/libgit2/libgit2.git;branch=main;protocol=https"
 SRCREV = "b7bad55e4bb0a285b073ba5e02b01d3f522fc95d"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error/0001-configure.ac-do-not-hardcode-gnu-libc-when-generatin.patch b/poky/meta/recipes-support/libgpg-error/libgpg-error/0001-configure.ac-do-not-hardcode-gnu-libc-when-generatin.patch
index 0f6e309..ef7a7df 100644
--- a/poky/meta/recipes-support/libgpg-error/libgpg-error/0001-configure.ac-do-not-hardcode-gnu-libc-when-generatin.patch
+++ b/poky/meta/recipes-support/libgpg-error/libgpg-error/0001-configure.ac-do-not-hardcode-gnu-libc-when-generatin.patch
@@ -6,7 +6,7 @@
 
 This erroneously excluded e.g. musl libc.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [by email to gniibe@fsij.org,gnupg-devel@gnupg.org]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
  configure.ac | 2 +-
diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error/fix-cross.patch b/poky/meta/recipes-support/libgpg-error/libgpg-error/fix-cross.patch
deleted file mode 100644
index ae424cd..0000000
--- a/poky/meta/recipes-support/libgpg-error/libgpg-error/fix-cross.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From: David Michael <fedora.dm0@gmail.com>
-Date: Fri, 26 Mar 2021 07:06:50 +0000 (+0900)
-Subject: build: Fix generation of lock-obj-pub.native.h for cross build.
-X-Git-Url: http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=commitdiff_plain;h=33593864cd54143db594c4237bba41e14179061c
-
-build: Fix generation of lock-obj-pub.native.h for cross build.
-
-* src/gen-lock-obj.sh: Capture echo output with quotes.
-
-Fixes-commit: 99ae862a96a569724f49a604ebb7d3f6d2c2d374
-Signed-off-by: David Michael <fedora.dm0@gmail.com>
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
-
-diff --git a/src/gen-lock-obj.sh b/src/gen-lock-obj.sh
-index a710f0c..258eec6 100755
---- a/src/gen-lock-obj.sh
-+++ b/src/gen-lock-obj.sh
-@@ -38,7 +38,7 @@
- #     AWK=gawk ./gen-lock-obj.sh
- #
- 
--if test -n `echo -n`; then
-+if test -n "`echo -n`"; then
-     ECHO_C='\c'
-     ECHO_N=''
- else
diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch b/poky/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch
index aea8eba..6b9b623 100644
--- a/poky/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch
+++ b/poky/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch
@@ -1,9 +1,9 @@
-From 62651c5c7b4a391f16dbe1b09c6e220efe5c8a35 Mon Sep 17 00:00:00 2001
+From 52aae746760ce5b88e61ce994f5055e4ce809821 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Thu, 29 Mar 2018 15:12:17 +0800
 Subject: [PATCH] support pkgconfig
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [gnupg upstream will not take this, it has been tried with other components]
 
 Rebase to 1.28
 
@@ -14,14 +14,14 @@
 Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
 
 ---
- src/gpg-error.m4 | 159 +----------------------------------------------
- 1 file changed, 3 insertions(+), 156 deletions(-)
+ src/gpg-error.m4 | 160 +----------------------------------------------
+ 1 file changed, 3 insertions(+), 157 deletions(-)
 
 diff --git a/src/gpg-error.m4 b/src/gpg-error.m4
-index d910754..76f045c 100644
+index 56a5d07..28920ae 100644
 --- a/src/gpg-error.m4
 +++ b/src/gpg-error.m4
-@@ -27,156 +27,12 @@ dnl is added to the gpg_config_script_warn variable.
+@@ -27,157 +27,12 @@ dnl is added to the gpg_config_script_warn variable.
  dnl
  AC_DEFUN([AM_PATH_GPG_ERROR],
  [ AC_REQUIRE([AC_CANONICAL_HOST])
@@ -63,7 +63,7 @@
 -  min_gpg_error_version=ifelse([$1], ,1.33,$1)
 -  ok=no
 -
--  AC_PATH_PROG(GPGRT_CONFIG, gpgrt-config, no)
+-  AC_PATH_PROG(GPGRT_CONFIG, gpgrt-config, no, [$prefix/bin:$PATH])
 -  if test "$GPGRT_CONFIG" != "no"; then
 -    # Determine gpgrt_libdir
 -    #
@@ -78,7 +78,8 @@
 -    #   Fedora/openSUSE style: /usr/lib, /usr/lib32 or /usr/lib64
 -    # It is assumed that CC is specified to the one of host on cross build.
 -    if libdir_candidates=$(${CC:-cc} -print-search-dirs | \
--          sed -n -e "/^libraries/{s/libraries: =//;s/:/\n/gp}"); then
+-          sed -n -e "/^libraries/{s/libraries: =//;s/:/\\
+-/g;p;}"); then
 -      # From the output of -print-search-dirs, select valid pkgconfig dirs.
 -      libdir_candidates=$(for dir in $libdir_candidates; do
 -        if p=$(cd $dir 2>/dev/null && pwd); then
@@ -181,7 +182,7 @@
      fi
      if test x"$gpg_error_config_host" != xnone ; then
        if test x"$gpg_error_config_host" != x"$host" ; then
-@@ -192,15 +48,6 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
+@@ -193,15 +48,6 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
        fi
      fi
    else
diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error_1.42.bb b/poky/meta/recipes-support/libgpg-error/libgpg-error_1.42.bb
deleted file mode 100644
index 04f5760..0000000
--- a/poky/meta/recipes-support/libgpg-error/libgpg-error_1.42.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Small library that defines common error values for all GnuPG components"
-DESCRIPTION = "Contains common error codes and error handling functions used by GnuPG, Libgcrypt, GPGME and more packages. "
-HOMEPAGE = "http://www.gnupg.org/related_software/libgpg-error/"
-BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
-
-LICENSE = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
-                    file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
-                    file://src/gpg-error.h.in;beginline=2;endline=18;md5=d82591bc81561f617da71e00ff4a9d79 \
-                    file://src/init.c;beginline=2;endline=17;md5=f01cdfcf747af5380590cfd9bbfeaaf7 \
-                    "
-
-
-SECTION = "libs"
-
-UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
-SRC_URI = "${GNUPG_MIRROR}/libgpg-error/libgpg-error-${PV}.tar.bz2 \
-           file://pkgconfig.patch \
-           file://0001-Do-not-fail-when-testing-config-scripts.patch \
-           file://fix-cross.patch \
-           file://0001-configure.ac-do-not-hardcode-gnu-libc-when-generatin.patch \
-           "
-
-SRC_URI[sha256sum] = "fc07e70f6c615f8c4f590a8e37a9b8dd2e2ca1e9408f8e60459c67452b925e23"
-
-BINCONFIG = "${bindir}/gpg-error-config"
-
-inherit autotools binconfig-disabled pkgconfig gettext multilib_header multilib_script
-
-MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/gpgrt-config"
-
-CPPFLAGS += "-P"
-
-do_install:append() {
-	# we don't have common lisp in OE
-	rm -rf "${D}${datadir}/common-lisp/"
-	oe_multilib_header gpg-error.h gpgrt.h
-}
-
-FILES:${PN}-dev += "${bindir}/gpg-error"
-FILES:${PN}-doc += "${datadir}/libgpg-error/errorref.txt"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error_1.43.bb b/poky/meta/recipes-support/libgpg-error/libgpg-error_1.43.bb
new file mode 100644
index 0000000..fe3824b
--- /dev/null
+++ b/poky/meta/recipes-support/libgpg-error/libgpg-error_1.43.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Small library that defines common error values for all GnuPG components"
+DESCRIPTION = "Contains common error codes and error handling functions used by GnuPG, Libgcrypt, GPGME and more packages. "
+HOMEPAGE = "http://www.gnupg.org/related_software/libgpg-error/"
+BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
+
+LICENSE = "GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+                    file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+                    file://src/gpg-error.h.in;beginline=2;endline=18;md5=d82591bc81561f617da71e00ff4a9d79 \
+                    file://src/init.c;beginline=2;endline=17;md5=f01cdfcf747af5380590cfd9bbfeaaf7 \
+                    "
+
+
+SECTION = "libs"
+
+UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
+SRC_URI = "${GNUPG_MIRROR}/libgpg-error/libgpg-error-${PV}.tar.bz2 \
+           file://pkgconfig.patch \
+           file://0001-Do-not-fail-when-testing-config-scripts.patch \
+           file://0001-configure.ac-do-not-hardcode-gnu-libc-when-generatin.patch \
+           "
+
+SRC_URI[sha256sum] = "a9ab83ca7acc442a5bd846a75b920285ff79bdb4e3d34aa382be88ed2c3aebaf"
+
+BINCONFIG = "${bindir}/gpg-error-config"
+
+inherit autotools binconfig-disabled pkgconfig gettext multilib_header multilib_script
+
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/gpgrt-config"
+
+CPPFLAGS += "-P"
+
+do_install:append() {
+	# we don't have common lisp in OE
+	rm -rf "${D}${datadir}/common-lisp/"
+	oe_multilib_header gpg-error.h gpgrt.h
+}
+
+FILES:${PN}-dev += "${bindir}/gpg-error"
+FILES:${PN}-doc += "${datadir}/libgpg-error/errorref.txt"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libical/libical_3.0.11.bb b/poky/meta/recipes-support/libical/libical_3.0.11.bb
deleted file mode 100644
index b16081e..0000000
--- a/poky/meta/recipes-support/libical/libical_3.0.11.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "iCal and scheduling (RFC 2445, 2446, 2447) library"
-DESCRIPTION = "An Open Source implementation of the iCalendar protocols \
-and protocol data units. The iCalendar specification describes how \
-calendar clients can communicate with calendar servers so users can store \
-their calendar data and arrange meetings with other users. "
-HOMEPAGE = "https://github.com/libical/libical"
-BUGTRACKER = "https://github.com/libical/libical/issues"
-LICENSE = "LGPLv2.1 | MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1910a2a76ddf6a9ba369182494170d87 \
-                    file://LICENSE.LGPL21.txt;md5=933adb561f159e7c3da079536f0ed871 \
-                    file://LICENSE.MPL2.txt;md5=f75d2927d3c1ed2414ef72048f5ad640 \
-                    "
-SECTION = "libs"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \
-"
-SRC_URI[sha256sum] = "1e6c5e10c5a48f7a40c68958055f0e2759d9ab3563aca17273fe35a5df7dbbf1"
-UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
-
-inherit cmake pkgconfig
-
-DEPENDS:append:class-target = " libical-native"
-
-PACKAGECONFIG ??= "icu glib"
-PACKAGECONFIG[bdb] = ",-DCMAKE_DISABLE_FIND_PACKAGE_BDB=True,db"
-PACKAGECONFIG[glib] = "-DICAL_GLIB=True,-DICAL_GLIB=False,glib-2.0-native libxml2-native glib-2.0 libxml2"
-# ICU is used for RSCALE (RFC7529) support
-PACKAGECONFIG[icu] = ",-DCMAKE_DISABLE_FIND_PACKAGE_ICU=True,icu"
-
-# No need to use perl-native, the host perl is sufficient.
-EXTRA_OECMAKE += "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
-# doc build fails with linker error (??) for libical-glib so disable it
-EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
-
-EXTRA_OECMAKE:append:class-target = " -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake"
-
-do_install:append () {
-    # Remove build host references
-    sed -i \
-       -e 's,${STAGING_LIBDIR},${libdir},g' \
-       -e 's,${STAGING_INCDIR},${includedir},g' \
-       ${D}${libdir}/cmake/LibIcal/LibIcal*.cmake \
-       ${D}${libdir}/cmake/LibIcal/Ical*.cmake
-}
-
-BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-support/libical/libical_3.0.12.bb b/poky/meta/recipes-support/libical/libical_3.0.12.bb
new file mode 100644
index 0000000..b2b2211
--- /dev/null
+++ b/poky/meta/recipes-support/libical/libical_3.0.12.bb
@@ -0,0 +1,48 @@
+SUMMARY = "iCal and scheduling (RFC 2445, 2446, 2447) library"
+DESCRIPTION = "An Open Source implementation of the iCalendar protocols \
+and protocol data units. The iCalendar specification describes how \
+calendar clients can communicate with calendar servers so users can store \
+their calendar data and arrange meetings with other users. "
+HOMEPAGE = "https://github.com/libical/libical"
+BUGTRACKER = "https://github.com/libical/libical/issues"
+LICENSE = "LGPLv2.1 | MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1910a2a76ddf6a9ba369182494170d87 \
+                    file://LICENSE.LGPL21.txt;md5=933adb561f159e7c3da079536f0ed871 \
+                    file://LICENSE.MPL2.txt;md5=f75d2927d3c1ed2414ef72048f5ad640 \
+                    "
+SECTION = "libs"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "35095a4cc1a061a3de0f332c2dc728226cf127fa0baa818e9f8856cee6d35830"
+UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
+
+inherit cmake pkgconfig
+
+DEPENDS += "libical-native"
+
+PACKAGECONFIG ??= "icu glib"
+PACKAGECONFIG[bdb] = ",-DCMAKE_DISABLE_FIND_PACKAGE_BDB=True,db"
+PACKAGECONFIG[glib] = "-DICAL_GLIB=True,-DICAL_GLIB=False,glib-2.0-native libxml2-native glib-2.0 libxml2"
+# ICU is used for RSCALE (RFC7529) support
+PACKAGECONFIG[icu] = ",-DCMAKE_DISABLE_FIND_PACKAGE_ICU=True,icu"
+
+# No need to use perl-native, the host perl is sufficient.
+EXTRA_OECMAKE += "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
+# Disable the test suite as we can't install it
+EXTRA_OECMAKE += "-DLIBICAL_BUILD_TESTING=false"
+# doc build fails with linker error (??) for libical-glib so disable it
+EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
+
+# Tell the cross-libical where the tool it needs to build is
+EXTRA_OECMAKE:append:class-target = " -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake"
+
+do_install:append () {
+    # Remove build host references (https://github.com/libical/libical/issues/532)
+    sed -i \
+       -e 's,${STAGING_LIBDIR},${libdir},g' \
+       -e 's,${STAGING_INCDIR},${includedir},g' \
+       ${D}${libdir}/cmake/LibIcal/LibIcal*.cmake \
+       ${D}${libdir}/cmake/LibIcal/Ical*.cmake
+}
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.3.0.bb b/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.3.0.bb
deleted file mode 100644
index dae2fb1..0000000
--- a/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.3.0.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Hardware RNG based on CPU timing jitter"
-DESCRIPTION = "The Jitter RNG provides a noise source using the CPU execution timing jitter. \
-It does not depend on any system resource other than a high-resolution time \
-stamp. It is a small-scale, yet fast entropy source that is viable in almost \
-all environments and on a lot of CPU architectures."
-HOMEPAGE = "http://www.chronox.de/jent.html"
-LICENSE = "GPLv2+ | BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1c94a9d191202a5552f381a023551396 \
-                    file://LICENSE.gplv2;md5=eb723b61539feef013de476e68b5c50a \
-                    file://LICENSE.bsd;md5=66a5cedaf62c4b2637025f049f9b826f \
-                    "
-SRC_URI = "git://github.com/smuellerDD/jitterentropy-library.git"
-SRCREV = "418c1e64231255aec2167cbb20aab62a0863415d"
-S = "${WORKDIR}/git"
-
-# remove at next version upgrade or when output changes
-HASHEQUIV_HASH_VERSION .= ".2"
-
-do_configure[noexec] = "1"
-
-LDFLAGS += "-Wl,-O0"
-
-do_install () {
-    oe_runmake install INCDIR="/include" \
-                       DESTDIR="${D}" \
-                       PREFIX="${exec_prefix}" \
-                       LIBDIR="${baselib}" \
-                       INSTALL_STRIP="install"
-}
-
diff --git a/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.3.1.bb b/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.3.1.bb
new file mode 100644
index 0000000..5331cf2
--- /dev/null
+++ b/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.3.1.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Hardware RNG based on CPU timing jitter"
+DESCRIPTION = "The Jitter RNG provides a noise source using the CPU execution timing jitter. \
+It does not depend on any system resource other than a high-resolution time \
+stamp. It is a small-scale, yet fast entropy source that is viable in almost \
+all environments and on a lot of CPU architectures."
+HOMEPAGE = "http://www.chronox.de/jent.html"
+LICENSE = "GPLv2+ | BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1c94a9d191202a5552f381a023551396 \
+                    file://LICENSE.gplv2;md5=eb723b61539feef013de476e68b5c50a \
+                    file://LICENSE.bsd;md5=66a5cedaf62c4b2637025f049f9b826f \
+                    "
+SRC_URI = "git://github.com/smuellerDD/jitterentropy-library.git;branch=master;protocol=https"
+SRCREV = "887c9871ea110e397812ff7f3b28a6269f0a2ffc"
+S = "${WORKDIR}/git"
+
+# remove at next version upgrade or when output changes
+HASHEQUIV_HASH_VERSION .= ".2"
+
+do_configure[noexec] = "1"
+
+LDFLAGS += "-Wl,-O0"
+
+do_install () {
+    oe_runmake install INCDIR="/include" \
+                       DESTDIR="${D}" \
+                       PREFIX="${exec_prefix}" \
+                       LIBDIR="${baselib}" \
+                       INSTALL_STRIP="install"
+}
+
diff --git a/poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.73.bb b/poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.73.bb
deleted file mode 100644
index 0b5901b..0000000
--- a/poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.73.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-DESCRIPTION = "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+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=57d09285feac8a64efa878e692b14f36"
-SECTION = "net"
-
-DEPENDS = "file"
-
-SRC_URI = "${GNU_MIRROR}/libmicrohttpd/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "2b15949b1633e4fa487e08cdcc97f0e3"
-SRC_URI[sha256sum] = "a37b2f1b88fd1bfe74109586be463a434d34e773530fc2a74364cfcf734c032e"
-
-inherit autotools lib_package pkgconfig gettext
-
-CFLAGS += "-pthread -D_REENTRANT"
-
-EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../"
-
-PACKAGECONFIG ?= "curl https"
-PACKAGECONFIG:append:class-target = "\
-        ${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)} \
-"
-PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
-PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,"
-PACKAGECONFIG[https] = "--enable-https,--disable-https,libgcrypt gnutls,"
-
-do_compile:append() {
-    sed -i s:-L${STAGING_LIBDIR}::g libmicrohttpd.pc
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.75.bb b/poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.75.bb
new file mode 100644
index 0000000..494ccd2
--- /dev/null
+++ b/poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.75.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "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+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=57d09285feac8a64efa878e692b14f36"
+SECTION = "net"
+
+DEPENDS = "file"
+
+SRC_URI = "${GNU_MIRROR}/libmicrohttpd/${BPN}-${PV}.tar.gz"
+SRC_URI[sha256sum] = "9278907a6f571b391aab9644fd646a5108ed97311ec66f6359cebbedb0a4e3bb"
+
+inherit autotools lib_package pkgconfig gettext
+
+CFLAGS += "-pthread -D_REENTRANT"
+
+EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../"
+
+PACKAGECONFIG ?= "curl https"
+PACKAGECONFIG:append:class-target = "\
+        ${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)} \
+"
+PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
+PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,"
+PACKAGECONFIG[https] = "--enable-https,--disable-https,libgcrypt gnutls,"
+
+do_compile:append() {
+    sed -i s:-L${STAGING_LIBDIR}::g libmicrohttpd.pc
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libnl/files/enable-serial-tests.patch b/poky/meta/recipes-support/libnl/files/enable-serial-tests.patch
index 8ea53f8..db774ad 100644
--- a/poky/meta/recipes-support/libnl/files/enable-serial-tests.patch
+++ b/poky/meta/recipes-support/libnl/files/enable-serial-tests.patch
@@ -5,6 +5,7 @@
 
 serial-tests is required to generate those targets.
 
+Upstream-Status: Inappropriate [oe-specific]
 Signed-off-by: Eric Xu <chi.xu@windriver.com>
 ---
  configure.ac | 2 +-
diff --git a/poky/meta/recipes-support/libpcre/libpcre2_10.37.bb b/poky/meta/recipes-support/libpcre/libpcre2_10.37.bb
deleted file mode 100644
index ccedf68..0000000
--- a/poky/meta/recipes-support/libpcre/libpcre2_10.37.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-DESCRIPTION = "There are two major versions of the PCRE library. The \
-newest version is PCRE2, which is a re-working of the original PCRE \
-library to provide an entirely new API. The original, very widely \
-deployed PCRE library's API and feature are stable, future releases \
- will be for bugfixes only. All new future features will be to PCRE2, \
-not the original PCRE 8.x series."
-SUMMARY = "Perl Compatible Regular Expressions version 2"
-HOMEPAGE = "http://www.pcre.org"
-SECTION = "devel"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=6b3022283c9a79238d521848ea9dcb4d"
-
-SRC_URI = "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-${PV}/pcre2-${PV}.tar.bz2"
-
-UPSTREAM_CHECK_URI = "https://github.com/PhilipHazel/pcre2/releases"
-
-SRC_URI[sha256sum] = "4d95a96e8b80529893b4562be12648d798b957b1ba1aae39606bbc2ab956d270"
-
-CVE_PRODUCT = "pcre2"
-
-S = "${WORKDIR}/pcre2-${PV}"
-
-PROVIDES += "pcre2"
-DEPENDS += "bzip2 zlib"
-
-BINCONFIG = "${bindir}/pcre2-config"
-
-inherit autotools binconfig-disabled
-
-EXTRA_OECONF = "\
-    --enable-newline-is-lf \
-    --with-link-size=2 \
-    --with-match-limit=10000000 \
-    --enable-pcre2-16 \
-    --enable-pcre2-32 \
-"
-CFLAGS += "-D_REENTRANT"
-CXXFLAGS:append:powerpc = " -lstdc++"
-
-PACKAGES =+ "libpcre2-16 libpcre2-32 pcre2grep pcre2grep-doc pcre2test pcre2test-doc"
-
-SUMMARY:pcre2grep = "grep utility that uses perl 5 compatible regexes"
-SUMMARY:pcre2grep-doc = "grep utility that uses perl 5 compatible regexes - docs"
-SUMMARY:pcre2test = "program for testing Perl-comatible regular expressions"
-SUMMARY:pcre2test-doc = "program for testing Perl-comatible regular expressions - docs"
-
-FILES:libpcre2-16 = "${libdir}/libpcre2-16.so.*"
-FILES:libpcre2-32 = "${libdir}/libpcre2-32.so.*"
-FILES:pcre2grep = "${bindir}/pcre2grep"
-FILES:pcre2grep-doc = "${mandir}/man1/pcre2grep.1"
-FILES:pcre2test = "${bindir}/pcre2test"
-FILES:pcre2test-doc = "${mandir}/man1/pcre2test.1"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libpcre/libpcre2_10.39.bb b/poky/meta/recipes-support/libpcre/libpcre2_10.39.bb
new file mode 100644
index 0000000..b5ec62f
--- /dev/null
+++ b/poky/meta/recipes-support/libpcre/libpcre2_10.39.bb
@@ -0,0 +1,54 @@
+DESCRIPTION = "There are two major versions of the PCRE library. The \
+newest version is PCRE2, which is a re-working of the original PCRE \
+library to provide an entirely new API. The original, very widely \
+deployed PCRE library's API and feature are stable, future releases \
+ will be for bugfixes only. All new future features will be to PCRE2, \
+not the original PCRE 8.x series."
+SUMMARY = "Perl Compatible Regular Expressions version 2"
+HOMEPAGE = "http://www.pcre.org"
+SECTION = "devel"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=43cfa999260dd853cd6cb174dc396f3d"
+
+SRC_URI = "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-${PV}/pcre2-${PV}.tar.bz2"
+
+UPSTREAM_CHECK_URI = "https://github.com/PhilipHazel/pcre2/releases"
+
+SRC_URI[sha256sum] = "0f03caf57f81d9ff362ac28cd389c055ec2bf0678d277349a1a4bee00ad6d440"
+
+CVE_PRODUCT = "pcre2"
+
+S = "${WORKDIR}/pcre2-${PV}"
+
+PROVIDES += "pcre2"
+DEPENDS += "bzip2 zlib"
+
+BINCONFIG = "${bindir}/pcre2-config"
+
+inherit autotools binconfig-disabled
+
+EXTRA_OECONF = "\
+    --enable-newline-is-lf \
+    --with-link-size=2 \
+    --with-match-limit=10000000 \
+    --enable-pcre2-16 \
+    --enable-pcre2-32 \
+"
+CFLAGS += "-D_REENTRANT"
+CXXFLAGS:append:powerpc = " -lstdc++"
+
+PACKAGES =+ "libpcre2-16 libpcre2-32 pcre2grep pcre2grep-doc pcre2test pcre2test-doc"
+
+SUMMARY:pcre2grep = "grep utility that uses perl 5 compatible regexes"
+SUMMARY:pcre2grep-doc = "grep utility that uses perl 5 compatible regexes - docs"
+SUMMARY:pcre2test = "program for testing Perl-comatible regular expressions"
+SUMMARY:pcre2test-doc = "program for testing Perl-comatible regular expressions - docs"
+
+FILES:libpcre2-16 = "${libdir}/libpcre2-16.so.*"
+FILES:libpcre2-32 = "${libdir}/libpcre2-32.so.*"
+FILES:pcre2grep = "${bindir}/pcre2grep"
+FILES:pcre2grep-doc = "${mandir}/man1/pcre2grep.1"
+FILES:pcre2test = "${bindir}/pcre2test"
+FILES:pcre2test-doc = "${mandir}/man1/pcre2test.1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libseccomp/files/0001-arch-Add-riscv32-architecture-support.patch b/poky/meta/recipes-support/libseccomp/files/0001-arch-Add-riscv32-architecture-support.patch
deleted file mode 100644
index 2fd22b1..0000000
--- a/poky/meta/recipes-support/libseccomp/files/0001-arch-Add-riscv32-architecture-support.patch
+++ /dev/null
@@ -1,728 +0,0 @@
-From e99b00a78acaf80236cba8b3fabaebdb3ef1987b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 8 Jun 2021 19:45:34 -0700
-Subject: [PATCH 1/4] arch: Add riscv32 architecture support
-
-Support for rv32 was upstreamed into 5.4+ kernel
-Upstream-Status: Submitted [https://github.com/seccomp/libseccomp/pull/327]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CREDITS                            |  1 +
- README.md                          |  1 +
- doc/man/man1/scmp_sys_resolver.1   |  2 +-
- doc/man/man3/seccomp_arch_add.3    |  1 +
- include/seccomp-syscalls.h         | 32 +++++++++++++++++++
- include/seccomp.h.in               |  9 ++++++
- src/Makefile.am                    |  1 +
- src/arch-riscv32.c                 | 31 ++++++++++++++++++
- src/arch-riscv32.h                 | 22 +++++++++++++
- src/arch-syscall-dump.c            |  4 +++
- src/arch-syscall-validate          | 51 +++++++++++++++++++++++++++++-
- src/arch.c                         | 11 ++++++-
- src/gen_pfc.c                      |  2 ++
- src/python/libseccomp.pxd          |  1 +
- src/python/seccomp.pyx             |  2 ++
- src/syscalls.c                     |  1 +
- src/syscalls.h                     |  2 ++
- src/system.c                       |  1 +
- tests/15-basic-resolver.c          |  1 +
- tests/16-sim-arch_basic.c          |  6 ++++
- tests/16-sim-arch_basic.py         |  1 +
- tests/23-sim-arch_all_le_basic.c   |  3 ++
- tests/23-sim-arch_all_le_basic.py  |  1 +
- tests/56-basic-iterate_syscalls.c  |  1 +
- tests/56-basic-iterate_syscalls.py |  1 +
- tests/regression                   |  5 +--
- tools/scmp_arch_detect.c           |  3 ++
- tools/scmp_bpf_disasm.c            |  2 ++
- tools/scmp_bpf_sim.c               |  2 ++
- tools/util.c                       |  6 +++-
- tools/util.h                       |  7 ++++
- 31 files changed, 208 insertions(+), 6 deletions(-)
- create mode 100644 src/arch-riscv32.c
- create mode 100644 src/arch-riscv32.h
-
-diff --git a/CREDITS b/CREDITS
-index b685712..c1ffdb3 100644
---- a/CREDITS
-+++ b/CREDITS
-@@ -33,6 +33,7 @@ John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
- Jonah Petri <jonah@petri.us>
- Justin Cormack <justin.cormack@docker.com>
- Kees Cook <keescook@chromium.org>
-+Khem Raj <raj.khem@gmail.com>
- Kyle R. Conway <kyle.r.conway@gmail.com>
- Kenta Tada <Kenta.Tada@sony.com>
- Kir Kolyshkin <kolyshkin@gmail.com>
-diff --git a/README.md b/README.md
-index 579f226..8199a71 100644
---- a/README.md
-+++ b/README.md
-@@ -54,6 +54,7 @@ The libseccomp library currently supports the architectures listed below:
- * 32-bit s390 (s390)
- * 64-bit s390x (s390x)
- * 64-bit RISC-V (riscv64)
-+* 32-bit RISC-V (riscv32)
- * 32-bit SuperH big endian (sheb)
- * 32-bit SuperH (sh)
- 
-diff --git a/doc/man/man1/scmp_sys_resolver.1 b/doc/man/man1/scmp_sys_resolver.1
-index 267187b..fc68d18 100644
---- a/doc/man/man1/scmp_sys_resolver.1
-+++ b/doc/man/man1/scmp_sys_resolver.1
-@@ -36,7 +36,7 @@ The architecture to use for resolving the system call.  Valid
- .I ARCH
- values are "x86", "x86_64", "x32", "arm", "aarch64", "mips", "mipsel", "mips64",
- "mipsel64", "mips64n32", "mipsel64n32", "parisc", "parisc64", "ppc", "ppc64",
--"ppc64le", "s390", "s390x", "sheb" and "sh".
-+"ppc64le", "riscv32", "s390", "s390x", "sheb" and "sh".
- .TP
- .B \-t
- If necessary, translate the system call name to the proper system call number,
-diff --git a/doc/man/man3/seccomp_arch_add.3 b/doc/man/man3/seccomp_arch_add.3
-index 7baa21e..8966b3a 100644
---- a/doc/man/man3/seccomp_arch_add.3
-+++ b/doc/man/man3/seccomp_arch_add.3
-@@ -30,6 +30,7 @@ seccomp_arch_add, seccomp_arch_remove, seccomp_arch_exist, seccomp_arch_native \
- .B #define SCMP_ARCH_S390X
- .B #define SCMP_ARCH_PARISC
- .B #define SCMP_ARCH_PARISC64
-+.B #define SCMP_ARCH_RISCV32
- .B #define SCMP_ARCH_RISCV64
- .sp
- .BI "uint32_t seccomp_arch_resolve_name(const char *" arch_name ");"
-diff --git a/include/seccomp-syscalls.h b/include/seccomp-syscalls.h
-index 476f953..4ff814c 100644
---- a/include/seccomp-syscalls.h
-+++ b/include/seccomp-syscalls.h
-@@ -276,6 +276,14 @@
- #define __PNR_renameat				-10242
- #define __PNR_riscv_flush_icache		-10243
- #define __PNR_memfd_secret			-10244
-+#define __PNR_fstat				-10245
-+#define __PNR_futex				-10246
-+#define __PNR_nanosleep				-10247
-+#define __PNR_lseek				-10248
-+#define __PNR_clock_gettime			-10249
-+#define __PNR_clock_nanosleep			-10250
-+#define __PNR_gettimeofday			-10251
-+#define __PNR_fcntl				-10252
- 
- /*
-  * libseccomp syscall definitions
-@@ -443,7 +451,11 @@
- #define __SNR_clock_getres_time64	__PNR_clock_getres_time64
- #endif
- 
-+#ifdef __NR_clock_gettime
- #define __SNR_clock_gettime		__NR_clock_gettime
-+#else
-+#define __SNR_clock_gettime		__PNR_clock_gettime
-+#endif
- 
- #ifdef __NR_clock_gettime64
- #define __SNR_clock_gettime64		__NR_clock_gettime64
-@@ -451,7 +463,11 @@
- #define __SNR_clock_gettime64		__PNR_clock_gettime64
- #endif
- 
-+#ifdef __NR_clock_nanosleep
- #define __SNR_clock_nanosleep		__NR_clock_nanosleep
-+#else
-+#define __SNR_clock_nanosleep		__PNR_clock_nanosleep
-+#endif
- 
- #ifdef __NR_clock_nanosleep_time64
- #define __SNR_clock_nanosleep_time64	__NR_clock_nanosleep_time64
-@@ -713,7 +729,11 @@
- #define __SNR_ftruncate64		__PNR_ftruncate64
- #endif
- 
-+#ifdef __NR_futex
- #define __SNR_futex			__NR_futex
-+#else
-+#define __SNR_futex			__PNR_futex
-+#endif
- 
- #ifdef __NR_futex_time64
- #define __SNR_futex_time64		__NR_futex_time64
-@@ -899,7 +919,11 @@
- 
- #define __SNR_gettid			__NR_gettid
- 
-+#ifdef __NR_gettimeofday
- #define __SNR_gettimeofday		__NR_gettimeofday
-+#else
-+#define __SNR_gettimeofday		__PNR_gettimeofday
-+#endif
- 
- #ifdef __NR_getuid
- #define __SNR_getuid			__NR_getuid
-@@ -1049,7 +1073,11 @@
- 
- #define __SNR_lremovexattr		__NR_lremovexattr
- 
-+#ifdef __NR_lseek
- #define __SNR_lseek			__NR_lseek
-+#else
-+#define __SNR_lseek			__PNR_lseek
-+#endif
- 
- #define __SNR_lsetxattr			__NR_lsetxattr
- 
-@@ -1227,7 +1255,11 @@
- 
- #define __SNR_name_to_handle_at			__NR_name_to_handle_at
- 
-+#ifdef __NR_nanosleep
- #define __SNR_nanosleep			__NR_nanosleep
-+#else
-+#define __SNR_nanosleep			__PNR_nanosleep
-+#endif
- 
- #ifdef __NR_newfstatat
- #define __SNR_newfstatat		__NR_newfstatat
-diff --git a/include/seccomp.h.in b/include/seccomp.h.in
-index 333a89c..2e911db 100644
---- a/include/seccomp.h.in
-+++ b/include/seccomp.h.in
-@@ -214,7 +214,16 @@ struct scmp_arg_cmp {
- #endif /* EM_RISCV */
- #define AUDIT_ARCH_RISCV64	(EM_RISCV|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
- #endif /* AUDIT_ARCH_RISCV64 */
-+
-+#ifndef AUDIT_ARCH_RISCV32
-+#ifndef EM_RISCV
-+#define EM_RISCV		243
-+#endif /* EM_RISCV */
-+#define AUDIT_ARCH_RISCV32	(EM_RISCV|__AUDIT_ARCH_LE)
-+#endif /* AUDIT_ARCH_RISCV32 */
-+
- #define SCMP_ARCH_RISCV64	AUDIT_ARCH_RISCV64
-+#define SCMP_ARCH_RISCV32	AUDIT_ARCH_RISCV32
- 
- /**
-  * The SuperH architecture tokens
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 04e7ba5..a30bbc0 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -40,6 +40,7 @@ SOURCES_ALL = \
- 	arch-ppc.h arch-ppc.c \
- 	arch-ppc64.h arch-ppc64.c \
- 	arch-riscv64.h arch-riscv64.c \
-+	arch-riscv32.h arch-riscv32.c \
- 	arch-s390.h arch-s390.c \
- 	arch-s390x.h arch-s390x.c \
- 	arch-sh.h arch-sh.c \
-diff --git a/src/arch-riscv32.c b/src/arch-riscv32.c
-new file mode 100644
-index 0000000..10418f4
---- /dev/null
-+++ b/src/arch-riscv32.c
-@@ -0,0 +1,31 @@
-+/*
-+ * This library is free software; you can redistribute it and/or modify it
-+ * under the terms of version 2.1 of the GNU Lesser General Public License as
-+ * published by the Free Software Foundation.
-+ *
-+ * This library is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * along with this library; if not, see <http://www.gnu.org/licenses>.
-+ */
-+
-+#include <stdlib.h>
-+#include <errno.h>
-+#include <linux/audit.h>
-+
-+#include "arch.h"
-+#include "arch-riscv32.h"
-+
-+const struct arch_def arch_def_riscv32 = {
-+	.token = SCMP_ARCH_RISCV32,
-+	.token_bpf = AUDIT_ARCH_RISCV32,
-+	.size = ARCH_SIZE_32,
-+	.endian = ARCH_ENDIAN_LITTLE,
-+	.syscall_resolve_name_raw = riscv32_syscall_resolve_name,
-+	.syscall_resolve_num_raw = riscv32_syscall_resolve_num,
-+	.syscall_rewrite = NULL,
-+	.rule_add = NULL,
-+};
-diff --git a/src/arch-riscv32.h b/src/arch-riscv32.h
-new file mode 100644
-index 0000000..082a77d
---- /dev/null
-+++ b/src/arch-riscv32.h
-@@ -0,0 +1,22 @@
-+/*
-+ * This library is free software; you can redistribute it and/or modify it
-+ * under the terms of version 2.1 of the GNU Lesser General Public License as
-+ * published by the Free Software Foundation.
-+ *
-+ * This library is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * along with this library; if not, see <http://www.gnu.org/licenses>.
-+ */
-+
-+#ifndef _ARCH_RISCV32_H
-+#define _ARCH_RISCV32_H
-+
-+#include "arch.h"
-+
-+ARCH_DECL(riscv32)
-+
-+#endif
-diff --git a/src/arch-syscall-dump.c b/src/arch-syscall-dump.c
-index 843483b..c6ab57d 100644
---- a/src/arch-syscall-dump.c
-+++ b/src/arch-syscall-dump.c
-@@ -43,6 +43,7 @@
- #include "arch-ppc.h"
- #include "arch-ppc64.h"
- #include "arch-riscv64.h"
-+#include "arch-riscv32.h"
- #include "arch-s390.h"
- #include "arch-s390x.h"
- #include "arch-sh.h"
-@@ -135,6 +136,9 @@ int main(int argc, char *argv[])
- 		case SCMP_ARCH_RISCV64:
- 			sys = riscv64_syscall_iterate(iter);
- 			break;
-+		case SCMP_ARCH_RISCV32:
-+			sys = riscv32_syscall_iterate(iter);
-+			break;
- 		case SCMP_ARCH_S390:
- 			sys = s390_syscall_iterate(iter);
- 			break;
-diff --git a/src/arch-syscall-validate b/src/arch-syscall-validate
-index 68bebef..85c7f3d 100755
---- a/src/arch-syscall-validate
-+++ b/src/arch-syscall-validate
-@@ -519,6 +519,49 @@ function dump_lib_riscv64() {
- 	dump_lib_arch riscv64 | mangle_lib_syscall riscv64
- }
- 
-+#
-+# Dump the riscv32 system syscall table
-+#
-+# Arguments:
-+#     1    path to the kernel source
-+#
-+#  Dump the architecture's syscall table to stdout.
-+#
-+function dump_sys_riscv32() {
-+	local sed_filter=""
-+
-+	sed_filter+='s/__NR3264_fadvise64/223/;'
-+	sed_filter+='s/__NR3264_fcntl/25/;'
-+	sed_filter+='s/__NR3264_fstatat/79/;'
-+	sed_filter+='s/__NR3264_fstatfs/44/;'
-+	sed_filter+='s/__NR3264_ftruncate/46/;'
-+	sed_filter+='s/__NR3264_lseek/62/;'
-+	sed_filter+='s/__NR3264_mmap/222/;'
-+	sed_filter+='s/__NR3264_sendfile/71/;'
-+	sed_filter+='s/__NR3264_statfs/43/;'
-+	sed_filter+='s/__NR3264_truncate/45/;'
-+	sed_filter+='s/__NR3264_fstat/80/;'
-+
-+	gcc -E -dM -I$1/include/uapi \
-+		-D__BITS_PER_LONG=32 \
-+		$1/arch/riscv/include/uapi/asm/unistd.h | \
-+		grep "^#define __NR_" | \
-+		sed '/__NR_syscalls/d' | \
-+		sed 's/(__NR_arch_specific_syscall + 15)/259/' | \
-+		sed '/__NR_arch_specific_syscall/d' | \
-+		sed 's/#define[ \t]\+__NR_\([^ \t]\+\)[ \t]\+\(.*\)/\1,\2/' | \
-+		sed $sed_filter | sort
-+}
-+
-+#
-+# Dump the riscv32 library syscall table
-+#
-+#  Dump the library's syscall table to stdout.
-+#
-+function dump_lib_riscv32() {
-+	dump_lib_arch riscv32 | mangle_lib_syscall riscv32
-+}
-+
- #
- # Dump the s390 system syscall table
- #
-@@ -639,6 +682,9 @@ function dump_sys() {
- 	ppc64)
- 		dump_sys_ppc64 "$2"
- 		;;
-+	riscv32)
-+		dump_sys_riscv32 "$2"
-+		;;
- 	riscv64)
- 		dump_sys_riscv64 "$2"
- 		;;
-@@ -706,6 +752,9 @@ function dump_lib() {
- 	ppc64)
- 		dump_lib_ppc64
- 		;;
-+	riscv32)
-+		dump_lib_riscv32
-+		;;
- 	riscv64)
- 		dump_lib_riscv64
- 		;;
-@@ -751,7 +800,7 @@ function gen_csv() {
- 	abi_list+=" mips mips64 mips64n32"
- 	abi_list+=" parisc parisc64"
- 	abi_list+=" ppc ppc64"
--	abi_list+=" riscv64"
-+	abi_list+=" riscv32 riscv64"
- 	abi_list+=" s390 s390x"
- 	abi_list+=" sh"
- 
-diff --git a/src/arch.c b/src/arch.c
-index 921e455..07935a9 100644
---- a/src/arch.c
-+++ b/src/arch.c
-@@ -43,6 +43,7 @@
- #include "arch-ppc.h"
- #include "arch-ppc64.h"
- #include "arch-riscv64.h"
-+#include "arch-riscv32.h"
- #include "arch-s390.h"
- #include "arch-s390x.h"
- #include "arch-sh.h"
-@@ -97,8 +98,12 @@ const struct arch_def *arch_def_native = &arch_def_ppc;
- const struct arch_def *arch_def_native = &arch_def_s390x;
- #elif __s390__
- const struct arch_def *arch_def_native = &arch_def_s390;
--#elif __riscv && __riscv_xlen == 64
-+#elif __riscv
-+#if __riscv_xlen == 64
- const struct arch_def *arch_def_native = &arch_def_riscv64;
-+#elif __riscv_xlen == 32
-+const struct arch_def *arch_def_native = &arch_def_riscv32;
-+#endif
- #elif __sh__
- #ifdef __BIG_ENDIAN__
- const struct arch_def *arch_def_native = &arch_def_sheb;
-@@ -167,6 +172,8 @@ const struct arch_def *arch_def_lookup(uint32_t token)
- 		return &arch_def_s390;
- 	case SCMP_ARCH_S390X:
- 		return &arch_def_s390x;
-+	case SCMP_ARCH_RISCV32:
-+		return &arch_def_riscv32;
- 	case SCMP_ARCH_RISCV64:
- 		return &arch_def_riscv64;
- 	case SCMP_ARCH_SHEB:
-@@ -223,6 +230,8 @@ const struct arch_def *arch_def_lookup_name(const char *arch_name)
- 		return &arch_def_s390;
- 	else if (strcmp(arch_name, "s390x") == 0)
- 		return &arch_def_s390x;
-+	else if (strcmp(arch_name, "riscv32") == 0)
-+		return &arch_def_riscv32;
- 	else if (strcmp(arch_name, "riscv64") == 0)
- 		return &arch_def_riscv64;
- 	else if (strcmp(arch_name, "sheb") == 0)
-diff --git a/src/gen_pfc.c b/src/gen_pfc.c
-index c7fb536..d45e181 100644
---- a/src/gen_pfc.c
-+++ b/src/gen_pfc.c
-@@ -87,6 +87,8 @@ static const char *_pfc_arch(const struct arch_def *arch)
- 		return "s390x";
- 	case SCMP_ARCH_S390:
- 		return "s390";
-+	case SCMP_ARCH_RISCV32:
-+		return "riscv32";
- 	case SCMP_ARCH_RISCV64:
- 		return "riscv64";
- 	case SCMP_ARCH_SHEB:
-diff --git a/src/python/libseccomp.pxd b/src/python/libseccomp.pxd
-index 0629bf1..000d503 100644
---- a/src/python/libseccomp.pxd
-+++ b/src/python/libseccomp.pxd
-@@ -51,6 +51,7 @@ cdef extern from "seccomp.h":
-         SCMP_ARCH_PPC64LE
-         SCMP_ARCH_S390
-         SCMP_ARCH_S390X
-+        SCMP_ARCH_RISCV32
-         SCMP_ARCH_RISCV64
- 
-     cdef enum scmp_filter_attr:
-diff --git a/src/python/seccomp.pyx b/src/python/seccomp.pyx
-index 2eeabc1..2895d78 100644
---- a/src/python/seccomp.pyx
-+++ b/src/python/seccomp.pyx
-@@ -214,6 +214,7 @@ cdef class Arch:
-     PARISC64 - 64-bit PA-RISC
-     PPC64 - 64-bit PowerPC
-     PPC - 32-bit PowerPC
-+    RISCV32 - 32-bit RISC-V
-     RISCV64 - 64-bit RISC-V
-     """
- 
-@@ -238,6 +239,7 @@ cdef class Arch:
-     PPC64LE = libseccomp.SCMP_ARCH_PPC64LE
-     S390 = libseccomp.SCMP_ARCH_S390
-     S390X = libseccomp.SCMP_ARCH_S390X
-+    RISCV32 = libseccomp.SCMP_ARCH_RISCV32
-     RISCV64 = libseccomp.SCMP_ARCH_RISCV64
- 
-     def __cinit__(self, arch=libseccomp.SCMP_ARCH_NATIVE):
-diff --git a/src/syscalls.c b/src/syscalls.c
-index faddff0..15952ce 100644
---- a/src/syscalls.c
-+++ b/src/syscalls.c
-@@ -59,6 +59,7 @@ ARCH_DEF(sh)
- ARCH_DEF(x32)
- ARCH_DEF(x86)
- ARCH_DEF(riscv64)
-+ARCH_DEF(riscv32)
- 
- /**
-  * Resolve a syscall name to a number
-diff --git a/src/syscalls.h b/src/syscalls.h
-index 58a788c..c6b5db5 100644
---- a/src/syscalls.h
-+++ b/src/syscalls.h
-@@ -28,6 +28,7 @@
- #include "arch-x86.h"
- #include "arch-x86.h"
- #include "arch-riscv64.h"
-+#include "arch-riscv32.h"
- 
- /* NOTE: changes to the arch_syscall_table layout may require changes to the
-  *       generate_syscalls_perf.sh and arch-syscall-validate scripts */
-@@ -49,6 +50,7 @@ struct arch_syscall_table {
- 	int parisc64;
- 	int ppc;
- 	int ppc64;
-+	int riscv32;
- 	int riscv64;
- 	int s390;
- 	int s390x;
-diff --git a/src/system.c b/src/system.c
-index ae445bf..063e6be 100644
---- a/src/system.c
-+++ b/src/system.c
-@@ -130,6 +130,7 @@ int sys_chk_seccomp_syscall(void)
- 	case SCMP_ARCH_PPC64LE:
- 	case SCMP_ARCH_S390:
- 	case SCMP_ARCH_S390X:
-+	case SCMP_ARCH_RISCV32:
- 	case SCMP_ARCH_RISCV64:
- 		break;
- 	default:
-diff --git a/tests/15-basic-resolver.c b/tests/15-basic-resolver.c
-index c759dd1..fd94dbf 100644
---- a/tests/15-basic-resolver.c
-+++ b/tests/15-basic-resolver.c
-@@ -45,6 +45,7 @@ unsigned int arch_list[] = {
- 	SCMP_ARCH_S390X,
- 	SCMP_ARCH_PARISC,
- 	SCMP_ARCH_PARISC64,
-+	SCMP_ARCH_RISCV32,
- 	SCMP_ARCH_RISCV64,
- 	SCMP_ARCH_SH,
- 	-1
-diff --git a/tests/16-sim-arch_basic.c b/tests/16-sim-arch_basic.c
-index 4fcbb5c..662e081 100644
---- a/tests/16-sim-arch_basic.c
-+++ b/tests/16-sim-arch_basic.c
-@@ -90,6 +90,9 @@ int main(int argc, char *argv[])
- 	if (rc != 0)
- 		goto out;
- 	rc = seccomp_arch_add(ctx, SCMP_ARCH_PPC64LE);
-+	if (rc != 0)
-+		goto out;
-+	rc = seccomp_arch_add(ctx, SCMP_ARCH_RISCV32);
- 	if (rc != 0)
- 		goto out;
- 	rc = seccomp_arch_add(ctx, SCMP_ARCH_RISCV64);
-@@ -160,6 +163,9 @@ int main(int argc, char *argv[])
- 	if (rc != 0)
- 		goto out;
- 	rc = seccomp_arch_remove(ctx, SCMP_ARCH_PPC64LE);
-+	if (rc != 0)
-+		goto out;
-+	rc = seccomp_arch_remove(ctx, SCMP_ARCH_RISCV32);
- 	if (rc != 0)
- 		goto out;
- 	rc = seccomp_arch_remove(ctx, SCMP_ARCH_RISCV64);
-diff --git a/tests/16-sim-arch_basic.py b/tests/16-sim-arch_basic.py
-index f22c985..d5e93a2 100755
---- a/tests/16-sim-arch_basic.py
-+++ b/tests/16-sim-arch_basic.py
-@@ -44,6 +44,7 @@ def test(args):
-     f.add_arch(Arch("mipsel64"))
-     f.add_arch(Arch("mipsel64n32"))
-     f.add_arch(Arch("ppc64le"))
-+    f.add_arch(Arch("riscv32"))
-     f.add_arch(Arch("riscv64"))
-     f.add_arch(Arch("sh"))
-     f.add_rule(ALLOW, "read", Arg(0, EQ, sys.stdin.fileno()))
-diff --git a/tests/23-sim-arch_all_le_basic.c b/tests/23-sim-arch_all_le_basic.c
-index 08f030c..ec73224 100644
---- a/tests/23-sim-arch_all_le_basic.c
-+++ b/tests/23-sim-arch_all_le_basic.c
-@@ -75,6 +75,9 @@ int main(int argc, char *argv[])
- 	if (rc != 0)
- 		goto out;
- 	rc = seccomp_arch_add(ctx, seccomp_arch_resolve_name("sh"));
-+	if (rc != 0)
-+		goto out;
-+	rc = seccomp_arch_add(ctx, seccomp_arch_resolve_name("riscv32"));
- 	if (rc != 0)
- 		goto out;
- 
-diff --git a/tests/23-sim-arch_all_le_basic.py b/tests/23-sim-arch_all_le_basic.py
-index 12bb243..1eebc20 100755
---- a/tests/23-sim-arch_all_le_basic.py
-+++ b/tests/23-sim-arch_all_le_basic.py
-@@ -40,6 +40,7 @@ def test(args):
-     f.add_arch(Arch("mipsel64"))
-     f.add_arch(Arch("mipsel64n32"))
-     f.add_arch(Arch("ppc64le"))
-+    f.add_arch(Arch("riscv32"))
-     f.add_arch(Arch("riscv64"))
-     f.add_arch(Arch("sh"))
-     f.add_rule(ALLOW, "read", Arg(0, EQ, sys.stdin.fileno()))
-diff --git a/tests/56-basic-iterate_syscalls.c b/tests/56-basic-iterate_syscalls.c
-index 5e7ab67..c11ca8c 100644
---- a/tests/56-basic-iterate_syscalls.c
-+++ b/tests/56-basic-iterate_syscalls.c
-@@ -46,6 +46,7 @@ unsigned int arch_list[] = {
- 	SCMP_ARCH_S390X,
- 	SCMP_ARCH_PARISC,
- 	SCMP_ARCH_PARISC64,
-+	SCMP_ARCH_RISCV32,
- 	SCMP_ARCH_RISCV64,
- 	-1
- };
-diff --git a/tests/56-basic-iterate_syscalls.py b/tests/56-basic-iterate_syscalls.py
-index 77a5b89..2e860bf 100755
---- a/tests/56-basic-iterate_syscalls.py
-+++ b/tests/56-basic-iterate_syscalls.py
-@@ -37,6 +37,7 @@ arch_list = ["x86",
-              "mipsel64",
-              "mipsel64n32",
-              "ppc64le",
-+             "riscv32",
-              "riscv64"]
- 
- def test_arch(arch, init):
-diff --git a/tests/regression b/tests/regression
-index d28b848..057ff67 100755
---- a/tests/regression
-+++ b/tests/regression
-@@ -26,7 +26,7 @@ GLBL_ARCH_LE_SUPPORT=" \
- 	arm aarch64 \
- 	mipsel mipsel64 mipsel64n32 \
- 	ppc64le \
--	riscv64 \
-+	riscv32 riscv64 \
- 	sh"
- GLBL_ARCH_BE_SUPPORT=" \
- 	mips mips64 mips64n32 \
-@@ -41,6 +41,7 @@ GLBL_ARCH_32B_SUPPORT=" \
- 	mips mipsel mips64n32 mipsel64n32 \
- 	parisc \
- 	ppc \
-+	riscv32 \
- 	s390 \
- 	sheb sh"
- 
-@@ -801,7 +802,7 @@ function run_test_live() {
- 
- 	# setup the arch specific return values
- 	case "$arch" in
--	x86|x86_64|x32|arm|aarch64|parisc|parisc64|ppc|ppc64|ppc64le|ppc|s390|s390x|riscv64|sh|sheb)
-+	x86|x86_64|x32|arm|aarch64|parisc|parisc64|ppc|ppc64|ppc64le|ppc|s390|s390x|riscv32|riscv64|sh|sheb)
- 		rc_kill_process=159
- 		rc_kill=159
- 		rc_allow=160
-diff --git a/tools/scmp_arch_detect.c b/tools/scmp_arch_detect.c
-index b6bd2bb..7789970 100644
---- a/tools/scmp_arch_detect.c
-+++ b/tools/scmp_arch_detect.c
-@@ -129,6 +129,9 @@ int main(int argc, char *argv[])
- 		case SCMP_ARCH_SH:
- 			printf("sh\n");
- 			break;
-+		case SCMP_ARCH_RISCV32:
-+			printf("riscv32\n");
-+			break;
- 		default:
- 			printf("unknown\n");
- 		}
-diff --git a/tools/scmp_bpf_disasm.c b/tools/scmp_bpf_disasm.c
-index b682de7..4f759fc 100644
---- a/tools/scmp_bpf_disasm.c
-+++ b/tools/scmp_bpf_disasm.c
-@@ -508,6 +508,8 @@ int main(int argc, char *argv[])
- 				arch = AUDIT_ARCH_S390X;
- 			else if (strcmp(optarg, "riscv64") == 0)
- 				arch = AUDIT_ARCH_RISCV64;
-+			else if (strcmp(optarg, "riscv32") == 0)
-+				arch = AUDIT_ARCH_RISCV32;
- 			else
- 				exit_usage(argv[0]);
- 			break;
-diff --git a/tools/scmp_bpf_sim.c b/tools/scmp_bpf_sim.c
-index 04edfbc..53e6575 100644
---- a/tools/scmp_bpf_sim.c
-+++ b/tools/scmp_bpf_sim.c
-@@ -285,6 +285,8 @@ int main(int argc, char *argv[])
- 				arch = AUDIT_ARCH_S390;
- 			else if (strcmp(optarg, "s390x") == 0)
- 				arch = AUDIT_ARCH_S390X;
-+			else if (strcmp(optarg, "riscv32") == 0)
-+				arch = AUDIT_ARCH_RISCV32;
- 			else if (strcmp(optarg, "riscv64") == 0)
- 				arch = AUDIT_ARCH_RISCV64;
- 			else if (strcmp(optarg, "sheb") == 0)
-diff --git a/tools/util.c b/tools/util.c
-index afea6c9..1fc1f62 100644
---- a/tools/util.c
-+++ b/tools/util.c
-@@ -78,8 +78,12 @@
- #define ARCH_NATIVE		AUDIT_ARCH_S390X
- #elif __s390__
- #define ARCH_NATIVE		AUDIT_ARCH_S390
--#elif __riscv && __riscv_xlen == 64
-+#elif __riscv
-+#if __riscv_xlen == 64
- #define ARCH_NATIVE		AUDIT_ARCH_RISCV64
-+#elif __riscv_xlen == 32
-+#define ARCH_NATIVE		AUDIT_ARCH_RISCV32
-+#endif
- #elif __sh__
- #ifdef __BIG_ENDIAN__
- #define ARCH_NATIVE		AUDIT_ARCH_SH
-diff --git a/tools/util.h b/tools/util.h
-index 6c2ca33..4d16e38 100644
---- a/tools/util.h
-+++ b/tools/util.h
-@@ -79,6 +79,13 @@
- #define AUDIT_ARCH_RISCV64	(EM_RISCV|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
- #endif /* AUDIT_ARCH_RISCV64 */
- 
-+#ifndef AUDIT_ARCH_RISCV32
-+#ifndef EM_RISCV
-+#define EM_RISCV		243
-+#endif /* EM_RISCV */
-+#define AUDIT_ARCH_RISCV32	(EM_RISCV|__AUDIT_ARCH_LE)
-+#endif /* AUDIT_ARCH_RISCV32 */
-+
- extern uint32_t arch;
- 
- uint16_t ttoh16(uint32_t arch, uint16_t val);
--- 
-2.33.0
-
diff --git a/poky/meta/recipes-support/libseccomp/files/0001-configure.ac-Bump-version-to-2.5.99.patch b/poky/meta/recipes-support/libseccomp/files/0001-configure.ac-Bump-version-to-2.5.99.patch
deleted file mode 100644
index 3fc285b..0000000
--- a/poky/meta/recipes-support/libseccomp/files/0001-configure.ac-Bump-version-to-2.5.99.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 00b6bc440a75443f9bea431bbb41df50469b5093 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 8 Jun 2021 23:13:20 -0700
-Subject: [PATCH] configure.ac: Bump version to 2.5.99
-
-Upstream-Status: Inappropriate [Needed for git builds only]
-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 3e87734..48e796f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -19,7 +19,7 @@ dnl #
- dnl ####
- dnl libseccomp defines
- dnl ####
--AC_INIT([libseccomp], [0.0.0])
-+AC_INIT([libseccomp], [2.5.99])
-
- dnl ####
- dnl autoconf configuration
---
-2.32.0
diff --git a/poky/meta/recipes-support/libseccomp/files/0002-man-Add-RISCV64-to-arch-list.patch b/poky/meta/recipes-support/libseccomp/files/0002-man-Add-RISCV64-to-arch-list.patch
deleted file mode 100644
index 511d457..0000000
--- a/poky/meta/recipes-support/libseccomp/files/0002-man-Add-RISCV64-to-arch-list.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From e016ce3949caf34ee0f8fc6d976c52eb2fb019ce Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 28 Jul 2021 11:03:24 -0700
-Subject: [PATCH 2/4] man: Add RISCV64 to arch list
-
-Upstream-Status: Submitted [https://github.com/seccomp/libseccomp/pull/327]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- doc/man/man1/scmp_sys_resolver.1 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/doc/man/man1/scmp_sys_resolver.1 b/doc/man/man1/scmp_sys_resolver.1
-index fc68d18..74d8a8a 100644
---- a/doc/man/man1/scmp_sys_resolver.1
-+++ b/doc/man/man1/scmp_sys_resolver.1
-@@ -36,7 +36,7 @@ The architecture to use for resolving the system call.  Valid
- .I ARCH
- values are "x86", "x86_64", "x32", "arm", "aarch64", "mips", "mipsel", "mips64",
- "mipsel64", "mips64n32", "mipsel64n32", "parisc", "parisc64", "ppc", "ppc64",
--"ppc64le", "riscv32", "s390", "s390x", "sheb" and "sh".
-+"ppc64le", "riscv64", "riscv32", "s390", "s390x", "sheb" and "sh".
- .TP
- .B \-t
- If necessary, translate the system call name to the proper system call number,
--- 
-2.33.0
-
diff --git a/poky/meta/recipes-support/libseccomp/files/0003-syscalls-update-the-syscall-defs-for-Linux-v5.15.0-r.patch b/poky/meta/recipes-support/libseccomp/files/0003-syscalls-update-the-syscall-defs-for-Linux-v5.15.0-r.patch
deleted file mode 100644
index 150d9bd..0000000
--- a/poky/meta/recipes-support/libseccomp/files/0003-syscalls-update-the-syscall-defs-for-Linux-v5.15.0-r.patch
+++ /dev/null
@@ -1,980 +0,0 @@
-From 54d8136679f4a1238397f7b7a8b3e8cf4626f018 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 30 Sep 2021 21:35:15 -0700
-Subject: [PATCH 3/4] syscalls: update the syscall defs for Linux v5.15.0-rc3
-
-Include RISCV32 arch as well
-Upstream-Status: Submitted [https://github.com/seccomp/libseccomp/pull/327]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/syscalls.csv | 959 ++++++++++++++++++++++++-----------------------
- 1 file changed, 480 insertions(+), 479 deletions(-)
-
-diff --git a/src/syscalls.csv b/src/syscalls.csv
-index 5bd0c9f..37ddb3d 100644
---- a/src/syscalls.csv
-+++ b/src/syscalls.csv
-@@ -1,479 +1,480 @@
--#syscall (v5.14.0-rc7 2021-08-23),x86,x86_64,x32,arm,aarch64,mips,mips64,mips64n32,parisc,parisc64,ppc,ppc64,riscv64,s390,s390x,sh
--accept,PNR,43,43,285,202,168,42,42,35,35,330,330,202,PNR,PNR,344
--accept4,364,288,288,366,242,334,293,297,320,320,344,344,242,364,364,358
--access,33,21,21,33,PNR,33,20,20,33,33,33,33,PNR,33,33,33
--acct,51,163,163,51,89,51,158,158,51,51,51,51,89,51,51,51
--add_key,286,248,248,309,217,280,239,243,264,264,269,269,217,278,278,285
--adjtimex,124,159,159,124,171,124,154,154,124,124,124,124,171,124,124,124
--afs_syscall,137,183,183,PNR,PNR,137,176,176,PNR,PNR,137,137,PNR,137,137,PNR
--alarm,27,37,37,PNR,PNR,27,37,37,27,27,27,27,PNR,27,27,27
--arch_prctl,384,158,158,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--arm_fadvise64_64,PNR,PNR,PNR,270,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--arm_sync_file_range,PNR,PNR,PNR,341,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--bdflush,134,PNR,PNR,134,PNR,134,PNR,PNR,134,134,134,134,PNR,134,134,134
--bind,361,49,49,282,200,169,48,48,22,22,327,327,200,361,361,341
--bpf,357,321,321,386,280,355,315,319,341,341,361,361,280,351,351,375
--break,17,PNR,PNR,PNR,PNR,17,PNR,PNR,PNR,PNR,17,17,PNR,PNR,PNR,PNR
--breakpoint,PNR,PNR,PNR,983041,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--brk,45,12,12,45,214,45,12,12,45,45,45,45,214,45,45,45
--cachectl,PNR,PNR,PNR,PNR,PNR,148,198,198,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--cacheflush,PNR,PNR,PNR,983042,PNR,147,197,197,PNR,PNR,PNR,PNR,PNR,PNR,PNR,123
--capget,184,125,125,184,90,204,123,123,106,106,183,183,90,184,184,184
--capset,185,126,126,185,91,205,124,124,107,107,184,184,91,185,185,185
--chdir,12,80,80,12,49,12,78,78,12,12,12,12,49,12,12,12
--chmod,15,90,90,15,PNR,15,88,88,15,15,15,15,PNR,15,15,15
--chown,182,92,92,182,PNR,202,90,90,180,180,181,181,PNR,182,212,182
--chown32,212,PNR,PNR,212,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,212,PNR,212
--chroot,61,161,161,61,51,61,156,156,61,61,61,61,51,61,61,61
--clock_adjtime,343,305,305,372,266,341,300,305,324,324,347,347,266,337,337,361
--clock_adjtime64,405,PNR,PNR,405,PNR,405,PNR,405,405,PNR,405,PNR,PNR,405,PNR,405
--clock_getres,266,229,229,264,114,264,223,227,257,257,247,247,114,261,261,266
--clock_getres_time64,406,PNR,PNR,406,PNR,406,PNR,406,406,PNR,406,PNR,PNR,406,PNR,406
--clock_gettime,265,228,228,263,113,263,222,226,256,256,246,246,113,260,260,265
--clock_gettime64,403,PNR,PNR,403,PNR,403,PNR,403,403,PNR,403,PNR,PNR,403,PNR,403
--clock_nanosleep,267,230,230,265,115,265,224,228,258,258,248,248,115,262,262,267
--clock_nanosleep_time64,407,PNR,PNR,407,PNR,407,PNR,407,407,PNR,407,PNR,PNR,407,PNR,407
--clock_settime,264,227,227,262,112,262,221,225,255,255,245,245,112,259,259,264
--clock_settime64,404,PNR,PNR,404,PNR,404,PNR,404,404,PNR,404,PNR,PNR,404,PNR,404
--clone,120,56,56,120,220,120,55,55,120,120,120,120,220,120,120,120
--clone3,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,PNR
--close,6,3,3,6,57,6,3,3,6,6,6,6,57,6,6,6
--close_range,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436
--connect,362,42,42,283,203,170,41,41,31,31,328,328,203,362,362,342
--copy_file_range,377,326,326,391,285,360,320,324,346,346,379,379,285,375,375,380
--creat,8,85,85,8,PNR,8,83,83,8,8,8,8,PNR,8,8,8
--create_module,127,174,PNR,PNR,PNR,127,167,167,PNR,PNR,127,127,PNR,127,127,PNR
--delete_module,129,176,176,129,106,129,169,169,129,129,129,129,106,129,129,129
--dup,41,32,32,41,23,41,31,31,41,41,41,41,23,41,41,41
--dup2,63,33,33,63,PNR,63,32,32,63,63,63,63,PNR,63,63,63
--dup3,330,292,292,358,24,327,286,290,312,312,316,316,24,326,326,330
--epoll_create,254,213,213,250,PNR,248,207,207,224,224,236,236,PNR,249,249,254
--epoll_create1,329,291,291,357,20,326,285,289,311,311,315,315,20,327,327,329
--epoll_ctl,255,233,233,251,21,249,208,208,225,225,237,237,21,250,250,255
--epoll_ctl_old,PNR,214,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--epoll_pwait,319,281,281,346,22,313,272,276,297,297,303,303,22,312,312,319
--epoll_pwait2,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441
--epoll_wait,256,232,232,252,PNR,250,209,209,226,226,238,238,PNR,251,251,256
--epoll_wait_old,PNR,215,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--eventfd,323,284,284,351,PNR,319,278,282,304,304,307,307,PNR,318,318,323
--eventfd2,328,290,290,356,19,325,284,288,310,310,314,314,19,323,323,328
--execve,11,59,520,11,221,11,57,57,11,11,11,11,221,11,11,11
--execveat,358,322,545,387,281,356,316,320,342,342,362,362,281,354,354,376
--exit,1,60,60,1,93,1,58,58,1,1,1,1,93,1,1,1
--exit_group,252,231,231,248,94,246,205,205,222,222,234,234,94,248,248,252
--faccessat,307,269,269,334,48,300,259,263,287,287,298,298,48,300,300,307
--faccessat2,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439
--fadvise64,250,221,221,PNR,223,254,215,216,PNR,PNR,233,233,223,253,253,250
--fadvise64_64,272,PNR,PNR,PNR,PNR,PNR,PNR,PNR,236,236,254,PNR,PNR,264,PNR,272
--fallocate,324,285,285,352,47,320,279,283,305,305,309,309,47,314,314,324
--fanotify_init,338,300,300,367,262,336,295,300,322,322,323,323,262,332,332,337
--fanotify_mark,339,301,301,368,263,337,296,301,323,323,324,324,263,333,333,338
--fchdir,133,81,81,133,50,133,79,79,133,133,133,133,50,133,133,133
--fchmod,94,91,91,94,52,94,89,89,94,94,94,94,52,94,94,94
--fchmodat,306,268,268,333,53,299,258,262,286,286,297,297,53,299,299,306
--fchown,95,93,93,95,55,95,91,91,95,95,95,95,55,95,207,95
--fchown32,207,PNR,PNR,207,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,207,PNR,207
--fchownat,298,260,260,325,54,291,250,254,278,278,289,289,54,291,291,298
--fcntl,55,72,72,55,25,55,70,70,55,55,55,55,25,55,55,55
--fcntl64,221,PNR,PNR,221,PNR,220,PNR,212,202,202,204,PNR,PNR,221,PNR,221
--fdatasync,148,75,75,148,83,152,73,73,148,148,148,148,83,148,148,148
--fgetxattr,231,193,193,231,10,229,185,185,243,243,214,214,10,229,229,231
--finit_module,350,313,313,379,273,348,307,312,333,333,353,353,273,344,344,368
--flistxattr,234,196,196,234,13,232,188,188,246,246,217,217,13,232,232,234
--flock,143,73,73,143,32,143,71,71,143,143,143,143,32,143,143,143
--fork,2,57,57,2,PNR,2,56,56,2,2,2,2,PNR,2,2,2
--fremovexattr,237,199,199,237,16,235,191,191,249,249,220,220,16,235,235,237
--fsconfig,431,431,431,431,431,431,431,431,431,431,431,431,431,431,431,431
--fsetxattr,228,190,190,228,7,226,182,182,240,240,211,211,7,226,226,228
--fsmount,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432
--fsopen,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430
--fspick,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433
--fstat,108,5,5,108,80,108,5,5,28,28,108,108,80,108,108,108
--fstat64,197,PNR,PNR,197,PNR,215,PNR,PNR,112,112,197,PNR,PNR,197,PNR,197
--fstatat64,300,PNR,PNR,327,PNR,293,PNR,PNR,280,280,291,PNR,PNR,293,PNR,300
--fstatfs,100,138,138,100,44,100,135,135,100,100,100,100,44,100,100,100
--fstatfs64,269,PNR,PNR,267,PNR,256,PNR,218,299,299,253,253,PNR,266,266,269
--fsync,118,74,74,118,82,118,72,72,118,118,118,118,82,118,118,118
--ftime,35,PNR,PNR,PNR,PNR,35,PNR,PNR,PNR,PNR,35,35,PNR,PNR,PNR,PNR
--ftruncate,93,77,77,93,46,93,75,75,93,93,93,93,46,93,93,93
--ftruncate64,194,PNR,PNR,194,PNR,212,PNR,PNR,200,200,194,PNR,PNR,194,PNR,194
--futex,240,202,202,240,98,238,194,194,210,210,221,221,98,238,238,240
--futex_time64,422,PNR,PNR,422,PNR,422,PNR,422,422,PNR,422,PNR,PNR,422,PNR,422
--futimesat,299,261,261,326,PNR,292,251,255,279,279,290,290,PNR,292,292,299
--getcpu,318,309,309,345,168,312,271,275,296,296,302,302,168,311,311,318
--getcwd,183,79,79,183,17,203,77,77,110,110,182,182,17,183,183,183
--getdents,141,78,78,141,PNR,141,76,76,141,141,141,141,PNR,141,141,141
--getdents64,220,217,217,217,61,219,308,299,201,201,202,202,61,220,220,220
--getegid,50,108,108,50,177,50,106,106,50,50,50,50,177,50,202,50
--getegid32,202,PNR,PNR,202,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,202,PNR,202
--geteuid,49,107,107,49,175,49,105,105,49,49,49,49,175,49,201,49
--geteuid32,201,PNR,PNR,201,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,201,PNR,201
--getgid,47,104,104,47,176,47,102,102,47,47,47,47,176,47,200,47
--getgid32,200,PNR,PNR,200,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,200,PNR,200
--getgroups,80,115,115,80,158,80,113,113,80,80,80,80,158,80,205,80
--getgroups32,205,PNR,PNR,205,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,205,PNR,205
--getitimer,105,36,36,105,102,105,35,35,105,105,105,105,102,105,105,105
--get_kernel_syms,130,177,PNR,PNR,PNR,130,170,170,PNR,PNR,130,130,PNR,130,130,PNR
--get_mempolicy,275,239,239,320,236,269,228,232,261,261,260,260,236,269,269,275
--getpeername,368,52,52,287,205,171,51,51,53,53,332,332,205,368,368,346
--getpgid,132,121,121,132,155,132,119,119,132,132,132,132,155,132,132,132
--getpgrp,65,111,111,65,PNR,65,109,109,65,65,65,65,PNR,65,65,65
--getpid,20,39,39,20,172,20,38,38,20,20,20,20,172,20,20,20
--getpmsg,188,181,181,PNR,PNR,208,174,174,PNR,PNR,187,187,PNR,188,188,PNR
--getppid,64,110,110,64,173,64,108,108,64,64,64,64,173,64,64,64
--getpriority,96,140,140,96,141,96,137,137,96,96,96,96,141,96,96,96
--getrandom,355,318,318,384,278,353,313,317,339,339,359,359,278,349,349,373
--getresgid,171,120,120,171,150,191,118,118,171,171,170,170,150,171,211,171
--getresgid32,211,PNR,PNR,211,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,211,PNR,211
--getresuid,165,118,118,165,148,186,116,116,165,165,165,165,148,165,209,165
--getresuid32,209,PNR,PNR,209,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,209,PNR,209
--getrlimit,76,97,97,PNR,163,76,95,95,76,76,76,76,163,76,191,76
--get_robust_list,312,274,531,339,100,310,269,273,290,290,299,299,100,305,305,312
--getrusage,77,98,98,77,165,77,96,96,77,77,77,77,165,77,77,77
--getsid,147,124,124,147,156,151,122,122,147,147,147,147,156,147,147,147
--getsockname,367,51,51,286,204,172,50,50,44,44,331,331,204,367,367,345
--getsockopt,365,55,542,295,209,173,54,54,182,182,340,340,209,365,365,354
--get_thread_area,244,211,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--gettid,224,186,186,224,178,222,178,178,206,206,207,207,178,236,236,224
--gettimeofday,78,96,96,78,169,78,94,94,78,78,78,78,169,78,78,78
--get_tls,PNR,PNR,PNR,983046,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--getuid,24,102,102,24,174,24,100,100,24,24,24,24,174,24,199,24
--getuid32,199,PNR,PNR,199,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,199,PNR,199
--getxattr,229,191,191,229,8,227,183,183,241,241,212,212,8,227,227,229
--gtty,32,PNR,PNR,PNR,PNR,32,PNR,PNR,PNR,PNR,32,32,PNR,PNR,PNR,PNR
--idle,112,PNR,PNR,PNR,PNR,112,PNR,PNR,PNR,PNR,112,112,PNR,112,112,PNR
--init_module,128,175,175,128,105,128,168,168,128,128,128,128,105,128,128,128
--inotify_add_watch,292,254,254,317,27,285,244,248,270,270,276,276,27,285,285,291
--inotify_init,291,253,253,316,PNR,284,243,247,269,269,275,275,PNR,284,284,290
--inotify_init1,332,294,294,360,26,329,288,292,314,314,318,318,26,324,324,332
--inotify_rm_watch,293,255,255,318,28,286,245,249,271,271,277,277,28,286,286,292
--io_cancel,249,210,210,247,3,245,204,204,219,219,231,231,3,247,247,249
--ioctl,54,16,514,54,29,54,15,15,54,54,54,54,29,54,54,54
--io_destroy,246,207,207,244,1,242,201,201,216,216,228,228,1,244,244,246
--io_getevents,247,208,208,245,4,243,202,202,217,217,229,229,4,245,245,247
--ioperm,101,173,173,PNR,PNR,101,PNR,PNR,PNR,PNR,101,101,PNR,101,PNR,PNR
--io_pgetevents,385,333,333,399,292,368,328,332,350,350,388,388,292,382,382,PNR
--io_pgetevents_time64,416,PNR,PNR,416,PNR,416,PNR,416,416,PNR,416,PNR,PNR,416,PNR,416
--iopl,110,172,172,PNR,PNR,110,PNR,PNR,PNR,PNR,110,110,PNR,PNR,PNR,PNR
--ioprio_get,290,252,252,315,31,315,274,278,268,268,274,274,31,283,283,289
--ioprio_set,289,251,251,314,30,314,273,277,267,267,273,273,30,282,282,288
--io_setup,245,206,543,243,0,241,200,200,215,215,227,227,0,243,243,245
--io_submit,248,209,544,246,2,244,203,203,218,218,230,230,2,246,246,248
--io_uring_enter,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426
--io_uring_register,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427
--io_uring_setup,425,425,425,425,425,425,425,425,425,425,425,425,425,425,425,425
--ipc,117,PNR,PNR,PNR,PNR,117,PNR,PNR,PNR,PNR,117,117,PNR,117,117,117
--kcmp,349,312,312,378,272,347,306,311,332,332,354,354,272,343,343,367
--kexec_file_load,PNR,320,320,401,294,PNR,PNR,PNR,355,355,382,382,294,381,381,PNR
--kexec_load,283,246,528,347,104,311,270,274,300,300,268,268,104,277,277,283
--keyctl,288,250,250,311,219,282,241,245,266,266,271,271,219,280,280,287
--kill,37,62,62,37,129,37,60,60,37,37,37,37,129,37,37,37
--landlock_add_rule,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445
--landlock_create_ruleset,444,444,444,444,444,444,444,444,444,444,444,444,444,444,444,444
--landlock_restrict_self,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446
--lchown,16,94,94,16,PNR,16,92,92,16,16,16,16,PNR,16,198,16
--lchown32,198,PNR,PNR,198,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,198,PNR,198
--lgetxattr,230,192,192,230,9,228,184,184,242,242,213,213,9,228,228,230
--link,9,86,86,9,PNR,9,84,84,9,9,9,9,PNR,9,9,9
--linkat,303,265,265,330,37,296,255,259,283,283,294,294,37,296,296,303
--listen,363,50,50,284,201,174,49,49,32,32,329,329,201,363,363,343
--listxattr,232,194,194,232,11,230,186,186,244,244,215,215,11,230,230,232
--llistxattr,233,195,195,233,12,231,187,187,245,245,216,216,12,231,231,233
--_llseek,140,PNR,PNR,140,PNR,140,PNR,PNR,140,140,140,140,PNR,140,PNR,140
--lock,53,PNR,PNR,PNR,PNR,53,PNR,PNR,PNR,PNR,53,53,PNR,PNR,PNR,PNR
--lookup_dcookie,253,212,212,249,18,247,206,206,223,223,235,235,18,110,110,253
--lremovexattr,236,198,198,236,15,234,190,190,248,248,219,219,15,234,234,236
--lseek,19,8,8,19,62,19,8,8,19,19,19,19,62,19,19,19
--lsetxattr,227,189,189,227,6,225,181,181,239,239,210,210,6,225,225,227
--lstat,107,6,6,107,PNR,107,6,6,84,84,107,107,PNR,107,107,107
--lstat64,196,PNR,PNR,196,PNR,214,PNR,PNR,198,198,196,PNR,PNR,196,PNR,196
--madvise,219,28,28,220,233,218,27,27,119,119,205,205,233,219,219,219
--mbind,274,237,237,319,235,268,227,231,260,260,259,259,235,268,268,274
--membarrier,375,324,324,389,283,358,318,322,343,343,365,365,283,356,356,378
--memfd_create,356,319,319,385,279,354,314,318,340,340,360,360,279,350,350,374
--memfd_secret,447,447,447,PNR,447,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--migrate_pages,294,256,256,400,238,287,246,250,272,272,258,258,238,287,287,294
--mincore,218,27,27,219,232,217,26,26,72,72,206,206,232,218,218,218
--mkdir,39,83,83,39,PNR,39,81,81,39,39,39,39,PNR,39,39,39
--mkdirat,296,258,258,323,34,289,248,252,276,276,287,287,34,289,289,296
--mknod,14,133,133,14,PNR,14,131,131,14,14,14,14,PNR,14,14,14
--mknodat,297,259,259,324,33,290,249,253,277,277,288,288,33,290,290,297
--mlock,150,149,149,150,228,154,146,146,150,150,150,150,228,150,150,150
--mlock2,376,325,325,390,284,359,319,323,345,345,378,378,284,374,374,379
--mlockall,152,151,151,152,230,156,148,148,152,152,152,152,230,152,152,152
--mmap,90,9,9,PNR,222,90,9,9,90,90,90,90,222,90,90,90
--mmap2,192,PNR,PNR,192,PNR,210,PNR,PNR,89,89,192,PNR,PNR,192,PNR,192
--modify_ldt,123,154,154,PNR,PNR,123,PNR,PNR,PNR,PNR,123,123,PNR,PNR,PNR,PNR
--mount,21,165,165,21,40,21,160,160,21,21,21,21,40,21,21,21
--mount_setattr,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442
--move_mount,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429
--move_pages,317,279,533,344,239,308,267,271,295,295,301,301,239,310,310,317
--mprotect,125,10,10,125,226,125,10,10,125,125,125,125,226,125,125,125
--mpx,56,PNR,PNR,PNR,PNR,56,PNR,PNR,PNR,PNR,56,56,PNR,PNR,PNR,PNR
--mq_getsetattr,282,245,245,279,185,276,235,239,234,234,267,267,185,276,276,282
--mq_notify,281,244,527,278,184,275,234,238,233,233,266,266,184,275,275,281
--mq_open,277,240,240,274,180,271,230,234,229,229,262,262,180,271,271,277
--mq_timedreceive,280,243,243,277,183,274,233,237,232,232,265,265,183,274,274,280
--mq_timedreceive_time64,419,PNR,PNR,419,PNR,419,PNR,419,419,PNR,419,PNR,PNR,419,PNR,419
--mq_timedsend,279,242,242,276,182,273,232,236,231,231,264,264,182,273,273,279
--mq_timedsend_time64,418,PNR,PNR,418,PNR,418,PNR,418,418,PNR,418,PNR,PNR,418,PNR,418
--mq_unlink,278,241,241,275,181,272,231,235,230,230,263,263,181,272,272,278
--mremap,163,25,25,163,216,167,24,24,163,163,163,163,216,163,163,163
--msgctl,402,71,71,304,187,402,69,69,191,191,402,402,187,402,402,402
--msgget,399,68,68,303,186,399,66,66,190,190,399,399,186,399,399,399
--msgrcv,401,70,70,302,188,401,68,68,189,189,401,401,188,401,401,401
--msgsnd,400,69,69,301,189,400,67,67,188,188,400,400,189,400,400,400
--msync,144,26,26,144,227,144,25,25,144,144,144,144,227,144,144,144
--multiplexer,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,201,201,PNR,PNR,PNR,PNR
--munlock,151,150,150,151,229,155,147,147,151,151,151,151,229,151,151,151
--munlockall,153,152,152,153,231,157,149,149,153,153,153,153,231,153,153,153
--munmap,91,11,11,91,215,91,11,11,91,91,91,91,215,91,91,91
--name_to_handle_at,341,303,303,370,264,339,298,303,325,325,345,345,264,335,335,359
--nanosleep,162,35,35,162,101,166,34,34,162,162,162,162,101,162,162,162
--newfstatat,PNR,262,262,PNR,79,PNR,252,256,PNR,PNR,PNR,291,79,PNR,293,PNR
--_newselect,142,PNR,PNR,142,PNR,142,22,22,142,142,142,142,PNR,142,PNR,142
--nfsservctl,169,180,PNR,169,42,189,173,173,PNR,PNR,168,168,42,169,169,169
--nice,34,PNR,PNR,34,PNR,34,PNR,PNR,34,34,34,34,PNR,34,34,34
--oldfstat,28,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,28,28,PNR,PNR,PNR,28
--oldlstat,84,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,84,84,PNR,PNR,PNR,84
--oldolduname,59,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,59,59,PNR,PNR,PNR,PNR
--oldstat,18,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,18,18,PNR,PNR,PNR,18
--olduname,109,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,109,109,PNR,PNR,PNR,109
--open,5,2,2,5,PNR,5,2,2,5,5,5,5,PNR,5,5,5
--openat,295,257,257,322,56,288,247,251,275,275,286,286,56,288,288,295
--openat2,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437
--open_by_handle_at,342,304,304,371,265,340,299,304,326,326,346,346,265,336,336,360
--open_tree,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428
--pause,29,34,34,29,PNR,29,33,33,29,29,29,29,PNR,29,29,29
--pciconfig_iobase,PNR,PNR,PNR,271,PNR,PNR,PNR,PNR,PNR,PNR,200,200,PNR,PNR,PNR,PNR
--pciconfig_read,PNR,PNR,PNR,272,PNR,PNR,PNR,PNR,PNR,PNR,198,198,PNR,PNR,PNR,PNR
--pciconfig_write,PNR,PNR,PNR,273,PNR,PNR,PNR,PNR,PNR,PNR,199,199,PNR,PNR,PNR,PNR
--perf_event_open,336,298,298,364,241,333,292,296,318,318,319,319,241,331,331,336
--personality,136,135,135,136,92,136,132,132,136,136,136,136,92,136,136,136
--pidfd_getfd,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438
--pidfd_open,434,434,434,434,434,434,434,434,434,434,434,434,434,434,434,434
--pidfd_send_signal,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424
--pipe,42,22,22,42,PNR,42,21,21,42,42,42,42,PNR,42,42,42
--pipe2,331,293,293,359,59,328,287,291,313,313,317,317,59,325,325,331
--pivot_root,217,155,155,218,41,216,151,151,67,67,203,203,41,217,217,217
--pkey_alloc,381,330,330,395,289,364,324,328,352,352,384,384,289,385,385,385
--pkey_free,382,331,331,396,290,365,325,329,353,353,385,385,290,386,386,386
--pkey_mprotect,380,329,329,394,288,363,323,327,351,351,386,386,288,384,384,384
--poll,168,7,7,168,PNR,188,7,7,168,168,167,167,PNR,168,168,168
--ppoll,309,271,271,336,73,302,261,265,274,274,281,281,73,302,302,309
--ppoll_time64,414,PNR,PNR,414,PNR,414,PNR,414,414,PNR,414,PNR,PNR,414,PNR,414
--prctl,172,157,157,172,167,192,153,153,172,172,171,171,167,172,172,172
--pread64,180,17,17,180,67,200,16,16,108,108,179,179,67,180,180,180
--preadv,333,295,534,361,69,330,289,293,315,315,320,320,69,328,328,333
--preadv2,378,327,546,392,286,361,321,325,347,347,380,380,286,376,376,381
--prlimit64,340,302,302,369,261,338,297,302,321,321,325,325,261,334,334,339
--process_madvise,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440
--process_vm_readv,347,310,539,376,270,345,304,309,330,330,351,351,270,340,340,365
--process_vm_writev,348,311,540,377,271,346,305,310,331,331,352,352,271,341,341,366
--prof,44,PNR,PNR,PNR,PNR,44,PNR,PNR,PNR,PNR,44,44,PNR,PNR,PNR,PNR
--profil,98,PNR,PNR,PNR,PNR,98,PNR,PNR,PNR,PNR,98,98,PNR,PNR,PNR,PNR
--pselect6,308,270,270,335,72,301,260,264,273,273,280,280,72,301,301,308
--pselect6_time64,413,PNR,PNR,413,PNR,413,PNR,413,413,PNR,413,PNR,PNR,413,PNR,413
--ptrace,26,101,521,26,117,26,99,99,26,26,26,26,117,26,26,26
--putpmsg,189,182,182,PNR,PNR,209,175,175,PNR,PNR,188,188,PNR,189,189,PNR
--pwrite64,181,18,18,181,68,201,17,17,109,109,180,180,68,181,181,181
--pwritev,334,296,535,362,70,331,290,294,316,316,321,321,70,329,329,334
--pwritev2,379,328,547,393,287,362,322,326,348,348,381,381,287,377,377,382
--query_module,167,178,PNR,PNR,PNR,187,171,171,PNR,PNR,166,166,PNR,167,167,PNR
--quotactl,131,179,179,131,60,131,172,172,131,131,131,131,60,131,131,131
--quotactl_fd,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443
--read,3,0,0,3,63,3,0,0,3,3,3,3,63,3,3,3
--readahead,225,187,187,225,213,223,179,179,207,207,191,191,213,222,222,225
--readdir,89,PNR,PNR,PNR,PNR,89,PNR,PNR,PNR,PNR,89,89,PNR,89,89,89
--readlink,85,89,89,85,PNR,85,87,87,85,85,85,85,PNR,85,85,85
--readlinkat,305,267,267,332,78,298,257,261,285,285,296,296,78,298,298,305
--readv,145,19,515,145,65,145,18,18,145,145,145,145,65,145,145,145
--reboot,88,169,169,88,142,88,164,164,88,88,88,88,142,88,88,88
--recv,PNR,PNR,PNR,291,PNR,175,PNR,PNR,98,98,336,336,PNR,PNR,PNR,350
--recvfrom,371,45,517,292,207,176,44,44,123,123,337,337,207,371,371,351
--recvmmsg,337,299,537,365,243,335,294,298,319,319,343,343,243,357,357,357
--recvmmsg_time64,417,PNR,PNR,417,PNR,417,PNR,417,417,PNR,417,PNR,PNR,417,PNR,417
--recvmsg,372,47,519,297,212,177,46,46,184,184,342,342,212,372,372,356
--remap_file_pages,257,216,216,253,234,251,210,210,227,227,239,239,234,267,267,257
--removexattr,235,197,197,235,14,233,189,189,247,247,218,218,14,233,233,235
--rename,38,82,82,38,PNR,38,80,80,38,38,38,38,PNR,38,38,38
--renameat,302,264,264,329,38,295,254,258,282,282,293,293,PNR,295,295,302
--renameat2,353,316,316,382,276,351,311,315,337,337,357,357,276,347,347,371
--request_key,287,249,249,310,218,281,240,244,265,265,270,270,218,279,279,286
--restart_syscall,0,219,219,0,128,253,213,214,0,0,0,0,128,7,7,0
--riscv_flush_icache,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,259,PNR,PNR,PNR
--rmdir,40,84,84,40,PNR,40,82,82,40,40,40,40,PNR,40,40,40
--rseq,386,334,334,398,293,367,327,331,354,354,387,387,293,383,383,387
--rtas,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,255,255,PNR,PNR,PNR,PNR
--rt_sigaction,174,13,512,174,134,194,13,13,174,174,173,173,134,174,174,174
--rt_sigpending,176,127,522,176,136,196,125,125,176,176,175,175,136,176,176,176
--rt_sigprocmask,175,14,14,175,135,195,14,14,175,175,174,174,135,175,175,175
--rt_sigqueueinfo,178,129,524,178,138,198,127,127,178,178,177,177,138,178,178,178
--rt_sigreturn,173,15,513,173,139,193,211,211,173,173,172,172,139,173,173,173
--rt_sigsuspend,179,130,130,179,133,199,128,128,179,179,178,178,133,179,179,179
--rt_sigtimedwait,177,128,523,177,137,197,126,126,177,177,176,176,137,177,177,177
--rt_sigtimedwait_time64,421,PNR,PNR,421,PNR,421,PNR,421,421,PNR,421,PNR,PNR,421,PNR,421
--rt_tgsigqueueinfo,335,297,536,363,240,332,291,295,317,317,322,322,240,330,330,335
--s390_guarded_storage,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,378,378,PNR
--s390_pci_mmio_read,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,353,353,PNR
--s390_pci_mmio_write,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,352,352,PNR
--s390_runtime_instr,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,342,342,PNR
--s390_sthyi,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,380,380,PNR
--sched_getaffinity,242,204,204,242,123,240,196,196,212,212,223,223,123,240,240,242
--sched_getattr,352,315,315,381,275,350,310,314,335,335,356,356,275,346,346,369
--sched_getparam,155,143,143,155,121,159,140,140,155,155,155,155,121,155,155,155
--sched_get_priority_max,159,146,146,159,125,163,143,143,159,159,159,159,125,159,159,159
--sched_get_priority_min,160,147,147,160,126,164,144,144,160,160,160,160,126,160,160,160
--sched_getscheduler,157,145,145,157,120,161,142,142,157,157,157,157,120,157,157,157
--sched_rr_get_interval,161,148,148,161,127,165,145,145,161,161,161,161,127,161,161,161
--sched_rr_get_interval_time64,423,PNR,PNR,423,PNR,423,PNR,423,423,PNR,423,PNR,PNR,423,PNR,423
--sched_setaffinity,241,203,203,241,122,239,195,195,211,211,222,222,122,239,239,241
--sched_setattr,351,314,314,380,274,349,309,313,334,334,355,355,274,345,345,370
--sched_setparam,154,142,142,154,118,158,139,139,154,154,154,154,118,154,154,154
--sched_setscheduler,156,144,144,156,119,160,141,141,156,156,156,156,119,156,156,156
--sched_yield,158,24,24,158,124,162,23,23,158,158,158,158,124,158,158,158
--seccomp,354,317,317,383,277,352,312,316,338,338,358,358,277,348,348,372
--security,PNR,185,185,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--select,82,23,23,PNR,PNR,PNR,PNR,PNR,PNR,PNR,82,82,PNR,PNR,142,PNR
--semctl,394,66,66,300,191,394,64,64,187,187,394,394,191,394,394,394
--semget,393,64,64,299,190,393,62,62,186,186,393,393,190,393,393,393
--semop,PNR,65,65,298,193,PNR,63,63,185,185,PNR,PNR,193,PNR,PNR,PNR
--semtimedop,PNR,220,220,312,192,PNR,214,215,228,228,PNR,392,192,PNR,392,PNR
--semtimedop_time64,420,PNR,PNR,420,PNR,420,PNR,420,420,PNR,420,PNR,PNR,420,PNR,420
--send,PNR,PNR,PNR,289,PNR,178,PNR,PNR,58,58,334,334,PNR,PNR,PNR,348
--sendfile,187,40,40,187,71,207,39,39,122,122,186,186,71,187,187,187
--sendfile64,239,PNR,PNR,239,PNR,237,PNR,219,209,209,226,PNR,PNR,223,PNR,239
--sendmmsg,345,307,538,374,269,343,302,307,329,329,349,349,269,358,358,363
--sendmsg,370,46,518,296,211,179,45,45,183,183,341,341,211,370,370,355
--sendto,369,44,44,290,206,180,43,43,82,82,335,335,206,369,369,349
--setdomainname,121,171,171,121,162,121,166,166,121,121,121,121,162,121,121,121
--setfsgid,139,123,123,139,152,139,121,121,139,139,139,139,152,139,216,139
--setfsgid32,216,PNR,PNR,216,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,216,PNR,216
--setfsuid,138,122,122,138,151,138,120,120,138,138,138,138,151,138,215,138
--setfsuid32,215,PNR,PNR,215,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,215,PNR,215
--setgid,46,106,106,46,144,46,104,104,46,46,46,46,144,46,214,46
--setgid32,214,PNR,PNR,214,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,214,PNR,214
--setgroups,81,116,116,81,159,81,114,114,81,81,81,81,159,81,206,81
--setgroups32,206,PNR,PNR,206,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,206,PNR,206
--sethostname,74,170,170,74,161,74,165,165,74,74,74,74,161,74,74,74
--setitimer,104,38,38,104,103,104,36,36,104,104,104,104,103,104,104,104
--set_mempolicy,276,238,238,321,237,270,229,233,262,262,261,261,237,270,270,276
--setns,346,308,308,375,268,344,303,308,328,328,350,350,268,339,339,364
--setpgid,57,109,109,57,154,57,107,107,57,57,57,57,154,57,57,57
--setpriority,97,141,141,97,140,97,138,138,97,97,97,97,140,97,97,97
--setregid,71,114,114,71,143,71,112,112,71,71,71,71,143,71,204,71
--setregid32,204,PNR,PNR,204,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,204,PNR,204
--setresgid,170,119,119,170,149,190,117,117,170,170,169,169,149,170,210,170
--setresgid32,210,PNR,PNR,210,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,210,PNR,210
--setresuid,164,117,117,164,147,185,115,115,164,164,164,164,147,164,208,164
--setresuid32,208,PNR,PNR,208,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,208,PNR,208
--setreuid,70,113,113,70,145,70,111,111,70,70,70,70,145,70,203,70
--setreuid32,203,PNR,PNR,203,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,203,PNR,203
--setrlimit,75,160,160,75,164,75,155,155,75,75,75,75,164,75,75,75
--set_robust_list,311,273,530,338,99,309,268,272,289,289,300,300,99,304,304,311
--setsid,66,112,112,66,157,66,110,110,66,66,66,66,157,66,66,66
--setsockopt,366,54,541,294,208,181,53,53,181,181,339,339,208,366,366,353
--set_thread_area,243,205,PNR,PNR,PNR,283,242,246,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--set_tid_address,258,218,218,256,96,252,212,213,237,237,232,232,96,252,252,258
--settimeofday,79,164,164,79,170,79,159,159,79,79,79,79,170,79,79,79
--set_tls,PNR,PNR,PNR,983045,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--setuid,23,105,105,23,146,23,103,103,23,23,23,23,146,23,213,23
--setuid32,213,PNR,PNR,213,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,213,PNR,213
--setxattr,226,188,188,226,5,224,180,180,238,238,209,209,5,224,224,226
--sgetmask,68,PNR,PNR,PNR,PNR,68,PNR,PNR,68,68,68,68,PNR,PNR,PNR,68
--shmat,397,30,30,305,196,397,29,29,192,192,397,397,196,397,397,397
--shmctl,396,31,31,308,195,396,30,30,195,195,396,396,195,396,396,396
--shmdt,398,67,67,306,197,398,65,65,193,193,398,398,197,398,398,398
--shmget,395,29,29,307,194,395,28,28,194,194,395,395,194,395,395,395
--shutdown,373,48,48,293,210,182,47,47,117,117,338,338,210,373,373,352
--sigaction,67,PNR,PNR,67,PNR,67,PNR,PNR,PNR,PNR,67,67,PNR,67,67,67
--sigaltstack,186,131,525,186,132,206,129,129,166,166,185,185,132,186,186,186
--signal,48,PNR,PNR,PNR,PNR,48,PNR,PNR,48,48,48,48,PNR,48,48,48
--signalfd,321,282,282,349,PNR,317,276,280,302,302,305,305,PNR,316,316,321
--signalfd4,327,289,289,355,74,324,283,287,309,309,313,313,74,322,322,327
--sigpending,73,PNR,PNR,73,PNR,73,PNR,PNR,73,73,73,73,PNR,73,73,73
--sigprocmask,126,PNR,PNR,126,PNR,126,PNR,PNR,126,126,126,126,PNR,126,126,126
--sigreturn,119,PNR,PNR,119,PNR,119,PNR,PNR,PNR,PNR,119,119,PNR,119,119,119
--sigsuspend,72,PNR,PNR,72,PNR,72,PNR,PNR,PNR,PNR,72,72,PNR,72,72,72
--socket,359,41,41,281,198,183,40,40,17,17,326,326,198,359,359,340
--socketcall,102,PNR,PNR,PNR,PNR,102,PNR,PNR,PNR,PNR,102,102,PNR,102,102,102
--socketpair,360,53,53,288,199,184,52,52,56,56,333,333,199,360,360,347
--splice,313,275,275,340,76,304,263,267,291,291,283,283,76,306,306,313
--spu_create,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,279,279,PNR,PNR,PNR,PNR
--spu_run,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,278,278,PNR,PNR,PNR,PNR
--ssetmask,69,PNR,PNR,PNR,PNR,69,PNR,PNR,69,69,69,69,PNR,PNR,PNR,69
--stat,106,4,4,106,PNR,106,4,4,18,18,106,106,PNR,106,106,106
--stat64,195,PNR,PNR,195,PNR,213,PNR,PNR,101,101,195,PNR,PNR,195,PNR,195
--statfs,99,137,137,99,43,99,134,134,99,99,99,99,43,99,99,99
--statfs64,268,PNR,PNR,266,PNR,255,PNR,217,298,298,252,252,PNR,265,265,268
--statx,383,332,332,397,291,366,326,330,349,349,383,383,291,379,379,383
--stime,25,PNR,PNR,PNR,PNR,25,PNR,PNR,25,25,25,25,PNR,25,PNR,25
--stty,31,PNR,PNR,PNR,PNR,31,PNR,PNR,PNR,PNR,31,31,PNR,PNR,PNR,PNR
--subpage_prot,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,310,310,PNR,PNR,PNR,PNR
--swapcontext,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,249,249,PNR,PNR,PNR,PNR
--swapoff,115,168,168,115,225,115,163,163,115,115,115,115,225,115,115,115
--swapon,87,167,167,87,224,87,162,162,87,87,87,87,224,87,87,87
--switch_endian,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,363,363,PNR,PNR,PNR,PNR
--symlink,83,88,88,83,PNR,83,86,86,83,83,83,83,PNR,83,83,83
--symlinkat,304,266,266,331,36,297,256,260,284,284,295,295,36,297,297,304
--sync,36,162,162,36,81,36,157,157,36,36,36,36,81,36,36,36
--sync_file_range,314,277,277,PNR,84,305,264,268,292,292,PNR,PNR,84,307,307,314
--sync_file_range2,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,308,308,PNR,PNR,PNR,PNR
--syncfs,344,306,306,373,267,342,301,306,327,327,348,348,267,338,338,362
--syscall,PNR,PNR,PNR,PNR,PNR,0,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--_sysctl,149,156,PNR,149,PNR,153,152,152,149,149,149,149,PNR,149,149,149
--sys_debug_setcontext,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,256,256,PNR,PNR,PNR,PNR
--sysfs,135,139,139,135,PNR,135,136,136,135,135,135,135,PNR,135,135,135
--sysinfo,116,99,99,116,179,116,97,97,116,116,116,116,179,116,116,116
--syslog,103,103,103,103,116,103,101,101,103,103,103,103,116,103,103,103
--sysmips,PNR,PNR,PNR,PNR,PNR,149,199,199,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--tee,315,276,276,342,77,306,265,269,293,293,284,284,77,308,308,315
--tgkill,270,234,234,268,131,266,225,229,259,259,250,250,131,241,241,270
--time,13,201,201,PNR,PNR,13,PNR,PNR,13,13,13,13,PNR,13,PNR,13
--timer_create,259,222,526,257,107,257,216,220,250,250,240,240,107,254,254,259
--timer_delete,263,226,226,261,111,261,220,224,254,254,244,244,111,258,258,263
--timerfd,PNR,PNR,PNR,PNR,PNR,318,277,281,PNR,PNR,PNR,PNR,PNR,317,317,PNR
--timerfd_create,322,283,283,350,85,321,280,284,306,306,306,306,85,319,319,322
--timerfd_gettime,326,287,287,354,87,322,281,285,308,308,312,312,87,321,321,326
--timerfd_gettime64,410,PNR,PNR,410,PNR,410,PNR,410,410,PNR,410,PNR,PNR,410,PNR,410
--timerfd_settime,325,286,286,353,86,323,282,286,307,307,311,311,86,320,320,325
--timerfd_settime64,411,PNR,PNR,411,PNR,411,PNR,411,411,PNR,411,PNR,PNR,411,PNR,411
--timer_getoverrun,262,225,225,260,109,260,219,223,253,253,243,243,109,257,257,262
--timer_gettime,261,224,224,259,108,259,218,222,252,252,242,242,108,256,256,261
--timer_gettime64,408,PNR,PNR,408,PNR,408,PNR,408,408,PNR,408,PNR,PNR,408,PNR,408
--timer_settime,260,223,223,258,110,258,217,221,251,251,241,241,110,255,255,260
--timer_settime64,409,PNR,PNR,409,PNR,409,PNR,409,409,PNR,409,PNR,PNR,409,PNR,409
--times,43,100,100,43,153,43,98,98,43,43,43,43,153,43,43,43
--tkill,238,200,200,238,130,236,192,192,208,208,208,208,130,237,237,238
--truncate,92,76,76,92,45,92,74,74,92,92,92,92,45,92,92,92
--truncate64,193,PNR,PNR,193,PNR,211,PNR,PNR,199,199,193,PNR,PNR,193,PNR,193
--tuxcall,PNR,184,184,PNR,PNR,PNR,PNR,PNR,PNR,PNR,225,225,PNR,PNR,PNR,PNR
--ugetrlimit,191,PNR,PNR,191,PNR,PNR,PNR,PNR,PNR,PNR,190,190,PNR,191,PNR,191
--ulimit,58,PNR,PNR,PNR,PNR,58,PNR,PNR,PNR,PNR,58,58,PNR,PNR,PNR,PNR
--umask,60,95,95,60,166,60,93,93,60,60,60,60,166,60,60,60
--umount,22,PNR,PNR,PNR,PNR,22,PNR,PNR,PNR,PNR,22,22,PNR,22,22,22
--umount2,52,166,166,52,39,52,161,161,52,52,52,52,39,52,52,52
--uname,122,63,63,122,160,122,61,61,59,59,122,122,160,122,122,122
--unlink,10,87,87,10,PNR,10,85,85,10,10,10,10,PNR,10,10,10
--unlinkat,301,263,263,328,35,294,253,257,281,281,292,292,35,294,294,301
--unshare,310,272,272,337,97,303,262,266,288,288,282,282,97,303,303,310
--uselib,86,134,PNR,86,PNR,86,PNR,PNR,86,86,86,86,PNR,86,86,86
--userfaultfd,374,323,323,388,282,357,317,321,344,344,364,364,282,355,355,377
--usr26,PNR,PNR,PNR,983043,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--usr32,PNR,PNR,PNR,983044,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--ustat,62,136,136,62,PNR,62,133,133,62,62,62,62,PNR,62,62,62
--utime,30,132,132,PNR,PNR,30,130,130,30,30,30,30,PNR,30,30,30
--utimensat,320,280,280,348,88,316,275,279,301,301,304,304,88,315,315,320
--utimensat_time64,412,PNR,PNR,412,PNR,412,PNR,412,412,PNR,412,PNR,PNR,412,PNR,412
--utimes,271,235,235,269,PNR,267,226,230,336,336,251,251,PNR,313,313,271
--vfork,190,58,58,190,PNR,PNR,PNR,PNR,113,113,189,189,PNR,190,190,190
--vhangup,111,153,153,111,58,111,150,150,111,111,111,111,58,111,111,111
--vm86,166,PNR,PNR,PNR,PNR,113,PNR,PNR,PNR,PNR,113,113,PNR,PNR,PNR,PNR
--vm86old,113,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--vmsplice,316,278,532,343,75,307,266,270,294,294,285,285,75,309,309,316
--vserver,273,236,PNR,313,PNR,277,236,240,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
--wait4,114,61,61,114,260,114,59,59,114,114,114,114,260,114,114,114
--waitid,284,247,529,280,95,278,237,241,235,235,272,272,95,281,281,284
--waitpid,7,PNR,PNR,PNR,PNR,7,PNR,PNR,7,7,7,7,PNR,PNR,PNR,7
--write,4,1,1,4,64,4,1,1,4,4,4,4,64,4,4,4
--writev,146,20,516,146,66,146,19,19,146,146,146,146,66,146,146,146
-+#syscall (v5.15.0-rc3 2021-10-01),x86,x86_64,x32,arm,aarch64,mips,mips64,mips64n32,parisc,parisc64,ppc,ppc64,riscv32,riscv64,s390,s390x,sh
-+accept,PNR,43,43,285,202,168,42,42,35,35,330,330,202,202,PNR,PNR,344
-+accept4,364,288,288,366,242,334,293,297,320,320,344,344,242,242,364,364,358
-+access,33,21,21,33,PNR,33,20,20,33,33,33,33,PNR,PNR,33,33,33
-+acct,51,163,163,51,89,51,158,158,51,51,51,51,89,89,51,51,51
-+add_key,286,248,248,309,217,280,239,243,264,264,269,269,217,217,278,278,285
-+adjtimex,124,159,159,124,171,124,154,154,124,124,124,124,171,171,124,124,124
-+afs_syscall,137,183,183,PNR,PNR,137,176,176,PNR,PNR,137,137,PNR,PNR,137,137,PNR
-+alarm,27,37,37,PNR,PNR,27,37,37,27,27,27,27,PNR,PNR,27,27,27
-+arch_prctl,384,158,158,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+arm_fadvise64_64,PNR,PNR,PNR,270,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+arm_sync_file_range,PNR,PNR,PNR,341,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+bdflush,134,PNR,PNR,134,PNR,134,PNR,PNR,134,134,134,134,PNR,PNR,134,134,134
-+bind,361,49,49,282,200,169,48,48,22,22,327,327,200,200,361,361,341
-+bpf,357,321,321,386,280,355,315,319,341,341,361,361,280,280,351,351,375
-+break,17,PNR,PNR,PNR,PNR,17,PNR,PNR,PNR,PNR,17,17,PNR,PNR,PNR,PNR,PNR
-+breakpoint,PNR,PNR,PNR,983041,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+brk,45,12,12,45,214,45,12,12,45,45,45,45,214,214,45,45,45
-+cachectl,PNR,PNR,PNR,PNR,PNR,148,198,198,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+cacheflush,PNR,PNR,PNR,983042,PNR,147,197,197,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,123
-+capget,184,125,125,184,90,204,123,123,106,106,183,183,90,90,184,184,184
-+capset,185,126,126,185,91,205,124,124,107,107,184,184,91,91,185,185,185
-+chdir,12,80,80,12,49,12,78,78,12,12,12,12,49,49,12,12,12
-+chmod,15,90,90,15,PNR,15,88,88,15,15,15,15,PNR,PNR,15,15,15
-+chown,182,92,92,182,PNR,202,90,90,180,180,181,181,PNR,PNR,182,212,182
-+chown32,212,PNR,PNR,212,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,212,PNR,212
-+chroot,61,161,161,61,51,61,156,156,61,61,61,61,51,51,61,61,61
-+clock_adjtime,343,305,305,372,266,341,300,305,324,324,347,347,266,266,337,337,361
-+clock_adjtime64,405,PNR,PNR,405,PNR,405,PNR,405,405,PNR,405,PNR,PNR,PNR,405,PNR,405
-+clock_getres,266,229,229,264,114,264,223,227,257,257,247,247,114,114,261,261,266
-+clock_getres_time64,406,PNR,PNR,406,PNR,406,PNR,406,406,PNR,406,PNR,PNR,PNR,406,PNR,406
-+clock_gettime,265,228,228,263,113,263,222,226,256,256,246,246,113,113,260,260,265
-+clock_gettime64,403,PNR,PNR,403,PNR,403,PNR,403,403,PNR,403,PNR,PNR,PNR,403,PNR,403
-+clock_nanosleep,267,230,230,265,115,265,224,228,258,258,248,248,115,115,262,262,267
-+clock_nanosleep_time64,407,PNR,PNR,407,PNR,407,PNR,407,407,PNR,407,PNR,PNR,PNR,407,PNR,407
-+clock_settime,264,227,227,262,112,262,221,225,255,255,245,245,112,112,259,259,264
-+clock_settime64,404,PNR,PNR,404,PNR,404,PNR,404,404,PNR,404,PNR,PNR,PNR,404,PNR,404
-+clone,120,56,56,120,220,120,55,55,120,120,120,120,220,220,120,120,120
-+clone3,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,PNR
-+close,6,3,3,6,57,6,3,3,6,6,6,6,57,57,6,6,6
-+close_range,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436
-+connect,362,42,42,283,203,170,41,41,31,31,328,328,203,203,362,362,342
-+copy_file_range,377,326,326,391,285,360,320,324,346,346,379,379,285,285,375,375,380
-+creat,8,85,85,8,PNR,8,83,83,8,8,8,8,PNR,PNR,8,8,8
-+create_module,127,174,PNR,PNR,PNR,127,167,167,PNR,PNR,127,127,PNR,PNR,127,127,PNR
-+delete_module,129,176,176,129,106,129,169,169,129,129,129,129,106,106,129,129,129
-+dup,41,32,32,41,23,41,31,31,41,41,41,41,23,23,41,41,41
-+dup2,63,33,33,63,PNR,63,32,32,63,63,63,63,PNR,PNR,63,63,63
-+dup3,330,292,292,358,24,327,286,290,312,312,316,316,24,24,326,326,330
-+epoll_create,254,213,213,250,PNR,248,207,207,224,224,236,236,PNR,PNR,249,249,254
-+epoll_create1,329,291,291,357,20,326,285,289,311,311,315,315,20,20,327,327,329
-+epoll_ctl,255,233,233,251,21,249,208,208,225,225,237,237,21,21,250,250,255
-+epoll_ctl_old,PNR,214,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+epoll_pwait,319,281,281,346,22,313,272,276,297,297,303,303,22,22,312,312,319
-+epoll_pwait2,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441
-+epoll_wait,256,232,232,252,PNR,250,209,209,226,226,238,238,PNR,PNR,251,251,256
-+epoll_wait_old,PNR,215,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+eventfd,323,284,284,351,PNR,319,278,282,304,304,307,307,PNR,PNR,318,318,323
-+eventfd2,328,290,290,356,19,325,284,288,310,310,314,314,19,19,323,323,328
-+execve,11,59,520,11,221,11,57,57,11,11,11,11,221,221,11,11,11
-+execveat,358,322,545,387,281,356,316,320,342,342,362,362,281,281,354,354,376
-+exit,1,60,60,1,93,1,58,58,1,1,1,1,93,93,1,1,1
-+exit_group,252,231,231,248,94,246,205,205,222,222,234,234,94,94,248,248,252
-+faccessat,307,269,269,334,48,300,259,263,287,287,298,298,48,48,300,300,307
-+faccessat2,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439
-+fadvise64,250,221,221,PNR,223,254,215,216,PNR,PNR,233,233,223,223,253,253,250
-+fadvise64_64,272,PNR,PNR,PNR,PNR,PNR,PNR,PNR,236,236,254,PNR,PNR,PNR,264,PNR,272
-+fallocate,324,285,285,352,47,320,279,283,305,305,309,309,47,47,314,314,324
-+fanotify_init,338,300,300,367,262,336,295,300,322,322,323,323,262,262,332,332,337
-+fanotify_mark,339,301,301,368,263,337,296,301,323,323,324,324,263,263,333,333,338
-+fchdir,133,81,81,133,50,133,79,79,133,133,133,133,50,50,133,133,133
-+fchmod,94,91,91,94,52,94,89,89,94,94,94,94,52,52,94,94,94
-+fchmodat,306,268,268,333,53,299,258,262,286,286,297,297,53,53,299,299,306
-+fchown,95,93,93,95,55,95,91,91,95,95,95,95,55,55,95,207,95
-+fchown32,207,PNR,PNR,207,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,207,PNR,207
-+fchownat,298,260,260,325,54,291,250,254,278,278,289,289,54,54,291,291,298
-+fcntl,55,72,72,55,25,55,70,70,55,55,55,55,25,25,55,55,55
-+fcntl64,221,PNR,PNR,221,PNR,220,PNR,212,202,202,204,PNR,PNR,PNR,221,PNR,221
-+fdatasync,148,75,75,148,83,152,73,73,148,148,148,148,83,83,148,148,148
-+fgetxattr,231,193,193,231,10,229,185,185,243,243,214,214,10,10,229,229,231
-+finit_module,350,313,313,379,273,348,307,312,333,333,353,353,273,273,344,344,368
-+flistxattr,234,196,196,234,13,232,188,188,246,246,217,217,13,13,232,232,234
-+flock,143,73,73,143,32,143,71,71,143,143,143,143,32,32,143,143,143
-+fork,2,57,57,2,PNR,2,56,56,2,2,2,2,PNR,PNR,2,2,2
-+fremovexattr,237,199,199,237,16,235,191,191,249,249,220,220,16,16,235,235,237
-+fsconfig,431,431,431,431,431,431,431,431,431,431,431,431,431,431,431,431,431
-+fsetxattr,228,190,190,228,7,226,182,182,240,240,211,211,7,7,226,226,228
-+fsmount,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432
-+fsopen,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430
-+fspick,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433
-+fstat,108,5,5,108,80,108,5,5,28,28,108,108,80,80,108,108,108
-+fstat64,197,PNR,PNR,197,PNR,215,PNR,PNR,112,112,197,PNR,PNR,PNR,197,PNR,197
-+fstatat64,300,PNR,PNR,327,PNR,293,PNR,PNR,280,280,291,PNR,PNR,PNR,293,PNR,300
-+fstatfs,100,138,138,100,44,100,135,135,100,100,100,100,44,44,100,100,100
-+fstatfs64,269,PNR,PNR,267,PNR,256,PNR,218,299,299,253,253,PNR,PNR,266,266,269
-+fsync,118,74,74,118,82,118,72,72,118,118,118,118,82,82,118,118,118
-+ftime,35,PNR,PNR,PNR,PNR,35,PNR,PNR,PNR,PNR,35,35,PNR,PNR,PNR,PNR,PNR
-+ftruncate,93,77,77,93,46,93,75,75,93,93,93,93,46,46,93,93,93
-+ftruncate64,194,PNR,PNR,194,PNR,212,PNR,PNR,200,200,194,PNR,PNR,PNR,194,PNR,194
-+futex,240,202,202,240,98,238,194,194,210,210,221,221,98,98,238,238,240
-+futex_time64,422,PNR,PNR,422,PNR,422,PNR,422,422,PNR,422,PNR,PNR,PNR,422,PNR,422
-+futimesat,299,261,261,326,PNR,292,251,255,279,279,290,290,PNR,PNR,292,292,299
-+getcpu,318,309,309,345,168,312,271,275,296,296,302,302,168,168,311,311,318
-+getcwd,183,79,79,183,17,203,77,77,110,110,182,182,17,17,183,183,183
-+getdents,141,78,78,141,PNR,141,76,76,141,141,141,141,PNR,PNR,141,141,141
-+getdents64,220,217,217,217,61,219,308,299,201,201,202,202,61,61,220,220,220
-+getegid,50,108,108,50,177,50,106,106,50,50,50,50,177,177,50,202,50
-+getegid32,202,PNR,PNR,202,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,202,PNR,202
-+geteuid,49,107,107,49,175,49,105,105,49,49,49,49,175,175,49,201,49
-+geteuid32,201,PNR,PNR,201,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,201,PNR,201
-+getgid,47,104,104,47,176,47,102,102,47,47,47,47,176,176,47,200,47
-+getgid32,200,PNR,PNR,200,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,200,PNR,200
-+getgroups,80,115,115,80,158,80,113,113,80,80,80,80,158,158,80,205,80
-+getgroups32,205,PNR,PNR,205,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,205,PNR,205
-+getitimer,105,36,36,105,102,105,35,35,105,105,105,105,102,102,105,105,105
-+get_kernel_syms,130,177,PNR,PNR,PNR,130,170,170,PNR,PNR,130,130,PNR,PNR,130,130,PNR
-+get_mempolicy,275,239,239,320,236,269,228,232,261,261,260,260,236,236,269,269,275
-+getpeername,368,52,52,287,205,171,51,51,53,53,332,332,205,205,368,368,346
-+getpgid,132,121,121,132,155,132,119,119,132,132,132,132,155,155,132,132,132
-+getpgrp,65,111,111,65,PNR,65,109,109,65,65,65,65,PNR,PNR,65,65,65
-+getpid,20,39,39,20,172,20,38,38,20,20,20,20,172,172,20,20,20
-+getpmsg,188,181,181,PNR,PNR,208,174,174,PNR,PNR,187,187,PNR,PNR,188,188,PNR
-+getppid,64,110,110,64,173,64,108,108,64,64,64,64,173,173,64,64,64
-+getpriority,96,140,140,96,141,96,137,137,96,96,96,96,141,141,96,96,96
-+getrandom,355,318,318,384,278,353,313,317,339,339,359,359,278,278,349,349,373
-+getresgid,171,120,120,171,150,191,118,118,171,171,170,170,150,150,171,211,171
-+getresgid32,211,PNR,PNR,211,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,211,PNR,211
-+getresuid,165,118,118,165,148,186,116,116,165,165,165,165,148,148,165,209,165
-+getresuid32,209,PNR,PNR,209,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,209,PNR,209
-+getrlimit,76,97,97,PNR,163,76,95,95,76,76,76,76,163,163,76,191,76
-+get_robust_list,312,274,531,339,100,310,269,273,290,290,299,299,100,100,305,305,312
-+getrusage,77,98,98,77,165,77,96,96,77,77,77,77,165,165,77,77,77
-+getsid,147,124,124,147,156,151,122,122,147,147,147,147,156,156,147,147,147
-+getsockname,367,51,51,286,204,172,50,50,44,44,331,331,204,204,367,367,345
-+getsockopt,365,55,542,295,209,173,54,54,182,182,340,340,209,209,365,365,354
-+get_thread_area,244,211,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+gettid,224,186,186,224,178,222,178,178,206,206,207,207,178,178,236,236,224
-+gettimeofday,78,96,96,78,169,78,94,94,78,78,78,78,169,169,78,78,78
-+get_tls,PNR,PNR,PNR,983046,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+getuid,24,102,102,24,174,24,100,100,24,24,24,24,174,174,24,199,24
-+getuid32,199,PNR,PNR,199,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,199,PNR,199
-+getxattr,229,191,191,229,8,227,183,183,241,241,212,212,8,8,227,227,229
-+gtty,32,PNR,PNR,PNR,PNR,32,PNR,PNR,PNR,PNR,32,32,PNR,PNR,PNR,PNR,PNR
-+idle,112,PNR,PNR,PNR,PNR,112,PNR,PNR,PNR,PNR,112,112,PNR,PNR,112,112,PNR
-+init_module,128,175,175,128,105,128,168,168,128,128,128,128,105,105,128,128,128
-+inotify_add_watch,292,254,254,317,27,285,244,248,270,270,276,276,27,27,285,285,291
-+inotify_init,291,253,253,316,PNR,284,243,247,269,269,275,275,PNR,PNR,284,284,290
-+inotify_init1,332,294,294,360,26,329,288,292,314,314,318,318,26,26,324,324,332
-+inotify_rm_watch,293,255,255,318,28,286,245,249,271,271,277,277,28,28,286,286,292
-+io_cancel,249,210,210,247,3,245,204,204,219,219,231,231,3,3,247,247,249
-+ioctl,54,16,514,54,29,54,15,15,54,54,54,54,29,29,54,54,54
-+io_destroy,246,207,207,244,1,242,201,201,216,216,228,228,1,1,244,244,246
-+io_getevents,247,208,208,245,4,243,202,202,217,217,229,229,4,4,245,245,247
-+ioperm,101,173,173,PNR,PNR,101,PNR,PNR,PNR,PNR,101,101,PNR,PNR,101,PNR,PNR
-+io_pgetevents,385,333,333,399,292,368,328,332,350,350,388,388,292,292,382,382,PNR
-+io_pgetevents_time64,416,PNR,PNR,416,PNR,416,PNR,416,416,PNR,416,PNR,PNR,PNR,416,PNR,416
-+iopl,110,172,172,PNR,PNR,110,PNR,PNR,PNR,PNR,110,110,PNR,PNR,PNR,PNR,PNR
-+ioprio_get,290,252,252,315,31,315,274,278,268,268,274,274,31,31,283,283,289
-+ioprio_set,289,251,251,314,30,314,273,277,267,267,273,273,30,30,282,282,288
-+io_setup,245,206,543,243,0,241,200,200,215,215,227,227,0,0,243,243,245
-+io_submit,248,209,544,246,2,244,203,203,218,218,230,230,2,2,246,246,248
-+io_uring_enter,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426
-+io_uring_register,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427
-+io_uring_setup,425,425,425,425,425,425,425,425,425,425,425,425,425,425,425,425,425
-+ipc,117,PNR,PNR,PNR,PNR,117,PNR,PNR,PNR,PNR,117,117,PNR,PNR,117,117,117
-+kcmp,349,312,312,378,272,347,306,311,332,332,354,354,272,272,343,343,367
-+kexec_file_load,PNR,320,320,401,294,PNR,PNR,PNR,355,355,382,382,294,294,381,381,PNR
-+kexec_load,283,246,528,347,104,311,270,274,300,300,268,268,104,104,277,277,283
-+keyctl,288,250,250,311,219,282,241,245,266,266,271,271,219,219,280,280,287
-+kill,37,62,62,37,129,37,60,60,37,37,37,37,129,129,37,37,37
-+landlock_add_rule,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445
-+landlock_create_ruleset,444,444,444,444,444,444,444,444,444,444,444,444,444,444,444,444,444
-+landlock_restrict_self,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446
-+lchown,16,94,94,16,PNR,16,92,92,16,16,16,16,PNR,PNR,16,198,16
-+lchown32,198,PNR,PNR,198,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,198,PNR,198
-+lgetxattr,230,192,192,230,9,228,184,184,242,242,213,213,9,9,228,228,230
-+link,9,86,86,9,PNR,9,84,84,9,9,9,9,PNR,PNR,9,9,9
-+linkat,303,265,265,330,37,296,255,259,283,283,294,294,37,37,296,296,303
-+listen,363,50,50,284,201,174,49,49,32,32,329,329,201,201,363,363,343
-+listxattr,232,194,194,232,11,230,186,186,244,244,215,215,11,11,230,230,232
-+llistxattr,233,195,195,233,12,231,187,187,245,245,216,216,12,12,231,231,233
-+_llseek,140,PNR,PNR,140,PNR,140,PNR,PNR,140,140,140,140,PNR,PNR,140,PNR,140
-+lock,53,PNR,PNR,PNR,PNR,53,PNR,PNR,PNR,PNR,53,53,PNR,PNR,PNR,PNR,PNR
-+lookup_dcookie,253,212,212,249,18,247,206,206,223,223,235,235,18,18,110,110,253
-+lremovexattr,236,198,198,236,15,234,190,190,248,248,219,219,15,15,234,234,236
-+lseek,19,8,8,19,62,19,8,8,19,19,19,19,62,62,19,19,19
-+lsetxattr,227,189,189,227,6,225,181,181,239,239,210,210,6,6,225,225,227
-+lstat,107,6,6,107,PNR,107,6,6,84,84,107,107,PNR,PNR,107,107,107
-+lstat64,196,PNR,PNR,196,PNR,214,PNR,PNR,198,198,196,PNR,PNR,PNR,196,PNR,196
-+madvise,219,28,28,220,233,218,27,27,119,119,205,205,233,233,219,219,219
-+mbind,274,237,237,319,235,268,227,231,260,260,259,259,235,235,268,268,274
-+membarrier,375,324,324,389,283,358,318,322,343,343,365,365,283,283,356,356,378
-+memfd_create,356,319,319,385,279,354,314,318,340,340,360,360,279,279,350,350,374
-+memfd_secret,447,447,447,PNR,447,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+migrate_pages,294,256,256,400,238,287,246,250,272,272,258,258,238,238,287,287,294
-+mincore,218,27,27,219,232,217,26,26,72,72,206,206,232,232,218,218,218
-+mkdir,39,83,83,39,PNR,39,81,81,39,39,39,39,PNR,PNR,39,39,39
-+mkdirat,296,258,258,323,34,289,248,252,276,276,287,287,34,34,289,289,296
-+mknod,14,133,133,14,PNR,14,131,131,14,14,14,14,PNR,PNR,14,14,14
-+mknodat,297,259,259,324,33,290,249,253,277,277,288,288,33,33,290,290,297
-+mlock,150,149,149,150,228,154,146,146,150,150,150,150,228,228,150,150,150
-+mlock2,376,325,325,390,284,359,319,323,345,345,378,378,284,284,374,374,379
-+mlockall,152,151,151,152,230,156,148,148,152,152,152,152,230,230,152,152,152
-+mmap,90,9,9,PNR,222,90,9,9,90,90,90,90,222,222,90,90,90
-+mmap2,192,PNR,PNR,192,PNR,210,PNR,PNR,89,89,192,PNR,PNR,PNR,192,PNR,192
-+modify_ldt,123,154,154,PNR,PNR,123,PNR,PNR,PNR,PNR,123,123,PNR,PNR,PNR,PNR,PNR
-+mount,21,165,165,21,40,21,160,160,21,21,21,21,40,40,21,21,21
-+mount_setattr,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442
-+move_mount,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429
-+move_pages,317,279,533,344,239,308,267,271,295,295,301,301,239,239,310,310,317
-+mprotect,125,10,10,125,226,125,10,10,125,125,125,125,226,226,125,125,125
-+mpx,56,PNR,PNR,PNR,PNR,56,PNR,PNR,PNR,PNR,56,56,PNR,PNR,PNR,PNR,PNR
-+mq_getsetattr,282,245,245,279,185,276,235,239,234,234,267,267,185,185,276,276,282
-+mq_notify,281,244,527,278,184,275,234,238,233,233,266,266,184,184,275,275,281
-+mq_open,277,240,240,274,180,271,230,234,229,229,262,262,180,180,271,271,277
-+mq_timedreceive,280,243,243,277,183,274,233,237,232,232,265,265,183,183,274,274,280
-+mq_timedreceive_time64,419,PNR,PNR,419,PNR,419,PNR,419,419,PNR,419,PNR,PNR,PNR,419,PNR,419
-+mq_timedsend,279,242,242,276,182,273,232,236,231,231,264,264,182,182,273,273,279
-+mq_timedsend_time64,418,PNR,PNR,418,PNR,418,PNR,418,418,PNR,418,PNR,PNR,PNR,418,PNR,418
-+mq_unlink,278,241,241,275,181,272,231,235,230,230,263,263,181,181,272,272,278
-+mremap,163,25,25,163,216,167,24,24,163,163,163,163,216,216,163,163,163
-+msgctl,402,71,71,304,187,402,69,69,191,191,402,402,187,187,402,402,402
-+msgget,399,68,68,303,186,399,66,66,190,190,399,399,186,186,399,399,399
-+msgrcv,401,70,70,302,188,401,68,68,189,189,401,401,188,188,401,401,401
-+msgsnd,400,69,69,301,189,400,67,67,188,188,400,400,189,189,400,400,400
-+msync,144,26,26,144,227,144,25,25,144,144,144,144,227,227,144,144,144
-+multiplexer,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,201,201,PNR,PNR,PNR,PNR,PNR
-+munlock,151,150,150,151,229,155,147,147,151,151,151,151,229,229,151,151,151
-+munlockall,153,152,152,153,231,157,149,149,153,153,153,153,231,231,153,153,153
-+munmap,91,11,11,91,215,91,11,11,91,91,91,91,215,215,91,91,91
-+name_to_handle_at,341,303,303,370,264,339,298,303,325,325,345,345,264,264,335,335,359
-+nanosleep,162,35,35,162,101,166,34,34,162,162,162,162,101,101,162,162,162
-+newfstatat,PNR,262,262,PNR,79,PNR,252,256,PNR,PNR,PNR,291,79,79,PNR,293,PNR
-+_newselect,142,PNR,PNR,142,PNR,142,22,22,142,142,142,142,PNR,PNR,142,PNR,142
-+nfsservctl,169,180,PNR,169,42,189,173,173,PNR,PNR,168,168,42,42,169,169,169
-+nice,34,PNR,PNR,34,PNR,34,PNR,PNR,34,34,34,34,PNR,PNR,34,34,34
-+oldfstat,28,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,28,28,PNR,PNR,PNR,PNR,28
-+oldlstat,84,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,84,84,PNR,PNR,PNR,PNR,84
-+oldolduname,59,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,59,59,PNR,PNR,PNR,PNR,PNR
-+oldstat,18,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,18,18,PNR,PNR,PNR,PNR,18
-+olduname,109,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,109,109,PNR,PNR,PNR,PNR,109
-+open,5,2,2,5,PNR,5,2,2,5,5,5,5,PNR,PNR,5,5,5
-+openat,295,257,257,322,56,288,247,251,275,275,286,286,56,56,288,288,295
-+openat2,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437
-+open_by_handle_at,342,304,304,371,265,340,299,304,326,326,346,346,265,265,336,336,360
-+open_tree,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428
-+pause,29,34,34,29,PNR,29,33,33,29,29,29,29,PNR,PNR,29,29,29
-+pciconfig_iobase,PNR,PNR,PNR,271,PNR,PNR,PNR,PNR,PNR,PNR,200,200,PNR,PNR,PNR,PNR,PNR
-+pciconfig_read,PNR,PNR,PNR,272,PNR,PNR,PNR,PNR,PNR,PNR,198,198,PNR,PNR,PNR,PNR,PNR
-+pciconfig_write,PNR,PNR,PNR,273,PNR,PNR,PNR,PNR,PNR,PNR,199,199,PNR,PNR,PNR,PNR,PNR
-+perf_event_open,336,298,298,364,241,333,292,296,318,318,319,319,241,241,331,331,336
-+personality,136,135,135,136,92,136,132,132,136,136,136,136,92,92,136,136,136
-+pidfd_getfd,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438
-+pidfd_open,434,434,434,434,434,434,434,434,434,434,434,434,434,434,434,434,434
-+pidfd_send_signal,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424
-+pipe,42,22,22,42,PNR,42,21,21,42,42,42,42,PNR,PNR,42,42,42
-+pipe2,331,293,293,359,59,328,287,291,313,313,317,317,59,59,325,325,331
-+pivot_root,217,155,155,218,41,216,151,151,67,67,203,203,41,41,217,217,217
-+pkey_alloc,381,330,330,395,289,364,324,328,352,352,384,384,289,289,385,385,385
-+pkey_free,382,331,331,396,290,365,325,329,353,353,385,385,290,290,386,386,386
-+pkey_mprotect,380,329,329,394,288,363,323,327,351,351,386,386,288,288,384,384,384
-+poll,168,7,7,168,PNR,188,7,7,168,168,167,167,PNR,PNR,168,168,168
-+ppoll,309,271,271,336,73,302,261,265,274,274,281,281,73,73,302,302,309
-+ppoll_time64,414,PNR,PNR,414,PNR,414,PNR,414,414,PNR,414,PNR,PNR,PNR,414,PNR,414
-+prctl,172,157,157,172,167,192,153,153,172,172,171,171,167,167,172,172,172
-+pread64,180,17,17,180,67,200,16,16,108,108,179,179,67,67,180,180,180
-+preadv,333,295,534,361,69,330,289,293,315,315,320,320,69,69,328,328,333
-+preadv2,378,327,546,392,286,361,321,325,347,347,380,380,286,286,376,376,381
-+prlimit64,340,302,302,369,261,338,297,302,321,321,325,325,261,261,334,334,339
-+process_madvise,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440
-+process_mrelease,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448
-+process_vm_readv,347,310,539,376,270,345,304,309,330,330,351,351,270,270,340,340,365
-+process_vm_writev,348,311,540,377,271,346,305,310,331,331,352,352,271,271,341,341,366
-+prof,44,PNR,PNR,PNR,PNR,44,PNR,PNR,PNR,PNR,44,44,PNR,PNR,PNR,PNR,PNR
-+profil,98,PNR,PNR,PNR,PNR,98,PNR,PNR,PNR,PNR,98,98,PNR,PNR,PNR,PNR,PNR
-+pselect6,308,270,270,335,72,301,260,264,273,273,280,280,72,72,301,301,308
-+pselect6_time64,413,PNR,PNR,413,PNR,413,PNR,413,413,PNR,413,PNR,PNR,PNR,413,PNR,413
-+ptrace,26,101,521,26,117,26,99,99,26,26,26,26,117,117,26,26,26
-+putpmsg,189,182,182,PNR,PNR,209,175,175,PNR,PNR,188,188,PNR,PNR,189,189,PNR
-+pwrite64,181,18,18,181,68,201,17,17,109,109,180,180,68,68,181,181,181
-+pwritev,334,296,535,362,70,331,290,294,316,316,321,321,70,70,329,329,334
-+pwritev2,379,328,547,393,287,362,322,326,348,348,381,381,287,287,377,377,382
-+query_module,167,178,PNR,PNR,PNR,187,171,171,PNR,PNR,166,166,PNR,PNR,167,167,PNR
-+quotactl,131,179,179,131,60,131,172,172,131,131,131,131,60,60,131,131,131
-+quotactl_fd,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443
-+read,3,0,0,3,63,3,0,0,3,3,3,3,63,63,3,3,3
-+readahead,225,187,187,225,213,223,179,179,207,207,191,191,213,213,222,222,225
-+readdir,89,PNR,PNR,PNR,PNR,89,PNR,PNR,PNR,PNR,89,89,PNR,PNR,89,89,89
-+readlink,85,89,89,85,PNR,85,87,87,85,85,85,85,PNR,PNR,85,85,85
-+readlinkat,305,267,267,332,78,298,257,261,285,285,296,296,78,78,298,298,305
-+readv,145,19,515,145,65,145,18,18,145,145,145,145,65,65,145,145,145
-+reboot,88,169,169,88,142,88,164,164,88,88,88,88,142,142,88,88,88
-+recv,PNR,PNR,PNR,291,PNR,175,PNR,PNR,98,98,336,336,PNR,PNR,PNR,PNR,350
-+recvfrom,371,45,517,292,207,176,44,44,123,123,337,337,207,207,371,371,351
-+recvmmsg,337,299,537,365,243,335,294,298,319,319,343,343,243,243,357,357,357
-+recvmmsg_time64,417,PNR,PNR,417,PNR,417,PNR,417,417,PNR,417,PNR,PNR,PNR,417,PNR,417
-+recvmsg,372,47,519,297,212,177,46,46,184,184,342,342,212,212,372,372,356
-+remap_file_pages,257,216,216,253,234,251,210,210,227,227,239,239,234,234,267,267,257
-+removexattr,235,197,197,235,14,233,189,189,247,247,218,218,14,14,233,233,235
-+rename,38,82,82,38,PNR,38,80,80,38,38,38,38,PNR,PNR,38,38,38
-+renameat,302,264,264,329,38,295,254,258,282,282,293,293,PNR,PNR,295,295,302
-+renameat2,353,316,316,382,276,351,311,315,337,337,357,357,276,276,347,347,371
-+request_key,287,249,249,310,218,281,240,244,265,265,270,270,218,218,279,279,286
-+restart_syscall,0,219,219,0,128,253,213,214,0,0,0,0,128,128,7,7,0
-+riscv_flush_icache,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,259,259,PNR,PNR,PNR
-+rmdir,40,84,84,40,PNR,40,82,82,40,40,40,40,PNR,PNR,40,40,40
-+rseq,386,334,334,398,293,367,327,331,354,354,387,387,293,293,383,383,387
-+rtas,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,255,255,PNR,PNR,PNR,PNR,PNR
-+rt_sigaction,174,13,512,174,134,194,13,13,174,174,173,173,134,134,174,174,174
-+rt_sigpending,176,127,522,176,136,196,125,125,176,176,175,175,136,136,176,176,176
-+rt_sigprocmask,175,14,14,175,135,195,14,14,175,175,174,174,135,135,175,175,175
-+rt_sigqueueinfo,178,129,524,178,138,198,127,127,178,178,177,177,138,138,178,178,178
-+rt_sigreturn,173,15,513,173,139,193,211,211,173,173,172,172,139,139,173,173,173
-+rt_sigsuspend,179,130,130,179,133,199,128,128,179,179,178,178,133,133,179,179,179
-+rt_sigtimedwait,177,128,523,177,137,197,126,126,177,177,176,176,137,137,177,177,177
-+rt_sigtimedwait_time64,421,PNR,PNR,421,PNR,421,PNR,421,421,PNR,421,PNR,PNR,PNR,421,PNR,421
-+rt_tgsigqueueinfo,335,297,536,363,240,332,291,295,317,317,322,322,240,240,330,330,335
-+s390_guarded_storage,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,378,378,PNR
-+s390_pci_mmio_read,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,353,353,PNR
-+s390_pci_mmio_write,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,352,352,PNR
-+s390_runtime_instr,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,342,342,PNR
-+s390_sthyi,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,380,380,PNR
-+sched_getaffinity,242,204,204,242,123,240,196,196,212,212,223,223,123,123,240,240,242
-+sched_getattr,352,315,315,381,275,350,310,314,335,335,356,356,275,275,346,346,369
-+sched_getparam,155,143,143,155,121,159,140,140,155,155,155,155,121,121,155,155,155
-+sched_get_priority_max,159,146,146,159,125,163,143,143,159,159,159,159,125,125,159,159,159
-+sched_get_priority_min,160,147,147,160,126,164,144,144,160,160,160,160,126,126,160,160,160
-+sched_getscheduler,157,145,145,157,120,161,142,142,157,157,157,157,120,120,157,157,157
-+sched_rr_get_interval,161,148,148,161,127,165,145,145,161,161,161,161,127,127,161,161,161
-+sched_rr_get_interval_time64,423,PNR,PNR,423,PNR,423,PNR,423,423,PNR,423,PNR,PNR,PNR,423,PNR,423
-+sched_setaffinity,241,203,203,241,122,239,195,195,211,211,222,222,122,122,239,239,241
-+sched_setattr,351,314,314,380,274,349,309,313,334,334,355,355,274,274,345,345,370
-+sched_setparam,154,142,142,154,118,158,139,139,154,154,154,154,118,118,154,154,154
-+sched_setscheduler,156,144,144,156,119,160,141,141,156,156,156,156,119,119,156,156,156
-+sched_yield,158,24,24,158,124,162,23,23,158,158,158,158,124,124,158,158,158
-+seccomp,354,317,317,383,277,352,312,316,338,338,358,358,277,277,348,348,372
-+security,PNR,185,185,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+select,82,23,23,PNR,PNR,PNR,PNR,PNR,PNR,PNR,82,82,PNR,PNR,PNR,142,PNR
-+semctl,394,66,66,300,191,394,64,64,187,187,394,394,191,191,394,394,394
-+semget,393,64,64,299,190,393,62,62,186,186,393,393,190,190,393,393,393
-+semop,PNR,65,65,298,193,PNR,63,63,185,185,PNR,PNR,193,193,PNR,PNR,PNR
-+semtimedop,PNR,220,220,312,192,PNR,214,215,228,228,PNR,392,192,192,PNR,392,PNR
-+semtimedop_time64,420,PNR,PNR,420,PNR,420,PNR,420,420,PNR,420,PNR,PNR,PNR,420,PNR,420
-+send,PNR,PNR,PNR,289,PNR,178,PNR,PNR,58,58,334,334,PNR,PNR,PNR,PNR,348
-+sendfile,187,40,40,187,71,207,39,39,122,122,186,186,71,71,187,187,187
-+sendfile64,239,PNR,PNR,239,PNR,237,PNR,219,209,209,226,PNR,PNR,PNR,223,PNR,239
-+sendmmsg,345,307,538,374,269,343,302,307,329,329,349,349,269,269,358,358,363
-+sendmsg,370,46,518,296,211,179,45,45,183,183,341,341,211,211,370,370,355
-+sendto,369,44,44,290,206,180,43,43,82,82,335,335,206,206,369,369,349
-+setdomainname,121,171,171,121,162,121,166,166,121,121,121,121,162,162,121,121,121
-+setfsgid,139,123,123,139,152,139,121,121,139,139,139,139,152,152,139,216,139
-+setfsgid32,216,PNR,PNR,216,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,216,PNR,216
-+setfsuid,138,122,122,138,151,138,120,120,138,138,138,138,151,151,138,215,138
-+setfsuid32,215,PNR,PNR,215,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,215,PNR,215
-+setgid,46,106,106,46,144,46,104,104,46,46,46,46,144,144,46,214,46
-+setgid32,214,PNR,PNR,214,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,214,PNR,214
-+setgroups,81,116,116,81,159,81,114,114,81,81,81,81,159,159,81,206,81
-+setgroups32,206,PNR,PNR,206,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,206,PNR,206
-+sethostname,74,170,170,74,161,74,165,165,74,74,74,74,161,161,74,74,74
-+setitimer,104,38,38,104,103,104,36,36,104,104,104,104,103,103,104,104,104
-+set_mempolicy,276,238,238,321,237,270,229,233,262,262,261,261,237,237,270,270,276
-+setns,346,308,308,375,268,344,303,308,328,328,350,350,268,268,339,339,364
-+setpgid,57,109,109,57,154,57,107,107,57,57,57,57,154,154,57,57,57
-+setpriority,97,141,141,97,140,97,138,138,97,97,97,97,140,140,97,97,97
-+setregid,71,114,114,71,143,71,112,112,71,71,71,71,143,143,71,204,71
-+setregid32,204,PNR,PNR,204,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,204,PNR,204
-+setresgid,170,119,119,170,149,190,117,117,170,170,169,169,149,149,170,210,170
-+setresgid32,210,PNR,PNR,210,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,210,PNR,210
-+setresuid,164,117,117,164,147,185,115,115,164,164,164,164,147,147,164,208,164
-+setresuid32,208,PNR,PNR,208,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,208,PNR,208
-+setreuid,70,113,113,70,145,70,111,111,70,70,70,70,145,145,70,203,70
-+setreuid32,203,PNR,PNR,203,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,203,PNR,203
-+setrlimit,75,160,160,75,164,75,155,155,75,75,75,75,164,164,75,75,75
-+set_robust_list,311,273,530,338,99,309,268,272,289,289,300,300,99,99,304,304,311
-+setsid,66,112,112,66,157,66,110,110,66,66,66,66,157,157,66,66,66
-+setsockopt,366,54,541,294,208,181,53,53,181,181,339,339,208,208,366,366,353
-+set_thread_area,243,205,PNR,PNR,PNR,283,242,246,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+set_tid_address,258,218,218,256,96,252,212,213,237,237,232,232,96,96,252,252,258
-+settimeofday,79,164,164,79,170,79,159,159,79,79,79,79,170,170,79,79,79
-+set_tls,PNR,PNR,PNR,983045,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+setuid,23,105,105,23,146,23,103,103,23,23,23,23,146,146,23,213,23
-+setuid32,213,PNR,PNR,213,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,213,PNR,213
-+setxattr,226,188,188,226,5,224,180,180,238,238,209,209,5,5,224,224,226
-+sgetmask,68,PNR,PNR,PNR,PNR,68,PNR,PNR,68,68,68,68,PNR,PNR,PNR,PNR,68
-+shmat,397,30,30,305,196,397,29,29,192,192,397,397,196,196,397,397,397
-+shmctl,396,31,31,308,195,396,30,30,195,195,396,396,195,195,396,396,396
-+shmdt,398,67,67,306,197,398,65,65,193,193,398,398,197,197,398,398,398
-+shmget,395,29,29,307,194,395,28,28,194,194,395,395,194,194,395,395,395
-+shutdown,373,48,48,293,210,182,47,47,117,117,338,338,210,210,373,373,352
-+sigaction,67,PNR,PNR,67,PNR,67,PNR,PNR,PNR,PNR,67,67,PNR,PNR,67,67,67
-+sigaltstack,186,131,525,186,132,206,129,129,166,166,185,185,132,132,186,186,186
-+signal,48,PNR,PNR,PNR,PNR,48,PNR,PNR,48,48,48,48,PNR,PNR,48,48,48
-+signalfd,321,282,282,349,PNR,317,276,280,302,302,305,305,PNR,PNR,316,316,321
-+signalfd4,327,289,289,355,74,324,283,287,309,309,313,313,74,74,322,322,327
-+sigpending,73,PNR,PNR,73,PNR,73,PNR,PNR,73,73,73,73,PNR,PNR,73,73,73
-+sigprocmask,126,PNR,PNR,126,PNR,126,PNR,PNR,126,126,126,126,PNR,PNR,126,126,126
-+sigreturn,119,PNR,PNR,119,PNR,119,PNR,PNR,PNR,PNR,119,119,PNR,PNR,119,119,119
-+sigsuspend,72,PNR,PNR,72,PNR,72,PNR,PNR,PNR,PNR,72,72,PNR,PNR,72,72,72
-+socket,359,41,41,281,198,183,40,40,17,17,326,326,198,198,359,359,340
-+socketcall,102,PNR,PNR,PNR,PNR,102,PNR,PNR,PNR,PNR,102,102,PNR,PNR,102,102,102
-+socketpair,360,53,53,288,199,184,52,52,56,56,333,333,199,199,360,360,347
-+splice,313,275,275,340,76,304,263,267,291,291,283,283,76,76,306,306,313
-+spu_create,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,279,279,PNR,PNR,PNR,PNR,PNR
-+spu_run,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,278,278,PNR,PNR,PNR,PNR,PNR
-+ssetmask,69,PNR,PNR,PNR,PNR,69,PNR,PNR,69,69,69,69,PNR,PNR,PNR,PNR,69
-+stat,106,4,4,106,PNR,106,4,4,18,18,106,106,PNR,PNR,106,106,106
-+stat64,195,PNR,PNR,195,PNR,213,PNR,PNR,101,101,195,PNR,PNR,PNR,195,PNR,195
-+statfs,99,137,137,99,43,99,134,134,99,99,99,99,43,43,99,99,99
-+statfs64,268,PNR,PNR,266,PNR,255,PNR,217,298,298,252,252,PNR,PNR,265,265,268
-+statx,383,332,332,397,291,366,326,330,349,349,383,383,291,291,379,379,383
-+stime,25,PNR,PNR,PNR,PNR,25,PNR,PNR,25,25,25,25,PNR,PNR,25,PNR,25
-+stty,31,PNR,PNR,PNR,PNR,31,PNR,PNR,PNR,PNR,31,31,PNR,PNR,PNR,PNR,PNR
-+subpage_prot,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,310,310,PNR,PNR,PNR,PNR,PNR
-+swapcontext,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,249,249,PNR,PNR,PNR,PNR,PNR
-+swapoff,115,168,168,115,225,115,163,163,115,115,115,115,225,225,115,115,115
-+swapon,87,167,167,87,224,87,162,162,87,87,87,87,224,224,87,87,87
-+switch_endian,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,363,363,PNR,PNR,PNR,PNR,PNR
-+symlink,83,88,88,83,PNR,83,86,86,83,83,83,83,PNR,PNR,83,83,83
-+symlinkat,304,266,266,331,36,297,256,260,284,284,295,295,36,36,297,297,304
-+sync,36,162,162,36,81,36,157,157,36,36,36,36,81,81,36,36,36
-+sync_file_range,314,277,277,PNR,84,305,264,268,292,292,PNR,PNR,84,84,307,307,314
-+sync_file_range2,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,308,308,PNR,PNR,PNR,PNR,PNR
-+syncfs,344,306,306,373,267,342,301,306,327,327,348,348,267,267,338,338,362
-+syscall,PNR,PNR,PNR,PNR,PNR,0,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+_sysctl,149,156,PNR,149,PNR,153,152,152,149,149,149,149,PNR,PNR,149,149,149
-+sys_debug_setcontext,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,256,256,PNR,PNR,PNR,PNR,PNR
-+sysfs,135,139,139,135,PNR,135,136,136,135,135,135,135,PNR,PNR,135,135,135
-+sysinfo,116,99,99,116,179,116,97,97,116,116,116,116,179,179,116,116,116
-+syslog,103,103,103,103,116,103,101,101,103,103,103,103,116,116,103,103,103
-+sysmips,PNR,PNR,PNR,PNR,PNR,149,199,199,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+tee,315,276,276,342,77,306,265,269,293,293,284,284,77,77,308,308,315
-+tgkill,270,234,234,268,131,266,225,229,259,259,250,250,131,131,241,241,270
-+time,13,201,201,PNR,PNR,13,PNR,PNR,13,13,13,13,PNR,PNR,13,PNR,13
-+timer_create,259,222,526,257,107,257,216,220,250,250,240,240,107,107,254,254,259
-+timer_delete,263,226,226,261,111,261,220,224,254,254,244,244,111,111,258,258,263
-+timerfd,PNR,PNR,PNR,PNR,PNR,318,277,281,PNR,PNR,PNR,PNR,PNR,PNR,317,317,PNR
-+timerfd_create,322,283,283,350,85,321,280,284,306,306,306,306,85,85,319,319,322
-+timerfd_gettime,326,287,287,354,87,322,281,285,308,308,312,312,87,87,321,321,326
-+timerfd_gettime64,410,PNR,PNR,410,PNR,410,PNR,410,410,PNR,410,PNR,PNR,PNR,410,PNR,410
-+timerfd_settime,325,286,286,353,86,323,282,286,307,307,311,311,86,86,320,320,325
-+timerfd_settime64,411,PNR,PNR,411,PNR,411,PNR,411,411,PNR,411,PNR,PNR,PNR,411,PNR,411
-+timer_getoverrun,262,225,225,260,109,260,219,223,253,253,243,243,109,109,257,257,262
-+timer_gettime,261,224,224,259,108,259,218,222,252,252,242,242,108,108,256,256,261
-+timer_gettime64,408,PNR,PNR,408,PNR,408,PNR,408,408,PNR,408,PNR,PNR,PNR,408,PNR,408
-+timer_settime,260,223,223,258,110,258,217,221,251,251,241,241,110,110,255,255,260
-+timer_settime64,409,PNR,PNR,409,PNR,409,PNR,409,409,PNR,409,PNR,PNR,PNR,409,PNR,409
-+times,43,100,100,43,153,43,98,98,43,43,43,43,153,153,43,43,43
-+tkill,238,200,200,238,130,236,192,192,208,208,208,208,130,130,237,237,238
-+truncate,92,76,76,92,45,92,74,74,92,92,92,92,45,45,92,92,92
-+truncate64,193,PNR,PNR,193,PNR,211,PNR,PNR,199,199,193,PNR,PNR,PNR,193,PNR,193
-+tuxcall,PNR,184,184,PNR,PNR,PNR,PNR,PNR,PNR,PNR,225,225,PNR,PNR,PNR,PNR,PNR
-+ugetrlimit,191,PNR,PNR,191,PNR,PNR,PNR,PNR,PNR,PNR,190,190,PNR,PNR,191,PNR,191
-+ulimit,58,PNR,PNR,PNR,PNR,58,PNR,PNR,PNR,PNR,58,58,PNR,PNR,PNR,PNR,PNR
-+umask,60,95,95,60,166,60,93,93,60,60,60,60,166,166,60,60,60
-+umount,22,PNR,PNR,PNR,PNR,22,PNR,PNR,PNR,PNR,22,22,PNR,PNR,22,22,22
-+umount2,52,166,166,52,39,52,161,161,52,52,52,52,39,39,52,52,52
-+uname,122,63,63,122,160,122,61,61,59,59,122,122,160,160,122,122,122
-+unlink,10,87,87,10,PNR,10,85,85,10,10,10,10,PNR,PNR,10,10,10
-+unlinkat,301,263,263,328,35,294,253,257,281,281,292,292,35,35,294,294,301
-+unshare,310,272,272,337,97,303,262,266,288,288,282,282,97,97,303,303,310
-+uselib,86,134,PNR,86,PNR,86,PNR,PNR,86,86,86,86,PNR,PNR,86,86,86
-+userfaultfd,374,323,323,388,282,357,317,321,344,344,364,364,282,282,355,355,377
-+usr26,PNR,PNR,PNR,983043,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+usr32,PNR,PNR,PNR,983044,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+ustat,62,136,136,62,PNR,62,133,133,62,62,62,62,PNR,PNR,62,62,62
-+utime,30,132,132,PNR,PNR,30,130,130,30,30,30,30,PNR,PNR,30,30,30
-+utimensat,320,280,280,348,88,316,275,279,301,301,304,304,88,88,315,315,320
-+utimensat_time64,412,PNR,PNR,412,PNR,412,PNR,412,412,PNR,412,PNR,PNR,PNR,412,PNR,412
-+utimes,271,235,235,269,PNR,267,226,230,336,336,251,251,PNR,PNR,313,313,271
-+vfork,190,58,58,190,PNR,PNR,PNR,PNR,113,113,189,189,PNR,PNR,190,190,190
-+vhangup,111,153,153,111,58,111,150,150,111,111,111,111,58,58,111,111,111
-+vm86,166,PNR,PNR,PNR,PNR,113,PNR,PNR,PNR,PNR,113,113,PNR,PNR,PNR,PNR,PNR
-+vm86old,113,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+vmsplice,316,278,532,343,75,307,266,270,294,294,285,285,75,75,309,309,316
-+vserver,273,236,PNR,313,PNR,277,236,240,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR
-+wait4,114,61,61,114,260,114,59,59,114,114,114,114,260,260,114,114,114
-+waitid,284,247,529,280,95,278,237,241,235,235,272,272,95,95,281,281,284
-+waitpid,7,PNR,PNR,PNR,PNR,7,PNR,PNR,7,7,7,7,PNR,PNR,PNR,PNR,7
-+write,4,1,1,4,64,4,1,1,4,4,4,4,64,64,4,4,4
-+writev,146,20,516,146,66,146,19,19,146,146,146,146,66,66,146,146,146
--- 
-2.33.0
-
diff --git a/poky/meta/recipes-support/libseccomp/files/0004-syscalls-Add-quotactl_path.patch b/poky/meta/recipes-support/libseccomp/files/0004-syscalls-Add-quotactl_path.patch
deleted file mode 100644
index bedf748..0000000
--- a/poky/meta/recipes-support/libseccomp/files/0004-syscalls-Add-quotactl_path.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From d59e03b5a82b3e0debc3a3c77270bd160f4309f9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 8 Jun 2021 20:42:19 -0700
-Subject: [PATCH 4/4] syscalls: Add quotactl_path
-
-Upstream-Status: Submitted [https://github.com/seccomp/libseccomp/pull/327]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- include/seccomp-syscalls.h | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/include/seccomp-syscalls.h b/include/seccomp-syscalls.h
-index 4ff814c..dd347d3 100644
---- a/include/seccomp-syscalls.h
-+++ b/include/seccomp-syscalls.h
-@@ -284,6 +284,7 @@
- #define __PNR_clock_nanosleep			-10250
- #define __PNR_gettimeofday			-10251
- #define __PNR_fcntl				-10252
-+#define __PNR_quotactl_path			-10253
- 
- /*
-  * libseccomp syscall definitions
-@@ -1557,6 +1558,12 @@
- #define __SNR_riscv_flush_icache	__PNR_riscv_flush_icache
- #endif
- 
-+#ifdef __NR_quotactl_path
-+#define __SNR_quotactl_path       __NR_quotactl_path
-+#else
-+#define __SNR_quotactl_path       __PNR_quotactl_path
-+#endif
-+
- #ifdef __NR_rmdir
- #define __SNR_rmdir			__NR_rmdir
- #else
--- 
-2.33.0
-
diff --git a/poky/meta/recipes-support/libseccomp/libseccomp_2.5.2.bb b/poky/meta/recipes-support/libseccomp/libseccomp_2.5.2.bb
deleted file mode 100644
index 3ec6f13..0000000
--- a/poky/meta/recipes-support/libseccomp/libseccomp_2.5.2.bb
+++ /dev/null
@@ -1,58 +0,0 @@
-SUMMARY = "interface to seccomp filtering mechanism"
-DESCRIPTION = "The libseccomp library provides and easy to use, platform independent,interface to the Linux Kernel's syscall filtering mechanism: seccomp."
-HOMEPAGE = "https://github.com/seccomp/libseccomp"
-SECTION = "security"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;beginline=0;endline=1;md5=8eac08d22113880357ceb8e7c37f989f"
-
-DEPENDS += "gperf-native"
-
-PV .= "+git${SRCPV}"
-SRCREV = "2457dec1a90101d720e89e8027376742e2f3c327"
-
-SRC_URI = "git://github.com/seccomp/libseccomp.git;branch=main \
-           file://0001-configure.ac-Bump-version-to-2.5.99.patch \
-           file://0001-arch-Add-riscv32-architecture-support.patch \
-           file://0002-man-Add-RISCV64-to-arch-list.patch \
-           file://0003-syscalls-update-the-syscall-defs-for-Linux-v5.15.0-r.patch \
-           file://0004-syscalls-Add-quotactl_path.patch \
-           file://run-ptest \
-           "
-
-S = "${WORKDIR}/git"
-
-inherit autotools-brokensep pkgconfig ptest features_check
-
-REQUIRED_DISTRO_FEATURES = "seccomp"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[python] = "--enable-python, --disable-python, python3"
-
-DISABLE_STATIC = ""
-
-do_compile_ptest() {
-    oe_runmake -C tests check-build
-}
-
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
-    install -d ${D}${PTEST_PATH}/tools
-    for file in $(find tests/* -executable -type f); do
-        install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tests
-    done
-    for file in $(find tests/*.tests -type f); do
-        install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tests
-    done
-    for file in $(find tools/* -executable -type f); do
-        install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tools
-    done
-    # Overwrite libtool wrappers with real executables
-    for file in $(find tools/.libs/* -executable -type f); do
-        install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tools
-    done
-}
-
-FILES:${PN} = "${bindir} ${libdir}/${BPN}.so*"
-FILES:${PN}-dbg += "${libdir}/${PN}/tests/.debug/* ${libdir}/${PN}/tools/.debug"
-
-RDEPENDS:${PN}-ptest = "coreutils bash"
diff --git a/poky/meta/recipes-support/libseccomp/libseccomp_2.5.3.bb b/poky/meta/recipes-support/libseccomp/libseccomp_2.5.3.bb
new file mode 100644
index 0000000..e2a5e4d
--- /dev/null
+++ b/poky/meta/recipes-support/libseccomp/libseccomp_2.5.3.bb
@@ -0,0 +1,54 @@
+SUMMARY = "interface to seccomp filtering mechanism"
+DESCRIPTION = "The libseccomp library provides and easy to use, platform independent,interface to the Linux Kernel's syscall filtering mechanism: seccomp."
+HOMEPAGE = "https://github.com/seccomp/libseccomp"
+SECTION = "security"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;beginline=0;endline=1;md5=8eac08d22113880357ceb8e7c37f989f"
+
+DEPENDS += "gperf-native"
+
+SRCREV = "57357d2741a3b3d3e8425889a6b79a130e0fa2f3"
+
+SRC_URI = "git://github.com/seccomp/libseccomp.git;branch=release-2.5;protocol=https \
+           file://run-ptest \
+           "
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep pkgconfig ptest features_check
+
+REQUIRED_DISTRO_FEATURES = "seccomp"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[python] = "--enable-python, --disable-python, python3"
+
+DISABLE_STATIC = ""
+
+do_compile_ptest() {
+    oe_runmake -C tests check-build
+}
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests
+    install -d ${D}${PTEST_PATH}/tools
+    for file in $(find tests/* -executable -type f); do
+        install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tests
+    done
+    for file in $(find tests/*.tests -type f); do
+        install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tests
+    done
+    for file in $(find tools/* -executable -type f); do
+        install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tools
+    done
+    # Overwrite libtool wrappers with real executables
+    for file in $(find tools/.libs/* -executable -type f); do
+        install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tools
+    done
+}
+
+FILES:${PN} = "${bindir} ${libdir}/${BPN}.so*"
+FILES:${PN}-dbg += "${libdir}/${PN}/tests/.debug/* ${libdir}/${PN}/tools/.debug"
+
+RDEPENDS:${PN}-ptest = "coreutils bash"
+
+PV = "2.5.3"
diff --git a/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.0.bb b/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.0.bb
deleted file mode 100644
index ea34373..0000000
--- a/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.0.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "An HTTP library implementation in C"
-DESCRIPTION = "libsoup is an HTTP client/server library for GNOME. It uses GObjects \
-and the glib main loop, to integrate well with GNOME applications."
-HOMEPAGE = "https://wiki.gnome.org/Projects/libsoup"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-SECTION = "x11/gnome/libs"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 libpsl"
-
-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] = "33b1d4e0d639456c675c227877e94a8078d731233e2d57689c11abcef7d3c48e"
-
-CVE_PRODUCT = "libsoup"
-
-S = "${WORKDIR}/libsoup-${PV}"
-
-inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gtk-doc
-
-UPSTREAM_CHECK_REGEX = "libsoup-(?P<pver>2(\.(?!99)\d+)+)\.tar"
-
-GIR_MESON_ENABLE_FLAG = 'enabled'
-GIR_MESON_DISABLE_FLAG = 'disabled'
-
-# libsoup-gnome is entirely deprecated and just stubs in 2.42 onwards. Disable by default.
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gnome] = "-Dgnome=true,-Dgnome=false"
-PACKAGECONFIG[gssapi] = "-Dgssapi=enabled,-Dgssapi=disabled,krb5"
-
-EXTRA_OEMESON:append = " -Dvapi=disabled -Dtls_check=false"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-# When built without gnome support, libsoup-2.4 will contain only one shared lib
-# and will therefore become subject to renaming by debian.bbclass. Prevent
-# renaming in order to keep the package name consistent regardless of whether
-# gnome support is enabled or disabled.
-DEBIAN_NOAUTONAME:${PN} = "1"
-
-# glib-networking is needed for SSL, proxies, etc.
-RRECOMMENDS:${PN} = "glib-networking"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.2.bb b/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.2.bb
new file mode 100644
index 0000000..9b3a57d
--- /dev/null
+++ b/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.2.bb
@@ -0,0 +1,46 @@
+SUMMARY = "An HTTP library implementation in C"
+DESCRIPTION = "libsoup is an HTTP client/server library for GNOME. It uses GObjects \
+and the glib main loop, to integrate well with GNOME applications."
+HOMEPAGE = "https://wiki.gnome.org/Projects/libsoup"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+SECTION = "x11/gnome/libs"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 libpsl"
+
+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] = "f0a427656e5fe19e1df71c107e88dfa1b2e673c25c547b7823b6018b40d01159"
+
+CVE_PRODUCT = "libsoup"
+
+S = "${WORKDIR}/libsoup-${PV}"
+
+inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gtk-doc
+
+UPSTREAM_CHECK_REGEX = "libsoup-(?P<pver>2(\.(?!99)\d+)+)\.tar"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
+# libsoup-gnome is entirely deprecated and just stubs in 2.42 onwards. Disable by default.
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gnome] = "-Dgnome=true,-Dgnome=false"
+PACKAGECONFIG[gssapi] = "-Dgssapi=enabled,-Dgssapi=disabled,krb5"
+
+EXTRA_OEMESON:append = " -Dvapi=disabled -Dtls_check=false"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+# When built without gnome support, libsoup-2.4 will contain only one shared lib
+# and will therefore become subject to renaming by debian.bbclass. Prevent
+# renaming in order to keep the package name consistent regardless of whether
+# gnome support is enabled or disabled.
+DEBIAN_NOAUTONAME:${PN} = "1"
+
+# glib-networking is needed for SSL, proxies, etc.
+RRECOMMENDS:${PN} = "glib-networking"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libsoup/libsoup_3.0.1.bb b/poky/meta/recipes-support/libsoup/libsoup_3.0.1.bb
deleted file mode 100644
index 1e4d3b2..0000000
--- a/poky/meta/recipes-support/libsoup/libsoup_3.0.1.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "An HTTP library implementation in C"
-DESCRIPTION = "libsoup is an HTTP client/server library for GNOME. It uses GObjects \
-and the glib main loop, to integrate well with GNOME applications."
-HOMEPAGE = "https://wiki.gnome.org/Projects/libsoup"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-SECTION = "x11/gnome/libs"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 libpsl nghttp2"
-
-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] = "6f0c316d10f8458b96f564c7644be3c2011bd75ad5054c8db26afb0c9a91bc47"
-
-PROVIDES = "libsoup-3.0"
-CVE_PRODUCT = "libsoup"
-
-S = "${WORKDIR}/libsoup-${PV}"
-
-inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gtk-doc
-
-GIR_MESON_ENABLE_FLAG = 'enabled'
-GIR_MESON_DISABLE_FLAG = 'disabled'
-
-# libsoup-gnome is entirely deprecated and just stubs in 2.42 onwards. Disable by default.
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gssapi] = "-Dgssapi=enabled,-Dgssapi=disabled,krb5"
-
-EXTRA_OEMESON:append = " -Dvapi=disabled -Dtls_check=false"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-# When built without gnome support, libsoup will contain only one shared lib
-# and will therefore become subject to renaming by debian.bbclass. Prevent
-# renaming in order to keep the package name consistent regardless of whether
-# gnome support is enabled or disabled.
-DEBIAN_NOAUTONAME:${PN} = "1"
-
-# glib-networking is needed for SSL, proxies, etc.
-RRECOMMENDS:${PN} = "glib-networking"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libsoup/libsoup_3.0.4.bb b/poky/meta/recipes-support/libsoup/libsoup_3.0.4.bb
new file mode 100644
index 0000000..ad35e0c
--- /dev/null
+++ b/poky/meta/recipes-support/libsoup/libsoup_3.0.4.bb
@@ -0,0 +1,44 @@
+SUMMARY = "An HTTP library implementation in C"
+DESCRIPTION = "libsoup is an HTTP client/server library for GNOME. It uses GObjects \
+and the glib main loop, to integrate well with GNOME applications."
+HOMEPAGE = "https://wiki.gnome.org/Projects/libsoup"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+SECTION = "x11/gnome/libs"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 libpsl nghttp2"
+
+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] = "5bd38b5e091f707fd7fa3ed7c37aacca3f8e16c65787f1cc17dc38d1dcde567b"
+
+PROVIDES = "libsoup-3.0"
+CVE_PRODUCT = "libsoup"
+
+S = "${WORKDIR}/libsoup-${PV}"
+
+inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gtk-doc
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
+# libsoup-gnome is entirely deprecated and just stubs in 2.42 onwards. Disable by default.
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gssapi] = "-Dgssapi=enabled,-Dgssapi=disabled,krb5"
+
+EXTRA_OEMESON:append = " -Dvapi=disabled -Dtls_check=false"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+# When built without gnome support, libsoup will contain only one shared lib
+# and will therefore become subject to renaming by debian.bbclass. Prevent
+# renaming in order to keep the package name consistent regardless of whether
+# gnome support is enabled or disabled.
+DEBIAN_NOAUTONAME:${PN} = "1"
+
+# glib-networking is needed for SSL, proxies, etc.
+RRECOMMENDS:${PN} = "glib-networking"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libunistring/libunistring/0001-Unset-need_charset_alias-when-building-for-musl.patch b/poky/meta/recipes-support/libunistring/libunistring/0001-Unset-need_charset_alias-when-building-for-musl.patch
deleted file mode 100644
index 2aeacb8..0000000
--- a/poky/meta/recipes-support/libunistring/libunistring/0001-Unset-need_charset_alias-when-building-for-musl.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From b9565dc2fe0c4f7daaec91b7e83bc7313dee2f4a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 13 Apr 2015 17:02:13 -0700
-Subject: [PATCH] Unset need_charset_alias when building for musl
-
-localcharset uses ac_cv_gnu_library_2_1 from glibc21.m4
-which actually shoudl be fixed in gnulib and then all downstream
-projects will get it eventually. For now we apply the fix to
-coreutils
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/gnulib.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: libunistring-0.9.4/lib/Makefile.gnulib
-===================================================================
---- libunistring-0.9.4.orig/lib/Makefile.gnulib
-+++ libunistring-0.9.4/lib/Makefile.gnulib
-@@ -380,7 +380,7 @@ install-exec-localcharset: all-local
- 	  case '$(host_os)' in \
- 	    darwin[56]*) \
- 	      need_charset_alias=true ;; \
--	    darwin* | cygwin* | mingw* | pw32* | cegcc*) \
-+	    darwin* | cygwin* | mingw* | pw32* | cegcc* | linux-musl*) \
- 	      need_charset_alias=false ;; \
- 	    *) \
- 	      need_charset_alias=true ;; \
diff --git a/poky/meta/recipes-support/libunistring/libunistring_0.9.10.bb b/poky/meta/recipes-support/libunistring/libunistring_0.9.10.bb
deleted file mode 100644
index 0a7b18e..0000000
--- a/poky/meta/recipes-support/libunistring/libunistring_0.9.10.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Library for manipulating C and Unicode strings"
-
-DESCRIPTION = "Text files are nowadays usually encoded in Unicode, and may\
- consist of very different scripts from Latin letters to Chinese Hanzi\
- with many kinds of special characters accents, right-to-left writing\
- marks, hyphens, Roman numbers, and much more. But the POSIX platform\
- APIs for text do not contain adequate functions for dealing with\
- particular properties of many Unicode characters. In fact, the POSIX\
- APIs for text have several assumptions at their base which don't hold\
- for Unicode text.  This library provides functions for manipulating\
- Unicode strings and for manipulating C strings according to the Unicode\
- standard.  This package contains documentation."
-
-HOMEPAGE = "http://www.gnu.org/software/libunistring/"
-SECTION = "devel"
-LICENSE = "LGPLv3+ | GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
-                    file://README;beginline=45;endline=65;md5=08287d16ba8d839faed8d2dc14d7d6a5 \
-                    file://doc/libunistring.texi;md5=287fa6075f78a3c85c1a52b0a92547cd \
-                   "
-
-SRC_URI = "${GNU_MIRROR}/libunistring/libunistring-${PV}.tar.gz \
-           file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
-"
-SRC_URI[md5sum] = "0d3274e9838396b12200f8b54ddaf43b"
-SRC_URI[sha256sum] = "a82e5b333339a88ea4608e4635479a1cfb2e01aafb925e1290b65710d43f610b"
-
-inherit autotools texinfo
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libunistring/libunistring_1.0.bb b/poky/meta/recipes-support/libunistring/libunistring_1.0.bb
new file mode 100644
index 0000000..31c84cb
--- /dev/null
+++ b/poky/meta/recipes-support/libunistring/libunistring_1.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Library for manipulating C and Unicode strings"
+
+DESCRIPTION = "Text files are nowadays usually encoded in Unicode, and may\
+ consist of very different scripts from Latin letters to Chinese Hanzi\
+ with many kinds of special characters accents, right-to-left writing\
+ marks, hyphens, Roman numbers, and much more. But the POSIX platform\
+ APIs for text do not contain adequate functions for dealing with\
+ particular properties of many Unicode characters. In fact, the POSIX\
+ APIs for text have several assumptions at their base which don't hold\
+ for Unicode text.  This library provides functions for manipulating\
+ Unicode strings and for manipulating C strings according to the Unicode\
+ standard.  This package contains documentation."
+
+HOMEPAGE = "http://www.gnu.org/software/libunistring/"
+SECTION = "devel"
+LICENSE = "LGPLv3+ | GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
+                    file://README;beginline=45;endline=65;md5=3a896a943b4da2c551e6be1af27eff8d \
+                    file://doc/libunistring.texi;md5=266e4297d7c18f197be3d9622ba99685 \
+                   "
+DEPENDS = "gperf-native"
+
+SRC_URI = "${GNU_MIRROR}/libunistring/libunistring-${PV}.tar.gz"
+SRC_URI[sha256sum] = "3c0184c0e492d7c208ce31d25dd1d2c58f0c3ed6cbbe032c5b248cddad318544"
+
+inherit autotools texinfo
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libunwind/libunwind/0001-Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch b/poky/meta/recipes-support/libunwind/libunwind/0001-Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch
deleted file mode 100644
index 437b878..0000000
--- a/poky/meta/recipes-support/libunwind/libunwind/0001-Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 599f10ac3a24e419a93f97fddbe14de01b1185ea Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Tue, 13 May 2014 23:32:27 +0200
-Subject: [PATCH 1/6] Add AO_REQUIRE_CAS to fix build on ARM < v6
-
-ARM earlier than ARMv6, such as ARMv4 and ARMv5 do not provide
-optimize atomic operations in libatomic_ops. Since libunwind is using
-such operations, it should define AO_REQUIRE_CAS before including
-<atomic_ops.h> so that libatomic_ops knows it should use emulated
-atomic operations instead (even though they are obviously a lot more
-expensive).
-
-Also, while real atomic operations are all inline functions and
-therefore linking against libatomic_ops was not required, the emulated
-atomic operations actually require linking against libatomic_ops, so
-the commented AC_CHECK_LIB test in acinclude.m4 is uncommented to make
-sure we link against libatomic_ops.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
-Upstream-Status: Pending
-Taken from:
-https://raw.githubusercontent.com/rdnetto/teapot-buildroot/master/package/libunwind/libunwind-02-Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch
-
----
- acinclude.m4          | 8 +-------
- include/libunwind_i.h | 1 +
- 2 files changed, 2 insertions(+), 7 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index 497f7c2..9c15af1 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -22,11 +22,5 @@ fi])
- AC_DEFUN([CHECK_ATOMIC_OPS],
- [dnl Check whether the system has the atomic_ops package installed.
-   AC_CHECK_HEADERS(atomic_ops.h)
--#
--# Don't link against libatomic_ops for now.  We don't want libunwind
--# to depend on libatomic_ops.so.  Fortunately, none of the platforms
--# we care about so far need libatomic_ops.a (everything is done via
--# inline macros).
--#
--#  AC_CHECK_LIB(atomic_ops, main)
-+  AC_CHECK_LIB(atomic_ops, main)
- ])
-diff --git a/include/libunwind_i.h b/include/libunwind_i.h
-index 36cf7a1..33b4ca3 100644
---- a/include/libunwind_i.h
-+++ b/include/libunwind_i.h
-@@ -124,6 +124,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
-         (pthread_mutex_unlock != NULL ? pthread_mutex_unlock (l) : 0)
- 
- #ifdef HAVE_ATOMIC_OPS_H
-+# define AO_REQUIRE_CAS
- # include <atomic_ops.h>
- static inline int
- cmpxchg_ptr (void *addr, void *old, void *new)
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-support/libunwind/libunwind/0001-configure-Do-not-enforce-libdir-for-ppc64.patch b/poky/meta/recipes-support/libunwind/libunwind/0001-configure-Do-not-enforce-libdir-for-ppc64.patch
deleted file mode 100644
index 751f1b3..0000000
--- a/poky/meta/recipes-support/libunwind/libunwind/0001-configure-Do-not-enforce-libdir-for-ppc64.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 154c7465de2aeb9a8ba3416bbed6e6e07f58c583 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 11 Mar 2021 21:52:28 -0800
-Subject: [PATCH] configure: Do not enforce libdir for ppc64
-
-OE has its own multilib configuration, therefore hardcoding libdir
-breaks that, instead respect the settings coming from build environment
-via configure options.
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 6 ------
- 1 file changed, 6 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index c8d68f7..254440f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -206,12 +206,6 @@ fi
- AM_CONDITIONAL(USE_DWARF, [test x$use_dwarf = xyes])
- AC_MSG_RESULT([$use_dwarf])
- 
--if test x$target_arch = xppc64; then
--        libdir='${exec_prefix}/lib64'
--        AC_MSG_NOTICE([PowerPC64 detected, lib will be installed ${libdir}]);
--        AC_SUBST([libdir])
--fi
--
- AC_MSG_CHECKING([whether to restrict build to remote support])
- if test x$target_arch != x$host_arch; then
-   CPPFLAGS="${CPPFLAGS} -DUNW_REMOTE_ONLY"
--- 
-2.30.2
-
diff --git a/poky/meta/recipes-support/libunwind/libunwind/0003-x86-Stub-out-x86_local_resume.patch b/poky/meta/recipes-support/libunwind/libunwind/0003-x86-Stub-out-x86_local_resume.patch
index 508ed6a..f02f13f 100644
--- a/poky/meta/recipes-support/libunwind/libunwind/0003-x86-Stub-out-x86_local_resume.patch
+++ b/poky/meta/recipes-support/libunwind/libunwind/0003-x86-Stub-out-x86_local_resume.patch
@@ -1,7 +1,7 @@
-From f6866b9e4a6341c50eb1d923dbf48eca2ca40140 Mon Sep 17 00:00:00 2001
+From 0b2243f19d4ea12a2a68478a5aed503947a800af Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 22 Mar 2016 16:19:29 +0000
-Subject: [PATCH 3/6] x86: Stub out x86_local_resume()
+Subject: [PATCH] x86: Stub out x86_local_resume()
 
 its purpose seems
 to be unwinding across signal handler boundaries, which cannot happen
@@ -13,14 +13,14 @@
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 
 ---
- src/x86/Gos-linux.c | 22 +---------------------
- 1 file changed, 1 insertion(+), 21 deletions(-)
+ src/x86/Gos-linux.c | 26 +-------------------------
+ 1 file changed, 1 insertion(+), 25 deletions(-)
 
 diff --git a/src/x86/Gos-linux.c b/src/x86/Gos-linux.c
-index fb9a5e3..c25ae0c 100644
+index d448dce..c25ae0c 100644
 --- a/src/x86/Gos-linux.c
 +++ b/src/x86/Gos-linux.c
-@@ -284,27 +284,7 @@ x86_r_uc_addr (ucontext_t *uc, int reg)
+@@ -284,31 +284,7 @@ x86_r_uc_addr (ucontext_t *uc, int reg)
  HIDDEN int
  x86_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg)
  {
@@ -38,17 +38,18 @@
 -      struct sigcontext *sc = (struct sigcontext *) c->sigcontext_addr;
 -
 -      Debug (8, "resuming at ip=%x via sigreturn(%p)\n", c->dwarf.ip, sc);
+-#if !defined(__ANDROID__)
 -      x86_sigreturn (sc);
+-#endif
 -    }
 -  else
 -    {
 -      Debug (8, "resuming at ip=%x via setcontext()\n", c->dwarf.ip);
+-#if !defined(__ANDROID__)
 -      setcontext (uc);
+-#endif
 -    }
 +  *(volatile char *)0=0;
    return -UNW_EINVAL;
  }
  
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-support/libunwind/libunwind/0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch b/poky/meta/recipes-support/libunwind/libunwind/0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch
index edaa822..e58a71b 100644
--- a/poky/meta/recipes-support/libunwind/libunwind/0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch
+++ b/poky/meta/recipes-support/libunwind/libunwind/0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch
@@ -1,7 +1,8 @@
-From 02919d74b1599979884f9cee466ed392d9fc4819 Mon Sep 17 00:00:00 2001
+From 24c751f9d21e892a9833e1b70a696b07872b0f7f Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 9 Jul 2016 01:07:53 +0000
-Subject: [PATCH 5/6] ppc32: Consider ucontext mismatches between glibc and
+Subject: [PATCH] ppc32: Consider ucontext mismatches between glibc and
+
  musl
 
 This helps in porting libunwind onto musl based systems
@@ -29,7 +30,7 @@
  3 files changed, 92 insertions(+), 79 deletions(-)
 
 diff --git a/src/ppc32/Ginit.c b/src/ppc32/Ginit.c
-index ba30244..c5312d9 100644
+index 7b45455..f8d6886 100644
 --- a/src/ppc32/Ginit.c
 +++ b/src/ppc32/Ginit.c
 @@ -48,12 +48,12 @@ uc_addr (ucontext_t *uc, int reg)
@@ -227,7 +228,7 @@
  
  #endif
 diff --git a/src/ptrace/_UPT_reg_offset.c b/src/ptrace/_UPT_reg_offset.c
-index c82d1c9..6c31baa 100644
+index b7dd3b7..bfaf756 100644
 --- a/src/ptrace/_UPT_reg_offset.c
 +++ b/src/ptrace/_UPT_reg_offset.c
 @@ -27,6 +27,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
@@ -242,8 +243,5 @@
 +# undef pt_regs
 +#endif
  
- #ifdef HAVE_ASM_PTRACE_OFFSETS_H
- # include <asm/ptrace_offsets.h>
--- 
-2.20.1
-
+ #ifdef HAVE_ASM_PTRACE_H
+ # include <asm/ptrace.h>
diff --git a/poky/meta/recipes-support/libunwind/libunwind/0006-Fix-for-X32.patch b/poky/meta/recipes-support/libunwind/libunwind/0006-Fix-for-X32.patch
index 37ae812..9941612 100644
--- a/poky/meta/recipes-support/libunwind/libunwind/0006-Fix-for-X32.patch
+++ b/poky/meta/recipes-support/libunwind/libunwind/0006-Fix-for-X32.patch
@@ -1,7 +1,7 @@
-From 7a4fd5933cc795df85cdd85168fe54fbaec4dcec Mon Sep 17 00:00:00 2001
+From f2eae0af620925b3686410470fc6fbc66ec1dc52 Mon Sep 17 00:00:00 2001
 From: Christopher Larson <chris_larson@mentor.com>
 Date: Tue, 13 Dec 2016 09:50:34 -0700
-Subject: [PATCH 6/6] Fix for X32
+Subject: [PATCH] Fix for X32
 
 Apply patch to fix the X32 build from https://github.com/sjnewbury/x32.
 
@@ -13,10 +13,10 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/src/x86_64/Gos-linux.c b/src/x86_64/Gos-linux.c
-index bd14234..be1cb5b 100644
+index b489329..0550005 100644
 --- a/src/x86_64/Gos-linux.c
 +++ b/src/x86_64/Gos-linux.c
-@@ -145,8 +145,8 @@ x86_64_sigreturn (unw_cursor_t *cursor)
+@@ -146,8 +146,8 @@ x86_64_sigreturn (unw_cursor_t *cursor)
  
    Debug (8, "resuming at ip=%llx via sigreturn(%p)\n",
               (unsigned long long) c->dwarf.ip, sc);
@@ -25,8 +25,5 @@
 +  __asm__ __volatile__ ("mov %q0, %%rsp;"
 +                        "mov %q1, %%rax;"
                          "syscall"
-                         :: "r"(sc), "i"(SYS_rt_sigreturn)
+                         :: "r"((uint64_t)sc), "i"(SYS_rt_sigreturn)
                          : "memory");
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-support/libunwind/libunwind/musl-header-conflict.patch b/poky/meta/recipes-support/libunwind/libunwind/musl-header-conflict.patch
index 63b78a8..49985b5 100644
--- a/poky/meta/recipes-support/libunwind/libunwind/musl-header-conflict.patch
+++ b/poky/meta/recipes-support/libunwind/libunwind/musl-header-conflict.patch
@@ -1,4 +1,4 @@
-From 49b21f0fe5fb93b30b94cc449429fd33de0652a7 Mon Sep 17 00:00:00 2001
+From e1de5a5b42062dc02769f320c7785928b2ee0c57 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Thu, 18 Aug 2016 14:46:32 +0100
 Subject: [PATCH] If you:
@@ -28,7 +28,7 @@
  1 file changed, 4 insertions(+)
 
 diff --git a/include/unwind.h b/include/unwind.h
-index 7cf128d..31c2871 100644
+index 93780fa..c812414 100644
 --- a/include/unwind.h
 +++ b/include/unwind.h
 @@ -23,6 +23,10 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
diff --git a/poky/meta/recipes-support/libunwind/libunwind_1.5.0.bb b/poky/meta/recipes-support/libunwind/libunwind_1.5.0.bb
deleted file mode 100644
index 9b515b5..0000000
--- a/poky/meta/recipes-support/libunwind/libunwind_1.5.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-require libunwind.inc
-
-SRC_URI = "http://download.savannah.nongnu.org/releases/libunwind/libunwind-${PV}.tar.gz \
-           file://0001-Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch \
-           file://0003-x86-Stub-out-x86_local_resume.patch \
-           file://0004-Fix-build-on-mips-musl.patch \
-           file://0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch \
-           file://0006-Fix-for-X32.patch \
-           file://0001-configure-Do-not-enforce-libdir-for-ppc64.patch \
-           "
-SRC_URI:append:libc-musl = " file://musl-header-conflict.patch"
-
-SRC_URI[md5sum] = "c6923dda0675f6a4ef21426164dc8b6a"
-SRC_URI[sha256sum] = "90337653d92d4a13de590781371c604f9031cdb50520366aa1e3a91e1efb1017"
-
-EXTRA_OECONF:append:libc-musl = " --disable-documentation --disable-tests --enable-static"
-
-# http://errors.yoctoproject.org/Errors/Details/20487/
-ARM_INSTRUCTION_SET:armv4 = "arm"
-ARM_INSTRUCTION_SET:armv5 = "arm"
-
-COMPATIBLE_HOST:riscv64 = "null"
-COMPATIBLE_HOST:riscv32 = "null"
-
-LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
-
-SECURITY_LDFLAGS:append:libc-musl = " -lssp_nonshared"
-CACHED_CONFIGUREVARS:append:libc-musl = " LDFLAGS='${LDFLAGS} -lucontext'"
diff --git a/poky/meta/recipes-support/libunwind/libunwind_1.6.2.bb b/poky/meta/recipes-support/libunwind/libunwind_1.6.2.bb
new file mode 100644
index 0000000..716be9a
--- /dev/null
+++ b/poky/meta/recipes-support/libunwind/libunwind_1.6.2.bb
@@ -0,0 +1,24 @@
+require libunwind.inc
+
+SRC_URI = "http://download.savannah.nongnu.org/releases/libunwind/libunwind-${PV}.tar.gz \
+           file://0003-x86-Stub-out-x86_local_resume.patch \
+           file://0004-Fix-build-on-mips-musl.patch \
+           file://0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch \
+           file://0006-Fix-for-X32.patch \
+           "
+SRC_URI:append:libc-musl = " file://musl-header-conflict.patch"
+
+SRC_URI[sha256sum] = "4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976"
+
+EXTRA_OECONF:append:libc-musl = " --disable-documentation --disable-tests --enable-static"
+
+# http://errors.yoctoproject.org/Errors/Details/20487/
+ARM_INSTRUCTION_SET:armv4 = "arm"
+ARM_INSTRUCTION_SET:armv5 = "arm"
+
+COMPATIBLE_HOST:riscv32 = "null"
+
+LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
+SECURITY_LDFLAGS:append:libc-musl = " -lssp_nonshared"
+CACHED_CONFIGUREVARS:append:libc-musl = " LDFLAGS='${LDFLAGS} -lucontext'"
diff --git a/poky/meta/recipes-support/liburcu/liburcu_0.13.0.bb b/poky/meta/recipes-support/liburcu/liburcu_0.13.0.bb
deleted file mode 100644
index aba8d07..0000000
--- a/poky/meta/recipes-support/liburcu/liburcu_0.13.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Userspace RCU (read-copy-update) library"
-DESCRIPTION = "A userspace RCU (read-copy-update) library. This data \
-synchronization library provides read-side access which scales linearly \
-with the number of cores. "
-HOMEPAGE = "http://lttng.org/urcu"
-BUGTRACKER = "http://lttng.org/project/issues"
-
-LICENSE = "LGPLv2.1+ & MIT-style"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e548d28737289d75a8f1e01ba2fd7825 \
-                    file://include/urcu/urcu.h;beginline=4;endline=32;md5=4de0d68d3a997643715036d2209ae1d9 \
-                    file://include/urcu/uatomic/x86.h;beginline=4;endline=21;md5=58e50bbd8a2f073bb5500e6554af0d0b"
-
-SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2"
-
-SRC_URI[md5sum] = "8cb75dbb05774c03e66c63cb3186dd59"
-SRC_URI[sha256sum] = "cbb20dbe1a892c2a4d8898bac4316176e585392693d498766ccbbc68cf20ba20"
-
-S = "${WORKDIR}/userspace-rcu-${PV}"
-inherit autotools multilib_header
-
-CPPFLAGS:append:riscv64  = " -pthread -D_REENTRANT"
-
-do_install:append() {
-    oe_multilib_header urcu/config.h
-}
diff --git a/poky/meta/recipes-support/liburcu/liburcu_0.13.1.bb b/poky/meta/recipes-support/liburcu/liburcu_0.13.1.bb
new file mode 100644
index 0000000..7e53e1c
--- /dev/null
+++ b/poky/meta/recipes-support/liburcu/liburcu_0.13.1.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Userspace RCU (read-copy-update) library"
+DESCRIPTION = "A userspace RCU (read-copy-update) library. This data \
+synchronization library provides read-side access which scales linearly \
+with the number of cores. "
+HOMEPAGE = "http://lttng.org/urcu"
+BUGTRACKER = "http://lttng.org/project/issues"
+
+LICENSE = "LGPLv2.1+ & MIT-style"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e548d28737289d75a8f1e01ba2fd7825 \
+                    file://include/urcu/urcu.h;beginline=4;endline=32;md5=4de0d68d3a997643715036d2209ae1d9 \
+                    file://include/urcu/uatomic/x86.h;beginline=4;endline=21;md5=58e50bbd8a2f073bb5500e6554af0d0b"
+
+SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2"
+
+SRC_URI[sha256sum] = "3213f33d2b8f710eb920eb1abb279ec04bf8ae6361f44f2513c28c20d3363083"
+
+S = "${WORKDIR}/userspace-rcu-${PV}"
+inherit autotools multilib_header
+
+CPPFLAGS:append:riscv64  = " -pthread -D_REENTRANT"
+
+do_install:append() {
+    oe_multilib_header urcu/config.h
+}
diff --git a/poky/meta/recipes-support/lz4/lz4_1.9.3.bb b/poky/meta/recipes-support/lz4/lz4_1.9.3.bb
index b22eea3..a3c48bc 100644
--- a/poky/meta/recipes-support/lz4/lz4_1.9.3.bb
+++ b/poky/meta/recipes-support/lz4/lz4_1.9.3.bb
@@ -12,7 +12,7 @@
 
 SRCREV = "d44371841a2f1728a3f36839fd4b7e872d0927d3"
 
-SRC_URI = "git://github.com/lz4/lz4.git;branch=release \
+SRC_URI = "git://github.com/lz4/lz4.git;branch=release;protocol=https \
            file://CVE-2021-3520.patch \
            "
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
diff --git a/poky/meta/recipes-support/nghttp2/nghttp2_1.45.1.bb b/poky/meta/recipes-support/nghttp2/nghttp2_1.45.1.bb
deleted file mode 100644
index 3de509a..0000000
--- a/poky/meta/recipes-support/nghttp2/nghttp2_1.45.1.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "HTTP/2 C Library and tools"
-HOMEPAGE = "https://nghttp2.org/"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec"
-
-UPSTREAM_CHECK_URI = "https://github.com/nghttp2/nghttp2/releases"
-
-SRC_URI = "\
-    https://github.com/nghttp2/nghttp2/releases/download/v${PV}/nghttp2-${PV}.tar.xz \
-    file://0001-fetch-ocsp-response-use-python3.patch \
-"
-SRC_URI[sha256sum] = "abdc4addccadbc7d89abe27c4d6427d78e57d139f69c1f45749227393c68bf79"
-
-inherit cmake manpages python3native
-PACKAGECONFIG[manpages] = ""
-
-# examples are never installed, and don't need to be built in the
-# first place
-EXTRA_OECMAKE = "-DENABLE_EXAMPLES=OFF -DENABLE_APP=OFF -DENABLE_HPACK_TOOLS=OFF"
-
-PACKAGES =+ "lib${PN} ${PN}-client ${PN}-proxy ${PN}-server"
-
-RDEPENDS:${PN} = "${PN}-client (>= ${PV}) ${PN}-proxy (>= ${PV}) ${PN}-server (>= ${PV})"
-RDEPENDS:${PN}:class-native = ""
-RDEPENDS:${PN}-proxy = "openssl python3-core python3-io python3-shell"
-
-ALLOW_EMPTY:${PN} = "1"
-FILES:${PN} = ""
-FILES:lib${PN} = "${libdir}/*${SOLIBS}"
-FILES:${PN}-client = "${bindir}/h2load ${bindir}/nghttp"
-FILES:${PN}-proxy = "${bindir}/nghttpx ${datadir}/${BPN}/fetch-ocsp-response"
-FILES:${PN}-server = "${bindir}/nghttpd"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/nghttp2/nghttp2_1.46.0.bb b/poky/meta/recipes-support/nghttp2/nghttp2_1.46.0.bb
new file mode 100644
index 0000000..972ff2d
--- /dev/null
+++ b/poky/meta/recipes-support/nghttp2/nghttp2_1.46.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "HTTP/2 C Library and tools"
+HOMEPAGE = "https://nghttp2.org/"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec"
+
+UPSTREAM_CHECK_URI = "https://github.com/nghttp2/nghttp2/releases"
+
+SRC_URI = "\
+    https://github.com/nghttp2/nghttp2/releases/download/v${PV}/nghttp2-${PV}.tar.xz \
+    file://0001-fetch-ocsp-response-use-python3.patch \
+"
+SRC_URI[sha256sum] = "1a68cc4a5732afb735baf50aaac3cb3a6771e49f744bd5db6c49ab5042f12a43"
+
+inherit cmake manpages python3native
+PACKAGECONFIG[manpages] = ""
+
+# examples are never installed, and don't need to be built in the
+# first place
+EXTRA_OECMAKE = "-DENABLE_EXAMPLES=OFF -DENABLE_APP=OFF -DENABLE_HPACK_TOOLS=OFF"
+
+PACKAGES =+ "lib${PN} ${PN}-client ${PN}-proxy ${PN}-server"
+
+RDEPENDS:${PN} = "${PN}-client (>= ${PV}) ${PN}-proxy (>= ${PV}) ${PN}-server (>= ${PV})"
+RDEPENDS:${PN}:class-native = ""
+RDEPENDS:${PN}-proxy = "openssl python3-core python3-io python3-shell"
+
+ALLOW_EMPTY:${PN} = "1"
+FILES:${PN} = ""
+FILES:lib${PN} = "${libdir}/*${SOLIBS}"
+FILES:${PN}-client = "${bindir}/h2load ${bindir}/nghttp"
+FILES:${PN}-proxy = "${bindir}/nghttpx ${datadir}/${BPN}/fetch-ocsp-response"
+FILES:${PN}-server = "${bindir}/nghttpd"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/numactl/numactl/0001-define-run-test-target.patch b/poky/meta/recipes-support/numactl/numactl/0001-define-run-test-target.patch
index 78ffb22..9e65a45 100644
--- a/poky/meta/recipes-support/numactl/numactl/0001-define-run-test-target.patch
+++ b/poky/meta/recipes-support/numactl/numactl/0001-define-run-test-target.patch
@@ -1,6 +1,6 @@
 rename test target as run-test
 
-Upstream-Statue: Pending
+Upstream-Status: Pending
 
 test target not only compile the test files, but also run them, which is
 not suitable for cross-compile environment, so rename it as run-test.
diff --git a/poky/meta/recipes-support/numactl/numactl_git.bb b/poky/meta/recipes-support/numactl/numactl_git.bb
index 7b1b14d..19f2293 100644
--- a/poky/meta/recipes-support/numactl/numactl_git.bb
+++ b/poky/meta/recipes-support/numactl/numactl_git.bb
@@ -13,7 +13,7 @@
 SRCREV = "dd6de072c92c892a86e18c0fd0dfa1ba57a9a05d"
 PV = "2.0.14"
 
-SRC_URI = "git://github.com/numactl/numactl \
+SRC_URI = "git://github.com/numactl/numactl;branch=master;protocol=https \
            file://Fix-the-test-output-format.patch \
            file://Makefile \
            file://run-ptest \
diff --git a/poky/meta/recipes-support/p11-kit/p11-kit_0.24.0.bb b/poky/meta/recipes-support/p11-kit/p11-kit_0.24.0.bb
deleted file mode 100644
index 9cac87e..0000000
--- a/poky/meta/recipes-support/p11-kit/p11-kit_0.24.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Provides a way to load and enumerate PKCS#11 modules"
-DESCRIPTION = " Provides a standard configuration setup for installing PKCS#11 modules in such a way that they're discoverable. Also solves problems with coordinating the use of PKCS#11 by different components or libraries living in the same process."
-HOMEPAGE = "https://p11-glue.github.io/p11-glue/p11-kit.html"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=02933887f609807fbb57aa4237d14a50"
-
-inherit meson gettext pkgconfig gtk-doc bash-completion manpages
-
-DEPENDS = "libtasn1 libtasn1-native libffi"
-
-DEPENDS:append = "${@' glib-2.0' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}"
-
-SRC_URI = "git://github.com/p11-glue/p11-kit"
-SRCREV = "34826623f58399b24c21f1788e2cdaea34521b7b"
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native"
-PACKAGECONFIG[trust-paths] = "-Dtrust_paths=/etc/ssl/certs/ca-certificates.crt,,,ca-certificates"
-
-GTKDOC_MESON_OPTION = 'gtk_doc'
-
-FILES:${PN} += " \
-    ${libdir}/p11-kit-proxy.so \
-    ${libdir}/pkcs11/*.so \
-    ${libdir}/pkcs11/*.la \
-    ${systemd_user_unitdir}/*"
-
-# PN contains p11-kit-proxy.so, a symlink to a loadable module
-INSANE_SKIP:${PN} = "dev-so"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-support/p11-kit/p11-kit_0.24.1.bb b/poky/meta/recipes-support/p11-kit/p11-kit_0.24.1.bb
new file mode 100644
index 0000000..59cbb67
--- /dev/null
+++ b/poky/meta/recipes-support/p11-kit/p11-kit_0.24.1.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Provides a way to load and enumerate PKCS#11 modules"
+DESCRIPTION = " Provides a standard configuration setup for installing PKCS#11 modules in such a way that they're discoverable. Also solves problems with coordinating the use of PKCS#11 by different components or libraries living in the same process."
+HOMEPAGE = "https://p11-glue.github.io/p11-glue/p11-kit.html"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=02933887f609807fbb57aa4237d14a50"
+
+inherit meson gettext pkgconfig gtk-doc bash-completion manpages
+
+DEPENDS = "libtasn1 libtasn1-native libffi"
+
+DEPENDS:append = "${@' glib-2.0' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}"
+
+SRC_URI = "git://github.com/p11-glue/p11-kit;branch=master;protocol=https"
+SRCREV = "dd0590d4e583f107e3e9fafe9ed754149da335d0"
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native"
+PACKAGECONFIG[trust-paths] = "-Dtrust_paths=/etc/ssl/certs/ca-certificates.crt,,,ca-certificates"
+
+GTKDOC_MESON_OPTION = 'gtk_doc'
+
+FILES:${PN} += " \
+    ${libdir}/p11-kit-proxy.so \
+    ${libdir}/pkcs11/*.so \
+    ${libdir}/pkcs11/*.la \
+    ${systemd_user_unitdir}/*"
+
+# PN contains p11-kit-proxy.so, a symlink to a loadable module
+INSANE_SKIP:${PN} = "dev-so"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.2.bb b/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.2.bb
index 23ab48ba..72922d8 100644
--- a/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.2.bb
+++ b/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.2.bb
@@ -10,7 +10,7 @@
 SRCREV = "bcb82804daa8f725b6add259dcef2067e61a75aa"
 PV .= "+git${SRCPV}"
 
-SRC_URI = "git://git.yoctoproject.org/ptest-runner2 \
+SRC_URI = "git://git.yoctoproject.org/ptest-runner2;branch=master \
 "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools_6.14.bb b/poky/meta/recipes-support/rng-tools/rng-tools_6.14.bb
index 6b79a3b..222d7cc 100644
--- a/poky/meta/recipes-support/rng-tools/rng-tools_6.14.bb
+++ b/poky/meta/recipes-support/rng-tools/rng-tools_6.14.bb
@@ -8,7 +8,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 DEPENDS = "sysfsutils openssl"
 
-SRC_URI = "git://github.com/nhorman/rng-tools.git \
+SRC_URI = "git://github.com/nhorman/rng-tools.git;branch=master;protocol=https \
            file://init \
            file://default \
            file://rngd.service \
diff --git a/poky/meta/recipes-support/serf/serf/0001-buckets-ssl_buckets.c-do-not-use-ERR_GET_FUNC.patch b/poky/meta/recipes-support/serf/serf/0001-buckets-ssl_buckets.c-do-not-use-ERR_GET_FUNC.patch
index e6172ef..91ccc8a 100644
--- a/poky/meta/recipes-support/serf/serf/0001-buckets-ssl_buckets.c-do-not-use-ERR_GET_FUNC.patch
+++ b/poky/meta/recipes-support/serf/serf/0001-buckets-ssl_buckets.c-do-not-use-ERR_GET_FUNC.patch
@@ -6,7 +6,7 @@
 Upstream removed it in
 https://github.com/openssl/openssl/pull/16004
 
-Upstream-Status: Pending
+Upstream-Status: Inactive-Upstream [lastrelease: 2015, lastcommit: 2019]
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
 ---
  buckets/ssl_buckets.c | 3 +--
diff --git a/poky/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch b/poky/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
index 91640d6..4105868 100644
--- a/poky/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
+++ b/poky/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
@@ -31,7 +31,7 @@
   and the installed paths (including the paths inside libserf*.pc)
   look correct
 
-Upstream-Status: Pending
+Upstream-Status: Inactive-Upstream [lastrelease: 2015, lastcommit: 2019]
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
 
diff --git a/poky/meta/recipes-support/shared-mime-info/files/0001-migrate-from-custom-itstool-to-builtin-msgfmt-for-cr.patch b/poky/meta/recipes-support/shared-mime-info/files/0001-migrate-from-custom-itstool-to-builtin-msgfmt-for-cr.patch
new file mode 100644
index 0000000..d09013b
--- /dev/null
+++ b/poky/meta/recipes-support/shared-mime-info/files/0001-migrate-from-custom-itstool-to-builtin-msgfmt-for-cr.patch
@@ -0,0 +1,70 @@
+From 5ca815cb79f64fab9cbb428b95a861fc0c30c116 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Mon, 8 Nov 2021 18:22:47 -0500
+Subject: [PATCH] migrate from custom itstool to builtin msgfmt for creating
+ translated XML
+
+gettext upstream has supported this for a very long time, and using it
+means we don't need to jump through hoops to run ninja inside ninja in
+order to generate the .mo files for itstool.
+
+Although meson 0.60.0 added support for real targets for the built .mo
+files, this changed the rules for output filenames, breaking the script.
+But msgfmt does not care, and anyways comes with builtin meson functions
+for convenient use.
+
+Fixes #170
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/162]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ data/freedesktop_generate.sh | 12 ------------
+ data/meson.build             | 16 +++++-----------
+ 2 files changed, 5 insertions(+), 23 deletions(-)
+ delete mode 100755 data/freedesktop_generate.sh
+
+diff --git a/data/freedesktop_generate.sh b/data/freedesktop_generate.sh
+deleted file mode 100755
+index ff13e75..0000000
+--- a/data/freedesktop_generate.sh
++++ /dev/null
+@@ -1,12 +0,0 @@
+-#!/bin/sh -e
+-
+-src_root="$1"
+-build_root="$2"
+-
+-ninja -C "${build_root}" shared-mime-info-gmo
+-
+-itstool \
+-    --its "${src_root}/data/its/shared-mime-info.its" \
+-    --join "${src_root}/data/freedesktop.org.xml.in" \
+-    -o "${build_root}/data/freedesktop.org.xml" \
+-    "${build_root}/po/"*".gmo"
+diff --git a/data/meson.build b/data/meson.build
+index 263567d..c5696f2 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -1,18 +1,12 @@
+ 
+ install_man('update-mime-database.1')
+ 
+-freedesktop_org_xml = custom_target('freedesktop.org.xml',
+-    input : files(
+-        'freedesktop.org.xml.in',
+-        'its/shared-mime-info.its',
+-        'its/shared-mime-info.loc',
+-    ),
++freedesktop_org_xml = i18n.merge_file(
++    input: 'freedesktop.org.xml.in',
+     output: 'freedesktop.org.xml',
+-    command: [
+-        find_program('freedesktop_generate.sh'),
+-        meson.source_root(),
+-        meson.build_root()
+-    ],
++    data_dirs: '.',
++    po_dir: '../po',
++    type: 'xml',
+     install: true,
+     install_dir: get_option('datadir') / 'mime' / 'packages',
+ )
diff --git a/poky/meta/recipes-support/shared-mime-info/shared-mime-info_git.bb b/poky/meta/recipes-support/shared-mime-info/shared-mime-info_git.bb
index b2b830c..69f147e 100644
--- a/poky/meta/recipes-support/shared-mime-info/shared-mime-info_git.bb
+++ b/poky/meta/recipes-support/shared-mime-info/shared-mime-info_git.bb
@@ -8,7 +8,9 @@
 
 DEPENDS = "libxml2 itstool-native glib-2.0 shared-mime-info-native xmlto-native"
 
-SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https"
+SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https;branch=master \
+           file://0001-migrate-from-custom-itstool-to-builtin-msgfmt-for-cr.patch \
+           "
 SRCREV = "18e558fa1c8b90b86757ade09a4ba4d6a6cf8f70"
 PV = "2.1"
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-support/sqlite/sqlite3_3.36.0.bb b/poky/meta/recipes-support/sqlite/sqlite3_3.36.0.bb
deleted file mode 100644
index 30c9445..0000000
--- a/poky/meta/recipes-support/sqlite/sqlite3_3.36.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require sqlite3.inc
-
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
-
-SRC_URI = "http://www.sqlite.org/2021/sqlite-autoconf-${SQLITE_PV}.tar.gz"
-SRC_URI[sha256sum] = "bd90c3eb96bee996206b83be7065c9ce19aef38c3f4fb53073ada0d0b69bbce3"
-
-# -19242 is only an issue in specific development branch commits
-CVE_CHECK_WHITELIST += "CVE-2019-19242"
-# This is believed to be iOS specific (https://groups.google.com/g/sqlite-dev/c/U7OjAbZO6LA)
-CVE_CHECK_WHITELIST += "CVE-2015-3717"
-# Issue in an experimental extension we don't have/use. Fixed by https://sqlite.org/src/info/b1e0c22ec981cf5f
-CVE_CHECK_WHITELIST += "CVE-2021-36690"
diff --git a/poky/meta/recipes-support/sqlite/sqlite3_3.37.2.bb b/poky/meta/recipes-support/sqlite/sqlite3_3.37.2.bb
new file mode 100644
index 0000000..56364b4
--- /dev/null
+++ b/poky/meta/recipes-support/sqlite/sqlite3_3.37.2.bb
@@ -0,0 +1,14 @@
+require sqlite3.inc
+
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
+
+SRC_URI = "http://www.sqlite.org/2022/sqlite-autoconf-${SQLITE_PV}.tar.gz"
+SRC_URI[sha256sum] = "4089a8d9b467537b3f246f217b84cd76e00b1d1a971fe5aca1e30e230e46b2d8"
+
+# -19242 is only an issue in specific development branch commits
+CVE_CHECK_WHITELIST += "CVE-2019-19242"
+# This is believed to be iOS specific (https://groups.google.com/g/sqlite-dev/c/U7OjAbZO6LA)
+CVE_CHECK_WHITELIST += "CVE-2015-3717"
+# Issue in an experimental extension we don't have/use. Fixed by https://sqlite.org/src/info/b1e0c22ec981cf5f
+CVE_CHECK_WHITELIST += "CVE-2021-36690"
diff --git a/poky/meta/recipes-support/vim/files/0001-src-Makefile-improve-reproducibility.patch b/poky/meta/recipes-support/vim/files/0001-src-Makefile-improve-reproducibility.patch
index 63a7b78..2fc11db 100644
--- a/poky/meta/recipes-support/vim/files/0001-src-Makefile-improve-reproducibility.patch
+++ b/poky/meta/recipes-support/vim/files/0001-src-Makefile-improve-reproducibility.patch
@@ -16,11 +16,11 @@
  src/Makefile | 14 ++++----------
  1 file changed, 4 insertions(+), 10 deletions(-)
 
-diff --git a/src/Makefile b/src/Makefile
-index f2fafa4dc..7148d4bd9 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -2845,16 +2845,10 @@ auto/pathdef.c: Makefile auto/config.mk
+Index: git/src/Makefile
+===================================================================
+--- git.orig/src/Makefile
++++ git/src/Makefile
+@@ -3101,16 +3101,10 @@ auto/pathdef.c: Makefile auto/config.mk
  	-@echo '#include "vim.h"' >> $@
  	-@echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' | $(QUOTESED) >> $@
  	-@echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' | $(QUOTESED) >> $@
@@ -41,6 +41,3 @@
  	-@sh $(srcdir)/pathdef.sh
  
  GUI_GTK_RES_INPUTS = \
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-support/vim/files/CVE-2021-3778.patch b/poky/meta/recipes-support/vim/files/CVE-2021-3778.patch
deleted file mode 100644
index 769a7a0..0000000
--- a/poky/meta/recipes-support/vim/files/CVE-2021-3778.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From eb41373c8c88b0789e5cf04669d6116f9a199264 Mon Sep 17 00:00:00 2001
-From: Minjae Kim <flowergom@gmail.com>
-Date: Sun, 26 Sep 2021 23:48:00 +0000
-Subject: [PATCH] patch 8.2.3409: reading beyond end of line with invalid utf-8
- character
-
-Problem: Reading beyond end of line with invalid utf-8 character.
-Solution: Check for NUL when advancing.
-
-Upstream-Status: Accepted [https://github.com/vim/vim/commit/65b605665997fad54ef39a93199e305af2fe4d7f]
-CVE: CVE-2021-3778
-Signed-off-by: Minjae Kim <flowergom@gmail.com>
----
- src/regexp_nfa.c                 | 3 ++-
- src/testdir/test_regexp_utf8.vim | 7 +++++++
- 2 files changed, 9 insertions(+), 1 deletion(-)
-
-Index: git/src/regexp_nfa.c
-===================================================================
---- git.orig/src/regexp_nfa.c
-+++ git/src/regexp_nfa.c
-@@ -5455,7 +5455,8 @@ find_match_text(colnr_T startcol, int re
- 		match = FALSE;
- 		break;
- 	    }
--	    len2 += MB_CHAR2LEN(c2);
-+	    len2 += enc_utf8 ? utf_ptr2len(rex.line + col + len2)
-+                                                           : MB_CHAR2LEN(c2);
- 	}
- 	if (match
- 		// check that no composing char follows
-Index: git/src/testdir/test_regexp_utf8.vim
-===================================================================
---- git.orig/src/testdir/test_regexp_utf8.vim
-+++ git/src/testdir/test_regexp_utf8.vim
-@@ -215,3 +215,10 @@ func Test_optmatch_toolong()
-   set re=0
- endfunc
- 
-+func Test_match_invalid_byte()
-+  call writefile(0z630a.765d30aa0a.2e0a.790a.4030, 'Xinvalid')
-+  new
-+  source Xinvalid
-+  bwipe!
-+  call delete('Xinvalid')
-+endfunc
diff --git a/poky/meta/recipes-support/vim/files/b7081e135a16091c93f6f5f7525a5c58fb7ca9f9.patch b/poky/meta/recipes-support/vim/files/b7081e135a16091c93f6f5f7525a5c58fb7ca9f9.patch
deleted file mode 100644
index 1cee759..0000000
--- a/poky/meta/recipes-support/vim/files/b7081e135a16091c93f6f5f7525a5c58fb7ca9f9.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-From b7081e135a16091c93f6f5f7525a5c58fb7ca9f9 Mon Sep 17 00:00:00 2001
-From: Bram Moolenaar <Bram@vim.org>
-Date: Sat, 4 Sep 2021 18:47:28 +0200
-Subject: [PATCH] patch 8.2.3402: invalid memory access when using :retab with
- large value
-
-Problem:    Invalid memory access when using :retab with large value.
-Solution:   Check the number is positive.
-
-CVE: CVE-2021-3770
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Upstream-Status: Backport [https://github.com/vim/vim/commit/b7081e135a16091c93f6f5f7525a5c58fb7ca9f9]
----
- src/indent.c               | 34 +++++++++++++++++++++-------------
- src/option.c               | 12 ++++++------
- src/optionstr.c            |  4 ++--
- src/testdir/test_retab.vim |  3 +++
- src/version.c              |  2 ++
- 5 files changed, 34 insertions(+), 21 deletions(-)
-
-Index: git/src/indent.c
-===================================================================
---- git.orig/src/indent.c
-+++ git/src/indent.c
-@@ -18,18 +18,19 @@
- /*
-  * Set the integer values corresponding to the string setting of 'vartabstop'.
-  * "array" will be set, caller must free it if needed.
-+ * Return FAIL for an error.
-  */
-     int
- tabstop_set(char_u *var, int **array)
- {
--    int valcount = 1;
--    int t;
--    char_u *cp;
-+    int	    valcount = 1;
-+    int	    t;
-+    char_u  *cp;
- 
-     if (var[0] == NUL || (var[0] == '0' && var[1] == NUL))
-     {
- 	*array = NULL;
--	return TRUE;
-+	return OK;
-     }
- 
-     for (cp = var; *cp != NUL; ++cp)
-@@ -43,8 +44,8 @@ tabstop_set(char_u *var, int **array)
- 		if (cp != end)
- 		    emsg(_(e_positive));
- 		else
--		    emsg(_(e_invarg));
--		return FALSE;
-+		    semsg(_(e_invarg2), cp);
-+		return FAIL;
- 	    }
- 	}
- 
-@@ -55,26 +56,33 @@ tabstop_set(char_u *var, int **array)
- 	    ++valcount;
- 	    continue;
- 	}
--	emsg(_(e_invarg));
--	return FALSE;
-+	semsg(_(e_invarg2), var);
-+	return FAIL;
-     }
- 
-     *array = ALLOC_MULT(int, valcount + 1);
-     if (*array == NULL)
--	return FALSE;
-+	return FAIL;
-     (*array)[0] = valcount;
- 
-     t = 1;
-     for (cp = var; *cp != NUL;)
-     {
--	(*array)[t++] = atoi((char *)cp);
--	while (*cp  != NUL && *cp != ',')
-+	int n = atoi((char *)cp);
-+
-+	if (n < 0 || n > 9999)
-+	{
-+	    semsg(_(e_invarg2), cp);
-+	    return FAIL;
-+	}
-+	(*array)[t++] = n;
-+	while (*cp != NUL && *cp != ',')
- 	    ++cp;
- 	if (*cp != NUL)
- 	    ++cp;
-     }
- 
--    return TRUE;
-+    return OK;
- }
- 
- /*
-@@ -1556,7 +1564,7 @@ ex_retab(exarg_T *eap)
- 
- #ifdef FEAT_VARTABS
-     new_ts_str = eap->arg;
--    if (!tabstop_set(eap->arg, &new_vts_array))
-+    if (tabstop_set(eap->arg, &new_vts_array) == FAIL)
- 	return;
-     while (vim_isdigit(*(eap->arg)) || *(eap->arg) == ',')
- 	++(eap->arg);
-Index: git/src/option.c
-===================================================================
---- git.orig/src/option.c
-+++ git/src/option.c
-@@ -2292,9 +2292,9 @@ didset_options2(void)
- #endif
- #ifdef FEAT_VARTABS
-     vim_free(curbuf->b_p_vsts_array);
--    tabstop_set(curbuf->b_p_vsts, &curbuf->b_p_vsts_array);
-+    (void)tabstop_set(curbuf->b_p_vsts, &curbuf->b_p_vsts_array);
-     vim_free(curbuf->b_p_vts_array);
--    tabstop_set(curbuf->b_p_vts,  &curbuf->b_p_vts_array);
-+    (void)tabstop_set(curbuf->b_p_vts,  &curbuf->b_p_vts_array);
- #endif
- }
- 
-@@ -5756,7 +5756,7 @@ buf_copy_options(buf_T *buf, int flags)
- 	    buf->b_p_vsts = vim_strsave(p_vsts);
- 	    COPY_OPT_SCTX(buf, BV_VSTS);
- 	    if (p_vsts && p_vsts != empty_option)
--		tabstop_set(p_vsts, &buf->b_p_vsts_array);
-+		(void)tabstop_set(p_vsts, &buf->b_p_vsts_array);
- 	    else
- 		buf->b_p_vsts_array = 0;
- 	    buf->b_p_vsts_nopaste = p_vsts_nopaste
-@@ -5914,7 +5914,7 @@ buf_copy_options(buf_T *buf, int flags)
- 		buf->b_p_isk = save_p_isk;
- #ifdef FEAT_VARTABS
- 		if (p_vts && p_vts != empty_option && !buf->b_p_vts_array)
--		    tabstop_set(p_vts, &buf->b_p_vts_array);
-+		    (void)tabstop_set(p_vts, &buf->b_p_vts_array);
- 		else
- 		    buf->b_p_vts_array = NULL;
- #endif
-@@ -5929,7 +5929,7 @@ buf_copy_options(buf_T *buf, int flags)
- 		buf->b_p_vts = vim_strsave(p_vts);
- 		COPY_OPT_SCTX(buf, BV_VTS);
- 		if (p_vts && p_vts != empty_option && !buf->b_p_vts_array)
--		    tabstop_set(p_vts, &buf->b_p_vts_array);
-+		    (void)tabstop_set(p_vts, &buf->b_p_vts_array);
- 		else
- 		    buf->b_p_vts_array = NULL;
- #endif
-@@ -6634,7 +6634,7 @@ paste_option_changed(void)
- 	    if (buf->b_p_vsts_array)
- 		vim_free(buf->b_p_vsts_array);
- 	    if (buf->b_p_vsts && buf->b_p_vsts != empty_option)
--		tabstop_set(buf->b_p_vsts, &buf->b_p_vsts_array);
-+		(void)tabstop_set(buf->b_p_vsts, &buf->b_p_vsts_array);
- 	    else
- 		buf->b_p_vsts_array = 0;
- #endif
-Index: git/src/optionstr.c
-===================================================================
---- git.orig/src/optionstr.c
-+++ git/src/optionstr.c
-@@ -2166,7 +2166,7 @@ did_set_string_option(
- 	    if (errmsg == NULL)
- 	    {
- 		int *oldarray = curbuf->b_p_vsts_array;
--		if (tabstop_set(*varp, &(curbuf->b_p_vsts_array)))
-+		if (tabstop_set(*varp, &(curbuf->b_p_vsts_array)) == OK)
- 		{
- 		    if (oldarray)
- 			vim_free(oldarray);
-@@ -2205,7 +2205,7 @@ did_set_string_option(
- 	    {
- 		int *oldarray = curbuf->b_p_vts_array;
- 
--		if (tabstop_set(*varp, &(curbuf->b_p_vts_array)))
-+		if (tabstop_set(*varp, &(curbuf->b_p_vts_array)) == OK)
- 		{
- 		    vim_free(oldarray);
- #ifdef FEAT_FOLDING
-Index: git/src/testdir/test_retab.vim
-===================================================================
---- git.orig/src/testdir/test_retab.vim
-+++ git/src/testdir/test_retab.vim
-@@ -74,4 +74,7 @@ endfunc
- func Test_retab_error()
-   call assert_fails('retab -1',  'E487:')
-   call assert_fails('retab! -1', 'E487:')
-+  call assert_fails('ret -1000', 'E487:')
-+  call assert_fails('ret 10000', 'E475:')
-+  call assert_fails('ret 80000000000000000000', 'E475:')
- endfunc
-Index: git/src/version.c
-===================================================================
---- git.orig/src/version.c
-+++ git/src/version.c
-@@ -743,6 +743,8 @@ static char *(features[]) =
- static int included_patches[] =
- {   /* Add new patch number below this line */
- /**/
-+    3402,
-+/**/
-     0
- };
- 
diff --git a/poky/meta/recipes-support/vim/files/disable_acl_header_check.patch b/poky/meta/recipes-support/vim/files/disable_acl_header_check.patch
index 3308916..ee1ea0f 100644
--- a/poky/meta/recipes-support/vim/files/disable_acl_header_check.patch
+++ b/poky/meta/recipes-support/vim/files/disable_acl_header_check.patch
@@ -5,7 +5,7 @@
 
 Don't check 'sys/acl.h' if acl support disabled for vim/vim-tiny.
 
-Upstream-Status: pending
+Upstream-Status: Pending
 
 Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
@@ -13,11 +13,11 @@
  src/configure.ac | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
-diff --git a/src/configure.ac b/src/configure.ac
-index 2d409b3ca06a..dbcaf6140263 100644
---- a/src/configure.ac
-+++ b/src/configure.ac
-@@ -3257,7 +3257,7 @@ AC_CHECK_HEADERS(stdint.h stdlib.h string.h \
+Index: git/src/configure.ac
+===================================================================
+--- git.orig/src/configure.ac
++++ git/src/configure.ac
+@@ -3292,7 +3292,7 @@ AC_CHECK_HEADERS(stdint.h stdlib.h strin
  	sys/systeminfo.h locale.h sys/stream.h termios.h \
  	libc.h sys/statfs.h poll.h sys/poll.h pwd.h \
  	utime.h sys/param.h sys/ptms.h libintl.h libgen.h \
@@ -26,7 +26,7 @@
  	sys/access.h sys/sysinfo.h wchar.h wctype.h)
  
  dnl sys/ptem.h depends on sys/stream.h on Solaris
-@@ -3886,6 +3886,7 @@ AC_ARG_ENABLE(acl,
+@@ -3974,6 +3974,7 @@ AC_ARG_ENABLE(acl,
  	, [enable_acl="yes"])
  if test "$enable_acl" = "yes"; then
    AC_MSG_RESULT(no)
@@ -34,6 +34,3 @@
    AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
  	AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
  		  AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-support/vim/files/no-path-adjust.patch b/poky/meta/recipes-support/vim/files/no-path-adjust.patch
index 05c2d80..9d6da80 100644
--- a/poky/meta/recipes-support/vim/files/no-path-adjust.patch
+++ b/poky/meta/recipes-support/vim/files/no-path-adjust.patch
@@ -7,9 +7,11 @@
 
 Signed-off-by: Joe Slater <joe.slater@windriver.com>
 
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -2507,11 +2507,14 @@ installtools: $(TOOLS) $(DESTDIR)$(exec_
+Index: git/src/Makefile
+===================================================================
+--- git.orig/src/Makefile
++++ git/src/Makefile
+@@ -2565,11 +2565,14 @@ installtools: $(TOOLS) $(DESTDIR)$(exec_
  		 rm -rf $$cvs; \
  	      fi
  	-chmod $(FILEMOD) $(DEST_TOOLS)/*
diff --git a/poky/meta/recipes-support/vim/files/racefix.patch b/poky/meta/recipes-support/vim/files/racefix.patch
index 48dca44..1cb8fb4 100644
--- a/poky/meta/recipes-support/vim/files/racefix.patch
+++ b/poky/meta/recipes-support/vim/files/racefix.patch
@@ -9,9 +9,9 @@
 ===================================================================
 --- git.orig/src/po/Makefile
 +++ git/src/po/Makefile
-@@ -165,17 +165,16 @@ $(PACKAGE).pot: ../*.c ../if_perl.xs ../
- 		po/gvim.desktop.in po/vim.desktop.in
- 	mv -f ../$(PACKAGE).po $(PACKAGE).pot
+@@ -207,17 +207,16 @@ $(PACKAGE).pot: $(PO_INPUTLIST) $(PO_VIM
+ 	# Delete the temporary files
+ 	rm *.js
  
 -vim.desktop: vim.desktop.in $(POFILES)
 +LINGUAS:
diff --git a/poky/meta/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch b/poky/meta/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
index 37914d4..5284ba4 100644
--- a/poky/meta/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
+++ b/poky/meta/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
@@ -14,11 +14,11 @@
  src/configure.ac | 7 +++++++
  1 file changed, 7 insertions(+)
 
-diff --git a/src/configure.ac b/src/configure.ac
-index 0ee86ad..64736f0 100644
---- a/src/configure.ac
-+++ b/src/configure.ac
-@@ -3192,11 +3192,18 @@ AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
+Index: git/src/configure.ac
+===================================================================
+--- git.orig/src/configure.ac
++++ git/src/configure.ac
+@@ -3264,11 +3264,18 @@ AC_TRY_COMPILE([#include <stdio.h>], [in
  	AC_MSG_RESULT(no))
  
  dnl Checks for header files.
@@ -37,6 +37,3 @@
  
  AC_HEADER_DIRENT
  
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-support/vim/vim.inc b/poky/meta/recipes-support/vim/vim.inc
index db1e9ca..3a5eca4 100644
--- a/poky/meta/recipes-support/vim/vim.inc
+++ b/poky/meta/recipes-support/vim/vim.inc
@@ -8,20 +8,23 @@
 DEPENDS = "ncurses gettext-native"
 # vimdiff doesn't like busybox diff
 RSUGGESTS:${PN} = "diffutils"
-LICENSE = "vim"
-LIC_FILES_CHKSUM = "file://runtime/doc/uganda.txt;endline=287;md5=a19edd7ec70d573a005d9e509375a99a"
 
-SRC_URI = "git://github.com/vim/vim.git \
+LICENSE = "vim"
+LIC_FILES_CHKSUM = "file://runtime/doc/uganda.txt;endline=287;md5=909f1394892b7e0f9c2a95306c0c552b"
+
+SRC_URI = "git://github.com/vim/vim.git;branch=master;protocol=https \
            file://disable_acl_header_check.patch \
            file://vim-add-knob-whether-elf.h-are-checked.patch \
            file://0001-src-Makefile-improve-reproducibility.patch \
            file://no-path-adjust.patch \
            file://racefix.patch \
-           file://b7081e135a16091c93f6f5f7525a5c58fb7ca9f9.patch \
-          file://CVE-2021-3778.patch \
-"
+           "
 
-SRCREV = "98056533b96b6b5d8849641de93185dd7bcadc44"
+PV .= ".4118"
+SRCREV = "0023f82a76cf43a12b41e71f97a2e860d0444e1b"
+
+# Remove when 8.3 is out
+UPSTREAM_VERSION_UNKNOWN = "1"
 
 # Do not consider .z in x.y.z, as that is updated with every commit
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+)\.0"
@@ -57,9 +60,7 @@
     autotools_do_compile
 }
 
-#Available PACKAGECONFIG options are gtkgui, acl, x11, tiny selinux, elfutils, nls
-PACKAGECONFIG ??= ""
-PACKAGECONFIG += " \
+PACKAGECONFIG ??= "\
     ${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 gtkgui', '', d)} \
     nls \
diff --git a/poky/meta/recipes-support/vte/vte_0.66.0.bb b/poky/meta/recipes-support/vte/vte_0.66.0.bb
deleted file mode 100644
index 6676b7f..0000000
--- a/poky/meta/recipes-support/vte/vte_0.66.0.bb
+++ /dev/null
@@ -1,62 +0,0 @@
-SUMMARY = "Virtual terminal emulator GTK+ widget library"
-DESCRIPTION = "VTE provides a virtual terminal widget for GTK applications."
-HOMEPAGE = "https://wiki.gnome.org/Apps/Terminal/VTE"
-BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte"
-LICENSE = "GPLv3 & LGPLv3+ & MIT-X"
-LICENSE:libvte = "LGPLv3+"
-
-LIC_FILES_CHKSUM = " \
-    file://COPYING.GPL3;md5=cc702cf3444d1f19680c794cc61948f9 \
-    file://COPYING.LGPL3;md5=b52f2d57d10c4f7ee67a7eb9615d5d24 \
-    file://COPYING.XTERM;md5=d7fc3a23c16c039afafe2e042030f057 \
-"
-
-DEPENDS = "glib-2.0 gtk+3 libpcre2 libxml2-native gperf-native icu"
-
-GNOMEBASEBUILDCLASS = "meson"
-GIR_MESON_OPTION = 'gir'
-
-inherit gnomebase gtk-doc features_check upstream-version-is-even gobject-introspection
-
-# vapigen.m4 is required when vala is not present (but the one from vala should be used normally)
-SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \
-            file://0001-Makefile.docs-correctly-substitute-gtkdoc-qemu-wrapp.patch"
-SRC_URI[archive.sha256sum] = "d0813ac00fb1d74d88851e765f755d496c83e097097358ea1baadb38b37b7b33"
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-# Instead of "inherit vala" we do the relevant settings here so we can
-# set DEPENDS based on PACKAGECONFIG.
-
-# Our patched version of Vala looks in STAGING_DATADIR for .vapi files
-export STAGING_DATADIR
-# Upstream Vala >= 0.11 looks in XDG_DATA_DIRS for .vapi files
-export XDG_DATA_DIRS = "${STAGING_DATADIR}"
-
-# Help g-ir-scanner find the .so for linking
-do_compile:prepend() {
-    export GIR_EXTRA_LIBS_PATH="${B}/src/.libs"
-}
-
-# Package additional files
-FILES:${PN}-dev += "${datadir}/vala/vapi/*"
-
-PACKAGECONFIG ??= "gnutls"
-PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false,vala-native vala"
-PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls"
-PACKAGECONFIG[systemd] = "-D_systemd=true,-D_systemd=false,systemd"
-# vala requires gir
-PACKAGECONFIG:remove:class-native = "vala"
-
-CFLAGS += "-D_GNU_SOURCE"
-
-PACKAGES =+ "libvte ${PN}-prompt"
-FILES:libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*"
-FILES:${PN}-prompt = " \
-    ${sysconfdir}/profile.d \
-    ${libexecdir}/vte-urlencode-cwd \
-"
-
-FILES:${PN}-dev += "${datadir}/glade/"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/vte/vte_0.66.2.bb b/poky/meta/recipes-support/vte/vte_0.66.2.bb
new file mode 100644
index 0000000..86674cc
--- /dev/null
+++ b/poky/meta/recipes-support/vte/vte_0.66.2.bb
@@ -0,0 +1,62 @@
+SUMMARY = "Virtual terminal emulator GTK+ widget library"
+DESCRIPTION = "VTE provides a virtual terminal widget for GTK applications."
+HOMEPAGE = "https://wiki.gnome.org/Apps/Terminal/VTE"
+BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte"
+LICENSE = "GPLv3 & LGPLv3+ & MIT-X"
+LICENSE:libvte = "LGPLv3+"
+
+LIC_FILES_CHKSUM = " \
+    file://COPYING.GPL3;md5=cc702cf3444d1f19680c794cc61948f9 \
+    file://COPYING.LGPL3;md5=b52f2d57d10c4f7ee67a7eb9615d5d24 \
+    file://COPYING.XTERM;md5=d7fc3a23c16c039afafe2e042030f057 \
+"
+
+DEPENDS = "glib-2.0 gtk+3 libpcre2 libxml2-native gperf-native icu"
+
+GNOMEBASEBUILDCLASS = "meson"
+GIR_MESON_OPTION = 'gir'
+
+inherit gnomebase gtk-doc features_check upstream-version-is-even gobject-introspection
+
+# vapigen.m4 is required when vala is not present (but the one from vala should be used normally)
+SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \
+            file://0001-Makefile.docs-correctly-substitute-gtkdoc-qemu-wrapp.patch"
+SRC_URI[archive.sha256sum] = "e89974673a72a0a06edac6d17830b82bb124decf0cb3b52cebc92ec3ff04d976"
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+# Instead of "inherit vala" we do the relevant settings here so we can
+# set DEPENDS based on PACKAGECONFIG.
+
+# Our patched version of Vala looks in STAGING_DATADIR for .vapi files
+export STAGING_DATADIR
+# Upstream Vala >= 0.11 looks in XDG_DATA_DIRS for .vapi files
+export XDG_DATA_DIRS = "${STAGING_DATADIR}"
+
+# Help g-ir-scanner find the .so for linking
+do_compile:prepend() {
+    export GIR_EXTRA_LIBS_PATH="${B}/src/.libs"
+}
+
+# Package additional files
+FILES:${PN}-dev += "${datadir}/vala/vapi/*"
+
+PACKAGECONFIG ??= "gnutls"
+PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false,vala-native vala"
+PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls"
+PACKAGECONFIG[systemd] = "-D_systemd=true,-D_systemd=false,systemd"
+# vala requires gir
+PACKAGECONFIG:remove:class-native = "vala"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+PACKAGES =+ "libvte ${PN}-prompt"
+FILES:libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*"
+FILES:${PN}-prompt = " \
+    ${sysconfdir}/profile.d \
+    ${libexecdir}/vte-urlencode-cwd \
+"
+
+FILES:${PN}-dev += "${datadir}/glade/"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/xxhash/files/0001-Makefile-escape-special-regex-characters-in-paths.patch b/poky/meta/recipes-support/xxhash/files/0001-Makefile-escape-special-regex-characters-in-paths.patch
deleted file mode 100644
index 6d3da14..0000000
--- a/poky/meta/recipes-support/xxhash/files/0001-Makefile-escape-special-regex-characters-in-paths.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 9ab56f841b1986cd5cdff66cb5ef222794b9ed39 Mon Sep 17 00:00:00 2001
-From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
-Date: Mon, 22 Feb 2021 14:07:58 -0500
-Subject: [PATCH] Makefile: escape special regex characters in paths
-
-Fixes a problem with certain valid install paths:
-
-make prefix=/tmp/a+b/
-Makefile:434: *** configured libdir (/tmp/a+b//lib) is outside of exec_prefix (/tmp/a+b/), can't generate pkg-config file.  Stop.
-
-Upstream-Status: Backport [f79cd22a806993b4a62d8a4f1ba529a29a9d9ff5]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- Makefile | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index ef24e94..baa1533 100644
---- a/Makefile
-+++ b/Makefile
-@@ -411,14 +411,18 @@ INSTALL_PROGRAM ?= $(INSTALL)
- INSTALL_DATA    ?= $(INSTALL) -m 644
- 
- 
--PCLIBDIR ?= $(shell echo "$(LIBDIR)"     | $(SED) -n $(SED_ERE_OPT) -e "s@^$(EXEC_PREFIX)(/|$$)@@p")
--PCINCDIR ?= $(shell echo "$(INCLUDEDIR)" | $(SED) -n $(SED_ERE_OPT) -e "s@^$(PREFIX)(/|$$)@@p")
-+# Escape special symbols by putting each character into its separate class
-+EXEC_PREFIX_REGEX ?= $(shell echo "$(EXEC_PREFIX)" | $(SED) $(SED_ERE_OPT) -e "s/([^^])/[\1]/g" -e "s/\\^/\\\\^/g")
-+PREFIX_REGEX ?= $(shell echo "$(PREFIX)" | $(SED) $(SED_ERE_OPT) -e "s/([^^])/[\1]/g" -e "s/\\^/\\\\^/g")
-+
-+PCLIBDIR ?= $(shell echo "$(LIBDIR)"     | $(SED) -n $(SED_ERE_OPT) -e "s@^$(EXEC_PREFIX_REGEX)(/|$$)@@p")
-+PCINCDIR ?= $(shell echo "$(INCLUDEDIR)" | $(SED) -n $(SED_ERE_OPT) -e "s@^$(PREFIX_REGEX)(/|$$)@@p")
- PCEXECDIR?= $(if $(filter $(PREFIX),$(EXEC_PREFIX)),$$\{prefix\},$(EXEC_PREFIX))
- 
- ifeq (,$(PCLIBDIR))
- # Additional prefix check is required, since the empty string is technically a
- # valid PCLIBDIR
--ifeq (,$(shell echo "$(LIBDIR)" | $(SED) -n $(SED_ERE_OPT) -e "\\@^$(EXEC_PREFIX)(/|$$)@ p"))
-+ifeq (,$(shell echo "$(LIBDIR)" | $(SED) -n $(SED_ERE_OPT) -e "\\@^$(EXEC_PREFIX_REGEX)(/|$$)@ p"))
- $(error configured libdir ($(LIBDIR)) is outside of exec_prefix ($(EXEC_PREFIX)), can't generate pkg-config file)
- endif
- endif
-@@ -426,7 +430,7 @@ endif
- ifeq (,$(PCINCDIR))
- # Additional prefix check is required, since the empty string is technically a
- # valid PCINCDIR
--ifeq (,$(shell echo "$(INCLUDEDIR)" | $(SED) -n $(SED_ERE_OPT) -e "\\@^$(PREFIX)(/|$$)@ p"))
-+ifeq (,$(shell echo "$(INCLUDEDIR)" | $(SED) -n $(SED_ERE_OPT) -e "\\@^$(PREFIX_REGEX)(/|$$)@ p"))
- $(error configured includedir ($(INCLUDEDIR)) is outside of prefix ($(PREFIX)), can't generate pkg-config file)
- endif
- endif
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-support/xxhash/xxhash_0.8.0.bb b/poky/meta/recipes-support/xxhash/xxhash_0.8.0.bb
deleted file mode 100644
index 4e48365..0000000
--- a/poky/meta/recipes-support/xxhash/xxhash_0.8.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Extremely fast non-cryptographic hash algorithm"
-DESCRIPTION = "xxHash is an extremely fast non-cryptographic hash algorithm, \
-working at speeds close to RAM limits."
-HOMEPAGE = "http://www.xxhash.com/"
-LICENSE = "BSD-2-Clause & GPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b335320506abb0505437e39295e799cb"
-
-SRC_URI = "git://github.com/Cyan4973/xxHash.git;branch=release;protocol=git \
-           file://0001-Makefile-escape-special-regex-characters-in-paths.patch \
-           "
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
-
-SRCREV = "94e5f23e736f2bb67ebdf90727353e65344f9fc0"
-
-S = "${WORKDIR}/git"
-
-do_compile () {
-	oe_runmake all
-}
-
-do_install () {
-	oe_runmake DESTDIR=${D} install
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/xxhash/xxhash_0.8.1.bb b/poky/meta/recipes-support/xxhash/xxhash_0.8.1.bb
new file mode 100644
index 0000000..ec559a8
--- /dev/null
+++ b/poky/meta/recipes-support/xxhash/xxhash_0.8.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Extremely fast non-cryptographic hash algorithm"
+DESCRIPTION = "xxHash is an extremely fast non-cryptographic hash algorithm, \
+working at speeds close to RAM limits."
+HOMEPAGE = "http://www.xxhash.com/"
+LICENSE = "BSD-2-Clause & GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cdfe7764d5685d8e08b3df302885d7f3 \
+                    file://cli/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                   "
+
+SRC_URI = "git://github.com/Cyan4973/xxHash.git;branch=release;protocol=https"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+SRCREV = "35b0373c697b5f160d3db26b1cbb45a0d5ba788c"
+
+S = "${WORKDIR}/git"
+
+do_compile () {
+	oe_runmake all
+}
+
+do_install () {
+	oe_runmake DESTDIR=${D} install
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/site/common-musl b/poky/meta/site/common-musl
index 44a7a1a..d990c4e 100644
--- a/poky/meta/site/common-musl
+++ b/poky/meta/site/common-musl
@@ -23,7 +23,7 @@
 ac_cv_func_vsnprintf_c99=${ac_cv_func_vsnprintf_c99=yes}
 glib_cv_compliant_posix_memalign=${glib_cv_compliant_posix_memalign=1}
 glib_cv_long_long_format=${glib_cv_long_long_format=ll}
-glib_cv_have_qsort_r=${glib_cv_have_qsort_r=no}
+glib_cv_have_qsort_r=${glib_cv_have_qsort_r=yes}
 
 #dbus-glib
 ac_cv_have_abstract_sockets=${ac_cv_have_abstract_sockets=yes}
diff --git a/poky/scripts/buildhistory-diff b/poky/scripts/buildhistory-diff
index 3bd40a2..a6e785a 100755
--- a/poky/scripts/buildhistory-diff
+++ b/poky/scripts/buildhistory-diff
@@ -11,7 +11,6 @@
 import sys
 import os
 import argparse
-from distutils.version import LooseVersion
 
 # Ensure PythonGit is installed (buildhistory_analysis needs it)
 try:
@@ -73,10 +72,6 @@
     parser = get_args_parser()
     args = parser.parse_args()
 
-    if LooseVersion(git.__version__) < '0.3.1':
-        sys.stderr.write("Version of GitPython is too old, please install GitPython (python-git) 0.3.1 or later in order to use this script\n")
-        sys.exit(1)
-
     if len(args.revisions) > 2:
         sys.stderr.write('Invalid argument(s) specified: %s\n\n' % ' '.join(args.revisions[2:]))
         parser.print_help()
diff --git a/poky/scripts/contrib/convert-srcuri.py b/poky/scripts/contrib/convert-srcuri.py
new file mode 100755
index 0000000..5873923
--- /dev/null
+++ b/poky/scripts/contrib/convert-srcuri.py
@@ -0,0 +1,77 @@
+#!/usr/bin/env python3
+#
+# Conversion script to update SRC_URI to add branch to git urls
+#
+# Copyright (C) 2021 Richard Purdie
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import re
+import os
+import sys
+import tempfile
+import shutil
+import mimetypes
+
+if len(sys.argv) < 2:
+    print("Please specify a directory to run the conversion script against.")
+    sys.exit(1)
+
+def processfile(fn):
+    def matchline(line):
+        if "MIRROR" in line or ".*" in line or "GNOME_GIT" in line:
+            return False
+        return True
+    print("processing file '%s'" % fn)
+    try:
+        if "distro_alias.inc" in fn or "linux-yocto-custom.bb" in fn:
+            return
+        fh, abs_path = tempfile.mkstemp()
+        modified = False
+        with os.fdopen(fh, 'w') as new_file:
+            with open(fn, "r") as old_file:
+                for line in old_file:
+                    if ("git://" in line or "gitsm://" in line) and "branch=" not in line and matchline(line):
+                        if line.endswith('"\n'):
+                            line = line.replace('"\n', ';branch=master"\n')
+                        elif re.search('\s*\\\\$', line):
+                            line = re.sub('\s*\\\\$', ';branch=master \\\\', line)
+                        modified = True
+                    if ("git://" in line or "gitsm://" in line) and "github.com" in line and "protocol=https" not in line and matchline(line):
+                        if "protocol=git" in line:
+                            line = line.replace('protocol=git', 'protocol=https')
+                        elif line.endswith('"\n'):
+                            line = line.replace('"\n', ';protocol=https"\n')
+                        elif re.search('\s*\\\\$', line):
+                            line = re.sub('\s*\\\\$', ';protocol=https \\\\', line)
+                        modified = True
+                    new_file.write(line)
+        if modified:
+            shutil.copymode(fn, abs_path)
+            os.remove(fn)
+            shutil.move(abs_path, fn)
+    except UnicodeDecodeError:
+        pass
+
+ourname = os.path.basename(sys.argv[0])
+ourversion = "0.1"
+
+if os.path.isfile(sys.argv[1]):
+    processfile(sys.argv[1])
+    sys.exit(0)
+
+for targetdir in sys.argv[1:]:
+    print("processing directory '%s'" % targetdir)
+    for root, dirs, files in os.walk(targetdir):
+        for name in files:
+            if name == ourname:
+                continue
+            fn = os.path.join(root, name)
+            if os.path.islink(fn):
+                continue
+            if "/.git/" in fn or fn.endswith(".html") or fn.endswith(".patch") or fn.endswith(".m4") or fn.endswith(".diff"):
+                continue
+            processfile(fn)
+
+print("All files processed with version %s" % ourversion)
diff --git a/poky/scripts/cross-intercept/ar b/poky/scripts/cross-intercept/ar
new file mode 120000
index 0000000..bc68ffd
--- /dev/null
+++ b/poky/scripts/cross-intercept/ar
@@ -0,0 +1 @@
+../native-intercept/ar
\ No newline at end of file
diff --git a/poky/scripts/install-buildtools b/poky/scripts/install-buildtools
index 8554a5d..10c3d04 100755
--- a/poky/scripts/install-buildtools
+++ b/poky/scripts/install-buildtools
@@ -57,9 +57,9 @@
 
 DEFAULT_INSTALL_DIR = os.path.join(os.path.split(scripts_path)[0],'buildtools')
 DEFAULT_BASE_URL = 'http://downloads.yoctoproject.org/releases/yocto'
-DEFAULT_RELEASE = 'yocto-3.2_M3'
-DEFAULT_INSTALLER_VERSION = '3.1+snapshot'
-DEFAULT_BUILDDATE = '20200923'
+DEFAULT_RELEASE = 'yocto-3.4'
+DEFAULT_INSTALLER_VERSION = '3.4'
+DEFAULT_BUILDDATE = '202110XX'
 
 # Python version sanity check
 if not (sys.version_info.major == 3 and sys.version_info.minor >= 4):
diff --git a/poky/scripts/lib/checklayer/cases/common.py b/poky/scripts/lib/checklayer/cases/common.py
index b82304e..9f15e05b 100644
--- a/poky/scripts/lib/checklayer/cases/common.py
+++ b/poky/scripts/lib/checklayer/cases/common.py
@@ -6,6 +6,7 @@
 import glob
 import os
 import unittest
+import re
 from checklayer import get_signatures, LayerType, check_command, get_depgraph, compare_signatures
 from checklayer.case import OECheckLayerTestCase
 
@@ -14,7 +15,7 @@
         # The top-level README file may have a suffix (like README.rst or README.txt).
         readme_files = glob.glob(os.path.join(self.tc.layer['path'], '[Rr][Ee][Aa][Dd][Mm][Ee]*'))
         self.assertTrue(len(readme_files) > 0,
-                        msg="Layer doesn't contains README file.")
+                        msg="Layer doesn't contain a README file.")
 
         # There might be more than one file matching the file pattern above
         # (for example, README.rst and README-COPYING.rst). The one with the shortest
@@ -26,6 +27,16 @@
         self.assertTrue(data,
                 msg="Layer contains a README file but it is empty.")
 
+        # If a layer's README references another README, then the checks below are not valid
+        if re.search('README', data, re.IGNORECASE):
+            return
+
+        self.assertIn('maintainer', data.lower())
+        self.assertIn('patch', data.lower())
+        # Check that there is an email address in the README
+        email_regex = re.compile(r"[^@]+@[^@]+")
+        self.assertTrue(email_regex.match(data))
+
     def test_parse(self):
         check_command('Layer %s failed to parse.' % self.tc.layer['name'],
                       'bitbake -p')
diff --git a/poky/scripts/lib/recipetool/create.py b/poky/scripts/lib/recipetool/create.py
index 5a267fb..507a230 100644
--- a/poky/scripts/lib/recipetool/create.py
+++ b/poky/scripts/lib/recipetool/create.py
@@ -366,7 +366,7 @@
 def reformat_git_uri(uri):
     '''Convert any http[s]://....git URI into git://...;protocol=http[s]'''
     checkuri = uri.split(';', 1)[0]
-    if checkuri.endswith('.git') or '/git/' in checkuri or re.match('https?://github.com/[^/]+/[^/]+/?$', checkuri):
+    if checkuri.endswith('.git') or '/git/' in checkuri or re.match('https?://git(hub|lab).com/[^/]+/[^/]+/?$', checkuri):
         # Appends scheme if the scheme is missing
         if not '://' in uri:
             uri = 'git://' + uri
@@ -478,6 +478,9 @@
             storeTagName = params['tag']
             params['nobranch'] = '1'
             del params['tag']
+        # Assume 'master' branch if not set
+        if scheme in ['git', 'gitsm'] and 'branch' not in params and 'nobranch' not in params:
+            params['branch'] = 'master'
         fetchuri = bb.fetch2.encodeurl((scheme, network, path, user, passwd, params))
 
         tmpparent = tinfoil.config_data.getVar('BASE_WORKDIR')
@@ -527,10 +530,9 @@
             # Remove HEAD reference point and drop remote prefix
             get_branch = [x.split('/', 1)[1] for x in get_branch if not x.startswith('origin/HEAD')]
             if 'master' in get_branch:
-                # If it is master, we do not need to append 'branch=master' as this is default.
                 # Even with the case where get_branch has multiple objects, if 'master' is one
                 # of them, we should default take from 'master'
-                srcbranch = ''
+                srcbranch = 'master'
             elif len(get_branch) == 1:
                 # If 'master' isn't in get_branch and get_branch contains only ONE object, then store result into 'srcbranch'
                 srcbranch = get_branch[0]
@@ -543,8 +545,8 @@
         # Since we might have a value in srcbranch, we need to
         # recontruct the srcuri to include 'branch' in params.
         scheme, network, path, user, passwd, params = bb.fetch2.decodeurl(srcuri)
-        if srcbranch:
-            params['branch'] = srcbranch
+        if scheme in ['git', 'gitsm']:
+            params['branch'] = srcbranch or 'master'
 
         if storeTagName and scheme in ['git', 'gitsm']:
             # Check srcrev using tag and check validity of the tag
@@ -603,7 +605,7 @@
                     splitline = line.split()
                     if len(splitline) > 1:
                         if splitline[0] == 'origin' and scriptutils.is_src_url(splitline[1]):
-                            srcuri = reformat_git_uri(splitline[1])
+                            srcuri = reformat_git_uri(splitline[1]) + ';branch=master'
                             srcsubdir = 'git'
                             break
 
@@ -917,6 +919,22 @@
     else:
         return value
 
+def fixup_license(value):
+    # Ensure licenses with OR starts and ends with brackets
+    if '|' in value:
+        return '(' + value + ')'
+    return value
+
+def tidy_licenses(value):
+    """Flat, split and sort licenses"""
+    from oe.license import flattened_licenses
+    def _choose(a, b):
+        str_a, str_b  = sorted((" & ".join(a), " & ".join(b)), key=str.casefold)
+        return ["(%s | %s)" % (str_a, str_b)]
+    if not isinstance(value, str):
+        value = " & ".join(value)
+    return sorted(list(set(flattened_licenses(value, _choose))), key=str.casefold)
+
 def handle_license_vars(srctree, lines_before, handled, extravalues, d):
     lichandled = [x for x in handled if x[0] == 'license']
     if lichandled:
@@ -930,10 +948,13 @@
     lines = []
     if licvalues:
         for licvalue in licvalues:
-            if not licvalue[0] in licenses:
-                licenses.append(licvalue[0])
+            license = licvalue[0]
+            lics = tidy_licenses(fixup_license(license))
+            lics = [lic for lic in lics if lic not in licenses]
+            if len(lics):
+                licenses.extend(lics)
             lic_files_chksum.append('file://%s;md5=%s' % (licvalue[1], licvalue[2]))
-            if licvalue[0] == 'Unknown':
+            if license == 'Unknown':
                 lic_unknown.append(licvalue[1])
         if lic_unknown:
             lines.append('#')
@@ -942,9 +963,7 @@
             for licfile in lic_unknown:
                 lines.append('#   %s' % licfile)
 
-    extra_license = split_value(extravalues.pop('LICENSE', []))
-    if '&' in extra_license:
-        extra_license.remove('&')
+    extra_license = tidy_licenses(extravalues.pop('LICENSE', ''))
     if extra_license:
         if licenses == ['Unknown']:
             licenses = extra_license
@@ -985,7 +1004,7 @@
         lines.append('# instead of &. If there is any doubt, check the accompanying documentation')
         lines.append('# to determine which situation is applicable.')
 
-    lines.append('LICENSE = "%s"' % ' & '.join(licenses))
+    lines.append('LICENSE = "%s"' % ' & '.join(sorted(licenses, key=str.casefold)))
     lines.append('LIC_FILES_CHKSUM = "%s"' % ' \\\n                    '.join(lic_files_chksum))
     lines.append('')
 
@@ -1199,7 +1218,7 @@
                     fullpath = os.path.join(root, fn)
                     if not fullpath in licfiles:
                         licfiles.append(fullpath)
-    for licfile in licfiles:
+    for licfile in sorted(licfiles):
         md5value = bb.utils.md5_file(licfile)
         license = md5sums.get(md5value, None)
         if not license:
@@ -1224,6 +1243,7 @@
     """
     pkglicenses = {pn: []}
     for license, licpath, _ in licvalues:
+        license = fixup_license(license)
         for pkgname, pkgpath in packages.items():
             if licpath.startswith(pkgpath + '/'):
                 if pkgname in pkglicenses:
@@ -1236,11 +1256,14 @@
             pkglicenses[pn].append(license)
     outlicenses = {}
     for pkgname in packages:
-        license = ' '.join(list(set(pkglicenses.get(pkgname, ['Unknown'])))) or 'Unknown'
+        # Assume AND operator between license files
+        license = ' & '.join(list(set(pkglicenses.get(pkgname, ['Unknown'])))) or 'Unknown'
         if license == 'Unknown' and pkgname in fallback_licenses:
             license = fallback_licenses[pkgname]
+        licenses = tidy_licenses(license)
+        license = ' & '.join(licenses)
         outlines.append('LICENSE:%s = "%s"' % (pkgname, license))
-        outlicenses[pkgname] = license.split()
+        outlicenses[pkgname] = licenses
     return outlicenses
 
 def read_pkgconfig_provides(d):
diff --git a/poky/scripts/lib/recipetool/create_buildsys.py b/poky/scripts/lib/recipetool/create_buildsys.py
index 35a97c9..5015634 100644
--- a/poky/scripts/lib/recipetool/create_buildsys.py
+++ b/poky/scripts/lib/recipetool/create_buildsys.py
@@ -545,7 +545,7 @@
                 deps.append('zlib')
             elif keyword in ('AX_CHECK_OPENSSL', 'AX_LIB_CRYPTO'):
                 deps.append('openssl')
-            elif keyword == 'AX_LIB_CURL':
+            elif keyword in ('AX_LIB_CURL', 'LIBCURL_CHECK_CONFIG'):
                 deps.append('curl')
             elif keyword == 'AX_LIB_BEECRYPT':
                 deps.append('beecrypt')
@@ -624,6 +624,7 @@
                     'AX_CHECK_OPENSSL',
                     'AX_LIB_CRYPTO',
                     'AX_LIB_CURL',
+                    'LIBCURL_CHECK_CONFIG',
                     'AX_LIB_BEECRYPT',
                     'AX_LIB_EXPAT',
                     'AX_LIB_GCRYPT',
diff --git a/poky/scripts/lib/recipetool/create_buildsys_python.py b/poky/scripts/lib/recipetool/create_buildsys_python.py
index 0b6b042..1a15011 100644
--- a/poky/scripts/lib/recipetool/create_buildsys_python.py
+++ b/poky/scripts/lib/recipetool/create_buildsys_python.py
@@ -8,7 +8,7 @@
 import ast
 import codecs
 import collections
-import distutils.command.build_py
+import setuptools.command.build_py
 import email
 import imp
 import glob
@@ -459,9 +459,13 @@
         else:
             package_dir = {}
 
-        class PackageDir(distutils.command.build_py.build_py):
+        dist = setuptools.Distribution()
+
+        class PackageDir(setuptools.command.build_py.build_py):
             def __init__(self, package_dir):
                 self.package_dir = package_dir
+                self.dist = dist
+                super().__init__(self.dist)
 
         pd = PackageDir(package_dir)
         to_scan = []
diff --git a/poky/scripts/lib/scriptutils.py b/poky/scripts/lib/scriptutils.py
index 3164171..47a0819 100644
--- a/poky/scripts/lib/scriptutils.py
+++ b/poky/scripts/lib/scriptutils.py
@@ -18,7 +18,8 @@
 import tempfile
 import threading
 import importlib
-from importlib import machinery
+import importlib.machinery
+import importlib.util
 
 class KeepAliveStreamHandler(logging.StreamHandler):
     def __init__(self, keepalive=True, **kwargs):
@@ -82,7 +83,9 @@
         logger.debug('Loading plugin %s' % name)
         spec = importlib.machinery.PathFinder.find_spec(name, path=[pluginpath] )
         if spec:
-            return spec.loader.load_module()
+            mod = importlib.util.module_from_spec(spec)
+            spec.loader.exec_module(mod)
+            return mod
 
     def plugin_name(filename):
         return os.path.splitext(os.path.basename(filename))[0]
diff --git a/poky/scripts/lib/wic/engine.py b/poky/scripts/lib/wic/engine.py
index 018815b..674ccfc 100644
--- a/poky/scripts/lib/wic/engine.py
+++ b/poky/scripts/lib/wic/engine.py
@@ -19,10 +19,10 @@
 import tempfile
 import json
 import subprocess
+import shutil
 import re
 
 from collections import namedtuple, OrderedDict
-from distutils.spawn import find_executable
 
 from wic import WicError
 from wic.filemap import sparse_copy
@@ -245,7 +245,7 @@
             for path in pathlist.split(':'):
                 self.paths = "%s%s:%s" % (native_sysroot, path, self.paths)
 
-        self.parted = find_executable("parted", self.paths)
+        self.parted = shutil.which("parted", path=self.paths)
         if not self.parted:
             raise WicError("Can't find executable parted")
 
@@ -283,7 +283,7 @@
                     "resize2fs", "mkswap", "mkdosfs", "debugfs","blkid"):
             aname = "_%s" % name
             if aname not in self.__dict__:
-                setattr(self, aname, find_executable(name, self.paths))
+                setattr(self, aname, shutil.which(name, path=self.paths))
                 if aname not in self.__dict__ or self.__dict__[aname] is None:
                     raise WicError("Can't find executable '{}'".format(name))
             return self.__dict__[aname]
diff --git a/poky/scripts/lib/wic/help.py b/poky/scripts/lib/wic/help.py
index 991907d..4ff7470 100644
--- a/poky/scripts/lib/wic/help.py
+++ b/poky/scripts/lib/wic/help.py
@@ -840,8 +840,8 @@
     meanings. The commands are based on the Fedora kickstart
     documentation but with modifications to reflect wic capabilities.
 
-      http://fedoraproject.org/wiki/Anaconda/Kickstart#part_or_partition
-      http://fedoraproject.org/wiki/Anaconda/Kickstart#bootloader
+      https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#part-or-partition
+      https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#bootloader
 
   Commands
 
diff --git a/poky/scripts/lib/wic/misc.py b/poky/scripts/lib/wic/misc.py
index 57c042c..3e11822 100644
--- a/poky/scripts/lib/wic/misc.py
+++ b/poky/scripts/lib/wic/misc.py
@@ -16,9 +16,9 @@
 import os
 import re
 import subprocess
+import shutil
 
 from collections import defaultdict
-from distutils import spawn
 
 from wic import WicError
 
@@ -122,7 +122,7 @@
     if provided and "%s-native" % recipe in provided:
         return True
 
-    return spawn.find_executable(cmd, paths)
+    return shutil.which(cmd, path=paths)
 
 def exec_native_cmd(cmd_and_args, native_sysroot, pseudo=""):
     """
diff --git a/poky/scripts/lib/wic/pluginbase.py b/poky/scripts/lib/wic/pluginbase.py
index d9b4e57..b645683 100644
--- a/poky/scripts/lib/wic/pluginbase.py
+++ b/poky/scripts/lib/wic/pluginbase.py
@@ -9,9 +9,11 @@
 
 import os
 import logging
+import types
 
 from collections import defaultdict
-from importlib.machinery import SourceFileLoader
+import importlib
+import importlib.util
 
 from wic import WicError
 from wic.misc import get_bitbake_var
@@ -54,7 +56,9 @@
                             mname = fname[:-3]
                             mpath = os.path.join(ppath, fname)
                             logger.debug("loading plugin module %s", mpath)
-                            SourceFileLoader(mname, mpath).load_module()
+                            spec = importlib.util.spec_from_file_location(mname, mpath)
+                            module = importlib.util.module_from_spec(spec)
+                            spec.loader.exec_module(module)
 
         return PLUGINS.get(ptype)
 
diff --git a/poky/scripts/lib/wic/plugins/imager/direct.py b/poky/scripts/lib/wic/plugins/imager/direct.py
index 495518f..35fff7c 100644
--- a/poky/scripts/lib/wic/plugins/imager/direct.py
+++ b/poky/scripts/lib/wic/plugins/imager/direct.py
@@ -259,6 +259,8 @@
             if part.mountpoint == "/":
                 if part.uuid:
                     return "PARTUUID=%s" % part.uuid
+                elif part.label:
+                    return "PARTLABEL=%s" % part.label
                 else:
                     suffix = 'p' if part.disk.startswith('mmcblk') else ''
                     return "/dev/%s%s%-d" % (part.disk, suffix, part.realnum)
@@ -619,5 +621,5 @@
                              part.start + part.size_sec - 1, part.size_sec)
 
                 partimage = self.path + '.p%d' % part.num
-                bb.utils.rename(source, partimage)
+                os.rename(source, partimage)
                 self.partimages.append(partimage)
diff --git a/poky/scripts/lnr b/poky/scripts/lnr
deleted file mode 100755
index a2ac4fe..0000000
--- a/poky/scripts/lnr
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env python3
-#
-# SPDX-License-Identifier: GPL-2.0-only
-#
-
-# Create a *relative* symlink, just like ln --relative does but without needing
-# coreutils 8.16.
-
-import sys, os
-
-if len(sys.argv) != 3:
-   print("$ lnr TARGET LINK_NAME")
-   sys.exit(1)
-
-target = sys.argv[1]
-linkname = sys.argv[2]
-
-if os.path.isabs(target):
-   if not os.path.isabs(linkname):
-      linkname = os.path.abspath(linkname)
-   start = os.path.dirname(linkname)
-   target = os.path.relpath(target, start)
-
-os.symlink(target, linkname)
diff --git a/poky/scripts/native-intercept/ar b/poky/scripts/native-intercept/ar
new file mode 100755
index 0000000..dcc623e
--- /dev/null
+++ b/poky/scripts/native-intercept/ar
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+#
+# Wrapper around 'ar' that defaults to deterministic archives
+
+import os
+import shutil
+import sys
+
+# calculate path to the real 'ar'
+path = os.environ['PATH']
+path = path.replace(os.path.dirname(sys.argv[0]), '')
+real_ar = shutil.which('ar', path=path)
+
+if len(sys.argv) == 1:
+    os.execl(real_ar, 'ar')
+
+# modify args to mimic 'ar' configured with --default-deterministic-archives
+argv = sys.argv
+if argv[1].startswith('--'):
+    # No modifier given
+    None
+else:
+    # remove the optional '-'
+    if argv[1][0] == '-':
+        argv[1] = argv[1][1:]
+    if 'U' in argv[1]:
+        sys.stderr.write("ar: non-deterministic mode requested\n")
+    else:
+        argv[1] = argv[1].replace('u', '')
+        argv[1] = 'D' + argv[1]
+
+os.execv(real_ar, argv)
diff --git a/poky/scripts/nativesdk-intercept/chgrp b/poky/scripts/nativesdk-intercept/chgrp
new file mode 100755
index 0000000..30cc417
--- /dev/null
+++ b/poky/scripts/nativesdk-intercept/chgrp
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+#
+# Wrapper around 'chgrp' that redirects to root in all cases
+
+import os
+import shutil
+import sys
+
+# calculate path to the real 'chgrp'
+path = os.environ['PATH']
+path = path.replace(os.path.dirname(sys.argv[0]), '')
+real_chgrp = shutil.which('chgrp', path=path)
+
+args = list()
+
+found = False
+for i in sys.argv:
+    if i.startswith("-"):
+        args.append(i)
+        continue
+    if not found:
+        args.append("root")
+        found = True
+    else:
+        args.append(i)
+
+os.execv(real_chgrp, args)
diff --git a/poky/scripts/nativesdk-intercept/chown b/poky/scripts/nativesdk-intercept/chown
new file mode 100755
index 0000000..3914b3e
--- /dev/null
+++ b/poky/scripts/nativesdk-intercept/chown
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+#
+# Wrapper around 'chown' that redirects to root in all cases
+
+import os
+import shutil
+import sys
+
+# calculate path to the real 'chown'
+path = os.environ['PATH']
+path = path.replace(os.path.dirname(sys.argv[0]), '')
+real_chown = shutil.which('chown', path=path)
+
+args = list()
+
+found = False
+for i in sys.argv:
+    if i.startswith("-"):
+        args.append(i)
+        continue
+    if not found:
+        args.append("root:root")
+        found = True
+    else:
+        args.append(i)
+
+os.execv(real_chown, args)
diff --git a/poky/scripts/oe-pkgdata-browser b/poky/scripts/oe-pkgdata-browser
index 8d22318..a3a3819 100755
--- a/poky/scripts/oe-pkgdata-browser
+++ b/poky/scripts/oe-pkgdata-browser
@@ -49,11 +49,11 @@
     from configparser import ConfigParser
     from itertools import chain
 
-    parser = ConfigParser()
+    parser = ConfigParser(delimiters=('='))
     if suffix:
-        parser.optionxform = lambda option: option.replace("_" + suffix, "")
+        parser.optionxform = lambda option: option.replace(":" + suffix, "")
     with open(filename) as lines:
-        lines = chain(("[fake]",), lines)
+        lines = chain(("[fake]",), (line.replace(": ", " = ", 1) for line in lines))
         parser.read_file(lines)
 
     # TODO extract the data and put it into a real dict so we can transform some
@@ -236,6 +236,8 @@
         update_deps("RPROVIDES", "Provides: ", self.provides_label, clickable=False)
 
     def load_recipes(self):
+        if not os.path.exists(pkgdata):
+            sys.exit("Error: Please ensure %s exists by generating packages before using this tool." % pkgdata)
         for recipe in sorted(os.listdir(pkgdata)):
             if os.path.isfile(os.path.join(pkgdata, recipe)):
                 self.recipe_iters[recipe] = self.recipe_store.append([recipe])
diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu
index 54f2336..4e05c1b 100755
--- a/poky/scripts/runqemu
+++ b/poky/scripts/runqemu
@@ -199,7 +199,7 @@
         self.fsinfo = {}
         self.network_device = "-device e1000,netdev=net0,mac=@MAC@"
         self.cmdline_ip_slirp = "ip=dhcp"
-        self.cmdline_ip_tap = "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0"
+        self.cmdline_ip_tap = "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0::eth0:off:8.8.8.8"
         # Use different mac section for tap and slirp to avoid
         # conflicts, e.g., when one is running with tap, the other is
         # running with slirp.
@@ -474,6 +474,7 @@
 
         if 'gl' not in sys.argv[1:] and 'gl-es' not in sys.argv[1:]:
             os.environ['SDL_RENDER_DRIVER'] = 'software'
+            os.environ['SDL_FRAMEBUFFER_ACCELERATION'] = 'false'
 
         unknown_arg = ""
         for arg in sys.argv[1:]:
@@ -1266,7 +1267,13 @@
                 self.rootfs_options = vm_drive
                 if not self.fstype in self.vmtypes:
                     self.rootfs_options += ' -no-reboot'
-            self.kernel_cmdline = 'root=%s rw' % (self.get('QB_KERNEL_ROOT'))
+
+            # By default, ' rw' is appended to QB_KERNEL_ROOT unless either ro or rw is explicitly passed.
+            qb_kernel_root = self.get('QB_KERNEL_ROOT')
+            qb_kernel_root_l = qb_kernel_root.split()
+            if not ('ro' in qb_kernel_root_l or 'rw' in qb_kernel_root_l):
+                qb_kernel_root += ' rw'
+            self.kernel_cmdline = 'root=%s' % qb_kernel_root
 
         if self.fstype == 'nfs':
             self.rootfs_options = ''
@@ -1349,9 +1356,14 @@
             raise RunQemuError('Option gl/gl-es needs gtk or sdl option.')
 
         if self.sdl == True or self.gtk == True or self.egl_headless == True:
-            self.set_dri_path()
-            self.qemu_opt += ' -device virtio-vga-gl -display '
+            if self.gl or self.gl_es or self.egl_headless:
+                self.qemu_opt += ' -device virtio-vga-gl '
+            else:
+                self.qemu_opt += ' -device virtio-vga '
+
+            self.qemu_opt += '-display '
             if self.egl_headless == True:
+                self.set_dri_path()
                 self.qemu_opt += 'egl-headless,'
             else:
                 if self.sdl == True:
@@ -1360,8 +1372,10 @@
                     self.qemu_opt += 'gtk,'
 
                 if self.gl == True:
+                    self.set_dri_path()
                     self.qemu_opt += 'gl=on,'
                 elif self.gl_es == True:
+                    self.set_dri_path()
                     self.qemu_opt += 'gl=es,'
             self.qemu_opt += 'show-cursor=on'
 
@@ -1369,7 +1383,7 @@
 
     def setup_serial(self):
         # Setup correct kernel command line for serial
-        if self.serialstdio == True or self.serialconsole == True or self.nographic == True or self.tcpserial_portnum:
+        if self.get('SERIAL_CONSOLES') and (self.serialstdio == True or self.serialconsole == True or self.nographic == True or self.tcpserial_portnum):
             for entry in self.get('SERIAL_CONSOLES').split(' '):
                 self.kernel_cmdline_script += ' console=%s' %entry.split(';')[1]
 
@@ -1580,7 +1594,8 @@
 
         def sigterm_handler(signum, frame):
             logger.info("SIGTERM received")
-            os.kill(config.qemupid, signal.SIGTERM)
+            if config.qemupid:
+                os.kill(config.qemupid, signal.SIGTERM)
             config.cleanup()
             # Deliberately ignore the return code of 'tput smam'.
             subprocess.call(["tput", "smam"])
diff --git a/poky/scripts/wic b/poky/scripts/wic
index 57197c2..4bcff8f 100755
--- a/poky/scripts/wic
+++ b/poky/scripts/wic
@@ -22,9 +22,9 @@
 import argparse
 import logging
 import subprocess
+import shutil
 
 from collections import namedtuple
-from distutils import spawn
 
 # External modules
 scripts_path = os.path.dirname(os.path.realpath(__file__))
@@ -47,7 +47,7 @@
             break
         sdkroot = os.path.dirname(sdkroot)
 
-bitbake_exe = spawn.find_executable('bitbake')
+bitbake_exe = shutil.which('bitbake')
 if bitbake_exe:
     bitbake_path = scriptpath.add_bitbake_lib_path()
     import bb