summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/cooker.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2016-02-02 13:59:52 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-02-10 15:47:11 +0000
commite39cfb1f9c491a1b8bc5730b83616ec56e3a6c64 (patch)
tree70de1940075c0f129687a90712b95648a34e9093 /bitbake/lib/bb/cooker.py
parentf652b6b9d0db96d0fa2d2f1c732263140633d15f (diff)
downloadpoky-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/lib/bb/cooker.py')
-rw-r--r--bitbake/lib/bb/cooker.py11
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