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/meta/lib/oe/gpg_sign.py b/poky/meta/lib/oe/gpg_sign.py
index a95d2ba..2fd8c3b 100644
--- a/poky/meta/lib/oe/gpg_sign.py
+++ b/poky/meta/lib/oe/gpg_sign.py
@@ -15,21 +15,27 @@
     def __init__(self, d):
         self.gpg_bin = d.getVar('GPG_BIN') or \
                   bb.utils.which(os.getenv('PATH'), 'gpg')
-        self.gpg_path = d.getVar('GPG_PATH')
-        self.gpg_version = self.get_gpg_version()
-        self.rpm_bin = bb.utils.which(os.getenv('PATH'), "rpmsign")
+        self.gpg_cmd = [self.gpg_bin]
         self.gpg_agent_bin = bb.utils.which(os.getenv('PATH'), "gpg-agent")
+        # Without this we see "Cannot allocate memory" errors when running processes in parallel
+        # It needs to be set for any gpg command since any agent launched can stick around in memory
+        # and this parameter must be set.
+        if self.gpg_agent_bin:
+            self.gpg_cmd += ["--agent-program=%s|--auto-expand-secmem" % (self.gpg_agent_bin)]
+        self.gpg_path = d.getVar('GPG_PATH')
+        self.rpm_bin = bb.utils.which(os.getenv('PATH'), "rpmsign")
+        self.gpg_version = self.get_gpg_version()
+
 
     def export_pubkey(self, output_file, keyid, armor=True):
         """Export GPG public key to a file"""
-        cmd = '%s --no-permission-warning --batch --yes --export -o %s ' % \
-                (self.gpg_bin, output_file)
+        cmd = self.gpg_cmd + ["--no-permission-warning", "--batch", "--yes", "--export", "-o", output_file]
         if self.gpg_path:
-            cmd += "--homedir %s " % self.gpg_path
+            cmd += ["--homedir", self.gpg_path]
         if armor:
-            cmd += "--armor "
-        cmd += keyid
-        subprocess.check_output(shlex.split(cmd), stderr=subprocess.STDOUT)
+            cmd += ["--armor"]
+        cmd += [keyid]
+        subprocess.check_output(cmd, stderr=subprocess.STDOUT)
 
     def sign_rpms(self, files, keyid, passphrase, digest, sign_chunk, fsk=None, fsk_password=None):
         """Sign RPM files"""
@@ -59,7 +65,7 @@
         if passphrase_file and passphrase:
             raise Exception("You should use either passphrase_file of passphrase, not both")
 
-        cmd = [self.gpg_bin, '--detach-sign', '--no-permission-warning', '--batch',
+        cmd = self.gpg_cmd + ['--detach-sign', '--no-permission-warning', '--batch',
                '--no-tty', '--yes', '--passphrase-fd', '0', '-u', keyid]
 
         if self.gpg_path:
@@ -72,9 +78,6 @@
         if self.gpg_version > (2,1,):
             cmd += ['--pinentry-mode', 'loopback']
 
-        if self.gpg_agent_bin:
-            cmd += ["--agent-program=%s|--auto-expand-secmem" % (self.gpg_agent_bin)]
-
         cmd += [input_file]
 
         try:
@@ -101,7 +104,8 @@
     def get_gpg_version(self):
         """Return the gpg version as a tuple of ints"""
         try:
-            ver_str = subprocess.check_output((self.gpg_bin, "--version", "--no-permission-warning")).split()[2].decode("utf-8")
+            cmd = self.gpg_cmd + ["--version", "--no-permission-warning"]
+            ver_str = subprocess.check_output(cmd).split()[2].decode("utf-8")
             return tuple([int(i) for i in ver_str.split("-")[0].split('.')])
         except subprocess.CalledProcessError as e:
             raise bb.build.FuncFailed("Could not get gpg version: %s" % e)
@@ -109,11 +113,12 @@
 
     def verify(self, sig_file):
         """Verify signature"""
-        cmd = self.gpg_bin + " --verify --no-permission-warning "
+        cmd = self.gpg_cmd + [" --verify", "--no-permission-warning"]
         if self.gpg_path:
-            cmd += "--homedir %s " % self.gpg_path
-        cmd += sig_file
-        status = subprocess.call(shlex.split(cmd))
+            cmd += ["--homedir", self.gpg_path]
+
+        cmd += [sig_file]
+        status = subprocess.call(cmd)
         ret = False if status else True
         return ret
 
diff --git a/poky/meta/lib/oe/recipeutils.py b/poky/meta/lib/oe/recipeutils.py
index 1e5b9a4..630ae96 100644
--- a/poky/meta/lib/oe/recipeutils.py
+++ b/poky/meta/lib/oe/recipeutils.py
@@ -934,7 +934,7 @@
     sfx = ''
 
     if uri_type == 'git':
-        git_regex = re.compile(r"(?P<pfx>v?)(?P<ver>[^\+]*)((?P<sfx>\+(git)?r?(AUTOINC\+))(?P<rev>.*))?")
+        git_regex = re.compile(r"(?P<pfx>v?)(?P<ver>.*?)(?P<sfx>\+[^\+]*(git)?r?(AUTOINC\+))(?P<rev>.*)")
         m = git_regex.match(pv)
 
         if m:
diff --git a/poky/meta/lib/oe/sstatesig.py b/poky/meta/lib/oe/sstatesig.py
index 417943d..13af16e 100644
--- a/poky/meta/lib/oe/sstatesig.py
+++ b/poky/meta/lib/oe/sstatesig.py
@@ -155,7 +155,7 @@
         else:
             def get_mc(tid):
                 tid = tid.rsplit('.', 1)[0]
-                if tid.startswith('multiconfig:'):
+                if tid.startswith('mc:'):
                     elems = tid.split(':')
                     return elems[1]
             def recipename_from_dep(dep):
diff --git a/poky/meta/lib/oeqa/core/context.py b/poky/meta/lib/oeqa/core/context.py
index 0962704..5824489 100644
--- a/poky/meta/lib/oeqa/core/context.py
+++ b/poky/meta/lib/oeqa/core/context.py
@@ -9,6 +9,7 @@
 import time
 import logging
 import collections
+import unittest
 
 from oeqa.core.loader import OETestLoader
 from oeqa.core.runner import OETestRunner
@@ -45,10 +46,14 @@
     def skipTests(self, skips):
         if not skips:
             return
+        def skipfuncgen(skipmsg):
+            def func():
+                raise unittest.SkipTest(skipmsg)
+            return func
         for test in self.suites:
             for skip in skips:
                 if test.id().startswith(skip):
-                    setattr(test, 'setUp', lambda: test.skipTest('Skip by the command line argument "%s"' % skip))
+                    setattr(test, 'setUp', skipfuncgen('Skip by the command line argument "%s"' % skip))
 
     def loadTests(self, module_paths, modules=[], tests=[],
             modules_manifest="", modules_required=[], filters={}):
diff --git a/poky/meta/lib/oeqa/runtime/cases/scons.py b/poky/meta/lib/oeqa/runtime/cases/scons.py
new file mode 100644
index 0000000..3c7c7f7
--- /dev/null
+++ b/poky/meta/lib/oeqa/runtime/cases/scons.py
@@ -0,0 +1,37 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+import os
+
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.runtime.decorator.package import OEHasPackage
+
+class SconsCompileTest(OERuntimeTestCase):
+
+    @classmethod
+    def setUp(cls):
+        dst = '/tmp/'
+        src = os.path.join(cls.tc.runtime_files_dir, 'hello.c')
+        cls.tc.target.copyTo(src, dst)
+
+        src = os.path.join(cls.tc.runtime_files_dir, 'SConstruct')
+        cls.tc.target.copyTo(src, dst)
+
+    @classmethod
+    def tearDown(cls):
+        files = '/tmp/hello.c /tmp/hello.o /tmp/hello /tmp/SConstruct'
+        cls.tc.target.run('rm %s' % files)
+
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    @OEHasPackage(['gcc'])
+    @OEHasPackage(['python3-scons'])
+    def test_scons_compile(self):
+        status, output = self.target.run('cd /tmp/ && scons')
+        msg = 'scons compile failed, output: %s' % output
+        self.assertEqual(status, 0, msg=msg)
+
+        status, output = self.target.run('/tmp/hello')
+        msg = 'running compiled file failed, output: %s' % output
+        self.assertEqual(status, 0, msg=msg)
diff --git a/poky/meta/lib/oeqa/runtime/files/SConstruct b/poky/meta/lib/oeqa/runtime/files/SConstruct
new file mode 100644
index 0000000..d2cb6dd
--- /dev/null
+++ b/poky/meta/lib/oeqa/runtime/files/SConstruct
@@ -0,0 +1 @@
+Program('hello.c')
diff --git a/poky/meta/lib/oeqa/runtime/files/hello.c b/poky/meta/lib/oeqa/runtime/files/hello.c
new file mode 100644
index 0000000..b0697a3
--- /dev/null
+++ b/poky/meta/lib/oeqa/runtime/files/hello.c
@@ -0,0 +1,5 @@
+int
+      main()
+      {
+          printf("Hello, world!\n");
+      }
diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py
index 434a7b9..904ff69 100644
--- a/poky/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py
@@ -393,7 +393,7 @@
         tempdir = tempfile.mkdtemp(prefix='devtoolqa')
         self.track_for_cleanup(tempdir)
         testver = '0.23'
-        url = 'https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-%s.tar.gz' % testver
+        url = 'https://files.pythonhosted.org/packages/c0/41/bae1254e0396c0cc8cf1751cb7d9afc90a602353695af5952530482c963f/MarkupSafe-%s.tar.gz' % testver
         testrecipe = 'python-markupsafe'
         srcdir = os.path.join(tempdir, testrecipe)
         # Test devtool add
diff --git a/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py b/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py
new file mode 100644
index 0000000..8fb93af
--- /dev/null
+++ b/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py
@@ -0,0 +1,41 @@
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import bitbake
+
+class IncompatibleLicenseTests(OESelftestTestCase):
+
+    def lic_test(self, pn, pn_lic, lic):
+        error_msg = 'ERROR: Nothing PROVIDES \'%s\'\n%s was skipped: it has an incompatible license: %s' % (pn, pn, pn_lic)
+
+        self.write_config("INCOMPATIBLE_LICENSE += \"%s\"" % (lic))
+
+        result = bitbake('%s --dry-run' % (pn), ignore_status=True)
+        if error_msg not in result.output:
+            raise AssertionError(result.output)
+
+    # Verify that a package with an SPDX license (from SRC_DISTRIBUTE_LICENSES)
+    # cannot be built when INCOMPATIBLE_LICENSE contains this SPDX license
+    def test_incompatible_spdx_license(self):
+        self.lic_test('incompatible-license', 'GPL-3.0', 'GPL-3.0')
+
+    # Verify that a package with an SPDX license (from SRC_DISTRIBUTE_LICENSES)
+    # cannot be built when INCOMPATIBLE_LICENSE contains an alias (in
+    # SPDXLICENSEMAP) of this SPDX license
+    def test_incompatible_alias_spdx_license(self):
+        self.lic_test('incompatible-license', 'GPL-3.0', 'GPLv3')
+
+    # Verify that a package with an alias (from SPDXLICENSEMAP) to an SPDX
+    # license cannot be built when INCOMPATIBLE_LICENSE contains this SPDX
+    # license
+    def test_incompatible_spdx_license_alias(self):
+        self.lic_test('incompatible-license-alias', 'GPLv3', 'GPL-3.0')
+
+    # Verify that a package with an alias (from SPDXLICENSEMAP) to an SPDX
+    # license cannot be built when INCOMPATIBLE_LICENSE contains this alias
+    def test_incompatible_alias_spdx_license_alias(self):
+        self.lic_test('incompatible-license-alias', 'GPLv3', 'GPLv3')
+
+    # Verify that a package with a non-SPDX license (neither in
+    # SRC_DISTRIBUTE_LICENSES nor in SPDXLICENSEMAP) cannot be built when
+    # INCOMPATIBLE_LICENSE contains this license
+    def test_incompatible_nonspdx_license(self):
+        self.lic_test('incompatible-nonspdx-license', 'FooLicense', 'FooLicense')
diff --git a/poky/meta/lib/oeqa/selftest/cases/oescripts.py b/poky/meta/lib/oeqa/selftest/cases/oescripts.py
index 217afe3..7770b66 100644
--- a/poky/meta/lib/oeqa/selftest/cases/oescripts.py
+++ b/poky/meta/lib/oeqa/selftest/cases/oescripts.py
@@ -3,6 +3,7 @@
 #
 
 import os
+import unittest
 from oeqa.selftest.case import OESelftestTestCase
 from oeqa.selftest.cases.buildhistory import BuildhistoryBase
 from oeqa.utils.commands import Command, runCmd, bitbake, get_bb_var, get_test_layer
@@ -38,7 +39,7 @@
         try:
             import cairo
         except ImportError:
-            cls.skipTest('Python module cairo is not present')
+            raise unittest.SkipTest('Python module cairo is not present')
         bitbake("core-image-minimal -c rootfs -f")
         cls.tmpdir = get_bb_var('TMPDIR')
         cls.buildstats = cls.tmpdir + "/buildstats/" + sorted(os.listdir(cls.tmpdir + "/buildstats"))[-1]
diff --git a/poky/meta/lib/oeqa/selftest/cases/package.py b/poky/meta/lib/oeqa/selftest/cases/package.py
index 7a00753..2916278 100644
--- a/poky/meta/lib/oeqa/selftest/cases/package.py
+++ b/poky/meta/lib/oeqa/selftest/cases/package.py
@@ -7,6 +7,7 @@
 import stat
 import subprocess, os
 import oe.path
+import re
 
 class VersionOrdering(OESelftestTestCase):
     # version1, version2, sort order
@@ -134,7 +135,7 @@
                     return False
 
                 # Check debugging symbols works correctly
-                elif "Breakpoint 1, main () at hello.c:4" in l:
+                elif re.match("Breakpoint 1.*hello\.c.*4", l):
                     return True
 
             self.logger.error("GDB result:\n%d: %s", status, output)
diff --git a/poky/meta/lib/oeqa/selftest/cases/recipetool.py b/poky/meta/lib/oeqa/selftest/cases/recipetool.py
index f1cb37b..e3f5c71 100644
--- a/poky/meta/lib/oeqa/selftest/cases/recipetool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/recipetool.py
@@ -435,7 +435,45 @@
         checkvars = {}
         checkvars['LICENSE'] = set(['Apache-2.0'])
         checkvars['SRC_URI'] = 'git://github.com/mesonbuild/meson;protocol=https'
-        inherits = ['setuptools']
+        inherits = ['setuptools3']
+        self._test_recipe_contents(recipefile, checkvars, inherits)
+
+    def test_recipetool_create_python3_setuptools(self):
+        # Test creating python3 package from tarball (using setuptools3 class)
+        temprecipe = os.path.join(self.tempdir, 'recipe')
+        os.makedirs(temprecipe)
+        pn = 'python-magic'
+        pv = '0.4.15'
+        recipefile = os.path.join(temprecipe, '%s_%s.bb' % (pn, pv))
+        srcuri = 'https://files.pythonhosted.org/packages/84/30/80932401906eaf787f2e9bd86dc458f1d2e75b064b4c187341f29516945c/python-magic-%s.tar.gz' % pv
+        result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri))
+        self.assertTrue(os.path.isfile(recipefile))
+        checkvars = {}
+        checkvars['LICENSE'] = set(['MIT'])
+        checkvars['LIC_FILES_CHKSUM'] = 'file://LICENSE;md5=16a934f165e8c3245f241e77d401bb88'
+        checkvars['SRC_URI'] = 'https://files.pythonhosted.org/packages/84/30/80932401906eaf787f2e9bd86dc458f1d2e75b064b4c187341f29516945c/python-magic-${PV}.tar.gz'
+        checkvars['SRC_URI[md5sum]'] = 'e384c95a47218f66c6501cd6dd45ff59'
+        checkvars['SRC_URI[sha256sum]'] = 'f3765c0f582d2dfc72c15f3b5a82aecfae9498bd29ca840d72f37d7bd38bfcd5'
+        inherits = ['setuptools3']
+        self._test_recipe_contents(recipefile, checkvars, inherits)
+
+    def test_recipetool_create_python3_distutils(self):
+        # Test creating python3 package from tarball (using distutils3 class)
+        temprecipe = os.path.join(self.tempdir, 'recipe')
+        os.makedirs(temprecipe)
+        pn = 'docutils'
+        pv = '0.14'
+        recipefile = os.path.join(temprecipe, '%s_%s.bb' % (pn, pv))
+        srcuri = 'https://files.pythonhosted.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-%s.tar.gz' % pv
+        result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri))
+        self.assertTrue(os.path.isfile(recipefile))
+        checkvars = {}
+        checkvars['LICENSE'] = set(['PSF', '&', 'BSD', 'GPL'])
+        checkvars['LIC_FILES_CHKSUM'] = 'file://COPYING.txt;md5=35a23d42b615470583563132872c97d6'
+        checkvars['SRC_URI'] = 'https://files.pythonhosted.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-${PV}.tar.gz'
+        checkvars['SRC_URI[md5sum]'] = 'c53768d63db3873b7d452833553469de'
+        checkvars['SRC_URI[sha256sum]'] = '51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274'
+        inherits = ['distutils3']
         self._test_recipe_contents(recipefile, checkvars, inherits)
 
     def test_recipetool_create_github_tarball(self):
@@ -450,7 +488,7 @@
         checkvars = {}
         checkvars['LICENSE'] = set(['Apache-2.0'])
         checkvars['SRC_URI'] = 'https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${PV}.tar.gz'
-        inherits = ['setuptools']
+        inherits = ['setuptools3']
         self._test_recipe_contents(recipefile, checkvars, inherits)
 
     def test_recipetool_create_git_http(self):
diff --git a/poky/meta/lib/oeqa/selftest/cases/reproducible.py b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
new file mode 100644
index 0000000..6dc83d2
--- /dev/null
+++ b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -0,0 +1,160 @@
+#
+# SPDX-License-Identifier: MIT
+#
+# Copyright 2019 by Garmin Ltd. or its subsidiaries
+
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
+import functools
+import multiprocessing
+import textwrap
+import unittest
+
+MISSING = 'MISSING'
+DIFFERENT = 'DIFFERENT'
+SAME = 'SAME'
+
+@functools.total_ordering
+class CompareResult(object):
+    def __init__(self):
+        self.reference = None
+        self.test = None
+        self.status = 'UNKNOWN'
+
+    def __eq__(self, other):
+        return (self.status, self.test) == (other.status, other.test)
+
+    def __lt__(self, other):
+        return (self.status, self.test) < (other.status, other.test)
+
+class PackageCompareResults(object):
+    def __init__(self):
+        self.total = []
+        self.missing = []
+        self.different = []
+        self.same = []
+
+    def add_result(self, r):
+        self.total.append(r)
+        if r.status == MISSING:
+            self.missing.append(r)
+        elif r.status == DIFFERENT:
+            self.different.append(r)
+        else:
+            self.same.append(r)
+
+    def sort(self):
+        self.total.sort()
+        self.missing.sort()
+        self.different.sort()
+        self.same.sort()
+
+    def __str__(self):
+        return 'same=%i different=%i missing=%i total=%i' % (len(self.same), len(self.different), len(self.missing), len(self.total))
+
+def compare_file(reference, test, diffutils_sysroot):
+    result = CompareResult()
+    result.reference = reference
+    result.test = test
+
+    if not os.path.exists(reference):
+        result.status = MISSING
+        return result
+
+    r = runCmd(['cmp', '--quiet', reference, test], native_sysroot=diffutils_sysroot, ignore_status=True)
+
+    if r.status:
+        result.status = DIFFERENT
+        return result
+
+    result.status = SAME
+    return result
+
+class ReproducibleTests(OESelftestTestCase):
+    package_classes = ['deb']
+    images = ['core-image-minimal']
+
+    def setUpLocal(self):
+        super().setUpLocal()
+        needed_vars = ['TOPDIR', 'TARGET_PREFIX', 'BB_NUMBER_THREADS']
+        bb_vars = get_bb_vars(needed_vars)
+        for v in needed_vars:
+            setattr(self, v.lower(), bb_vars[v])
+
+        if not hasattr(self.tc, "extraresults"):
+            self.tc.extraresults = {}
+        self.extras = self.tc.extraresults
+
+        self.extras.setdefault('reproducible.rawlogs', {})['log'] = ''
+
+    def append_to_log(self, msg):
+        self.extras['reproducible.rawlogs']['log'] += msg
+
+    def compare_packages(self, reference_dir, test_dir, diffutils_sysroot):
+        result = PackageCompareResults()
+
+        old_cwd = os.getcwd()
+        try:
+            file_result = {}
+            os.chdir(test_dir)
+            with multiprocessing.Pool(processes=int(self.bb_number_threads or 0)) as p:
+                for root, dirs, files in os.walk('.'):
+                    async_result = []
+                    for f in files:
+                        reference_path = os.path.join(reference_dir, root, f)
+                        test_path = os.path.join(test_dir, root, f)
+                        async_result.append(p.apply_async(compare_file, (reference_path, test_path, diffutils_sysroot)))
+
+                    for a in async_result:
+                        result.add_result(a.get())
+
+        finally:
+            os.chdir(old_cwd)
+
+        result.sort()
+        return result
+
+    @unittest.skip("Reproducible builds do not yet pass")
+    def test_reproducible_builds(self):
+        capture_vars = ['DEPLOY_DIR_' + c.upper() for c in self.package_classes]
+
+        common_config = textwrap.dedent('''\
+            INHERIT += "reproducible_build"
+            PACKAGE_CLASSES = "%s"
+            ''') % (' '.join('package_%s' % c for c in self.package_classes))
+
+        # Do an initial build. It's acceptable for this build to use sstate
+        self.write_config(common_config)
+        vars_reference = get_bb_vars(capture_vars)
+        bitbake(' '.join(self.images))
+
+        # Build native utilities
+        bitbake("diffutils-native -c addto_recipe_sysroot")
+        diffutils_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "diffutils-native")
+
+        # Perform another build. This build should *not* share sstate or pull
+        # from any mirrors, but sharing a DL_DIR is fine
+        self.write_config(textwrap.dedent('''\
+            TMPDIR = "${TOPDIR}/reproducible/tmp"
+            SSTATE_DIR = "${TMPDIR}/sstate"
+            SSTATE_MIRROR = ""
+            ''') + common_config)
+        vars_test = get_bb_vars(capture_vars)
+        bitbake(' '.join(self.images))
+
+        for c in self.package_classes:
+            package_class = 'package_' + c
+
+            deploy_reference = vars_reference['DEPLOY_DIR_' + c.upper()]
+            deploy_test = vars_test['DEPLOY_DIR_' + c.upper()]
+
+            result = self.compare_packages(deploy_reference, deploy_test, diffutils_sysroot)
+
+            self.logger.info('Reproducibility summary for %s: %s' % (c, result))
+
+            self.append_to_log('\n'.join("%s: %s" % (r.status, r.test) for r in result.total))
+
+            if result.missing or result.different:
+                self.fail("The following %s packages are missing or different: %s" %
+                        (c, ' '.join(r.test for r in (result.missing + result.different))))
+
diff --git a/poky/meta/lib/oeqa/selftest/cases/resulttooltests.py b/poky/meta/lib/oeqa/selftest/cases/resulttooltests.py
index 10eb9c1..dac5c46 100644
--- a/poky/meta/lib/oeqa/selftest/cases/resulttooltests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/resulttooltests.py
@@ -56,7 +56,7 @@
                                   'test4': {'status': 'ERROR'},
                                   'test5': {'status': 'SKIPPED'}}}
         report = ResultsTextReport()
-        result_report = report.get_aggregated_test_result(None, result_data)
+        result_report = report.get_aggregated_test_result(None, result_data, 'DummyMachine')
         self.assertTrue(result_report['passed'] == 2, msg="Passed count not correct:%s" % result_report['passed'])
         self.assertTrue(result_report['failed'] == 2, msg="Failed count not correct:%s" % result_report['failed'])
         self.assertTrue(result_report['skipped'] == 1, msg="Skipped count not correct:%s" % result_report['skipped'])
diff --git a/poky/meta/lib/oeqa/selftest/cases/signing.py b/poky/meta/lib/oeqa/selftest/cases/signing.py
index 9c710bd..b390f37 100644
--- a/poky/meta/lib/oeqa/selftest/cases/signing.py
+++ b/poky/meta/lib/oeqa/selftest/cases/signing.py
@@ -30,7 +30,8 @@
         self.secret_key_path = os.path.join(self.testlayer_path, 'files', 'signing', "key.secret")
 
         nsysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "gnupg-native")
-        runCmd('gpg --batch --homedir %s --import %s %s' % (self.gpg_dir, self.pub_key_path, self.secret_key_path), native_sysroot=nsysroot)
+
+        runCmd('gpg --agent-program=`which gpg-agent`\|--auto-expand-secmem --batch --homedir %s --import %s %s' % (self.gpg_dir, self.pub_key_path, self.secret_key_path), native_sysroot=nsysroot)
         return nsysroot + get_bb_var("bindir_native")
 
 
diff --git a/poky/meta/lib/oeqa/utils/qemurunner.py b/poky/meta/lib/oeqa/utils/qemurunner.py
index fd386ef..c16227f 100644
--- a/poky/meta/lib/oeqa/utils/qemurunner.py
+++ b/poky/meta/lib/oeqa/utils/qemurunner.py
@@ -60,6 +60,7 @@
         self.runqemutime = 120
         self.qemu_pidfile = 'pidfile_'+str(os.getpid())
         self.host_dumper = HostDumper(dump_host_cmds, dump_dir)
+        self.monitorpipe = None
 
         self.logger = logger
 
@@ -155,11 +156,11 @@
         # and analyze descendents in order to determine it.
         if os.path.exists(self.qemu_pidfile):
             os.remove(self.qemu_pidfile)
-        self.qemuparams = 'bootparams="{0}" qemuparams="-serial tcp:127.0.0.1:{1} -pidfile {2}"'.format(bootparams, threadport, self.qemu_pidfile)
+        self.qemuparams = 'bootparams="{0}" qemuparams="-pidfile {1}"'.format(bootparams, self.qemu_pidfile)
         if qemuparams:
             self.qemuparams = self.qemuparams[:-1] + " " + qemuparams + " " + '\"'
 
-        launch_cmd += ' tcpserial=%s %s' % (self.serverport, self.qemuparams)
+        launch_cmd += ' tcpserial=%s:%s %s' % (threadport, self.serverport, self.qemuparams)
 
         self.origchldhandler = signal.getsignal(signal.SIGCHLD)
         signal.signal(signal.SIGCHLD, self.handleSIGCHLD)