poky: thud refresh 87e3a9739d..1cab405d88

Update poky to thud HEAD.

Adrian Bunk (1):
      archiver.bbclass: Fix COPYLEFT_LICENSE_{IN, EX}CLUDE

Adrian Freihofer (2):
      systemd: fix PN-container package splitting
      devtool: fix target-deploy --strip

Alejandro Enedino Hernandez Samaniego (1):
      python: Adds instructions to the manifest file

Alexander Kanavin (3):
      meson: do not manipulate the environment when looking for python via pkg-config
      openssl: update to 1.1.1a
      libc-package: fix postinst error when ENABLE_BINARY_LOCALE_GENERATION = "0"

Alexey Brodkin (1):
      gdb: Remove long ago upstreamed patch

André Draszik (1):
      linux-firmware: better packaging for TI wl12xx & wl18xx firmwares

Anuj Mittal (13):
      maintainers.inc: update Intel owners
      gst-plugins-bad: add PACKAGECONFIG for msdk
      gstreamer1.0: upgrade 1.14.3 -> 1.14.4
      gstreamer1.0-plugins-base: upgrade 1.14.3 -> 1.14.4
      gstreamer1.0-plugins-good: upgrade 1.14.3 -> 1.14.4
      gstreamer1.0-plugins-bad: upgrade 1.14.3 -> 1.14.4
      gstreamer1.0-plugins-ugly: upgrade 1.14.3 -> 1.14.4
      gstreamer1.0-libav: upgrade 1.14.3 -> 1.14.4
      gstreamer1.0-vaapi: upgrade 1.14.3 -> 1.14.4
      gstreamer1.0-rtsp-server: upgrade 1.14.3 -> 1.14.4
      gstreamer1.0-omx: upgrade 1.14.3 -> 1.14.4
      gstreamer1.0-python: upgrade 1.14.3 -> 1.14.4
      gst-validate: upgrade 1.14.2 -> 1.14.4

Armin Kuster (1):
      gnutls: update to 3.6.4

Bruce Ashfield (13):
      linux-yocto: remove obselete options from lxc config
      linux-yocto/4.14: configuration cleanups
      linux-yocto/4.18: -rt sync and config cleanups
      linux-yocto/tiny: switch default branch to standard/tiny/base
      linux-yocto/tiny: restore qemuarm support
      linux-yocto/4.18: bug fixes and configuration tweaks
      linux-yocto/4.18: update to v4.18.17
      linux-yocto/4.14: update to v4.14.79
      linux-yocto/4.18: integrate CVE fixes
      linux-yocto/4.18: update to v4.18.20
      linux-yocto/4.18: update to v4.18.21
      linux-yocto: configuration updates (virtio and tpm)
      linux-yocto: correct qemumips64el definition

Carlos Rafael Giani (10):
      gstreamer1.0: upgrade to version 1.14.3
      gstreamer1.0-plugin-base: upgrade to version 1.14.3
      gstreamer1.0-plugin-good: upgrade to version 1.14.3
      gstreamer1.0-plugin-bad: upgrade to version 1.14.3
      gstreamer1.0-plugin-ugly: upgrade to version 1.14.3
      gstreamer1.0-libav: upgrade to version 1.14.3
      gstreamer1.0-rtsp-server: upgrade to version 1.14.3
      gstreamer1.0-vaapi: upgrade to version 1.14.3
      gstreamer1.0-omx: upgrade to version 1.14.3
      gstreamer1.0-python: upgrade to version 1.14.3

Changhyeok Bae (2):
      iproute2: 4.18.0 -> 4.19.0
      ethtool: 4.17 -> 4.19

Christophe PRIOUZEAU (1):
      openssl: correct bad path on package preprocess

Douglas Royds (4):
      boost-context: Reproducibility: Set .file section for all *_elf_gas.S files
      reproducible: Refactor: Break out fixed_source_date_epoch() function
      reproducible: Don't look for youngest file when no source tarball
      ptest: Reproducibility: Take control of umask

Eric Chanudet (1):
      licence: Add license file CC-BY-SA-4.0

Hongxu Jia (6):
      elfutils: 0.174 -> 0.175
      gnupg: upgrade 2.2.9 -> 2.2.10
      gnupg: upgrade 2.2.10 -> 2.2.11
      libgcrypt: upgrade 1.8.3 -> 1.8.4
      ghostscript: 9.25 -> 9.26
      go 1.9/1.11: fix textrel qa warning for non mips arch

Joshua Watt (3):
      meta/icecc.bbclass: Move system blacklist to variables
      meta/icecc.bbclass: Update system blacklists
      classes/icecc.bbclass: Fix ccache disable

Kai Kang (1):
      multilib_script: fix packages split

Khem Raj (3):
      valgrind: Skip vgpreload_memcheck shared object from stripping
      populate_sdk_ext.bbclass: Include site.conf in parsing for contents for local.conf
      local.conf.sample: Update the sample config as per new migration manual

Ming Liu (1):
      image.bbclass: fix a wrong position blank

Mingli Yu (2):
      mdadm: improve the run-ptest
      nspr: improve reproducibility

Niko Mauno (1):
      opkg-utils: Fix update-alternatives link relocation

Otavio Salvador (1):
      linux-firmware: Bump revision to 1baa348

Paul Eggleton (1):
      socat: fix LICENSE

Peter Kjellerstedt (3):
      meson: Correct use of the _append operator
      bitbake: bitbake-diffsigs: Merge with bitbake-dumpsig
      bitbake: bitbake-diffsigs: Support recursive deps with signature files

Richard Purdie (9):
      meson: Disable rpath stripping at install time
      scripts/runqemu: Fix logic error causing failures with MACHINE from the environment
      meta-selftest/error: Cleanup large trailing whitespace
      bitbake: server/process: Make lockfile handling clearer
      bitbake: server/process: Show the last 60 log lines, not the last 10
      bitbake: server/process: Show last 60 lines of the log if the server didn't start
      poky.conf: Update the distros we test against on the autobuilder
      poky: Update version to 2.6.1
      build-appliance-image: Update to thud head revision

Robert Yang (5):
      classes: Remove tab indentations in python code
      recipes: Remove tab indentations in python code
      bugzilla.bbclass: Remove it since obsoleted
      sstate.bbclass: Only remove sstate file when task is existed
      bitbake: server/process: print a message when no logfile

Ross Burton (12):
      cpio: fix crash when appending to archives
      image_types: use cpio-native to build cpio images
      libtasn1: no need to inherit binconfig
      binconfig: only try to mangles files
      piglit: add missing waffle-bin dependency
      ruby: upgrade 2.5.1 -> 2.5.3
      insane: Clarify GNU_HASH warning
      patchreview: Various fixes/improvements
      python3: don't cripple target distutils
      python3: drop redundant patch
      bitbake: layerindex: don't use shell=True when cloning
      bitbake: fetch: don't use shell=True when listing ar files

Zheng Ruoqin (2):
      nss: Fix SHA_HTONL bug for arm 32be.
      createrepo-c: Fix setup of logging (log domains)

Change-Id: I025dd27f44e57af38abff110ebc331e371bc461b
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/poky/meta/classes/archiver.bbclass b/poky/meta/classes/archiver.bbclass
index 0a9fe4f..e321a0e 100644
--- a/poky/meta/classes/archiver.bbclass
+++ b/poky/meta/classes/archiver.bbclass
@@ -23,9 +23,6 @@
 #    COPYLEFT_RECIPE_TYPES = 'target'
 #
 
-# Don't filter the license by default
-COPYLEFT_LICENSE_INCLUDE ?= ''
-COPYLEFT_LICENSE_EXCLUDE ?= ''
 # Create archive for all the recipe types
 COPYLEFT_RECIPE_TYPES ?= 'target native nativesdk cross crosssdk cross-canadian'
 inherit copyleft_filter
diff --git a/poky/meta/classes/binconfig.bbclass b/poky/meta/classes/binconfig.bbclass
index 39c3e2b..133b953 100644
--- a/poky/meta/classes/binconfig.bbclass
+++ b/poky/meta/classes/binconfig.bbclass
@@ -31,7 +31,7 @@
 PACKAGE_PREPROCESS_FUNCS += "binconfig_package_preprocess"
 
 binconfig_package_preprocess () {
-	for config in `find ${PKGD} -name '${BINCONFIG_GLOB}'`; do
+	for config in `find ${PKGD} -type f -name '${BINCONFIG_GLOB}'`; do
 		sed -i \
 		    -e 's:${STAGING_BASELIBDIR}:${base_libdir}:g;' \
 		    -e 's:${STAGING_LIBDIR}:${libdir}:g;' \
@@ -40,7 +40,7 @@
 		    -e 's:${STAGING_DIR_HOST}${prefix}:${prefix}:' \
                     $config
 	done
-	for lafile in `find ${PKGD} -name "*.la"` ; do
+	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;' \
@@ -54,7 +54,7 @@
 SYSROOT_PREPROCESS_FUNCS += "binconfig_sysroot_preprocess"
 
 binconfig_sysroot_preprocess () {
-	for config in `find ${S} -name '${BINCONFIG_GLOB}'` `find ${B} -name '${BINCONFIG_GLOB}'`; do
+	for config in `find ${S} -type f -name '${BINCONFIG_GLOB}'` `find ${B} -type f -name '${BINCONFIG_GLOB}'`; do
 		configname=`basename $config`
 		install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}
 		sed ${@get_binconfig_mangle(d)} $config > ${SYSROOT_DESTDIR}${bindir_crossscripts}/$configname
diff --git a/poky/meta/classes/bugzilla.bbclass b/poky/meta/classes/bugzilla.bbclass
deleted file mode 100644
index 8909c27..0000000
--- a/poky/meta/classes/bugzilla.bbclass
+++ /dev/null
@@ -1,187 +0,0 @@
-#
-# Small event handler to automatically open URLs and file
-# bug reports at a bugzilla of your choiche
-# it uses XML-RPC interface, so you must have it enabled
-#
-# Before using you must define BUGZILLA_USER, BUGZILLA_PASS credentials,
-# BUGZILLA_XMLRPC - uri of xmlrpc.cgi,
-# BUGZILLA_PRODUCT, BUGZILLA_COMPONENT - a place in BTS for build bugs
-# BUGZILLA_VERSION - version against which to report new bugs
-#
-
-def bugzilla_find_bug_report(debug_file, server, args, bugname):
-    args['summary'] = bugname
-    bugs = server.Bug.search(args)
-    if len(bugs['bugs']) == 0:
-        print >> debug_file, "Bugs not found"
-        return (False,None)
-    else: # silently pick the first result
-        print >> debug_file, "Result of bug search is "
-        print >> debug_file, bugs
-        status = bugs['bugs'][0]['status']
-        id = bugs['bugs'][0]['id']
-        return (not status in ["CLOSED", "RESOLVED", "VERIFIED"],id)
-
-def bugzilla_file_bug(debug_file, server, args, name, text, version):
-    args['summary'] = name
-    args['comment'] = text
-    args['version'] = version
-    args['op_sys'] = 'Linux'
-    args['platform'] = 'Other'
-    args['severity'] = 'normal'
-    args['priority'] = 'Normal'
-    try:
-        return server.Bug.create(args)['id']
-    except Exception, e:
-        print >> debug_file, repr(e)
-        return None
-
-def bugzilla_reopen_bug(debug_file, server, args, bug_number):
-    args['ids'] = [bug_number]
-    args['status'] = "CONFIRMED"
-    try:
-        server.Bug.update(args)
-        return True
-    except Exception, e:
-        print >> debug_file, repr(e)
-        return False
-
-def bugzilla_create_attachment(debug_file, server, args, bug_number, text, file_name, log, logdescription):
-    args['ids'] = [bug_number]
-    args['file_name'] = file_name
-    args['summary'] = logdescription
-    args['content_type'] = "text/plain"
-    args['data'] = log
-    args['comment'] = text
-    try:
-        server.Bug.add_attachment(args)
-        return True
-    except Exception, e:
-        print >> debug_file, repr(e)
-        return False
-
-def bugzilla_add_comment(debug_file, server, args, bug_number, text):
-    args['id'] = bug_number
-    args['comment'] = text
-    try:
-        server.Bug.add_comment(args)
-        return True
-    except Exception, e:
-        print >> debug_file, repr(e)
-        return False
-
-addhandler bugzilla_eventhandler
-bugzilla_eventhandler[eventmask] = "bb.event.MsgNote bb.build.TaskFailed"
-python bugzilla_eventhandler() {
-    import glob
-    import xmlrpclib, httplib
-
-    class ProxiedTransport(xmlrpclib.Transport):
-        def __init__(self, proxy, use_datetime = 0):
-            xmlrpclib.Transport.__init__(self, use_datetime)
-            self.proxy = proxy
-            self.user = None
-            self.password = None
-
-        def set_user(self, user):
-            self.user = user
-
-        def set_password(self, password):
-            self.password = password
-
-        def make_connection(self, host):
-            self.realhost = host
-            return httplib.HTTP(self.proxy)
-
-        def send_request(self, connection, handler, request_body):
-            connection.putrequest("POST", 'http://%s%s' % (self.realhost, handler))
-            if self.user != None:
-                if self.password != None:
-                    auth = "%s:%s" % (self.user, self.password)
-                else:
-                    auth = self.user
-                connection.putheader("Proxy-authorization", "Basic " + base64.encodestring(auth))
-
-    event = e
-    data = e.data
-    name = bb.event.getName(event)
-    if name == "MsgNote":
-        # avoid recursion
-        return
-
-    if name == "TaskFailed":
-        xmlrpc  = data.getVar("BUGZILLA_XMLRPC")
-        user    = data.getVar("BUGZILLA_USER")
-        passw   = data.getVar("BUGZILLA_PASS")
-        product = data.getVar("BUGZILLA_PRODUCT")
-        compon  = data.getVar("BUGZILLA_COMPONENT")
-        version = data.getVar("BUGZILLA_VERSION")
-
-        proxy   = data.getVar('http_proxy')
-        if (proxy):
-            import urllib2
-            s, u, p, hostport = urllib2._parse_proxy(proxy)
-            transport = ProxiedTransport(hostport)
-        else:
-            transport = None
-
-        server = xmlrpclib.ServerProxy(xmlrpc, transport=transport, verbose=0)
-        args = {
-            'Bugzilla_login': user,
-            'Bugzilla_password': passw,
-            'product': product,
-            'component': compon}
-
-        # evil hack to figure out what is going on
-        debug_file = open(os.path.join(data.getVar("TMPDIR"),"..","bugzilla-log"),"a")
-
-        file = None
-        bugname = "%(package)s-%(pv)s-autobuild" % { "package" : data.getVar("PN"),
-                                                           "pv"      : data.getVar("PV"),
-                                                           }
-        log_file = glob.glob("%s/log.%s.*" % (event.data.getVar('T'), event.task))
-        text     = "The %s step in %s failed at %s for machine %s" % (e.task, data.getVar("PN"), data.getVar('DATETIME'), data.getVar('MACHINE') )
-        if len(log_file) != 0:
-            print >> debug_file, "Adding log file %s" % log_file[0]
-            file = open(log_file[0], 'r')
-            log = file.read()
-            file.close();
-        else:
-            print >> debug_file, "No log file found for the glob"
-            log = None
-
-        (bug_open, bug_number) = bugzilla_find_bug_report(debug_file, server, args.copy(), bugname)
-        print >> debug_file, "Bug is open: %s and bug number: %s" % (bug_open, bug_number)
-
-        # The bug is present and still open, attach an error log
-        if not bug_number:
-            bug_number = bugzilla_file_bug(debug_file, server, args.copy(), bugname, text, version)
-            if not bug_number:
-                print >> debug_file, "Couldn't acquire a new bug_numer, filing a bugreport failed"
-            else:
-                print >> debug_file, "The new bug_number: '%s'" % bug_number
-        elif not bug_open:
-            if not bugzilla_reopen_bug(debug_file, server, args.copy(), bug_number):
-                print >> debug_file, "Failed to reopen the bug #%s" % bug_number
-            else:
-                print >> debug_file, "Reopened the bug #%s" % bug_number
-
-        if bug_number and log:
-            print >> debug_file, "The bug is known as '%s'" % bug_number
-            desc = "Build log for machine %s" % (data.getVar('MACHINE'))
-            if not bugzilla_create_attachment(debug_file, server, args.copy(), bug_number, text, log_file[0], log, desc):
-                 print >> debug_file, "Failed to attach the build log for bug #%s" % bug_number
-            else:
-                 print >> debug_file, "Created an attachment for '%s' '%s' '%s'" % (product, compon, bug_number)
-        else:
-            print >> debug_file, "Not trying to create an attachment for bug #%s" % bug_number
-            if not bugzilla_add_comment(debug_file, server, args.copy(), bug_number, text, ):
-                 print >> debug_file, "Failed to create a comment the build log for bug #%s" % bug_number
-            else:
-                 print >> debug_file, "Created an attachment for '%s' '%s' '%s'" % (product, compon, bug_number)
-
-        # store bug number for oestats-client
-        if bug_number:
-            data.setVar('OESTATS_BUG_NUMBER', bug_number)
-}
-
diff --git a/poky/meta/classes/crosssdk.bbclass b/poky/meta/classes/crosssdk.bbclass
index 03b0c60..fdaaac8 100644
--- a/poky/meta/classes/crosssdk.bbclass
+++ b/poky/meta/classes/crosssdk.bbclass
@@ -4,8 +4,8 @@
 MACHINEOVERRIDES = ""
 PACKAGE_ARCH = "${SDK_ARCH}"
 python () {
-	# set TUNE_PKGARCH to SDK_ARCH
-	d.setVar('TUNE_PKGARCH', d.getVar('SDK_ARCH'))
+    # set TUNE_PKGARCH to SDK_ARCH
+    d.setVar('TUNE_PKGARCH', d.getVar('SDK_ARCH'))
 }
 
 STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
diff --git a/poky/meta/classes/icecc.bbclass b/poky/meta/classes/icecc.bbclass
index b5a8457..2b18923 100644
--- a/poky/meta/classes/icecc.bbclass
+++ b/poky/meta/classes/icecc.bbclass
@@ -33,7 +33,7 @@
     ICECC_CARET_WORKAROUND ICECC_CFLAGS ICECC_ENV_VERSION \
     ICECC_DEBUG ICECC_LOGFILE ICECC_REPEAT_RATE ICECC_PREFERRED_HOST \
     ICECC_CLANG_REMOTE_CPP ICECC_IGNORE_UNVERIFIED ICECC_TEST_SOCKET \
-    ICECC_ENV_DEBUG \
+    ICECC_ENV_DEBUG ICECC_SYSTEM_PACKAGE_BL ICECC_SYSTEM_CLASS_BL \
     "
 
 ICECC_ENV_EXEC ?= "${STAGING_BINDIR_NATIVE}/icecc-create-env"
@@ -61,6 +61,31 @@
 # Debug flags when generating environments
 ICECC_ENV_DEBUG ??= ""
 
+# "system" recipe blacklist contains a list of packages that can not distribute
+# compile tasks for one reason or the other. When adding new entry, please
+# document why (how it failed) so that we can re-evaluate it later e.g. when
+# there is new version
+#
+# libgcc-initial - fails with CPP sanity check error if host sysroot contains
+#                  cross gcc built for another target tune/variant
+# target-sdk-provides-dummy - ${HOST_PREFIX} is empty which triggers the "NULL
+#                             prefix" error.
+ICECC_SYSTEM_PACKAGE_BL += "\
+    libgcc-initial \
+    target-sdk-provides-dummy \
+    "
+
+# "system" classes that should be blacklisted. When adding new entry, please
+# document why (how it failed) so that we can re-evaluate it later
+#
+# image - Image aren't compiling, but the testing framework for images captures
+#         PARALLEL_MAKE as part of the test environment. Many tests won't use
+#         icecream, but leaving the high level of parallelism can cause them to
+#         consume an unnecessary amount of resources.
+ICECC_SYSTEM_CLASS_BL += "\
+    image \
+    "
+
 def icecc_dep_prepend(d):
     # INHIBIT_DEFAULT_DEPS doesn't apply to the patch command.  Whether or  not
     # we need that built is the responsibility of the patch function / class, not
@@ -134,7 +159,7 @@
 
     pn = d.getVar('PN')
 
-    system_class_blacklist = []
+    system_class_blacklist = (d.getVar('ICECC_SYSTEM_CLASS_BL') or "").split()
     user_class_blacklist = (d.getVar('ICECC_USER_CLASS_BL') or "none").split()
     package_class_blacklist = system_class_blacklist + user_class_blacklist
 
@@ -143,15 +168,7 @@
             bb.debug(1, "%s: class %s found in blacklist, disable icecc" % (pn, black))
             return "no"
 
-    # "system" recipe blacklist contains a list of packages that can not distribute compile tasks
-    # for one reason or the other
-    # this is the old list (which doesn't seem to be valid anymore, because I was able to build
-    # all these with icecc enabled)
-    # system_package_blacklist = [ "glibc", "gcc", "bind", "u-boot", "dhcp-forwarder", "enchant", "connman", "orbit2" ]
-    # when adding new entry, please document why (how it failed) so that we can re-evaluate it later
-    # e.g. when there is new version
-    # building libgcc-initial with icecc fails with CPP sanity check error if host sysroot contains cross gcc built for another target tune/variant
-    system_package_blacklist = ["libgcc-initial"]
+    system_package_blacklist = (d.getVar('ICECC_SYSTEM_PACKAGE_BL') or "").split()
     user_package_blacklist = (d.getVar('ICECC_USER_PACKAGE_BL') or "").split()
     user_package_whitelist = (d.getVar('ICECC_USER_PACKAGE_WL') or "").split()
     package_blacklist = system_package_blacklist + user_package_blacklist
@@ -381,7 +398,7 @@
     # Don't let ccache find the icecream compiler links that have been created, otherwise
     # it can end up invoking icecream recursively.
     export CCACHE_PATH="$PATH"
-    export CCACHE_DISBALE="1"
+    export CCACHE_DISABLE="1"
 
     export ICECC_VERSION ICECC_CC ICECC_CXX
     export PATH="$ICE_PATH:$PATH"
diff --git a/poky/meta/classes/image.bbclass b/poky/meta/classes/image.bbclass
index 452b1ad..2ff574b 100644
--- a/poky/meta/classes/image.bbclass
+++ b/poky/meta/classes/image.bbclass
@@ -497,7 +497,7 @@
         d.setVarFlag(task, 'fakeroot', '1')
 
         d.appendVarFlag(task, 'prefuncs', ' ' + debug + ' set_image_size')
-        d.prependVarFlag(task, 'postfuncs', ' create_symlinks')
+        d.prependVarFlag(task, 'postfuncs', 'create_symlinks ')
         d.appendVarFlag(task, 'subimages', ' ' + ' '.join(subimages))
         d.appendVarFlag(task, 'vardeps', ' ' + ' '.join(vardeps))
         d.appendVarFlag(task, 'vardepsexclude', 'DATETIME DATE ' + ' '.join(vardepsexclude))
diff --git a/poky/meta/classes/image_types.bbclass b/poky/meta/classes/image_types.bbclass
index 05e5b0a..0a69542 100644
--- a/poky/meta/classes/image_types.bbclass
+++ b/poky/meta/classes/image_types.bbclass
@@ -239,6 +239,7 @@
 EXTRA_IMAGECMD_btrfs ?= "-n 4096"
 EXTRA_IMAGECMD_f2fs ?= ""
 
+do_image_cpio[depends] += "cpio-native:do_populate_sysroot"
 do_image_jffs2[depends] += "mtd-utils-native:do_populate_sysroot"
 do_image_cramfs[depends] += "util-linux-native:do_populate_sysroot"
 do_image_ext2[depends] += "e2fsprogs-native:do_populate_sysroot"
diff --git a/poky/meta/classes/insane.bbclass b/poky/meta/classes/insane.bbclass
index 4644221..6718feb 100644
--- a/poky/meta/classes/insane.bbclass
+++ b/poky/meta/classes/insane.bbclass
@@ -383,7 +383,7 @@
             sane = True
 
     if has_syms and not sane:
-        package_qa_add_message(messages, "ldflags", "No GNU_HASH in the elf binary: '%s'" % path)
+        package_qa_add_message(messages, "ldflags", "No GNU_HASH in the ELF binary %s, didn't pass LDFLAGS?" % path)
 
 
 QAPATHTEST[buildpaths] = "package_qa_check_buildpaths"
diff --git a/poky/meta/classes/libc-package.bbclass b/poky/meta/classes/libc-package.bbclass
index 9d09c7b..345ec29 100644
--- a/poky/meta/classes/libc-package.bbclass
+++ b/poky/meta/classes/libc-package.bbclass
@@ -49,13 +49,7 @@
 
 OVERRIDES_append = ":${TARGET_ARCH}-${TARGET_OS}"
 
-locale_base_postinst() {
-#!/bin/sh
-
-if [ "x$D" != "x" ]; then
-	exit 1
-fi
-
+locale_base_postinst_ontarget() {
 localedef --inputfile=${datadir}/i18n/locales/%s --charmap=%s %s
 }
 
@@ -215,7 +209,7 @@
     def output_locale_source(name, pkgname, locale, encoding):
         d.setVar('RDEPENDS_%s' % pkgname, '%slocaledef %s-localedata-%s %s-charmap-%s' % \
         (mlprefix, mlprefix+bpn, legitimize_package_name(locale), mlprefix+bpn, legitimize_package_name(encoding)))
-        d.setVar('pkg_postinst_%s' % pkgname, d.getVar('locale_base_postinst') \
+        d.setVar('pkg_postinst_ontarget_%s' % pkgname, d.getVar('locale_base_postinst_ontarget') \
         % (locale, encoding, locale))
         d.setVar('pkg_postrm_%s' % pkgname, d.getVar('locale_base_postrm') % \
         (locale, encoding, locale))
diff --git a/poky/meta/classes/license.bbclass b/poky/meta/classes/license.bbclass
index 4cf7f07..aec6999 100644
--- a/poky/meta/classes/license.bbclass
+++ b/poky/meta/classes/license.bbclass
@@ -309,7 +309,7 @@
     except oe.license.LicenseError as exc:
         bb.fatal('%s: %s' % (d.getVar('P'), exc))
     return any(not oe.license.license_ok(canonical_license(d, l), \
-		dont_want_licenses) for l in licenses)
+               dont_want_licenses) for l in licenses)
 
 def check_license_flags(d):
     """
diff --git a/poky/meta/classes/linux-kernel-base.bbclass b/poky/meta/classes/linux-kernel-base.bbclass
index 89ce716..ba59222 100644
--- a/poky/meta/classes/linux-kernel-base.bbclass
+++ b/poky/meta/classes/linux-kernel-base.bbclass
@@ -34,8 +34,8 @@
         return None
 
 def linux_module_packages(s, d):
-	suffix = ""
-	return " ".join(map(lambda s: "kernel-module-%s%s" % (s.lower().replace('_', '-').replace('@', '+'), suffix), s.split()))
+    suffix = ""
+    return " ".join(map(lambda s: "kernel-module-%s%s" % (s.lower().replace('_', '-').replace('@', '+'), suffix), s.split()))
 
 # that's all
 
diff --git a/poky/meta/classes/multilib_script.bbclass b/poky/meta/classes/multilib_script.bbclass
index 51c9fcc..dc166d0 100644
--- a/poky/meta/classes/multilib_script.bbclass
+++ b/poky/meta/classes/multilib_script.bbclass
@@ -24,9 +24,11 @@
 
     for entry in (d.getVar("MULTILIB_SCRIPTS", False) or "").split():
        pkg, script = entry.split(":")
+       epkg = d.expand(pkg)
        scriptname = os.path.basename(script)
-       d.appendVar("ALTERNATIVE_" + pkg, scriptname + " ")
+       d.appendVar("ALTERNATIVE_" + epkg, " " + scriptname + " ")
        d.setVarFlag("ALTERNATIVE_LINK_NAME", scriptname, script)
        d.setVarFlag("ALTERNATIVE_TARGET", scriptname, script + "-${MULTILIB_SUFFIX}")
        d.appendVar("multilibscript_rename",  "\n	mv ${PKGD}" + script + " ${PKGD}" + script + "-${MULTILIB_SUFFIX}")
+       d.appendVar("FILES_" + epkg, " " + script + "-${MULTILIB_SUFFIX}")
 }
diff --git a/poky/meta/classes/populate_sdk_ext.bbclass b/poky/meta/classes/populate_sdk_ext.bbclass
index e30c492..40b0375 100644
--- a/poky/meta/classes/populate_sdk_ext.bbclass
+++ b/poky/meta/classes/populate_sdk_ext.bbclass
@@ -280,6 +280,8 @@
 
     # Create local.conf
     builddir = d.getVar('TOPDIR')
+    if derivative and os.path.exists(builddir + '/conf/site.conf'):
+        shutil.copyfile(builddir + '/conf/site.conf', baseoutpath + '/conf/site.conf')
     if derivative and os.path.exists(builddir + '/conf/auto.conf'):
         shutil.copyfile(builddir + '/conf/auto.conf', baseoutpath + '/conf/auto.conf')
     if derivative:
@@ -297,6 +299,9 @@
                 return origvalue, op, 0, True
         varlist = ['[^#=+ ]*']
         oldlines = []
+        if os.path.exists(builddir + '/conf/site.conf'):
+            with open(builddir + '/conf/site.conf', 'r') as f:
+                oldlines += f.readlines()
         if os.path.exists(builddir + '/conf/auto.conf'):
             with open(builddir + '/conf/auto.conf', 'r') as f:
                 oldlines += f.readlines()
diff --git a/poky/meta/classes/ptest.bbclass b/poky/meta/classes/ptest.bbclass
index c19f65b..9d8a798 100644
--- a/poky/meta/classes/ptest.bbclass
+++ b/poky/meta/classes/ptest.bbclass
@@ -59,6 +59,7 @@
 python () {
     if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
         d.setVarFlag('do_install_ptest_base', 'fakeroot', '1')
+        d.setVarFlag('do_install_ptest_base', 'umask', '022')
 
     # Remove all '*ptest_base' tasks when ptest is not enabled
     if not(d.getVar('PTEST_ENABLED') == "1"):
diff --git a/poky/meta/classes/reproducible_build.bbclass b/poky/meta/classes/reproducible_build.bbclass
index 0eb696a..8788ad7 100644
--- a/poky/meta/classes/reproducible_build.bbclass
+++ b/poky/meta/classes/reproducible_build.bbclass
@@ -22,7 +22,10 @@
 # 3. Use the mtime of "known" files such as NEWS, CHANGLELOG, ...
 #    This works for well-kept repositories distributed via tarball.
 #
-# 4. If the above steps fail, use the modification time of the youngest file in the source tree.
+# 4. Use the modification time of the youngest file in the source tree, if there is one.
+#    This will be the newest file from the distribution tarball, if any.
+#
+# 5. Fall back to a fixed timestamp.
 #
 # Once the value of SOURCE_DATE_EPOCH is determined, it is stored in the recipe's SDE_FILE.
 # If none of these mechanisms are suitable, replace the do_deploy_source_date_epoch task
@@ -104,15 +107,15 @@
     return source_date_epoch
 
 def get_source_date_epoch_from_youngest_file(d, sourcedir):
+    if sourcedir == d.getVar('WORKDIR'):
+       # These sources are almost certainly not from a tarball
+       return None
+
     # Do it the hard way: check all files and find the youngest one...
     source_date_epoch = None
     newest_file = None
-    # Just in case S = WORKDIR
-    exclude = set(["build", "image", "license-destdir", "patches", "pseudo",
-                   "recipe-sysroot", "recipe-sysroot-native", "sysroot-destdir", "temp"])
     for root, dirs, files in os.walk(sourcedir, topdown=True):
         files = [f for f in files if not f[0] == '.']
-        dirs[:] = [d for d in dirs if d not in exclude]
 
         for fname in files:
             filename = os.path.join(root, fname)
@@ -128,6 +131,10 @@
         bb.debug(1, "Newest file found: %s" % newest_file)
     return source_date_epoch
 
+def fixed_source_date_epoch():
+    bb.debug(1, "No tarball or git repo found to determine SOURCE_DATE_EPOCH")
+    return 0
+
 python do_create_source_date_epoch_stamp() {
     epochfile = d.getVar('SDE_FILE')
     if os.path.isfile(epochfile):
@@ -139,11 +146,8 @@
         get_source_date_epoch_from_git(d, sourcedir) or
         get_source_date_epoch_from_known_files(d, sourcedir) or
         get_source_date_epoch_from_youngest_file(d, sourcedir) or
-        0       # Last resort
+        fixed_source_date_epoch()       # Last resort
     )
-    if source_date_epoch == 0:
-        # empty folder, not a single file ...
-        bb.debug(1, "No files found to determine SOURCE_DATE_EPOCH")
 
     bb.debug(1, "SOURCE_DATE_EPOCH: %d" % source_date_epoch)
     bb.utils.mkdirhier(d.getVar('SDE_DIR'))
diff --git a/poky/meta/classes/siteconfig.bbclass b/poky/meta/classes/siteconfig.bbclass
index bb491d2..0cfa5a6 100644
--- a/poky/meta/classes/siteconfig.bbclass
+++ b/poky/meta/classes/siteconfig.bbclass
@@ -1,13 +1,13 @@
 python siteconfig_do_siteconfig () {
-	shared_state = sstate_state_fromvars(d)
-	if shared_state['task'] != 'populate_sysroot':
-		return
-	if not os.path.isdir(os.path.join(d.getVar('FILE_DIRNAME'), 'site_config')):
-		bb.debug(1, "No site_config directory, skipping do_siteconfig")
-		return
-	sstate_install(shared_state, d)
-	bb.build.exec_func('do_siteconfig_gencache', d)
-	sstate_clean(shared_state, d)
+    shared_state = sstate_state_fromvars(d)
+    if shared_state['task'] != 'populate_sysroot':
+        return
+    if not os.path.isdir(os.path.join(d.getVar('FILE_DIRNAME'), 'site_config')):
+        bb.debug(1, "No site_config directory, skipping do_siteconfig")
+        return
+    sstate_install(shared_state, d)
+    bb.build.exec_func('do_siteconfig_gencache', d)
+    sstate_clean(shared_state, d)
 }
 
 EXTRASITECONFIG ?= ""
diff --git a/poky/meta/classes/sstate.bbclass b/poky/meta/classes/sstate.bbclass
index efb0096..9f059a0 100644
--- a/poky/meta/classes/sstate.bbclass
+++ b/poky/meta/classes/sstate.bbclass
@@ -423,8 +423,9 @@
     import oe.path
 
     sstatepkgfile = d.getVar('SSTATE_PATHSPEC') + "*_" + ss['task'] + ".tgz*"
-    bb.note("Removing %s" % sstatepkgfile)
-    oe.path.remove(sstatepkgfile)
+    if d.getVarFlag('do_%s' % ss['task'], 'task'):
+        bb.note("Removing %s" % sstatepkgfile)
+        oe.path.remove(sstatepkgfile)
 
 def sstate_clean_cachefiles(d):
     for task in (d.getVar('SSTATETASKS') or "").split():