subtree updates feb 25 2022

poky: 27ff420543..49168f5d55:
  Ahsan Hussain (1):
        staging: use relative path in sysroot_stage_dir()

  Alejandro Hernandez Samaniego (5):
        core-image-tiny-initramfs: Mark recipe as 32 bit ARM compatible
        kernel.bbclass: Allow initramfs to be built from a separate multiconfig
        busybox: Add shell arithmetic to work with poky-tiny
        newlib: Upgrade 4.1.0 -> 4.2.0
        documentation: Add multiconfig initramfs configuration:

  Alex Stewart (1):
        sudo: add /etc/sudoers to sudo-lib conffiles

  Alexander Kanavin (84):
        ruby: do not parallel install
        bind: upgrade 9.16.24 -> 9.16.25
        ifupdown: upgrade 0.8.36 -> 0.8.37
        ethtool: upgrade 5.15 -> 5.16
        webkitgtk: upgrade 2.34.3 -> 2.34.4
        debianutils: upgrade 5.5 -> 5.7
        diffoscope: upgrade 200 -> 201
        libbsd: upgrade 0.11.3 -> 0.11.5
        libical: upgrade 3.0.12 -> 3.0.13
        zstd: update 1.5.0 -> 1.5.2
        rust: update 1.58.0 -> 1.58.1
        wpa-supplicant: update 2.9 -> 2.10
        ltp: update 20210927 -> 20220121
        gnutls: update 3.7.2 -> 3.7.3
        libusb1: correct SRC_URI
        gobject-introspection: replace prelink-rtld with objdump -p
        util-linux: update 2.37.2 -> 2.37.3
        cmake: update 3.22.1 -> 3.22.2
        git: merge .inc into .bb
        git: build manpages from source subject to manpages PACKAGECONFIG
        git: update 2.34.1 -> 2.35.1
        python3-pycryptodome: update 3.12.0 -> 3.14.0
        at: update 3.2.2 -> 3.2.4
        sudo: update 1.9.8p2 -> 1.9.9
        seatd: add recipe
        weston: upgrade 9.0.0 -> 10.0.0
        xf86-input-libinput: update 1.2.0 -> 1.2.1
        glib-2.0: upgrade 2.70.2 -> 2.70.3
        lua: upgrade 5.4.3 -> 5.4.4
        mmc-utils: upgrade to latest revision
        python3-cython: upgrade 0.29.26 -> 0.29.27
        python3-hypothesis: upgrade 6.36.0 -> 6.36.1
        python3-pip: upgrade 21.3.1 -> 22.0.2
        cups: upgrade 2.4.0 -> 2.4.1
        stress-ng: upgrade 0.13.10 -> 0.13.11
        mesa: upgrade 21.3.4 -> 21.3.5
        piglit: upgrade to latest revision
        puzzles: upgrade to latest revision
        diffoscope: upgrade 201 -> 202
        libcap: upgrade 2.62 -> 2.63
        libusb1: upgrade 1.0.24 -> 1.0.25
        re2c: upgrade 2.2 -> 3.0
        libgpg-error: update 1.43 -> 1.44
        harfbuzz: upgrade 3.2.0 -> 3.3.1
        qemu: replace a gtk wrapper with directly setting environment from runqemu
        runqemu: preload uninative libraries when host gl drivers are in use
        git: restore reproducibility on centos 7
        insane.bbclass: use multiprocessing for collecting 'objdump -p' output
        llvm: update 12.0.1 -> 13.0.1
        python3-numpy: update 1.22.1 -> 1.22.2
        sstate: additional debugging when fetch fails occur
        sstate: fix up additional debugging when fetch fails occur
        ruby: correctly set native/target dependencies
        core-image-weston-sdk: synchronize with core-image-sato-sdk
        gstreamer1.0: disable flaky gstbin:test_watch_for_state_change test
        weston-init: disable systemd watchdog option
        webkitgtk: drop patch merged upstream
        man-db: update 2.10.0 -> 2.10.1
        webkitgtk: remove rejected patch
        vulkan: update 1.2.198 -> 1.3.204
        vulkan-samples: update to latest revision
        xkeyboard-config: update 2.34 -> 2.35.1
        libgit2: update 1.3.0 -> 1.4.0
        util-linux: upgrade 2.37.3 -> 2.37.4
        python3-tomli: upgrade 2.0.0 -> 2.0.1
        repo: upgrade 2.20 -> 2.21
        help2man: upgrade 1.48.5 -> 1.49.1
        meson: upgrade 0.61.1 -> 0.61.2
        mmc-utils: upgrade to latest revision
        python3-dtschema: upgrade 2021.12 -> 2022.1
        python3-pytest: upgrade 7.0.0 -> 7.0.1
        vala: upgrade 0.54.6 -> 0.54.7
        gi-docgen: upgrade 2021.8 -> 2022.1
        pango: upgrade 1.48.10 -> 1.50.4
        piglit: upgrade to latest revision
        shaderc: upgrade 2022.0 -> 2022.1
        gst-examples: upgrade 1.18.5 -> 1.18.6
        libical: upgrade 3.0.13 -> 3.0.14
        diffoscope: upgrade 202 -> 204
        gdb: update 11.1 -> 11.2
        weston-init: replace deprecated/disabled fbdev with drm backend
        devtool: explicitly set main or master branches in upgrades when available
        base/staging: use HOST_PREFIX, not TARGET_PREFIX
        insane: use HOST_ variables, not TARGET_ to determine the cross system

  Alexandru Ardelean (1):
        libsndfile1: bump to version 1.0.31

  Andrej Valek (3):
        busybox: refresh defconfig
        oeqa: qemu: create missing directory for _write_dump
        dhcpcd: add option to set DBDIR location

  Andres Beltran (1):
        create-spdx: add support for SDKs

  Andrey Zhizhikin (1):
        waffle: add wayland-protocols when building with wayland

  Bruce Ashfield (18):
        linux-yocto/5.15: update to v5.15.15
        linux-yocto/5.10: update to v5.10.92
        x86: fix defconfig configuration warnings
        linux-yocto/5.15: update to v5.15.16
        linux-yocto/5.10: update to v5.10.93
        linux-libc-headers: update to v5.16
        qemuarm64: Add tiny ktype to qemuarm64 bsp
        lttng-modules: fix build against v5.17+
        linux-yocto-dev: update to v5.17+
        linux-yocto/5.15: update to v5.15.19
        linux-yocto/5.10: update to v5.10.96
        lttng-modules: update devupstream to latest 2.13
        linux-yocto/5.15: update to v5.15.22
        linux-yocto/5.10: update to v5.10.99
        linux-yocto/5.15: ppc/riscv: fix build with binutils 2.3.8
        linux-yocto/5.10: ppc/riscv: fix build with binutils 2.3.8
        linux-yocto/5.10: fix dssall build error with binutils 2.3.8
        linux-yocto/5.15: fix dssall build error with binutils 2.3.8

  Carlos Rafael Giani (1):
        libxml2: Backport python3-lxml workaround patch

  Changhyeok Bae (1):
        connman: update 1.40 -> 1.41

  Changqing Li (2):
        mdadm: fix testcase 00multipath failure
        nghttp2: fix for multilib support

  Chen Qi (1):
        mdadm: install mdcheck

  Christian Eggers (5):
        sdk: fix search for dynamic loader
        mc: fix build if ncurses have been configured without wide characters
        curl: configure with '--without-ssl' if ssl is disabled
        gcsections: add nativesdk-cairo to exclude list
        dev-manual: update example from kernel.bbclass

  Daiane Angolini (1):
        classes/lib/useradd: The option -P is deprecated

  Daniel Gomez (2):
        bitbake: contrib: Fix hash server Dockerfile dependencies
        bitbake: asyncrpc: Fix attribute errors

  Daniel Müller (1):
        scripts/runqemu-ifdown: Don't treat the last iptables command as special

  Denys Dmytriyenko (2):
        wayland-protocols: upgrade 1.24 -> 1.25
        yocto-check-layer: add ability to perform tests from a global bbclass

  Florian Amstutz (1):
        devtool: deploy-target: Remove stripped binaries in pseudo context

  Hongxu Jia (1):
        glibc: fix create thread failed in unprivileged process

  Joe Slater (1):
        virglrenderer: fix CVE-2022-0135 and -0175

  Jon Mason (1):
        linux-yocto-dev: add qemuriscv32

  Jose Quaresma (18):
        icecc.bbclass: replace deprecated bash command substitution
        spirv-headers: bump to b42ba6
        spirv-tools: upgrade 2021.4 -> 2022.1
        glslang: upgrade 11.7.1 -> 11.8.0
        shaderc: upgrade 2021.3 -> 2021.4
        shaderc: upgrade 2021.4 -> 2022.0
        gstreamer1.0: upgrade 1.18.5 -> 1.20.0
        gstreamer1.0-plugins-base: upgrade 1.18.5 -> 1.20.0
        gstreamer1.0-plugins-good: upgrade 1.18.5 -> 1.20.0
        gstreamer1.0-plugins-bad: upgrade 1.18.5 -> 1.20.0
        gstreamer1.0-plugins-ugly: upgrade 1.18.5 -> 1.20.0
        gstreamer1.0-rtsp-server: upgrade 1.18.5 -> 1.20.0
        gstreamer1.0-libav: upgrade 1.18.5 -> 1.20.0
        gstreamer1.0-vaapi: upgrade 1.18.5 -> 1.20.0
        gstreamer1.0-omx: upgrade 1.18.5 -> 1.20.0
        gstreamer1.0-python: upgrade 1.18.5 -> 1.20.0
        gst-devtools: upgrade 1.18.5 -> 1.20.0
        gstreamer1.0: update licenses of all modules

  Joshua Watt (4):
        classes/create-spdx: Add packageSupplier field
        classes/create-spdx: Remove unnecessary package
        spdx: Add set helper for list properties
        bitbake: msg: Ensure manually created loggers have the once filter

  Justin Bronder (1):
        initramfs-framework: unmount automounts before switch_root

  Kai Kang (2):
        toolchain-scripts.bbclass: use double quotes for exported PS1
        webkitgtk: 2.34.4 -> 2.34.5

  Khem Raj (17):
        ffmpeg: Remove --disable-msa2 mips option
        systemd: Forward port musl patches
        ruby: Fix build on riscv/musl
        musl: Update to latest master
        libstd-rs: Apply patches to right version of libc
        image-prelink: Remove bbclass
        qemuppc64.conf: Remove commented prelink use
        meta: Remove libsegfault and catchsegv
        man-db: Fix build with clang
        diffutils: Link with libbcrypt on mingw
        binutils: Upgrade to 2.38 release
        opensbi: Upgrade to 1.0
        u-boot: Fix RISCV build with binutils 2.38
        libgit2: Upgrade to 1.4.1
        grub: Fix build with bintutils 2.38 on riscv
        boost: Fix build on 32bit arches with 64bit time_t defaults
        scripts/documentation-audit: Use renamed LICENSE_FLAGS_ACCEPTED variable

  Konrad Weihmann (2):
        ruby: fix DEPENDS append
        gmp: fix EXTRA_OECONF for mipsarchr6

  Kory Maincent (1):
        icu: fix make_icudata dependencies

  Lee Chee Yang (1):
        libarchive : update to 3.5.3

  LiweiSong (1):
        qemu: add tpm string section to qemu acpi table

  Luna Gräfje (1):
        tune-cortexa72: Fix a misspelt override in PACKAGE_EXTRA_ARCHS

  Marek Vasut (1):
        kernel-fitimage: Add missing dependency for UBOOT_ENV

  Markus Niebel (1):
        kmscube: depend on virtual/libgbm

  Markus Volk (2):
        libical: build gobject and vala introspection
        seatd: build systemd backend if DISTRO_FEATURE systemd is set

  Marta Rybczynska (1):
        bitbake: lib/bb: fix exit when found renamed variables

  Martin Beeger (1):
        cmake: remove bogus CMAKE_LDFLAGS_FLAGS definition from toolchain file

  Martin Jansa (2):
        systemd: fix DeprecationWarning about regexps
        icecc.bbclass: fix syntax error

  Matthias Klein (1):
        boost: add json lib

  Michael Halstead (3):
        uninative: Upgrade to 3.5
        releases: update to include 3.1.14
        releases: update to include 3.4.2

  Michael Opdenacker (8):
        migration-3.5: mention task specific network access
        dev-manual: stop mentioning the Angstrom distribution
        dev-manual: new "working with pre-compiled libraries" section
        manuals: improve references to classes
        manuals: propose https for SSTATE_MIRRORS
        ref-manual: add usage details about ccache.bbclass
        ref-manual: update TCLIBC description
        manuals: add 3.4 and 3.4.1 release notes after migration information

  Oleksandr Kravchuk (1):
        ell: update to 0.48

  Oleksandr Suvorov (1):
        depmodwrapper-cross: add config directory option

  Pavel Zhukov (3):
        systemd: allow to create directory whose path contains symlink
        systemd: enable KeepConfiguration= when running on network filesystem
        patch.py: Prevent git repo reinitialization

  Peter Kjellerstedt (21):
        sstate: A third fix for for touching files inside pseudo
        devtool: sdk-update: Remove an unnecessary \n from SSTATE_MIRRORS
        sstatetests: Correct a typo in a comment
        glibc-tests: Correct PACKAGE_DEBUG_SPLIT_STYLE
        test-manual: Correct two references to BB_SKIP_NETTESTS
        package: Split out package_debug_vars from split_and_strip_files
        package: Make package_debug_vars() return a dict
        package: Pass dv (debug_vars) around instead of individual vars
        bitbake: bitbake-user-manual: Remove unnecessary \n from a PREMIRRORS example
        bitbake: tests/fetch: Skip the crate tests if network tests are disabled
        bitbake: tests/fetch: Remove unnecessary \n from mirror variables
        bitbake: tests/fetch: Improve the verbose messages for skipped tests
        bitbake: tests/fetch: Unify how git commands are run
        bitbake: tests/fetch: Only set the Git user name/email if they are not already set
        bitbake: tests/fetch: Make test_npm_premirrors work with the current fetcher
        bitbake: fetch2: Correct handling of replacing the basename in URIs
        bitbake: fetch2: npm: Put all downloaded files in the npm2 directory
        poky.conf: Remove unnecessary \n from PREMIRRORS
        local.conf.sample: Remove unnecessary \n from the SSTATE_MIRRORS example
        manuals: Remove unnecessary \n from SSTATE_MIRRORS examples
        oeqa/selftest/bblogging: Add logging tests for bb.build.exec_func with shell/python code

  Pgowda (2):
        glibc : Fix CVE-2021-3998
        glibc : Fix CVE-2021-3999

  Quentin Schulz (2):
        docs: point to renamed BB_BASEHASH_IGNORE_VARS variable
        docs: fix hardcoded link warning messages

  Richard Purdie (65):
        lttng-tools: upgrade 2.13.2 -> 2.13.4
        gcc: Drop stdlib++ option patch
        staging: Add extra hash handling code
        abi_version/sstate: Bump for hash equivalence fix
        prelink: Drop support for it
        glibc: Drop prelink patch
        oqea/runtime/oe_syslog: Improve test
        vim: Upgrade 4269 -> 4134
        binutils: Add fix for CVE-2021-45078
        glibc: Upgrade to 2.35
        patchelf: Fix corrupted file mode patch
        buildtools: Allow testsdk to access the network
        scriptutils: Fix handling of srcuri urls
        default-distrovars.inc: Switch connectivity check to a yoctoproject.org page
        bitbake: tests/fetch: Add missing branch param for git urls
        oeqa/buildtools: Switch to our webserver instead of example.com
        openssl: Add perl functionality test to do_configure
        ltp: Disable proc01 test
        bitbake: fetch2/cooker: Fix source revision handling with floating upstreams
        bitbake: data_smart: Fix overrides file/line message additions
        bitbake: cooker: Improve parsing failure from handled exception usability
        bitbake: msg: Add bb.warnonce() and bb.erroronce() log methods
        bitbake: data_smart: Add hasOverrides method to public datastore API
        selftest/bbtests: Add tests for git floating tag resolution
        oeqa/selftest/bbtests: Update to match changed bitbake output
        features_check/insane: Use hasOverrides datastore method
        recipeutils: Add missing get_srcrev() call
        archiver: Fix typo
        bitbake: utils: Fix environment decorator logic error
        bitbake: fetch2: Abstract fetcher environment to a function
        core-image-testmaster: Rename to core-image-testcontroller
        scripts: Add a conversion script to use SPDX license names
        meta/meta-selftest/meta-skeleton: Update LICENSE variable to use SPDX license identifiers
        oeqa/selftest/bbtests: Update after license changes
        sstate: Setup fetcher environment in advance
        expat: Upgrade 2.4.4 -> 2.4.5
        expat: Upgrade 2.4.5 -> 2.4.6
        perl: Improve and update module RPDEPENDS
        libxml-parser-perl: Add missing RDEPENDS
        vim: Upgrade 8.2.4314 -> 8.2.4424
        tiff: Add backports for two CVEs from upstream
        bitbake: utils: Ensure shell function failure in python logging is correct
        oeqa/selftest/bblogging: Split the test cases up for ease of testing
        bitbake: data_smart/cookerdata: Add variable remapping support
        bitbake: data_smart: Allow rename mechanism to show full expressions
        bitbake: data_smart: Add support to BB_RENAMED_VARIABLES for custom strings
        bitbake: bitbake: Bump version to 1.53.1
        sanity.conf: Require bitbake version 1.53.1
        layer.conf: Update to use kirkstone
        meta/scripts: Change BB_ENV_EXTRA_WHITE -> BB_ENV_PASSTHROUGH_ADDITIONS
        meta/scripts: Handle bitbake variable renaming
        bitbake.conf: Add entries for renamed variables
        meta/scripts: Automated conversion of OE renamed variables
        icecc: Improve variables/terminology
        bitbake.conf: Add entries to warn on usage of removed variables
        layer.conf: Update to kirkstone namespace
        bitbake: data_smart: Avoid exceptions for non string data
        bitbake: tests/fetch: Update for master -> main change upstream
        python3targetconfig: Use for nativesdk too
        licenses: Fix logic error introduced in rename
        pip_install_wheel: Recompile modified files
        pip_install_wheel: Use --ignore-installed for pip
        python3-pip: Don't change shebang
        python3-pip: Improve reproducibility
        python3-numpy: Fix pyc determinism issue

  Robert Joslyn (1):
        dev-manual/common-tasks: Fix typo

  Robert Yang (1):
        bitbake: bitbake: bitbake-worker: Preserve network non-local uid

  Ross Burton (21):
        tiff: backport fix for CVE-2022-22844
        yocto-check-layer: add debug output for the layers that were found
        openssl: export OPENSSL_MODULES in the wrapper
        expat: upgrade to 2.4.4
        vim: upgrade to patch 4269
        core-image-sato-sdk: allocate more memory when in qemu
        oeqa/runtime/stap: improve systemtap test
        systemtap: backport buffer size tuning patches
        strace: remove obsolete musl-on-MIPS patch
        strace: skip a number of load-sensitive tests
        yocto-check-layer: check for duplicate layers when finding layers
        common-licences: remove ambiguous "BSD" license
        newlib: fix license checksums
        oeqa/selftest: test that newlib can build
        cmake: stop FetchContent from fetching content
        kernel: make kernel-base recommend kernel-image, not depend
        poky-tiny: don't skip core-image-base and core-image-full-cmdline
        poky-tiny: set QB_DEFAULT_FSTYPE correctly
        coreutils: remove obsolete ignored CVE list
        cve-check: get_cve_info should open the database read-only
        oeqa/controllers: update for MasterImageHardwareTarget->Controller...

  Rudolf J Streif (1):
        linux-firmware: Add CLM blob to linux-firmware-bcm4373 package

  Saul Wold (13):
        recipetool: Fix circular reference in SRC_URI
        create-spdx: Get SPDX-License-Identifier from source
        blacklist: Replace class with SKIP_RECIPE variable
        dnf: Use renamed SKIP_RECIPE varFlag
        multilib: Use renamed SKIP_RECIPE varFlag
        imagefeatures: selftest: Change variable to be more descriptive
        scripts: Add convert-variable-renames script for inclusive language variable renaming
        meta: Rename LICENSE_FLAGS variable
        poky-tiny: Use renamed SKIP_RECIPES varFlag
        Rename LICENSE_FLAGS variable
        meta: Further LICENSE_FLAGS variable updates
        package: rename LICENSE_EXCLUSION
        license.py: rename variables

  Scott Murray (13):
        bitbake: bitbake: Rename basehas and taskhash filtering variables
        bitbake: bitbake: Rename environment filtering variables
        bitbake: bitbake: Rename configuration hash filtering variable
        bitbake: bitbake: Rename setscene enforce filtering variable
        bitbake: bitbake: Rename allowed multiple provider variable
        bitbake: lib: Replace remaining "blacklist"/"whitelist" usage
        bitbake: lib/bb: Replace "abort" usage in task handling
        bitbake: lib/bb: Replace "ABORT" action in BB_DISKMON_DIRS
        bitbake: bitbake: Replace remaining "abort" usage
        local.conf/oeqa: Update BB_DISKMON_DIRS use
        meta-poky: Update BB_DISKMON_DIRS use
        scripts: fix file writing in convert-variable-renames
        scripts: fix file writing in convert-spdx-licenses

  Sean Anderson (1):
        libpcap: Disable DPDK explicitly

  Stefan Herbrechtsmeier (12):
        cve-check: create directory of CVE_CHECK_MANIFEST before copy
        systemd: Add link-udev-shared PACKAGECONFIG
        systemd: Minimize udev package size if DISTRO_FEATURES doen't contain sysvinit
        gcc-target: fix glob to remove gcc-<version> binary
        gcc-target: move cc1plus to g++ package
        wic: partition: Support valueless keys in sourceparams
        wic: rawcopy: Add support for packed images
        selftest: wic: Remove requirement of syslinux from test_rawcopy_plugin
        selftest: wic: Add rawcopy plugin unpack test
        selftest: wic: Disable graphic of qemu to support WSL
        classes: rootfs-postcommands: avoid exception in overlayfs_qa_check
        files: overlayfs-create-dirs: split ExecStart into two commands

  Tamizharasan Kumar (2):
        linux-yocto/5.10: update genericx86* machines to v5.10.99
        linux-yocto/5.15: update genericx86* machines to v5.15.22

  Tim Orling (43):
        python3-hypothesis: upgrade 6.35.0 -> 6.36.0
        python3-setuptools-scm: upgrade 6.3.2 -> 6.4.2
        python3-pyparsing: upgrade 3.0.6 -> 3.0.7
        python3-importlib-metadata: upgrade 4.10.0 -> 4.10.1
        python3-wheel: move 0.37.1 from meta-python
        python3-flit-core: add recipe for 3.6.0
        python3-flit-core: SUMMARY DESCRIPTION HOMEPAGE
        python3-flit-core: inherit pip_install_wheel
        flit_core.bbclass: add helper for newer python packaging
        python3-wheel: inherit flit_core
        pip_install_wheel.bbclass: add helper class
        python3-wheel-native: install ${bindir}/wheel
        setuptools_build_meta.bbclass: add helper class
        python3-pip: inherit setuptools_build_meta
        python3-pip-native: install scripts in ${bindir}
        python3-attrs: inherit setuptools_build_meta
        python3-git: inherit setuptools_build_meta
        python3-pytest: inherit setuptools_build_meta
        python3-setuptools-scm: inherit setuptools_build_meta
        python3-zipp: inherit setuptools_build_meta
        python3-iniconfig: inherit setuptools_build_meta
        python3-py: inherit setuptools_build_meta
        python3-pluggy: inherit setuptools_build_meta
        python3-setuptools: inherit setuptools_base_meta
        setuptools3.bbclass: refactor for wheels
        python3-more-itertools: set PIP_INSTALL_PACKAGE
        meson: inherit setuptools_build_meta
        python3-libarchive-c: set PIP_INSTALL_PACKAGE
        python3-smartypants: patch hash bang to python3
        python3-scons: merge -native recipe
        python3-subunit: merge inc; set PIP_INSTALL_PACKAGE
        python3-magic: set PIP_INSTALL_PACKAGE
        bmap-tools: set PIP_INSTALL_PACKAGE, BASEVER
        asciidoc: set PIP_INSTALL_PACKAGE
        gi-docgen: set PIP_INSTALL_PACKAGE
        python3-numpy: set PIP_INSTALL_PACKAGE
        python3-dbusmock: set PIP_INSTALL_PACKAGE
        python3-mako: inherit setuptools_build_meta
        python3-packaging: inherit setuptools_build_meta
        python3-nose: drop recipe
        disutils*.bbclasses: move to meta-python
        selftest: drop distutils3 test from recipetool
        pip_install_wheel: improved wheel filename guess

  Tom Hochstein (1):
        xwayland: Add xkbcomp runtime dependency

  Yi Zhao (2):
        glibc: unify wordsize.h between arm and aarch64
        glibc: fix multilib headers conflict for arm

  Zoltán Böszörményi (2):
        qemuboot: Fix build error if UNINATIVE_LOADER is unset
        gtk-icon-cache: Allow using gtk4

  Zygmunt Krynicki (13):
        bitbake: fetch2/wget: move loop-invariant load of BB_ORIGENV
        bitbake: cooker: Fix typo "isn't" and "tuples"
        bitbake: cookerdata: Fix typo "normally"
        bitbake: daemonize: Fix typo "separate"
        bitbake: event: Fix typo "asynchronous" and "occasionally"
        bitbake: fetch2: Fix typo "conform" and "processed"
        bitbake: fetch2/git: Remove duplicate "the"
        bitbake: persist_data: Fix typo "committed"
        bitbake: process: Fix typo: "process"
        bitbake: progress: Fix typo "wherever"
        bitbake: tinfoil: Fix typo "receive" and "something"
        bitbake: utils: Fix typo "dependency" and "spawning"
        bitbake: wget: Fix grammar "can happen"

  pgowda (1):
        gcc : Fix CVE-2021-46195

  wangmy (44):
        libwebp: 1.2.1 -> 1.2.2
        python3-libarchive-c: upgrade 3.2 -> 4.0
        lighttpd: upgrade 1.4.63 -> 1.4.64
        nfs-utils: upgrade 2.5.4 -> 2.6.1
        libmodulemd: upgrade 2.13.0 -> 2.14.0
        libxcrypt: upgrade 4.4.27 -> 4.4.28
        lzip: upgrade 1.22 -> 1.23
        libxkbcommon: upgrade 1.3.1 -> 1.4.0
        man-db: upgrade 2.9.4 -> 2.10.0
        gdbm: upgrade 1.22 -> 1.23
        harfbuzz: upgrade 3.3.1 -> 3.3.2
        findutils: upgrade 4.8.0 -> 4.9.0
        python3-magic: upgrade 0.4.24 -> 0.4.25
        python3-pycryptodome: upgrade 3.14.0 -> 3.14.1
        python3-pytest: upgrade 6.2.5 -> 7.0.0
        python3-pip: upgrade 22.0.2 -> 22.0.3
        python3-pyelftools: upgrade 0.27 -> 0.28
        screen: upgrade 4.8.0 -> 4.9.0
        ed: upgrade 1.17 -> 1.18
        autoconf-archive: upgrade 2021.02.19 -> 2022.02.11
        gpgme: upgrade 1.16.0 -> 1.17.0
        glib-2.0: upgrade 2.70.3 -> 2.70.4
        harfbuzz: upgrade 3.3.2 -> 3.4.0
        python3-hypothesis: upgrade 6.36.1 -> 6.36.2
        python3-pathlib2: upgrade 2.3.6 -> 2.3.7
        python3-pbr: upgrade 5.8.0 -> 5.8.1
        python3-ruamel-yaml: upgrade 0.17.20 -> 0.17.21
        linux-firmware: upgrade 20211216 -> 20220209
        rng-tools: upgrade 6.14 -> 6.15
        mesa: upgrade 21.3.5 -> 21.3.6
        go: upgrade 1.17.6 -> 1.17.7
        libhandy: Use upstream regex to check version of upgrade.
        libva-utils: upgrade 2.13.0 -> 2.14.0
        patchelf: upgrade 0.14.3 -> 0.14.5
        quilt: upgrade 0.66 -> 0.67
        ruby: upgrade 3.1.0 -> 3.1.1
        wireless-regdb: upgrade 2021.08.28 -> 2022.02.18
        bind: upgrade 9.16.25 -> 9.16.26
        flac: upgrade 1.3.3 -> 1.3.4
        init-system-helpers: upgrade 1.60 -> 1.62
        libdrm: upgrade 2.4.109 -> 2.4.110
        python3-hypothesis: upgrade 6.36.2 -> 6.37.2
        python3-markupsafe: upgrade 2.0.1 -> 2.1.0
        asciidoc: upgrade 10.1.1 -> 10.1.3

meta-raspberrypi: 836755370f..e39a0a570c:
  Andrei Gherzan (13):
        README.md: Add contributing section
        Move the python3-adafruit recipes depending on meta-oe to dynamic layers
        README.md: Don't advertise meta-oe dependency
        docs: Detail the merging process of patches sent through the mailing list
        ci: Define an action for building a local docker image
        ci: Define an action for cleaning dangling image
        ci: Define an action for cleaning/removing an image
        ci: Introduce workflow for compliance
        ci: Introduce workflow Yocto operations/builds
        ci: Add workflow to cancel redundant workflows
        ci: Add git mirror workflow
        ci: No need for checkout step in mirror workflow
        ci: Use the current stable version for the mirror action

  Aníbal Limón (1):
        gstreamer1.0-plugins-good: Update bbappend to 1.20

  Bernhard Guillon (1):
        rpi-base.inc: enable i2c-gpio overlay

  Devendra Tewari (1):
        linux-raspberrypi: Upgrade to 5.10.83

  Khem Raj (7):
        raspberrypi4-64: Switch to using cortexa72-crc default tune
        picamera-libs,python3-picamera: Limit visibility to 32 bit rpi machines
        rpi-gpio: Replace setuptool3 instead of  distutils3
        python3-adafruit-blinka: Disable on musl
        linux-raspberrypi: Add recipe for 5.15 LTS kernel
        rpi-default-versions: Use 5.15 as default kernel
        layers: Bump to use kirkstone

  Martin Jansa (4):
        sdcard_image-rpi: fix DeprecationWarning
        gstreamer1.0-plugins-bad: remove libmms PACKAGECONFIG and add gpl
        meta: update variable names
        meta: update license names

  Mauro Anjo (1):
        machine: add Pi Zero 2 W 32bits

  Michal Toman (1):
        rpi-base.inc: Add vc4-fkms-v3d-pi4 overlay

  Mingli Yu (1):
        xserver-xorg: remove xshmfence configure option

  Otto Esko (2):
        recipes-bsp: Add support for gpio-shutdown
        Add documentation for gpio-shutdown

  Paul Barker (1):
        raspberrypi4-64: Switch to cortexa72 tune

  bhargavthriler (1):
        python3-picamera: Add picamera library

meta-openembedded: 6b63095946..cf0ed42391:
  Alejandro Hernandez Samaniego (1):
        remmina: Upgrade to 1.4.23

  Alexander Kanavin (4):
        libvncserver: disable ffmpeg support due to incompatiblility with ffmpeg 5.0
        opencv: update 4.5.2 -> 4.5.5
        minidlna: update 1.2.1 -> 1.3.0
        mpd: update 0.22.9 -> 0.23.5

  An?bal Lim?n (2):
        python3-apt: add new recipe version 2.3.0
        unattended-upgrades: add new recipe version 2.6

  Andreas Müller (1):
        All layers: Follow oe-core's variable name changes

  Andrej Valek (1):
        nodejs: add option to use openssl legacy providers

  Carlos Rafael Giani (3):
        pipewire: Upgrade to 0.3.45
        wireplumber: Add recipe
        wireplumber: Improve configuration

  Changqing Li (1):
        python3-psutil: fix test failure

  Christian Eggers (5):
        ebtables: remove perl from RDEPENDS
        graphviz: native: create /usr/lib/graphviz/config6 in populate_sysroot
        boost-sml: add new recipe
        python3-dt-schema: remove recipe
        graphviz: added PACKAGECONFIG for librsvg

  Clément Péron (1):
        networking: add new netsniff-ng recipe version 0.6.8

  Daniel Gomez (1):
        opencv: Update contrib 4.5.2 -> 4.5.5

  Devendra Tewari (1):
        libcamera: add pkg-config files

  Fabio Estevam (2):
        rtc-tools: Add a recipe
        rtc-tools: Update to 2022.02

  Gianfranco Costamagna (4):
        vboxguestdrivers: upgrade 6.1.30 -> 6.1.32
        boinc-client: Update to 7.18.1
        mosquitto: upgrade 2.0.12 -> 2.0.14
        websocketpp: Apply upstream proposed patch to fix a Scons 4.2.0+ build failure

  Jan Luebbe (1):
        snappy: use main branch to fix fetch failure

  Jan Vermaete (2):
        netdata: upgrade 1.32.1 -> 1.33.0
        netdata: version bump 1.33.0 -> 1.33.1

  Justin Bronder (4):
        yaml-cpp: bump 0.7.0
        googlebenchmark: add 1.6.1
        python3-pytest-forked: add 1.4.0
        python3-pytest-xdist: add 2.5.0

  Kai Kang (1):
        openjpeg: fix CVE-2021-29338

  Kartikey Rameshbhai Parmar (1):
        imagemagick: update SRC_URI branch to main

  Khem Raj (46):
        xfce4-datetime-setter: Fix build with meson 0.61+
        gerbera: Upgrade to 1.9.2
        iotop: Disable LTO with clang/rv64
        spdlog: Update the external fmt patch
        dlt-daemon: Bump to latest revision on master
        evolution-data-server: Disable g-i data generation
        gerbera: Fix build with fmt 8.1+
        php: Update to 8.1.2
        postgresql: Fix build on riscv
        libcec: Fix type mismatch for return value of LibCecBootloader()
        gparted: Do not use NULL where boolean is expected
        python3-pyruvate: Fix build with mips
        python3-pyruvate: Fix build with riscv64/musl
        pcp: Disable parallel compile
        gst-shark: Upgrade to 0.7.3.1
        crda: Fix buffer overflow in sscanf
        open-vm-tools: Fix build with musl
        openldap: Fix build with musl
        gimp: Disable vector icons on x86 with clang
        libjs-jquery-icheck: Use hardcoded SHA for srcrev
        smarty: Upgrade to 4.1.0
        dhcp-relay: Package needed shared libs from bind
        gimp: Disable vector icons with clang on arm
        capnproto: Fix build on mips
        packagegroup-meta-oe: Add googlebenchmark
        packagegroup-meta-python: Add python3-pytest-forked and python3-pytest-xdist
        ntopng: Avoid linking libm statically
        libsigc++-3: Upgrade to 3.2.0
        geany-plugins: Fix build with libgit2 1.4+
        recipes: Use renamed SKIP_RECIPE varFlag
        recipes: Use new CVE_CHECK_IGNORE variable
        meta-oe: Use new variable SYSROOT_DIRS_IGNORE
        layers: Bump to use kirkstone
        capnproto: Link with libatomic on rv32
        iotop: Disable lto with clang for rv32
        glibmm: Add recipe for 2.70.0
        cairomm: Add recipe for cairomm 1.16
        pangomm: Add recipe for pangomm-2.48
        atkmm: Add new recipe for 2.36+
        libxml++: Upgrade to 2.42.1 release
        libxml++-5.0: Add recipe for libxml++ 5.0
        Revert "libcamera: add pkg-config files"
        python3-blinker: Migrate to use pytest instead of nose for testing
        python3-oauthlib: Drop redundant nose dependency
        netplan: Add knob to enable tests
        openldap: Use renamed variable CVE_CHECK_IGNORE

  Leon Anavi (23):
        python3-imageio: Upgrade 2.14.0 -> 2.14.1
        python3-pandas: Upgrade 1.3.5 -> 1.4.0
        python3-aenum: Upgrade 3.1.6 -> 3.1.8
        python3-redis: Upgrade 4.0.2 -> 4.1.1
        python3-jdatetime: Upgrade 3.8.1 -> 3.8.2
        python3-bandit: Upgrade 1.7.1 -> 1.7.2
        python3-fasteners: Upgrade 0.17.2 -> 0.17.3
        python3-ansi2html: Upgrade 1.6.0 -> 1.7.0
        python3-coverage: Upgrade 6.2 -> 6.3
        python3-imageio: Upgrade 2.14.1 -> 2.15.0
        python3-humanize: Upgrade 3.13.1 -> 3.14.0
        python3-bitarray: Upgrade 2.3.5 -> 2.3.6
        python3-itsdangerous: Upgrade 2.0.1 -> 2.1.0
        python3-croniter: Upgrade 1.2.0 -> 1.3.4
        python3-distro: Upgrade 1.6.0 -> 1.7.0
        python3-click: Upgrade 8.0.3 -> 8.0.4
        python3-ordered-set: Upgrade 4.0.2 -> 4.1.0
        python3-bitarray: Upgrade 2.3.6 -> 2.3.7
        python3-pandas: Upgrade 1.4.0 -> 1.4.1
        python3-unidiff: Upgrade 0.7.0 -> 0.7.3
        python3-langtable: Upgrade to release 0.0.57
        python3-cmd2: Upgrade 2.3.3 -> 2.4.0
        python3-coverage: Upgrade 6.3 -> 6.3.2

  Marek Vasut (1):
        freerdp: Update to FreeRDP 2.5.0

  Mark Jonas (1):
        mbedtls: Upgrade to 2.28.0

  Markus Volk (12):
        geary: initial add recipe
        packagegroup-gnome-apps.bb: add geary
        folks: add PACKAGECONFIG for import_tool and inspect_tool
        geary: use sha hash for SRCREV; fix identation
        folks: make some dependencies optional
        evolution-data-server: try to fix g-i data generation
        folks: dont build tests as they are not installed anyway
        gvfs: upgrade 1.48.1 -> 1.49.1
        libxfce4util: inherit vala
        xfconf: inherit vala
        libxfce4ui: disable vala
        xfce4-panel: disable vala

  Martin Jansa (1):
        Fix DeprecationWarning about regexps

  Matsunaga-Shinji (1):
        openldap: add CVE-2015-3276 to allowlist

  Matthias Klein (1):
        gpsd-machine-conf: set precise BSD-3-Clause license

  Mingli Yu (5):
        plymouth: switch to KillMode=mixed
        lxdm: remove conflicts setting
        plymouth: add extra kernel parameter
        opencv: disable sse4.1 and sse4.2 on x86
        plymouth: Add the retain-splash option

  Oleksandr Kravchuk (4):
        redis: add recipe for 7.0-rc1
        iwd: update to 1.24
        fping: update to 5.1
        capnproto: update to 0.9.1

  Peter Bergin (1):
        pipewire: fix build error when pipewire-jack is used

  Peter Griffin (1):
        libcamera: update meson options to build pipeline handlers & cam utility

  Randy MacLeod (1):
        rsyslog: update to 8.2202

  Robert Joslyn (1):
        hwdata: Update to 0.356

  Ross Burton (16):
        python3-jsonpath-rw: set correct license
        concurrencykit: use precise BSD licence version
        pkcs11-helper: update homepage
        pkcs11-helper: set precise BSD license
        spice: set correct LICENSE
        poppler-data: set precise BSD license
        openipmi: use precise BSD license
        s-nail: add a maintained mail(1) fork
        minidlna: use precise BSD license
        smartmontools: use s-nail
        mailx: remove
        spice-protocol: upgrade to 1.14.3
        libjs-jquery: remove
        fwupd-efi: upgrade to 1.2
        fping: set precise license
        concurrencykit: enable 32- and 64-bit Arm targets

  Sakib Sajal (1):
        nss: uprev v3.73.1 -> v3.74

  Sam Van Den Berge (1):
        libiio: use setuptools functions instead of distutils

  Thomas Perrot (1):
        breakpad: fix branch for gtest in SRC_URI

  Tim Orling (2):
        python3-wheel: drop; moved to oe-core
        python3-test-generator: drop recipe

  Trevor Gamblin (1):
        phoronix-test-suite: upgrade 9.2.1 -> 10.8.1

  Wang Mingyu (39):
        ndpi: upgrade 4.0 -> 4.2
        ntopng: upgrade 5.0 -> 5.2.1
        python3-werkzeug: upgrade 2.0.2 -> 2.0.3
        python3-twisted: upgrade 21.7.0 -> 22.1.0
        python3-natsort: upgrade 8.0.2 -> 8.1.0
        xfsdump: upgrade 3.1.9 -> 3.1.10
        mm-common: upgrade 1.0.3 -> 1.0.4
        fsverity-utils: upgrade 1.4 -> 1.5
        libgee: upgrade 0.20.4 -> 0.20.5
        libqmi: upgrade 1.30.2 -> 1.30.4
        libcrypt-openssl-guess-perl: upgrade 0.14 -> 0.15
        gjs: upgrade 1.70.0 -> 1.70.1
        dnf-plugin-tui: Fix a bug of multilib
        libwacom: upgrade 1.12 -> 2.1.0
        gedit: upgrade 40.1 -> 41.0
        gnome-autoar: upgrade 0.4.2 -> 0.4.3
        libwnck3: upgrade 40.0 -> 40.1
        iscsi-initiator-utils: upgrade 2.1.5 -> 2.1.6
        iotop: upgrade 1.20 -> 1.21
        inotify-tools: upgrade 3.21.9.6 -> 3.22.1.0
        gnuplot: upgrade 5.4.2 -> 5.4.3
        libxmlb: upgrade 0.3.6 -> 0.3.7
        libgusb: upgrade 0.3.9 -> 0.3.10
        monit: upgrade 5.30.0 -> 5.31.0
        libjcat: upgrade 0.1.9 -> 0.1.10
        libio-socket-ssl-perl: upgrade 2.073 -> 2.074
        mpv: upgrade 0.34.0 -> 0.34.1
        php: upgrade 8.1.2 -> 8.1.3
        nano: upgrade 6.0 -> 6.2
        rdma-core: upgrade 38.0 -> 39.0
        netplan: upgrade 0.103 -> 0.104
        nautilus: upgrade 41.1 -> 41.2
        zchunk: upgrade 1.1.16 -> 1.2.0
        tree: upgrade 2.0.1 -> 2.0.2
        soci: upgrade 4.0.2 -> 4.0.3
        remmina: upgrade 1.4.23 -> 1.4.24
        wolfssl: upgrade 5.1.0- > 5.2.0
        tcpreplay: upgrade 4.4.0 -> 4.4.1
        spice-protocol: upgrade 0.14.3 -> 0.14.4

  Xu Huan (15):
        python3-multidict: upgrade 5.2.0 -> 6.0.2
        python3-pulsectl upgrade 21.10.5 -> 22.1.3
        python3-pyephem: upgrade 4.1.1 -> 4.1.3
        python3-pytest-timeout: upgrade 2.0.2 -> 2.1.0
        python3-pywbemtools: upgrade 0.9.0 -> 0.9.1
        python3-requests-oauthlib: upgrade 1.3.0 -> 1.3.1
        python3-sqlalchemy: upgrade 1.4.29 -> 1.4.31
        python3-oauthlib: upgrade 3.1.1 -> 3.2.0
        python3-pyudev: upgrade 0.22.0 -> 0.23.2
        python3-pyopenssl: upgrade 21.0.0 -> 22.0.0
        python3-alembic upgrade 1.7.5 -> 1.7.6
        python3-autobahn: upgrade 21.11.1 -> 22.1.1
        python3-flask: upgrade 2.0.2 -> 2.0.3
        python3-imageio: upgrade 2.15.0 -> 2.16.0
        python3-jdatetime: upgrade 3.8.2 -> 4.0.0

  Yi Zhao (5):
        phpmyadmin: upgrade 5.1.1 -> 5.1.2
        tcpdump: upgrade 4.99.0 -> 4.99.1
        tcpslice: upgrade 1.2a3 -> 1.5
        tcpreplay: update HOMEPAGE
        samba: upgrade 4.14.11 -> 4.14.12

  Zheng Ruoqin (6):
        libjs-jquery: Upgrade to 3.3.1.
        protobuf: upgrade 3.19.3 -> 3.19.4
        phpmyadmin: upgrade 5.1.2 -> 5.1.3
        postgresql: upgrade 14.1 -> 14.2
        pugixml: upgrade 1.11.4 -> 1.12
        poppler: upgrade 22.01.0 -> 22.02.0

  wangmy (14):
        fatcat: upgrade 1.1.0 -> 1.1.1
        libnma: upgrade 1.8.32 -> 1.8.34
        botan: upgrade 2.18.2 -> 2.19.1
        cgdb: upgrade 0.7.1 -> 0.8.0
        ddrescue: upgrade 1.25 -> 1.26
        hostapd: upgrade 2.9 -> 2.10
        libcereal: upgrade 1.3.0 -> 1.3.1
        ser2net: upgrade 4.3.4 -> 4.3.5
        dlt-daemon: upgrade 2.18.7 -> 2.18.8
        devilspie2: upgrade 0.43 -> 0.44
        opensaf: upgrade 5.21.09 -> 5.22.01
        tcpreplay: upgrade 4.3.4 -> 4.4.0
        lcms: upgrade 2.12 -> 2.13.1
        libcgi-perl: upgrade 4.53 -> 4.54

meta-security: c20b35b527..6cc8dde794:
  Akshay Bhat (2):
        meta-hardening: Fix override syntax
        scap-security-guide: Fix openembedded platform tests

  Anton Antonov (1):
        Upgrade parsec-tool to 0.5.1

  Armin Kuster (11):
        google-authenticator-libpam: update to 1.09
        packagegroup-security-tpm2.bb: remove dynamic pkgs
        tpm2-pkcs11_1.7.0: Drop dstat from DPENDS
        lkrg-module: update to 0.9.2
        suricata: update to 6.0.4
        tpm2-tss: update to 3.1.0
        parsec-service: fix compile issue.
        layer.conf: Update to use kirkstone
        recipes: Use renamed SKIP_RECIPE varFlag
        chipsec: fix WARNING
        smack: Use new CVE_CHECK_IGNORE variable

  Patrick Williams (1):
        tpm2-pkcs11: fix RDEPENDS variable

  Yi Zhao (1):
        samhain: upgrade 4.4.3 -> 4.4.6

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I270425c8a022f2e281a28ea19fdfae47aa375551
diff --git a/meta-raspberrypi/.github/actions/docker-build/action.yml b/meta-raspberrypi/.github/actions/docker-build/action.yml
new file mode 100644
index 0000000..35fac92
--- /dev/null
+++ b/meta-raspberrypi/.github/actions/docker-build/action.yml
@@ -0,0 +1,47 @@
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+name: "Build a docker image"
+
+inputs:
+  docker_image:
+    required: true
+    description: "The name of the docker image"
+  id:
+    required: true
+    description: "Namespace for the image"
+
+runs:
+  using: "composite"
+  steps:
+    - name: Build the ${{ inputs.docker_image }} docker image
+      shell: bash
+      # We run this unconditinally even if the change doesn't touch the
+      # relevant docker files because there is a chance that another PR (or
+      # something else) rebuilt the local image. For example if the first
+      # version of the PR included change for the relevant docker image but a
+      # subsequent push to the PR branch dropped them. In this way we rebuild
+      # the image to avoid using the changes from the previous push.
+      run: |
+        cd .github/workflows/docker-images/
+        # We build a temporary image namespaced by the PR number so we can
+        # handle multiple runners on the same host using the same docker
+        # storage.
+        tries=3
+        n=1
+        until [ "$n" -gt "$tries" ]; do
+          echo "Building the docker image ${{ inputs.docker_image }}-${{ inputs.id }}... try $n..."
+          if docker build . -f "${{ inputs.docker_image }}/Dockerfile" -t "${{ inputs.docker_image }}-${{ inputs.id }}"; then
+            # This can fail if a dangling images cleaning job runs in
+            # parallel. So we try this a couple of times to minimize
+            # conflict. This is because while building, docker creates a
+            # untagged image first (dangling) before tagging it at the end.
+            # If between these two operations a dangling cleanup happens,
+            # build fails.
+            break
+          fi
+          n=$((n+1))
+        done
+        [ "$n" -lt "$tries" ]
+        echo "Temporary image built in ${{ inputs.docker_image }}."
diff --git a/meta-raspberrypi/.github/actions/docker-clean-dangling/action.yml b/meta-raspberrypi/.github/actions/docker-clean-dangling/action.yml
new file mode 100644
index 0000000..90595c8
--- /dev/null
+++ b/meta-raspberrypi/.github/actions/docker-clean-dangling/action.yml
@@ -0,0 +1,18 @@
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+name: "Cleanup dangling docker images"
+
+runs:
+  using: "composite"
+  steps:
+    - name: Cleanup dangling images
+      shell: bash
+      run: |
+        echo -n "Cleanup dangling images... "
+        if ! docker rmi $(docker images --filter "dangling=true" -q --no-trunc) > /dev/null 2>&1; then
+          echo "no dangling images found."
+        else
+          echo "done."
+        fi
diff --git a/meta-raspberrypi/.github/actions/docker-clean-image/action.yml b/meta-raspberrypi/.github/actions/docker-clean-image/action.yml
new file mode 100644
index 0000000..dfc18d9
--- /dev/null
+++ b/meta-raspberrypi/.github/actions/docker-clean-image/action.yml
@@ -0,0 +1,19 @@
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+name: "Cleanup docker storage"
+
+inputs:
+  docker_image:
+    required: true
+    description: "The name of the docker image"
+
+runs:
+  using: "composite"
+  steps:
+    - name: Cleanup temporary image
+      shell: bash
+      run: |
+        echo "Cleanup ${{ inputs.docker_image }} image..."
+        docker rmi "${{ inputs.docker_image }}" || true
diff --git a/meta-raspberrypi/.github/workflows/cancel-redundant-workflows.yml b/meta-raspberrypi/.github/workflows/cancel-redundant-workflows.yml
new file mode 100644
index 0000000..45a7443
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/cancel-redundant-workflows.yml
@@ -0,0 +1,23 @@
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+name: Cancel redundant workflows
+
+on:
+  workflow_run:
+    workflows:
+      - "Builds"
+      - "Compliance"
+      - "Yocto Compatible"
+    types:
+      - requested
+
+jobs:
+  cancel-redundant-workflows:
+    runs-on: [self-hosted, Linux]
+    steps:
+    - uses: styfle/cancel-workflow-action@0.9.1
+      with:
+        all_but_latest: true
+        workflow_id: ${{ github.event.workflow.id }}
diff --git a/meta-raspberrypi/.github/workflows/compliance.yml b/meta-raspberrypi/.github/workflows/compliance.yml
new file mode 100644
index 0000000..35e4731
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/compliance.yml
@@ -0,0 +1,47 @@
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+name: Compliance
+
+on:
+  pull_request:
+
+jobs:
+  dco:
+    name: DCO
+    runs-on: [self-hosted, Linux]
+    steps:
+      - name: Checkout the code
+        uses: actions/checkout@v2
+        with:
+          fetch-depth: 0
+      - name: Build a temporary DCO image
+        uses: ./.github/actions/docker-build
+        with:
+          docker_image: dco-check
+          id: ${{ github.event.number }}
+      - name: Do DCO check
+        run: |
+          docker run --rm -v "$GITHUB_WORKSPACE:/work:ro" \
+            --env "BASE_REF=$GITHUB_BASE_REF" \
+            "dco-check-${{ github.event.number }}"
+      - name: Cleanup temporary docker image
+        uses: ./.github/actions/docker-clean-image
+        with:
+          docker_image: dco-check-${{ github.event.number }}
+        if: always()
+      - name: Cleanup dangling docker images
+        uses: ./.github/actions/docker-clean-dangling
+        if: always()
+  reuse:
+    name: reuse
+    runs-on: [self-hosted, Linux]
+    steps:
+      - name: Checkout the code
+        uses: actions/checkout@v2
+        with:
+          fetch-depth: 0
+      - name: Do reuse check
+        continue-on-error: true
+        uses: fsfe/reuse-action@v1
diff --git a/meta-raspberrypi/.github/workflows/docker-images/README.md b/meta-raspberrypi/.github/workflows/docker-images/README.md
new file mode 100644
index 0000000..86cfddc
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/docker-images/README.md
@@ -0,0 +1,21 @@
+<!--
+SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+
+SPDX-License-Identifier: MIT
+-->
+
+# Docker images for CI
+
+Each directory contains the files for a docker image.
+
+## Building an image
+
+When building a docker image, the build context is expected to be where this
+`README.md` file resides. This means that building the images will require
+passing the appropriate `-f` argument.
+
+Here is an example for building the `dco-check` image:
+
+```
+docker build . -f dco-check/Dockerfile -t dco-check
+```
diff --git a/meta-raspberrypi/.github/workflows/docker-images/dco-check/Dockerfile b/meta-raspberrypi/.github/workflows/docker-images/dco-check/Dockerfile
new file mode 100644
index 0000000..89901ae
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/docker-images/dco-check/Dockerfile
@@ -0,0 +1,13 @@
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+FROM christophebedard/dco-check:latest
+
+# Run under normal user called 'ci'
+RUN useradd --create-home --uid 1000 --shell /usr/bin/bash ci
+USER ci
+
+COPY ./dco-check/entrypoint.sh /
+COPY ./utils.sh /
+ENTRYPOINT ["/entrypoint.sh"]
diff --git a/meta-raspberrypi/.github/workflows/docker-images/dco-check/README.md b/meta-raspberrypi/.github/workflows/docker-images/dco-check/README.md
new file mode 100644
index 0000000..bf53241
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/docker-images/dco-check/README.md
@@ -0,0 +1,16 @@
+<!--
+SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+
+SPDX-License-Identifier: MIT
+-->
+
+# Docker image for DCO checks
+
+This image provides the environment and the logic of running a DCO check
+against a repository.
+
+## Configuration
+
+The `entrypoint.sh` script assumes at runtime that the repository to be checked
+is available under `/work`. This path is to be populated via bind mounts when
+running the container.
diff --git a/meta-raspberrypi/.github/workflows/docker-images/dco-check/entrypoint.sh b/meta-raspberrypi/.github/workflows/docker-images/dco-check/entrypoint.sh
new file mode 100755
index 0000000..135d410
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/docker-images/dco-check/entrypoint.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+set -e
+
+# shellcheck disable=SC1091
+. /utils.sh
+
+GIT_REPO_PATH="/work"
+
+[ -n "$BASE_REF" ] ||
+	error "DCO checks needs to know the target branch. Make sure that is set in BASE_REF."
+[ -d "$GIT_REPO_PATH/.git" ] ||
+	error "Can't find a git checkout under $GIT_REPO_PATH ."
+cd "$GIT_REPO_PATH"
+dco-check \
+	--verbose \
+	--default-branch "origin/$BASE_REF"
diff --git a/meta-raspberrypi/.github/workflows/docker-images/utils.sh b/meta-raspberrypi/.github/workflows/docker-images/utils.sh
new file mode 100644
index 0000000..66bdb09
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/docker-images/utils.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+_log() {
+	_level="$1"
+	_msg="$2"
+	echo "[$_level] $_msg"
+}
+
+error() {
+	_msg="$1"
+	_log "ERR" "$1"
+	exit 1
+}
+
+warn() {
+	_msg="$1"
+	_log "WRN" "$1"
+	exit 1
+}
+
+log() {
+	_msg="$1"
+	_log "LOG" "$1"
+}
diff --git a/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/Dockerfile b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/Dockerfile
new file mode 100644
index 0000000..87221b9
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/Dockerfile
@@ -0,0 +1,39 @@
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+FROM ubuntu:20.04
+
+ARG DEBIAN_FRONTEND="noninteractive"
+RUN apt-get update -qq
+RUN apt-get install -y eatmydata
+
+# Yocto/OE build host dependencies
+# Keep this in sync with
+# https://git.yoctoproject.org/poky/tree/documentation/poky.yaml
+RUN eatmydata apt-get install -qq -y \
+	gawk wget git diffstat unzip texinfo gcc build-essential chrpath \
+	socat cpio python3 python3-pip python3-pexpect xz-utils debianutils \
+	iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
+	pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool
+
+# en_US.UTF-8 is required by the build system
+RUN eatmydata apt-get install -qq -y locales \
+	&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
+	&& locale-gen
+ENV LANG en_US.utf8
+
+RUN eatmydata apt-get clean && rm -rf /var/lib/apt/lists/*
+
+# Have bash as shell
+RUN echo "dash dash/sh boolean false" | debconf-set-selections \
+ && dpkg-reconfigure dash
+
+# Run under normal user called 'ci'
+RUN useradd --create-home --uid 1000 --shell /usr/bin/bash ci
+USER ci
+WORKDIR /home/ci
+
+COPY ./yocto-builder/entrypoint-yocto-check-layer.sh /
+COPY ./yocto-builder/entrypoint-build.sh /
+COPY ./utils.sh /
diff --git a/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/README.md b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/README.md
new file mode 100644
index 0000000..6336fb8
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/README.md
@@ -0,0 +1,16 @@
+<!--
+SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+
+SPDX-License-Identifier: MIT
+-->
+
+# Docker image for builds
+
+This defines the docker image for running Yocto/OE based operations/builds. It
+privides multiple scripts for driving different operations.
+
+## Configuration
+
+The `entrypoint` scripts assumes at runtime that the repository to drive the
+operation against is available under `/work`. This path is to be populated via
+bind mounts when running the container.
diff --git a/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-build.sh b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-build.sh
new file mode 100755
index 0000000..a98fa2a
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-build.sh
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+set -ex
+
+# shellcheck disable=SC1091
+. /utils.sh
+
+META_RASPBERRYPI_PATH="/work"
+
+[ -n "$BASE_REF" ] ||
+    error "Target branch is needed. Make sure that is set in BASE_REF."
+[ -d "$META_RASPBERRYPI_PATH/.git" ] ||
+    error "Can't find a git checkout under $META_RASPBERRYPI_PATH ."
+[ -n "$MACHINE" ] ||
+    error "Machine to be used for build not provided."
+[ -n "$IMAGE" ] ||
+    error "Image to build not provided."
+
+TEMP_DIR="$(mktemp -d)"
+cd "$TEMP_DIR"
+
+REPOS=" \
+    git://git.yoctoproject.org/poky.git \
+"
+for repo in $REPOS; do
+    log "Cloning $repo on branch $BASE_REF..."
+    git clone --depth 1 --branch "$BASE_REF" "$repo"
+done
+
+# shellcheck disable=SC1091,SC2240
+. ./poky/oe-init-build-env build
+
+# Build configuration
+printf "\n# ------ ci ------\n" >> conf/local.conf
+[ -z "$SSTATE_DIR" ] || echo SSTATE_DIR = \""$SSTATE_DIR"\" >> conf/local.conf
+[ -z "$DL_DIR" ] || echo DL_DIR = \""$DL_DIR"\" >> conf/local.conf
+[ -z "$DISTRO" ] || echo DISTRO = \""$DISTRO"\" >> conf/local.conf
+cat <<EOCONF >>conf/local.conf
+BB_NUMBER_THREADS = "6"
+PARALLEL_MAKE = "-j 6"
+DISTRO_FEATURES:append = " systemd"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit"
+VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"
+EOCONF
+
+# Add the BSP layer
+bitbake-layers add-layer "$META_RASPBERRYPI_PATH"
+
+# Log configs for debugging purposes
+for f in 'conf/local.conf' 'conf/bblayers.conf'; do
+    printf "\n------ %s ------\n" "$f"
+    cat "$f"
+done
+
+# Fire!
+MACHINE="$MACHINE" bitbake "$IMAGE"
diff --git a/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-yocto-check-layer.sh b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-yocto-check-layer.sh
new file mode 100755
index 0000000..474a24e
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-yocto-check-layer.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+set -ex
+
+# shellcheck disable=SC1091
+. /utils.sh
+
+GIT_REPO_PATH="/work"
+
+[ -n "$BASE_REF" ] ||
+    error "Target branch is needed. Make sure that is set in BASE_REF."
+[ -d "$GIT_REPO_PATH/.git" ] ||
+    error "Can't find a git checkout under $GIT_REPO_PATH ."
+
+TEMP_DIR="$(mktemp -d)"
+cd "$TEMP_DIR"
+
+REPOS=" \
+    git://git.yoctoproject.org/poky.git \
+"
+for repo in $REPOS; do
+    log "Cloning $repo on branch $BASE_REF..."
+    git clone --depth 1 --branch "$BASE_REF" "$repo"
+done
+
+# shellcheck disable=SC1091,SC2240
+. ./poky/oe-init-build-env build
+yocto-check-layer --with-software-layer-signature-check --debug \
+    "$GIT_REPO_PATH"
diff --git a/meta-raspberrypi/.github/workflows/mirror.yml b/meta-raspberrypi/.github/workflows/mirror.yml
new file mode 100644
index 0000000..11bb185
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/mirror.yml
@@ -0,0 +1,22 @@
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+name: Mirrors
+
+on: [ push, delete, create ]
+
+concurrency:
+  group: git-mirror-me
+
+jobs:
+  yocto-mirror:
+    name: Yocto Git Mirror
+    runs-on: [self-hosted, Linux]
+    steps:
+      - uses: agherzan/git-mirror-me-action@v1.0.0
+        env:
+          SSH_PRIVATE_KEY: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_PRIVATE_KEY }}
+          SSH_KNOWN_HOSTS: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_KNOWN_HOSTS }}
+        with:
+          destination-repository: "git@push.yoctoproject.org:meta-raspberrypi"
diff --git a/meta-raspberrypi/.github/workflows/yocto-builds.yml b/meta-raspberrypi/.github/workflows/yocto-builds.yml
new file mode 100644
index 0000000..2d35b9f
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/yocto-builds.yml
@@ -0,0 +1,66 @@
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+name: Builds
+
+on:
+  pull_request:
+
+jobs:
+  build:
+    strategy:
+      fail-fast: true
+      matrix:
+        machine:
+          - raspberrypi
+          - raspberrypi0-2w-64
+          - raspberrypi0-2w
+          - raspberrypi0
+          - raspberrypi0-wifi
+          - raspberrypi2
+          - raspberrypi3-64
+          - raspberrypi3
+          - raspberrypi4-64
+          - raspberrypi4
+          - raspberrypi-cm3
+          - raspberrypi-cm
+        image: [core-image-base]
+        distro: [poky]
+    runs-on: [self-hosted, Linux]
+    name: ${{ matrix.machine }}/${{ matrix.image }}/poky/systemd
+    env:
+        DL_DIR: /var/lib/ci/yocto/downloads
+        SSTATE_DIR: /var/lib/ci/yocto/sstate
+    steps:
+      - name: Checkout the code
+        uses: actions/checkout@v2
+        with:
+          fetch-depth: 0
+      - name: Build a temporary yocto-builder image
+        uses: ./.github/actions/docker-build
+        with:
+          docker_image: yocto-builder
+          id: ${{ github.event.number }}
+      - name: Build the image
+        run: |
+          docker run --rm \
+            -v "$GITHUB_WORKSPACE:/work:ro" \
+            -v "$DL_DIR:$DL_DIR:rw" \
+            -v "$SSTATE_DIR:$SSTATE_DIR:rw" \
+            --env "BASE_REF=$GITHUB_BASE_REF" \
+            --env "MACHINE=${{ matrix.machine }}" \
+            --env "DISTRO=${{ matrix.distro }}" \
+            --env "IMAGE=${{ matrix.image }}" \
+            --env "DL_DIR=$DL_DIR" \
+            --env "SSTATE_DIR=$SSTATE_DIR" \
+            "yocto-builder-${{ github.event.number }}" \
+            /entrypoint-build.sh
+      - name: Cleanup temporary docker image
+        uses: ./.github/actions/docker-clean-image
+        with:
+          docker_image: yocto-builder-${{ github.event.number }}
+        if: always()
+      - name: Cleanup dangling docker images
+        uses: ./.github/actions/docker-clean-dangling
+        if: always()
diff --git a/meta-raspberrypi/.github/workflows/yocto-layer.yml b/meta-raspberrypi/.github/workflows/yocto-layer.yml
new file mode 100644
index 0000000..3d5baf8
--- /dev/null
+++ b/meta-raspberrypi/.github/workflows/yocto-layer.yml
@@ -0,0 +1,37 @@
+# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
+#
+# SPDX-License-Identifier: MIT
+
+name: Yocto Compatible
+
+on:
+  pull_request:
+
+jobs:
+  yocto-check-layer:
+    name: Validate with yocto-check-layer
+    runs-on: [self-hosted, Linux]
+    steps:
+    - name: Checkout the code
+      uses: actions/checkout@v2
+      with:
+        fetch-depth: 0
+    - name: Build a temporary yocto-builder image
+      uses: ./.github/actions/docker-build
+      with:
+        docker_image: yocto-builder
+        id: ${{ github.event.number }}
+    - name: Run yocto-check-layer
+      run: |
+        docker run --rm -v "$GITHUB_WORKSPACE:/work:ro" \
+          --env "BASE_REF=$GITHUB_BASE_REF" \
+          "yocto-builder-${{ github.event.number }}" \
+          /entrypoint-yocto-check-layer.sh
+    - name: Cleanup temporary docker image
+      uses: ./.github/actions/docker-clean-image
+      with:
+        docker_image: yocto-builder-${{ github.event.number }}
+      if: always()
+    - name: Cleanup dangling docker images
+      uses: ./.github/actions/docker-clean-dangling
+      if: always()
diff --git a/meta-raspberrypi/README.md b/meta-raspberrypi/README.md
index c6d6392..a7a04b4 100644
--- a/meta-raspberrypi/README.md
+++ b/meta-raspberrypi/README.md
@@ -39,11 +39,6 @@
   * branch: master
   * revision: HEAD
 
-* URI: git://git.openembedded.org/meta-openembedded
-  * layers: meta-oe, meta-multimedia, meta-networking, meta-python
-  * branch: master
-  * revision: HEAD
-
 ## Quick Start
 
 1. source poky/oe-init-build-env rpi-build
@@ -75,6 +70,13 @@
 
 For further information, you can read more at <https://kas.readthedocs.io/en/1.0/index.html>
 
+## Contributing
+
+You can send patches using the GitHub pull request process or/and through the
+Yocto mailing list. Refer to the
+[documentation](https://meta-raspberrypi.readthedocs.io/en/latest/contributing.html)
+for more information.
+
 ## Maintainers
 
 * Andrei Gherzan `<andrei at gherzan.com>`
diff --git a/meta-raspberrypi/classes/sdcard_image-rpi.bbclass b/meta-raspberrypi/classes/sdcard_image-rpi.bbclass
index a3a6939..1389720 100644
--- a/meta-raspberrypi/classes/sdcard_image-rpi.bbclass
+++ b/meta-raspberrypi/classes/sdcard_image-rpi.bbclass
@@ -79,11 +79,11 @@
     dts = d.getVar("KERNEL_DEVICETREE")
     # Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' (4.1.x) or by '.dtbo' (4.4.9+) string and will be put in a dedicated folder
     if out:
-        overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d)
-        overlays = oe.utils.str_filter_out('\S+\.dtbo$', overlays, d)
+        overlays = oe.utils.str_filter_out(r'\S+\-overlay\.dtb$', dts, d)
+        overlays = oe.utils.str_filter_out(r'\S+\.dtbo$', overlays, d)
     else:
-        overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d) + \
-                   " " + oe.utils.str_filter('\S+\.dtbo$', dts, d)
+        overlays = oe.utils.str_filter(r'\S+\-overlay\.dtb$', dts, d) + \
+                   " " + oe.utils.str_filter(r'\S+\.dtbo$', dts, d)
 
     return overlays
 
diff --git a/meta-raspberrypi/conf/layer.conf b/meta-raspberrypi/conf/layer.conf
index 7f634ae..d7ad4ed 100644
--- a/meta-raspberrypi/conf/layer.conf
+++ b/meta-raspberrypi/conf/layer.conf
@@ -9,7 +9,7 @@
 BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
 BBFILE_PRIORITY_raspberrypi = "9"
 
-LAYERSERIES_COMPAT_raspberrypi = "honister"
+LAYERSERIES_COMPAT_raspberrypi = "kirkstone"
 LAYERDEPENDS_raspberrypi = "core"
 
 # Additional license directories.
diff --git a/meta-raspberrypi/conf/machine/include/rpi-base.inc b/meta-raspberrypi/conf/machine/include/rpi-base.inc
index 0e65d00..a7a762c 100644
--- a/meta-raspberrypi/conf/machine/include/rpi-base.inc
+++ b/meta-raspberrypi/conf/machine/include/rpi-base.inc
@@ -23,6 +23,7 @@
     overlays/gpio-ir-tx.dtbo \
     overlays/gpio-key.dtbo \
     overlays/gpio-poweroff.dtbo \
+    overlays/gpio-shutdown.dtbo \
     overlays/hifiberry-amp.dtbo \
     overlays/hifiberry-dac.dtbo \
     overlays/hifiberry-dacplus.dtbo \
@@ -30,6 +31,7 @@
     overlays/justboom-both.dtbo \
     overlays/justboom-dac.dtbo \
     overlays/justboom-digi.dtbo \
+    overlays/i2c-gpio.dtbo \
     overlays/i2c-rtc.dtbo \
     overlays/imx219.dtbo \
     overlays/imx477.dtbo \
@@ -46,6 +48,7 @@
     overlays/rpi-ft5406.dtbo \
     overlays/rpi-poe.dtbo \
     overlays/vc4-fkms-v3d.dtbo \
+    overlays/vc4-fkms-v3d-pi4.dtbo \
     overlays/vc4-kms-v3d.dtbo \
     overlays/vc4-kms-v3d-pi4.dtbo \
     overlays/vc4-kms-dsi-7inch.dtbo \
@@ -97,6 +100,7 @@
 MACHINE_EXTRA_RRECOMMENDS += "kernel-modules udev-rules-rpi"
 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "${@oe.utils.conditional('ENABLE_I2C', '1', 'kernel-module-i2c-dev kernel-module-i2c-bcm2708', '', d)}"
 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "${@oe.utils.conditional('ENABLE_IR', '1', 'kernel-module-gpio-ir kernel-module-gpio-ir-tx', '', d)}"
+MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "${@oe.utils.conditional('ENABLE_GPIO_SHUTDOWN', '1', 'gpio-shutdown kernel-module-gpio-keys', '', d)}"
 
 SERIAL_CONSOLES_CHECK ??= "${SERIAL_CONSOLES}"
 
diff --git a/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc b/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc
index 17d5bd6..8ff2839 100644
--- a/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc
+++ b/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc
@@ -1,3 +1,3 @@
 # RaspberryPi BSP default versions
 
-PREFERRED_VERSION_linux-raspberrypi ??= "5.10.%"
+PREFERRED_VERSION_linux-raspberrypi ??= "5.15.%"
diff --git a/meta-raspberrypi/conf/machine/raspberrypi0-2w.conf b/meta-raspberrypi/conf/machine/raspberrypi0-2w.conf
new file mode 100644
index 0000000..c360d90
--- /dev/null
+++ b/meta-raspberrypi/conf/machine/raspberrypi0-2w.conf
@@ -0,0 +1,17 @@
+#@TYPE: Machine
+#@NAME: RaspberryPi0 2 Wifi Development Board
+#@DESCRIPTION: Machine configuration for the RaspberryPi0 2 Wifi in 32 bits mode
+
+include conf/machine/raspberrypi3.conf
+
+MACHINEOVERRIDES := "${@'${MACHINEOVERRIDES}'.replace(':${MACHINE}',':raspberrypi3:${MACHINE}')}"
+
+MACHINE_EXTRA_RRECOMMENDS += "\
+    linux-firmware-rpidistro-bcm43436 \
+    linux-firmware-rpidistro-bcm43436s \
+    bluez-firmware-rpidistro-bcm43430b0-hcd \
+"
+
+RPI_KERNEL_DEVICETREE = " \
+    bcm2710-rpi-zero-2.dtb \
+    "
diff --git a/meta-raspberrypi/conf/machine/raspberrypi4-64.conf b/meta-raspberrypi/conf/machine/raspberrypi4-64.conf
index 4255431..0cf7d51 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi4-64.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi4-64.conf
@@ -12,6 +12,8 @@
     bluez-firmware-rpidistro-bcm4345c5-hcd \
 "
 
+DEFAULTTUNE = "cortexa72"
+
 require conf/machine/include/arm/armv8a/tune-cortexa72.inc
 include conf/machine/include/rpi-base.inc
 
diff --git a/meta-raspberrypi/docs/contributing.md b/meta-raspberrypi/docs/contributing.md
index 5b712ae..9ecb6cb 100644
--- a/meta-raspberrypi/docs/contributing.md
+++ b/meta-raspberrypi/docs/contributing.md
@@ -86,6 +86,10 @@
 
     git send-email --to yocto@lists.yoctoproject.org <generated patch>
 
+When patches are sent through the mailing list, the maintainer will include
+them in a GitHub pull request that will take the patches through the CI
+workflows. This process happens periodically.
+
 ## GitHub issues
 
 In order to manage and track the layer issues more efficiently, the
diff --git a/meta-raspberrypi/docs/extra-apps.md b/meta-raspberrypi/docs/extra-apps.md
index 53007dc..dbbfb8d 100644
--- a/meta-raspberrypi/docs/extra-apps.md
+++ b/meta-raspberrypi/docs/extra-apps.md
@@ -6,4 +6,4 @@
 able to compile omxplayer you will need to whiteflag the commercial
 license in your local.conf:
 
-    LICENSE_FLAGS_WHITELIST = "commercial"
+    LICENSE_FLAGS_ACCEPTED = "commercial"
diff --git a/meta-raspberrypi/docs/extra-build-config.md b/meta-raspberrypi/docs/extra-build-config.md
index 82ec3c0..81eff07 100644
--- a/meta-raspberrypi/docs/extra-build-config.md
+++ b/meta-raspberrypi/docs/extra-build-config.md
@@ -320,6 +320,24 @@
 GPIO pin for gpio-ir is set to 18 and the pin for gpio-ir-tx is 17. Both pins
 can be easily changed by modifying variables `GPIO_IR` and `GPIO_IR_TX`.
 
+## Enable gpio-shutdown
+
+When using device tree kernels, set this variable to enable gpio-shutdown:
+
+    ENABLE_GPIO_SHUTDOWN = "1"
+
+This will add the corresponding device tree overlay to config.txt and include
+the gpio-keys kernel module in the image. If System V init is used, additional
+mapping is applied to bind the button event to shutdown command. Systemd init
+should handle the event out of the box.
+
+By default the feature uses gpio pin 3 (except RPi 1 Model B rev 1 enumerates
+the pin as gpio 1). This conflicts with the I2C bus. If you set `ENABLE_I2C`
+to `1` or enabled `PiTFT` support, or otherwise want to use another pin, use
+`GPIO_SHUTDOWN_PIN` to assign another pin. Example using gpio pin 25:
+
+     GPIO_SHUTDOWN_PIN = "25"
+
 ## Manual additions to config.txt
 
 The `RPI_EXTRA_CONFIG` variable can be used to manually add additional lines to
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-blinka_6.2.2.bb b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-blinka_6.2.2.bb
similarity index 94%
rename from meta-raspberrypi/recipes-devtools/python/python3-adafruit-blinka_6.2.2.bb
rename to meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-blinka_6.2.2.bb
index b9fb915..9e1e357 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-blinka_6.2.2.bb
+++ b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-blinka_6.2.2.bb
@@ -28,3 +28,6 @@
 "
 
 RDEPENDS:${PN}:append:rpi = " rpi-gpio"
+
+COMPATIBLE_HOST:libc-musl:class-target = "null"
+
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-busdevice_5.0.5.bb b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-busdevice_5.0.5.bb
similarity index 91%
rename from meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-busdevice_5.0.5.bb
rename to meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-busdevice_5.0.5.bb
index 2cf8afd..93491d4 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-busdevice_5.0.5.bb
+++ b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-busdevice_5.0.5.bb
@@ -16,3 +16,4 @@
     python3-adafruit-blinka \
     python3-core \
 "
+COMPATIBLE_HOST:libc-musl:class-target = "null"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motor_3.2.6.bb b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-motor_3.2.6.bb
similarity index 91%
rename from meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motor_3.2.6.bb
rename to meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-motor_3.2.6.bb
index d572cab..3233c8f 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motor_3.2.6.bb
+++ b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-motor_3.2.6.bb
@@ -16,3 +16,4 @@
     python3-adafruit-blinka \
     python3-core \
 "
+COMPATIBLE_HOST:libc-musl:class-target = "null"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motorkit_1.6.1.bb b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-motorkit_1.6.1.bb
similarity index 93%
rename from meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motorkit_1.6.1.bb
rename to meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-motorkit_1.6.1.bb
index 94eed3e..39fe76a 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motorkit_1.6.1.bb
+++ b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-motorkit_1.6.1.bb
@@ -20,3 +20,4 @@
     python3-adafruit-circuitpython-register \
     python3-core \
 "
+COMPATIBLE_HOST:libc-musl:class-target = "null"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-pca9685_3.3.4.bb b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-pca9685_3.3.4.bb
similarity index 92%
rename from meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-pca9685_3.3.4.bb
rename to meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-pca9685_3.3.4.bb
index 8656d75..f7f0ff1 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-pca9685_3.3.4.bb
+++ b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-pca9685_3.3.4.bb
@@ -18,3 +18,4 @@
     python3-adafruit-circuitpython-register \
     python3-core \
 "
+COMPATIBLE_HOST:libc-musl:class-target = "null"
diff --git a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
index f78c6d7..d9d8bb0 100644
--- a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
+++ b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
@@ -34,6 +34,8 @@
 
 WM8960="${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"
 
+GPIO_SHUTDOWN_PIN ??= ""
+
 inherit deploy nopackages
 
 do_deploy() {
@@ -253,6 +255,22 @@
         echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=25" >>$CONFIG
     fi
 
+
+    if [ "${ENABLE_GPIO_SHUTDOWN}" = "1" ]; then
+        if ([ "${ENABLE_I2C}" = "1" ] || [ "${PITFT}" = "1" ]) && [ -z "${GPIO_SHUTDOWN_PIN}" ]; then
+            # By default GPIO shutdown uses the same pin as the (master) I2C SCL.
+            # If I2C is configured and an alternative pin is not configured for
+            # gpio-shutdown, there is a configuration conflict.
+            bbfatal "I2C and gpio-shutdown are both enabled and using the same pins!"
+        fi
+        echo "# Enable gpio-shutdown" >> $CONFIG
+        if [ -z "${GPIO_SHUTDOWN_PIN}" ]; then
+            echo "dtoverlay=gpio-shutdown" >> $CONFIG
+        else
+            echo "dtoverlay=gpio-shutdown,gpio_pin=${GPIO_SHUTDOWN_PIN}" >> $CONFIG
+        fi
+    fi
+
     # Append extra config if the user has provided any
     printf "${RPI_EXTRA_CONFIG}\n" >> $CONFIG
 
diff --git a/meta-raspberrypi/recipes-bsp/gpio-shutdown/files/bind_gpio_shutdown.tab b/meta-raspberrypi/recipes-bsp/gpio-shutdown/files/bind_gpio_shutdown.tab
new file mode 100644
index 0000000..00cc485
--- /dev/null
+++ b/meta-raspberrypi/recipes-bsp/gpio-shutdown/files/bind_gpio_shutdown.tab
@@ -0,0 +1,2 @@
+# Action on special keypress (Key Power)
+kb::kbrequest:/sbin/shutdown -t1 -a -h -P now
diff --git a/meta-raspberrypi/recipes-bsp/gpio-shutdown/files/gpio-shutdown-keymap.sh b/meta-raspberrypi/recipes-bsp/gpio-shutdown/files/gpio-shutdown-keymap.sh
new file mode 100644
index 0000000..bae50da
--- /dev/null
+++ b/meta-raspberrypi/recipes-bsp/gpio-shutdown/files/gpio-shutdown-keymap.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+##
+# Bind the gpio-shutdown keycode as Keyboard signal and load it to the
+# keymap during startup.
+##
+case "$1" in
+    start)
+    # Inject the gpio keycode to keymap
+    echo "keycode 116 = KeyboardSignal" | loadkeys
+    ;;
+    *)
+    ;;
+esac
diff --git a/meta-raspberrypi/recipes-bsp/gpio-shutdown/gpio-shutdown.bb b/meta-raspberrypi/recipes-bsp/gpio-shutdown/gpio-shutdown.bb
new file mode 100644
index 0000000..d690840
--- /dev/null
+++ b/meta-raspberrypi/recipes-bsp/gpio-shutdown/gpio-shutdown.bb
@@ -0,0 +1,31 @@
+SUMMARY = "GPIO shutdown bindings for SysV init"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
+
+SRC_URI = "file://bind_gpio_shutdown.tab \
+    file://gpio-shutdown-keymap.sh \
+"
+
+inherit  update-rc.d
+
+INITSCRIPT_NAME = "gpio-shutdown-keymap.sh"
+# Run only once during startup
+INITSCRIPT_PARAMS = "start 99 S ."
+
+do_install() {
+    # The files are only needed if using SysV init.
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+        install -d ${D}${sysconfdir} \
+            ${D}${sysconfdir}/inittab.d \
+            ${D}${sysconfdir}/init.d
+
+        install -m 0755 ${WORKDIR}/gpio-shutdown-keymap.sh ${D}${sysconfdir}/init.d/
+        install -m 0755 ${WORKDIR}/bind_gpio_shutdown.tab ${D}${sysconfdir}/inittab.d/
+    elif ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+        # Systemd init does not require any configuration.
+        # Note: cannot have an empty branch, hence the redundant dir install.
+        install -d ${D}${sysconfdir}
+    else
+        bbwarn "Not using sysvinit or systemd. The gpio-shutdown may require additional configuration."
+    fi
+}
diff --git a/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.52.bb b/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.52.bb
index 87252bb..6538f6a 100644
--- a/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.52.bb
+++ b/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.52.bb
@@ -5,7 +5,7 @@
 HOMEPAGE = "http://www.open.com.au/mikem/bcm2835"
 AUTHOR = "Mike McCauley (mikem@open.com.au)"
 
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 COMPATIBLE_MACHINE = "^rpi$"
diff --git a/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.0.bb b/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.0.bb
index 8b13d53..574021e 100644
--- a/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.0.bb
+++ b/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.0.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=9b95630a648966b142f1a0dcea001cb7"
 
 PYPI_PACKAGE = "RPi.GPIO"
-inherit pypi distutils3
+inherit pypi setuptools3
 
 SRC_URI += "file://0001-Remove-nested-functions.patch"
 SRC_URI[md5sum] = "777617f9dea9a1680f9af43db0cf150e"
diff --git a/meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb b/meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb
index 1c8075f..f75806e 100644
--- a/meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb
+++ b/meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb
@@ -2,7 +2,7 @@
 GPIO interrups, TCP socket interrupts, command line tools and more"
 HOMEPAGE = "https://github.com/metachris/RPIO"
 SECTION = "devel/python"
-LICENSE = "LGPLv3+"
+LICENSE = "LGPL-3.0-or-later"
 LIC_FILES_CHKSUM = "file://README.rst;beginline=41;endline=53;md5=d5d95d7486a4d98c999675c23196b25a"
 
 PYPI_PACKAGE = "RPIO"
diff --git a/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend b/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
index 25829c2..ee4812f 100644
--- a/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
+++ b/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
@@ -1,4 +1,4 @@
-OPENGL_PKGCONFIGS:rpi = "dri glx ${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'dri3 xshmfence glamor', '', d)}"
+OPENGL_PKGCONFIGS:rpi = "dri glx ${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'dri3 glamor', '', d)}"
 
 # when using userland graphic KHR/khrplatform.h is provided by userland but virtual/libgl is provided by mesa-gl where
 # we explicitly delete KHR/khrplatform.h since its already coming from userland package
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
index ea47b56..f790c3c 100644
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
@@ -1,6 +1,6 @@
 DESCRIPTION = "Linux Kernel for Raspberry Pi"
 SECTION = "kernel"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
 COMPATIBLE_MACHINE = "^rpi$"
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb
index c28968c..b3122e5 100644
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb
@@ -1,8 +1,8 @@
-LINUX_VERSION ?= "5.10.81"
+LINUX_VERSION ?= "5.10.83"
 LINUX_RPI_BRANCH ?= "rpi-5.10.y"
 LINUX_RPI_KMETA_BRANCH ?= "yocto-5.10"
 
-SRCREV_machine = "f9bd396cd0f5f8c2026473f1e570deed3d08d350"
+SRCREV_machine = "111a297d94e361de88d04b574acbca1bd5858cdb"
 SRCREV_meta = "e1979ceb171bc91ef2cb71cfcde548a101dab687"
 
 KMETA = "kernel-meta"
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.15.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.15.bb
new file mode 100644
index 0000000..699a31f
--- /dev/null
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.15.bb
@@ -0,0 +1,19 @@
+LINUX_VERSION ?= "5.15.24"
+LINUX_RPI_BRANCH ?= "rpi-5.15.y"
+LINUX_RPI_KMETA_BRANCH ?= "yocto-5.15"
+
+SRCREV_machine = "770d94882ac145c81af72e9a37180806c3f70bbd"
+SRCREV_meta = "e1b976ee4fb5af517cf01a9f2dd4a32f560ca894"
+
+KMETA = "kernel-meta"
+
+SRC_URI = " \
+    git://github.com/raspberrypi/linux.git;name=machine;branch=${LINUX_RPI_BRANCH};protocol=https \
+    git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=${LINUX_RPI_KMETA_BRANCH};destsuffix=${KMETA} \
+    file://powersave.cfg \
+    file://android-drivers.cfg \
+    "
+
+require linux-raspberrypi.inc
+
+KERNEL_DTC_FLAGS += "-@ -H epapr"
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
index 4a815ab..2bf6281 100644
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
@@ -1,2 +1,2 @@
-PACKAGECONFIG:append:rpi = " hls libmms \
-                   ${@bb.utils.contains('LICENSE_FLAGS_WHITELIST', 'commercial', 'faad', '', d)}"
+PACKAGECONFIG:append:rpi = " hls \
+                   ${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'gpl faad', '', d)}"
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.%.bbappend b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.%.bbappend
similarity index 100%
rename from meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.%.bbappend
rename to meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.%.bbappend
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
index 64233b3..2519692 100644
--- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
@@ -4,7 +4,7 @@
 HOMEPAGE = "https://github.com/popcornmix/omxplayer"
 SECTION = "console/utils"
 
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=00a27da7ac0f9bcd17320ec29ef4bbf6"
 
 DEPENDS = "libpcre libav virtual/egl boost freetype dbus openssl libssh virtual/libomxil coreutils-native curl-native userland"
diff --git a/meta-raspberrypi/recipes-multimedia/picamera-libs/picamera-libs.bb b/meta-raspberrypi/recipes-multimedia/picamera-libs/picamera-libs.bb
new file mode 100644
index 0000000..c1356f0
--- /dev/null
+++ b/meta-raspberrypi/recipes-multimedia/picamera-libs/picamera-libs.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Raspberrypi firmware libraries which are required by picamera library"
+DESCRIPTION = "Raspberrypi firmware libraries required by picamera library"
+LICENSE = "Broadcom-RPi"
+
+LIC_FILES_CHKSUM = "file://opt/vc/LICENCE;md5=86e53f5f5909ee66900418028de11780"
+
+include recipes-bsp/common/raspberrypi-firmware.inc
+
+S = "${WORKDIR}/firmware-${SRCREV}"
+
+do_install(){
+    install -m 0755 -d ${D}${libdir}
+    install -m 0755 ${S}/opt/vc/lib/*.so ${D}${libdir}
+}
+
+FILES:${PN} = "${libdir}"
+
+#skipping the QA error since we are directly copying precompiled binaries
+INSANE_SKIP:${PN} = "ldflags"
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+SOLIBS = ".so"
+FILES_SOLIBSDEV = ""
+
+COMPATIBLE_HOST = "null"
+COMPATIBLE_HOST:rpi:libc-glibc = "(arm.*)-linux"
diff --git a/meta-raspberrypi/recipes-multimedia/python3-picamera/python3-picamera_git.bb b/meta-raspberrypi/recipes-multimedia/python3-picamera/python3-picamera_git.bb
new file mode 100644
index 0000000..f14941b
--- /dev/null
+++ b/meta-raspberrypi/recipes-multimedia/python3-picamera/python3-picamera_git.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Python interface to the Raspberry Pi camera module"
+DESCRIPTION = "This package provides a pure Python interface to the Raspberry Pi camera module for Python 2.7 (or above) or Python 3.2 (or above)."
+HOMEPAGE = "https://github.com/waveform80/picamera" 
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4de8aab427192e4a8322a71375d20e21"
+
+RDEPENDS:${PN} = "python3-numbers   \
+                  python3-ctypes    \
+                  python3-colorzero \
+                  picamera-libs     \
+"
+
+SRC_URI = "git://git@github.com/waveform80/picamera.git;protocol=ssh;branch=master"
+SRCREV = "7e4f1d379d698c44501fb84b886fadf3fc164b70"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+COMPATIBLE_HOST = "null"
+COMPATIBLE_HOST:rpi:libc-glibc = "(arm.*)-linux"