subtree updates

meta-openembedded: f3018013ff..3b245e4fe8:
  Adrian Bunk (8):
        Remove start-stop-daemon
        dvb-apps: Remove workaround patch for ancient target compilers
        Remove ipsec-tools and umip
        gpsd: Switch PACKAGECONFIG[qt] from Qt4 to Qt5
        samba: Upgrade 4.8.11 -> 4.8.12
        recipes-devtools: Move back from meta-networking to meta-perl
        wireless-regdb: Upgrade 2019.03.01 -> 2019.06.03
        mcelog: Remove manual RDEPENDS from PN-ptest to PN package

  Alejandro del Castillo (1):
        apache2: add all extra/*.conf to conffiles

  Alistair Francis (1):
        python-obd: Uprade from 0.7.0 to 0.7.1

  Andreas Müller (1):
        python-six: put python2/3 variant together

  Andrei Gherzan (2):
        modemmanager: Update to 1.10.0
        networkmanager: Update to 1.18.0

  Ankit Navik (1):
        safec: Initial recipe for safe C library

  Carlos Rafael Giani (1):
        openh264: Fix armv7ve build

  Changqing Li (11):
        syslog-ng: add rconflict for package syslog-ng-libs
        netkit-telnet: add rconflicts
        samba/libldb: add rconflicts
        php-fpm-apache: fix module path
        phoronix-test-suite: upgrade from 8.6.0 -> 8.8.1
        python-pygobject: upgrade 3.28.3 -> 3.32.1
        rrdtool: upgrade 1.7.1 -> 1.7.2
        php: upgrade 7.3.4 -> 7.3.6
        xf86-video-ati: upgrade 18.0.1 -> 19.0.1
        pavucontrol: upgrade 3.0 -> 4.0
        multipath-tools: upgrade 0.8.0 -> 0.8.1

  Herman van Hazendonk (1):
        Geoclue: Update to 2.5.3

  Hongxu Jia (4):
        rrdtool: improve reproducibility
        crash: do not use unstable github archive tarballs
        postgresql: improve reproducibility
        net-snmp: split net-snmp-config to package net-snmp-dev

  Hongzhi.Song (1):
        spice: fix compile errors on 32bit system

  Horvath, Chris (1):
        lcov: Upgrade 1.11 -> 1.14

  James Feist (1):
        libgpiod: Enable cxx bindings by default

  Kai Kang (16):
        xfce4-session: 4.13.1 -> 4.13.2
        xfce4-screensaver: add recipe
        packagegroup-xfce-extended: add xfce4-screensaver
        lxdm: provides fake gdmflexiserver for xfce desktop environment
        thunar: 1.8.4 -> 1.8.6
        xfdesktop: 4.13.3 -> 4.13.4
        xfce4-panel: 4.13.4 -> 4.13.5
        thunar-volman: 0.9.1 -> 0.9.2
        xfce4-appfinder: 4.13.2 -> 4.13.3
        libxfce4util: 4.13.2 -> 4.13.3
        xfwm4: 4.13.1 -> 4.13.2
        xfconf: 4.13.6 -> 4.13.7
        libxfce4ui: 4.13.4 -> 4.13.5
        xfce4-power-manager: 1.6.1 -> 1.6.2
        xfce4-settings: set default theme Adwaita
        lxdm: provides fake gdmflexiserver for xfce desktop environment

  Khem Raj (8):
        libnfc: Fix build with musl
        openocd: Fix build on x86_64
        spice,spice-protocol: Uprev to 0.14.0
        udisks: Install bash_completion script in OE familiar dir
        udisks: Remove bash dependency
        python-jsmin,python-pytoml,python-which: Add recipes
        mozjs: Upgrade to version 60.x
        polkit: Upgrade to 0.116

  Liwei Song (1):
        turbostat: copy bits.h from kernel to turbostat

  Marek Belisko (1):
        libsrtp: Fix compilation and add pkgconfig

  Martin Jansa (17):
        igmpproxy: remove 0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch and _GNU_SOURCE
        ne10, libopus: add armv7ve override as well
        pidgin: upgrade to 2.13.0
        funyahoo-plusplus, icyque, pidgin-sipe, purple-skypeweb: add couple plugins for pidgin
        hunspell: use git fetcher instead of github archive
        hunspell-dictionaries: import from meta-luneos to make hunspell in meta-oe a bit more useful
        ttf-mplus, ttf-vlgothic: add ttf-mplus license
        android-tools-conf: import one more improvement for android-gadget-setup from meta-luneos
        uriparser: upgrade to 0.9.3
        libmikmod: fix SRC_URI
        leptonica: fix SRC_URI
        libmikmod: upgrade to 3.3.11.1
        open-vm-tools: refresh the patches so that they can be easily applied with devtool or git am
        open-vm-tools: import gcc9 fixes from fedora
        spice: append to CFLAGS instead of +=
        cpprest: temporary ignore deprecated-copy and redundant-move errors detected by gcc9
        oprofile: drop virtual/kernel dependency and switch back to TUNE_PKGARCH

  Mingli Yu (4):
        mariadb: Upgrade to 10.3.15
        kea: Upgrade to 1.5.0
        hwloc: Upgrade to 1.11.12
        kea: replace -Og with -O

  Naveen Saini (1):
        pm-graph: add recipe

  Oleksandr Kravchuk (12):
        opensaf: update to 5.19.03
        python-ldap: update to 3.2.0
        rp-pppoe: update to 3.13
        atftp: update to 0.7.2
        ipcalc: update to 2.2.3
        mtr: update to 0.92
        nbd: update to 3.19
        mdns: update to 878.200.35
        lldpd: update to 1.0.3
        libp11: update to 0.4.10
        nano: update to 4.2
        libspatialite: update to 4.3.0a

  Ovidiu Panait (1):
        xfsprogs: Fix host contamination

  Paolo Valente (1):
        s-suite: push SRCREV to version 3.4

  Pascal Bach (1):
        rocksdb: 5.18.3 -> 6.0.2

  Qi.Chen@windriver.com (2):
        polkit: fix CVE-2019-6133
        .gitignore: add *.pyc and *.pyo

  Randy MacLeod (1):
        imagemagick: update from 7.0.8-43 to 7.0.8-47

  Robert Joslyn (4):
        cryptsetup: Add PACKAGECONFIG options
        lmsensors: Update to 3.5.0
        xfce4-session: Add xrdb RDEPENDS
        xfce4-session: Reformat DEPENDS and RDEPENDS

  Slater, Joseph (1):
        php-7: mark two tests as expected to fail

  Stefan Agner (1):
        haveged: fix CPU cache size detection

  Tim Orling (13):
        libterm-readkey-perl: upgrade 2.37 -> 2.38; fix upstream check; enable ptest
        libtest-deep-perl: add recipe for v1.128
        libcgi-perl: upgrade 4.38 -> 4.43; enable ptest
        libcrypt-openssl-guess-perl: rename from libcrypt-openssl-guess; enable ptest
        libcrypt-openssl-rsa-perl: upgrade 0.30 -> 0.31; enable ptest
        libcrypt-openssl-random-perl: upgrade 0.11 -> 0.15; enable ptest
        libextutils-installpaths-perl: upgrade 0.011 -> 0.012; enable ptest
        libexutils-config-perl: enable ptest
        libhtml-tagset-perl: add recipe for v3.20
        libhtml-parser-perl: enable ptest
        libstrictures-perl: upgrade 2.000003 -> 2.000006; enable ptest
        libxml-libxml-perl: enable ptest
        libcapture-tiny-perl: upgrade 0.46 -> 0.48; enable ptest

  William A. Kennington III via Openembedded-devel (1):
        cli11: 1.6.2 -> 1.7.1

  Yi Zhao (8):
        python-ldap: add python-pyasn1 and python-pyasn1-modules as runtime dependencies
        fuse: upgrade 2.9.8 -> 2.9.9
        yaffs2-utils: update to latest master
        xfsprogs: upgrade 4.18.0 -> 5.0.0
        fcgi: upgrade 2.4.1+git -> 2.4.2
        xdebug: upgrade 2.7.0RC2 -> 2.7.2
        phpmyadmin: upgrade 4.8.5 -> 4.9.0.1
        openipmi: upgrade 2.0.25 -> 2.0.27

  Zang Ruochen (13):
        python-pywbem: solved the conflict with python3-pywbem
        python3-pywbem:solved the conflict with python-pywbem
        python-pbr: upgrade 5.2.0 -> 5.2.1
        python-mako: upgrade 1.0.10 -> 1.0.12
        python-babel: upgrade 2.6.0 -> 2.7.0
        python-cachetools: upgrade 3.1.0 -> 3.1.1
        python-cryptography: upgrade 2.6.1 -> 2.7
        python-cryptography-vectors: upgrade 2.6.1 -> 2.7
        python-cython: upgrade 0.29.7 -> 0.29.10
        python-lxml: upgrade 4.3.3 -> 4.3.4
        python-psutil: upgrade 5.6.2 -> 5.6.3
        python-requests: upgrade 2.21.0 -> 2.22.0
        python-urllib3: upgrade 1.25.2 -> 1.25.3

  nick83ola (5):
        nginx: update to version 1.17.0
        nginx: update stable version to 1.16.0
        nginx: add PACKAGECONFIG[http-auth-request]
        nginx: fix kill path in nginx systemd unit file
        uthash: do not use unstable github archive tarballs

  thstead (1):
        Upgraded python-pysnmp from version 4.3.5. to 4.4.9.

  Łukasz Łaguna (1):
        gsl: update to version 2.5

meta-security: 9f5cc2a7eb..c28b72e91d:
  Armin Kuster (17):
        checksec: update to 1.11.1
        keyutils: fix library install path
        checksec: add runtime test
        meta-integrity: port over from meta-intel-iot-security
        layer.conf: add LAYERSERIES_COMPAT
        README: update
        ima-evm-utils: cleanup and update to tip
        ima.cfg: update to 5.0 kernel
        linux: update bbappend
        base-files: add appending to automount securityfs
        ima-policy-hashed: add new recipe
        ima_policy_simple: add another sample policy
        policy: add ima appraise all policy
        data: remove policies
        initramfs: clean up to pull in packages.
        runtime qa: moderize ima test
        image: add image for testing

  Changqing Li (1):
        samhain: add rconflict for client and server mode

  Zang Ruochen (4):
        bastille: solved the conflict with perl-module-text-wrap and base-files
        python-scapy: Remove redundant sed operations
        python-scapy: solved the conflict with python3-scapy
        python3-scapy: solved the conflict with python-scapy

  leimaohui (1):
        python3-fail2ban: Fix build error of xrange.

poky: 797916f93a..111b7173fe:
  Adrian Bunk (25):
        nss-myhostname: Stop trying to build for musl
        systemd: Some upstreamable musl patches have been upstreamed
        libnss-mdns: Stop trying to build for musl
        icu: Remove workaround for musl issue fixed upstream 2 years ago
        socat: Remove workaround for musl issue now fixed upstream
        ofono: Use external ell instead of an internal copy
        ofono: Fix another race condition during the build
        squashfs-tools: Mark as incompatible with musl
        apt: Remove workaround patches for no longer supported host distributions
        m4/tar: Remove remove-gets.patch
        pinentry: Switch pinentry-qt from Qt4 to Qt5
        librsvg: Replace workaround for old host systems with upstream fix
        vim: Move PACKAGECONFIG[gtkgui] from GTK 2 to GTK 3
        Remove Go 1.11
        go: Remove INSANE_SKIP_* textrel that are now handled in go.bbclass
        dpkg: Remove workaround patches for no longer supported host distributions
        lrzsz: Add implicit declaration fixes from Debian
        tcp-wrappers: Add compile warning fixes from Debian
        libpam: Upgrade 1.3.0 -> 1.3.1
        vte: Fix the license information
        gcc: Remove 0006-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch
        openssl: Upgrade 1.1.1b -> 1.1.1c
        Remove manual RDEPENDS from PN-ptest to PN package
        ref-manual: Remove irda feature
        lttng-modules: Upgrade 2.10.9 -> 2.10.10

  Adrian Freihofer (3):
        qemurunner: fix undefined variable
        testimage: consider QB_DEFAULT_FSTYPE
        runqemu: QB_FSINFO to support fstype wic images

  Alejandro Enedino Hernandez Samaniego (1):
        python-numpy: Avoid installing copy of f2py script

  Alejandro Hernandez Samaniego (2):
        newlib: Upgrade to 3.1.0
        newlib: export CC_FOR_TARGET as CC

  Alejandro del Castillo (1):
        opkg-utils: upgrade to version 0.4.1

  Alex Kiernan (2):
        kernel-fitimage: uboot-sign: Check UBOOT_DTB_BINARY before adding deps
        systemd: Backport OpenSSL BUF_MEM fix

  Alexander Kanavin (53):
        vim: split the common part into vim.inc
        libpcre2: upgrade 10.32 -> 10.33
        librepo: upgrade 1.9.6 -> 1.10.2
        libmodulemd: upgrade 2.2.3 -> 2.4.0
        libmodulemd: fix erroneous linking against v2 library when v1 was requested
        createrepo-c: upgrade 0.12.2 -> 0.14.0
        libdazzle: upgrade 3.32.1 -> 3.32.2
        adwaita-icon-theme: upgrade 3.30.1 -> 3.32.0
        bison: upgrade 3.1 -> 3.3.2
        atk: upgrade 2.30.0 -> 2.32.0
        python3-mako: upgrade 1.0.9 -> 1.0.10
        nss: upgrade 3.43 -> 3.44
        go: update 1.12.1->1.12.5
        systemtap: upgrade 4.0 -> 4.1
        gawk: upgrade 4.2.1 -> 5.0.0
        alsa-plugins: upgrade 1.1.8 -> 1.1.9
        alsa-utils: upgrade 1.1.8 -> 1.1.9
        alsa-lib: upgrade 1.1.8 -> 1.1.9
        lz4: upgrade 1.9.0 -> 1.9.1
        libxcrypt: upgrade 4.4.4 -> 4.4.6
        python3-pip: upgrade 19.0.3 -> 19.1.1
        pkgconf: upgrade 1.6.0 -> 1.6.1
        at-spi2-core: upgrade 2.30.0 -> 2.32.1
        at-spi2-atk: upgrade 2.30.0 -> 2.32.0
        glib-networking: upgrade 2.60.1 -> 2.60.2
        libsoup-2.4: upgrade 2.66.1 -> 2.66.2
        x264: upgrade to latest revision
        linux-firmware: upgrade to latest revision
        python3-pbr: upgrade 5.1.3 -> 5.2.0
        bash-completion: upgrade 2.8 -> 2.9
        gst-examples: upgrade to 1.16.0
        acpica: upgrade 20190405 -> 20190509
        freetype: upgrade 2.9.1 -> 2.10.0
        usbutils: upgrade 010->012
        webkitgtk: update to 2.24.2
        epiphany: update to 3.32.2
        btrfs-tools: update to 5.1
        iproute2: upgrade 5.0.0 -> 5.1.0
        chkconfig: do not use unstable github archive tarballs
        chkconfig: fix upstream version check
        perl: update to 5.30.0
        piglit: upgrade to latest revision
        ccache: fix upstream version check
        Revert "ncurses: fix incorrect UPSTREAM_CHECK_GITTAGREGEX"
        sysstat: add UPSTREAM_VERSION_UNKNOWN
        python3-pygments: add a recipe
        gtk-doc: upgrade 1.29 -> 1.30
        libpsl: fix the gtk-doc 1.30 build
        source-highlight: remove the recipe
        mesa-demos: update to 8.4.0
        glib-2.0: udpate 2.58.3 -> 2.60.3
        gdk-pixbuf: update 2.38.0 -> 2.38.1
        gtk+3: update 3.24.5 -> 3.24.8

  Alistair Francis (3):
        gdb: Upgrade from 8.2.1 to 8.3
        gnu-config: Update to latest SHA
        qemu: Backport the arm segfault fix

  Andreas Müller (1):
        gsettings-desktop-schemas: upgrade 3.28.1 -> 3.32.0

  Andrei Gherzan (1):
        ca-certificates: Fix openssl runtime dependencies

  Anuj Mittal (8):
        Revert "image_types: use pigz to create .gz files"
        Revert "pigz: pigz is not gzip"
        libva: upgrade 2.4.0 -> 2.4.1
        ffmpeg: add PACKAGECONFIG for mfx
        libpam: fix upstream version check
        serf: cleanup recipe
        scons: inherit python3native
        python3-scons: fix regex replacing python by python3

  Bonnans, Laurent (1):
        kernel-uboot: compress arm64 kernels

  Bruce Ashfield (11):
        linux-yocto/5.0: update to v5.0.13
        linux-yocto/4.19: update to v4.19.40
        linux-yocto/4.19: update to v4.19.44
        kernel: package modules.builtin.modinfo
        linux-yocto-dev: bump to v5.2-rc
        linux-yocto/5.0: update to v5.0.17
        linux-yocto-rt/5.0: update to -rt9
        linux-yocto/5.0: update to v5.0.19
        linux-yocto-rt/5.0: update to -rt11
        linux-yocto/5.0: fix systemtap on arm
        linux-yocto: ptest: Add SCSI debug configuration for util-linux

  Carlos Rafael Giani (6):
        gstreamer1.0-plugins-base: upgrade to version 1.16.0
        gstreamer1.0-plugins-good: upgrade to version 1.16.0
        gstreamer1.0-plugins-bad: upgrade to version 1.16.0
        gstreamer1.0-plugins-ugly: upgrade to version 1.16.0
        gstreamer1.0-libav: upgrade to version 1.16.0
        gstreamer1.0-vaapi: upgrade to version 1.16.0

  Changqing Li (8):
        connman: add networkmanager as rconflict
        dropbear: add openssh/openssh-sshd as rconflict
        busybox-inittab/sysvinit-inittab: add rconflicts
        inetutils: fix wrong package name
        systemd: add rconflicts
        tiny-init: add rconflicts
        multilib: add override for image recipe
        qemu: fix qemu ptest cannot work

  Chee Yang Lee (3):
        wic: bootimg-efi: add label source parameter
        wic/engine: include .wks.in in wic search and list
        wic/plugins: kernel image refer to KERNEL_IMAGETYPE

  Chen Qi (5):
        libxfont2: set CVE_PRODUCT
        systemd: avoid musl specific patches affect glibc systems
        util-linux: upgrade to 2.33.2
        oescripts.py: avoid error when cairo module is not available
        context.py: fix skipping function

  Chris Laplante (5):
        base.bbclass: Add OE_EXTRA_IMPORTS
        bitbake: knotty: allow progress rate for indeterminate bars
        bitbake: build: extract progress handler creation logic into its own method
        bitbake: build/progress: use context managers for progress handlers
        bitbake: build: implement custom progress handlers injected via OE_EXTRA_IMPORTS

  David Frey (1):
        bluez5: manage udev dependency with PACKAGECONFIG

  David Reyna (1):
        bitbake: toaster: Fix Thud Bitbake release metadata

  Diego Rondini (1):
        bluez5: fix obex packaging

  Douglas Royds via Openembedded-core (1):
        json-c: Backport --disable-werror patch to allow compilation under icecc

  Fabio Berton (3):
        mesa: Update 19.0.3 -> 19.0.5
        mesa: Update 19.0.5 -> 19.0.6
        mesa: Update 19.0.6 -> 19.1.0

  Filip Jareš (1):
        recipes: Fix license "names"/versions.

  Haiqing Bai (1):
        kernel.bbclass: Make task clean depend on cleaning of make-mod-scripts

  He Zhe (1):
        lttng-modules: Add git based recipe

  Hongxu Jia (5):
        grub/grub-efi: fix unrecognized command line option '-pipe-Wno-error' in CFLAGS
        lib/oe/reciputils.py: support character `+' in git pv
        groff: improve reproducibility
        diffutils/run-ptest: support to run at arbitrary path
        openssh: fix potential signed overflow in pointer arithmatic

  Jaewon Lee (2):
        gstreamer1.0-python_1.16.0.bb: Override libpython dir
        devicetree.bbclass: Combine stderr into stdout to see actual dtc error

  Jean-Marie LEMETAYER (4):
        npm: get npm package name from npm pack
        npm: fix node and npm default directory conflict
        npm: remove some temporary build files
        bitbake: bitbake: fetch2/npm: fix npw view parsing

  Jiping Ma (1):
        dhcp:"dhclient -x eth0" action is not correct.

  Joe Slater (1):
        slang: modify an array test

  Jon Mason (2):
        resulttool: modify to be multi-machine
        resulttool: Remove prints if no tests occur

  Jonathan Rajotte (4):
        lttng-tools: prevent test timeout when lttng-modules is not present
        lttng-tools: add lttng-modules to ptest dependencies
        liburcu: update to 0.11.0
        liburcu: update to 0.11.1

  Joshua Watt (11):
        avahi: Add PACKAGECONFIG for libdns_sd
        perl: Preserve attributes when applying cross files
        btrfs-tools: Pass DEBUG_MAP_PREFIX flags to Python
        bitbake: bitbake: cooker: Rename __depends in all multiconfigs
        bitbake: bitbake: Show base multiconfig environment
        perl: Set build date to SOURCE_DATE_EPOCH
        glibc-locale: DEPEND on virtual/libc
        zip: Remove build date to improve reproducibility
        classes/package: Sort ELF file list
        bash: Replace uninative loader path in ptest
        oeqa: Add reproducible build selftest

  Kai Kang (3):
        systemd-conf: configure wired network with dhcp
        qemu/qemu-system-native: depend bison-native
        openssl: fix failure of ptest test_shlibload

  Kevin Hao (3):
        runqemu: Add the support to pass multi ports to tcpserial parameter
        oeqa/utils/qemurunner: Set both the threadport&serverport with tcpserial parameter
        tune-thunderx: Set the correct PACKAGE_EXTRA_ARCHS_tune-thunderx

  Khem Raj (6):
        mesa: Fix a case when gbm is enabled but DRIDRIVERS is not defined
        ofono: Add TEMP_FAILURE_RETRY optional definition
        Revert "musl: Add TEMP_FAILURE_RETRY from glibc"
        binutils: Workaround mips assembler crash on target
        musl: Upgrade to master tip
        gdb: Let gdbserver be empty for riscv64

  Lei Maohui (1):
        meson.bbclass: Make meson support aarch64_be.

  Luca Boccassi (2):
        python*-setuptools: add separate packages for pkg_resources module
        mdadm: use ${systemd_unitdir} rather than /lib/systemd

  Maciej Pijanowski (1):
        recipetool: add python3 support

  Mariano López (3):
        util-linux: Add missing ptest dependencies
        util-linux: Stop udevd to run ptests
        linux-yocto: Add scsi_debug module when ptest is in DISTRO_FEATURES

  Mark Hatle (1):
        bitbake: svn.py: Stop SVN from directly pulling from an external layer w/o fetcher

  Martin Jansa (5):
        python: add a fix for CVE-2019-9948 and CVE-2019-9636
        glib-networking: add PACKAGECONFIG for openssl
        bc: use u-a for bc as well
        opkg-utils: fix opkg-list-fields script
        pigz: install pigz, unpigz, pigzcat in native and nativesdk builds again

  Matthias Schiffer (1):
        bitbake: fetch2: runfetchcmd(): unset _PYTHON_SYSCONFIGDATA_NAME

  Matthias Schoepfer via Openembedded-core (1):
        python3: fix build on softfloat mips

  Michael Ho (1):
        base.bbclass: add named SRCREVs to the sstate hash

  Mike Crowe (1):
        cmake: Avoid passing empty prefix to os.path.relpath

  Mingli Yu (3):
        elfutils: fix ptest failures
        dbus: Upgrade to 1.12.16
        dbus-test: Upgrade 1.12.16

  Nicola Lunghi (3):
        connman: fix segfault with musl >v1.1.21
        rng-tools: recipe cleanup
        rng-tools: harmonise systemd and sysvinit

  Oleksandr Kravchuk (6):
        ethtool: update to 5.1
        file: update to 5.37
        p11-kit: update to 0.23.16.1
        popt: fix SRC_URI
        selftest/devtool: fix URI to MarkupSafe package
        bitbake: cooker: list all nonexistent bblayer directories

  Oliver Stäbler (1):
        packagegroup-core-full-cmdline: Make nfs-utils/rpcbind optional

  Peter Kjellerstedt (3):
        texinfo-dummy-native: A little clean up of template.py
        texinfo-dummy-native: Rewrite template.py to use argparse
        package.bbclass: Clean up writing of runtime pkgdata files

  Philippe Normand (9):
        gstreamer1.0: upgrade to version 1.16.0
        gstreamer1.0-omx: upgrade to version 1.16.0
        gstreamer1.0-rtsp-server: upgrade to version 1.16.0
        gstreamer1.0-python: upgrade to version 1.16.0
        gst-validate: upgrade to version 1.16.0
        cmake: Use compiler launcher variable when ccache is enabled
        at-spi2: Make X11 support truly optional
        gnutls: Use ca-certificates as default trust store file
        gnutls: Use the sysconfdir variable for the ca-certificates path

  Quentin Schulz (2):
        meta: license: fix non-SPDX license being removed from INCOMPATIBLE_LICENSE
        selftests: add tests for INCOMPATIBLE_LICENSE

  Randy MacLeod (6):
        valgrind: Make ptest timestamps copasetic
        valgrind: add 'file' to ptest depends
        util-linux: add setpriv utility
        libcap-ng: split into libcap-ng/libcap-ng-python
        ptest-runner: enable child procs as session leader
        bash: use setpriv, sed.sed to run ptests

  Richard Purdie (46):
        perl-rdepends: Add missing module dependencies
        bash: Fix bash-ptest dependencies
        openssh: Add sudo dependency for ptest
        libpcre: Add make dependency for ptest
        m4: Add coreutils and diffutils dependency for ptest
        perl/modules: Add various missing ptest perl module dependencies
        layer.conf: Whitelist lttng-tools->lttng-modules dependency
        tcmode-default: Make gcc9 the default
        lttng-tools: Fix patch Upstream-Status
        mesa: Fix patch Upstream-Status
        uninative-tarball: Fix file generation after class changes
        populate_sdk_base: Use highest compression level for xz
        uninative-tarball: Use xz compression and SDK_ARCHIVE_CMD
        strace: Tweak ptest disk space management
        ptest-packagelists: Add mdadm
        util-linux: Fix ptest dependencies
        mdadm: Add missing ptest dependency
        yocto-uninative: Update to 2.5 release
        uninative: Switch from bz2 to xz
        bitbake: main: Fix error message typo
        qemuarm64: Add QB_CPU_KVM to allow kvm acceleration
        runqemu: Add support for kvm on aarch64
        useradd: Fix build architecture corruption of sstate artefacts
        useradd: Ensure do_populate_sysroot has dependency on useradd variables
        beaglebone-yocto: Add missing wic image u-boot deploy dependency
        quilt: Add patch depends for quilt-ptest
        libtest-needs-perl: Fix ptest dependencies
        libtimedate-perl: Fix ptest dependencies
        perl: Add missing perl module dependency
        liburi-perl: Fix module ptest dependencies
        libconvert-aan1-perl: Fix module and ptest dependencies
        libxml-sax-perl: Fix module ptest dependencies
        libxml-perl: Fix module and ptest dependencies
        e2fsprogs: Fix missing ptest dependencies
        glib-2.0: ptest fixes
        openssh: Add missing ptest dependency on coreutils
        gpg_sign/selftest: Fix secmem parameter handling
        gawk: ptest fixes
        openssh: Document skipped test dependency
        multiconfig: Adapt to bitbake switch 'multiconfig' -> 'mc'
        bitbake: multiconfig: Switch from 'multiconfig' -> 'mc'
        bitbake: cooker: Add compability handling for multiconfig: prefix migration
        build-appliance-image: Update to master head revision
        bitbake: cooker: Ensure mcdeps are processed even if only one multiconfig
        perl: Fix setgroup call regression from 5.30
        perl: Move perl-sanity -> perl

  Ross Burton (13):
        insane: add sanity checks to SRC_URI
        libidn2: upgrade to 2.2.0
        local.conf.sample: change default MACHINE to qemux86-64
        libical: tidy up Perl finding
        wic/filemap: handle FIGETBSZ failing
        libxslt: add comment saying when a workaround can be removed
        parted: swap patches for the commits that landed upstream
        parted: drop patch for linux <2.6.20 support
        python-nose: python3-nose should be default
        bluez: fix test case failures with GCC 9
        efivar: add
        efibootmgr: add
        gstreamer1.0-libav: disable API documentation

  Sakib Sajal (4):
        bash: add iso8859-1 gconv RDEPENDS needed by bash-ptest.
        bash: add big5hkscs gconv RDEPENDS needed by bash-ptest.
        bash: run bash ptest as non-root user
        ptest-runner: update SRCREV to latest HEAD on ptest-runner2 repo

  Scott Rifenbark (17):
        sdk-manual: Added link to BB manual fetcher section.
        ref-manual: Updated "do_fetch" to have a link to "Fetchers"
        dev-manual, ref-manual: removed "distrodata" class
        ref-manual: Removed bugzilla.bbclass
        ref-manual: Removed "distutils-tools" class.
        ref-manual: Udated devtool help output examples.
        ref-manual: New section "Checking Upgrade Status of a Recipe"
        dev-manual: Added check-upgrade-status blurb to upgrading recipes
        ref-manual: do_checkpkg - added link to checking upgrade status
        ref-manual: Updates to check-recipe-upgrade devtool command
        ref-manual: Grammar correction
        dev-manual: Added new section for creating NPM packages
        Makefile: Updated to support new NPM package creation section
        dev-manual: Updated the "Working with Packages" list
        ref-manual: Updated "npm.bbclass" section.
        overview-manual: Updated SCM section
        dev-manual: Fixed grammar issue.

  Tim Orling (8):
        libxml-parser-perl: fix ptest dependencies
        perl-rdepends.txt: improve dependencies for perl module ptests
        perl: install Config_git.pl
        perl-rdepends.txt: fix perl-module-data-dumper dependencies
        python3-scons-{native}: add recipe for v3.0.5
        scons.bbclass: use python3-scons
        serf: switch to python3-scons-native
        oeqa/runtime: add simple test for scons

  Tom Rini (2):
        vim: Rework things so vim adds features not vim-tiny removes
        vim: Update to 8.1.1518 to fix CVE-2019-12735

  Yeoh Ee Peng (3):
        resulttool/resultutils: Enable add extra configurations to results
        resulttool/store: Enable add EXECUTED_BY config to results
        resulttool/merge: Enable control TESTSERIES and extra configurations

  Zang Ruochen (3):
        openssh: Upgrade 7.9p1 -> 8.0p1
        dbus: Upgrade 1.12.12 -> 1.12.14
        dbus-test: Upgrade 1.12.12 -> 1.12.14

  Zhixiong Chi (2):
        gcc: reduce the variables in symtab
        gcc: CVE-2018-12886

  sangeeta jain (1):
        resulttool/manualexecution: Enable creation of test case configuration

meta-raspberrypi: 7059c37451..40283f583b:
  Andrei Gherzan (1):
        gstreamer1.0-omx: Forward port bbappend and patches to v1.16.x

  Khem Raj (4):
        linux-raspberrypi_4.19.bb: Update to 4.19.44
        rpi-default-versions: Switch defaults to 4.19
        userland: Update to 20190501
        firmware: Update 20190220 -> 20190517

  malus-brandywine (1):
        sdcard_image-rpi : minor bug in use of FATPAYLOAD

Change-Id: Idab4e8c2666bc776d0b47988a32dcb9f04885aff
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/poky/bitbake/lib/bb/build.py b/poky/bitbake/lib/bb/build.py
index dae42ac..e2f91fa 100644
--- a/poky/bitbake/lib/bb/build.py
+++ b/poky/bitbake/lib/bb/build.py
@@ -163,12 +163,35 @@
 
     def __repr__(self):
         return '<LogTee {0}>'.format(self.name)
+
     def flush(self):
         self.outfile.flush()
 
+
+class StdoutNoopContextManager:
+    """
+    This class acts like sys.stdout, but adds noop __enter__ and __exit__ methods.
+    """
+    def __enter__(self):
+        return sys.stdout
+
+    def __exit__(self, *exc_info):
+        pass
+
+    def write(self, string):
+        return sys.stdout.write(string)
+
+    def flush(self):
+        sys.stdout.flush()
+
+    @property
+    def name(self):
+        return sys.stdout.name
+
+
 #
 # pythonexception allows the python exceptions generated to be raised
-# as the real exceptions (not FuncFailed) and without a backtrace at the 
+# as the real exceptions (not FuncFailed) and without a backtrace at the
 # origin of the failure.
 #
 def exec_func(func, d, dirs = None, pythonexception=False):
@@ -323,6 +346,42 @@
 set -e
 '''
 
+def create_progress_handler(func, progress, logfile, d):
+    if progress == 'percent':
+        # Use default regex
+        return bb.progress.BasicProgressHandler(d, outfile=logfile)
+    elif progress.startswith('percent:'):
+        # Use specified regex
+        return bb.progress.BasicProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile)
+    elif progress.startswith('outof:'):
+        # Use specified regex
+        return bb.progress.OutOfProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile)
+    elif progress.startswith("custom:"):
+        # Use a custom progress handler that was injected via OE_EXTRA_IMPORTS or __builtins__
+        import functools
+        from types import ModuleType
+
+        parts = progress.split(":", 2)
+        _, cls, otherargs = parts[0], parts[1], (parts[2] or None) if parts[2:] else None
+        if cls:
+            def resolve(x, y):
+                if not x:
+                    return None
+                if isinstance(x, ModuleType):
+                    return getattr(x, y, None)
+                return x.get(y)
+            cls_obj = functools.reduce(resolve, cls.split("."), bb.utils._context)
+            if not cls_obj:
+                # Fall-back on __builtins__
+                cls_obj = functools.reduce(lambda x, y: x.get(y), cls.split("."), __builtins__)
+            if cls_obj:
+                return cls_obj(d, outfile=logfile, otherargs=otherargs)
+            bb.warn('%s: unknown custom progress handler in task progress varflag value "%s", ignoring' % (func, cls))
+    else:
+        bb.warn('%s: invalid task progress varflag value "%s", ignoring' % (func, progress))
+
+    return logfile
+
 def exec_func_shell(func, d, runfile, cwd=None):
     """Execute a shell function from the metadata
 
@@ -360,23 +419,13 @@
             cmd = [fakerootcmd, runfile]
 
     if bb.msg.loggerDefaultVerbose:
-        logfile = LogTee(logger, sys.stdout)
+        logfile = LogTee(logger, StdoutNoopContextManager())
     else:
-        logfile = sys.stdout
+        logfile = StdoutNoopContextManager()
 
     progress = d.getVarFlag(func, 'progress')
     if progress:
-        if progress == 'percent':
-            # Use default regex
-            logfile = bb.progress.BasicProgressHandler(d, outfile=logfile)
-        elif progress.startswith('percent:'):
-            # Use specified regex
-            logfile = bb.progress.BasicProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile)
-        elif progress.startswith('outof:'):
-            # Use specified regex
-            logfile = bb.progress.OutOfProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile)
-        else:
-            bb.warn('%s: invalid task progress varflag value "%s", ignoring' % (func, progress))
+        logfile = create_progress_handler(func, progress, logfile, d)
 
     fifobuffer = bytearray()
     def readfifo(data):
@@ -428,7 +477,7 @@
             bb.debug(2, "Executing shell function %s" % func)
 
             try:
-                with open(os.devnull, 'r+') as stdin:
+                with open(os.devnull, 'r+') as stdin, logfile:
                     bb.process.run(cmd, shell=False, stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)])
             except bb.process.CmdError:
                 logfn = d.getVar('BB_LOGFILE')
diff --git a/poky/bitbake/lib/bb/cache.py b/poky/bitbake/lib/bb/cache.py
index 060758e..5fb2f17 100644
--- a/poky/bitbake/lib/bb/cache.py
+++ b/poky/bitbake/lib/bb/cache.py
@@ -237,7 +237,7 @@
     Convert a virtual file name to a real one + the associated subclass keyword
     """
     mc = ""
-    if virtualfn.startswith('multiconfig:'):
+    if virtualfn.startswith('mc:'):
         elems = virtualfn.split(':')
         mc = elems[1]
         virtualfn = ":".join(elems[2:])
@@ -258,7 +258,7 @@
     if cls:
         realfn = "virtual:" + cls + ":" + realfn
     if mc:
-        realfn = "multiconfig:" + mc + ":" + realfn
+        realfn = "mc:" + mc + ":" + realfn
     return realfn
 
 def variant2virtual(realfn, variant):
@@ -267,11 +267,11 @@
     """
     if variant == "":
         return realfn
-    if variant.startswith("multiconfig:"):
+    if variant.startswith("mc:"):
         elems = variant.split(":")
         if elems[2]:
-            return "multiconfig:" + elems[1] + ":virtual:" + ":".join(elems[2:]) + ":" + realfn
-        return "multiconfig:" + elems[1] + ":" + realfn
+            return "mc:" + elems[1] + ":virtual:" + ":".join(elems[2:]) + ":" + realfn
+        return "mc:" + elems[1] + ":" + realfn
     return "virtual:" + variant + ":" + realfn
 
 def parse_recipe(bb_data, bbfile, appends, mc=''):
@@ -349,7 +349,7 @@
             bb_data = self.databuilder.mcdata[mc].createCopy()
             newstores = parse_recipe(bb_data, bbfile, appends, mc)
             for ns in newstores:
-                datastores["multiconfig:%s:%s" % (mc, ns)] = newstores[ns]
+                datastores["mc:%s:%s" % (mc, ns)] = newstores[ns]
 
         return datastores
 
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index c8e1404..0008c2f 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -378,8 +378,9 @@
         if CookerFeatures.BASEDATASTORE_TRACKING in self.featureset:
             self.disableDataTracking()
 
-        self.data.renameVar("__depends", "__base_depends")
-        self.add_filewatch(self.data.getVar("__base_depends", False), self.configwatcher)
+        for mc in self.databuilder.mcdata.values():
+            mc.renameVar("__depends", "__base_depends")
+            self.add_filewatch(mc.getVar("__base_depends", False), self.configwatcher)
 
         self.baseconfig_valid = True
         self.parsecache_valid = False
@@ -494,6 +495,7 @@
         """
         fn = None
         envdata = None
+        mc = ''
         if not pkgs_to_build:
             pkgs_to_build = []
 
@@ -502,6 +504,12 @@
             self.enableDataTracking()
             self.reset()
 
+        def mc_base(p):
+            if p.startswith('mc:'):
+                s = p.split(':')
+                if len(s) == 2:
+                    return s[1]
+            return None
 
         if buildfile:
             # Parse the configuration here. We need to do it explicitly here since
@@ -512,18 +520,16 @@
             fn = self.matchFile(fn)
             fn = bb.cache.realfn2virtual(fn, cls, mc)
         elif len(pkgs_to_build) == 1:
-            ignore = self.data.getVar("ASSUME_PROVIDED") or ""
-            if pkgs_to_build[0] in set(ignore.split()):
-                bb.fatal("%s is in ASSUME_PROVIDED" % pkgs_to_build[0])
+            mc = mc_base(pkgs_to_build[0])
+            if not mc:
+                ignore = self.data.getVar("ASSUME_PROVIDED") or ""
+                if pkgs_to_build[0] in set(ignore.split()):
+                    bb.fatal("%s is in ASSUME_PROVIDED" % pkgs_to_build[0])
 
-            taskdata, runlist = self.buildTaskData(pkgs_to_build, None, self.configuration.abort, allowincomplete=True)
+                taskdata, runlist = self.buildTaskData(pkgs_to_build, None, self.configuration.abort, allowincomplete=True)
 
-            mc = runlist[0][0]
-            fn = runlist[0][3]
-        else:
-            envdata = self.data
-            data.expandKeys(envdata)
-            parse.ast.runAnonFuncs(envdata)
+                mc = runlist[0][0]
+                fn = runlist[0][3]
 
         if fn:
             try:
@@ -532,6 +538,12 @@
             except Exception as e:
                 parselog.exception("Unable to read %s", fn)
                 raise
+        else:
+            if not mc in self.databuilder.mcdata:
+                bb.fatal('Not multiconfig named "%s" found' % mc)
+            envdata = self.databuilder.mcdata[mc]
+            data.expandKeys(envdata)
+            parse.ast.runAnonFuncs(envdata)
 
         # Display history
         with closing(StringIO()) as env:
@@ -571,10 +583,10 @@
         wildcard = False
 
         # Wild card expansion:
-        # Replace string such as "multiconfig:*:bash"
-        # into "multiconfig:A:bash multiconfig:B:bash bash"
+        # Replace string such as "mc:*:bash"
+        # into "mc:A:bash mc:B:bash bash"
         for k in targetlist:
-            if k.startswith("multiconfig:"):
+            if k.startswith("mc:"):
                 if wildcard:
                     bb.fatal('multiconfig conflict')
                 if k.split(":")[1] == "*":
@@ -607,7 +619,7 @@
         runlist = []
         for k in fulltargetlist:
             mc = ""
-            if k.startswith("multiconfig:"):
+            if k.startswith("mc:"):
                 mc = k.split(":")[1]
                 k = ":".join(k.split(":")[2:])
             ktask = task
@@ -626,9 +638,13 @@
             runlist.append([mc, k, ktask, fn])
             bb.event.fire(bb.event.TreeDataPreparationProgress(current, len(fulltargetlist)), self.data)
 
+        havemc = False
+        for mc in self.multiconfigs:
+            if taskdata[mc].get_mcdepends():
+                havemc = True
 
         # No need to do check providers if there are no mcdeps or not an mc build
-        if len(self.multiconfigs) > 1:
+        if havemc or len(self.multiconfigs) > 1:
             seen = set()
             new = True
             # Make sure we can provide the multiconfig dependency
@@ -688,7 +704,7 @@
     @staticmethod
     def add_mc_prefix(mc, pn):
         if mc:
-            return "multiconfig:%s:%s" % (mc, pn)
+            return "mc:%s:%s" % (mc, pn)
         return pn
 
     def buildDependTree(self, rq, taskdata):
@@ -1465,7 +1481,7 @@
         ntargets = []
         for target in runlist:
             if target[0]:
-                ntargets.append("multiconfig:%s:%s:%s" % (target[0], target[1], target[2]))
+                ntargets.append("mc:%s:%s:%s" % (target[0], target[1], target[2]))
             ntargets.append("%s:%s" % (target[1], target[2]))
 
         for mc in self.multiconfigs:
@@ -1588,6 +1604,9 @@
         for pkg in pkgs_to_build:
             if pkg in ignore:
                 parselog.warning("Explicit target \"%s\" is in ASSUME_PROVIDED, ignoring" % pkg)
+            if pkg.startswith("multiconfig:"):
+                pkgs_to_build.remove(pkg)
+                pkgs_to_build.append(pkg.replace("multiconfig:", "mc:"))
 
         if 'world' in pkgs_to_build:
             pkgs_to_build.remove('world')
@@ -1595,7 +1614,7 @@
                 bb.providers.buildWorldTargetList(self.recipecaches[mc], task)
                 for t in self.recipecaches[mc].world_target:
                     if mc:
-                        t = "multiconfig:" + mc + ":" + t
+                        t = "mc:" + mc + ":" + t
                     pkgs_to_build.append(t)
 
         if 'universe' in pkgs_to_build:
@@ -1614,7 +1633,7 @@
                             bb.debug(1, "Skipping %s for universe tasks as task %s doesn't exist" % (t, task))
                             continue
                     if mc:
-                        t = "multiconfig:" + mc + ":" + t
+                        t = "mc:" + mc + ":" + t
                     pkgs_to_build.append(t)
 
         return pkgs_to_build
diff --git a/poky/bitbake/lib/bb/cookerdata.py b/poky/bitbake/lib/bb/cookerdata.py
index f8ae410..842275d 100644
--- a/poky/bitbake/lib/bb/cookerdata.py
+++ b/poky/bitbake/lib/bb/cookerdata.py
@@ -342,14 +342,24 @@
             data = parse_config_file(layerconf, data)
 
             layers = (data.getVar('BBLAYERS') or "").split()
+            broken_layers = []
 
             data = bb.data.createCopy(data)
             approved = bb.utils.approved_variables()
+
+            # Check whether present layer directories exist
             for layer in layers:
                 if not os.path.isdir(layer):
-                    parselog.critical("Layer directory '%s' does not exist! "
-                                      "Please check BBLAYERS in %s" % (layer, layerconf))
-                    sys.exit(1)
+                    broken_layers.append(layer)
+
+            if broken_layers:
+                parselog.critical("The following layer directories do not exist:")
+                for layer in broken_layers:
+                    parselog.critical("   %s", layer)
+                parselog.critical("Please check BBLAYERS in %s" % (layerconf))
+                sys.exit(1)
+
+            for layer in layers:
                 parselog.debug(2, "Adding layer %s", layer)
                 if 'HOME' in approved and '~' in layer:
                     layer = os.path.expanduser(layer)
diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py
index 0126e0d..f6b5529 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -843,6 +843,11 @@
         if val:
             cmd = 'export ' + var + '=\"%s\"; %s' % (val, cmd)
 
+    # Ensure that a _PYTHON_SYSCONFIGDATA_NAME value set by a recipe
+    # (for example via python3native.bbclass since warrior) is not set for
+    # host Python (otherwise tools like git-make-shallow will fail)
+    cmd = 'unset _PYTHON_SYSCONFIGDATA_NAME; ' + cmd
+
     # Disable pseudo as it may affect ssh, potentially causing it to hang.
     cmd = 'export PSEUDO_DISABLED=1; ' + cmd
 
diff --git a/poky/bitbake/lib/bb/fetch2/npm.py b/poky/bitbake/lib/bb/fetch2/npm.py
index f08bdee..4427b1b 100644
--- a/poky/bitbake/lib/bb/fetch2/npm.py
+++ b/poky/bitbake/lib/bb/fetch2/npm.py
@@ -151,20 +151,11 @@
         Parse the output of npm view --json; the last JSON result
         is assumed to be the one that we're interested in.
         '''
-        pdata = None
-        outdeps = {}
-        datalines = []
-        bracelevel = 0
-        for line in output.splitlines():
-            if bracelevel:
-                datalines.append(line)
-            elif '{' in line:
-                datalines = []
-                datalines.append(line)
-            bracelevel = bracelevel + line.count('{') - line.count('}')
-        if datalines:
-            pdata = json.loads('\n'.join(datalines))
-        return pdata
+        pdata = json.loads(output);
+        try:
+            return pdata[-1]
+        except:
+            return pdata
 
     def _getdependencies(self, pkg, data, version, d, ud, optional=False, fetchedlist=None):
         if fetchedlist is None:
diff --git a/poky/bitbake/lib/bb/fetch2/svn.py b/poky/bitbake/lib/bb/fetch2/svn.py
index baeb0e7..59ce931 100644
--- a/poky/bitbake/lib/bb/fetch2/svn.py
+++ b/poky/bitbake/lib/bb/fetch2/svn.py
@@ -91,6 +91,13 @@
             svncmd = "%s log --limit 1 %s %s://%s/%s/" % (ud.basecmd, " ".join(options), proto, svnroot, ud.module)
         else:
             suffix = ""
+
+            # externals may be either 'allowed' or 'nowarn', but not both.  Allowed
+            # will not issue a warning, but will log to the debug buffer what has likely
+            # been downloaded by SVN.
+            if not ("externals" in ud.parm and ud.parm["externals"] == "allowed"):
+                options.append("--ignore-externals")
+
             if ud.revision:
                 options.append("-r %s" % ud.revision)
                 suffix = "@%s" % (ud.revision)
@@ -136,6 +143,18 @@
                 bb.fetch2.check_network_access(d, svnfetchcmd, ud.url)
                 runfetchcmd(svnfetchcmd, d, workdir=ud.pkgdir)
 
+            if not ("externals" in ud.parm and ud.parm["externals"] == "nowarn"):
+                # Warn the user if this had externals (won't catch them all)
+                output = runfetchcmd("svn propget svn:externals", d, workdir=ud.moddir)
+                if output:
+                    if "--ignore-externals" in svnfetchcmd.split():
+                        bb.warn("%s contains svn:externals." % ud.url)
+                        bb.warn("These should be added to the recipe SRC_URI as necessary.")
+                        bb.warn("svn fetch has ignored externals:\n%s" % output)
+                        bb.warn("To disable this warning add ';externals=nowarn' to the url.")
+                    else:
+                        bb.debug(1, "svn repository has externals:\n%s" % output)
+
             scmdata = ud.parm.get("scmdata", "")
             if scmdata == "keep":
                 tar_flags = ""
diff --git a/poky/bitbake/lib/bb/main.py b/poky/bitbake/lib/bb/main.py
index 8d1978f..ca59eb9 100755
--- a/poky/bitbake/lib/bb/main.py
+++ b/poky/bitbake/lib/bb/main.py
@@ -491,7 +491,7 @@
 def lockBitbake():
     topdir = bb.cookerdata.findTopdir()
     if not topdir:
-        bb.error("Unable to find conf/bblayers.conf or conf/bitbake.conf. BBAPTH is unset and/or not in a build directory?")
+        bb.error("Unable to find conf/bblayers.conf or conf/bitbake.conf. BBPATH is unset and/or not in a build directory?")
         raise BBMainFatal
     lockfile = topdir + "/bitbake.lock"
     return topdir, bb.utils.lockfile(lockfile, False, False)
diff --git a/poky/bitbake/lib/bb/progress.py b/poky/bitbake/lib/bb/progress.py
index e9b72e2..4022caa 100644
--- a/poky/bitbake/lib/bb/progress.py
+++ b/poky/bitbake/lib/bb/progress.py
@@ -13,6 +13,7 @@
 import inspect
 import bb.event
 import bb.build
+from bb.build import StdoutNoopContextManager
 
 class ProgressHandler(object):
     """
@@ -27,7 +28,14 @@
         if outfile:
             self._outfile = outfile
         else:
-            self._outfile = sys.stdout
+            self._outfile = StdoutNoopContextManager()
+
+    def __enter__(self):
+        self._outfile.__enter__()
+        return self
+
+    def __exit__(self, *excinfo):
+        self._outfile.__exit__(*excinfo)
 
     def _fire_progress(self, taskprogress, rate=None):
         """Internal function to fire the progress event"""
@@ -147,6 +155,12 @@
             self._stage_total = None
             self._callers = []
 
+    def __enter__(self):
+        return self
+
+    def __exit__(self, *excinfo):
+        pass
+
     def _fire_progress(self, taskprogress):
         bb.event.fire(bb.build.TaskProgress(taskprogress), self._data)
 
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index d573ed4..010b085 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -39,7 +39,7 @@
     return tid.rsplit(":", 1)[1]
 
 def mc_from_tid(tid):
-    if tid.startswith('multiconfig:'):
+    if tid.startswith('mc:'):
         return tid.split(':')[1]
     return ""
 
@@ -48,12 +48,12 @@
     return (mc, fn, taskname)
 
 def split_tid_mcfn(tid):
-    if tid.startswith('multiconfig:'):
+    if tid.startswith('mc:'):
         elems = tid.split(':')
         mc = elems[1]
         fn = ":".join(elems[2:-1])
         taskname = elems[-1]
-        mcfn = "multiconfig:" + mc + ":" + fn
+        mcfn = "mc:" + mc + ":" + fn
     else:
         tid = tid.rsplit(":", 1)
         mc = ""
@@ -65,7 +65,7 @@
 
 def build_tid(mc, fn, taskname):
     if mc:
-        return "multiconfig:" + mc + ":" + fn + ":" + taskname
+        return "mc:" + mc + ":" + fn + ":" + taskname
     return fn + ":" + taskname
 
 class RunQueueStats:
diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py
index e0a66e6..fe580e4 100644
--- a/poky/bitbake/lib/bb/siggen.py
+++ b/poky/bitbake/lib/bb/siggen.py
@@ -179,7 +179,7 @@
     def get_taskhash(self, fn, task, deps, dataCache):
 
         mc = ''
-        if fn.startswith('multiconfig:'):
+        if fn.startswith('mc:'):
             mc = fn.split(':')[1]
         k = fn + "." + task
 
@@ -194,7 +194,7 @@
                 depmc = pkgname.split(':')[1]
                 if mc != depmc:
                     continue
-            if dep.startswith("multiconfig:") and not mc:
+            if dep.startswith("mc:") and not mc:
                 continue
             depname = dataCache.pkg_fn[pkgname]
             if not self.rundep_check(fn, recipename, task, dep, depname, dataCache):
@@ -412,13 +412,13 @@
 
 def clean_basepath(a):
     mc = None
-    if a.startswith("multiconfig:"):
+    if a.startswith("mc:"):
         _, mc, a = a.split(":", 2)
     b = a.rsplit("/", 2)[1] + '/' + a.rsplit("/", 2)[2]
     if a.startswith("virtual:"):
         b = b + ":" + a.rsplit(":", 1)[0]
     if mc:
-        b = b + ":multiconfig:" + mc
+        b = b + ":mc:" + mc
     return b
 
 def clean_basepaths(a):
diff --git a/poky/bitbake/lib/bb/taskdata.py b/poky/bitbake/lib/bb/taskdata.py
index c7de3db..d13bd7c 100644
--- a/poky/bitbake/lib/bb/taskdata.py
+++ b/poky/bitbake/lib/bb/taskdata.py
@@ -81,7 +81,7 @@
         def add_mcdepends(task):
             for dep in task_deps['mcdepends'][task].split():
                 if len(dep.split(':')) != 5:
-                    bb.msg.fatal("TaskData", "Error for %s:%s[%s], multiconfig dependency %s does not contain exactly four  ':' characters.\n Task '%s' should be specified in the form 'multiconfig:fromMC:toMC:packagename:task'" % (fn, task, 'mcdepends', dep, 'mcdepends'))
+                    bb.msg.fatal("TaskData", "Error for %s:%s[%s], multiconfig dependency %s does not contain exactly four  ':' characters.\n Task '%s' should be specified in the form 'mc:fromMC:toMC:packagename:task'" % (fn, task, 'mcdepends', dep, 'mcdepends'))
                 if dep not in self.mcdepends:
                     self.mcdepends.append(dep)
 
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index 6bdf041..16f975b 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -991,6 +991,86 @@
         self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/umock-c/deps/ctest/README.md')), msg='Missing submodule checkout')
         self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/umock-c/deps/testrunner/readme.md')), msg='Missing submodule checkout')
 
+class SVNTest(FetcherTest):
+    def skipIfNoSvn():
+        import shutil
+        if not shutil.which("svn"):
+            return unittest.skip("svn not installed,  tests being skipped")
+
+        if not shutil.which("svnadmin"):
+            return unittest.skip("svnadmin not installed,  tests being skipped")
+
+        return lambda f: f
+
+    @skipIfNoSvn()
+    def setUp(self):
+        """ Create a local repository """
+
+        super(SVNTest, self).setUp()
+
+        # Create something we can fetch
+        src_dir = tempfile.mkdtemp(dir=self.tempdir,
+                                   prefix='svnfetch_srcdir_')
+        src_dir = os.path.abspath(src_dir)
+        bb.process.run("echo readme > README.md", cwd=src_dir)
+
+        # Store it in a local SVN repository
+        repo_dir = tempfile.mkdtemp(dir=self.tempdir,
+                                   prefix='svnfetch_localrepo_')
+        repo_dir = os.path.abspath(repo_dir)
+        bb.process.run("svnadmin create project", cwd=repo_dir)
+
+        self.repo_url = "file://%s/project" % repo_dir
+        bb.process.run("svn import --non-interactive -m 'Initial import' %s %s/trunk" % (src_dir, self.repo_url),
+                       cwd=repo_dir)
+
+        bb.process.run("svn co %s svnfetch_co" % self.repo_url, cwd=self.tempdir)
+        # Github will emulate SVN.  Use this to check if we're downloding...
+        bb.process.run("svn propset svn:externals 'bitbake http://github.com/openembedded/bitbake' .",
+                       cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk'))
+        bb.process.run("svn commit --non-interactive -m 'Add external'",
+                       cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk'))
+
+        self.src_dir = src_dir
+        self.repo_dir = repo_dir
+
+    @skipIfNoSvn()
+    def tearDown(self):
+        os.chdir(self.origdir)
+        if os.environ.get("BB_TMPDIR_NOCLEAN") == "yes":
+            print("Not cleaning up %s. Please remove manually." % self.tempdir)
+        else:
+            bb.utils.prunedir(self.tempdir)
+
+    @skipIfNoSvn()
+    @skipIfNoNetwork()
+    def test_noexternal_svn(self):
+        # Always match the rev count from setUp (currently rev 2)
+        url = "svn://%s;module=trunk;protocol=file;rev=2" % self.repo_url.replace('file://', '')
+        fetcher = bb.fetch.Fetch([url], self.d)
+        fetcher.download()
+        os.chdir(os.path.dirname(self.unpackdir))
+        fetcher.unpack(self.unpackdir)
+
+        self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'trunk')), msg="Missing trunk")
+        self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'trunk', 'README.md')), msg="Missing contents")
+        self.assertFalse(os.path.exists(os.path.join(self.unpackdir, 'trunk/bitbake/trunk')), msg="External dir should NOT exist")
+        self.assertFalse(os.path.exists(os.path.join(self.unpackdir, 'trunk/bitbake/trunk', 'README')), msg="External README should NOT exit")
+
+    @skipIfNoSvn()
+    def test_external_svn(self):
+        # Always match the rev count from setUp (currently rev 2)
+        url = "svn://%s;module=trunk;protocol=file;externals=allowed;rev=2" % self.repo_url.replace('file://', '')
+        fetcher = bb.fetch.Fetch([url], self.d)
+        fetcher.download()
+        os.chdir(os.path.dirname(self.unpackdir))
+        fetcher.unpack(self.unpackdir)
+
+        self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'trunk')), msg="Missing trunk")
+        self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'trunk', 'README.md')), msg="Missing contents")
+        self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'trunk/bitbake/trunk')), msg="External dir should exist")
+        self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'trunk/bitbake/trunk', 'README')), msg="External README should exit")
+
 class TrustedNetworksTest(FetcherTest):
     def test_trusted_network(self):
         # Ensure trusted_network returns False when the host IS in the list.
diff --git a/poky/bitbake/lib/bb/ui/knotty.py b/poky/bitbake/lib/bb/ui/knotty.py
index 3d9e203..88f638f 100644
--- a/poky/bitbake/lib/bb/ui/knotty.py
+++ b/poky/bitbake/lib/bb/ui/knotty.py
@@ -300,8 +300,8 @@
                         if start_time:
                             pbar.start_time = start_time
                     pbar.setmessage('%s:%s' % (tasknum, pbar.msg.split(':', 1)[1]))
+                    pbar.setextra(rate)
                     if progress > -1:
-                        pbar.setextra(rate)
                         content = pbar.update(progress)
                     else:
                         content = pbar.update(1)