Can this patch be picked up for warrior, please? I'm not able to create working extlinux configs with multiple labels.
Thanks, Frieder On 12.09.19 17:02, Schrempf Frieder wrote: > From: Will Page <wp...@polysync.io> > > 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 <wp...@polysync.io> > Signed-off-by: Richard Purdie <richard.pur...@linuxfoundation.org> > --- > 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 b5b1a81dfc..f4bf94be04 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') > > -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core