summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/utils.py')
-rw-r--r--bitbake/lib/bb/utils.py45
1 files changed, 16 insertions, 29 deletions
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py
index 48ed0d72e5..5b3710f84f 100644
--- a/bitbake/lib/bb/utils.py
+++ b/bitbake/lib/bb/utils.py
@@ -291,17 +291,6 @@ def join_deps(deps):
291 result.append(dep) 291 result.append(dep)
292 return ", ".join(result) 292 return ", ".join(result)
293 293
294def extend_deps(dest, src):
295 """
296 Extend the results from explode_dep_versions by appending all of the items
297 in the second list, avoiding duplicates.
298 """
299 for dep in src:
300 if dep not in dest:
301 dest[dep] = src[dep]
302 elif dest[dep] != src[dep]:
303 dest[dep] = src[dep]
304
305def _print_trace(body, line): 294def _print_trace(body, line):
306 """ 295 """
307 Print the Environment of a Text Body 296 Print the Environment of a Text Body
@@ -355,16 +344,14 @@ def better_exec(code, context, text, realfile = "<code>"):
355 if t in [bb.parse.SkipPackage, bb.build.FuncFailed]: 344 if t in [bb.parse.SkipPackage, bb.build.FuncFailed]:
356 raise 345 raise
357 346
358 logger.exception("Error executing python function in '%s'", code.co_filename) 347 import traceback
359 348 exception = traceback.format_exception_only(t, value)
360 # print the Header of the Error Message 349 logger.error('Error executing a python function in %s:\n%s',
361 logger.error("There was an error when executing a python function in: %s" % code.co_filename) 350 realfile, ''.join(exception))
362 logger.error("Exception:%s Message:%s" % (t, value))
363 351
364 # Strip 'us' from the stack (better_exec call) 352 # Strip 'us' from the stack (better_exec call)
365 tb = tb.tb_next 353 tb = tb.tb_next
366 354
367 import traceback
368 textarray = text.split('\n') 355 textarray = text.split('\n')
369 linefailed = traceback.tb_lineno(tb) 356 linefailed = traceback.tb_lineno(tb)
370 357
@@ -490,9 +477,9 @@ def sha256_file(filename):
490 s.update(line) 477 s.update(line)
491 return s.hexdigest() 478 return s.hexdigest()
492 479
493# Variables which are preserved from the original environment *and* exported 480def preserved_envvars_exported():
494# into our worker context 481 """Variables which are taken from the environment and placed in and exported
495def preserved_envvars_export_list(): 482 from the metadata"""
496 return [ 483 return [
497 'BB_TASKHASH', 484 'BB_TASKHASH',
498 'HOME', 485 'HOME',
@@ -505,9 +492,9 @@ def preserved_envvars_export_list():
505 'USERNAME', 492 'USERNAME',
506 ] 493 ]
507 494
508# Variables which are preserved from the original environment *and* exported 495def preserved_envvars_exported_interactive():
509# into our worker context for interactive tasks (e.g. requiring X) 496 """Variables which are taken from the environment and placed in and exported
510def preserved_envvars_export_interactive_list(): 497 from the metadata, for interactive tasks"""
511 return [ 498 return [
512 'COLORTERM', 499 'COLORTERM',
513 'DBUS_SESSION_BUS_ADDRESS', 500 'DBUS_SESSION_BUS_ADDRESS',
@@ -525,8 +512,8 @@ def preserved_envvars_export_interactive_list():
525 'XDG_SESSION_COOKIE', 512 'XDG_SESSION_COOKIE',
526 ] 513 ]
527 514
528# Variables which are preserved from the original environment into the datastore 515def preserved_envvars():
529def preserved_envvars_list(): 516 """Variables which are taken from the environment and placed in the metadata"""
530 v = [ 517 v = [
531 'BBPATH', 518 'BBPATH',
532 'BB_PRESERVE_ENV', 519 'BB_PRESERVE_ENV',
@@ -535,7 +522,7 @@ def preserved_envvars_list():
535 'LANG', 522 'LANG',
536 '_', 523 '_',
537 ] 524 ]
538 return v + preserved_envvars_export_list() + preserved_envvars_export_interactive_list() 525 return v + preserved_envvars_exported() + preserved_envvars_exported_interactive()
539 526
540def filter_environment(good_vars): 527def filter_environment(good_vars):
541 """ 528 """
@@ -557,8 +544,8 @@ def filter_environment(good_vars):
557 544
558 return removed_vars 545 return removed_vars
559 546
560def create_intereactive_env(d): 547def create_interactive_env(d):
561 for k in preserved_envvars_export_interactive_list(): 548 for k in preserved_envvars_exported_interactive():
562 os.setenv(k, bb.data.getVar(k, d, True)) 549 os.setenv(k, bb.data.getVar(k, d, True))
563 550
564def clean_environment(): 551def clean_environment():
@@ -570,7 +557,7 @@ def clean_environment():
570 if 'BB_ENV_WHITELIST' in os.environ: 557 if 'BB_ENV_WHITELIST' in os.environ:
571 good_vars = os.environ['BB_ENV_WHITELIST'].split() 558 good_vars = os.environ['BB_ENV_WHITELIST'].split()
572 else: 559 else:
573 good_vars = preserved_envvars_list() 560 good_vars = preserved_envvars()
574 if 'BB_ENV_EXTRAWHITE' in os.environ: 561 if 'BB_ENV_EXTRAWHITE' in os.environ:
575 good_vars.extend(os.environ['BB_ENV_EXTRAWHITE'].split()) 562 good_vars.extend(os.environ['BB_ENV_EXTRAWHITE'].split())
576 filter_environment(good_vars) 563 filter_environment(good_vars)