[yocto] Change in override behavior?
Richard Purdie
richard.purdie at linuxfoundation.org
Tue May 24 05:31:40 PDT 2016
On Fri, 2016-04-29 at 22:09 +1200, Paul Eggleton wrote:
> On Fri, 29 Apr 2016 12:00:58 Gary Thomas wrote:
> > On 2016-04-29 11:51, Paul Eggleton wrote:
> > > On Fri, 29 Apr 2016 09:24:23 Gary Thomas wrote:
> > > > On 2016-04-29 09:16, Paul Eggleton wrote:
> > > > Indeed, my machine names do have an upper case letter in them.
> > > > Any suggestions for how to handle this (short of renaming
> > > > everything
> > > > which
> > > > would be a HUGE chore)?
> > >
> > > It's no longer supported I'm afraid, BitBake's datastore is now
> > > coded to
> > > expect lowercase for all override values. You say it's a huge
> > > chore but
> > > surely a grep -l | xargs -n1 sed -i would do it?
> >
> > If I were to rename my target (MACHINE), I'd then have to go
> > through
> > and rename all of the directories in the recipes that hold machine
> > customizations and there are quite a few of those. Similarly I'd
> > have to rework all the recipes that use the old names (with upper
> > case
> > letters) to the new ones. Not impossible, but quite a lot of work.
>
> That is unfortunate, but again should be pretty easy to automate
> (assuming
> they are local of course and not proliferated across many users'
> build
> machines).
>
> > Short of actually renaming the target machines, I could add an
> > additional
> > override (in <MACHINE>.conf) that is lowercase only and update just
> > the
> > recipes to use that instead.
> >
> > By experimentation, I have found that XYZ_append_<MACHINE> seems to
> > do
> > the correct thing, even when <MACHINE> has upper case letters.
> > Maybe this
> > is an oversight that will be fixed?
>
> I'm not sure - Richard?
Sorry for the delay in getting to this. It does sound like there is a
codepath in bitbake which is still recognising variables with mixed
case. I took a quick look and think this change appears to address it:
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py
index 25c412c..ec6709f 100644
--- a/bitbake/lib/bb/data_smart.py
+++ b/bitbake/lib/bb/data_smart.py
@@ -39,7 +39,7 @@ from bb.COW import COWDictBase
logger = logging.getLogger("BitBake.Data")
__setvar_keyword__ = ["_append", "_prepend", "_remove"]
-__setvar_regexp__ = re.compile('(?P<base>.*?)(?P<keyword>_append|_prepend|_remove)(_(?P<add>.*))?$')
+__setvar_regexp__ = re.compile('(?P<base>.*?)(?P<keyword>_append|_prepend|_remove)(_(?P<add>[^A-Z]*))?$')
__expand_var_regexp__ = re.compile(r"\${[^{}@\n\t :]+}")
__expand_python_regexp__ = re.compile(r"\${@.+?}")
Cheers,
Richard
More information about the yocto
mailing list