All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gary Thomas <gary@mlbassoc.com>
To: Paul Eggleton <paul.eggleton@linux.intel.com>
Cc: yocto@yoctoproject.org
Subject: Re: Change in override behavior?
Date: Fri, 29 Apr 2016 12:00:58 +0200	[thread overview]
Message-ID: <572330DA.4020009@mlbassoc.com> (raw)
In-Reply-To: <2094217.rxhuCqpasC@peggleto-mobl.ger.corp.intel.com>

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:
>>> On Fri, 29 Apr 2016 08:06:16 Gary Thomas wrote:
>>>> On 2016-04-29 07:08, Paul Eggleton wrote:
>>>>> On Fri, 29 Apr 2016 06:24:55 Gary Thomas wrote:
>>>>>> I used to be able to use something like this:
>>>>>>       VARIABLE = "xyz"
>>>>>>
>>>>>> and maybe in a .bbappend use
>>>>>>
>>>>>>       VARIABLE_mymachine = "xyzzy"
>>>>>>
>>>>>> where 'mymachine' is in OVERRIDES, which resulted in
>>>>>>
>>>>>>       VARIABLE = "xyzzy"
>>>>>>
>>>>>> This doesn't seem to work the same today, what I get is
>>>>>>
>>>>>>       VARIABLE = "xyz"
>>>>>>       VARIABLE_mymachine = "xyzzy"
>>>>>>
>>>>>> Has this changed (recently)?  Why?  How to I make use of overrides?
>>>>>>
>>>>>> Note: I'm using the latest Poky master (a9b503b26) updated 2016-04-28
>>>>>
>>>>> When you say this is what you're seeing, how are you checking this?
>>>>> bitbake -e ? Which part of that output are you looking at?
>>>>>
>>>>> You *will* now see VARIABLE_mymachine in bitbake -e output even if
>>>>> "mymachine" is in OVERRIDES - that's because the overridden values stay
>>>>> in the datastore instead of a "finalisation" step eliminating them, in
>>>>> order to allow OVERRIDES to be changed dynamically (possibly multiple
>>>>> times) and still get the datastore contents you expect. That change was
>>>>> made in the 2.0 release (jethro). However That should not affect the
>>>>> final value of VARIABLE if "mymachine" is in OVERRIDES however. Are you
>>>>> sure you are seeing what you think you're seeing? If so, is the bbappend
>>>>> in fact being applied? Because if what you describe was really happening
>>>>> then pretty much the entire system would be broken. I just checked a
>>>>> similar case here and I see the expected results.
>>>>
>>>> Yes, I am using 'bitbake -e <recipe> | grep ^VARIABLE' to look at this.
>>>>
>>>> In my main recipe, I have this:
>>>>      SOME_OTHER_VARIABLE ?= "${MACHINE}"
>>>>
>>>> and my .bbappend for that recipe has these lines:
>>>>      SOME_OTHER_VARIABLE_my-target-A = "something-else1"
>>>>      SOME_OTHER_VARIABLE_my-target-B = "something-else2"
>>>>
>>>> and local.conf has
>>>>
>>>>      MACHINE="my-target-B"
>>>>
>>>> With Yocto 2.0 (Poky ceeb52a2544) I get this:
>>>>      SOME_OTHER_VARIABLE = "something-else2"
>>>>      SOME_OTHER_VARIABLE_my-target-A = "something-else1"
>>>>      SOME_OTHER_VARIABLE_my-target-B = "something-else2"
>>>>
>>>> With today's (Poky a9b503b26) I get this:
>>>>      SOME_OTHER_VARIABLE = "my-target-B"
>>>>      SOME_OTHER_VARIABLE_my-target-A = "something-else1"
>>>>      SOME_OTHER_VARIABLE_my-target-B = "something-else2"
>>>>
>>>> I also use this mechanism to set COMPATIBLE_MACHINE a lot and
>>>> that doesn't seem to be working the same either.
>>>>
>>>> Am I doing something incorrectly (and just got away with it for years)?
>>>>
>>>> n.b. If you're interested, I can share the .bb/.bbappend files
>>>> with you privately (I can't put them on the public list)
>>>
>>> Ah, one thing... do your machine names have uppercase characters in them
>>> (as your pseudo-examples above do)? If so that was a 2.1 change; anything
>>> that is to be used as an override must now be lower case (so DISTRO,
>>> MACHINE, etc.)
>>
>> 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.

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?

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


  reply	other threads:[~2016-04-29 10:01 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-29  4:24 Change in override behavior? Gary Thomas
2016-04-29  5:08 ` Paul Eggleton
2016-04-29  6:06   ` Gary Thomas
2016-04-29  7:16     ` Paul Eggleton
2016-04-29  7:24       ` Gary Thomas
2016-04-29  7:32         ` Gary Thomas
2016-04-29  9:51         ` Paul Eggleton
2016-04-29 10:00           ` Gary Thomas [this message]
2016-04-29 10:09             ` Paul Eggleton
2016-04-30  2:19               ` Khem Raj
2016-05-24 12:31               ` Richard Purdie
2016-06-03  1:43                 ` Andre McCurdy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=572330DA.4020009@mlbassoc.com \
    --to=gary@mlbassoc.com \
    --cc=paul.eggleton@linux.intel.com \
    --cc=yocto@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.