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/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)