From f1ca6f73ebadb73fd362f7084c9c0093215fa379 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Wed, 28 Nov 2018 17:16:15 +1300 Subject: lib/oe/recipeutils: patch_recipe(): fix replacing varflag values The code here wasn't correctly getting the variable history for varflags, so for example if you did a devtool upgrade on a recipe where the SRC_URI checksums were in the .inc file (typical for python recipes in order to support both python 2 and 3) then after the upgrade the new values would be set in the recipe and the old values were left in the .inc, which is not right. Teach the code here how to get the history for varflags so it works properly. (From OE-Core rev: f077ab3ad67b2f3eb4aa8882fe2e7aef2d09a26c) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- meta/lib/oe/recipeutils.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'meta/lib/oe/recipeutils.py') diff --git a/meta/lib/oe/recipeutils.py b/meta/lib/oe/recipeutils.py index 9de291f5b5..886ad26f17 100644 --- a/meta/lib/oe/recipeutils.py +++ b/meta/lib/oe/recipeutils.py @@ -81,11 +81,19 @@ def get_var_files(fn, varlist, d): """ varfiles = {} for v in varlist: - history = d.varhistory.variable(v) files = [] - for event in history: - if 'file' in event and not 'flag' in event: - files.append(event['file']) + if '[' in v: + varsplit = v.split('[') + varflag = varsplit[1].split(']')[0] + history = d.varhistory.variable(varsplit[0]) + for event in history: + if 'file' in event and event.get('flag', '') == varflag: + files.append(event['file']) + else: + history = d.varhistory.variable(v) + for event in history: + if 'file' in event and not 'flag' in event: + files.append(event['file']) if files: actualfile = files[-1] else: -- cgit v1.2.3-54-g00ecf