diff options
authorChristopher Larson <chris_larson@mentor.com>2016-04-30 13:10:34 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-05-06 10:21:37 +0100
commitc5e45063cb3ae17bbe3304ea5e712bd76e686c4a (patch)
parent71bfd5beb0d0ed88c7c14bbfd5ca1a1b56122bc1 (diff)
bb.{cooker, data}: only emit a var as python if 'func' is set
This avoids a common issue where PACKAGECONFIG is emitted as a function in bitbake -e when the 'python' flag exists. It isn't a python function unless both 'func' and 'python' are set. This aligns with the behavior of emit_func_python. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 9b565fc37d..b2187d7d5f 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -656,7 +656,7 @@ class BBCooker:
# emit the metadata which isnt valid shell
for e in envdata.keys():
- if data.getVarFlag( e, 'python', envdata ):
+ if envdata.getVarFlag(e, 'func', False) and envdata.getVarFlag(e, 'python', False):
logger.plain("\npython %s () {\n%s}\n", e, envdata.getVar(e, False))
diff --git a/lib/bb/data.py b/lib/bb/data.py
index dbc6dea68d..b5dcdbd8f8 100644
--- a/lib/bb/data.py
+++ b/lib/bb/data.py
@@ -182,12 +182,12 @@ def inheritFromOS(d, savedenv, permitted):
def emit_var(var, o=sys.__stdout__, d = init(), all=False):
"""Emit a variable to be sourced by a shell."""
- if d.getVarFlag(var, "python", False):
+ func = d.getVarFlag(var, "func", False)
+ if d.getVarFlag(var, 'python', False) and func:
return False
export = d.getVarFlag(var, "export", False)
unexport = d.getVarFlag(var, "unexport", False)
- func = d.getVarFlag(var, "func", False)
if not all and not export and not unexport and not func:
return False