diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-02-02 13:59:52 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-02-10 15:47:11 +0000 |
commit | e39cfb1f9c491a1b8bc5730b83616ec56e3a6c64 (patch) | |
tree | 70de1940075c0f129687a90712b95648a34e9093 /bitbake | |
parent | f652b6b9d0db96d0fa2d2f1c732263140633d15f (diff) | |
download | poky-e39cfb1f9c491a1b8bc5730b83616ec56e3a6c64.tar.gz |
bitbake: cooker: Don't expand python functions in variable dumps
We don't want to expand python functions since they aren't expanded
at execution time (e.g. anonymous python). They can also have side
effects.
This function is primarily used by toaster for variable dumps for later
display. The lack of expansion of python functions won't matter in this case
and actively helps some variable handling (e.g. SRCPV).
(Bitbake rev: 3f5520b4844a4bdd615046479ba08ed192bdc8cd)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/cooker.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index bc02207600..d990b05874 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -1429,14 +1429,21 @@ class BBCooker: | |||
1429 | dump = {} | 1429 | dump = {} |
1430 | for k in self.data.keys(): | 1430 | for k in self.data.keys(): |
1431 | try: | 1431 | try: |
1432 | v = self.data.getVar(k, True) | 1432 | expand = True |
1433 | flags = self.data.getVarFlags(k) | ||
1434 | if flags and "func" in flags and "python" in flags: | ||
1435 | expand = False | ||
1436 | v = self.data.getVar(k, expand) | ||
1433 | if not k.startswith("__") and not isinstance(v, bb.data_smart.DataSmart): | 1437 | if not k.startswith("__") and not isinstance(v, bb.data_smart.DataSmart): |
1434 | dump[k] = { | 1438 | dump[k] = { |
1435 | 'v' : v , | 1439 | 'v' : v , |
1436 | 'history' : self.data.varhistory.variable(k), | 1440 | 'history' : self.data.varhistory.variable(k), |
1437 | } | 1441 | } |
1438 | for d in flaglist: | 1442 | for d in flaglist: |
1439 | dump[k][d] = self.data.getVarFlag(k, d) | 1443 | if flags and d in flags: |
1444 | dump[k][d] = flags[d] | ||
1445 | else: | ||
1446 | dump[k][d] = None | ||
1440 | except Exception as e: | 1447 | except Exception as e: |
1441 | print(e) | 1448 | print(e) |
1442 | return dump | 1449 | return dump |