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

Richard Purdie richard.purdie at linuxfoundation.org
Mon Sep 12 10:19:33 UTC 2016


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?

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





More information about the Openembedded-core mailing list