subtree updates

meta-raspberrypi: 40283f583b..ca11a291ee:
  Martin Schuessler (1):
        omxplayer: remove hardcoded tune and arch from Makefile

poky: 111b7173fe..50d272863d:
  Adrian Bunk (3):
        wireless-regdb: Add recipe
        go: Upgrade 1.12.5 -> 1.12.6
        libxslt: Fix CVE-2019-11068

  Alexander Kanavin (7):
        vala: upgrade 0.44.3 -> 0.44.5
        libnewt: merge libnewt-python recipe into the main recipe
        epiphany: update to 3.32.3
        btrfs-tools: update to 5.1.1
        createrepo-c: upgrade 0.14.0 -> 0.14.2
        librepo: upgrade 1.10.2 -> 1.10.3
        libmodulemd: upgrade 2.4.0 -> 2.5.0

  Alistair Francis (6):
        libffi: Add RISC-V support
        opensbi: Initial commit of OpenSBI
        qemuriscv64: Add the QEMU RISC-V 64-bit machine
        linux-yocto: Mark qemuriscv64 as compatible
        qemuriscv: Build uImage for RISC-V machines
        qemuriscv64: Fix QB_OPT_APPEND overwrite

  Anuj Mittal (1):
        runtime/cases/logrotate: make test more reliable

  Ayoub Zaki (1):
        kernel-fitimage: introduce FIT_HASH_ALG

  Changqing Li (1):
        gcc-runtime: fix C++ header mapping for n32/x32 tune

  Chee Yang Lee (1):
        wic/bootimg-efi: allow multiple initrd

  Chen Qi (2):
        manifest.py: fix test_SDK_manifest_entries
        target-sdk-provides-dummy: add libperl.so.5 to DUMMY_PROVIDES

  Chris PeBenito (1):
        volatile-binds: Change cp to use -a instead of -p.

  Denys Dmytriyenko (2):
        mtd-utils: upgrade 2.0.2 -> 2.1.0+
        mtd-utils: add "jffs" and "ubifs" PACKAGECONFIG options

  He Zhe (1):
        kernel: qemuarmv5: Update machine overrides of KERNEL_DEVICETREE

  Joe Slater (1):
        parted: change device manager check in ptest

  Joshua Watt (1):
        python3: Disable PGO for reproducible builds

  Kai Kang (3):
        systemd-conf: not configure network for nfs root
        rng-tools: 6.6 -> 6.7
        qemu: disable capstone for 32-bit mips with multilib

  Lei Maohui (1):
        openssl: Fix a build bug on aarch64BE.

  Martin Jansa (4):
        buildhistory: show time spent writting buildhistory
        base.bbclass: define PACKAGECONFIG_CONFARGS before only sometimes appending to it
        serf: stop scons trying to create directories in hosts rootfs
        bitbake: tests/utils.py: add one more test cases for bb.utils.vercmp_string

  Matt Madison (1):
        apt: fix permissions on apt-daily script for systemd

  Mingli Yu (1):
        bitbake: add iconv to HOSTTOOLS

  Pierre Le Magourou (4):
        cve-update-db: New recipe to update CVE database
        cve-check: Remove dependency to cve-check-tool-native
        cve-check: Manage CVE_PRODUCT with more than one name
        cve-check: Consider CVE that affects versions with less than operator

  Ricardo Ribalda Delgado (4):
        dpkg: Use less as pager
        meson: Fix native patch to python3
        rootfs: Fix dependency for every dpkg run
        python3: python3: Fix build error x86->x86

  Richard Purdie (7):
        libxcrypt: Switch to disable obsolete APIs
        libxcrypt-compat: Add recipe to build the obsolete APIs
        uninative-tarball: Add libxcrypt-compat
        openssh: Add missing DEPENDS on virtual/crypt
        lttng-tools: Filter ptest output to remove random tmp directories
        cmake: Clarify comment in cmake toolchain file
        uninative: Update to 2.6 release

  Robert Yang (2):
        linux-dummy: Add do_compile_kernelmodules
        make-mod-scripts: Depends on bison-native

  Ross Burton (7):
        insane: improve buildpath warning messages
        insane: remove empty test that does nothing
        binconfig: don't try to fix up .la files
        libsdl2: use binconfig-disabled
        glib-2.0: fix host path appearing in gsocketclient-slow test script
        oeqa/logparser: ignore test failure commentary
        python: make 'python' install everything instead of just the interpretter

  Stefano Babic (1):
        systat: systemd never enables the service

  Tim Orling (4):
        perl-rdepends.txt: more ptest dependencies fixes
        libxml-sax-perl: upgrade 1.00 -> 1.02
        libmodule-build-perl: move from meta-perl
        libmodule-build-perl: upgrade 0.4224 -> 0.4229; enable ptest

  Yi Zhao (2):
        shadow: fix configure error with dash
        less: upgrade 550 -> 551

  Zang Ruochen (9):
        lighttpd: Upgrade 1.4.53 -> 1.4.54
        libevent:upgrade 2.1.8 -> 2.1.10
        libevdev:upgrade 1.6.0 -> 1.7.0
        gnutls:upgrade 3.6.7 -> 3.6.8
        gnupg:upgrade 2.2.15 -> 2.2.16
        curl:upgrade 7.64.1 -> 7.65.1
        lttng-ust:upgrade 2.10.3 -> 2.10.4
        xkeyboard:upgrade 2.26 -> 2.27
        gobject-introspection:upgrade 1.60.1 -> 1.60.2

Change-Id: I3df401c6822e1c5c2ee9cff57c7264fe31c6d22d
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0007-Remove-Makefile-hardcoded-arch-tune.patch b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0007-Remove-Makefile-hardcoded-arch-tune.patch
new file mode 100644
index 0000000..0331973
--- /dev/null
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0007-Remove-Makefile-hardcoded-arch-tune.patch
@@ -0,0 +1,8 @@
+--- a/Makefile	2019-06-20 15:04:53.390282996 +0200
++++ b/Makefile	2019-06-20 15:03:45.538763872 +0200
+@@ -1,4 +1,4 @@
+-CFLAGS=-pipe -mfloat-abi=hard -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -mno-apcs-stack-check -g -mstructure-size-boundary=32 -mno-sched-prolog
++CFLAGS+= -fomit-frame-pointer -mabi=aapcs-linux -Wno-psabi -mno-apcs-stack-check -g -mstructure-size-boundary=32 -mno-sched-prolog
+ CFLAGS+=-std=c++0x -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG  -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DHAVE_LIBSWRESAMPLE_SWRESAMPLE_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST
+ 
+ LDFLAGS=-L$(SDKSTAGE)/opt/vc/lib/
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
index aad2fed..831a91b 100644
--- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
@@ -33,6 +33,7 @@
            file://0006-Prevent-ffmpeg-configure-compile-race-condition.patch \
            file://0001-Specify-cc-cxx-and-ld-variables-from-environment.patch \
            file://cross-crompile-ffmpeg.patch \
+           file://0007-Remove-Makefile-hardcoded-arch-tune.patch \
            "
 
 SRC_URI_append = "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", " file://0001-Fix-build-with-vc4-driver.patch ", "", d)}"
diff --git a/poky/bitbake/lib/bb/tests/utils.py b/poky/bitbake/lib/bb/tests/utils.py
index 4d78828..f4adf1d 100644
--- a/poky/bitbake/lib/bb/tests/utils.py
+++ b/poky/bitbake/lib/bb/tests/utils.py
@@ -29,6 +29,10 @@
         self.assertTrue(result < 0)
         result = bb.utils.vercmp_string('1.1', '1.0+1.1-beta1')
         self.assertTrue(result > 0)
+        result = bb.utils.vercmp_string('1a', '1a1')
+        self.assertTrue(result < 0)
+        result = bb.utils.vercmp_string('1a1', '1a')
+        self.assertTrue(result > 0)
         result = bb.utils.vercmp_string('1.', '1.1')
         self.assertTrue(result < 0)
         result = bb.utils.vercmp_string('1.1', '1.')
diff --git a/poky/meta/classes/base.bbclass b/poky/meta/classes/base.bbclass
index 90af8ba..0c8a4b2 100644
--- a/poky/meta/classes/base.bbclass
+++ b/poky/meta/classes/base.bbclass
@@ -15,6 +15,8 @@
 OE_IMPORTS += "os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath oe.license ${OE_EXTRA_IMPORTS}"
 OE_IMPORTS[type] = "list"
 
+PACKAGECONFIG_CONFARGS ??= ""
+
 def oe_import(d):
     import sys
 
diff --git a/poky/meta/classes/binconfig.bbclass b/poky/meta/classes/binconfig.bbclass
index 133b953..9112ed4 100644
--- a/poky/meta/classes/binconfig.bbclass
+++ b/poky/meta/classes/binconfig.bbclass
@@ -40,15 +40,6 @@
 		    -e 's:${STAGING_DIR_HOST}${prefix}:${prefix}:' \
                     $config
 	done
-	for lafile in `find ${PKGD} -type f -name "*.la"` ; do
-		sed -i \
-		    -e 's:${STAGING_BASELIBDIR}:${base_libdir}:g;' \
-		    -e 's:${STAGING_LIBDIR}:${libdir}:g;' \
-		    -e 's:${STAGING_INCDIR}:${includedir}:g;' \
-		    -e 's:${STAGING_DATADIR}:${datadir}:' \
-		    -e 's:${STAGING_DIR_HOST}${prefix}:${prefix}:' \
-		    $lafile
-	done	    
 }
 
 SYSROOT_PREPROCESS_FUNCS += "binconfig_sysroot_preprocess"
diff --git a/poky/meta/classes/buildhistory.bbclass b/poky/meta/classes/buildhistory.bbclass
index 796f68c..2e501df 100644
--- a/poky/meta/classes/buildhistory.bbclass
+++ b/poky/meta/classes/buildhistory.bbclass
@@ -839,11 +839,15 @@
             if e.data.getVar("BUILDHISTORY_COMMIT") == "1":
                 bb.note("Writing buildhistory")
                 bb.build.exec_func("buildhistory_write_sigs", d)
+                import time
+                start=time.time()
                 localdata = bb.data.createCopy(e.data)
                 localdata.setVar('BUILDHISTORY_BUILD_FAILURES', str(e._failures))
                 interrupted = getattr(e, '_interrupted', 0)
                 localdata.setVar('BUILDHISTORY_BUILD_INTERRUPTED', str(interrupted))
                 bb.build.exec_func("buildhistory_commit", localdata)
+                stop=time.time()
+                bb.note("Writing buildhistory took: %s seconds" % round(stop-start))
             else:
                 bb.note("No commit since BUILDHISTORY_COMMIT != '1'")
 }
diff --git a/poky/meta/classes/cmake.bbclass b/poky/meta/classes/cmake.bbclass
index f80a7e2..2b317c8 100644
--- a/poky/meta/classes/cmake.bbclass
+++ b/poky/meta/classes/cmake.bbclass
@@ -119,7 +119,7 @@
 # directory as rpath by default
 set( CMAKE_INSTALL_RPATH ${OECMAKE_RPATH} )
 
-# Use native cmake modules
+# Use our cmake modules
 list(APPEND CMAKE_MODULE_PATH "${STAGING_DATADIR}/cmake/Modules/")
 
 # add for non /usr/lib libdir, e.g. /usr/lib64
diff --git a/poky/meta/classes/cve-check.bbclass b/poky/meta/classes/cve-check.bbclass
index 743bc08..379f712 100644
--- a/poky/meta/classes/cve-check.bbclass
+++ b/poky/meta/classes/cve-check.bbclass
@@ -26,7 +26,7 @@
 CVE_VERSION ??= "${PV}"
 
 CVE_CHECK_DB_DIR ?= "${DL_DIR}/CVE_CHECK"
-CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvd.db"
+CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvd-json.db"
 
 CVE_CHECK_LOG ?= "${T}/cve.log"
 CVE_CHECK_TMP_FILE ?= "${TMPDIR}/cve_check"
@@ -62,7 +62,7 @@
 }
 
 addtask cve_check after do_unpack before do_build
-do_cve_check[depends] = "cve-check-tool-native:do_populate_sysroot cve-check-tool-native:do_populate_cve_db"
+do_cve_check[depends] = "cve-update-db:do_populate_cve_db"
 do_cve_check[nostamp] = "1"
 
 python cve_check_cleanup () {
@@ -163,61 +163,55 @@
 
 def check_cves(d, patched_cves):
     """
-    Run cve-check-tool looking for patched and unpatched CVEs.
+    Connect to the NVD database and find unpatched cves.
     """
-
     import ast, csv, tempfile, subprocess, io
+    from distutils.version import LooseVersion
 
-    cves_patched = []
     cves_unpatched = []
-    bpn = d.getVar("CVE_PRODUCT")
+    # CVE_PRODUCT can contain more than one product (eg. curl/libcurl)
+    bpn = d.getVar("CVE_PRODUCT").split()
     # If this has been unset then we're not scanning for CVEs here (for example, image recipes)
-    if not bpn:
+    if len(bpn) == 0:
         return ([], [])
     pv = d.getVar("CVE_VERSION").split("+git")[0]
-    cves = " ".join(patched_cves)
-    cve_db_dir = d.getVar("CVE_CHECK_DB_DIR")
     cve_whitelist = ast.literal_eval(d.getVar("CVE_CHECK_CVE_WHITELIST"))
-    cve_cmd = "cve-check-tool"
-    cmd = [cve_cmd, "--no-html", "--skip-update", "--csv", "--not-affected", "-t", "faux", "-d", cve_db_dir]
 
     # If the recipe has been whitlisted we return empty lists
     if d.getVar("PN") in d.getVar("CVE_CHECK_PN_WHITELIST").split():
         bb.note("Recipe has been whitelisted, skipping check")
         return ([], [])
 
-    try:
-        # Write the faux CSV file to be used with cve-check-tool
-        fd, faux = tempfile.mkstemp(prefix="cve-faux-")
-        with os.fdopen(fd, "w") as f:
-            for pn in bpn.split():
-                f.write("%s,%s,%s,\n" % (pn, pv, cves))
-        cmd.append(faux)
+    import sqlite3
+    db_file = d.getVar("CVE_CHECK_DB_FILE")
+    conn = sqlite3.connect(db_file)
+    c = conn.cursor()
 
-        output = subprocess.check_output(cmd).decode("utf-8")
-        bb.debug(2, "Output of command %s:\n%s" % ("\n".join(cmd), output))
-    except subprocess.CalledProcessError as e:
-        bb.warn("Couldn't check for CVEs: %s (output %s)" % (e, e.output))
-    finally:
-        os.remove(faux)
+    query = """SELECT * FROM PRODUCTS WHERE
+               (PRODUCT IS '{0}' AND VERSION = '{1}' AND OPERATOR IS '=') OR
+               (PRODUCT IS '{0}' AND OPERATOR IS '<=');"""
+    for idx in range(len(bpn)):
+        for row in c.execute(query.format(bpn[idx],pv)):
+            cve = row[1]
+            version = row[4]
 
-    for row in csv.reader(io.StringIO(output)):
-        # Third row has the unpatched CVEs
-        if row[2]:
-            for cve in row[2].split():
-                # Skip if the CVE has been whitlisted for the current version
-                if pv in cve_whitelist.get(cve,[]):
-                    bb.note("%s-%s has been whitelisted for %s" % (bpn, pv, cve))
-                else:
-                    cves_unpatched.append(cve)
-                    bb.debug(2, "%s-%s is not patched for %s" % (bpn, pv, cve))
-        # Fourth row has patched CVEs
-        if row[3]:
-            for cve in row[3].split():
-                cves_patched.append(cve)
-                bb.debug(2, "%s-%s is patched for %s" % (bpn, pv, cve))
+            try:
+                discardVersion = LooseVersion(version) < LooseVersion(pv)
+            except:
+                discardVersion = True
 
-    return (cves_patched, cves_unpatched)
+            if pv in cve_whitelist.get(cve,[]):
+                bb.note("%s-%s has been whitelisted for %s" % (bpn[idx], pv, cve))
+            elif cve in patched_cves:
+                bb.note("%s has been patched" % (cve))
+            elif discardVersion:
+                bb.debug(2, "Do not consider version %s " % (version))
+            else:
+                cves_unpatched.append(cve)
+                bb.debug(2, "%s-%s is not patched for %s" % (bpn[idx], pv, cve))
+    conn.close()
+
+    return (list(patched_cves), cves_unpatched)
 
 def get_cve_info(d, cves):
     """
@@ -241,9 +235,10 @@
     for row in cur.execute(query, tuple(cves)):
         cve_data[row[0]] = {}
         cve_data[row[0]]["summary"] = row[1]
-        cve_data[row[0]]["score"] = row[2]
-        cve_data[row[0]]["modified"] = row[3]
-        cve_data[row[0]]["vector"] = row[4]
+        cve_data[row[0]]["scorev2"] = row[2]
+        cve_data[row[0]]["scorev3"] = row[3]
+        cve_data[row[0]]["modified"] = row[4]
+        cve_data[row[0]]["vector"] = row[5]
     conn.close()
 
     return cve_data
@@ -270,7 +265,8 @@
             unpatched_cves.append(cve)
             write_string += "CVE STATUS: Unpatched\n"
         write_string += "CVE SUMMARY: %s\n" % cve_data[cve]["summary"]
-        write_string += "CVSS v2 BASE SCORE: %s\n" % cve_data[cve]["score"]
+        write_string += "CVSS v2 BASE SCORE: %s\n" % cve_data[cve]["scorev2"]
+        write_string += "CVSS v3 BASE SCORE: %s\n" % cve_data[cve]["scorev3"]
         write_string += "VECTOR: %s\n" % cve_data[cve]["vector"]
         write_string += "MORE INFORMATION: %s%s\n\n" % (nvd_link, cve)
 
diff --git a/poky/meta/classes/insane.bbclass b/poky/meta/classes/insane.bbclass
index fdc20c4..0695a04 100644
--- a/poky/meta/classes/insane.bbclass
+++ b/poky/meta/classes/insane.bbclass
@@ -259,13 +259,6 @@
             package_qa_add_message(messages, "debug-files", "non debug package contains .debug directory: %s path %s" % \
                      (name, package_qa_clean_path(path,d)))
 
-QAPATHTEST[perms] = "package_qa_check_perm"
-def package_qa_check_perm(path,name,d, elf, messages):
-    """
-    Check the permission of files
-    """
-    return
-
 QAPATHTEST[arch] = "package_qa_check_arch"
 def package_qa_check_arch(path,name,d, elf, messages):
     """
@@ -408,7 +401,8 @@
     with open(path, 'rb') as f:
         file_content = f.read()
         if tmpdir in file_content:
-            package_qa_add_message(messages, "buildpaths", "File %s in package contained reference to tmpdir" % package_qa_clean_path(path,d))
+            trimmed = path.replace(os.path.join (d.getVar("PKGDEST"), name), "")
+            package_qa_add_message(messages, "buildpaths", "File %s in package %s contains reference to TMPDIR" % (trimmed, name))
 
 
 QAPATHTEST[xorg-driver-abi] = "package_qa_check_xorg_driver_abi"
diff --git a/poky/meta/classes/kernel-fitimage.bbclass b/poky/meta/classes/kernel-fitimage.bbclass
index 9e224da..b51882d 100644
--- a/poky/meta/classes/kernel-fitimage.bbclass
+++ b/poky/meta/classes/kernel-fitimage.bbclass
@@ -50,6 +50,9 @@
 # Options for the device tree compiler passed to mkimage '-D' feature:
 UBOOT_MKIMAGE_DTCOPTS ??= ""
 
+# fitImage Hash Algo
+FIT_HASH_ALG ?= "sha256"
+
 #
 # Emit the fitImage ITS header
 #
@@ -109,7 +112,7 @@
 # $4 ... Compression type
 fitimage_emit_section_kernel() {
 
-	kernel_csum="sha1"
+	kernel_csum="${FIT_HASH_ALG}"
 
 	ENTRYPOINT="${UBOOT_ENTRYPOINT}"
 	if [ -n "${UBOOT_ENTRYSYMBOL}" ]; then
@@ -142,7 +145,7 @@
 # $3 ... Path to DTB image
 fitimage_emit_section_dtb() {
 
-	dtb_csum="sha1"
+	dtb_csum="${FIT_HASH_ALG}"
 
 	dtb_loadline=""
 	dtb_ext=${DTB##*.}
@@ -176,7 +179,7 @@
 # $3 ... Path to setup image
 fitimage_emit_section_setup() {
 
-	setup_csum="sha1"
+	setup_csum="${FIT_HASH_ALG}"
 
 	cat << EOF >> ${1}
                 setup@${2} {
@@ -203,7 +206,7 @@
 # $3 ... Path to ramdisk image
 fitimage_emit_section_ramdisk() {
 
-	ramdisk_csum="sha1"
+	ramdisk_csum="${FIT_HASH_ALG}"
 	ramdisk_ctype="none"
 	ramdisk_loadline=""
 	ramdisk_entryline=""
@@ -261,7 +264,7 @@
 # $6 ... default flag
 fitimage_emit_section_config() {
 
-	conf_csum="sha1"
+	conf_csum="${FIT_HASH_ALG}"
 	if [ -n "${UBOOT_SIGN_ENABLE}" ] ; then
 		conf_sign_keyname="${UBOOT_SIGN_KEYNAME}"
 	fi
diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf
index c5313cc..4b907d6 100644
--- a/poky/meta/conf/bitbake.conf
+++ b/poky/meta/conf/bitbake.conf
@@ -492,7 +492,7 @@
     [ ar as awk basename bash bzip2 cat chgrp chmod chown chrpath cmp comm cp cpio \
     cpp cut date dd diff diffstat dirname du echo egrep env expand expr false \
     fgrep file find flock g++ gawk gcc getconf getopt git grep gunzip gzip \
-    head hostname id install ld ldd ln ls make makeinfo md5sum mkdir mknod \
+    head hostname iconv id install ld ldd ln ls make makeinfo md5sum mkdir mknod \
     mktemp mv nm objcopy objdump od patch perl pod2man pr printf pwd python2 \
     python2.7 python3 ranlib readelf readlink realpath rm rmdir rpcgen sed seq sh sha256sum \
     sleep sort split stat strings strip tail tar tee test touch tr true uname \
diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc
index 1923ae6..64856e1 100644
--- a/poky/meta/conf/distro/include/maintainers.inc
+++ b/poky/meta/conf/distro/include/maintainers.inc
@@ -136,6 +136,7 @@
 RECIPE_MAINTAINER_pn-cups = "Chen Qi <Qi.Chen@windriver.com>"
 RECIPE_MAINTAINER_pn-curl = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-cve-check-tool = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-cve-update-db = "Ross Burton <ross.burton@intel.com>"
 RECIPE_MAINTAINER_pn-cwautomacros = "Ross Burton <ross.burton@intel.com>"
 RECIPE_MAINTAINER_pn-db = "Mark Hatle <mark.hatle@windriver.com>"
 RECIPE_MAINTAINER_pn-dbus = "Chen Qi <Qi.Chen@windriver.com>"
@@ -355,6 +356,7 @@
 RECIPE_MAINTAINER_pn-libmatchbox = "Ross Burton <ross.burton@intel.com>"
 RECIPE_MAINTAINER_pn-libmnl = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER_pn-libmpc = "Khem Raj <raj.khem@gmail.com>"
+RECIPE_MAINTAINER_pn-libmodule-build-perl = "Tim Orling <timothy.t.orling@linux.intel.com>"
 RECIPE_MAINTAINER_pn-libmodulemd = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-libnewt = "Hongxu Jia <hongxu.jia@windriver.com>"
 RECIPE_MAINTAINER_pn-libnewt-python = "Hongxu Jia <hongxu.jia@windriver.com>"
@@ -409,6 +411,7 @@
 RECIPE_MAINTAINER_pn-libxcomposite = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-libxcursor = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-libxcrypt = "Khem Raj <raj.khem@gmail.com>"
+RECIPE_MAINTAINER_pn-libxcrypt-compat = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER_pn-libxdamage = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-libxdmcp = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-libxext = "Armin Kuster <akuster808@gmail.com>"
@@ -538,6 +541,7 @@
 RECIPE_MAINTAINER_pn-nss = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-nss-myhostname = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-ofono = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-opensbi = "Alistair Francis <alistair.francis@wdc.com>"
 RECIPE_MAINTAINER_pn-openssh = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-openssl = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-opkg = "Alejandro del Castillo <alejandro.delcastillo@ni.com>"
@@ -727,6 +731,7 @@
 RECIPE_MAINTAINER_pn-wget = "Yi Zhao <yi.zhao@windriver.com>"
 RECIPE_MAINTAINER_pn-which = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-wic-tools = "Anuj Mittal <anuj.mittal@intel.com>"
+RECIPE_MAINTAINER_pn-wireless-regdb = "Adrian Bunk <bunk@kernel.org>"
 RECIPE_MAINTAINER_pn-wpa-supplicant = "Changhyeok Bae <changhyeok.bae@gmail.com>"
 RECIPE_MAINTAINER_pn-x11perf = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-x264 = "Anuj Mittal <anuj.mittal@intel.com>"
diff --git a/poky/meta/conf/distro/include/yocto-uninative.inc b/poky/meta/conf/distro/include/yocto-uninative.inc
index 0bb8f7a..df24346 100644
--- a/poky/meta/conf/distro/include/yocto-uninative.inc
+++ b/poky/meta/conf/distro/include/yocto-uninative.inc
@@ -8,7 +8,7 @@
 
 UNINATIVE_MAXGLIBCVERSION = "2.29"
 
-UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/2.5/"
-UNINATIVE_CHECKSUM[aarch64] ?= "ca977ff95c77f983570141908d451ff7d78add2864471605af404302bb36a1fa"
-UNINATIVE_CHECKSUM[i686] ?= "7b5822891c293795faf8a4a80586b36f8cde405387524916a24f9055ea82f7ca"
-UNINATIVE_CHECKSUM[x86_64] ?= "ed0ac07c710b711925cb976685dd855fb1d442dd840d00194751c18bf480c4ed"
+UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/2.6/"
+UNINATIVE_CHECKSUM[aarch64] ?= "a37118fc8b423f48146120707b81dd15017512c3e8ef9e6ca2cb3a033f4f4046"
+UNINATIVE_CHECKSUM[i686] ?= "3234fc3ded810225071f23a0e9a99f4f8c2480059945a848eff076ce78122ade"
+UNINATIVE_CHECKSUM[x86_64] ?= "133387753a9acf3e1b788103c59fac91e968e2ee331d7a4b9498e926ada7be57"
diff --git a/poky/meta/conf/machine/include/riscv/arch-riscv.inc b/poky/meta/conf/machine/include/riscv/arch-riscv.inc
new file mode 100644
index 0000000..19f8f3e
--- /dev/null
+++ b/poky/meta/conf/machine/include/riscv/arch-riscv.inc
@@ -0,0 +1,10 @@
+# RISCV Architecture definition
+
+DEFAULTTUNE ?= "riscv64"
+
+TUNE_ARCH = "${TUNE_ARCH_tune-${DEFAULTTUNE}}"
+TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}"
+TUNE_CCARGS .= ""
+
+# QEMU usermode fails with invalid instruction error (For riscv32)
+MACHINE_FEATURES_BACKFILL_CONSIDERED_append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv32', ' qemu-usermode', '', d)}"
diff --git a/poky/meta/conf/machine/include/riscv/qemuriscv.inc b/poky/meta/conf/machine/include/riscv/qemuriscv.inc
new file mode 100644
index 0000000..84d09fa
--- /dev/null
+++ b/poky/meta/conf/machine/include/riscv/qemuriscv.inc
@@ -0,0 +1,50 @@
+PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot"
+
+require conf/machine/include/qemu.inc
+require conf/machine/include/riscv/tune-riscv.inc
+
+MACHINE_FEATURES = "screen keyboard ext2 ext3 serial"
+
+KERNEL_IMAGETYPE = "Image"
+KERNEL_IMAGETYPES += "uImage"
+KEEPUIMAGE = "no"
+
+SERIAL_CONSOLES ?= "115200;ttyS0 115200;hvc0"
+
+IMAGE_FSTYPES_append = " ext4"
+
+MACHINE_EXTRA_RRECOMMENDS += " kernel-modules"
+
+EXTRA_IMAGEDEPENDS += "opensbi"
+RISCV_SBI_PLAT ?= "qemu/virt"
+RISCV_SBI_PAYLOAD ?= "${KERNEL_IMAGETYPE}-${MACHINE}.bin"
+
+UBOOT_ENTRYPOINT_riscv32 = "0x80400000"
+UBOOT_ENTRYPOINT_riscv64 = "0x80200000"
+
+# qemuboot options
+QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi"
+QB_MEM = "-m 512"
+QB_MACHINE = "-machine virt"
+QB_DEFAULT_KERNEL = "fw_jump.elf"
+QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
+QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
+QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
+QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
+QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
+# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
+QB_OPT_APPEND = " -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-device,rng=rng0"
+
+BAD_RECOMMENDATIONS += "\
+    libcxx-dev \
+    libcxx-staticdev \
+    compiler-rt-dev \
+    compiler-rt-staticdev \
+"
+
+ASSUME_PROVIDED += "\
+    libcxx-dev \
+    libcxx-staticdev \
+    compiler-rt-dev \
+    compiler-rt-staticdev \
+"
diff --git a/poky/meta/conf/machine/include/riscv/tune-riscv.inc b/poky/meta/conf/machine/include/riscv/tune-riscv.inc
new file mode 100644
index 0000000..1e3a108
--- /dev/null
+++ b/poky/meta/conf/machine/include/riscv/tune-riscv.inc
@@ -0,0 +1,19 @@
+require conf/machine/include/riscv/arch-riscv.inc
+
+TUNEVALID[riscv64] = "Enable 64-bit RISC-V optimizations"
+TUNEVALID[riscv32] = "Enable 32-bit RISC-V optimizations"
+
+TUNEVALID[littleendian] = "Little endian mode"
+
+AVAILTUNES += "riscv64 riscv32"
+
+TUNE_FEATURES_tune-riscv64 = "riscv64 littleendian"
+TUNE_ARCH_tune-riscv64 = "riscv64"
+TUNE_PKGARCH_tune-riscv64 = "riscv64"
+PACKAGE_EXTRA_ARCHS_tune-riscv64 = "riscv64"
+
+TUNE_FEATURES_tune-riscv32 = "riscv32 littleendian"
+TUNE_ARCH_tune-riscv32 = "riscv32"
+TUNE_PKGARCH_tune-riscv32 = "riscv32"
+PACKAGE_EXTRA_ARCHS_tune-riscv32 = "riscv32"
+
diff --git a/poky/meta/conf/machine/qemuriscv64.conf b/poky/meta/conf/machine/qemuriscv64.conf
new file mode 100644
index 0000000..dba8f09
--- /dev/null
+++ b/poky/meta/conf/machine/qemuriscv64.conf
@@ -0,0 +1,11 @@
+#@TYPE: Machine
+#@NAME: generic riscv64 machine
+#@DESCRIPTION: Machine configuration for running a generic riscv64
+
+require conf/machine/include/riscv/qemuriscv.inc
+
+QB_OPT_APPEND += "-show-cursor -monitor null -device loader,file=${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE},addr=0x80200000"
+
+EXTRA_IMAGEDEPENDS += "u-boot"
+UBOOT_MACHINE = "qemu-riscv64_defconfig"
+UBOOT_ELF = "u-boot"
diff --git a/poky/meta/lib/oe/rootfs.py b/poky/meta/lib/oe/rootfs.py
index 9358f56..c62fa5f 100644
--- a/poky/meta/lib/oe/rootfs.py
+++ b/poky/meta/lib/oe/rootfs.py
@@ -647,6 +647,7 @@
             if pkg_type in pkgs_to_install:
                 self.pm.install(pkgs_to_install[pkg_type],
                                 [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
+                self.pm.fix_broken_dependencies()
 
         if self.progress_reporter:
             # Don't support attemptonly, so skip that
diff --git a/poky/meta/lib/oeqa/runtime/cases/logrotate.py b/poky/meta/lib/oeqa/runtime/cases/logrotate.py
index 8358793..bfa57c5 100644
--- a/poky/meta/lib/oeqa/runtime/cases/logrotate.py
+++ b/poky/meta/lib/oeqa/runtime/cases/logrotate.py
@@ -35,7 +35,9 @@
 
     @OETestDepends(['logrotate.LogrotateTest.test_1_logrotate_setup'])
     def test_2_logrotate(self):
-        status, output = self.target.run('logrotate -f /etc/logrotate.conf')
+        status, output = self.target.run('echo "create \n include /etc/logrotate.d" > /tmp/logrotate-test.conf')
+        status, output = self.target.run('logrotate -f /tmp/logrotate-test.conf')
+
         msg = ('logrotate service could not be reloaded. Status and output: '
                 '%s and %s' % (status, output))
         self.assertEqual(status, 0, msg = msg)
diff --git a/poky/meta/lib/oeqa/selftest/cases/manifest.py b/poky/meta/lib/oeqa/selftest/cases/manifest.py
index c0b25ab..5d13f35 100644
--- a/poky/meta/lib/oeqa/selftest/cases/manifest.py
+++ b/poky/meta/lib/oeqa/selftest/cases/manifest.py
@@ -86,11 +86,8 @@
         try:
             mdir = self.get_dir_from_bb_var('SDK_DEPLOY', self.buildtarget)
             for k in d_target.keys():
-                bb_vars = get_bb_vars(['SDK_NAME', 'SDK_VERSION'], self.buildtarget)
-                mfilename[k] = "{}-toolchain-{}.{}.manifest".format(
-                        bb_vars['SDK_NAME'],
-                        bb_vars['SDK_VERSION'],
-                        k)
+                toolchain_outputname = get_bb_var('TOOLCHAIN_OUTPUTNAME', self.buildtarget)
+                mfilename[k] = "{}.{}.manifest".format(toolchain_outputname, k)
                 mpath[k] = os.path.join(mdir, mfilename[k])
                 if not os.path.isfile(mpath[k]):
                     self.logger.debug("{}: {} does not exist".format(
diff --git a/poky/meta/lib/oeqa/utils/logparser.py b/poky/meta/lib/oeqa/utils/logparser.py
index cc6d18d..b31214b 100644
--- a/poky/meta/lib/oeqa/utils/logparser.py
+++ b/poky/meta/lib/oeqa/utils/logparser.py
@@ -16,7 +16,7 @@
     def parse(self, logfile):
         test_regex = {}
         test_regex['PASSED'] = re.compile(r"^PASS:(.+)")
-        test_regex['FAILED'] = re.compile(r"^FAIL:(.+)")
+        test_regex['FAILED'] = re.compile(r"^FAIL:([^(]+)")
         test_regex['SKIPPED'] = re.compile(r"^SKIP:(.+)")
 
         section_regex = {}
@@ -69,7 +69,7 @@
                     if result:
                         if current_section['name'] not in self.results:
                             self.results[current_section['name']] = {}
-                        self.results[current_section['name']][result.group(1)] = t
+                        self.results[current_section['name']][result.group(1).strip()] = t
 
         return self.results, self.sections
 
diff --git a/poky/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch b/poky/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch
new file mode 100644
index 0000000..9c2d0eb
--- /dev/null
+++ b/poky/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch
@@ -0,0 +1,38 @@
+From f5871e1f3650d6c8a032928cb5d8ca00c275c377 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Fri, 15 Feb 2019 14:57:41 -0800
+Subject: [PATCH] Makefile: Don't specify mabi or march
+
+To avoid
+    can't link double-float modules with soft-float modules
+errors when building 32-bit openSBI don't specify mabi or march.
+
+Upstream-Status: Inappropriate [Fixes a 32-bit Yocto flow bug]
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+---
+ Makefile | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index ae68f55..10851fc 100644
+--- a/Makefile
++++ b/Makefile
+@@ -145,7 +145,6 @@ GENFLAGS	+=	$(firmware-genflags-y)
+ CFLAGS		=	-g -Wall -Werror -nostdlib -fno-strict-aliasing -O2
+ CFLAGS		+=	-fno-omit-frame-pointer -fno-optimize-sibling-calls
+ CFLAGS		+=	-mno-save-restore -mstrict-align
+-CFLAGS		+=	-mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA)
+ CFLAGS		+=	-mcmodel=$(PLATFORM_RISCV_CODE_MODEL)
+ CFLAGS		+=	$(GENFLAGS)
+ CFLAGS		+=	$(platform-cflags-y)
+@@ -158,7 +157,6 @@ CPPFLAGS	+=	$(firmware-cppflags-y)
+ ASFLAGS		=	-g -Wall -nostdlib -D__ASSEMBLY__
+ ASFLAGS		+=	-fno-omit-frame-pointer -fno-optimize-sibling-calls
+ ASFLAGS		+=	-mno-save-restore -mstrict-align
+-ASFLAGS		+=	-mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA)
+ ASFLAGS		+=	-mcmodel=$(PLATFORM_RISCV_CODE_MODEL)
+ ASFLAGS		+=	$(GENFLAGS)
+ ASFLAGS		+=	$(platform-asflags-y)
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-bsp/opensbi/files/0002-lib-Create-a-sbi_ipi_data-structure.patch b/poky/meta/recipes-bsp/opensbi/files/0002-lib-Create-a-sbi_ipi_data-structure.patch
new file mode 100644
index 0000000..3c846bd
--- /dev/null
+++ b/poky/meta/recipes-bsp/opensbi/files/0002-lib-Create-a-sbi_ipi_data-structure.patch
@@ -0,0 +1,128 @@
+From 508a27204cbbca0a9430236e56681e5e0d343fb9 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Fri, 8 Mar 2019 11:22:22 -0800
+Subject: [PATCH] lib: Create a sbi_ipi_data structure
+
+Create a sbi_ipi_data structure that holds unpacked IPI information. At
+the same time remove ipi_type from the sbi_scratch struct and use a
+fixed offset to access it.
+
+This structure fits in behind the sbi_scratch structure.
+
+This fixes https://github.com/riscv/opensbi/issues/81
+
+Upstream-Status: Backport [https://github.com/riscv/opensbi/commit/508a27204cbbca0a9430236e56681e5e0d343fb9]
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+---
+ firmware/fw_base.S        |  1 -
+ include/sbi/sbi_scratch.h | 23 ++++++++++++++++-------
+ lib/sbi_ipi.c             |  8 +++++---
+ 3 files changed, 21 insertions(+), 11 deletions(-)
+
+diff --git a/firmware/fw_base.S b/firmware/fw_base.S
+index cf2c6a0..69cfc90 100644
+--- a/firmware/fw_base.S
++++ b/firmware/fw_base.S
+@@ -183,7 +183,6 @@ _start_warm:
+ 	REG_S	a4, SBI_SCRATCH_PLATFORM_ADDR_OFFSET(tp)
+ 	la	a4, _hartid_to_scratch
+ 	REG_S	a4, SBI_SCRATCH_HARTID_TO_SCRATCH_OFFSET(tp)
+-	REG_S	zero, SBI_SCRATCH_IPI_TYPE_OFFSET(tp)
+ 	REG_S	zero, SBI_SCRATCH_TMP0_OFFSET(tp)
+ 
+ 	/* Setup stack */
+diff --git a/include/sbi/sbi_scratch.h b/include/sbi/sbi_scratch.h
+index 8389ef3..70ab384 100644
+--- a/include/sbi/sbi_scratch.h
++++ b/include/sbi/sbi_scratch.h
+@@ -28,17 +28,24 @@
+ #define SBI_SCRATCH_PLATFORM_ADDR_OFFSET	(6 * __SIZEOF_POINTER__)
+ /** Offset of hartid_to_scratch member in sbi_scratch */
+ #define SBI_SCRATCH_HARTID_TO_SCRATCH_OFFSET	(7 * __SIZEOF_POINTER__)
+-/** Offset of ipi_type member in sbi_scratch */
+-#define SBI_SCRATCH_IPI_TYPE_OFFSET		(8 * __SIZEOF_POINTER__)
+ /** Offset of tmp0 member in sbi_scratch */
+-#define SBI_SCRATCH_TMP0_OFFSET			(9 * __SIZEOF_POINTER__)
+-/** Maximum size of sbi_scratch */
+-#define SBI_SCRATCH_SIZE			256
++#define SBI_SCRATCH_TMP0_OFFSET			(8 * __SIZEOF_POINTER__)
++
++/** sbi_ipi_data is located behind sbi_scratch. This struct is not packed. */
++/** Offset of ipi_type in sbi_ipi_data */
++#define SBI_IPI_DATA_IPI_TYPE_OFFSET		(15 * __SIZEOF_POINTER__)
++
++/** Maximum size of sbi_scratch and sbi_ipi_data */
++#define SBI_SCRATCH_SIZE			(32 * __SIZEOF_POINTER__)
+ 
+ #ifndef __ASSEMBLY__
+ 
+ #include <sbi/sbi_types.h>
+ 
++struct sbi_ipi_data {
++	unsigned long ipi_type;
++};
++
+ /** Representation of per-HART scratch space */
+ struct sbi_scratch {
+ 	/** Start (or base) address of firmware linked to OpenSBI library */
+@@ -57,8 +64,6 @@ struct sbi_scratch {
+ 	unsigned long platform_addr;
+ 	/** Address of HART ID to sbi_scratch conversion function */
+ 	unsigned long hartid_to_scratch;
+-	/** IPI type (or flags) */
+-	unsigned long ipi_type;
+ 	/** Temporary storage */
+ 	unsigned long tmp0;
+ } __packed;
+@@ -71,6 +76,10 @@ struct sbi_scratch {
+ #define sbi_scratch_thishart_arg1_ptr()	\
+ ((void *)(sbi_scratch_thishart_ptr()->next_arg1))
+ 
++/** Get pointer to sbi_ipi_data from sbi_scratch */
++#define sbi_ipi_data_ptr(scratch)      \
++((struct sbi_ipi_data *)(void*)scratch + SBI_IPI_DATA_IPI_TYPE_OFFSET)
++
+ #endif
+ 
+ #endif
+diff --git a/lib/sbi_ipi.c b/lib/sbi_ipi.c
+index 0e371d7..e0f2a19 100644
+--- a/lib/sbi_ipi.c
++++ b/lib/sbi_ipi.c
+@@ -31,7 +31,7 @@ static int sbi_ipi_send(struct sbi_scratch *scratch, u32 hartid, u32 event)
+ 	 * trigger the interrupt
+ 	 */
+ 	remote_scratch = sbi_hart_id_to_scratch(scratch, hartid);
+-	atomic_raw_set_bit(event, &remote_scratch->ipi_type);
++	atomic_raw_set_bit(event, &sbi_ipi_data_ptr(remote_scratch)->ipi_type);
+ 	mb();
+ 	sbi_platform_ipi_send(plat, hartid);
+ 	if (event != SBI_IPI_EVENT_SOFT)
+@@ -80,7 +80,7 @@ void sbi_ipi_process(struct sbi_scratch *scratch)
+ 	sbi_platform_ipi_clear(plat, hartid);
+ 
+ 	do {
+-		ipi_type = scratch->ipi_type;
++		ipi_type = sbi_ipi_data_ptr(scratch)->ipi_type;
+ 		rmb();
+ 		ipi_event = __ffs(ipi_type);
+ 		switch (ipi_event) {
+@@ -97,12 +97,14 @@ void sbi_ipi_process(struct sbi_scratch *scratch)
+ 			sbi_hart_hang();
+ 			break;
+ 		};
+-		ipi_type = atomic_raw_clear_bit(ipi_event, &scratch->ipi_type);
++		ipi_type = atomic_raw_clear_bit(ipi_event, &sbi_ipi_data_ptr(scratch)->ipi_type);
+ 	} while(ipi_type > 0);
+ }
+ 
+ int sbi_ipi_init(struct sbi_scratch *scratch, bool cold_boot)
+ {
++	sbi_ipi_data_ptr(scratch)->ipi_type = 0x00;
++
+ 	/* Enable software interrupts */
+ 	csr_set(CSR_MIE, MIP_MSIP);
+ 
+-- 
+2.22.0
+
diff --git a/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc b/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc
new file mode 100644
index 0000000..7df1683
--- /dev/null
+++ b/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc
@@ -0,0 +1,37 @@
+def riscv_get_extra_oemake_image(d):
+    sbi_payload = d.getVar('RISCV_SBI_PAYLOAD')
+    deploy_dir = d.getVar('DEPLOY_DIR_IMAGE')
+
+    if sbi_payload is None:
+        return ""
+
+    if d.getVar('RISCV_SBI_PAYLOAD'):
+        return "FW_PAYLOAD_PATH=" + deploy_dir + "/" + sbi_payload
+
+    return ""
+
+def riscv_get_extra_oemake_fdt(d):
+    sbi_fdt_payload = d.getVar('RISCV_SBI_FDT')
+    deploy_dir = d.getVar('DEPLOY_DIR_IMAGE')
+
+    if sbi_fdt_payload is None:
+        return ""
+
+    if d.getVar('RISCV_SBI_PAYLOAD'):
+        # This is internal to openSBI, not a full path
+        return "FW_PAYLOAD_FDT=" + sbi_fdt_payload
+
+    return ""
+
+def riscv_get_do_compile_depends(d):
+    sbi_payload = d.getVar('RISCV_SBI_PAYLOAD')
+
+    if sbi_payload is None:
+        return ""
+
+    if 'linux' in sbi_payload or 'Image' in sbi_payload:
+        return "virtual/kernel:do_deploy"
+    if 'u-boot' in sbi_payload:
+        return "virtual/bootloader:do_deploy"
+
+    return ""
diff --git a/poky/meta/recipes-bsp/opensbi/opensbi_0.3.bb b/poky/meta/recipes-bsp/opensbi/opensbi_0.3.bb
new file mode 100644
index 0000000..2b4fb97
--- /dev/null
+++ b/poky/meta/recipes-bsp/opensbi/opensbi_0.3.bb
@@ -0,0 +1,49 @@
+SUMMARY = "RISC-V Open Source Supervisor Binary Interface (OpenSBI)"
+DESCRIPTION = "OpenSBI aims to provide an open-source and extensible implementation of the RISC-V SBI specification for a platform specific firmware (M-mode) and a general purpose OS, hypervisor or bootloader (S-mode or HS-mode). OpenSBI implementation can be easily extended by RISC-V platform or System-on-Chip vendors to fit a particular hadware configuration."
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=c36118b4f615f9da37635f2a7ac8ccaf"
+DEPENDS += "dtc-native"
+
+require opensbi-payloads.inc
+
+inherit autotools-brokensep
+
+SRCREV = "ca20ac0cd4c099006d4eea4d9ac7bd7b58e2ae0f"
+SRC_URI = "git://github.com/riscv/opensbi.git \
+           file://0001-Makefile-Don-t-specify-mabi-or-march.patch \
+           file://0002-lib-Create-a-sbi_ipi_data-structure.patch \
+          "
+
+S = "${WORKDIR}/git"
+
+SRC_URI[md5sum] = "621f38d8205ef5fb185e4055025e73df"
+SRC_URI[sha256sum] = "07f18b73abf3b85aabe5bead19a923716c100d30eb58033459f39c3a224be300"
+
+EXTRA_OEMAKE += "PLATFORM=${RISCV_SBI_PLAT} I=${D}"
+# If RISCV_SBI_PAYLOAD is set then include it as a payload
+EXTRA_OEMAKE_append = " ${@riscv_get_extra_oemake_image(d)} ${@riscv_get_extra_oemake_fdt(d)}"
+
+# Required if specifying a custom payload
+do_compile[depends] += "${@riscv_get_do_compile_depends(d)}"
+
+do_install_append() {
+	# In the future these might be required as a dependency for other packages.
+	# At the moment just delete them to avoid warnings
+	rm -r ${D}/include
+	rm -r ${D}/platform/${RISCV_SBI_PLAT}/lib
+	rm -r ${D}/platform/${RISCV_SBI_PLAT}/firmware/payloads
+}
+
+do_deploy () {
+	install -d ${DEPLOY_DIR_IMAGE}
+	install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.* ${DEPLOY_DIR_IMAGE}/
+	install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.* ${DEPLOY_DIR_IMAGE}/
+}
+
+addtask deploy after do_install
+
+FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.*"
+FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.*"
+
+COMPATIBLE_HOST = "(riscv64|riscv32).*"
+INHIBIT_PACKAGE_STRIP = "1"
diff --git a/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb
index 0a5c2ff..35cdf71 100644
--- a/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb
+++ b/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb
@@ -8,7 +8,7 @@
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://LICENCE;md5=429658c6612f3a9b1293782366ab29d8"
 
-DEPENDS = "zlib openssl"
+DEPENDS = "zlib openssl virtual/crypt"
 DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
 
 SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar.gz \
diff --git a/poky/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch b/poky/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch
new file mode 100644
index 0000000..9a90a68
--- /dev/null
+++ b/poky/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch
@@ -0,0 +1,43 @@
+From 1f8c0f2feea5cdcae0bcd9dfc78198d9e2c4cf09 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Thu, 13 Jun 2019 12:17:30 +0900
+Subject: [PATCH] Fix build error for aarch64 big endian.
+
+Modified rev to rev64, because rev only takes integer registers.
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90827
+Otherwise, the following error will occur.
+
+Error: operand 1 must be an integer register -- `rev v31.16b,v31.16b'
+
+Upstream-Status: Submitted [https://github.com/openssl/openssl/pull/9151]
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ crypto/sha/asm/keccak1600-armv8.pl | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/crypto/sha/asm/keccak1600-armv8.pl b/crypto/sha/asm/keccak1600-armv8.pl
+index dc72f18..6620690 100755
+--- a/crypto/sha/asm/keccak1600-armv8.pl
++++ b/crypto/sha/asm/keccak1600-armv8.pl
+@@ -731,7 +731,7 @@ $code.=<<___;
+ 	blo	.Lprocess_block_ce
+ 	ldr	d31,[$inp],#8		// *inp++
+ #ifdef	__AARCH64EB__
+-	rev	v31.16b,v31.16b
++	rev64	v31.16b,v31.16b
+ #endif
+ 	eor	$A[$j/5][$j%5],$A[$j/5][$j%5],v31.16b
+ 	beq	.Lprocess_block_ce
+@@ -740,7 +740,7 @@ ___
+ $code.=<<___;
+ 	ldr	d31,[$inp],#8		// *inp++
+ #ifdef	__AARCH64EB__
+-	rev	v31.16b,v31.16b
++	rev64	v31.16b,v31.16b
+ #endif
+ 	eor	$A[4][4],$A[4][4],v31.16b
+ 
+-- 
+2.7.4
+
diff --git a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb
index 534be57..0117407 100644
--- a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb
+++ b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb
@@ -16,6 +16,7 @@
            file://0001-skip-test_symbol_presence.patch \
            file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \
            file://afalg.patch \
+           file://0001-Fix-build-error-for-aarch64-big-endian.patch \
            "
 
 SRC_URI_append_class-nativesdk = " \
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross b/poky/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross
index 8420f98..b5df400 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross
@@ -4,3 +4,6 @@
 have_unix98_printf = true
 va_val_copy = true
 growing_stack = false
+
+[binaries]
+env = "/usr/bin/env"
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.60.3.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.60.3.bb
index f4ade09..bb77294 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.60.3.bb
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.60.3.bb
@@ -16,10 +16,10 @@
            file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
            file://0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch \
            file://0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch \
-           file://glib-meson.cross \
            "
 
 SRC_URI_append_class-native = " file://relocate-modules.patch"
+SRC_URI_append_class-target = " file://glib-meson.cross"
 
 SRC_URI[md5sum] = "112a850caa8d2c21e24d4c9844e8b1fe"
 SRC_URI[sha256sum] = "04ab0d560d45790d055f50db2d69974eab8b693a77390075462c56e652b760b9"
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.6.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.6.bb
new file mode 100644
index 0000000..ebc4648
--- /dev/null
+++ b/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.6.bb
@@ -0,0 +1,18 @@
+#
+# This provides libcrypto.so.1 which contains obsolete APIs, needed for uninative in particular
+#
+
+require libxcrypt_${PV}.bb
+
+PROVIDES = ""
+AUTO_LIBNAME_PKGS = ""
+EXCLUDE_FROM_WORLD = "1"
+
+API = "--enable-obsolete-api"
+
+do_install_append () {
+	rm -rf ${D}${includedir}
+	rm -rf ${D}${libdir}/pkgconfig
+	rm -rf ${D}${datadir}
+}
+
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.6.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.6.bb
index 637c0e6..893f5e7 100644
--- a/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.6.bb
+++ b/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.6.bb
@@ -29,4 +29,7 @@
 TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir} -Wno-error=missing-attributes"
 CPPFLAGS_append_class-nativesdk = " -Wno-error=missing-attributes"
 
+API = "--disable-obsolete-api"
+EXTRA_OECONF += "${API}"
+
 BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-core/meta/cve-update-db.bb b/poky/meta/recipes-core/meta/cve-update-db.bb
new file mode 100644
index 0000000..522fd23
--- /dev/null
+++ b/poky/meta/recipes-core/meta/cve-update-db.bb
@@ -0,0 +1,121 @@
+SUMMARY = "Updates the NVD CVE database"
+LICENSE = "MIT"
+
+INHIBIT_DEFAULT_DEPS = "1"
+PACKAGES = ""
+
+inherit nopackages
+
+deltask do_fetch
+deltask do_unpack
+deltask do_patch
+deltask do_configure
+deltask do_compile
+deltask do_install
+deltask do_populate_sysroot
+
+python do_populate_cve_db() {
+    """
+    Update NVD database with json data feed
+    """
+
+    import sqlite3, urllib3, shutil, gzip, re
+    from datetime import date
+
+    BASE_URL = "https://nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-"
+    YEAR_START = 2002
+    JSON_TMPFILE = d.getVar("CVE_CHECK_DB_DIR") + '/nvd.json.gz'
+
+    # Connect to database
+    db_file = d.getVar("CVE_CHECK_DB_FILE")
+    conn = sqlite3.connect(db_file)
+    c = conn.cursor()
+
+    initialize_db(c)
+
+    http = urllib3.PoolManager()
+
+    for year in range(YEAR_START, date.today().year + 1):
+        year_url = BASE_URL + str(year)
+        meta_url = year_url + ".meta"
+        json_url = year_url + ".json.gz"
+
+        # Retrieve meta last modified date
+        with http.request('GET', meta_url, preload_content=False) as r:
+            date_line = str(r.data.splitlines()[0])
+            last_modified = re.search('lastModifiedDate:(.*)', date_line).group(1)
+
+        # Compare with current db last modified date
+        c.execute("select DATE from META where YEAR = '%d'" % year)
+        meta = c.fetchone()
+        if not meta or meta[0] != last_modified:
+            # Update db with current year json file
+            with http.request('GET', json_url, preload_content=False) as r, open(JSON_TMPFILE, 'wb') as tmpfile:
+                shutil.copyfileobj(r, tmpfile)
+            with gzip.open(JSON_TMPFILE, 'rt') as jsonfile:
+                update_db(c, jsonfile)
+            c.execute("insert or replace into META values (?, ?)",
+                    [year, last_modified])
+
+    conn.commit()
+    conn.close()
+
+    with open(d.getVar("CVE_CHECK_TMP_FILE"), 'a'):
+        os.utime(d.getVar("CVE_CHECK_TMP_FILE"), None)
+}
+
+# DJB2 hash algorithm
+def hash_djb2(s):
+    hash = 5381
+    for x in s:
+        hash = (( hash << 5) + hash) + ord(x)
+
+    return hash & 0xFFFFFFFF
+
+def initialize_db(c):
+    c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)")
+    c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \
+        SCOREV2 TEXT, SCOREV3 TEXT, MODIFIED INTEGER, VECTOR TEXT)")
+    c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (HASH INTEGER UNIQUE, ID TEXT, \
+        VENDOR TEXT, PRODUCT TEXT, VERSION TEXT, OPERATOR TEXT)")
+    c.execute("CREATE INDEX IF NOT EXISTS PRODUCT_IDX ON PRODUCTS \
+        (PRODUCT, VERSION)")
+
+def update_db(c, json_filename):
+    import json
+    root = json.load(json_filename)
+
+    for elt in root['CVE_Items']:
+        if not elt['impact']:
+            continue
+
+        cveId = elt['cve']['CVE_data_meta']['ID']
+        cveDesc = elt['cve']['description']['description_data'][0]['value']
+        date = elt['lastModifiedDate']
+        accessVector = elt['impact']['baseMetricV2']['cvssV2']['accessVector']
+        cvssv2 = elt['impact']['baseMetricV2']['cvssV2']['baseScore']
+
+        try:
+            cvssv3 = elt['impact']['baseMetricV3']['cvssV3']['baseScore']
+        except:
+            cvssv3 = 0.0
+
+        c.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?)",
+                [cveId, cveDesc, cvssv2, cvssv3, date, accessVector])
+
+        for vendor in elt['cve']['affects']['vendor']['vendor_data']:
+            for product in vendor['product']['product_data']:
+                for version in product['version']['version_data']:
+                    product_str = cveId+vendor['vendor_name']+product['product_name']+version['version_value']
+                    hashstr = hash_djb2(product_str)
+                    c.execute("insert or replace into PRODUCTS values (?, ?, ?, ?, ?, ?)",
+                            [ hashstr, cveId, vendor['vendor_name'],
+                                product['product_name'], version['version_value'],
+                                version['version_affected']])
+
+
+
+addtask do_populate_cve_db before do_cve_check
+do_populate_cve_db[nostamp] = "1"
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb b/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb
index 50182de..b5e8c0f 100644
--- a/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb
+++ b/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb
@@ -46,6 +46,7 @@
     /bin/bash \
     /usr/bin/env \
     /usr/bin/perl \
+    libperl.so.5 \
     pkgconfig \
     pkgconfig-dev \
     pkgconfig-src \
diff --git a/poky/meta/recipes-core/meta/uninative-tarball.bb b/poky/meta/recipes-core/meta/uninative-tarball.bb
index 25635fc..39638eb 100644
--- a/poky/meta/recipes-core/meta/uninative-tarball.bb
+++ b/poky/meta/recipes-core/meta/uninative-tarball.bb
@@ -16,6 +16,7 @@
     nativesdk-glibc-gconv-libjis \
     nativesdk-patchelf \
     nativesdk-libxcrypt \
+    nativesdk-libxcrypt-compat \
     nativesdk-libnss-nis \
     "
 
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-base.bb b/poky/meta/recipes-core/packagegroups/packagegroup-base.bb
index cae704a..d054036 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-base.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-base.bb
@@ -271,6 +271,7 @@
 SUMMARY_packagegroup-base-wifi = "WiFi support"
 RDEPENDS_packagegroup-base-wifi = "\
     iw \
+    wireless-regdb-static \
     wpa-supplicant"
 
 RRECOMMENDS_packagegroup-base-wifi = "\
diff --git a/poky/meta/recipes-core/systemd/systemd-conf/wired.network b/poky/meta/recipes-core/systemd/systemd-conf/wired.network
index 253aee9..ff807ba 100644
--- a/poky/meta/recipes-core/systemd/systemd-conf/wired.network
+++ b/poky/meta/recipes-core/systemd/systemd-conf/wired.network
@@ -1,5 +1,6 @@
 [Match]
 Name=en* eth*
+KernelCommandLine=!nfsroot
 
 [Network]
 DHCP=yes
diff --git a/poky/meta/recipes-core/volatile-binds/files/mount-copybind b/poky/meta/recipes-core/volatile-binds/files/mount-copybind
index fddf520..e32e675 100755
--- a/poky/meta/recipes-core/volatile-binds/files/mount-copybind
+++ b/poky/meta/recipes-core/volatile-binds/files/mount-copybind
@@ -42,14 +42,14 @@
     if ! mount -t overlay overlay -olowerdir="$mountpoint",upperdir="$spec",workdir="$overlay_workdir" "$mountpoint" > /dev/null 2>&1; then
 
         if [ "$specdir_existed" != "yes" ]; then
-            cp -pPR "$mountpoint"/. "$spec/"
+            cp -aPR "$mountpoint"/. "$spec/"
         fi
 
         mount -o "bind$options" "$spec" "$mountpoint"
     fi
 elif [ -f "$mountpoint" ]; then
     if [ ! -f "$spec" ]; then
-        cp -pP "$mountpoint" "$spec"
+        cp -aP "$mountpoint" "$spec"
     fi
 
     mount -o "bind$options" "$spec" "$mountpoint"
diff --git a/poky/meta/recipes-devtools/apt/apt-package.inc b/poky/meta/recipes-devtools/apt/apt-package.inc
index 6a01f99..da91451 100644
--- a/poky/meta/recipes-devtools/apt/apt-package.inc
+++ b/poky/meta/recipes-devtools/apt/apt-package.inc
@@ -83,7 +83,7 @@
 	install -m 0644 include/apt-pkg/*.h ${D}${includedir}/apt-pkg/
 
 	install -d ${D}${systemd_unitdir}/system/
-	install -m 0644 ${S}/debian/apt.systemd.daily ${D}${libdir}/apt/
+	install -m 0755 ${S}/debian/apt.systemd.daily ${D}${libdir}/apt/
 	install -m 0644 ${S}/debian/apt-daily.service ${D}${systemd_unitdir}/system/
 	sed -i 's#/usr/lib/apt/#${libdir}/apt/#g' ${D}${systemd_unitdir}/system/apt-daily.service
 	install -m 0644 ${S}/debian/apt-daily.timer ${D}${systemd_unitdir}/system/
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch
deleted file mode 100644
index e23be32..0000000
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From c384fa875c5128009ac8b6ba11a54a6bd4de575a Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 17 May 2018 12:21:31 +0300
-Subject: [PATCH] Add LDFLAGS when building libbtrfsutil.so and python
- bindings.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index e25e256f..6df00186 100644
---- a/Makefile
-+++ b/Makefile
-@@ -424,7 +424,7 @@ libbtrfsutil/%.o: libbtrfsutil/%.c
- 
- libbtrfsutil.so.$(libbtrfsutil_version): $(libbtrfsutil_objects)
- 	@echo "    [LD]     $@"
--	$(Q)$(CC) $(LIBBTRFSUTIL_CFLAGS) $(libbtrfsutil_objects) \
-+	$(Q)$(CC) $(LIBBTRFSUTIL_CFLAGS) $(LDFLAGS) $(libbtrfsutil_objects) \
- 		-shared -Wl,-soname,libbtrfsutil.so.$(libbtrfsutil_major) -o $@
- 
- libbtrfsutil.a: $(libbtrfsutil_objects)
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0003-btrfs-progs-Pass-CFLAGS-and-LDFLAGS-to-Python.patch b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0003-btrfs-progs-Pass-CFLAGS-and-LDFLAGS-to-Python.patch
deleted file mode 100644
index f695071..0000000
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0003-btrfs-progs-Pass-CFLAGS-and-LDFLAGS-to-Python.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 730fe2ee2fb9e08cbe885f370afe83fecb18d048 Mon Sep 17 00:00:00 2001
-From: Joshua Watt <JPEWhacker@gmail.com>
-Date: Sun, 26 May 2019 21:26:04 -0500
-Subject: [PATCH] btrfs-progs: Pass CFLAGS and LDFLAGS to Python
-
-Adds Make variables EXTRA_PYTHON_CFLAGS and EXTRA_PYTHON_LDFLAGS which
-can be used to pass CFLAGS and LDFLAGS respectively when building the
-Python library.
-
-This is required to support reproducible builds, as there are often
-compiler and linker flags that must be passed in order to generate
-reproducible output (e.g. -fdebug-prefix-map)
-
-Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
-Upstream-Status: Accepted [https://github.com/kdave/btrfs-progs/pull/176]
----
- Makefile | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 505bd9c1..814767a8 100644
---- a/Makefile
-+++ b/Makefile
-@@ -24,6 +24,10 @@
- #   DEBUG_CFLAGS   additional compiler flags for debugging build
- #   EXTRA_CFLAGS   additional compiler flags
- #   EXTRA_LDFLAGS  additional linker flags
-+#   EXTRA_PYTHON_CFLAGS  additional compiler flags to pass when building Python
-+#                        library
-+#   EXTRA_PYTHON_LDFLAGS additional linker flags to pass when building Python
-+#                        library
- #
- # Testing-specific options (see also tests/README.md):
- #   TEST=GLOB      run test(s) from directories matching GLOB
-@@ -439,7 +443,7 @@ ifeq ($(PYTHON_BINDINGS),1)
- libbtrfsutil_python: libbtrfsutil.so.$(libbtrfsutil_major) libbtrfsutil.so libbtrfsutil/btrfsutil.h
- 	@echo "    [PY]     libbtrfsutil"
- 	$(Q)cd libbtrfsutil/python; \
--		CFLAGS= LDFLAGS= $(PYTHON) setup.py $(SETUP_PY_Q) build_ext -i build
-+		CFLAGS="$(EXTRA_PYTHON_CFLAGS)" LDFLAGS="$(EXTRA_PYTHON_LDFLAGS)" $(PYTHON) setup.py $(SETUP_PY_Q) build_ext -i build
- 
- .PHONY: libbtrfsutil_python
- endif
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.1.bb
similarity index 89%
rename from poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.bb
rename to poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.1.bb
index 89cc1bf..2cd9970 100644
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.bb
+++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.1.bb
@@ -14,11 +14,9 @@
 DEPENDS_append_class-target = " udev"
 RDEPENDS_${PN} = "libgcc"
 
-SRCREV = "43013422dbce4bcc9ed77cfe65b294caa0985ec8"
+SRCREV = "781e36a784faa58a4f0515eef124af860d59e2c0"
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \
-           file://0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch \
            file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
-           file://0003-btrfs-progs-Pass-CFLAGS-and-LDFLAGS-to-Python.patch \
            "
 
 inherit autotools-brokensep pkgconfig manpages distutils3-base
diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.0.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.2.bb
similarity index 95%
rename from poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.0.bb
rename to poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.2.bb
index 2a3007c..80c559f 100644
--- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.0.bb
+++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.2.bb
@@ -8,7 +8,7 @@
            file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
            "
 
-SRCREV = "8cffea9751b14366a7f6f3664f5d39fe4f0f9253"
+SRCREV = "f390af98c8f1bb04010e293ea864eae160f75879"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-devtools/dpkg/dpkg/pager.patch b/poky/meta/recipes-devtools/dpkg/dpkg/pager.patch
new file mode 100644
index 0000000..e56b9d2
--- /dev/null
+++ b/poky/meta/recipes-devtools/dpkg/dpkg/pager.patch
@@ -0,0 +1,21 @@
+pager: Use less instead of pager
+
+pager is a Debianism. Istead use directly pager.
+
+Upstream-Status: Inappropriate [OE-Core integration specific]
+
+Suggested-by: Burton, Ross <ross.burton@intel.com>
+Signed-off-by: Ricardo Ribalda <ricardo@ribalda.com>
+diff --git a/lib/dpkg/dpkg.h b/lib/dpkg/dpkg.h
+index 2bb067a..6cbce80 100644
+--- a/lib/dpkg/dpkg.h
++++ b/lib/dpkg/dpkg.h
+@@ -95,7 +95,7 @@ DPKG_BEGIN_DECLS
+ #define MAXUPDATES         250
+ 
+ #define DEFAULTSHELL        "sh"
+-#define DEFAULTPAGER        "pager"
++#define DEFAULTPAGER        "less"
+ 
+ #define MD5HASHLEN           32
+ #define MAXTRIGDIRECTIVE     256
diff --git a/poky/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb b/poky/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb
index 77fbfb5..b83868f 100644
--- a/poky/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb
+++ b/poky/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb
@@ -12,6 +12,7 @@
            file://0006-add-musleabi-to-known-target-tripets.patch \
            file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \
            file://0001-dpkg-Support-muslx32-build.patch \
+           file://pager.patch \
            "
 SRC_URI_append_class-native = " \
                                 file://tweak-options-require-tar-1.27.patch \
diff --git a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc
index 3d03d8e..ba767e1 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -86,10 +86,6 @@
 	if [ -d ${D}${infodir} ]; then
 		rmdir --ignore-fail-on-non-empty -p ${D}${infodir}
 	fi
-	if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then
-		ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}
-	fi
-
 }
 
 do_install_append_class-target () {
@@ -98,20 +94,29 @@
 	fi
 
 	if [ "${TARGET_OS}" = "linux-gnun32" ]; then
-		if [ "${MULTILIBS}" != "" ]; then
-			mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-pokymllib64-linux
-			ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-pokymllib64-linux/32
+		if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then
+			mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux
+			ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux/32
+		elif [ "${MULTILIB_VARIANTS}" != "" ]; then
+			mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
+			ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux/32
 		else
 			ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
 		fi
-	fi
-	if [ "${TARGET_OS}" = "linux-gnux32" ]; then
-		if [ "${MULTILIBS}" != "" ]; then
-			mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-poky-linux
-			ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-poky-linux/x32
+	elif [ "${TARGET_OS}" = "linux-gnux32" ]; then
+		if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then
+			mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux
+			ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux/x32
+		elif [ "${MULTILIB_VARIANTS}" != "" ]; then
+			mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
+			ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux/32
 		else
 			ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
 		fi
+	elif [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then
+		mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux
+		ln -s ../${TARGET_SYS}/bits ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}/bits
+		ln -s ../${TARGET_SYS}/ext ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}/ext
 	fi
 
 	if [ "${TCLIBC}" != "glibc" ]; then
diff --git a/poky/meta/recipes-devtools/go/go-1.12.inc b/poky/meta/recipes-devtools/go/go-1.12.inc
index 7c4cac1..3f23f06 100644
--- a/poky/meta/recipes-devtools/go/go-1.12.inc
+++ b/poky/meta/recipes-devtools/go/go-1.12.inc
@@ -1,7 +1,7 @@
 require go-common.inc
 
 GO_BASEVERSION = "1.12"
-GO_MINOR = ".5"
+GO_MINOR = ".6"
 PV .= "${GO_MINOR}"
 FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
 
@@ -19,5 +19,5 @@
 "
 SRC_URI_append_libc-musl = " file://0009-ld-replace-glibc-dynamic-linker-with-musl.patch"
 
-SRC_URI[main.md5sum] = "cb6f594d22dd79af4fff9779607b1b47"
-SRC_URI[main.sha256sum] = "2aa5f088cbb332e73fc3def546800616b38d3bfe6b8713b8a6404060f22503e8"
+SRC_URI[main.md5sum] = "48a4141fc718dd742d106431294f08bf"
+SRC_URI[main.sha256sum] = "c96c5ccc7455638ae1a8b7498a030fe653731c8391c5f8e79590bce72f92b4ca"
diff --git a/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb b/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
index d4ffd28..7e8aea7 100644
--- a/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
+++ b/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
@@ -8,8 +8,8 @@
            file://0001-v1-meson.build-explicitly-specify-the-v1-library-in-.patch \
            "
 
-PV = "2.4.0"
-SRCREV = "d0a3eda45e083e8fe8b329a2310a53abdbf1e4d6"
+PV = "2.5.0"
+SRCREV = "8d9a99ddf037df7c032119cdd3a87238a3cc9090"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-devtools/librepo/librepo_1.10.2.bb b/poky/meta/recipes-devtools/librepo/librepo_1.10.3.bb
similarity index 93%
rename from poky/meta/recipes-devtools/librepo/librepo_1.10.2.bb
rename to poky/meta/recipes-devtools/librepo/librepo_1.10.3.bb
index 43c1967..d7c83ed 100644
--- a/poky/meta/recipes-devtools/librepo/librepo_1.10.2.bb
+++ b/poky/meta/recipes-devtools/librepo/librepo_1.10.3.bb
@@ -7,7 +7,7 @@
            file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \
            "
 
-SRCREV = "91ebe846b0320751a264116c36a665a8facf9e0e"
+SRCREV = "2eb0a27031956fd98340ca2707f03abb7b780372"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch b/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
index da47745..2b22531 100644
--- a/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
@@ -51,7 +51,7 @@
 -        cmd = self.pkgbin.get_command() + args
 +    def _call_pkgbin_real(self, args, env, use_native=False):
 +        if use_native:
-+            cmd = self.pkgbin.get_command() + "-native" + args
++            cmd = [self.pkgbin.get_command()[0] + "-native"] + args
 +        else:
 +            cmd = self.pkgbin.get_command() + args
          p, out = Popen_safe(cmd, env=env)[0:2]
diff --git a/poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch b/poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch
deleted file mode 100644
index 4ece56b..0000000
--- a/poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 0f833ac73ad631248826386e2918d8571ecf0347 Mon Sep 17 00:00:00 2001
-From: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
-Date: Sat, 9 Jun 2018 16:45:22 +0200
-Subject: [PATCH] Revert "Return correct error number in ubi_get_vol_info1"
-
-This reverts commit dede98ffb706676309488d7cc660f569548d5930.
-
-The original commit tried to fix a descrepancy between the implementation
-and the documentation by making the implementation comply.
-
-When making the change, it was overlooked, that ubinfo and ubirename were
-written against the implementation instead of the behaviour specified by
-the documentation. So were further internal functions like
-ubi_get_vol_info1_nm which further breaks ubirmvol.
-
-A report with an outline of a resulting problem can be read on
-the mailing list:
-
-http://lists.infradead.org/pipermail/linux-mtd/2018-June/081562.html
-
-From the report:
-
-steps to reproduce: have mtd-utils 2.0.1 or 2.0.2
-
-0. make a bunch of ubi volumes in sequential order
-
-ubimkvol /dev/ubi0 -s 64KiB -N test1
-ubimkvol /dev/ubi0 -s 64KiB -N test2
-ubimkvol /dev/ubi0 -s 64KiB -N test3
-ubimkvol /dev/ubi0 -s 64KiB -N test4
-..
-
-1. delete the test1 volume, making a hole in the volume table
-
-ubirmvol /dev/ubi0 -N test1
-
-2. try an affected tool (i.e. "ubirmvol /dev/ubi0 -N test4" )
-
- |root at mr24:/# ubirmvol /dev/ubi0 -N test4
- |ubirmvol: error!: cannot find UBI volume "test4"
- |         error 19 (No such device)
-
-or "ubinfo -a"
-
- | root at mr24:/# ubinfo -a
- | UBI version:                    1
- | Count of UBI devices:           1
- | UBI control device major/minor: 10:59
- | Present UBI devices:            ubi0
- |
- | ubi0
- | Volumes count:                           11
- | Logical eraseblock size:                 15872 bytes, 15.5 KiB
- | Total amount of logical eraseblocks:     1952 (30982144 bytes, 29.5 MiB)
- | Amount of available logical eraseblocks: 75 (1190400 bytes, 1.1 MiB)
- | Maximum count of volumes                 92
- | Count of bad physical eraseblocks:       0
- | Count of reserved physical eraseblocks:  40
- | Current maximum erase counter value:     984
- | Minimum input/output unit size:          512 bytes
- | Character device major/minor:            251:0
- | ubinfo: error!: libubi failed to probe volume 5 on ubi0
- |        error 19 (No such device)
- | Present volumes:                         0, 1, 2, 3, 4root at mr24:/#
-
-Reported-by: Christian Lamparter <chunkeey@gmail.com>
-Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
-Upstream-Status: Accepted [http://git.infradead.org/mtd-utils.git/commit/0f833ac73ad631248826386e2918d8571ecf0347]
----
- lib/libubi.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/lib/libubi.c b/lib/libubi.c
-index b50e68a..978b433 100644
---- a/lib/libubi.c
-+++ b/lib/libubi.c
-@@ -1240,11 +1240,8 @@ int ubi_get_vol_info1(libubi_t desc, int dev_num, int vol_id,
- 	info->dev_num = dev_num;
- 	info->vol_id = vol_id;
- 
--	if (vol_get_major(lib, dev_num, vol_id, &info->major, &info->minor)) {
--		if (errno == ENOENT)
--			errno = ENODEV;
-+	if (vol_get_major(lib, dev_num, vol_id, &info->major, &info->minor))
- 		return -1;
--	}
- 
- 	ret = vol_read_data(lib->vol_type, dev_num, vol_id, buf, 50);
- 	if (ret < 0)
--- 
-2.14.4
-
diff --git a/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb b/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
index 9ffac2e..49a650a 100644
--- a/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
+++ b/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
@@ -10,12 +10,11 @@
 DEPENDS = "zlib e2fsprogs util-linux"
 RDEPENDS_mtd-utils-tests += "bash"
 
-PV = "2.0.2+${SRCPV}"
+PV = "2.1.0+${SRCPV}"
 
-SRCREV = "bc63d36e39f389c8c17f6a8e9db47f2acc884659"
+SRCREV = "b5027be5f470830ac9543db3c52e076b13abd313"
 SRC_URI = "git://git.infradead.org/mtd-utils.git \
            file://add-exclusion-to-mkfs-jffs2-git-2.patch \
-           file://0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch \
 "
 
 S = "${WORKDIR}/git/"
@@ -25,9 +24,12 @@
 # xattr support creates an additional compile-time dependency on acl because
 # the sys/acl.h header is needed. libacl is not needed and thus enabling xattr
 # regardless whether acl is enabled or disabled in the distro should be okay.
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)} lzo"
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)} lzo jffs ubifs"
 PACKAGECONFIG[lzo] = "--with-lzo,--without-lzo,lzo"
 PACKAGECONFIG[xattr] = "--with-xattr,--without-xattr,acl"
+PACKAGECONFIG[crypto] = "--with-crypto,--without-crypto,openssl"
+PACKAGECONFIG[jffs] = "--with-jffs,--without-jffs"
+PACKAGECONFIG[ubifs] = "--with-ubifs,--without-ubifs"
 
 CPPFLAGS_append_riscv64  = " -pthread -D_REENTRANT"
 
@@ -59,7 +61,9 @@
 	oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir}
 }
 
-PACKAGES =+ "mtd-utils-jffs2 mtd-utils-ubifs mtd-utils-misc mtd-utils-tests"
+PACKAGES =+ "mtd-utils-misc mtd-utils-tests"
+PACKAGES =+ "${@bb.utils.contains("PACKAGECONFIG", "jffs", "mtd-utils-jffs2", "", d)}"
+PACKAGES =+ "${@bb.utils.contains("PACKAGECONFIG", "ubifs", "mtd-utils-ubifs", "", d)}"
 
 FILES_mtd-utils-jffs2 = "${sbindir}/mkfs.jffs2 ${sbindir}/jffs2dump ${sbindir}/jffs2reader ${sbindir}/sumtool"
 FILES_mtd-utils-ubifs = "${sbindir}/mkfs.ubifs ${sbindir}/ubi*"
diff --git a/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt b/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt
index 8d3e513..331a44d 100644
--- a/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt
+++ b/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt
@@ -451,6 +451,7 @@
 RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-strict"
 RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-text-parsewords"
 RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-warnings"
+RDEPENDS_perl-module-extutils-cbuilder += "perl-module-extutils-cbuilder-base"
 RDEPENDS_perl-module-extutils-cbuilder += "perl-module-file-basename"
 RDEPENDS_perl-module-extutils-cbuilder += "perl-module-file-path"
 RDEPENDS_perl-module-extutils-cbuilder += "perl-module-strict"
@@ -797,6 +798,8 @@
 RDEPENDS_perl-module-file-path += "perl-module-file-basename"
 RDEPENDS_perl-module-file-path += "perl-module-strict"
 RDEPENDS_perl-module-file-path += "perl-module-vars"
+RDEPENDS_perl-module-file-spec += "perl-module-constant"
+RDEPENDS_perl-module-file-spec += "perl-module-cwd"
 RDEPENDS_perl-module-file-spec += "perl-module-strict"
 RDEPENDS_perl-module-file-spec += "perl-module-file-spec-unix"
 RDEPENDS_perl-module-file-stat += "perl-module-class-struct"
@@ -1358,6 +1361,7 @@
 RDEPENDS_perl-module-math-trig += "perl-module-exporter"
 RDEPENDS_perl-module-math-trig += "perl-module-math-complex"
 RDEPENDS_perl-module-math-trig += "perl-module-strict"
+RDEPENDS_perl-module-metadata += "perl-module-version"
 RDEPENDS_perl-module-memoize-anydbm-file += "perl-module-vars"
 RDEPENDS_perl-module-memoize += "perl-module-config"
 RDEPENDS_perl-module-memoize += "perl-module-exporter"
@@ -1784,6 +1788,7 @@
 RDEPENDS_perl-module-tap-base += "perl-module-base"
 RDEPENDS_perl-module-tap-base += "perl-module-constant"
 RDEPENDS_perl-module-tap-base += "perl-module-strict"
+RDEPENDS_perl-module-tap-base += "perl-module-tap-object"
 RDEPENDS_perl-module-tap-base += "perl-module-warnings"
 RDEPENDS_perl-module-tap-formatter-base += "perl-module-base"
 RDEPENDS_perl-module-tap-formatter-base += "perl-module-posix"
@@ -1823,39 +1828,50 @@
 RDEPENDS_perl-module-tap-harness-env += "perl-module-text-parsewords"
 RDEPENDS_perl-module-tap-harness-env += "perl-module-warnings"
 RDEPENDS_perl-module-tap-harness += "perl-module-base"
+RDEPENDS_perl-module-tap-harness += "perl-module-carp"
 RDEPENDS_perl-module-tap-harness += "perl-module-file-path"
+RDEPENDS_perl-module-tap-harness += "perl-module-file-spec"
 RDEPENDS_perl-module-tap-harness += "perl-module-io-handle"
 RDEPENDS_perl-module-tap-harness += "perl-module-strict"
+RDEPENDS_perl-module-tap-harness += "perl-module-tap-base"
 RDEPENDS_perl-module-tap-harness += "perl-module-warnings"
 RDEPENDS_perl-module-tap-object += "perl-module-strict"
 RDEPENDS_perl-module-tap-object += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-benchmark"
 RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-tap-object"
 RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-grammar += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-grammar += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-grammar += "perl-module-tap-object"
 RDEPENDS_perl-module-tap-parser-grammar += "perl-module-tap-parser-resultfactory"
 RDEPENDS_perl-module-tap-parser-grammar += "perl-module-tap-parser-yamlish-reader"
 RDEPENDS_perl-module-tap-parser-grammar += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-tap-parser-iterator"
 RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-base"
+RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-carp"
 RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-constant"
 RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-file-basename"
 RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-tap-object"
 RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-iterator += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-iterator += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-iterator += "perl-module-tap-object"
 RDEPENDS_perl-module-tap-parser-iterator += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-config"
 RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-io-handle"
 RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-tap-parser-iterator"
 RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-tap-parser-iterator"
 RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-constant"
@@ -1863,6 +1879,7 @@
 RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-strict"
 RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser += "perl-module-base"
+RDEPENDS_perl-module-tap-parser += "perl-module-carp"
 RDEPENDS_perl-module-tap-parser += "perl-module-strict"
 RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-grammar"
 RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-iterator"
@@ -1878,12 +1895,15 @@
 RDEPENDS_perl-module-tap-parser += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-tap-parser-result"
 RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-tap-parser-result"
 RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-object"
 RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-bailout"
 RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-comment"
 RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-plan"
@@ -1895,31 +1915,41 @@
 RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-result += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-result += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-result += "perl-module-tap-object"
 RDEPENDS_perl-module-tap-parser-result += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-tap-parser-result"
 RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-tap-parser-result"
 RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-result-test += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-result-test += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-result-test += "perl-module-tap-parser-result"
 RDEPENDS_perl-module-tap-parser-result-test += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-tap-parser-result"
 RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-result-version += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-result-version += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-result-version += "perl-module-tap-parser-result"
 RDEPENDS_perl-module-tap-parser-result-version += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-tap-parser-result"
 RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-warnings"
+RDEPENDS_perl-module-tap-parser-scheduler-job += "perl-module-carp"
 RDEPENDS_perl-module-tap-parser-scheduler-job += "perl-module-strict"
 RDEPENDS_perl-module-tap-parser-scheduler-job += "perl-module-warnings"
+RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-carp"
 RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-strict"
 RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-tap-parser-scheduler-job"
 RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-tap-parser-scheduler-spinner"
 RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-warnings"
+RDEPENDS_perl-module-tap-parser-scheduler-spinner += "perl-module-carp"
 RDEPENDS_perl-module-tap-parser-scheduler-spinner += "perl-module-strict"
 RDEPENDS_perl-module-tap-parser-scheduler-spinner += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-base"
@@ -1927,18 +1957,21 @@
 RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-strict"
 RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-tap-parser-iteratorfactory"
 RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-tap-parser-iterator-process"
+RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-tap-parser-sourcehandler"
 RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-constant"
 RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-strict"
 RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-tap-parser-iteratorfactory"
 RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-tap-parser-iterator-stream"
+RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-tap-parser-sourcehandler"
 RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-constant"
 RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-strict"
 RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-tap-parser-iteratorfactory"
 RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-tap-parser-iterator-stream"
+RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-tap-parser-sourcehandler"
 RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-strict"
@@ -1950,23 +1983,28 @@
 RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-strict"
 RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iteratorfactory"
 RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iterator-process"
+RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-sourcehandler-executable"
 RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-text-parsewords"
 RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-strict"
 RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-tap-parser-iterator-array"
 RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-tap-parser-iteratorfactory"
+RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-tap-parser-sourcehandler"
 RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-source += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-source += "perl-module-constant"
 RDEPENDS_perl-module-tap-parser-source += "perl-module-file-basename"
 RDEPENDS_perl-module-tap-parser-source += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-source += "perl-module-tap-object"
 RDEPENDS_perl-module-tap-parser-source += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-tap-object"
 RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-base"
 RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-strict"
+RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-tap-object"
 RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-warnings"
 RDEPENDS_perl-module-term-ansicolor += "perl-module-exporter"
 RDEPENDS_perl-module-term-ansicolor += "perl-module-strict"
@@ -2491,9 +2529,11 @@
 RDEPENDS_perl-module-cpan += "perl-module-file-find"
 RDEPENDS_perl-module-cpan += "perl-module-filehandle"
 RDEPENDS_perl-module-cpan += "perl-module-file-path"
+RDEPENDS_perl-module-cpan += "perl-module-json-pp"
 RDEPENDS_perl-module-cpan += "perl-module-lib"
 RDEPENDS_perl-module-cpan += "perl-module-net-ping"
 RDEPENDS_perl-module-cpan += "perl-module-overload"
+RDEPENDS_perl-module-cpan += "perl-module-parse-cpan-meta"
 RDEPENDS_perl-module-cpan += "perl-module-posix"
 RDEPENDS_perl-module-cpan += "perl-module-safe"
 RDEPENDS_perl-module-cpan += "perl-module-strict"
@@ -2845,6 +2885,7 @@
 RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-makemaker-version"
 RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-manifest"
 RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-mm"
+RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-mm-unix"
 RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-my"
 RDEPENDS_perl-module-extutils-makemaker += "perl-module-file-path"
 RDEPENDS_perl-module-extutils-makemaker += "perl-module-strict"
@@ -3945,6 +3986,8 @@
 RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-strict"
 RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-vars"
 RDEPENDS_perl-module-pod-simple-transcode += "perl-module-strict"
+RDEPENDS_perl-module-pod-simple-transcode += "perl-module-pod-simple-transcodedumb"
+RDEPENDS_perl-module-pod-simple-transcode += "perl-module-pod-simple-transcodesmart"
 RDEPENDS_perl-module-pod-simple-transcode += "perl-module-vars"
 RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-encode"
 RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-pod-simple"
@@ -4038,6 +4081,7 @@
 RDEPENDS_perl-module-tap-base += "perl-module-base"
 RDEPENDS_perl-module-tap-base += "perl-module-constant"
 RDEPENDS_perl-module-tap-base += "perl-module-strict"
+RDEPENDS_perl-module-tap-base += "perl-module-tap-object"
 RDEPENDS_perl-module-tap-base += "perl-module-warnings"
 RDEPENDS_perl-module-tap-formatter-base += "perl-module-base"
 RDEPENDS_perl-module-tap-formatter-base += "perl-module-posix"
@@ -4063,7 +4107,9 @@
 RDEPENDS_perl-module-tap-formatter-file += "perl-module-base"
 RDEPENDS_perl-module-tap-formatter-file += "perl-module-posix"
 RDEPENDS_perl-module-tap-formatter-file += "perl-module-strict"
+RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-base"
 RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-file-session"
+RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-session"
 RDEPENDS_perl-module-tap-formatter-file += "perl-module-warnings"
 RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-base"
 RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-strict"
@@ -4080,6 +4126,7 @@
 RDEPENDS_perl-module-tap-harness += "perl-module-file-path"
 RDEPENDS_perl-module-tap-harness += "perl-module-io-handle"
 RDEPENDS_perl-module-tap-harness += "perl-module-strict"
+RDEPENDS_perl-module-tap-harness += "perl-module-tap-formatter-file"
 RDEPENDS_perl-module-tap-harness += "perl-module-warnings"
 RDEPENDS_perl-module-tap-object += "perl-module-strict"
 RDEPENDS_perl-module-tap-object += "perl-module-warnings"
@@ -4204,6 +4251,7 @@
 RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-strict"
 RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iteratorfactory"
 RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iterator-process"
+RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-sourcehandler-executable"
 RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-text-parsewords"
 RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-warnings"
 RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-base"
diff --git a/poky/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest b/poky/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest
new file mode 100644
index 0000000..0d63d15
--- /dev/null
+++ b/poky/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+for case in `find t -type f -name '*.t'`; do
+    perl -I inc -I blib -Mblib $case >$case.output 2>&1
+    ret=$?
+    cat $case.output
+    if [ $ret -ne 0 ]; then
+        echo "FAIL: ${case%.t}"
+    elif grep -i 'SKIP' $case.output; then
+        echo "SKIP: ${case%.t}"
+    else
+        echo "PASS: ${case%.t}"
+    fi
+
+    rm -f $case.output
+done
diff --git a/poky/meta/recipes-devtools/perl/libmodule-build-perl_0.4229.bb b/poky/meta/recipes-devtools/perl/libmodule-build-perl_0.4229.bb
new file mode 100644
index 0000000..f759f86
--- /dev/null
+++ b/poky/meta/recipes-devtools/perl/libmodule-build-perl_0.4229.bb
@@ -0,0 +1,103 @@
+SUMMARY = "Module::Build - Build and install Perl modules"
+DESCRIPTION = "Many Perl distributions use a Build.PL file instead of a \
+Makefile.PL file to drive distribution configuration, build, test and \
+installation. Traditionally, Build.PL uses Module::Build as the underlying \
+build system. This module provides a simple, lightweight, drop-in replacement. \
+Whereas Module::Build has over 6,700 lines of code; this module has less than \
+120, yet supports the features needed by most distributions."
+
+SECTION = "libs"
+
+HOMEPAGE = "https://metacpan.org/release/Module-Build"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=949;endline=954;md5=624c06db56a2af4d70cf9edc29fcae1b"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-${PV}.tar.gz \
+           file://run-ptest \
+          "
+SRC_URI[md5sum] = "1447d9e02e63f7a1643986789a8f1ba9"
+SRC_URI[sha256sum] = "1fe491a6cda914b01bc8e592faa2b5404e9f35915ca15322f8f2a8d8f9008c18"
+
+S = "${WORKDIR}/Module-Build-${PV}"
+
+inherit cpan_build ptest-perl
+
+# From:
+# https://github.com/rehsack/meta-cpan/blob/master/recipes-devel/module-build-perl/module-build-perl_0.4216.bb
+#
+do_patch_module_build () {
+    cd ${S}
+    sed -i -e 's,my $interpreter = $self->{properties}{perl};,my $interpreter = "${bindir}/perl";,g' lib/Module/Build/Base.pm
+}
+
+do_patch[postfuncs] += "do_patch_module_build"
+
+do_install_ptest() {
+	cp -r ${B}/inc ${D}${PTEST_PATH}
+	cp -r ${B}/blib ${D}${PTEST_PATH}
+	chown -R root:root ${D}${PTEST_PATH}
+}
+
+RDEPENDS_${PN} += " \
+    perl-module-carp \
+    perl-module-cpan \
+    perl-module-config \
+    perl-module-cwd \
+    perl-module-data-dumper \
+    perl-module-encode \
+    perl-module-extutils-cbuilder \
+    perl-module-extutils-command \
+    perl-module-extutils-install \
+    perl-module-extutils-installed \
+    perl-module-extutils-mkbootstrap \
+    perl-module-extutils-packlist \
+    perl-module-extutils-parsexs \
+    perl-module-file-basename \
+    perl-module-file-compare \
+    perl-module-file-copy \
+    perl-module-file-find \
+    perl-module-file-glob \
+    perl-module-file-path \
+    perl-module-file-spec \
+    perl-module-file-spec-functions \
+    perl-module-getopt-long \
+    perl-module-metadata \
+    perl-module-perl-ostype \
+    perl-module-pod-man \
+    perl-module-tap-harness \
+    perl-module-text-abbrev \
+    perl-module-text-parsewords \
+    perl-module-utf8 \
+"
+
+RDEPENDS_${PN}-ptest += " \
+    gcc \
+    make \
+    perl-module-blib \
+    perl-module-file-temp \
+    perl-module-lib \
+    perl-module-perlio \
+    perl-module-perlio-encoding \
+    perl-module-pod-text \
+    perl-module-tap-harness-env \
+    perl-module-tap-parser \
+    perl-module-tap-parser-scheduler \
+    perl-module-test-harness \
+    perl-module-test-more \
+"
+
+RPROVIDES_${PN} += "\
+    libmodule-build-base-perl \
+    libmodule-build-compat-perl \
+    libmodule-build-config-perl \
+    libmodule-build-cookbook-perl \
+    libmodule-build-dumper-perl \
+    libmodule-build-notes-perl \
+    libmodule-build-ppmaker-perl \
+    libmodule-build-platform-default-perl \
+    libmodule-build-platform-unix-perl \
+    libmodule-build-podparser-perl \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/python/python3/crosspythonpath.patch b/poky/meta/recipes-devtools/python/python3/crosspythonpath.patch
new file mode 100644
index 0000000..d789ab5
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3/crosspythonpath.patch
@@ -0,0 +1,25 @@
+configure.ac: add CROSSPYTHONPATH into PYTHONPATH for PYTHON_FOR_BUILD
+
+When building x86->x86 the system will try to execute .so and related items
+from the default PYTHONPATH.  This will fail if the target CPU contains
+instructions that the host CPU does not have, add CROSSPYTHONPATH
+into PYTHONPATH so we can prepend the list to find correct libs.
+
+Upstream-Status: Inappropriate [OE-Core integration specific]
+
+Credits-to: Mark Hatle <mark.hatle@windriver.com>
+Credits-to: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Ricardo Ribalda <ricardo@ribalda.com>
+diff --git a/configure.ac b/configure.ac
+index 4ab19a6..7036a53 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -76,7 +76,7 @@ if test "$cross_compiling" = yes; then
+ 	    AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
+ 	fi
+         AC_MSG_RESULT($interp)
+-	PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH) '$interp
++	PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(CROSSPYTHONPATH):$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH) '$interp
+     fi
+ elif test "$cross_compiling" = maybe; then
+     AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
diff --git a/poky/meta/recipes-devtools/python/python3_3.7.3.bb b/poky/meta/recipes-devtools/python/python3_3.7.3.bb
index 832ef1b..8e77dbe 100644
--- a/poky/meta/recipes-devtools/python/python3_3.7.3.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.7.3.bb
@@ -24,6 +24,7 @@
            file://0001-Lib-sysconfig.py-fix-another-place-where-lib-is-hard.patch \
            file://0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch \
 	   file://0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch \
+	   file://crosspythonpath.patch \
            "
 
 SRC_URI_append_class-native = " \
@@ -65,6 +66,7 @@
 EXTRA_OECONF = " --without-ensurepip --enable-shared"
 EXTRA_OECONF_append_class-native = " --bindir=${bindir}/${PN}"
 
+export CROSSPYTHONPATH="${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/"
 
 EXTRANATIVEPATH += "python3-native"
 
@@ -73,8 +75,16 @@
                 ac_cv_file__dev_ptc=no \
                 ac_cv_working_tzset=yes \
 "
+python() {
+    # PGO currently causes builds to not be reproducible, so disable it for
+    # now. See YOCTO #13407
+    if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) and d.getVar('BUILD_REPRODUCIBLE_BINARIES') != '1':
+        d.setVar('PACKAGECONFIG_PGO', 'pgo')
+    else:
+        d.setVar('PACKAGECONFIG_PGO', '')
+}
 
-PACKAGECONFIG_class-target ??= "readline ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'pgo', '', d)}"
+PACKAGECONFIG_class-target ??= "readline ${PACKAGECONFIG_PGO}"
 PACKAGECONFIG_class-native ??= "readline"
 PACKAGECONFIG_class-nativesdk ??= "readline"
 PACKAGECONFIG[readline] = ",,readline"
diff --git a/poky/meta/recipes-devtools/python/python_2.7.16.bb b/poky/meta/recipes-devtools/python/python_2.7.16.bb
index d70342f..5f387b8 100644
--- a/poky/meta/recipes-devtools/python/python_2.7.16.bb
+++ b/poky/meta/recipes-devtools/python/python_2.7.16.bb
@@ -162,7 +162,7 @@
 PACKAGES_remove = "${PN}"
 
 # manual dependency additions
-RPROVIDES_${PN}-core = "${PN}"
+RPROVIDES_${PN}-modules = "${PN}"
 RRECOMMENDS_${PN}-core_append_class-nativesdk = " nativesdk-python-modules"
 RRECOMMENDS_${PN}-crypt = "openssl"
 
diff --git a/poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb b/poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb
index f119215..7677609 100644
--- a/poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb
+++ b/poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb
@@ -7,6 +7,7 @@
 RDEPENDS_${PN}_class-target += "bash"
 
 EXTRA_OECONF_append_class-target = " --target-list=${@get_qemu_target_list(d)}"
+EXTRA_OECONF_append_class-target_mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}"
 EXTRA_OECONF_append_class-nativesdk = " --target-list=${@get_qemu_target_list(d)}"
 
 do_install_append_class-nativesdk() {
diff --git a/poky/meta/recipes-devtools/vala/vala_0.44.3.bb b/poky/meta/recipes-devtools/vala/vala_0.44.3.bb
deleted file mode 100644
index fe6a5fc..0000000
--- a/poky/meta/recipes-devtools/vala/vala_0.44.3.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI += "file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch \
-           file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \
-           "
-
-SRC_URI[md5sum] = "25f97c1b46ae0b60b5cc49cbc044eca2"
-SRC_URI[sha256sum] = "8553b422484af88be1685d8b47f7b0df36ae4477c3e77e89ab22276ffed1eae9"
diff --git a/poky/meta/recipes-devtools/vala/vala_0.44.5.bb b/poky/meta/recipes-devtools/vala/vala_0.44.5.bb
new file mode 100644
index 0000000..518c9eb
--- /dev/null
+++ b/poky/meta/recipes-devtools/vala/vala_0.44.5.bb
@@ -0,0 +1,8 @@
+require ${BPN}.inc
+
+SRC_URI += "file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch \
+           file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \
+           "
+
+SRC_URI[md5sum] = "1e8b8595168446c529b11236cf75e328"
+SRC_URI[sha256sum] = "bb8f8185b805411511786733c4b769c3ee6af8bc879609bffb6c46b8999bc27f"
diff --git a/poky/meta/recipes-extended/less/less_550.bb b/poky/meta/recipes-extended/less/less_551.bb
similarity index 89%
rename from poky/meta/recipes-extended/less/less_550.bb
rename to poky/meta/recipes-extended/less/less_551.bb
index bb1618f..a818c68 100644
--- a/poky/meta/recipes-extended/less/less_550.bb
+++ b/poky/meta/recipes-extended/less/less_551.bb
@@ -28,8 +28,8 @@
 SRC_URI = "http://www.greenwoodsoftware.com/${BPN}/${BPN}-${PV}.tar.gz \
 	  "
 
-SRC_URI[md5sum] = "8caff88e34afff512b663d7c690bd2cf"
-SRC_URI[sha256sum] = "6a53639f08d7ed05b6e104b82c32193f79ac01a3eddb20e114e1c261948bd57b"
+SRC_URI[md5sum] = "4ad4408b06d7a6626a055cb453f36819"
+SRC_URI[sha256sum] = "ff165275859381a63f19135a8f1f6c5a194d53ec3187f94121ecd8ef0795fe3d"
 
 UPSTREAM_CHECK_URI = "http://www.greenwoodsoftware.com/less/download.html"
 
diff --git a/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.53.bb b/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb
similarity index 95%
rename from poky/meta/recipes-extended/lighttpd/lighttpd_1.4.53.bb
rename to poky/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb
index a0b350f..ba1a2c5 100644
--- a/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.53.bb
+++ b/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb
@@ -19,8 +19,8 @@
         file://0001-Use-pkg-config-for-pcre-dependency-instead-of-config.patch \
         "
 
-SRC_URI[md5sum] = "f93436d8d400b2b0e26ee4bcc60b9ac7"
-SRC_URI[sha256sum] = "3bdfce1cf3e9650a556a8c26fb15342c5717c63f530c54693db632b0371dcb78"
+SRC_URI[md5sum] = "7abc776243c811e9872f73ab38b7f8b5"
+SRC_URI[sha256sum] = "cf14cce2254a96d8fcb6d3181e1a3c29a8f832531c3e86ff6f2524ecda9a8721"
 
 PACKAGECONFIG ??= "openssl pcre zlib \
     ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
diff --git a/poky/meta/recipes-extended/newt/libnewt-python_0.52.20.bb b/poky/meta/recipes-extended/newt/libnewt-python_0.52.20.bb
deleted file mode 100644
index 433d184..0000000
--- a/poky/meta/recipes-extended/newt/libnewt-python_0.52.20.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-require recipes-extended/newt/libnewt_${PV}.bb
-
-SUMMARY .= " - python"
-DEPENDS = "libnewt python3"
-RDEPENDS_${PN} += "python3-core"
-
-inherit python3native python3-dir
-
-EXTRA_OECONF += "--with-python"
-EXTRA_OEMAKE += "PYTHONVERS=${PYTHON_DIR}"
-
-
-do_compile () {
-	VERSION="$(sed -n 's/^VERSION = //p' Makefile)"
-	oe_runmake _snack.so
-}
-
-do_install () {
-	install -d ${D}${PYTHON_SITEPACKAGES_DIR}
-	install -m 0755 ${PYTHON_DIR}/_snack.so ${D}${PYTHON_SITEPACKAGES_DIR}/
-	install -m 0644 snack.py ${D}${PYTHON_SITEPACKAGES_DIR}/
-}
-
-PACKAGES_remove = "whiptail"
-
-FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/*"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/newt/libnewt_0.52.20.bb b/poky/meta/recipes-extended/newt/libnewt_0.52.20.bb
index 264ef3b..dc07a18 100644
--- a/poky/meta/recipes-extended/newt/libnewt_0.52.20.bb
+++ b/poky/meta/recipes-extended/newt/libnewt_0.52.20.bb
@@ -15,7 +15,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
 
 # slang needs to be >= 2.2
-DEPENDS = "slang popt"
+DEPENDS = "slang popt python3"
 
 SRC_URI = "https://releases.pagure.org/newt/newt-${PV}.tar.gz \
            file://fix_SHAREDDIR.patch \
@@ -30,15 +30,20 @@
 
 S = "${WORKDIR}/newt-${PV}"
 
-EXTRA_OECONF = "--without-tcl --without-python"
+inherit autotools-brokensep python3native python3-dir
 
-inherit autotools-brokensep
+EXTRA_OECONF = "--without-tcl --with-python"
+
+EXTRA_OEMAKE += "PYTHONVERS=${PYTHON_DIR}"
 
 CLEANBROKEN = "1"
 
 export CPPFLAGS
 
-PACKAGES_prepend = "whiptail "
+PACKAGES_prepend = "whiptail ${PN}-python "
+
+RDEPENDS_${PN}-python += "python3-core"
+FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*"
 
 do_configure_prepend() {
     sh autogen.sh
diff --git a/poky/meta/recipes-extended/parted/files/dm_check.patch b/poky/meta/recipes-extended/parted/files/dm_check.patch
new file mode 100644
index 0000000..5f3c4dd
--- /dev/null
+++ b/poky/meta/recipes-extended/parted/files/dm_check.patch
@@ -0,0 +1,22 @@
+parted: change check for device-manager
+
+Other ptests use this method.
+
+Upstream-Status: Submitted [bug-parted@gnu.org]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+
+--- a/tests/t6001-psep.sh
++++ b/tests/t6001-psep.sh
+@@ -19,7 +19,9 @@
+ . "${srcdir=.}/init.sh"; path_prepend_ ../parted
+ 
+ require_root_
+-(dmsetup --help) > /dev/null 2>&1 || skip_test_ "No dmsetup installed"
++
++test "x$ENABLE_DEVICE_MAPPER" = xyes \
++  || skip_ "no device-mapper support"
+ 
+ # Device maps names - should be random to not conflict with existing ones on
+ # the system
diff --git a/poky/meta/recipes-extended/parted/parted_3.2.bb b/poky/meta/recipes-extended/parted/parted_3.2.bb
index 13d7d66..21a8153 100644
--- a/poky/meta/recipes-extended/parted/parted_3.2.bb
+++ b/poky/meta/recipes-extended/parted/parted_3.2.bb
@@ -18,6 +18,7 @@
            file://run-ptest \
            file://Makefile \
            file://0001-libparted-Use-read-only-when-probing-devices-on-linu.patch \
+           file://dm_check.patch \
 "
 
 SRC_URI[md5sum] = "0247b6a7b314f8edeb618159fa95f9cb"
diff --git a/poky/meta/recipes-extended/perl/libxml-sax-perl_1.00.bb b/poky/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb
similarity index 79%
rename from poky/meta/recipes-extended/perl/libxml-sax-perl_1.00.bb
rename to poky/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb
index 80a1c8e..02ee34e 100644
--- a/poky/meta/recipes-extended/perl/libxml-sax-perl_1.00.bb
+++ b/poky/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb
@@ -17,8 +17,8 @@
 
 SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GR/GRANTM/XML-SAX-${PV}.tar.gz"
 
-SRC_URI[md5sum] = "861a454f7bf269990ed2c1c125f4db48"
-SRC_URI[sha256sum] = "45ea6564ef8692155d57b2de0862b6442d3c7e29f4a9bc9ede5d7ecdc74c2ae3"
+SRC_URI[md5sum] = "b62e3754523695c7f5bbcafa3676a38d"
+SRC_URI[sha256sum] = "4506c387043aa6a77b455f00f57409f3720aa7e553495ab2535263b4ed1ea12a"
 
 S = "${WORKDIR}/XML-SAX-${PV}"
 
@@ -30,6 +30,13 @@
 }
 
 RDEPENDS_${PN} += "perl-module-encode perl-module-perlio"
-RDEPENDS_${PN}-ptest += "perl-module-test perl-module-base perl-module-fatal perl-module-encode-unicode perl-module-encode-byte"
+
+RDEPENDS_${PN}-ptest += " \
+    perl-module-base  \
+    perl-module-encode-byte \
+    perl-module-encode-unicode \
+    perl-module-fatal \
+    perl-module-test \
+"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/shadow/files/0001-configure.ac-fix-configure-error-with-dash.patch b/poky/meta/recipes-extended/shadow/files/0001-configure.ac-fix-configure-error-with-dash.patch
new file mode 100644
index 0000000..a74cbb0
--- /dev/null
+++ b/poky/meta/recipes-extended/shadow/files/0001-configure.ac-fix-configure-error-with-dash.patch
@@ -0,0 +1,36 @@
+From 3c52a84ff8775590e7e9da9c0d4408c23494305e Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Mon, 17 Jun 2019 15:36:34 +0800
+Subject: [PATCH] configure.ac: fix configure error with dash
+
+A configure error occurs when /bin/sh -> dash:
+  checking for is_selinux_enabled in -lselinux... yes
+  checking for semanage_connect in -lsemanage... yes
+  configure: 16322: test: yesyes: unexpected operator
+
+Use "=" instead of "==" since dash doesn't support this operator.
+
+Upstream-Status: Backport
+[https://github.com/shadow-maint/shadow/commit/3c52a84ff8775590e7e9da9c0d4408c23494305e]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 6762556..1907afb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -500,7 +500,7 @@ if test "$with_selinux" != "no"; then
+ 			AC_MSG_ERROR([libsemanage not found])
+ 		fi
+ 
+-		if test "$selinux_lib$semanage_lib" == "yesyes" ; then
++		if test "$selinux_lib$semanage_lib" = "yesyes" ; then
+ 			AC_DEFINE(WITH_SELINUX, 1,
+ 			          [Build shadow with SELinux support])
+ 			LIBSELINUX="-lselinux"
+-- 
+2.7.4
+
diff --git a/poky/meta/recipes-extended/shadow/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc
index 831751d..7f82d20 100644
--- a/poky/meta/recipes-extended/shadow/shadow.inc
+++ b/poky/meta/recipes-extended/shadow/shadow.inc
@@ -13,6 +13,7 @@
            file://shadow-4.1.3-dots-in-usernames.patch \
            file://0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch  \
            file://0002-gettime-Use-secure_getenv-over-getenv.patch \
+           file://0001-configure.ac-fix-configure-error-with-dash.patch \
            ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \
            "
 
diff --git a/poky/meta/recipes-extended/sysstat/sysstat.inc b/poky/meta/recipes-extended/sysstat/sysstat.inc
index 6b21c6b..4e29721 100644
--- a/poky/meta/recipes-extended/sysstat/sysstat.inc
+++ b/poky/meta/recipes-extended/sysstat/sysstat.inc
@@ -52,12 +52,11 @@
 }
 
 pkg_postinst_${PN} () {
-        if [ -n "$D" ]; then
-                exit 0
-        fi
-        if [ -e /etc/init.d/populate-volatile.sh ]; then
-                /etc/init.d/populate-volatile.sh update
-        fi
+	if [  ! -n "$D" ]; then
+		if [ -e /etc/init.d/populate-volatile.sh ]; then
+			/etc/init.d/populate-volatile.sh update
+		fi
+	fi
 }
 
 FILES_${PN} += "${libdir}/sa ${systemd_system_unitdir}"
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_3.32.2.bb b/poky/meta/recipes-gnome/epiphany/epiphany_3.32.3.bb
similarity index 77%
rename from poky/meta/recipes-gnome/epiphany/epiphany_3.32.2.bb
rename to poky/meta/recipes-gnome/epiphany/epiphany_3.32.3.bb
index ff0e34f..de1b6e2 100644
--- a/poky/meta/recipes-gnome/epiphany/epiphany_3.32.2.bb
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_3.32.3.bb
@@ -12,10 +12,9 @@
 
 SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
            file://0002-help-meson.build-disable-the-use-of-yelp.patch \
-           file://0001-web-app-utils-Clean-up-ephy_web_application_create.patch \
            "
-SRC_URI[archive.md5sum] = "2a6672b22a0fdb869e5f0a415ac2da34"
-SRC_URI[archive.sha256sum] = "8ae70d9feaba3754c63ab249deeef9b7a31161a372655b4214f148ea2f440cfa"
+SRC_URI[archive.md5sum] = "c4976507bf3de69f27a050ad09531f5a"
+SRC_URI[archive.sha256sum] = "3ccb6859a43b839b714aa425cb185056f1e8604adbaab6a1bc179d1ba641a33f"
 
 FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo"
 RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas"
diff --git a/poky/meta/recipes-gnome/epiphany/files/0001-web-app-utils-Clean-up-ephy_web_application_create.patch b/poky/meta/recipes-gnome/epiphany/files/0001-web-app-utils-Clean-up-ephy_web_application_create.patch
deleted file mode 100644
index ea644fb..0000000
--- a/poky/meta/recipes-gnome/epiphany/files/0001-web-app-utils-Clean-up-ephy_web_application_create.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 49f435217873e679b142f64d3e7def919fb642bb Mon Sep 17 00:00:00 2001
-From: Michael Catanzaro <mcatanzaro@igalia.com>
-Date: Wed, 8 May 2019 15:58:32 +0000
-Subject: [PATCH] web-app-utils: Clean up ephy_web_application_create()
-
-Fixes #764
-
-(cherry picked from commit 4e998d45e4cc549a7ca561a33895b0fbcf7ba6bb)
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/epiphany/commit/a6a022c9c498ad5dcf7f2220644a7520df74ca31]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/ephy-web-app-utils.c | 24 ++++++++++--------------
- 1 file changed, 10 insertions(+), 14 deletions(-)
-
-diff --git a/lib/ephy-web-app-utils.c b/lib/ephy-web-app-utils.c
-index 97f3f24..fc68a96 100644
---- a/lib/ephy-web-app-utils.c
-+++ b/lib/ephy-web-app-utils.c
-@@ -374,46 +374,42 @@ ephy_web_application_create (const char *id,
-                              const char *name,
-                              GdkPixbuf  *icon)
- {
--  char *profile_dir;
--  char *desktop_file_path = NULL;
-+  g_autofree char *app_file = NULL;
-+  g_autofree char *profile_dir = NULL;
-+  g_autofree char *desktop_file_path = NULL;
- 
-   /* If there's already a WebApp profile for the contents of this
-    * view, do nothing. */
-   profile_dir = ephy_web_application_get_profile_directory (id);
-   if (g_file_test (profile_dir, G_FILE_TEST_IS_DIR)) {
-     g_warning ("Profile directory %s already exists", profile_dir);
--    goto out;
-+    return NULL;
-   }
- 
-   /* Create the profile directory, populate it. */
-   if (g_mkdir_with_parents (profile_dir, 488) == -1) {
-     g_warning ("Failed to create directory %s", profile_dir);
--    goto out;
-+    return NULL;
-   }
- 
-   /* Skip migration for new web apps. */
-   ephy_profile_utils_set_migration_version_for_profile_dir (EPHY_PROFILE_MIGRATION_VERSION, profile_dir);
- 
-   /* Create an .app file. */
--  g_autofree char *app_file = g_build_filename (profile_dir, ".app", NULL);
-+  app_file = g_build_filename (profile_dir, ".app", NULL);
-   int fd = g_open (app_file, O_WRONLY|O_CREAT|O_TRUNC, 0644);
-   if (fd < 0) {
--    LOG ("Failed to create .app file: %s", g_strerror (errno));
--    goto out;
--  } else {
--    close (fd);
-+    g_warning ("Failed to create .app file: %s", g_strerror (errno));
-+    return NULL;
-   }
-+  close (fd);
- 
-   /* Create the deskop file. */
-   desktop_file_path = create_desktop_file (id, name, address, profile_dir, icon);
-   if (desktop_file_path)
-     ephy_web_application_initialize_settings (profile_dir);
- 
-- out:
--  if (profile_dir)
--    g_free (profile_dir);
--
--  return desktop_file_path;
-+  return g_steal_pointer (&desktop_file_path);
- }
- 
- char *
--- 
-2.21.0
-
diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.1.bb b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.2.bb
similarity index 98%
rename from poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.1.bb
rename to poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.2.bb
index 40beab0..f46053f 100644
--- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.1.bb
+++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.2.bb
@@ -21,8 +21,8 @@
            file://0001-meson.build-disable-tests-when-cross-compiling.patch \
            "
 
-SRC_URI[md5sum] = "46fc8a98f6563e64947ac3d574632525"
-SRC_URI[sha256sum] = "d844d1499ecd36f3ec8a3573616186d36626ec0c9a7981939e99aa02e9c824b3"
+SRC_URI[md5sum] = "57c1c5dcf3d0a9aa73d06c2d5e6960d7"
+SRC_URI[sha256sum] = "ffdfe2368fb2e34a547898b01aac0520d52d8627fdeb1c306559bcb503ab5e9c"
 
 SRC_URI_append_class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch"
 
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb
index bac91d3..a0a0b15 100644
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb
@@ -21,7 +21,9 @@
 SRC_URI[md5sum] = "f2ecfba915c54f7200f504d8b48a5dfe"
 SRC_URI[sha256sum] = "255186dc676ecd0c1dbf10ec8a2cc5d6869b5079d8a38194c2aecdff54b324b1"
 
-inherit autotools lib_package binconfig pkgconfig
+inherit autotools lib_package binconfig-disabled pkgconfig
+
+BINCONFIG = "${bindir}/sdl2-config"
 
 CVE_PRODUCT = "simple_directmedia_layer sdl"
 
diff --git a/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.26.bb b/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb
similarity index 87%
rename from poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.26.bb
rename to poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb
index 5c23288..a6b2cc0 100644
--- a/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.26.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb
@@ -14,8 +14,8 @@
 
 SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.bz2"
 
-SRC_URI[md5sum] = "e2e980629bfeb9f40a7d44488b18ba12"
-SRC_URI[sha256sum] = "393718c7460cd06c4e8cb819d943ca54812ea476f32714c4d8975c77031a038e"
+SRC_URI[md5sum] = "316753e35d3906d042c74230612eab9f"
+SRC_URI[sha256sum] = "690daec8fea63526c07620c90e6f3f10aae34e94b6db6e30906173480721901f"
 
 SECTION = "x11/libs"
 DEPENDS = "intltool-native util-macros libxslt-native"
diff --git a/poky/meta/recipes-kernel/linux/linux-dummy.bb b/poky/meta/recipes-kernel/linux/linux-dummy.bb
index e1c7f76..62cf6f5 100644
--- a/poky/meta/recipes-kernel/linux/linux-dummy.bb
+++ b/poky/meta/recipes-kernel/linux/linux-dummy.bb
@@ -39,6 +39,10 @@
 	:
 }
 
+do_compile_kernelmodules() {
+    :
+}
+
 do_shared_workdir () {
 	:
 }
@@ -58,3 +62,4 @@
 addtask bundle_initramfs after do_install before do_deploy
 addtask deploy after do_install
 addtask shared_workdir after do_compile before do_install
+addtask compile_kernelmodules
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
index 3a055c1..8c83620 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -41,7 +41,7 @@
 
 COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64)"
 
-KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
+KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
 
 # Functionality flags
 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb
index 0836dc7..a4facfe 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb
@@ -33,7 +33,7 @@
 
 COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)"
 
-KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
+KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
 
 # Functionality flags
 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb
index b5e415f..8bd9d74 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb
@@ -33,7 +33,7 @@
 
 COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)"
 
-KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
+KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
 
 # Functionality flags
 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb
index 4ca11d7..e668854 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb
@@ -29,4 +29,4 @@
 # Functionality flags
 KERNEL_FEATURES = ""
 
-KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
+KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb
index a9c463c..226a90c 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb
@@ -29,4 +29,4 @@
 # Functionality flags
 KERNEL_FEATURES = ""
 
-KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
+KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb
index cda4ecf..014d689 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb
@@ -36,7 +36,7 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
+KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
 
 COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb
index 8aec315..7456141 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb
@@ -7,6 +7,7 @@
 KBRANCH_qemuarm64 ?= "v5.0/standard/qemuarm64"
 KBRANCH_qemumips ?= "v5.0/standard/mti-malta32"
 KBRANCH_qemuppc  ?= "v5.0/standard/qemuppc"
+KBRANCH_qemuriscv64  ?= "v5.0/standard/base"
 KBRANCH_qemux86  ?= "v5.0/standard/base"
 KBRANCH_qemux86-64 ?= "v5.0/standard/base"
 KBRANCH_qemumips64 ?= "v5.0/standard/mti-malta64"
@@ -15,6 +16,7 @@
 SRCREV_machine_qemuarm64 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458"
 SRCREV_machine_qemumips ?= "7de9b8f0db98e51a666477c8e2b64f1964b45410"
 SRCREV_machine_qemuppc ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458"
+SRCREV_machine_qemuriscv64 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458"
 SRCREV_machine_qemux86 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458"
 SRCREV_machine_qemux86-64 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458"
 SRCREV_machine_qemumips64 ?= "5a8b27bcc0b16077ab8edfcd3fb25c80dc2c652e"
@@ -38,10 +40,9 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
 KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
 
-COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64"
+COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64"
 
 # Functionality flags
 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest b/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest
index dbb1882..eaa2e7b 100755
--- a/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest
@@ -3,4 +3,4 @@
 # test plan to raise ERRORs; this is just noise.
 makeargs="LOG_DRIVER_FLAGS=--ignore-exit top_srcdir=$PWD top_builddir=$PWD"
 make -k -t all >/dev/null 2>&1
-exec make -k -s $makeargs check 2>/dev/null
+exec make -k -s $makeargs check 2>/dev/null | sed -e 's#/tmp/tmp\...........#/tmp/tmp.XXXXXXXXXX#g'
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.10.6.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.10.6.bb
index 9583ee3..58c7864 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-tools_2.10.6.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools_2.10.6.bb
@@ -11,7 +11,7 @@
 
 DEPENDS = "liburcu popt libxml2 util-linux"
 RDEPENDS_${PN} = "libgcc"
-RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod lttng-modules"
+RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod lttng-modules sed"
 RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
 RDEPENDS_${PN}-ptest_append_libc-musl = " musl-utils"
 # babelstats.pl wants getopt-long
diff --git a/poky/meta/recipes-kernel/lttng/lttng-ust/0001-compat-work-around-broken-_SC_NPROCESSORS_CONF-on-MU.patch b/poky/meta/recipes-kernel/lttng/lttng-ust/0001-compat-work-around-broken-_SC_NPROCESSORS_CONF-on-MU.patch
deleted file mode 100644
index 5c4bd36..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-ust/0001-compat-work-around-broken-_SC_NPROCESSORS_CONF-on-MU.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 5de7c318804a7b1edce8562d4891b4c74aac0677 Mon Sep 17 00:00:00 2001
-From: Michael Jeanson <mjeanson@efficios.com>
-Date: Wed, 20 Mar 2019 11:07:35 -0400
-Subject: [PATCH] compat: work around broken _SC_NPROCESSORS_CONF on MUSL libc
-
-On MUSL libc the _SC_NPROCESSORS_CONF sysconf will report the number of
-CPUs allocated to the task based on the affinity mask instead of the
-total number of CPUs configured on the system.
-
-Upstream-Status: Accepted [1] [5de7c318804a7b1edce8562d4891b4c74aac0677]
-[1] https://lists.lttng.org/pipermail/lttng-dev/2019-March/028616.html
-
-Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
-Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
----
- libringbuffer/smp.c | 66 +++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 66 insertions(+)
-
-diff --git a/libringbuffer/smp.c b/libringbuffer/smp.c
-index 9e7114be..656a75da 100644
---- a/libringbuffer/smp.c
-+++ b/libringbuffer/smp.c
-@@ -2,6 +2,7 @@
-  * libringbuffer/smp.c
-  *
-  * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
-+ * Copyright (C) 2019 Michael Jeanson <mjeanson@efficios.com>
-  *
-  * This library is free software; you can redistribute it and/or
-  * modify it under the terms of the GNU Lesser General Public
-@@ -26,6 +27,7 @@
- 
- int __num_possible_cpus;
- 
-+#if (defined(__GLIBC__) || defined( __UCLIBC__))
- void _get_num_possible_cpus(void)
- {
- 	int result;
-@@ -43,3 +45,67 @@ void _get_num_possible_cpus(void)
- 		return;
- 	__num_possible_cpus = result;
- }
-+
-+#else
-+
-+/*
-+ * The MUSL libc implementation of the _SC_NPROCESSORS_CONF sysconf does not
-+ * return the number of configured CPUs in the system but relies on the cpu
-+ * affinity mask of the current task.
-+ *
-+ * So instead we use a strategy similar to GLIBC's, counting the cpu
-+ * directories in "/sys/devices/system/cpu" and fallback on the value from
-+ * sysconf if it fails.
-+ */
-+
-+#include <dirent.h>
-+#include <limits.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+
-+#define __max(a,b) ((a)>(b)?(a):(b))
-+
-+void _get_num_possible_cpus(void)
-+{
-+	int result, count = 0;
-+	DIR *cpudir;
-+	struct dirent *entry;
-+
-+	cpudir = opendir("/sys/devices/system/cpu");
-+	if (cpudir == NULL)
-+		goto end;
-+
-+	/*
-+	 * Count the number of directories named "cpu" followed by and
-+	 * integer. This is the same strategy as glibc uses.
-+	 */
-+	while ((entry = readdir(cpudir))) {
-+		if (entry->d_type == DT_DIR &&
-+			strncmp(entry->d_name, "cpu", 3) == 0) {
-+
-+			char *endptr;
-+			unsigned long cpu_num;
-+
-+			cpu_num = strtoul(entry->d_name + 3, &endptr, 10);
-+			if ((cpu_num < ULONG_MAX) && (endptr != entry->d_name + 3)
-+					&& (*endptr == '\0')) {
-+				count++;
-+			}
-+		}
-+	}
-+
-+end:
-+	/*
-+	 * Get the sysconf value as a fallback. Keep the highest number.
-+	 */
-+	result = __max(sysconf(_SC_NPROCESSORS_CONF), count);
-+
-+	/*
-+	 * If both methods failed, don't store the value.
-+	 */
-+	if (result < 1)
-+		return;
-+	__num_possible_cpus = result;
-+}
-+#endif
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.3.bb b/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.4.bb
similarity index 89%
rename from poky/meta/recipes-kernel/lttng/lttng-ust_2.10.3.bb
rename to poky/meta/recipes-kernel/lttng/lttng-ust_2.10.4.bb
index d546104..a8eebb2 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.3.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.4.bb
@@ -27,11 +27,10 @@
 
 SRC_URI = "https://lttng.org/files/lttng-ust/lttng-ust-${PV}.tar.bz2 \
            file://lttng-ust-doc-examples-disable.patch \
-	   file://0001-compat-work-around-broken-_SC_NPROCESSORS_CONF-on-MU.patch \
           "
 
-SRC_URI[md5sum] = "ffcfa8c1ba9a52f002d240e936e9afa2"
-SRC_URI[sha256sum] = "9e8420f90d5f963f7aa32bc6d44adc1e491136f687c69ffb7a3075d33b40852b"
+SRC_URI[md5sum] = "19916ff0dec23c90f985586a8cbd1fd2"
+SRC_URI[sha256sum] = "75d5b4bb205c444a343e1297e14cd3a2503fc645a26710531cbd319c72c1a967"
 
 CVE_PRODUCT = "ust"
 
diff --git a/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb b/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
index 97c58c5..460e05a 100644
--- a/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
+++ b/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
@@ -12,7 +12,7 @@
 do_configure[depends] += "virtual/kernel:do_shared_workdir openssl-native:do_populate_sysroot"
 do_compile[depends] += "virtual/kernel:do_compile_kernelmodules"
 
-DEPENDS += "bc-native"
+DEPENDS += "bc-native bison-native"
 
 EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""
 
diff --git a/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2019.06.03.bb b/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2019.06.03.bb
new file mode 100644
index 0000000..9076d94
--- /dev/null
+++ b/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2019.06.03.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Wireless Central Regulatory Domain Database"
+HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA"
+SECTION = "net"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c"
+
+SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz"
+SRC_URI[md5sum] = "4b5ba3f089db7fdb7b9daae6a7c1f2cb"
+SRC_URI[sha256sum] = "cd917ed86b63ce8d93947979f1f18948f03a4ac0ad89ec25227b36ac00dc54bf"
+
+inherit bin_package allarch
+
+do_install() {
+    install -d -m0755 ${D}${nonarch_libdir}/crda
+    install -d -m0755 ${D}${sysconfdir}/wireless-regdb/pubkeys
+    install -m 0644 regulatory.bin ${D}${nonarch_libdir}/crda/regulatory.bin
+    install -m 0644 sforshee.key.pub.pem ${D}${sysconfdir}/wireless-regdb/pubkeys/sforshee.key.pub.pem
+
+    install -m 0644 -D regulatory.db ${D}${nonarch_base_libdir}/firmware/regulatory.db
+    install -m 0644 regulatory.db.p7s ${D}${nonarch_base_libdir}/firmware/regulatory.db.p7s
+}
+
+# Install static regulatory DB in /lib/firmware for kernel to load.
+# This requires Linux kernel >= v4.15.
+# For kernel <= v4.14, inherit the kernel_wireless_regdb.bbclass
+# (in meta-networking) in kernel's recipe.
+PACKAGES = "${PN}-static ${PN}"
+RCONFLICTS_${PN} = "${PN}-static"
+
+FILES_${PN}-static = " \
+    ${nonarch_base_libdir}/firmware/regulatory.db \
+    ${nonarch_base_libdir}/firmware/regulatory.db.p7s \
+"
+
+# Native users might want to use the source of regulatory DB.
+# This is for example used by Linux kernel <= v4.14 and
+# kernel_wireless_regdb.bbclass in meta-networking.
+do_install_append_class-native() {
+    install -m 0644 -D db.txt ${D}${libdir}/crda/db.txt
+}
+
+RSUGGESTS_${PN} = "crda"
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-support/curl/curl_7.64.1.bb b/poky/meta/recipes-support/curl/curl_7.65.1.bb
similarity index 95%
rename from poky/meta/recipes-support/curl/curl_7.64.1.bb
rename to poky/meta/recipes-support/curl/curl_7.65.1.bb
index 47c28be..e7bfe6c 100644
--- a/poky/meta/recipes-support/curl/curl_7.64.1.bb
+++ b/poky/meta/recipes-support/curl/curl_7.65.1.bb
@@ -9,8 +9,8 @@
            file://0001-replace-krb5-config-with-pkg-config.patch \
 "
 
-SRC_URI[md5sum] = "790c101927845208a9d7e8c429ddd1b2"
-SRC_URI[sha256sum] = "4cc7c738b35250d0680f29e93e0820c4cb40035f43514ea3ec8d60322d41a45d"
+SRC_URI[md5sum] = "03ca3fa53ac4d791be66e30ba75b56ea"
+SRC_URI[sha256sum] = "cbd36df60c49e461011b4f3064cff1184bdc9969a55e9608bf5cadec4686e3f7"
 
 CVE_PRODUCT = "curl libcurl"
 inherit autotools pkgconfig binconfig multilib_header
diff --git a/poky/meta/recipes-support/gnupg/gnupg_2.2.15.bb b/poky/meta/recipes-support/gnupg/gnupg_2.2.16.bb
similarity index 92%
rename from poky/meta/recipes-support/gnupg/gnupg_2.2.15.bb
rename to poky/meta/recipes-support/gnupg/gnupg_2.2.16.bb
index 06a2573..cb7c6c5 100644
--- a/poky/meta/recipes-support/gnupg/gnupg_2.2.15.bb
+++ b/poky/meta/recipes-support/gnupg/gnupg_2.2.16.bb
@@ -20,8 +20,8 @@
                                 file://relocate.patch"
 
 
-SRC_URI[md5sum] = "3ab87e377aa0af2f463649515bf66508"
-SRC_URI[sha256sum] = "cb8ce298d7b36558ffc48aec961b14c830ff1783eef7a623411188b5e0f5d454"
+SRC_URI[md5sum] = "d90e186df1c06845880ea58a318f070b"
+SRC_URI[sha256sum] = "6cbe8d454bf5dc204621eed3016d721b66298fa95363395bb8eeceb1d2fd14cb"
 
 EXTRA_OECONF = "--disable-ldap \
 		--disable-ccid-driver \
diff --git a/poky/meta/recipes-support/gnutls/gnutls_3.6.7.bb b/poky/meta/recipes-support/gnutls/gnutls_3.6.8.bb
similarity index 93%
rename from poky/meta/recipes-support/gnutls/gnutls_3.6.7.bb
rename to poky/meta/recipes-support/gnutls/gnutls_3.6.8.bb
index b27526a..6c6c520 100644
--- a/poky/meta/recipes-support/gnutls/gnutls_3.6.7.bb
+++ b/poky/meta/recipes-support/gnutls/gnutls_3.6.8.bb
@@ -21,8 +21,8 @@
            file://arm_eabi.patch \
 "
 
-SRC_URI[md5sum] = "c4ac669c500df939d4fbfea722367929"
-SRC_URI[sha256sum] = "5b3409ad5aaf239808730d1ee12fdcd148c0be00262c7edf157af655a8a188e2"
+SRC_URI[md5sum] = "9dcf0aa45d1a42e1b3ca5d39ec7c61a8"
+SRC_URI[sha256sum] = "aa81944e5635de981171772857e72be231a7e0f559ae0292d2737de475383e83"
 
 inherit autotools texinfo pkgconfig gettext lib_package gtk-doc
 
diff --git a/poky/meta/recipes-support/libevdev/libevdev_1.6.0.bb b/poky/meta/recipes-support/libevdev/libevdev_1.7.0.bb
similarity index 74%
rename from poky/meta/recipes-support/libevdev/libevdev_1.6.0.bb
rename to poky/meta/recipes-support/libevdev/libevdev_1.7.0.bb
index 12cf519..abd6f38 100644
--- a/poky/meta/recipes-support/libevdev/libevdev_1.6.0.bb
+++ b/poky/meta/recipes-support/libevdev/libevdev_1.7.0.bb
@@ -8,7 +8,7 @@
 
 SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz"
 
-SRC_URI[md5sum] = "154b24f01425c4c82fdc3e11f2c13af6"
-SRC_URI[sha256sum] = "f5005c865987d980cc1279b9ec6131b06a89fd9892f649f2a68262b8786ef814"
+SRC_URI[md5sum] = "fabe87d8d7d7f7cdb4a26e5dc99fc517"
+SRC_URI[sha256sum] = "11dbe1f2b1d03a51f3e9a196757a75c3a999042ce34cf1fdc00a2363e5a2e369"
 
 inherit autotools pkgconfig
diff --git a/poky/meta/recipes-support/libevent/libevent/0001-test-fix-32bit-linux-regress.patch b/poky/meta/recipes-support/libevent/libevent/0001-test-fix-32bit-linux-regress.patch
deleted file mode 100644
index 36d0820..0000000
--- a/poky/meta/recipes-support/libevent/libevent/0001-test-fix-32bit-linux-regress.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 69a3813c513c84e02212250c3d5b8a02ecefa698 Mon Sep 17 00:00:00 2001
-From: Mingli Yu <Mingli.Yu@windriver.com>
-Date: Mon, 15 Jan 2018 08:00:33 +0000
-Subject: [PATCH] test: fix 32bit linux regress
-
-This patch comes from https://github.com/libevent/libevent.git,
-the commit is 63c4bf78d6af3c6ff46d2e8e4b53dd9f577a9ca9
-
-Upstream-Status: Backport
-
-Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
----
- configure.ac        | 1 +
- test/regress_util.c | 2 ++
- 2 files changed, 3 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 7528d37..e64cb1f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -663,6 +663,7 @@ AC_CHECK_SIZEOF(short)
- AC_CHECK_SIZEOF(size_t)
- AC_CHECK_SIZEOF(void *)
- AC_CHECK_SIZEOF(off_t)
-+AC_CHECK_SIZEOF(time_t)
- 
- AC_CHECK_TYPES([struct in6_addr, struct sockaddr_in6, sa_family_t, struct addrinfo, struct sockaddr_storage], , ,
- [#define _GNU_SOURCE
-diff --git a/test/regress_util.c b/test/regress_util.c
-index ef6a148..0c7eafb 100644
---- a/test/regress_util.c
-+++ b/test/regress_util.c
-@@ -1412,10 +1412,12 @@ static struct date_rfc1123_case {
- 	{  1289433600, "Thu, 11 Nov 2010 00:00:00 GMT"},
- 	{  1323648000, "Mon, 12 Dec 2011 00:00:00 GMT"},
- #ifndef _WIN32
-+#if EVENT__SIZEOF_TIME_T > 4
- 	/** In win32 case we have max   "23:59:59 January 18, 2038, UTC" for time32 */
- 	{  4294967296, "Sun, 07 Feb 2106 06:28:16 GMT"} /* 2^32 */,
- 	/** In win32 case we have max "23:59:59, December 31, 3000, UTC" for time64 */
- 	{253402300799, "Fri, 31 Dec 9999 23:59:59 GMT"} /* long long future no one can imagine */,
-+#endif /* time_t != 32bit */
- 	{  1456704000, "Mon, 29 Feb 2016 00:00:00 GMT"} /* leap year */,
- #endif
- 	{  1435708800, "Wed, 01 Jul 2015 00:00:00 GMT"} /* leap second */,
--- 
-2.13.3
-
diff --git a/poky/meta/recipes-support/libevent/libevent_2.1.8.bb b/poky/meta/recipes-support/libevent/libevent_2.1.10.bb
similarity index 84%
rename from poky/meta/recipes-support/libevent/libevent_2.1.8.bb
rename to poky/meta/recipes-support/libevent/libevent_2.1.10.bb
index 0f91e05..81ceb1c 100644
--- a/poky/meta/recipes-support/libevent/libevent_2.1.8.bb
+++ b/poky/meta/recipes-support/libevent/libevent_2.1.10.bb
@@ -9,12 +9,11 @@
 SRC_URI = " \
     https://github.com/libevent/libevent/releases/download/release-${PV}-stable/${BP}-stable.tar.gz \
     file://Makefile-missing-test-dir.patch \
-    file://0001-test-fix-32bit-linux-regress.patch \
     file://run-ptest \
 "
 
-SRC_URI[md5sum] = "f3eeaed018542963b7d2416ef1135ecc"
-SRC_URI[sha256sum] = "965cc5a8bb46ce4199a47e9b2c9e1cae3b137e8356ffdad6d94d3b9069b71dc2"
+SRC_URI[md5sum] = "999caf86f52943af2363bc8077f00167"
+SRC_URI[sha256sum] = "e864af41a336bb11dab1a23f32993afe963c1f69618bd9292b89ecf6904845b0"
 
 UPSTREAM_CHECK_URI = "http://libevent.org/"
 
diff --git a/poky/meta/recipes-support/libffi/libffi/0001-New-RISC-V-port-281.patch b/poky/meta/recipes-support/libffi/libffi/0001-New-RISC-V-port-281.patch
new file mode 100644
index 0000000..589c4d3
--- /dev/null
+++ b/poky/meta/recipes-support/libffi/libffi/0001-New-RISC-V-port-281.patch
@@ -0,0 +1,827 @@
+From 8ac73103bf12ce4f776940cb17f3ced15a362f23 Mon Sep 17 00:00:00 2001
+From: Stef O'Rear <sorear2@gmail.com>
+Date: Sun, 11 Mar 2018 05:55:15 -0700
+Subject: [PATCH] New RISC-V port (#281)
+
+* Add RISC-V support
+
+This patch adds support for the RISC-V architecture (https://riscv.org).
+
+This patch has been tested using QEMU user-mode emulation and GCC 7.2.0
+in the following configurations:
+
+* -march=rv32imac -mabi=ilp32
+* -march=rv32g -mabi=ilp32d
+* -march=rv64imac -mabi=lp64
+* -march=rv64g -mabi=lp64d
+
+The ABI currently can be found at
+https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md .
+
+* Add RISC-V to README
+
+* RISC-V: fix configure.host
+
+Upstream-Status: Backport [https://github.com/libffi/libffi/commit/3840d49aaa831d649b1597518a2903dfed0d57f3]
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+---
+ Makefile.am           |   4 +
+ configure.ac          |   5 +
+ src/riscv/ffi.c       | 445 ++++++++++++++++++++++++++++++++++++++++++
+ src/riscv/ffitarget.h |  68 +++++++
+ src/riscv/sysv.S      | 214 ++++++++++++++++++++
+ 5 files changed, 736 insertions(+)
+ create mode 100644 src/riscv/ffi.c
+ create mode 100644 src/riscv/ffitarget.h
+ create mode 100644 src/riscv/sysv.S
+
+diff --git a/Makefile.am b/Makefile.am
+index 0e40451..3837650 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -32,6 +32,7 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj			\
+ 	 src/powerpc/asm.h src/powerpc/aix.S src/powerpc/darwin.S	\
+ 	 src/powerpc/aix_closure.S src/powerpc/darwin_closure.S		\
+ 	 src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h		\
++	 src/riscv/ffi.c src/riscv/ffitarget.h src/riscv/sysv.S		\
+ 	 src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h		\
+ 	 src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h src/sh64/ffi.c	\
+ 	 src/sh64/sysv.S src/sh64/ffitarget.h src/sparc/v8.S		\
+@@ -122,6 +123,9 @@ endif
+ if MIPS
+ nodist_libffi_la_SOURCES += src/mips/ffi.c src/mips/o32.S src/mips/n32.S
+ endif
++if RISCV
++nodist_libffi_la_SOURCES += src/riscv/ffi.c src/riscv/sysv.S
++endif
+ if BFIN
+ nodist_libffi_la_SOURCES += src/bfin/ffi.c src/bfin/sysv.S
+ endif
+diff --git a/configure.ac b/configure.ac
+index ce30853..33375aa 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -226,6 +226,10 @@ case "$host" in
+ 	TARGET=MIPS; TARGETDIR=mips
+ 	;;
+ 
++  riscv*-*-*)
++	TARGET=RISCV; TARGETDIR=riscv
++	;;
++
+   nios2*-linux*)
+ 	TARGET=NIOS2; TARGETDIR=nios2
+ 	;;
+@@ -298,6 +302,7 @@ if test $TARGETDIR = unknown; then
+ fi
+ 
+ AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
++AM_CONDITIONAL(RISCV, test x$TARGET = xRISCV)
+ AM_CONDITIONAL(BFIN, test x$TARGET = xBFIN)
+ AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
+ AM_CONDITIONAL(X86, test x$TARGET = xX86)
+diff --git a/src/riscv/ffi.c b/src/riscv/ffi.c
+new file mode 100644
+index 0000000..b744fdd
+--- /dev/null
++++ b/src/riscv/ffi.c
+@@ -0,0 +1,445 @@
++/* -----------------------------------------------------------------------
++   ffi.c - Copyright (c) 2015 Michael Knyszek <mknyszek@berkeley.edu>
++                         2015 Andrew Waterman <waterman@cs.berkeley.edu>
++                         2018 Stef O'Rear <sorear2@gmail.com>
++   Based on MIPS N32/64 port
++
++   RISC-V Foreign Function Interface
++
++   Permission is hereby granted, free of charge, to any person obtaining
++   a copy of this software and associated documentation files (the
++   ``Software''), to deal in the Software without restriction, including
++   without limitation the rights to use, copy, modify, merge, publish,
++   distribute, sublicense, and/or sell copies of the Software, and to
++   permit persons to whom the Software is furnished to do so, subject to
++   the following conditions:
++
++   The above copyright notice and this permission notice shall be included
++   in all copies or substantial portions of the Software.
++
++   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
++   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
++   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++   DEALINGS IN THE SOFTWARE.
++   ----------------------------------------------------------------------- */
++
++#include <ffi.h>
++#include <ffi_common.h>
++
++#include <stdlib.h>
++#include <stdint.h>
++
++#if __riscv_float_abi_double
++#define ABI_FLEN 64
++#define ABI_FLOAT double
++#elif __riscv_float_abi_single
++#define ABI_FLEN 32
++#define ABI_FLOAT float
++#endif
++
++#define NARGREG 8
++#define STKALIGN 16
++#define MAXCOPYARG (2 * sizeof(double))
++
++typedef struct call_context
++{
++#if ABI_FLEN
++    ABI_FLOAT fa[8];
++#endif
++    size_t a[8];
++    /* used by the assembly code to in-place construct its own stack frame */
++    char frame[16];
++} call_context;
++
++typedef struct call_builder
++{
++    call_context *aregs;
++    int used_integer;
++    int used_float;
++    size_t *used_stack;
++} call_builder;
++
++/* integer (not pointer) less than ABI XLEN */
++/* FFI_TYPE_INT does not appear to be used */
++#if __SIZEOF_POINTER__ == 8
++#define IS_INT(type) ((type) >= FFI_TYPE_UINT8 && (type) <= FFI_TYPE_SINT64)
++#else
++#define IS_INT(type) ((type) >= FFI_TYPE_UINT8 && (type) <= FFI_TYPE_SINT32)
++#endif
++
++#if ABI_FLEN
++typedef struct {
++    char as_elements, type1, offset2, type2;
++} float_struct_info;
++
++#if ABI_FLEN >= 64
++#define IS_FLOAT(type) ((type) >= FFI_TYPE_FLOAT && (type) <= FFI_TYPE_DOUBLE)
++#else
++#define IS_FLOAT(type) ((type) == FFI_TYPE_FLOAT)
++#endif
++
++static ffi_type **flatten_struct(ffi_type *in, ffi_type **out, ffi_type **out_end) {
++    int i;
++    if (out == out_end) return out;
++    if (in->type != FFI_TYPE_STRUCT) {
++        *(out++) = in;
++    } else {
++        for (i = 0; in->elements[i]; i++)
++            out = flatten_struct(in->elements[i], out, out_end);
++    }
++    return out;
++}
++
++/* Structs with at most two fields after flattening, one of which is of
++   floating point type, are passed in multiple registers if sufficient
++   registers are available. */
++static float_struct_info struct_passed_as_elements(call_builder *cb, ffi_type *top) {
++    float_struct_info ret = {0, 0, 0, 0};
++    ffi_type *fields[3];
++    int num_floats, num_ints;
++    int num_fields = flatten_struct(top, fields, fields + 3) - fields;
++
++    if (num_fields == 1) {
++        if (IS_FLOAT(fields[0]->type)) {
++            ret.as_elements = 1;
++            ret.type1 = fields[0]->type;
++        }
++    } else if (num_fields == 2) {
++        num_floats = IS_FLOAT(fields[0]->type) + IS_FLOAT(fields[1]->type);
++        num_ints = IS_INT(fields[0]->type) + IS_INT(fields[1]->type);
++        if (num_floats == 0 || num_floats + num_ints != 2)
++            return ret;
++        if (cb->used_float + num_floats > NARGREG || cb->used_integer + (2 - num_floats) > NARGREG)
++            return ret;
++        if (!IS_FLOAT(fields[0]->type) && !IS_FLOAT(fields[1]->type))
++            return ret;
++
++        ret.type1 = fields[0]->type;
++        ret.type2 = fields[1]->type;
++        ret.offset2 = ALIGN(fields[0]->size, fields[1]->alignment);
++        ret.as_elements = 1;
++    }
++
++    return ret;
++}
++#endif
++
++/* allocates a single register, float register, or XLEN-sized stack slot to a datum */
++static void marshal_atom(call_builder *cb, int type, void *data) {
++    size_t value = 0;
++    switch (type) {
++        case FFI_TYPE_UINT8: value = *(uint8_t *)data; break;
++        case FFI_TYPE_SINT8: value = *(int8_t *)data; break;
++        case FFI_TYPE_UINT16: value = *(uint16_t *)data; break;
++        case FFI_TYPE_SINT16: value = *(int16_t *)data; break;
++        /* 32-bit quantities are always sign-extended in the ABI */
++        case FFI_TYPE_UINT32: value = *(int32_t *)data; break;
++        case FFI_TYPE_SINT32: value = *(int32_t *)data; break;
++#if __SIZEOF_POINTER__ == 8
++        case FFI_TYPE_UINT64: value = *(uint64_t *)data; break;
++        case FFI_TYPE_SINT64: value = *(int64_t *)data; break;
++#endif
++        case FFI_TYPE_POINTER: value = *(size_t *)data; break;
++
++        /* float values may be recoded in an implementation-defined way
++           by hardware conforming to 2.1 or earlier, so use asm to
++           reinterpret floats as doubles */
++#if ABI_FLEN >= 32
++        case FFI_TYPE_FLOAT:
++            asm("" : "=f"(cb->aregs->fa[cb->used_float++]) : "0"(*(float *)data));
++            return;
++#endif
++#if ABI_FLEN >= 64
++        case FFI_TYPE_DOUBLE:
++            asm("" : "=f"(cb->aregs->fa[cb->used_float++]) : "0"(*(double *)data));
++            return;
++#endif
++        default: FFI_ASSERT(0); break;
++    }
++
++    if (cb->used_integer == NARGREG) {
++        *cb->used_stack++ = value;
++    } else {
++        cb->aregs->a[cb->used_integer++] = value;
++    }
++}
++
++static void unmarshal_atom(call_builder *cb, int type, void *data) {
++    size_t value;
++    switch (type) {
++#if ABI_FLEN >= 32
++        case FFI_TYPE_FLOAT:
++            asm("" : "=f"(*(float *)data) : "0"(cb->aregs->fa[cb->used_float++]));
++            return;
++#endif
++#if ABI_FLEN >= 64
++        case FFI_TYPE_DOUBLE:
++            asm("" : "=f"(*(double *)data) : "0"(cb->aregs->fa[cb->used_float++]));
++            return;
++#endif
++    }
++
++    if (cb->used_integer == NARGREG) {
++        value = *cb->used_stack++;
++    } else {
++        value = cb->aregs->a[cb->used_integer++];
++    }
++
++    switch (type) {
++        case FFI_TYPE_UINT8: *(uint8_t *)data = value; break;
++        case FFI_TYPE_SINT8: *(uint8_t *)data = value; break;
++        case FFI_TYPE_UINT16: *(uint16_t *)data = value; break;
++        case FFI_TYPE_SINT16: *(uint16_t *)data = value; break;
++        case FFI_TYPE_UINT32: *(uint32_t *)data = value; break;
++        case FFI_TYPE_SINT32: *(uint32_t *)data = value; break;
++#if __SIZEOF_POINTER__ == 8
++        case FFI_TYPE_UINT64: *(uint64_t *)data = value; break;
++        case FFI_TYPE_SINT64: *(uint64_t *)data = value; break;
++#endif
++        case FFI_TYPE_POINTER: *(size_t *)data = value; break;
++        default: FFI_ASSERT(0); break;
++    }
++}
++
++/* adds an argument to a call, or a not by reference return value */
++static void marshal(call_builder *cb, ffi_type *type, int var, void *data) {
++    size_t realign[2];
++
++#if ABI_FLEN
++    if (!var && type->type == FFI_TYPE_STRUCT) {
++        float_struct_info fsi = struct_passed_as_elements(cb, type);
++        if (fsi.as_elements) {
++            marshal_atom(cb, fsi.type1, data);
++            if (fsi.offset2)
++                marshal_atom(cb, fsi.type2, ((char*)data) + fsi.offset2);
++            return;
++        }
++    }
++
++    if (!var && cb->used_float < NARGREG && IS_FLOAT(type->type)) {
++        marshal_atom(cb, type->type, data);
++        return;
++    }
++#endif
++
++    if (type->size > 2 * __SIZEOF_POINTER__) {
++        /* pass by reference */
++        marshal_atom(cb, FFI_TYPE_POINTER, &data);
++    } else if (IS_INT(type->type) || type->type == FFI_TYPE_POINTER) {
++        marshal_atom(cb, type->type, data);
++    } else {
++        /* overlong integers, soft-float floats, and structs without special
++           float handling are treated identically from this point on */
++
++        /* variadics are aligned even in registers */
++        if (type->alignment > __SIZEOF_POINTER__) {
++            if (var)
++                cb->used_integer = ALIGN(cb->used_integer, 2);
++            cb->used_stack = (size_t *)ALIGN(cb->used_stack, 2*__SIZEOF_POINTER__);
++        }
++
++        memcpy(realign, data, type->size);
++        if (type->size > 0)
++            marshal_atom(cb, FFI_TYPE_POINTER, realign);
++        if (type->size > __SIZEOF_POINTER__)
++            marshal_atom(cb, FFI_TYPE_POINTER, realign + 1);
++    }
++}
++
++/* for arguments passed by reference returns the pointer, otherwise the arg is copied (up to MAXCOPYARG bytes) */
++static void *unmarshal(call_builder *cb, ffi_type *type, int var, void *data) {
++    size_t realign[2];
++    void *pointer;
++
++#if ABI_FLEN
++    if (!var && type->type == FFI_TYPE_STRUCT) {
++        float_struct_info fsi = struct_passed_as_elements(cb, type);
++        if (fsi.as_elements) {
++            unmarshal_atom(cb, fsi.type1, data);
++            if (fsi.offset2)
++                unmarshal_atom(cb, fsi.type2, ((char*)data) + fsi.offset2);
++            return data;
++        }
++    }
++
++    if (!var && cb->used_float < NARGREG && IS_FLOAT(type->type)) {
++        unmarshal_atom(cb, type->type, data);
++        return data;
++    }
++#endif
++
++    if (type->size > 2 * __SIZEOF_POINTER__) {
++        /* pass by reference */
++        unmarshal_atom(cb, FFI_TYPE_POINTER, (char*)&pointer);
++        return pointer;
++    } else if (IS_INT(type->type) || type->type == FFI_TYPE_POINTER) {
++        unmarshal_atom(cb, type->type, data);
++        return data;
++    } else {
++        /* overlong integers, soft-float floats, and structs without special
++           float handling are treated identically from this point on */
++
++        /* variadics are aligned even in registers */
++        if (type->alignment > __SIZEOF_POINTER__) {
++            if (var)
++                cb->used_integer = ALIGN(cb->used_integer, 2);
++            cb->used_stack = (size_t *)ALIGN(cb->used_stack, 2*__SIZEOF_POINTER__);
++        }
++
++        if (type->size > 0)
++            unmarshal_atom(cb, FFI_TYPE_POINTER, realign);
++        if (type->size > __SIZEOF_POINTER__)
++            unmarshal_atom(cb, FFI_TYPE_POINTER, realign + 1);
++        memcpy(data, realign, type->size);
++        return data;
++    }
++}
++
++static int passed_by_ref(call_builder *cb, ffi_type *type, int var) {
++#if ABI_FLEN
++    if (!var && type->type == FFI_TYPE_STRUCT) {
++        float_struct_info fsi = struct_passed_as_elements(cb, type);
++        if (fsi.as_elements) return 0;
++    }
++#endif
++
++    return type->size > 2 * __SIZEOF_POINTER__;
++}
++
++/* Perform machine dependent cif processing */
++ffi_status ffi_prep_cif_machdep(ffi_cif *cif) {
++    cif->riscv_nfixedargs = cif->nargs;
++    return FFI_OK;
++}
++
++/* Perform machine dependent cif processing when we have a variadic function */
++
++ffi_status ffi_prep_cif_machdep_var(ffi_cif *cif, unsigned int nfixedargs, unsigned int ntotalargs) {
++    cif->riscv_nfixedargs = nfixedargs;
++    return FFI_OK;
++}
++
++/* Low level routine for calling functions */
++extern void ffi_call_asm(void *stack, struct call_context *regs, void (*fn)(void)) FFI_HIDDEN;
++
++void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
++{
++    /* this is a conservative estimate, assuming a complex return value and
++       that all remaining arguments are long long / __int128 */
++    size_t arg_bytes = cif->nargs <= 3 ? 0 :
++        ALIGN(2 * sizeof(size_t) * (cif->nargs - 3), STKALIGN);
++    size_t rval_bytes = 0;
++    if (rvalue == NULL && cif->rtype->size > 2*__SIZEOF_POINTER__)
++        rval_bytes = ALIGN(cif->rtype->size, STKALIGN);
++    size_t alloc_size = arg_bytes + rval_bytes + sizeof(call_context);
++
++    /* the assembly code will deallocate all stack data at lower addresses
++       than the argument region, so we need to allocate the frame and the
++       return value after the arguments in a single allocation */
++    size_t alloc_base;
++    /* Argument region must be 16-byte aligned */
++    if (_Alignof(max_align_t) >= STKALIGN) {
++        /* since sizeof long double is normally 16, the compiler will
++           guarantee alloca alignment to at least that much */
++        alloc_base = (size_t)alloca(alloc_size);
++    } else {
++        alloc_base = ALIGN(alloca(alloc_size + STKALIGN - 1), STKALIGN);
++    }
++
++    if (rval_bytes)
++        rvalue = (void*)(alloc_base + arg_bytes);
++
++    call_builder cb;
++    cb.used_float = cb.used_integer = 0;
++    cb.aregs = (call_context*)(alloc_base + arg_bytes + rval_bytes);
++    cb.used_stack = (void*)alloc_base;
++
++    int return_by_ref = passed_by_ref(&cb, cif->rtype, 0);
++    if (return_by_ref)
++        marshal(&cb, &ffi_type_pointer, 0, &rvalue);
++
++    int i;
++    for (i = 0; i < cif->nargs; i++)
++        marshal(&cb, cif->arg_types[i], i >= cif->riscv_nfixedargs, avalue[i]);
++
++    ffi_call_asm((void*)alloc_base, cb.aregs, fn);
++
++    cb.used_float = cb.used_integer = 0;
++    if (!return_by_ref && rvalue)
++        unmarshal(&cb, cif->rtype, 0, rvalue);
++}
++
++extern void ffi_closure_asm(void) FFI_HIDDEN;
++
++ffi_status ffi_prep_closure_loc(ffi_closure *closure, ffi_cif *cif, void (*fun)(ffi_cif*,void*,void**,void*), void *user_data, void *codeloc)
++{
++    uint32_t *tramp = (uint32_t *) &closure->tramp[0];
++    uint64_t fn = (uint64_t) (uintptr_t) ffi_closure_asm;
++
++    if (cif->abi <= FFI_FIRST_ABI || cif->abi >= FFI_LAST_ABI)
++        return FFI_BAD_ABI;
++
++    /* we will call ffi_closure_inner with codeloc, not closure, but as long
++       as the memory is readable it should work */
++
++    tramp[0] = 0x00000317; /* auipc t1, 0 (i.e. t0 <- codeloc) */
++#if __SIZEOF_POINTER__ == 8
++    tramp[1] = 0x01033383; /* ld t2, 16(t1) */
++#else
++    tramp[1] = 0x01032383; /* lw t2, 16(t1) */
++#endif
++    tramp[2] = 0x00038067; /* jr t2 */
++    tramp[3] = 0x00000013; /* nop */
++    tramp[4] = fn;
++    tramp[5] = fn >> 32;
++
++    closure->cif = cif;
++    closure->fun = fun;
++    closure->user_data = user_data;
++
++    __builtin___clear_cache(codeloc, codeloc + FFI_TRAMPOLINE_SIZE);
++
++    return FFI_OK;
++}
++
++/* Called by the assembly code with aregs pointing to saved argument registers
++   and stack pointing to the stacked arguments.  Return values passed in
++   registers will be reloaded from aregs. */
++void FFI_HIDDEN ffi_closure_inner(size_t *stack, call_context *aregs, ffi_closure *closure) {
++    ffi_cif *cif = closure->cif;
++    void **avalue = alloca(cif->nargs * sizeof(void*));
++    /* storage for arguments which will be copied by unmarshal().  We could
++       theoretically avoid the copies in many cases and use at most 128 bytes
++       of memory, but allocating disjoint storage for each argument is
++       simpler. */
++    char *astorage = alloca(cif->nargs * MAXCOPYARG);
++    void *rvalue;
++    call_builder cb;
++    int return_by_ref;
++    int i;
++
++    cb.aregs = aregs;
++    cb.used_integer = cb.used_float = 0;
++    cb.used_stack = stack;
++
++    return_by_ref = passed_by_ref(&cb, cif->rtype, 0);
++    if (return_by_ref)
++        unmarshal(&cb, &ffi_type_pointer, 0, &rvalue);
++    else
++        rvalue = alloca(cif->rtype->size);
++
++    for (i = 0; i < cif->nargs; i++)
++        avalue[i] = unmarshal(&cb, cif->arg_types[i],
++            i >= cif->riscv_nfixedargs, astorage + i*MAXCOPYARG);
++
++    (closure->fun)(cif, rvalue, avalue, closure->user_data);
++
++    if (!return_by_ref && cif->rtype->type != FFI_TYPE_VOID) {
++        cb.used_integer = cb.used_float = 0;
++        marshal(&cb, cif->rtype, 0, rvalue);
++    }
++}
+diff --git a/src/riscv/ffitarget.h b/src/riscv/ffitarget.h
+new file mode 100644
+index 0000000..fcaa899
+--- /dev/null
++++ b/src/riscv/ffitarget.h
+@@ -0,0 +1,68 @@
++/* -----------------------------------------------------------------*-C-*-
++   ffitarget.h - 2014 Michael Knyszek
++
++   Target configuration macros for RISC-V.
++
++   Permission is hereby granted, free of charge, to any person obtaining
++   a copy of this software and associated documentation files (the
++   ``Software''), to deal in the Software without restriction, including
++   without limitation the rights to use, copy, modify, merge, publish,
++   distribute, sublicense, and/or sell copies of the Software, and to
++   permit persons to whom the Software is furnished to do so, subject to
++   the following conditions:
++
++   The above copyright notice and this permission notice shall be included
++   in all copies or substantial portions of the Software.
++
++   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
++   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
++   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++   DEALINGS IN THE SOFTWARE.
++
++   ----------------------------------------------------------------------- */
++
++#ifndef LIBFFI_TARGET_H
++#define LIBFFI_TARGET_H
++
++#ifndef LIBFFI_H
++#error "Please do not include ffitarget.h directly into your source.  Use ffi.h instead."
++#endif
++
++#ifndef __riscv
++#error "libffi was configured for a RISC-V target but this does not appear to be a RISC-V compiler."
++#endif
++
++#ifndef LIBFFI_ASM
++
++typedef unsigned long ffi_arg;
++typedef   signed long ffi_sarg;
++
++/* FFI_UNUSED_NN and riscv_unused are to maintain ABI compatibility with a
++   distributed Berkeley patch from 2014, and can be removed at SONAME bump */
++typedef enum ffi_abi {
++    FFI_FIRST_ABI = 0,
++    FFI_SYSV,
++    FFI_UNUSED_1,
++    FFI_UNUSED_2,
++    FFI_UNUSED_3,
++    FFI_LAST_ABI,
++
++    FFI_DEFAULT_ABI = FFI_SYSV
++} ffi_abi;
++
++#endif /* LIBFFI_ASM */
++
++/* ---- Definitions for closures ----------------------------------------- */
++
++#define FFI_CLOSURES 1
++#define FFI_TRAMPOLINE_SIZE 24
++#define FFI_NATIVE_RAW_API 0
++#define FFI_EXTRA_CIF_FIELDS unsigned riscv_nfixedargs; unsigned riscv_unused;
++#define FFI_TARGET_SPECIFIC_VARIADIC
++
++#endif
++
+diff --git a/src/riscv/sysv.S b/src/riscv/sysv.S
+new file mode 100644
+index 0000000..2d09865
+--- /dev/null
++++ b/src/riscv/sysv.S
+@@ -0,0 +1,214 @@
++/* -----------------------------------------------------------------------
++   ffi.c - Copyright (c) 2015 Michael Knyszek <mknyszek@berkeley.edu>
++                         2015 Andrew Waterman <waterman@cs.berkeley.edu>
++                         2018 Stef O'Rear <sorear2@gmail.com>
++
++   RISC-V Foreign Function Interface
++
++   Permission is hereby granted, free of charge, to any person obtaining
++   a copy of this software and associated documentation files (the
++   ``Software''), to deal in the Software without restriction, including
++   without limitation the rights to use, copy, modify, merge, publish,
++   distribute, sublicense, and/or sell copies of the Software, and to
++   permit persons to whom the Software is furnished to do so, subject to
++   the following conditions:
++
++   The above copyright notice and this permission notice shall be included
++   in all copies or substantial portions of the Software.
++
++   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
++   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
++   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++   DEALINGS IN THE SOFTWARE.
++   ----------------------------------------------------------------------- */
++
++#define LIBFFI_ASM
++#include <fficonfig.h>
++#include <ffi.h>
++
++/* Define aliases so that we can handle all ABIs uniformly */
++
++#if __SIZEOF_POINTER__ == 8
++#define PTRS 8
++#define LARG ld
++#define SARG sd
++#else
++#define PTRS 4
++#define LARG lw
++#define SARG sw
++#endif
++
++#if __riscv_float_abi_double
++#define FLTS 8
++#define FLARG fld
++#define FSARG fsd
++#elif __riscv_float_abi_single
++#define FLTS 4
++#define FLARG flw
++#define FSARG fsw
++#else
++#define FLTS 0
++#endif
++
++#define fp s0
++
++    .text
++    .globl  ffi_call_asm
++    .type   ffi_call_asm, @function
++    .hidden ffi_call_asm
++/*
++  struct call_context {
++      floatreg fa[8];
++      intreg a[8];
++      intreg pad[rv32 ? 2 : 0];
++      intreg save_fp, save_ra;
++  }
++  void ffi_call_asm(size_t *stackargs, struct call_context *regargs,
++      void (*fn)(void));
++*/
++
++#define FRAME_LEN (8 * FLTS + 8 * PTRS + 16)
++
++ffi_call_asm:
++    .cfi_startproc
++
++    /*
++      We are NOT going to set up an ordinary stack frame.  In order to pass
++      the stacked args to the called function, we adjust our stack pointer to
++      a0, which is in the _caller's_ alloca area.  We establish our own stack
++      frame at the end of the call_context.
++
++      Anything below the arguments will be freed at this point, although we
++      preserve the call_context so that it can be read back in the caller.
++    */
++
++    .cfi_def_cfa 11, FRAME_LEN # interim CFA based on a1
++    SARG    fp, FRAME_LEN - 2*PTRS(a1)
++    .cfi_offset 8, -2*PTRS
++    SARG    ra, FRAME_LEN - 1*PTRS(a1)
++    .cfi_offset 1, -1*PTRS
++
++    addi    fp, a1, FRAME_LEN
++    mv      sp, a0
++    .cfi_def_cfa 8, 0 # our frame is fully set up
++
++    # Load arguments
++    mv      t1, a2
++
++#if FLTS
++    FLARG   fa0, -FRAME_LEN+0*FLTS(fp)
++    FLARG   fa1, -FRAME_LEN+1*FLTS(fp)
++    FLARG   fa2, -FRAME_LEN+2*FLTS(fp)
++    FLARG   fa3, -FRAME_LEN+3*FLTS(fp)
++    FLARG   fa4, -FRAME_LEN+4*FLTS(fp)
++    FLARG   fa5, -FRAME_LEN+5*FLTS(fp)
++    FLARG   fa6, -FRAME_LEN+6*FLTS(fp)
++    FLARG   fa7, -FRAME_LEN+7*FLTS(fp)
++#endif
++
++    LARG    a0, -FRAME_LEN+8*FLTS+0*PTRS(fp)
++    LARG    a1, -FRAME_LEN+8*FLTS+1*PTRS(fp)
++    LARG    a2, -FRAME_LEN+8*FLTS+2*PTRS(fp)
++    LARG    a3, -FRAME_LEN+8*FLTS+3*PTRS(fp)
++    LARG    a4, -FRAME_LEN+8*FLTS+4*PTRS(fp)
++    LARG    a5, -FRAME_LEN+8*FLTS+5*PTRS(fp)
++    LARG    a6, -FRAME_LEN+8*FLTS+6*PTRS(fp)
++    LARG    a7, -FRAME_LEN+8*FLTS+7*PTRS(fp)
++
++    /* Call */
++    jalr    t1
++
++    /* Save return values - only a0/a1 (fa0/fa1) are used */
++#if FLTS
++    FSARG   fa0, -FRAME_LEN+0*FLTS(fp)
++    FSARG   fa1, -FRAME_LEN+1*FLTS(fp)
++#endif
++
++    SARG    a0, -FRAME_LEN+8*FLTS+0*PTRS(fp)
++    SARG    a1, -FRAME_LEN+8*FLTS+1*PTRS(fp)
++
++    /* Restore and return */
++    addi    sp, fp, -FRAME_LEN
++    .cfi_def_cfa 2, FRAME_LEN
++    LARG    ra, -1*PTRS(fp)
++    .cfi_restore 1
++    LARG    fp, -2*PTRS(fp)
++    .cfi_restore 8
++    ret
++    .cfi_endproc
++    .size   ffi_call_asm, .-ffi_call_asm
++
++
++/*
++  ffi_closure_asm. Expects address of the passed-in ffi_closure in t1.
++  void ffi_closure_inner(size_t *stackargs, struct call_context *regargs,
++      ffi_closure *closure);
++*/
++
++    .globl ffi_closure_asm
++    .hidden ffi_closure_asm
++    .type ffi_closure_asm, @function
++ffi_closure_asm:
++    .cfi_startproc
++
++    addi    sp,  sp, -FRAME_LEN
++    .cfi_def_cfa_offset FRAME_LEN
++
++    /* make a frame */
++    SARG    fp, FRAME_LEN - 2*PTRS(sp)
++    .cfi_offset 8, -2*PTRS
++    SARG    ra, FRAME_LEN - 1*PTRS(sp)
++    .cfi_offset 1, -1*PTRS
++    addi    fp, sp, FRAME_LEN
++
++    /* save arguments */
++#if FLTS
++    FSARG   fa0, 0*FLTS(sp)
++    FSARG   fa1, 1*FLTS(sp)
++    FSARG   fa2, 2*FLTS(sp)
++    FSARG   fa3, 3*FLTS(sp)
++    FSARG   fa4, 4*FLTS(sp)
++    FSARG   fa5, 5*FLTS(sp)
++    FSARG   fa6, 6*FLTS(sp)
++    FSARG   fa7, 7*FLTS(sp)
++#endif
++
++    SARG    a0, 8*FLTS+0*PTRS(sp)
++    SARG    a1, 8*FLTS+1*PTRS(sp)
++    SARG    a2, 8*FLTS+2*PTRS(sp)
++    SARG    a3, 8*FLTS+3*PTRS(sp)
++    SARG    a4, 8*FLTS+4*PTRS(sp)
++    SARG    a5, 8*FLTS+5*PTRS(sp)
++    SARG    a6, 8*FLTS+6*PTRS(sp)
++    SARG    a7, 8*FLTS+7*PTRS(sp)
++
++    /* enter C */
++    addi    a0, sp, FRAME_LEN
++    mv      a1, sp
++    mv      a2, t1
++
++    call    ffi_closure_inner
++
++    /* return values */
++#if FLTS
++    FLARG   fa0, 0*FLTS(sp)
++    FLARG   fa1, 1*FLTS(sp)
++#endif
++
++    LARG    a0, 8*FLTS+0*PTRS(sp)
++    LARG    a1, 8*FLTS+1*PTRS(sp)
++
++    /* restore and return */
++    LARG    ra, FRAME_LEN-1*PTRS(sp)
++    .cfi_restore 1
++    LARG    fp, FRAME_LEN-2*PTRS(sp)
++    .cfi_restore 8
++    addi    sp, sp, FRAME_LEN
++    .cfi_def_cfa_offset 0
++    ret
++    .cfi_endproc
++    .size ffi_closure_asm, .-ffi_closure_asm
diff --git a/poky/meta/recipes-support/libffi/libffi_3.2.1.bb b/poky/meta/recipes-support/libffi/libffi_3.2.1.bb
index a0b1fcd..792a114 100644
--- a/poky/meta/recipes-support/libffi/libffi_3.2.1.bb
+++ b/poky/meta/recipes-support/libffi/libffi_3.2.1.bb
@@ -12,10 +12,11 @@
 
 SRC_URI = "ftp://sourceware.org/pub/libffi/${BP}.tar.gz \
            file://not-win32.patch \
-	   file://0001-mips-Use-compiler-internal-define-for-linux.patch \
+           file://0001-mips-Use-compiler-internal-define-for-linux.patch \
            file://0001-mips-fix-MIPS-softfloat-build-issue.patch \
            file://0001-libffi-Support-musl-x32-build.patch \
-	   "
+           file://0001-New-RISC-V-port-281.patch \
+           "
 
 SRC_URI[md5sum] = "83b89587607e3eb65c70d361f13bab43"
 SRC_URI[sha256sum] = "d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37"
diff --git a/poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch b/poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch
new file mode 100644
index 0000000..89b647d
--- /dev/null
+++ b/poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch
@@ -0,0 +1,124 @@
+From e03553605b45c88f0b4b2980adfbbb8f6fca2fd6 Mon Sep 17 00:00:00 2001
+From: Nick Wellnhofer <wellnhofer@aevum.de>
+Date: Sun, 24 Mar 2019 09:51:39 +0100
+Subject: Fix security framework bypass
+
+xsltCheckRead and xsltCheckWrite return -1 in case of error but callers
+don't check for this condition and allow access. With a specially
+crafted URL, xsltCheckRead could be tricked into returning an error
+because of a supposedly invalid URL that would still be loaded
+succesfully later on.
+
+Fixes #12.
+
+Thanks to Felix Wilhelm for the report.
+
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+Upstream-Status: Backport
+CVE: CVE-2019-11068
+---
+ libxslt/documents.c | 18 ++++++++++--------
+ libxslt/imports.c   |  9 +++++----
+ libxslt/transform.c |  9 +++++----
+ libxslt/xslt.c      |  9 +++++----
+ 4 files changed, 25 insertions(+), 20 deletions(-)
+
+diff --git a/libxslt/documents.c b/libxslt/documents.c
+index 3f3a7312..4aad11bb 100644
+--- a/libxslt/documents.c
++++ b/libxslt/documents.c
+@@ -296,10 +296,11 @@ xsltLoadDocument(xsltTransformContextPtr ctxt, const xmlChar *URI) {
+ 	int res;
+ 
+ 	res = xsltCheckRead(ctxt->sec, ctxt, URI);
+-	if (res == 0) {
+-	    xsltTransformError(ctxt, NULL, NULL,
+-		 "xsltLoadDocument: read rights for %s denied\n",
+-			     URI);
++	if (res <= 0) {
++            if (res == 0)
++                xsltTransformError(ctxt, NULL, NULL,
++                     "xsltLoadDocument: read rights for %s denied\n",
++                                 URI);
+ 	    return(NULL);
+ 	}
+     }
+@@ -372,10 +373,11 @@ xsltLoadStyleDocument(xsltStylesheetPtr style, const xmlChar *URI) {
+ 	int res;
+ 
+ 	res = xsltCheckRead(sec, NULL, URI);
+-	if (res == 0) {
+-	    xsltTransformError(NULL, NULL, NULL,
+-		 "xsltLoadStyleDocument: read rights for %s denied\n",
+-			     URI);
++	if (res <= 0) {
++            if (res == 0)
++                xsltTransformError(NULL, NULL, NULL,
++                     "xsltLoadStyleDocument: read rights for %s denied\n",
++                                 URI);
+ 	    return(NULL);
+ 	}
+     }
+diff --git a/libxslt/imports.c b/libxslt/imports.c
+index 874870cc..3783b247 100644
+--- a/libxslt/imports.c
++++ b/libxslt/imports.c
+@@ -130,10 +130,11 @@ xsltParseStylesheetImport(xsltStylesheetPtr style, xmlNodePtr cur) {
+ 	int secres;
+ 
+ 	secres = xsltCheckRead(sec, NULL, URI);
+-	if (secres == 0) {
+-	    xsltTransformError(NULL, NULL, NULL,
+-		 "xsl:import: read rights for %s denied\n",
+-			     URI);
++	if (secres <= 0) {
++            if (secres == 0)
++                xsltTransformError(NULL, NULL, NULL,
++                     "xsl:import: read rights for %s denied\n",
++                                 URI);
+ 	    goto error;
+ 	}
+     }
+diff --git a/libxslt/transform.c b/libxslt/transform.c
+index 13793914..0636dbd0 100644
+--- a/libxslt/transform.c
++++ b/libxslt/transform.c
+@@ -3493,10 +3493,11 @@ xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node,
+      */
+     if (ctxt->sec != NULL) {
+ 	ret = xsltCheckWrite(ctxt->sec, ctxt, filename);
+-	if (ret == 0) {
+-	    xsltTransformError(ctxt, NULL, inst,
+-		 "xsltDocumentElem: write rights for %s denied\n",
+-			     filename);
++	if (ret <= 0) {
++            if (ret == 0)
++                xsltTransformError(ctxt, NULL, inst,
++                     "xsltDocumentElem: write rights for %s denied\n",
++                                 filename);
+ 	    xmlFree(URL);
+ 	    xmlFree(filename);
+ 	    return;
+diff --git a/libxslt/xslt.c b/libxslt/xslt.c
+index 780a5ad7..a234eb79 100644
+--- a/libxslt/xslt.c
++++ b/libxslt/xslt.c
+@@ -6763,10 +6763,11 @@ xsltParseStylesheetFile(const xmlChar* filename) {
+ 	int res;
+ 
+ 	res = xsltCheckRead(sec, NULL, filename);
+-	if (res == 0) {
+-	    xsltTransformError(NULL, NULL, NULL,
+-		 "xsltParseStylesheetFile: read rights for %s denied\n",
+-			     filename);
++	if (res <= 0) {
++            if (res == 0)
++                xsltTransformError(NULL, NULL, NULL,
++                     "xsltParseStylesheetFile: read rights for %s denied\n",
++                                 filename);
+ 	    return(NULL);
+ 	}
+     }
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb b/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb
index 462eccf..6320a82 100644
--- a/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb
+++ b/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb
@@ -8,7 +8,9 @@
 SECTION = "libs"
 DEPENDS = "libxml2"
 
-SRC_URI = "http://xmlsoft.org/sources/libxslt-${PV}.tar.gz"
+SRC_URI = "http://xmlsoft.org/sources/libxslt-${PV}.tar.gz \
+           file://0001-Fix-security-framework-bypass.patch \
+"
 
 SRC_URI[md5sum] = "b3bd254a03e46d58f8ad1e4559cd2c2f"
 SRC_URI[sha256sum] = "8e36605144409df979cab43d835002f63988f3dc94d5d3537c12796db90e38c8"
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch b/poky/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch
deleted file mode 100644
index 06d1d94..0000000
--- a/poky/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 06ba71887f667d45dd231a782a2751f36e8fe025 Mon Sep 17 00:00:00 2001
-From: Christopher Larson <chris_larson@mentor.com>
-Date: Mon, 15 Feb 2016 15:59:58 -0700
-Subject: [PATCH 1/4] If the libc is lacking argp, use libargp
-
-Patch pulled from Gentoo:
-
-    On glibc systems, argp is provided by libc.  However, on
-    uclibc and other systems which lack argp in their C library,
-    argp might be provided by a stand alone library, libargp.
-    This patch adds tests to the build system to find who provides
-    argp.
-
-    X-Gentoo-Bug: 292191
-    X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=292191
-    Reported-by: Ed Wildgoose <gentoo@wildgooses.com>
-    Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
-
-Upstream-Status: Pending
-Signed-off-by: Christopher Larson <chris_larson@mentor.com>
----
- configure.ac | 22 ++++++++++++++++++++++
- 1 file changed, 22 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 4e799dc..c4a5dd8 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -135,6 +135,28 @@ AS_IF(
- 	]
- )
- 
-+dnl First check if we have argp available from libc
-+AC_LINK_IFELSE(
-+	[AC_LANG_PROGRAM(
-+		[#include <argp.h>],
-+		[int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
-+		)],
-+	[libc_has_argp="true"],
-+	[libc_has_argp="false"]
-+)
-+
-+dnl If libc doesn't provide argp, then test for libargp
-+if test "$libc_has_argp" = "false" ; then
-+	AC_MSG_WARN("libc does not have argp")
-+	AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"])
-+
-+	if test "$have_argp" = "false"; then
-+		AC_MSG_ERROR("no libargp found")
-+	else
-+		LIBS+=" -largp"
-+	fi
-+fi
-+
- dnl -----------------
- dnl Configure options
- dnl -----------------
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch b/poky/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch
deleted file mode 100644
index d4d28a0..0000000
--- a/poky/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 99b0efebd765803203686d89bc4f995bcb103e78 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Sat, 10 Nov 2018 09:53:19 +0800
-Subject: [PATCH] configure.ac: fix typo
-
-Upstream-Status: Submitted [https://github.com/nhorman/rng-tools.git]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 4e799dc..0251928 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -62,7 +62,7 @@ AS_IF([test $target_cpu = powerpc64le], [AC_DEFINE([HAVE_DARN],1,[Enable DARN])]
- AM_CONDITIONAL([JITTER], [false])
- 
- AC_ARG_ENABLE(jitterentropy,
--	AS_HELP_STRING([--disable-jitterntropy | --enable-jitterentropy=<path>],
-+	AS_HELP_STRING([--disable-jitterentropy | --enable-jitterentropy=<path>],
- 	[Disable jitterentropy source, or specify its location]),
- 	[if [ test -d $enable_jitterentropy ]; then
- 		export LDFLAGS+=-L$enable_jitterentropy;
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch b/poky/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch
deleted file mode 100644
index be60fe9..0000000
--- a/poky/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From 711e2f76890e3c5b08f64859d9fd913ddbec7d50 Mon Sep 17 00:00:00 2001
-From: Christopher Larson <chris_larson@mentor.com>
-Date: Mon, 22 Oct 2018 15:26:47 +0800
-Subject: [PATCH 2/4] Add argument to control the libargp dependency
-
-This ensures that the builds are always deterministic. If the argument isn't
-passed, the default behavior is to use libargp if the libc doesn't have argp.
-
-Upstream-Status: Pending
-Signed-off-by: Christopher Larson <chris_larson@mentor.com>
-
-Rebase to 6.6
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 55 ++++++++++++++++++++++++++++++++++++-------------------
- 1 file changed, 36 insertions(+), 19 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index c4a5dd8..dd1c30f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -40,6 +40,13 @@ AC_ARG_WITH([nistbeacon],
- 	[with_nistbeacon=check]
- )
- 
-+AC_ARG_WITH([libargp],
-+	AS_HELP_STRING([--without-libargp],
-+		[Disable libargp support. Systems whose libc lacks argp can use libargp instead. (Default: check if libc lacks argp)]),
-+	[with_libargp=$withval],
-+	[with_libargp=check]
-+)
-+
- dnl Make sure anyone changing configure.ac/Makefile.am has a clue
- AM_MAINTAINER_MODE
- AM_PROG_AS
-@@ -135,27 +142,37 @@ AS_IF(
- 	]
- )
- 
--dnl First check if we have argp available from libc
--AC_LINK_IFELSE(
--	[AC_LANG_PROGRAM(
--		[#include <argp.h>],
--		[int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
--		)],
--	[libc_has_argp="true"],
--	[libc_has_argp="false"]
-+dnl Determine if we need libargp: either user requested, or libc has no argp
-+AS_IF(
-+	[test "x$with_libargp" != "xyes"],
-+	[
-+		AC_LINK_IFELSE(
-+			[AC_LANG_PROGRAM(
-+				[#include <argp.h>],
-+				[int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
-+				)],
-+			[need_libargp=no],
-+			[need_libargp=yes
-+			 if test "x$with_libargp" = "xno"; then
-+				AC_MSG_FAILURE([libargp disabled and libc does not have argp])
-+			 fi]
-+		)
-+	],
-+	[need_libargp=yes],
- )
- 
--dnl If libc doesn't provide argp, then test for libargp
--if test "$libc_has_argp" = "false" ; then
--	AC_MSG_WARN("libc does not have argp")
--	AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"])
--
--	if test "$have_argp" = "false"; then
--		AC_MSG_ERROR("no libargp found")
--	else
--		LIBS+=" -largp"
--	fi
--fi
-+dnl Check for libargp
-+AS_IF(
-+	[test "x$need_libargp" = "xyes"],
-+	[
-+		AC_CHECK_LIB(
-+			[argp],
-+			[argp_parse],
-+			[LIBS="$LIBS -largp"],
-+			[AC_MSG_FAILURE([libargp not found])]
-+		)
-+	]
-+)
- 
- dnl -----------------
- dnl Configure options
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch b/poky/meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch
new file mode 100644
index 0000000..58cf3f9
--- /dev/null
+++ b/poky/meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch
@@ -0,0 +1,25 @@
+It fails to stop rngd. It just shows warnings when stop rngd such as by:
+
+$ systemctl stop rngd.service
+
+but stalls shutdown untill daemon rngd is killed.
+
+Backport patch to fix the issue.
+
+Upstream-Status: Backport [https://bugzilla.redhat.com/show_bug.cgi?id=1690364#c8]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/rngd_jitter.c b/rngd_jitter.c
+index 54070ae..7a69bf9 100644
+--- a/rngd_jitter.c
++++ b/rngd_jitter.c
+@@ -280,7 +280,7 @@ static void *thread_entropy_task(void *data)
+ 
+ 		/* Write to pipe */
+ 		written = 0;
+-		while(written != me->buf_sz) {
++		while(me->active && written != me->buf_sz) {
+ 			message(LOG_DAEMON|LOG_DEBUG, "Writing to pipe\n");
+ 			ret = write(me->pipe_fd, &tmpbuf[written], me->buf_sz - written);
+ 			message(LOG_DAEMON|LOG_DEBUG, "DONE Writing to pipe with return %ld\n", ret);
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch b/poky/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch
deleted file mode 100644
index 614adab..0000000
--- a/poky/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From d8b1bb8edd99b2898720b4f10d292a67d532db48 Mon Sep 17 00:00:00 2001
-From: "Francisco Blas Izquierdo Riera (klondike)" <klondike@gentoo.org>
-Date: Mon, 22 Oct 2018 15:29:36 +0800
-Subject: [PATCH 4/4] Fix assemby textrels on rdrand_asm.S on PIC x86
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch updates the fixes in the assembly in rdrand_asm.S in
-sys-apps/rng-tools-5 so it won't generate textrels on PIC systems.
-The main fixes are in the use of leal in SETPTR for such systems, the rest is
-the usual PIC support stuff.
-
-This should fix Gentoo bug #469962 and help fix #518210
-
-This patch is released under the GPLv2 or a higher version license as is the
-original file as long as the author and the tester are credited.
-
-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=469962
-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=518210
-Signed-off-by: Francisco Blas Izquierdo Riera (klondike) <klondike@gentoo.org>
-Reported-by: cilly <cilly@cilly.mine.nu>
-Reported-by: Manuel Rüger <mrueg@gentoo.org>
-Tested-by: Anthony Basile <blueness@gentoo.org>
-
-Upstream-Status: Pending
----
- rdrand_asm.S | 27 +++++++++++++++++++++++++++
- 1 file changed, 27 insertions(+)
-
-diff --git a/rdrand_asm.S b/rdrand_asm.S
-index b5d260a..7811cf2 100644
---- a/rdrand_asm.S
-+++ b/rdrand_asm.S
-@@ -2,6 +2,7 @@
-  * Copyright (c) 2011-2014, Intel Corporation
-  * Authors: Fenghua Yu <fenghua.yu@intel.com>,
-  *          H. Peter Anvin <hpa@linux.intel.com>
-+ * PIC code by: Francisco Blas Izquierdo Riera (klondike) <klondike@gentoo.org>
-  *
-  * This program is free software; you can redistribute it and/or modify it
-  * under the terms and conditions of the GNU General Public License,
-@@ -172,7 +173,19 @@ ENTRY(x86_rdseed_or_rdrand_bytes)
- 	jmp	4b
- ENDPROC(x86_rdseed_or_rdrand_bytes)
- 
-+#if defined(__PIC__)
-+#define INIT_PIC() \
-+	pushl	%ebx ; \
-+	call    __x86.get_pc_thunk.bx ; \
-+	addl    $_GLOBAL_OFFSET_TABLE_, %ebx
-+#define END_PIC() \
-+	popl	%ebx
-+#define SETPTR(var,ptr) leal (var)@GOTOFF(%ebx),ptr
-+#else
-+#define INIT_PIC()
-+#define END_PIC()
- #define SETPTR(var,ptr)	movl $(var),ptr
-+#endif
- #define PTR0	%eax
- #define PTR1	%edx
- #define PTR2	%ecx
-@@ -188,6 +201,7 @@ ENTRY(x86_aes_mangle)
- 	movl	8(%ebp), %eax
- 	movl	12(%ebp), %edx
- 	push	%esi
-+	INIT_PIC()
- #endif
- 	movl	$512, CTR3	/* Number of rounds */
- 	
-@@ -278,6 +292,7 @@ offset = offset + 16
- 	movdqa	%xmm7, (7*16)(PTR1)
- 
- #ifdef __i386__
-+	END_PIC()
- 	pop	%esi
- 	pop	%ebp
- #endif
-@@ -292,6 +307,7 @@ ENTRY(x86_aes_expand_key)
- 	push	%ebp
- 	mov	%esp, %ebp
- 	movl	8(%ebp), %eax
-+	INIT_PIC()
- #endif
- 
- 	SETPTR(aes_round_keys, PTR1)
-@@ -321,6 +337,7 @@ ENTRY(x86_aes_expand_key)
- 	call	1f
- 
- #ifdef __i386__
-+	END_PIC()
- 	pop	%ebp
- #endif
- 	ret
-@@ -341,6 +358,16 @@ ENTRY(x86_aes_expand_key)
- 
- ENDPROC(x86_aes_expand_key)
- 
-+#if defined(__i386__) && defined(__PIC__)
-+	.section	.text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
-+	.globl	__x86.get_pc_thunk.bx
-+	.hidden	__x86.get_pc_thunk.bx
-+	.type	__x86.get_pc_thunk.bx, @function
-+__x86.get_pc_thunk.bx:
-+	movl	(%esp), %ebx
-+	ret
-+#endif
-+
- 	.bss
- 	.balign 64
- aes_round_keys:
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools/underquote.patch b/poky/meta/recipes-support/rng-tools/rng-tools/underquote.patch
deleted file mode 100644
index aa4bbcb..0000000
--- a/poky/meta/recipes-support/rng-tools/rng-tools/underquote.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 03fe7efa1bc04a83fb9b6787998e7baa7ee90646 Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Mon, 22 Oct 2018 15:27:41 +0800
-Subject: [PATCH 3/4] Fix underquoted m4 entry. This causes a failure if gcrypt
- isn't present:
-
-| configure: libgcrypt support disabled
-| ../rng-tools-5/configure: line 4345: ac_fn_c_try_link: command not found
-| configure: error: in `/media/build1/poky/build/tmp/work/i586-poky-linux/rng-tools/5-r0/build':
-
-RP
-2016/2/16
-
-Upstream-Status: Pending
-
-Rebase to 6.6
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index dd1c30f..88d2be3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -124,7 +124,7 @@ AS_IF(
- 	[test "x$with_libgcrypt" != "xno"],
- 	[
- 		AC_CHECK_HEADER([gcrypt.h],
--			AC_CHECK_LIB(
-+			[AC_CHECK_LIB(
- 				[gcrypt],
- 				[gcry_check_version], ,
- 				[
-@@ -133,7 +133,7 @@ AS_IF(
- 						AC_MSG_NOTICE([libgcrypt support disabled])
- 					fi
- 				]
--			),
-+			)],
- 			[if test "x$with_libgcrypt" != "xcheck"; then
- 				AC_MSG_FAILURE([libgcrypt headers not found]); else
- 				AC_MSG_NOTICE([libgcrypt support disabled])
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools_6.6.bb b/poky/meta/recipes-support/rng-tools/rng-tools_6.7.bb
similarity index 84%
rename from poky/meta/recipes-support/rng-tools/rng-tools_6.6.bb
rename to poky/meta/recipes-support/rng-tools/rng-tools_6.7.bb
index b0afa4b..aeb558b 100644
--- a/poky/meta/recipes-support/rng-tools/rng-tools_6.6.bb
+++ b/poky/meta/recipes-support/rng-tools/rng-tools_6.7.bb
@@ -10,16 +10,12 @@
 
 SRC_URI = "\
     git://github.com/nhorman/rng-tools.git \
-    file://0001-If-the-libc-is-lacking-argp-use-libargp.patch \
-    file://0002-Add-argument-to-control-the-libargp-dependency.patch \
-    file://underquote.patch \
-    file://rng-tools-5-fix-textrels-on-PIC-x86.patch \
-    file://0001-configure.ac-fix-typo.patch \
+    file://fix-rngd-fail-to-stop.patch \
     file://init \
     file://default \
     file://rngd.service \
 "
-SRCREV = "4ebc21d6f387bb7b4b3f6badc429e27b21c0a6ee"
+SRCREV = "9fc873c5af0e392632e6b736938b811f7ca97251"
 
 S = "${WORKDIR}/git"
 
@@ -31,6 +27,7 @@
 PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone,"
 PACKAGECONFIG[libgcrypt] = "--with-libgcrypt,--without-libgcrypt,libgcrypt,"
 PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy"
+PACKAGECONFIG[libp11] = "--with-pkcs11,--without-pkcs11,libp11 openssl"
 PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2 openssl"
 
 INITSCRIPT_NAME = "rng-tools"
diff --git a/poky/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch b/poky/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
new file mode 100644
index 0000000..91640d6
--- /dev/null
+++ b/poky/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
@@ -0,0 +1,71 @@
+stop scons trying to create directories in hosts rootfs
+
+* since 1522f09a4d serf: cleanup recipe
+  serf.do_install fails in builds with multilib enabled (with
+  libdir=/usr/lib64 on host where /usr/lib64 doesn't exist)
+
+DEBUG: Executing shell function do_install
+scons: Reading SConscript files ...
+PermissionError: [Errno 13] Permission denied: '/usr/lib64':
+  File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/serf-1.3.9/SConstruct", line 158:
+    ENV = os.environ,
+  File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Environment.py", line 965:
+    variables.Update(self)
+  File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Variables/__init__.py", line 227:
+    option.validator(option.key, env.subst('${%s}'%option.key), env)
+  File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/serf-1.3.9/SConstruct", line 60:
+    return PathVariable.PathIsDirCreate(key, val, env)
+  File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Variables/PathVariable.py", line 101:
+    os.makedirs(val)
+  File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/lib/python3.7/os.py", line 221:
+    mkdir(name, mode)
+ERROR: scons install execution failed.
+
+* I don't know how exactly --install-sandbox is supposed to work but
+  in this case it's trying to mkdir /usr/lib64 on the host rootfs
+  which is clearly wrong and if I set LIBDIR together with
+  --install-sandbox then the install paths are prefixed with $D twice
+  in some cases (not for includedir and empty libdir at the end).
+  So in the end I think it was an issue caused by the custom path
+  validator in serf's SConstruct, removing that stops touching host
+  and the installed paths (including the paths inside libserf*.pc)
+  look correct
+
+Upstream-Status: Pending
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+--- serf-1.3.9/SConstruct	2019-06-18 15:49:19.968961108 +0000
++++ serf-1.3.9b/SConstruct	2019-06-18 18:53:21.412337151 +0000
+@@ -51,17 +51,6 @@
+     """
+     return (key, '%s' % (help), default, None, lambda val: _converter(val))
+ 
+-# Custom path validator, creates directory when a specified option is set.
+-# To be used to ensure a PREFIX directory is only created when installing.
+-def createPathIsDirCreateWithTarget(target):
+-  def my_validator(key, val, env):
+-    build_targets = (map(str, BUILD_TARGETS))
+-    if target in build_targets:
+-      return PathVariable.PathIsDirCreate(key, val, env)
+-    else:
+-      return PathVariable.PathAccept(key, val, env)
+-  return my_validator
+-
+ # default directories
+ if sys.platform == 'win32':
+   default_incdir='..'
+@@ -77,11 +66,11 @@
+   PathVariable('PREFIX',
+                'Directory to install under',
+                default_prefix,
+-               createPathIsDirCreateWithTarget('install')),
++               PathVariable.PathAccept),
+   PathVariable('LIBDIR',
+                'Directory to install architecture dependent libraries under',
+                default_libdir,
+-               createPathIsDirCreateWithTarget('install')),
++               PathVariable.PathAccept),
+   PathVariable('APR',
+                "Path to apr-1-config, or to APR's install area",
+                default_incdir,
diff --git a/poky/meta/recipes-support/serf/serf_1.3.9.bb b/poky/meta/recipes-support/serf/serf_1.3.9.bb
index 92cd5ca..dd4133a 100644
--- a/poky/meta/recipes-support/serf/serf_1.3.9.bb
+++ b/poky/meta/recipes-support/serf/serf_1.3.9.bb
@@ -6,6 +6,7 @@
            file://0002-SConstruct-Fix-path-quoting-for-.def-generator.patch \
            file://0003-gen_def.patch \
            file://0004-Follow-up-to-r1811083-fix-building-with-scons-3.0.0-.patch \
+           file://SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch \
            "
 
 SRC_URI[md5sum] = "370a6340ff20366ab088012cd13f2b57"
diff --git a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
index d87db1f..5cc5c8a 100644
--- a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
+++ b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
@@ -55,8 +55,10 @@
             if not bootimg_dir:
                 raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting")
 
-            cp_cmd = "cp %s/%s %s" % (bootimg_dir, initrd, hdddir)
-            exec_cmd(cp_cmd, True)
+            initrds = initrd.split(';')
+            for rd in initrds:
+                cp_cmd = "cp %s/%s %s" % (bootimg_dir, rd, hdddir)
+                exec_cmd(cp_cmd, True)
         else:
             logger.debug("Ignoring missing initrd")
 
@@ -84,7 +86,11 @@
                 % (kernel, label_conf, bootloader.append)
 
             if initrd:
-               grubefi_conf += "initrd /%s\n" % initrd
+                initrds = initrd.split(';')
+                grubefi_conf += "initrd"
+                for rd in initrds:
+                    grubefi_conf += " /%s" % rd
+                grubefi_conf += "\n"
 
             grubefi_conf += "}\n"
 
@@ -119,8 +125,10 @@
             if not bootimg_dir:
                 raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting")
 
-            cp_cmd = "cp %s/%s %s" % (bootimg_dir, initrd, hdddir)
-            exec_cmd(cp_cmd, True)
+            initrds = initrd.split(';')
+            for rd in initrds:
+                cp_cmd = "cp %s/%s %s" % (bootimg_dir, rd, hdddir)
+                exec_cmd(cp_cmd, True)
         else:
             logger.debug("Ignoring missing initrd")
 
@@ -164,7 +172,9 @@
                              (label_conf, bootloader.append)
 
             if initrd:
-                boot_conf += "initrd /%s\n" % initrd
+                initrds = initrd.split(';')
+                for rd in initrds:
+                    boot_conf += "initrd /%s\n" % rd
 
         logger.debug("Writing systemd-boot config "
                      "%s/hdd/boot/loader/entries/boot.conf", cr_workdir)