subtree updates

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

  Vincent Davis Jr (1):
        docs: remove backticks

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  gr embeter (1):
        efivar: fix import functionality

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

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

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

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

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

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

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

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

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

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

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

  Chen Qi (1):
        catfish: fix buildpaths issue

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I50c531a69ce8abb23e33c380f9228015f2764682
diff --git a/poky/scripts/devtool b/poky/scripts/devtool
index af4811b..20d785c 100755
--- a/poky/scripts/devtool
+++ b/poky/scripts/devtool
@@ -104,6 +104,7 @@
     for fn in glob.glob(os.path.join(config.workspace_path, 'appends', '*.bbappend')):
         with open(fn, 'r') as f:
             pnvalues = {}
+            pn = None
             for line in f:
                 res = externalsrc_re.match(line.rstrip())
                 if res:
@@ -123,6 +124,9 @@
                 elif line.startswith('# srctreebase: '):
                     pnvalues['srctreebase'] = line.split(':', 1)[1].strip()
             if pnvalues:
+                if not pn:
+                    raise DevtoolError("Found *.bbappend in %s, but could not determine EXTERNALSRC:pn-*. "
+                            "Maybe still using old syntax?" % config.workspace_path)
                 if not pnvalues.get('srctreebase', None):
                     pnvalues['srctreebase'] = pnvalues['srctree']
                 logger.debug('Found recipe %s' % pnvalues)
@@ -314,10 +318,10 @@
 
     args = parser.parse_args(unparsed_args, namespace=global_args)
 
-    if not getattr(args, 'no_workspace', False):
-        read_workspace()
-
     try:
+        if not getattr(args, 'no_workspace', False):
+            read_workspace()
+
         ret = args.func(args, config, basepath, workspace)
     except DevtoolError as err:
         if str(err):
diff --git a/poky/scripts/lib/devtool/upgrade.py b/poky/scripts/lib/devtool/upgrade.py
index 0357ec0..39a1910 100644
--- a/poky/scripts/lib/devtool/upgrade.py
+++ b/poky/scripts/lib/devtool/upgrade.py
@@ -119,20 +119,19 @@
             f.write('# original_files: %s\n' % ' '.join(copied))
     return af
 
-def _cleanup_on_error(rf, srctree):
-    rfp = os.path.split(rf)[0] # recipe folder
-    rfpp = os.path.split(rfp)[0] # recipes folder
-    if os.path.exists(rfp):
-        shutil.rmtree(rfp)
-    if not len(os.listdir(rfpp)):
-        os.rmdir(rfpp)
+def _cleanup_on_error(rd, srctree):
+    rdp = os.path.split(rd)[0] # recipes folder
+    if os.path.exists(rd):
+        shutil.rmtree(rd)
+    if not len(os.listdir(rdp)):
+        os.rmdir(rdp)
     srctree = os.path.abspath(srctree)
     if os.path.exists(srctree):
         shutil.rmtree(srctree)
 
-def _upgrade_error(e, rf, srctree, keep_failure=False, extramsg=None):
-    if rf and not keep_failure:
-        _cleanup_on_error(rf, srctree)
+def _upgrade_error(e, rd, srctree, keep_failure=False, extramsg=None):
+    if not keep_failure:
+        _cleanup_on_error(rd, srctree)
     logger.error(e)
     if extramsg:
         logger.error(extramsg)
@@ -337,7 +336,10 @@
         replacing = True
         new_src_uri = []
         for entry in src_uri:
-            scheme, network, path, user, passwd, params = bb.fetch2.decodeurl(entry)
+            try:
+                scheme, network, path, user, passwd, params = bb.fetch2.decodeurl(entry)
+            except bb.fetch2.MalformedUrl as e:
+                raise DevtoolError("Could not decode SRC_URI: {}".format(e))
             if replacing and scheme in ['git', 'gitsm']:
                 branch = params.get('branch', 'master')
                 if rd.expand(branch) != srcbranch:
@@ -426,7 +428,7 @@
     try:
         rd = tinfoil.parse_recipe_file(fullpath, False)
     except bb.tinfoil.TinfoilCommandFailed as e:
-        _upgrade_error(e, fullpath, srctree, keep_failure, 'Parsing of upgraded recipe failed')
+        _upgrade_error(e, os.path.dirname(fullpath), srctree, keep_failure, 'Parsing of upgraded recipe failed')
     oe.recipeutils.patch_recipe(rd, fullpath, newvalues)
 
     return fullpath, copied
@@ -568,10 +570,9 @@
             new_licenses = _extract_licenses(srctree_s, (rd.getVar('LIC_FILES_CHKSUM') or ""))
             license_diff = _generate_license_diff(old_licenses, new_licenses)
             rf, copied = _create_new_recipe(args.version, md5, sha256, args.srcrev, srcbranch, srcsubdir1, srcsubdir2, config.workspace_path, tinfoil, rd, license_diff, new_licenses, srctree, args.keep_failure)
-        except bb.process.CmdError as e:
-            _upgrade_error(e, rf, srctree, args.keep_failure)
-        except DevtoolError as e:
-            _upgrade_error(e, rf, srctree, args.keep_failure)
+        except (bb.process.CmdError, DevtoolError) as e:
+            recipedir = os.path.join(config.workspace_path, 'recipes', rd.getVar('BPN'))
+            _upgrade_error(e, recipedir, srctree, args.keep_failure)
         standard._add_md5(config, pn, os.path.dirname(rf))
 
         af = _write_append(rf, srctree_s, args.same_dir, args.no_same_dir, rev2,
diff --git a/poky/scripts/lib/wic/misc.py b/poky/scripts/lib/wic/misc.py
index 3bc165f..2b90821 100644
--- a/poky/scripts/lib/wic/misc.py
+++ b/poky/scripts/lib/wic/misc.py
@@ -141,11 +141,12 @@
         cmd_and_args = pseudo + cmd_and_args
 
     hosttools_dir = get_bitbake_var("HOSTTOOLS_DIR")
+    target_sys = get_bitbake_var("TARGET_SYS")
 
-    native_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin:%s/bin:%s" % \
+    native_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin:%s/usr/bin/%s:%s/bin:%s" % \
                    (native_sysroot, native_sysroot,
-                    native_sysroot, native_sysroot,
-                    hosttools_dir)
+                    native_sysroot, native_sysroot, target_sys,
+                    native_sysroot, hosttools_dir)
 
     native_cmd_and_args = "export PATH=%s:$PATH;%s" % \
                    (native_paths, cmd_and_args)
diff --git a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
index 0391aeb..634a808 100644
--- a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
+++ b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
@@ -35,6 +35,26 @@
     name = 'bootimg-efi'
 
     @classmethod
+    def _copy_additional_files(cls, hdddir, initrd, dtb):
+        bootimg_dir = get_bitbake_var("DEPLOY_DIR_IMAGE")
+        if not bootimg_dir:
+            raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting")
+
+        if initrd:
+            initrds = initrd.split(';')
+            for rd in initrds:
+                cp_cmd = "cp %s/%s %s" % (bootimg_dir, rd, hdddir)
+                exec_cmd(cp_cmd, True)
+        else:
+            logger.debug("Ignoring missing initrd")
+
+        if dtb:
+            if ';' in dtb:
+                raise WicError("Only one DTB supported, exiting")
+            cp_cmd = "cp %s/%s %s" % (bootimg_dir, dtb, hdddir)
+            exec_cmd(cp_cmd, True)
+
+    @classmethod
     def do_configure_grubefi(cls, hdddir, creator, cr_workdir, source_params):
         """
         Create loader-specific (grub-efi) config
@@ -53,18 +73,9 @@
                                "get it from %s." % configfile)
 
         initrd = source_params.get('initrd')
+        dtb = source_params.get('dtb')
 
-        if initrd:
-            bootimg_dir = get_bitbake_var("DEPLOY_DIR_IMAGE")
-            if not bootimg_dir:
-                raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting")
-
-            initrds = initrd.split(';')
-            for rd in initrds:
-                cp_cmd = "cp %s/%s %s" % (bootimg_dir, rd, hdddir)
-                exec_cmd(cp_cmd, True)
-        else:
-            logger.debug("Ignoring missing initrd")
+        cls._copy_additional_files(hdddir, initrd, dtb)
 
         if not custom_cfg:
             # Create grub configuration using parameters from wks file
@@ -98,6 +109,9 @@
                     grubefi_conf += " /%s" % rd
                 grubefi_conf += "\n"
 
+            if dtb:
+                grubefi_conf += "devicetree /%s\n" % dtb
+
             grubefi_conf += "}\n"
 
         logger.debug("Writing grubefi config %s/hdd/boot/EFI/BOOT/grub.cfg",
@@ -119,25 +133,18 @@
 
         bootloader = creator.ks.bootloader
 
+        unified_image = source_params.get('create-unified-kernel-image') == "true"
+
         loader_conf = ""
-        if source_params.get('create-unified-kernel-image') != "true":
+        if not unified_image:
             loader_conf += "default boot\n"
         loader_conf += "timeout %d\n" % bootloader.timeout
 
         initrd = source_params.get('initrd')
+        dtb = source_params.get('dtb')
 
-        if initrd and source_params.get('create-unified-kernel-image') != "true":
-            # obviously we need to have a common common deploy var
-            bootimg_dir = get_bitbake_var("DEPLOY_DIR_IMAGE")
-            if not bootimg_dir:
-                raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting")
-
-            initrds = initrd.split(';')
-            for rd in initrds:
-                cp_cmd = "cp %s/%s %s" % (bootimg_dir, rd, hdddir)
-                exec_cmd(cp_cmd, True)
-        else:
-            logger.debug("Ignoring missing initrd")
+        if not unified_image:
+            cls._copy_additional_files(hdddir, initrd, dtb)
 
         logger.debug("Writing systemd-boot config "
                      "%s/hdd/boot/loader/loader.conf", cr_workdir)
@@ -185,7 +192,10 @@
                 for rd in initrds:
                     boot_conf += "initrd /%s\n" % rd
 
-        if source_params.get('create-unified-kernel-image') != "true":
+            if dtb:
+                boot_conf += "devicetree /%s\n" % dtb
+
+        if not unified_image:
             logger.debug("Writing systemd-boot config "
                          "%s/hdd/boot/loader/entries/boot.conf", cr_workdir)
             cfg = open("%s/hdd/boot/loader/entries/boot.conf" % cr_workdir, "w")
@@ -320,27 +330,36 @@
                         shutil.copyfileobj(in_file, initrd)
                 initrd.close()
 
+                dtb = source_params.get('dtb')
+                if dtb:
+                    if ';' in dtb:
+                        raise WicError("Only one DTB supported, exiting")
+                    dtb_params = '--add-section .dtb=%s/%s --change-section-vma .dtb=0x40000' % \
+                        (deploy_dir, dtb)
+                else:
+                    dtb_params = ''
+
                 # Searched by systemd-boot:
                 # https://systemd.io/BOOT_LOADER_SPECIFICATION/#type-2-efi-unified-kernel-images
                 install_cmd = "install -d %s/EFI/Linux" % hdddir
                 exec_cmd(install_cmd)
 
                 staging_dir_host = get_bitbake_var("STAGING_DIR_HOST")
+                target_sys = get_bitbake_var("TARGET_SYS")
 
                 # https://www.freedesktop.org/software/systemd/man/systemd-stub.html
-                objcopy_cmd = "objcopy \
-                    --add-section .osrel=%s --change-section-vma .osrel=0x20000 \
-                    --add-section .cmdline=%s --change-section-vma .cmdline=0x30000 \
-                    --add-section .linux=%s --change-section-vma .linux=0x2000000 \
-                    --add-section .initrd=%s --change-section-vma .initrd=0x3000000 \
-                    %s %s" % \
-                    ("%s/usr/lib/os-release" % staging_dir_host,
-                    cmdline.name,
-                    "%s/%s" % (staging_kernel_dir, kernel),
-                    initrd.name,
-                    efi_stub,
-                    "%s/EFI/Linux/linux.efi" % hdddir)
-                exec_cmd(objcopy_cmd)
+                objcopy_cmd = "%s-objcopy" % target_sys
+                objcopy_cmd += " --add-section .osrel=%s/usr/lib/os-release" % staging_dir_host
+                objcopy_cmd += " --change-section-vma .osrel=0x20000"
+                objcopy_cmd += " --add-section .cmdline=%s" % cmdline.name
+                objcopy_cmd += " --change-section-vma .cmdline=0x30000"
+                objcopy_cmd += dtb_params
+                objcopy_cmd += " --add-section .linux=%s/%s" % (staging_kernel_dir, kernel)
+                objcopy_cmd += " --change-section-vma .linux=0x2000000"
+                objcopy_cmd += " --add-section .initrd=%s" % initrd.name
+                objcopy_cmd += " --change-section-vma .initrd=0x3000000"
+                objcopy_cmd += " %s %s/EFI/Linux/linux.efi" % (efi_stub, hdddir)
+                exec_native_cmd(objcopy_cmd, native_sysroot)
         else:
             install_cmd = "install -m 0644 %s/%s %s/%s" % \
                 (staging_kernel_dir, kernel, hdddir, kernel)
diff --git a/poky/scripts/lib/wic/plugins/source/rootfs.py b/poky/scripts/lib/wic/plugins/source/rootfs.py
index 25bb41d..fc06312 100644
--- a/poky/scripts/lib/wic/plugins/source/rootfs.py
+++ b/poky/scripts/lib/wic/plugins/source/rootfs.py
@@ -35,7 +35,7 @@
     @staticmethod
     def __validate_path(cmd, rootfs_dir, path):
         if os.path.isabs(path):
-            logger.error("%s: Must be relative: %s" % (cmd, orig_path))
+            logger.error("%s: Must be relative: %s" % (cmd, path))
             sys.exit(1)
 
         # Disallow climbing outside of parent directory using '..',
diff --git a/poky/scripts/oe-setup-builddir b/poky/scripts/oe-setup-builddir
index 54048e6..5d64416 100755
--- a/poky/scripts/oe-setup-builddir
+++ b/poky/scripts/oe-setup-builddir
@@ -74,9 +74,10 @@
 if [ ! -r "$BUILDDIR/conf/local.conf" ]; then
     cat <<EOM
 You had no conf/local.conf file. This configuration file has therefore been
-created for you with some default values. You may wish to edit it to, for
-example, select a different MACHINE (target hardware). See conf/local.conf
-for more information as common configuration options are commented.
+created for you from $OECORELOCALCONF
+You may wish to edit it to, for example, select a different MACHINE (target
+hardware). See conf/local.conf for more information as common configuration
+options are commented.
 
 EOM
     cp -f "$OECORELOCALCONF" "$BUILDDIR/conf/local.conf"
@@ -89,8 +90,9 @@
 if [ ! -r "$BUILDDIR/conf/bblayers.conf" ]; then
     cat <<EOM
 You had no conf/bblayers.conf file. This configuration file has therefore been
-created for you with some default values. To add additional metadata layers
-into your configuration please add entries to conf/bblayers.conf.
+created for you from $OECORELAYERCONF
+To add additional metadata layers into your configuration please add entries
+to conf/bblayers.conf.
 
 EOM
 
diff --git a/poky/scripts/pybootchartgui/pybootchartgui/draw.py b/poky/scripts/pybootchartgui/pybootchartgui/draw.py
index a13df3a..4326361 100644
--- a/poky/scripts/pybootchartgui/pybootchartgui/draw.py
+++ b/poky/scripts/pybootchartgui/pybootchartgui/draw.py
@@ -88,6 +88,10 @@
 IO_PRESSURE_AVG10_COLOR = (0.0, 0.0, 0.0, 1.0)
 # delta total IO pressure color
 IO_PRESSURE_TOTAL_COLOR = IO_COLOR
+# avg10 memory pressure color
+MEM_PRESSURE_AVG10_COLOR = (0.0, 0.0, 0.0, 1.0)
+# delta total memory pressure color
+MEM_PRESSURE_TOTAL_COLOR = DISK_TPUT_COLOR
 
 
 
@@ -429,8 +433,10 @@
 
     # render CPU pressure chart
     if trace.cpu_pressure:
-        draw_legend_line(ctx, "avg10 CPU Pressure", CPU_PRESSURE_AVG10_COLOR, off_x, curr_y+20, leg_s)
-        draw_legend_box(ctx, "delta total CPU Pressure", CPU_PRESSURE_TOTAL_COLOR, off_x + 140, curr_y+20, leg_s)
+        max_sample_avg = max (trace.cpu_pressure, key = lambda s: s.avg10)
+        max_sample_total = max (trace.cpu_pressure, key = lambda s: s.deltaTotal)
+        draw_legend_line(ctx, "avg10 CPU Pressure (max %d%%)"  % (max_sample_avg.avg10), CPU_PRESSURE_AVG10_COLOR, off_x, curr_y+20, leg_s)
+        draw_legend_box(ctx, "delta total CPU Pressure (max %d)" % (max_sample_total.deltaTotal), CPU_PRESSURE_TOTAL_COLOR, off_x + 240, curr_y+20, leg_s)
 
         # render delta total cpu
         chart_rect = (off_x, curr_y+30, w, bar_h)
@@ -442,30 +448,31 @@
                     proc_tree, None)
 
         # render avg10 cpu
-        max_sample = max (trace.cpu_pressure, key = lambda s: s.avg10)
         if clip_visible (clip, chart_rect):
             draw_chart (ctx, CPU_PRESSURE_AVG10_COLOR, False, chart_rect, \
                     [(sample.time, sample.avg10) for sample in trace.cpu_pressure], \
                     proc_tree, None)
 
-        pos_x = off_x + ((max_sample.time - proc_tree.start_time) * w / proc_tree.duration)
+        pos_x = off_x + ((max_sample_avg.time - proc_tree.start_time) * w / proc_tree.duration)
 
         shift_x, shift_y = -20, 20
         if (pos_x < off_x + 245):
             shift_x, shift_y = 5, 40
 
 
-        label = "%d%%" % (max_sample.avg10)
+        label = "%d%%" % (max_sample_avg.avg10)
         draw_text (ctx, label, CPU_PRESSURE_AVG10_COLOR, pos_x + shift_x, curr_y + shift_y)
 
         curr_y = curr_y + 30 + bar_h
 
-    # render delta total io
+    # render I/O pressure chart
     if trace.io_pressure:
-        draw_legend_line(ctx, "avg10 I/O Pressure", IO_PRESSURE_AVG10_COLOR, off_x, curr_y+20, leg_s)
-        draw_legend_box(ctx, "delta total I/O Pressure", IO_PRESSURE_TOTAL_COLOR, off_x + 140, curr_y+20, leg_s)
+        max_sample_avg = max (trace.io_pressure, key = lambda s: s.avg10)
+        max_sample_total = max (trace.io_pressure, key = lambda s: s.deltaTotal)
+        draw_legend_line(ctx, "avg10 I/O Pressure (max %d%%)"  % (max_sample_avg.avg10), IO_PRESSURE_AVG10_COLOR, off_x, curr_y+20, leg_s)
+        draw_legend_box(ctx, "delta total I/O Pressure (max %d)" % (max_sample_total.deltaTotal), IO_PRESSURE_TOTAL_COLOR, off_x + 240, curr_y+20, leg_s)
 
-        # render avg10 io
+        # render delta total io
         chart_rect = (off_x, curr_y+30, w, bar_h)
         if clip_visible (clip, chart_rect):
             draw_box_ticks (ctx, chart_rect, sec_w)
@@ -474,24 +481,58 @@
                     [(sample.time, sample.deltaTotal) for sample in trace.io_pressure], \
                     proc_tree, None)
 
-        # render io pressure
-        max_sample = max (trace.io_pressure, key = lambda s: s.avg10)
+        # render avg10 io
         if clip_visible (clip, chart_rect):
             draw_chart (ctx, IO_PRESSURE_AVG10_COLOR, False, chart_rect, \
                     [(sample.time, sample.avg10) for sample in trace.io_pressure], \
                     proc_tree, None)
 
-        pos_x = off_x + ((max_sample.time - proc_tree.start_time) * w / proc_tree.duration)
+        pos_x = off_x + ((max_sample_avg.time - proc_tree.start_time) * w / proc_tree.duration)
 
         shift_x, shift_y = -20, 20
         if (pos_x < off_x + 245):
             shift_x, shift_y = 5, 40
 
-        label = "%d%%" % (max_sample.avg10)
+
+        label = "%d%%" % (max_sample_avg.avg10)
         draw_text (ctx, label, IO_PRESSURE_AVG10_COLOR, pos_x + shift_x, curr_y + shift_y)
 
         curr_y = curr_y + 30 + bar_h
 
+    # render MEM pressure chart
+    if trace.mem_pressure:
+        max_sample_avg = max (trace.mem_pressure, key = lambda s: s.avg10)
+        max_sample_total = max (trace.mem_pressure, key = lambda s: s.deltaTotal)
+        draw_legend_line(ctx, "avg10 MEM Pressure (max %d%%)"  % (max_sample_avg.avg10), MEM_PRESSURE_AVG10_COLOR, off_x, curr_y+20, leg_s)
+        draw_legend_box(ctx, "delta total MEM Pressure (max %d)" % (max_sample_total.deltaTotal), MEM_PRESSURE_TOTAL_COLOR, off_x + 240, curr_y+20, leg_s)
+
+        # render delta total mem
+        chart_rect = (off_x, curr_y+30, w, bar_h)
+        if clip_visible (clip, chart_rect):
+            draw_box_ticks (ctx, chart_rect, sec_w)
+            draw_annotations (ctx, proc_tree, trace.times, chart_rect)
+            draw_chart (ctx, MEM_PRESSURE_TOTAL_COLOR, True, chart_rect, \
+                    [(sample.time, sample.deltaTotal) for sample in trace.mem_pressure], \
+                    proc_tree, None)
+
+        # render avg10 mem
+        if clip_visible (clip, chart_rect):
+            draw_chart (ctx, MEM_PRESSURE_AVG10_COLOR, False, chart_rect, \
+                    [(sample.time, sample.avg10) for sample in trace.mem_pressure], \
+                    proc_tree, None)
+
+        pos_x = off_x + ((max_sample_avg.time - proc_tree.start_time) * w / proc_tree.duration)
+
+        shift_x, shift_y = -20, 20
+        if (pos_x < off_x + 245):
+            shift_x, shift_y = 5, 40
+
+
+        label = "%d%%" % (max_sample_avg.avg10)
+        draw_text (ctx, label, MEM_PRESSURE_AVG10_COLOR, pos_x + shift_x, curr_y + shift_y)
+
+        curr_y = curr_y + 30 + bar_h
+
     # render disk space usage
     #
     # Draws the amount of disk space used on each volume relative to the
@@ -775,7 +816,7 @@
         cmdString = proc.cmd
     else:
         cmdString = ''
-    if (OPTIONS.show_pid or OPTIONS.show_all) and ipid is not 0:
+    if (OPTIONS.show_pid or OPTIONS.show_all) and ipid != 0:
         cmdString = cmdString + " [" + str(ipid // 1000) + "]"
     if OPTIONS.show_all:
         if proc.args:
@@ -873,7 +914,7 @@
         if self.color is None:
             i = self.next() % HSV_MAX_MOD
             h = 0.0
-            if i is not 0:
+            if i != 0:
                 h = (1.0 * i) / HSV_MAX_MOD
             s = 0.5
             v = 1.0
diff --git a/poky/scripts/pybootchartgui/pybootchartgui/parsing.py b/poky/scripts/pybootchartgui/pybootchartgui/parsing.py
index 004d6fb..362d515 100644
--- a/poky/scripts/pybootchartgui/pybootchartgui/parsing.py
+++ b/poky/scripts/pybootchartgui/pybootchartgui/parsing.py
@@ -51,6 +51,7 @@
         self.monitor_disk = None
         self.cpu_pressure = []
         self.io_pressure = []
+        self.mem_pressure = []
         self.times = [] # Always empty, but expected by draw.py when drawing system charts.
 
         if len(paths):
@@ -564,6 +565,8 @@
     pressure_stats = []
     if filename == "cpu.log":
         SamplingClass = CPUPressureSample
+    elif filename == "memory.log":
+        SamplingClass = MemPressureSample
     else:
         SamplingClass = IOPressureSample
     for time, lines in _parse_timed_blocks(file):
@@ -769,6 +772,8 @@
         state.cpu_pressure = _parse_pressure_logs(file, name)
     elif name == "io.log":
         state.io_pressure = _parse_pressure_logs(file, name)
+    elif name == "memory.log":
+        state.mem_pressure = _parse_pressure_logs(file, name)
     elif not filename.endswith('.log'):
         _parse_bitbake_buildstats(writer, state, filename, file)
     t2 = time.process_time()
diff --git a/poky/scripts/pybootchartgui/pybootchartgui/samples.py b/poky/scripts/pybootchartgui/pybootchartgui/samples.py
index 472dc27..a70d8a5 100644
--- a/poky/scripts/pybootchartgui/pybootchartgui/samples.py
+++ b/poky/scripts/pybootchartgui/pybootchartgui/samples.py
@@ -53,6 +53,14 @@
         self.avg300 = avg300
         self.deltaTotal = deltaTotal
 
+class MemPressureSample:
+    def __init__(self, time, avg10, avg60, avg300, deltaTotal):
+        self.time = time
+        self.avg10 = avg10
+        self.avg60 = avg60
+        self.avg300 = avg300
+        self.deltaTotal = deltaTotal
+
 
 class MemSample:
     used_values = ('MemTotal', 'MemFree', 'Buffers', 'Cached', 'SwapTotal', 'SwapFree',)
diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu
index b4c1ae6..b6fc212 100755
--- a/poky/scripts/runqemu
+++ b/poky/scripts/runqemu
@@ -1375,7 +1375,7 @@
             elif "-display sdl" in output:
                 self.sdl = True
             else:
-                self.qemu_opt += '-display none'
+                self.qemu_opt += ' -display none'
 
         if self.sdl == True or self.gtk == True or self.egl_headless == True: