[yocto] Change in override behavior?

Andre McCurdy armccurdy at gmail.com
Thu Jun 2 18:43:14 PDT 2016


On Tue, May 24, 2016 at 5:31 AM, Richard Purdie
<richard.purdie at linuxfoundation.org> wrote:
> 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"\${@.+?}")

What about over-rides which contain only numbers?

It doesn't look like this change is going to filter them out, but they
haven't worked as regular over-rides since:

  http://git.openembedded.org/bitbake/commit/?id=c9b9443faa76ee7366b1400a56f826f3f9dec1be

(My personal preference for resolving that inconsistency would be to
re-enable and officially support over-rides containing only numbers).

>
> Cheers,
>
> Richard
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto



More information about the yocto mailing list