[oe-commits] [openembedded-core] 05/57: populate_sdk_ext.bbclass: fix corebase identification

git at git.openembedded.org git at git.openembedded.org
Sat Jun 16 21:35:37 UTC 2018


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 12311556b78d5d568611f0faf78f9ed50dffe0d7
Author: Damien Riegel <damien.riegel at savoirfairelinux.com>
AuthorDate: Fri Jun 15 20:18:38 2018 -0400

    populate_sdk_ext.bbclass: fix corebase identification
    
    When generating the extended SDK, there is a copy step where this class
    goes through the layers and other stuff that have been copied to
    generate the SDK. The corebase; ie. the folder that contains the core
    layer 'meta' is treated in a special way. Unfortunately in our tree, we
    have:
    
      sources/meta/meta
               |     `- core layer
               `------- corebase
    
    In populate_sdk_ext's copy_buildsystem, the heuristic to determine which
    element of the list returned by copy_bitbake_and_layers is corebase is
    fooled by such layout.
    
    In copy_bitbake_and_layers, corebase is already handled specifically and
    reliably, so we should let that function tell us which folder is
    corebase instead of trying to determine it.
    
    To do so, change the return type of copy_bitbake_and_layers to a tuple
    that contains (corebase, copied_layers). It also simplifies the code on
    the caller side.
    
    Signed-off-by: Damien Riegel <damien.riegel at savoirfairelinux.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/classes/populate_sdk_ext.bbclass | 12 +++---------
 meta/lib/oe/copy_buildsystem.py       |  8 +++++---
 2 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass
index e1bba49..f0c8709 100644
--- a/meta/classes/populate_sdk_ext.bbclass
+++ b/meta/classes/populate_sdk_ext.bbclass
@@ -200,15 +200,9 @@ python copy_buildsystem () {
         workspace_name = 'orig-workspace'
     else:
         workspace_name = None
-    layers_copied = buildsystem.copy_bitbake_and_layers(baseoutpath + '/layers', workspace_name)
-
-    sdkbblayers = []
-    corebase = os.path.basename(d.getVar('COREBASE'))
-    for layer in layers_copied:
-        if corebase == os.path.basename(layer):
-            conf_bbpath = os.path.join('layers', layer, 'bitbake')
-        else:
-            sdkbblayers.append(layer)
+
+    corebase, sdkbblayers = buildsystem.copy_bitbake_and_layers(baseoutpath + '/layers', workspace_name)
+    conf_bbpath = os.path.join('layers', corebase, 'bitbake')
 
     for path in os.listdir(baseoutpath + '/layers'):
         relpath = os.path.join('layers', path, oe_init_env_script)
diff --git a/meta/lib/oe/copy_buildsystem.py b/meta/lib/oe/copy_buildsystem.py
index 4b94806..4abec46 100644
--- a/meta/lib/oe/copy_buildsystem.py
+++ b/meta/lib/oe/copy_buildsystem.py
@@ -26,6 +26,7 @@ class BuildSystem(object):
 
     def copy_bitbake_and_layers(self, destdir, workspace_name=None):
         # Copy in all metadata layers + bitbake (as repositories)
+        copied_corebase = None
         layers_copied = []
         bb.utils.mkdirhier(destdir)
         layers = list(self.layerdirs)
@@ -84,17 +85,18 @@ class BuildSystem(object):
 
             layer_relative = os.path.relpath(layerdestpath,
                                              destdir)
-            layers_copied.append(layer_relative)
-
             # Treat corebase as special since it typically will contain
             # build directories or other custom items.
             if corebase == layer:
+                copied_corebase = layer_relative
                 bb.utils.mkdirhier(layerdestpath)
                 for f in corebase_files:
                     f_basename = os.path.basename(f)
                     destname = os.path.join(layerdestpath, f_basename)
                     _smart_copy(f, destname)
             else:
+                layers_copied.append(layer_relative)
+
                 if os.path.exists(os.path.join(layerdestpath, 'conf/layer.conf')):
                     bb.note("Skipping layer %s, already handled" % layer)
                 else:
@@ -140,7 +142,7 @@ class BuildSystem(object):
                 layers_copied.remove(layer)
                 break
 
-        return layers_copied
+        return copied_corebase, layers_copied
 
 def generate_locked_sigs(sigfile, d):
     bb.utils.mkdirhier(os.path.dirname(sigfile))

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list