[OE-core] [PATCH] image.bbclass: Do not expand variables in IMAGE_CMD vardepsexclude

Jonathan Liu net147 at gmail.com
Mon Sep 12 14:05:10 UTC 2016


Hi Richard,

On 12 September 2016 at 20:19, Richard Purdie
<richard.purdie at linuxfoundation.org> wrote:
> On Sun, 2016-09-11 at 22:14 +1000, Jonathan Liu wrote:
>> This fixes tashhash mismatch errors creating images when IMAGE_CMD
>> references a variable whose value is always changing even though the
>> variable is specified in IMAGE_CMD vardepsexclude.
>>
>> Signed-off-by: Jonathan Liu <net147 at gmail.com>
>> ---
>>  meta/classes/image.bbclass | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
>> index 8c8b8a2..f85ea86 100644
>> --- a/meta/classes/image.bbclass
>> +++ b/meta/classes/image.bbclass
>> @@ -441,6 +441,10 @@ python () {
>>          localdata.delVar('DATETIME')
>>          localdata.delVar('TMPDIR')
>>
>> +        vardepsexclude = d.getVarFlag('IMAGE_CMD', 'vardepsexclude',
>> True) or ''
>> +        vardepsexclude += ' ' + (d.getVarFlag('IMAGE_CMD_' + realt,
>> 'vardepsexclude', True) or '')
>> +        for var in vardepsexclude.split():
>> +            localdata.delVar(var)
>>          image_cmd = localdata.getVar("IMAGE_CMD", True)
>>          vardeps.add('IMAGE_CMD_' + realt)
>>          if image_cmd:
>
> I think this is complicating an already fragile situation and it
> worries me. Can you be more specific about which variable is causing
> problems here?

See IMAGEDATESTAMP variable in:
https://git.yoctoproject.org/cgit/cgit.cgi/meta-raspberrypi/tree/classes/sdcard_image-rpi.bbclass
https://github.com/linux-sunxi/meta-sunxi/blob/master/classes/sdcard_image-sunxi.bbclass

You can test by changing to:
IMAGEDATESTAMP = "${@time.clock()}"

>
> I'm starting to wonder if we should have an explicit flag set here for
> "problem" variables and we'd default to the values "DATETIME TMPDIR"
> which are already handled in the code. You'd then just need to extend
> that value. Using vardepsexclude seems to partially but not completely
> match?
>
> Incidentally, I really want to complete some of the rework in this area
> so we get to "proper" functions and can stop playing games like this. I
> just haven't had the time to do that and this point in the release
> cycle isn't the right time to do that.
>
> Cheers,
>
> Richard
>
>

Regards,
Jonathan



More information about the Openembedded-core mailing list