diff options
| author | Ross Burton <ross.burton@intel.com> | 2015-02-02 15:09:25 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-02-03 12:21:36 +0000 |
| commit | 825c0a9835d2ece402ff98e9bdc91e99f5402a06 (patch) | |
| tree | 6a2fde5d32cdbaf2dbde683a6d7bced12c1a7eb2 | |
| parent | b00e781b4a6f756ab8f83e0cda3a5ebae2d20be1 (diff) | |
| download | poky-825c0a9835d2ece402ff98e9bdc91e99f5402a06.tar.gz | |
bitbake: data_smart: split expanded removal values when handling _remove
Given these assignments:
TEST="a b c d"
TEST_remove = "b d"
TEST evaluates to "a c". However, if the _remove override is given as a
variable:
TEST="a b c d"
FOO = "b d"
TEST_remove = "${FOO}
TEST evaluates to "a b c d", because when FOO is expanded it isn't split into a
list.
Solve this by splitting all members of removeactive once they've been expanded.
[ YOCTO #7272 ]
(Bitbake rev: 207013b6dde82f9654f9be996695c8335b95a288)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | bitbake/lib/bb/data_smart.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index b1ea33fc30..7bb7b4aae3 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py | |||
| @@ -621,7 +621,8 @@ class DataSmart(MutableMapping): | |||
| 621 | cachename = var + "[" + flag + "]" | 621 | cachename = var + "[" + flag + "]" |
| 622 | value = self.expand(value, cachename) | 622 | value = self.expand(value, cachename) |
| 623 | if value and flag == "_content" and local_var is not None and "_removeactive" in local_var: | 623 | if value and flag == "_content" and local_var is not None and "_removeactive" in local_var: |
| 624 | removes = [self.expand(r) for r in local_var["_removeactive"]] | 624 | removes = [self.expand(r).split() for r in local_var["_removeactive"]] |
| 625 | removes = reduce(lambda a, b: a+b, removes, []) | ||
| 625 | filtered = filter(lambda v: v not in removes, | 626 | filtered = filter(lambda v: v not in removes, |
| 626 | value.split()) | 627 | value.split()) |
| 627 | value = " ".join(filtered) | 628 | value = " ".join(filtered) |
