[gnome-continuous-yocto/gnomeostree-3.28-rocko: 4309/8267] staging/allarch: Remove hardcoded PACKAGE_ARCHS from the class



commit bb5fe4c35dcc8df0acd29c6d7f43de82d5744b75
Author: Richard Purdie <richard purdie linuxfoundation org>
Date:   Tue Jan 24 17:48:09 2017 +0000

    staging/allarch: Remove hardcoded PACKAGE_ARCHS from the class
    
    The code was making an assumption that the only PACKAGE_ARCH in use
    was TUNE_PKGARCH. This is incorrect so iterate over the list from
    PACKAGE_EXTRA_ARCH instead.
    
    We also need to change allarch to preserve this variable, else the
    staging code doesn't function. We do this in a way which clears the
    variable history so that the task hashes remain unaffected.
    
    [Thanks to Andrew Goodbody <andrew goodbody cambrionix com> for
    testing/fixing]
    
    (From OE-Core rev: b1bab7a6eff6b195824be7d754de58c6e9ee2bfb)
    
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 meta/classes/allarch.bbclass |    4 +++-
 meta/classes/staging.bbclass |   16 ++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)
---
diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass
index 026214e..a774841 100644
--- a/meta/classes/allarch.bbclass
+++ b/meta/classes/allarch.bbclass
@@ -25,7 +25,9 @@ python () {
         d.setVar("TARGET_AS_ARCH", "none")
         d.setVar("TARGET_FPU", "")
         d.setVar("TARGET_PREFIX", "")
-        d.setVar("PACKAGE_EXTRA_ARCHS", "")
+        # Expand PACKAGE_EXTRA_ARCHS since the staging code needs this
+        # (this removes any dependencies from the hash perspective)
+        d.setVar("PACKAGE_EXTRA_ARCHS", d.getVar("PACKAGE_EXTRA_ARCHS"))
         d.setVar("SDK_ARCH", "none")
         d.setVar("SDK_CC_ARCH", "none")
         d.setVar("TARGET_CPPFLAGS", "none")
diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index fc387ea..b97f261 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -304,7 +304,9 @@ def staging_populate_sysroot_dir(targetsysroot, nativesysroot, native, d):
         pkgarchs = ['${BUILD_ARCH}', '${BUILD_ARCH}_*']
         targetdir = nativesysroot
     else:
-        pkgarchs = ['${MACHINE_ARCH}', '${TUNE_PKGARCH}', 'allarch']
+        pkgarchs = ['${MACHINE_ARCH}']
+        pkgarchs = pkgarchs + list(reversed(d.getVar("PACKAGE_EXTRA_ARCHS").split()))
+        pkgarchs.append('allarch')
         targetdir = targetsysroot
 
     bb.utils.mkdirhier(targetdir)
@@ -528,11 +530,13 @@ python extend_recipe_sysroot() {
             manifest = 
d2.expand("${SSTATE_MANIFESTS}/manifest-${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS}-%s.populate_sysroot" % c)
             native = True
         else:
-            manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-${MACHINE_ARCH}-%s.populate_sysroot" % c)
-            if not os.path.exists(manifest):
-                manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-${TUNE_PKGARCH}-%s.populate_sysroot" % c)
-            if not os.path.exists(manifest):
-                manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-allarch-%s.populate_sysroot" % c)
+            pkgarchs = ['${MACHINE_ARCH}']
+            pkgarchs = pkgarchs + list(reversed(d2.getVar("PACKAGE_EXTRA_ARCHS").split()))
+            pkgarchs.append('allarch')
+            for pkgarch in pkgarchs:
+                manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-%s-%s.populate_sysroot" % (pkgarch, c))
+                if os.path.exists(manifest):
+                    break
         if not os.path.exists(manifest):
             bb.warn("Manifest %s not found?" % manifest)
         else:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]