[oe-commits] [openembedded-core] 52/54: uboot: fixes to uboot-extlinux-config attribute values

git at git.openembedded.org git at git.openembedded.org
Mon Sep 30 15:45:55 UTC 2019


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

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

commit 933a85e45c3edd65cdcc00cb18e17524e0411a09
Author: Will Page <wpage at polysync.io>
AuthorDate: Thu Sep 12 15:02:15 2019 +0000

    uboot: fixes to uboot-extlinux-config attribute values
    
    The way this class uses overrides to support generation of multiple
    sections is subject to two different issues: 1) labels that conflict
    with existing override names causing the value for the conflicting label
    to be set for all labels, and 2) reusing the override list through each
    iteration, prepending each new label to the list of overrides makes
    earlier labels' value take precedence over later labels, making later
    labels virtually impossible to customize.
    
    The first issue is resolved by removing all label names from overrides
    before iterating over labels.  The second issue is resolved by
    generating a fresh list of overrides with only the current label added.
    
    The current label is also appended to the list of overrides instead of
    prepended, which makes it the highest priority override.  This is
    matches the behavior of devtool-source.bbclass, which similarly
    monkey-patches overrides.
    
    Closes https://bugzilla.yoctoproject.org/show_bug.cgi?id=13469 .
    
    Signed-off-by: Will Page <wpage at polysync.io>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
    Signed-off-by: Armin Kuster <akuster808 at gmail.com>
---
 meta/classes/uboot-extlinux-config.bbclass | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/meta/classes/uboot-extlinux-config.bbclass b/meta/classes/uboot-extlinux-config.bbclass
index b5b1a81..f4bf94b 100644
--- a/meta/classes/uboot-extlinux-config.bbclass
+++ b/meta/classes/uboot-extlinux-config.bbclass
@@ -104,13 +104,16 @@ python do_create_extlinux_config() {
                 if default:
                     cfgfile.write('DEFAULT %s\n' % (default))
 
-            for label in labels.split():
+            # Need to deconflict the labels with existing overrides
+            label_overrides = labels.split()
+            default_overrides = localdata.getVar('OVERRIDES').split(':')
+            # We're keeping all the existing overrides that aren't used as a label
+            # an override for that label will be added back in while we're processing that label
+            keep_overrides = list(filter(lambda x: x not in label_overrides, default_overrides))
 
-                overrides = localdata.getVar('OVERRIDES')
-                if not overrides:
-                    bb.fatal('OVERRIDES not defined')
+            for label in labels.split():
 
-                localdata.setVar('OVERRIDES', label + ':' + overrides)
+                localdata.setVar('OVERRIDES', ':'.join(keep_overrides + [label]))
 
                 extlinux_console = localdata.getVar('UBOOT_EXTLINUX_CONSOLE')
 

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


More information about the Openembedded-commits mailing list