From: Richard Purdie Date: Wed, 4 Jul 2012 15:47:52 +0000 (+0000) Subject: bitbake: data_smart: Fix multiple override interaction with append and prepend operators X-Git-Tag: rev_ivi_2015_02_04~16615 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=87afed58427bb1e1db7cf109e58afd5d029a980f;p=scm%2Fbb%2Ftizen-distro.git bitbake: data_smart: Fix multiple override interaction with append and prepend operators Variables which used multiple overrides and the append/prepend operators were not functioning correctly. This change fixes that. This fixes the testcase: OVERRIDES = "linux:x86" TESTVAR = "original" TESTVAR_append_x86 = " x86" TESTVAR_append_x86_linux = " x86+linux" TESTVAR_append_linux_x86 = " linux+x86" [YOCTO #2672] (Bitbake rev: dc35a2e506e15fb7ddbf74c3b3280e9e83ab33bb) Signed-off-by: Richard Purdie --- diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index 2c02cde..730deaa 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py @@ -198,7 +198,12 @@ class DataSmart(MutableMapping): for append in appends: keep = [] for (a, o) in self.getVarFlag(append, op) or []: - if o and not o in overrides: + match = True + if o: + for o2 in o.split("_"): + if not o2 in overrides: + match = False + if not match: keep.append((a ,o)) continue