From a23c482cab4f874f4a6a6889716123569eb5ece9 Mon Sep 17 00:00:00 2001 From: Kai Kang Date: Tue, 11 Sep 2018 19:25:17 -0400 Subject: allarch: only enable allarch when multilib is not used Some allarch packages rdepends non-allarch packages. when multilib is used, it doesn't expand the dependency chain correctly, e.g. core-image-sato -> ca-certificates(allarch) -> openssl we expect dependency chain for lib32-core-image-sato: lib32-core-image-sato -> ca-certificates(allarch) -> lib32-openssl it should install lib32-openssl for ca-certificates but openssl is still wrongly required. Only enable allarch when multilib is not used to fix the issue. Signed-off-by: Kai Kang Signed-off-by: Richard Purdie --- meta/classes/allarch.bbclass | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'meta/classes/allarch.bbclass') diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass index 1eebe0bf2e..5bd5c44a27 100644 --- a/meta/classes/allarch.bbclass +++ b/meta/classes/allarch.bbclass @@ -2,7 +2,18 @@ # This class is used for architecture independent recipes/data files (usually scripts) # -PACKAGE_ARCH = "all" +python allarch_package_arch_handler () { + if bb.data.inherits_class("native", d) or bb.data.inherits_class("nativesdk", d) \ + or bb.data.inherits_class("crosssdk", d): + return + + variants = d.getVar("MULTILIB_VARIANTS") + if not variants: + d.setVar("PACKAGE_ARCH", "all" ) +} + +addhandler allarch_package_arch_handler +allarch_package_arch_handler[eventmask] = "bb.event.RecipePreFinalise" python () { # Allow this class to be included but overridden - only set -- cgit v1.2.3