poky: subtree update:f468a73523..a35bf0e5d3

Adrian Bunk (3):
      apt: Remove workarounds for host gcc < 5
      apt: The C.UTF-8 locale is not portable
      gcc: Remove mudflap remnants

Alexander Kanavin (5):
      devtool: do not write md5sums into upgraded recipes
      testresults.json: add duration of the tests as well
      bitbake.conf: propagate 'opengl' DISTRO_FEATURE to native/nativesdk from target
      libsdl2: enable opengl option for native/nativesdk, subject to 'opengl' in DISTRO_FEATURES
      qemu: enable virglrenderer and glx options subject to 'opengl' DISTRO_FEATURE

Anuj Mittal (3):
      mtools: upgrade 4.0.23 -> 4.0.24
      gsettings-desktop-schemas: upgrade 3.36.0 -> 3.36.1
      libsoup-2.4: upgrade 2.68.4 -> 2.70.0

Aníbal Limón (3):
      recipes-kernel/linux-firmware: Add wlanmdsp.mbn to qcom-modem package
      recipes-kernel/linux-firmware: Add adreno-a630 firmware package
      linux-firmware: Update to 20200122 -> 20200421

Bruce Ashfield (3):
      linux-yocto/5.4: update to v5.4.38
      linux-yocto/5.4: update to v5.4.40
      kernel/reproducibility: kernel modules need SOURCE_DATE_EPOCH export

Daniel Díaz (1):
      ltp: Add net-tools as rdependency

Denys Dmytriyenko (1):
      xz: upgrade 5.2.4 -> 5.2.5

Diego (2):
      image_types: declare support for wic.zst
      bmap-tools: update development snapshot revision

Gregor Zatko (1):
      sanity.bbclass: Detect and fail if 'inherit' is used in conf file

Jacob Kroon (2):
      squashfs-tools: Backport fix for compiling with gcc 10
      bitbake: doc: Clarify how task dependencies relate to RDEPENDS

Jan-Simon Moeller (1):
      file: add bzip2-replacement-native to DEPENDS to fix sstate issue

Joe Slater (2):
      acpica: Upgrade 20200214 -> 20200430 for gcc-10 fixes
      terminal.py: do not stop searching for auto

Joshua Watt (7):
      pycryptodome: Import from meta-python
      pyelftools: Import from meta-python
      python3-pycryptodome(x): Upgrade 3.9.4 -> 3.9.7
      python3-pyelftools: Upgrade 0.25 -> 0.26
      diffoscope: upgrade 143 -> 144
      python3-magic: upgrade 0.4.15 -> 0.4.18
      checklayer: Skip layers without a collection

Kai Kang (3):
      gcr: depends on gnupg-native
      libsecret: add meson option introspection
      Revert "webkitgtk, pinentry: require gobject-introspection-data in DISTRO_FEATURES when libsecret PACKAGECONFIG is enabled"

Khem Raj (20):
      tune-cortexa55.inc: crc and crypto extentions are default on cortex-a55
      tune-cortexa57.inc: Add new tune file
      gcc: Do not set -march for arm64 for libatomic
      aarch64: Adjust big.LITTLE tune files to use -mcpu
      armv8/tunes: Define TUNE_PKGARCH
      valgrind: Do not use outline-atomics on aarch64
      gcc: Drop reverting __getauxval patch
      qemuarm64.conf: Use cortext-a57 as default tune
      glibc: Unify wordsize.h for arm and aarch64
      glibc: Do not synthesize wordsize.h for arm multilibs
      multilib_header_wrapper.h: Remove pragma once
      multilib_header: Fall back to worsize form libc for bpf target
      multilib_header_wrapper: Drop using __MHWORDSIZE
      syslinux: Fix build with gcc10
      valgrind: Backport upstream patch to fix __getauxval needs
      re2c: Upgrade to 1.3
      libxcrypt: Upgrade to 4.4.16
      ltp: Fix format security warnings with gcc10
      musl: Update to tip of master
      cve-check: Run it after do_fetch

Konrad Weihmann (1):
      lib/oe/recipeutils.py: passthrough of FETCHCMD

Lee Chee Yang (1):
      qemu: fix CVE-2020-11869

Li Wang (1):
      linux-modules.tgz: fix file permissions to root

Marek Vasut (1):
      libubootenv: Depend on zlib

Martin Jansa (2):
      libsecret: inherit features_check
      webkitgtk, pinentry: require gobject-introspection-data in DISTRO_FEATURES when libsecret PACKAGECONFIG is enabled

Michael Ho (6):
      package_rpm.bbclass: respect package overrides for the main package
      package.bbclass: add PACKAGE_ADD_METADATA to sstate variables
      package_ipk.bbclass: add PACKAGE_ADD_METADATA_IPK to sstate variables
      package_deb.bbclass: add PACKAGE_ADD_METADATA_DEB to sstate variables
      package_rpm.bbclass: add PACKAGE_ADD_METADATA_RPM to sstate variables
      ref-manual: add PACKAGE_ADD_METADATA documentation

Ming Liu (1):
      at-spi2-atk: dont inherit features_check

Mingli Yu (2):
      bison: fix the parallel build
      python3-setuptools: add the missing rdepends

Naveen Saini (2):
      libva: upgrade 2.6.1 -> 2.7.1
      libva-utils: upgrade 2.6.0 -> 2.7.1

Otavio Salvador (4):
      go-mod.bbclass: Add class for `go mod` support
      glide: Avoid use of 'go mod' support
      go-dep: Avoid use of 'go mod' support
      go.bbclass: Add `-trimpath` to default build flags

Ovidiu Panait (4):
      lttng-modules: upgrade to 2.12.0
      lttng-ust: upgrade to 2.12.0
      lttng-modules: Fix "LTTng: vmalloc_sync_all symbol lookup failed" warnings
      lttng-tools: upgrade to 2.12.0

Paul Barker (2):
      archiver.bbclass: Make do_deploy_archives a recursive dependency
      avahi: Don't advertise example services by default

Petr Vorel (1):
      ltp: Update to 20200515

Quentin Schulz (2):
      base/insane: Check pkgs lics are subset of recipe lics only once
      ref-manual: document new unlisted-pkg-lics insane-skip qa check

Ricardo Ribalda (1):
      classes/image_types_wic: Reorder do_flush_pseudodb

Richard Purdie (10):
      ghostscript: Remove leftover file
      layer.conf: Move to gatesgarth naming
      meta-poky/meta-yocto-bsp layer.conf: Move to depend on gatesgarth release codename
      ltp: Add missing dependencies on coreutils, bc, e2fsprogs and gdb
      resulttool/report: Remove leftover debugging
      resulttool/log: Add ability to dump ltp logs as well as ptest
      ltp: Exclude the memcg_stress tests due to timeout problems
      bitbake: event/ast: Add RecipePostKeyExpansion event
      multilib/recipes: Use new RecipePostKeyExpansion event
      poky.conf: Add Fedora 32, remove Ubuntu 19.04 and poky-2.7

Robert P. J. Day (3):
      common-licenses: add "Unlicense" license file
      ref-manual: delete long-unused comments in variable glossary
      bitbake: user manual: properly tag content as <replaceable>

Robert Yang (1):
      archiver.bbclass: Fix duplicated SRC_URIs for do_ar_original

Steve Sakoman (2):
      oeqa/concurrencytest: don't delete build directory for failed tests
      poky: Add Ubuntu 20.04 as a supported distro

Vyacheslav Yurkov (1):
      bitbake: fetch2/cvs: Fix CVS fetcher clean method

Wang Mingyu (6):
      freetype: upgrade 2.10.1 -> 2.10.2
      watchdog: upgrade 5.15 -> 5.16
      gnu-efi: upgrade 3.0.11 -> 3.0.12
      boost: upgrade 1.72.0 -> 1.73.0
      iso-codes: upgrade 4.4 -> 4.5.0
      iproute2: upgrade 5.5.0 -> 5.6.0

zhengruoqin (3):
      make-mod-scripts: Fix dependence error.
      ruby: upgrade 2.7.0 -> 2.7.1
      sysstat: upgrade 12.2.1 -> 12.2.2

Change-Id: I47d6a587b6f57ffd2da338f45cee51dfba471365
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/poky/meta/classes/archiver.bbclass b/poky/meta/classes/archiver.bbclass
index 48b4913..780c562 100644
--- a/poky/meta/classes/archiver.bbclass
+++ b/poky/meta/classes/archiver.bbclass
@@ -193,7 +193,13 @@
                 del decoded[5][param]
         encoded = bb.fetch2.encodeurl(decoded)
         urls[i] = encoded
-    fetch = bb.fetch2.Fetch(urls, d)
+
+    # Cleanup SRC_URI before call bb.fetch2.Fetch() since now SRC_URI is in the
+    # variable "urls", otherwise there might be errors like:
+    # The SRCREV_FORMAT variable must be set when multiple SCMs are used
+    ld = bb.data.createCopy(d)
+    ld.setVar('SRC_URI', '')
+    fetch = bb.fetch2.Fetch(urls, ld)
     tarball_suffix = {}
     for url in fetch.urls:
         local = fetch.localpath(url).rstrip("/");
@@ -583,7 +589,9 @@
 addtask do_ar_mirror after do_fetch
 addtask do_dumpdata
 addtask do_ar_recipe
-addtask do_deploy_archives before do_build
+addtask do_deploy_archives
+do_build[recrdeptask] += "do_deploy_archives"
+do_populate_sdk[recrdeptask] += "do_deploy_archives"
 
 python () {
     # Add tasks in the correct order, specifically for linux-yocto to avoid race condition.
diff --git a/poky/meta/classes/base.bbclass b/poky/meta/classes/base.bbclass
index 45f9435..4c681cc 100644
--- a/poky/meta/classes/base.bbclass
+++ b/poky/meta/classes/base.bbclass
@@ -570,8 +570,7 @@
                 if unskipped_pkgs:
                     for pkg in skipped_pkgs:
                         bb.debug(1, "Skipping the package %s at do_rootfs because of incompatible license(s): %s" % (pkg, ' '.join(skipped_pkgs[pkg])))
-                        mlprefix = d.getVar('MLPREFIX')
-                        d.setVar('LICENSE_EXCLUSION-' + mlprefix + pkg, ' '.join(skipped_pkgs[pkg]))
+                        d.setVar('LICENSE_EXCLUSION-' + pkg, ' '.join(skipped_pkgs[pkg]))
                     for pkg in unskipped_pkgs:
                         bb.debug(1, "Including the package %s" % pkg)
                 else:
@@ -584,19 +583,6 @@
                         bb.debug(1, "Skipping recipe %s because of incompatible license(s): %s" % (pn, ' '.join(incompatible_lic)))
                         raise bb.parse.SkipRecipe("it has incompatible license(s): %s" % ' '.join(incompatible_lic))
 
-        # Try to verify per-package (LICENSE_<pkg>) values. LICENSE should be a
-        # superset of all per-package licenses. We do not do advanced (pattern)
-        # matching of license expressions - just check that all license strings
-        # in LICENSE_<pkg> are found in LICENSE.
-        license_set = oe.license.list_licenses(license)
-        for pkg in d.getVar('PACKAGES').split():
-            pkg_license = d.getVar('LICENSE_' + pkg)
-            if pkg_license:
-                unlisted = oe.license.list_licenses(pkg_license) - license_set
-                if unlisted:
-                    bb.warn("LICENSE_%s includes licenses (%s) that are not "
-                            "listed in LICENSE" % (pkg, ' '.join(unlisted)))
-
     needsrcrev = False
     srcuri = d.getVar('SRC_URI')
     for uri in srcuri.split():
diff --git a/poky/meta/classes/cve-check.bbclass b/poky/meta/classes/cve-check.bbclass
index 2a530a0..556ac6e 100644
--- a/poky/meta/classes/cve-check.bbclass
+++ b/poky/meta/classes/cve-check.bbclass
@@ -65,7 +65,7 @@
 
 }
 
-addtask cve_check before do_build
+addtask cve_check before do_build after do_fetch
 do_cve_check[depends] = "cve-update-db-native:do_populate_cve_db"
 do_cve_check[nostamp] = "1"
 
diff --git a/poky/meta/classes/fontcache.bbclass b/poky/meta/classes/fontcache.bbclass
index 97e7f17..624a420 100644
--- a/poky/meta/classes/fontcache.bbclass
+++ b/poky/meta/classes/fontcache.bbclass
@@ -7,7 +7,7 @@
 inherit qemu
 
 FONT_PACKAGES ??= "${PN}"
-FONT_EXTRA_RDEPENDS ?= "fontconfig-utils"
+FONT_EXTRA_RDEPENDS ?= "${MLPREFIX}fontconfig-utils"
 FONTCONFIG_CACHE_DIR ?= "${localstatedir}/cache/fontconfig"
 FONTCONFIG_CACHE_PARAMS ?= "-v"
 # You can change this to e.g. FC_DEBUG=16 to debug fc-cache issues,
diff --git a/poky/meta/classes/go-mod.bbclass b/poky/meta/classes/go-mod.bbclass
new file mode 100644
index 0000000..5871d02
--- /dev/null
+++ b/poky/meta/classes/go-mod.bbclass
@@ -0,0 +1,20 @@
+# Handle Go Modules support
+#
+# When using Go Modules, the the current working directory MUST be at or below
+# the location of the 'go.mod' file when the go tool is used, and there is no
+# way to tell it to look elsewhere.  It will automatically look upwards for the
+# file, but not downwards.
+#
+# To support this use case, we provide the `GO_WORKDIR` variable, which defaults
+# to `GO_IMPORT` but allows for easy override.
+#
+# Copyright 2020 (C) O.S. Systems Software LTDA.
+
+# The '-modcacherw' option ensures we have write access to the cached objects so
+# we avoid errors during clean task as well as when removing the TMPDIR.
+export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS} -modcacherw"
+
+inherit go
+
+GO_WORKDIR ?= "${GO_IMPORT}"
+do_compile[dirs] += "${B}/src/${GO_WORKDIR}"
diff --git a/poky/meta/classes/go.bbclass b/poky/meta/classes/go.bbclass
index c99689a..a9e31b5 100644
--- a/poky/meta/classes/go.bbclass
+++ b/poky/meta/classes/go.bbclass
@@ -41,7 +41,7 @@
 GO_LINKMODE ?= ""
 GO_LINKMODE_class-nativesdk = "--linkmode=external"
 GO_LDFLAGS ?= '-ldflags="${GO_RPATH} ${GO_LINKMODE} -extldflags '${GO_EXTLDFLAGS}'"'
-export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS}"
+export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS} -trimpath"
 export GOPATH_OMIT_IN_ACTIONID ?= "1"
 export GOPTESTBUILDFLAGS ?= "${GOBUILDFLAGS} -c"
 export GOPTESTFLAGS ?= ""
diff --git a/poky/meta/classes/image_types.bbclass b/poky/meta/classes/image_types.bbclass
index f82f1d8..ab05cc9 100644
--- a/poky/meta/classes/image_types.bbclass
+++ b/poky/meta/classes/image_types.bbclass
@@ -273,7 +273,7 @@
     ubi ubifs multiubi \
     tar tar.gz tar.bz2 tar.xz tar.lz4 tar.zst \
     cpio cpio.gz cpio.xz cpio.lzma cpio.lz4 \
-    wic wic.gz wic.bz2 wic.lzma \
+    wic wic.gz wic.bz2 wic.lzma wic.zst \
     container \
     f2fs \
 "
diff --git a/poky/meta/classes/image_types_wic.bbclass b/poky/meta/classes/image_types_wic.bbclass
index 96ed047..7b1db50 100644
--- a/poky/meta/classes/image_types_wic.bbclass
+++ b/poky/meta/classes/image_types_wic.bbclass
@@ -142,7 +142,7 @@
     depdir = d.getVar('IMGDEPLOYDIR')
     bb.utils.copyfile(os.path.join(outdir, basename) + '.env', os.path.join(depdir, basename) + '.env')
 }
-addtask do_flush_pseudodb after do_image before do_image_wic
+addtask do_flush_pseudodb after do_rootfs before do_image do_image_qa
 addtask do_rootfs_wicenv after do_image before do_image_wic
 do_rootfs_wicenv[vardeps] += "${WICVARS}"
 do_rootfs_wicenv[prefuncs] = 'set_image_size'
diff --git a/poky/meta/classes/insane.bbclass b/poky/meta/classes/insane.bbclass
index 8b19f44..b7c6138 100644
--- a/poky/meta/classes/insane.bbclass
+++ b/poky/meta/classes/insane.bbclass
@@ -26,7 +26,7 @@
             textrel incompatible-license files-invalid \
             infodir build-deps src-uri-bad symlink-to-sysroot multilib \
             invalid-packageconfig host-user-contaminated uppercase-pn patch-fuzz \
-            mime mime-xdg \
+            mime mime-xdg unlisted-pkg-lics \
             "
 ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
             perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
@@ -898,6 +898,25 @@
                 sane = False
     return sane
 
+QAPKGTEST[unlisted-pkg-lics] = "package_qa_check_unlisted_pkg_lics"
+def package_qa_check_unlisted_pkg_lics(package, d, messages):
+    """
+    Check that all licenses for a package are among the licenses for the recipe.
+    """
+    pkg_lics = d.getVar('LICENSE_' + package)
+    if not pkg_lics:
+        return True
+
+    recipe_lics_set = oe.license.list_licenses(d.getVar('LICENSE'))
+    unlisted = oe.license.list_licenses(pkg_lics) - recipe_lics_set
+    if not unlisted:
+        return True
+
+    package_qa_add_message(messages, "unlisted-pkg-lics",
+                           "LICENSE_%s includes licenses (%s) that are not "
+                           "listed in LICENSE" % (package, ' '.join(unlisted)))
+    return False
+
 def package_qa_check_encoding(keys, encode, d):
     def check_encoding(key, enc):
         sane = True
diff --git a/poky/meta/classes/kernel.bbclass b/poky/meta/classes/kernel.bbclass
index 6846d60..20a0135 100644
--- a/poky/meta/classes/kernel.bbclass
+++ b/poky/meta/classes/kernel.bbclass
@@ -331,6 +331,21 @@
 
 do_compile_kernelmodules() {
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
+	if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
+		# kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not
+		# be set....
+		if [ "${SOURCE_DATE_EPOCH}" = "" -o "${SOURCE_DATE_EPOCH}" = "0" ]; then
+			# The source directory is not necessarily a git repository, so we
+			# specify the git-dir to ensure that git does not query a
+			# repository in any parent directory.
+			SOURCE_DATE_EPOCH=`git --git-dir="${S}/.git" log -1 --pretty=%ct 2>/dev/null || echo "${REPRODUCIBLE_TIMESTAMP_ROOTFS}"`
+		fi
+
+		ts=`LC_ALL=C date -d @$SOURCE_DATE_EPOCH`
+		export KBUILD_BUILD_TIMESTAMP="$ts"
+		export KCONFIG_NOTIMESTAMP=1
+		bbnote "KBUILD_BUILD_TIMESTAMP: $ts"
+	fi
 	if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then
 		cc_extra=$(get_cc_option)
 		oe_runmake -C ${B} ${PARALLEL_MAKE} modules CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
@@ -696,6 +711,7 @@
 		else
 			TAR_ARGS=""
 		fi
+		TAR_ARGS="$TAR_ARGS --owner=0 --group=0"
 		tar $TAR_ARGS -cv -C ${D}${root_prefix} lib | gzip -9n > $deployDir/modules-${MODULE_TARBALL_NAME}.tgz
 
 		ln -sf modules-${MODULE_TARBALL_NAME}.tgz $deployDir/modules-${MODULE_TARBALL_LINK_NAME}.tgz
diff --git a/poky/meta/classes/multilib.bbclass b/poky/meta/classes/multilib.bbclass
index ee677da..9f726e4 100644
--- a/poky/meta/classes/multilib.bbclass
+++ b/poky/meta/classes/multilib.bbclass
@@ -91,13 +91,12 @@
 multilib_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise"
 
 python __anonymous () {
-    variant = d.getVar("BBEXTENDVARIANT")
-
-    import oe.classextend
-
-    clsextend = oe.classextend.ClassExtender(variant, d)
-
     if bb.data.inherits_class('image', d):
+        variant = d.getVar("BBEXTENDVARIANT")
+        import oe.classextend
+
+        clsextend = oe.classextend.ClassExtender(variant, d)
+
         clsextend.map_depends_variable("PACKAGE_INSTALL")
         clsextend.map_depends_variable("LINGUAS_INSTALL")
         clsextend.map_depends_variable("RDEPENDS")
@@ -109,6 +108,22 @@
         bb.build.deltask('do_populate_sdk', d)
         bb.build.deltask('do_populate_sdk_ext', d)
         return
+}
+
+python multilib_virtclass_handler_postkeyexp () {
+    cls = d.getVar("BBEXTENDCURR")
+    variant = d.getVar("BBEXTENDVARIANT")
+    if cls != "multilib" or not variant:
+        return
+
+    variant = d.getVar("BBEXTENDVARIANT")
+
+    import oe.classextend
+
+    clsextend = oe.classextend.ClassExtender(variant, d)
+
+    if bb.data.inherits_class('image', d):
+        return
 
     clsextend.map_depends_variable("DEPENDS")
     clsextend.map_variable("PROVIDES")
@@ -129,6 +144,9 @@
     reset_alternative_priority(d)
 }
 
+addhandler multilib_virtclass_handler_postkeyexp
+multilib_virtclass_handler_postkeyexp[eventmask] = "bb.event.RecipePostKeyExpansion"
+
 def reset_alternative_priority(d):
     if not bb.data.inherits_class('update-alternatives', d):
         return
diff --git a/poky/meta/classes/package.bbclass b/poky/meta/classes/package.bbclass
index 0b5cf47..0af5f66 100644
--- a/poky/meta/classes/package.bbclass
+++ b/poky/meta/classes/package.bbclass
@@ -1508,7 +1508,7 @@
 
 PKGDESTWORK = "${WORKDIR}/pkgdata"
 
-PKGDATA_VARS = "PN PE PV PR PKGE PKGV PKGR LICENSE DESCRIPTION SUMMARY RDEPENDS RPROVIDES RRECOMMENDS RSUGGESTS RREPLACES RCONFLICTS SECTION PKG ALLOW_EMPTY FILES CONFFILES FILES_INFO pkg_postinst pkg_postrm pkg_preinst pkg_prerm"
+PKGDATA_VARS = "PN PE PV PR PKGE PKGV PKGR LICENSE DESCRIPTION SUMMARY RDEPENDS RPROVIDES RRECOMMENDS RSUGGESTS RREPLACES RCONFLICTS SECTION PKG ALLOW_EMPTY FILES CONFFILES FILES_INFO PACKAGE_ADD_METADATA pkg_postinst pkg_postrm pkg_preinst pkg_prerm"
 
 python emit_pkgdata() {
     from glob import glob
@@ -2263,7 +2263,7 @@
 
 # Since bitbake can't determine which variables are accessed during package
 # iteration, we need to list them here:
-PACKAGEVARS = "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm pkg_postinst_ontarget INITSCRIPT_NAME INITSCRIPT_PARAMS DEBIAN_NOAUTONAME ALTERNATIVE PKGE PKGV PKGR USERADD_PARAM GROUPADD_PARAM CONFFILES SYSTEMD_SERVICE LICENSE SECTION pkg_preinst pkg_prerm RREPLACES GROUPMEMS_PARAM SYSTEMD_AUTO_ENABLE SKIP_FILEDEPS PRIVATE_LIBS"
+PACKAGEVARS = "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm pkg_postinst_ontarget INITSCRIPT_NAME INITSCRIPT_PARAMS DEBIAN_NOAUTONAME ALTERNATIVE PKGE PKGV PKGR USERADD_PARAM GROUPADD_PARAM CONFFILES SYSTEMD_SERVICE LICENSE SECTION pkg_preinst pkg_prerm RREPLACES GROUPMEMS_PARAM SYSTEMD_AUTO_ENABLE SKIP_FILEDEPS PRIVATE_LIBS PACKAGE_ADD_METADATA"
 
 def gen_packagevar(d, pkgvars="PACKAGEVARS"):
     ret = []
diff --git a/poky/meta/classes/package_deb.bbclass b/poky/meta/classes/package_deb.bbclass
index 790b26a..cb723fc 100644
--- a/poky/meta/classes/package_deb.bbclass
+++ b/poky/meta/classes/package_deb.bbclass
@@ -283,8 +283,9 @@
 # Otherwise allarch packages may change depending on override configuration
 deb_write_pkg[vardepsexclude] = "OVERRIDES"
 
-# Indirect references to these vars
-do_package_write_deb[vardeps] += "PKGV PKGR PKGV DESCRIPTION SECTION PRIORITY MAINTAINER DPKG_ARCH PN HOMEPAGE"
+# Have to list any variables referenced as X_<pkg> that aren't in pkgdata here
+DEBEXTRAVARS = "PKGV PKGR PKGV DESCRIPTION SECTION PRIORITY MAINTAINER DPKG_ARCH PN HOMEPAGE PACKAGE_ADD_METADATA_DEB"
+do_package_write_deb[vardeps] += "${@gen_packagevar(d, 'DEBEXTRAVARS')}"
 
 SSTATETASKS += "do_package_write_deb"
 do_package_write_deb[sstate-inputdirs] = "${PKGWRITEDIRDEB}"
diff --git a/poky/meta/classes/package_ipk.bbclass b/poky/meta/classes/package_ipk.bbclass
index c008559..79cb36c 100644
--- a/poky/meta/classes/package_ipk.bbclass
+++ b/poky/meta/classes/package_ipk.bbclass
@@ -238,7 +238,7 @@
         bb.utils.unlockfile(lf)
 
 # Have to list any variables referenced as X_<pkg> that aren't in pkgdata here
-IPKEXTRAVARS = "PRIORITY MAINTAINER PACKAGE_ARCH HOMEPAGE"
+IPKEXTRAVARS = "PRIORITY MAINTAINER PACKAGE_ARCH HOMEPAGE PACKAGE_ADD_METADATA_IPK"
 ipk_write_pkg[vardeps] += "${@gen_packagevar(d, 'IPKEXTRAVARS')}"
 
 # Otherwise allarch packages may change depending on override configuration
diff --git a/poky/meta/classes/package_rpm.bbclass b/poky/meta/classes/package_rpm.bbclass
index 9145717..519c22b 100644
--- a/poky/meta/classes/package_rpm.bbclass
+++ b/poky/meta/classes/package_rpm.bbclass
@@ -286,16 +286,18 @@
 
     # Construct the SPEC file...
     srcname    = d.getVar('PN')
-    srcsummary = (d.getVar('SUMMARY') or d.getVar('DESCRIPTION') or ".")
-    srcversion = d.getVar('PKGV').replace('-', '+')
-    srcrelease = d.getVar('PKGR')
-    srcepoch   = (d.getVar('PKGE') or "")
-    srclicense = d.getVar('LICENSE')
-    srcsection = d.getVar('SECTION')
-    srcmaintainer  = d.getVar('MAINTAINER')
-    srchomepage    = d.getVar('HOMEPAGE')
-    srcdescription = d.getVar('DESCRIPTION') or "."
-    srccustomtagschunk = get_package_additional_metadata("rpm", d)
+    localdata = bb.data.createCopy(d)
+    localdata.setVar('OVERRIDES', d.getVar("OVERRIDES", False) + ":" + srcname)
+    srcsummary = (localdata.getVar('SUMMARY') or localdata.getVar('DESCRIPTION') or ".")
+    srcversion = localdata.getVar('PKGV').replace('-', '+')
+    srcrelease = localdata.getVar('PKGR')
+    srcepoch   = (localdata.getVar('PKGE') or "")
+    srclicense = localdata.getVar('LICENSE')
+    srcsection = localdata.getVar('SECTION')
+    srcmaintainer  = localdata.getVar('MAINTAINER')
+    srchomepage    = localdata.getVar('HOMEPAGE')
+    srcdescription = localdata.getVar('DESCRIPTION') or "."
+    srccustomtagschunk = get_package_additional_metadata("rpm", localdata)
 
     srcdepends     = d.getVar('DEPENDS')
     srcrdepends    = []
@@ -621,6 +623,10 @@
 # Otherwise allarch packages may change depending on override configuration
 write_specfile[vardepsexclude] = "OVERRIDES"
 
+# Have to list any variables referenced as X_<pkg> that aren't in pkgdata here
+RPMEXTRAVARS = "PACKAGE_ADD_METADATA_RPM"
+write_specfile[vardeps] += "${@gen_packagevar(d, 'RPMEXTRAVARS')}"
+
 python do_package_rpm () {
     workdir = d.getVar('WORKDIR')
     tmpdir = d.getVar('TMPDIR')
diff --git a/poky/meta/classes/sanity.bbclass b/poky/meta/classes/sanity.bbclass
index 292c559..e021b9d 100644
--- a/poky/meta/classes/sanity.bbclass
+++ b/poky/meta/classes/sanity.bbclass
@@ -784,6 +784,12 @@
     if "." in paths or "./" in paths or "" in paths:
         status.addresult("PATH contains '.', './' or '' (empty element), which will break the build, please remove this.\nParsed PATH is " + str(paths) + "\n")
 
+    # Check whether 'inherit' directive is found (used for a class to inherit)
+    # in conf file it's supposed to be uppercase INHERIT
+    inherit = d.getVar('inherit')
+    if inherit:
+        status.addresult("Please don't use inherit directive in your local.conf. The directive is supposed to be used in classes and recipes only to inherit of bbclasses. Here INHERIT should be used.\n")
+
     # Check that the DISTRO is valid, if set
     # need to take into account DISTRO renaming DISTRO
     distro = d.getVar('DISTRO')