All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH WIP] bitbake-layers: Convert flatten to use collections.bbappends
@ 2015-03-30 12:56 Richard Purdie
  0 siblings, 0 replies; only message in thread
From: Richard Purdie @ 2015-03-30 12:56 UTC (permalink / raw)
  To: bitbake-devel; +Cc: Eggleton, Paul

flatten support currently looks broken since it doesn't appear to
deal with handling "%" support in bbappend file names.

This patch convert it to use collections.get_file_appends() which
correctly handles "%" support.

[FIXME: Also converts collections.appendlist -> collections.bbappends
but this code also appears to be missing "%" support?]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

[Paul: I have to admit I'm struggling to understand what first_append does
so was struggling to further clean this up]

diff --git a/bitbake/bin/bitbake-layers b/bitbake/bin/bitbake-layers
index 9824629..e30e0f6 100755
--- a/bitbake/bin/bitbake-layers
+++ b/bitbake/bin/bitbake-layers
@@ -622,31 +622,27 @@ build results (as the layer priority order has effectively changed).
                                     logger.warn('Overwriting file %s', fdest)
                             bb.utils.copyfile(f1full, fdest)
                             if ext == '.bb':
-                                if f1 in self.bbhandler.cooker.collection.appendlist:
-                                    appends = self.bbhandler.cooker.collection.appendlist[f1]
-                                    if appends:
-                                        logger.plain('  Applying appends to %s' % fdest )
-                                        for appendname in appends:
-                                            if layer_path_match(appendname):
-                                                self.apply_append(appendname, fdest)
+                                for append in self.bbhandler.cooker.collection.get_file_appends(f1full):
+                                    if layer_path_match(append):
+                                        logger.plain('  Applying append %s to %s' % (append, fdest))
+                                        self.apply_append(append, fdest)
                                     appended_recipes.append(f1)
 
         # Take care of when some layers are excluded and yet we have included bbappends for those recipes
-        for recipename in self.bbhandler.cooker.collection.appendlist.iterkeys():
+        for b in self.bbhandler.cooker.collection.bbappends:
+            (recipename, appendname) = b
             if recipename not in appended_recipes:
-                appends = self.bbhandler.cooker.collection.appendlist[recipename]
                 first_append = None
-                for appendname in appends:
-                    layer = layer_path_match(appendname)
-                    if layer:
-                        if first_append:
-                            self.apply_append(appendname, first_append)
-                        else:
-                            fdest = appendname[len(layer):]
-                            fdest = os.path.normpath(os.sep.join([outputdir,fdest]))
-                            bb.utils.mkdirhier(os.path.dirname(fdest))
-                            bb.utils.copyfile(appendname, fdest)
-                            first_append = fdest
+                layer = layer_path_match(appendname)
+                if layer:
+                    if first_append:
+                        self.apply_append(appendname, first_append)
+                    else:
+                        fdest = appendname[len(layer):]
+                        fdest = os.path.normpath(os.sep.join([outputdir,fdest]))
+                        bb.utils.mkdirhier(os.path.dirname(fdest))
+                        bb.utils.copyfile(appendname, fdest)
+                        first_append = fdest
 
         # Get the regex for the first layer in our list (which is where the conf/layer.conf file will
         # have come from)
@@ -722,7 +718,7 @@ build results (as the layer priority order has effectively changed).
 Lists recipes with the bbappends that apply to them as subitems.
 """
         self.init_bbhandler()
-        if not self.bbhandler.cooker.collection.appendlist:
+        if not self.bbhandler.cooker.collection.bbappends:
             logger.plain('No append files found')
             return 0
 




^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-03-30 12:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-30 12:56 [PATCH WIP] bitbake-layers: Convert flatten to use collections.bbappends Richard Purdie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.