diff options
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/cooker.py | 5 | ||||
-rw-r--r-- | bitbake/lib/bb/cookerdata.py | 1 | ||||
-rw-r--r-- | bitbake/lib/bb/utils.py | 26 |
3 files changed, 22 insertions, 10 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 41f70ab95a..e8686475b9 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -1454,7 +1454,7 @@ class Parser(multiprocessing.Process): | |||
1454 | self.quit = quit | 1454 | self.quit = quit |
1455 | self.init = init | 1455 | self.init = init |
1456 | multiprocessing.Process.__init__(self) | 1456 | multiprocessing.Process.__init__(self) |
1457 | self.context = bb.utils._context.copy() | 1457 | self.context = bb.utils.get_context().copy() |
1458 | self.handlers = bb.event._handlers.copy() | 1458 | self.handlers = bb.event._handlers.copy() |
1459 | 1459 | ||
1460 | def run(self): | 1460 | def run(self): |
@@ -1490,7 +1490,8 @@ class Parser(multiprocessing.Process): | |||
1490 | 1490 | ||
1491 | def parse(self, filename, appends, caches_array): | 1491 | def parse(self, filename, appends, caches_array): |
1492 | try: | 1492 | try: |
1493 | bb.utils._context = self.context.copy() | 1493 | # Reset our environment and handlers to the original settings |
1494 | bb.utils.set_context(self.context.copy()) | ||
1494 | bb.event._handlers = self.handlers.copy() | 1495 | bb.event._handlers = self.handlers.copy() |
1495 | return True, bb.cache.Cache.parse(filename, appends, self.cfg, caches_array) | 1496 | return True, bb.cache.Cache.parse(filename, appends, self.cfg, caches_array) |
1496 | except Exception as exc: | 1497 | except Exception as exc: |
diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py index c4a28c86c5..de4331050d 100644 --- a/bitbake/lib/bb/cookerdata.py +++ b/bitbake/lib/bb/cookerdata.py | |||
@@ -173,6 +173,7 @@ class CookerDataBuilder(object): | |||
173 | self.postfiles = params.postfile | 173 | self.postfiles = params.postfile |
174 | self.tracking = params.tracking | 174 | self.tracking = params.tracking |
175 | 175 | ||
176 | bb.utils.set_context(bb.utils.clean_context()) | ||
176 | self.data = bb.data.init() | 177 | self.data = bb.data.init() |
177 | if self.tracking: | 178 | if self.tracking: |
178 | self.data.enableTracking() | 179 | self.data.enableTracking() |
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index 1ecc44a01a..7db6e3862f 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py | |||
@@ -36,12 +36,22 @@ from contextlib import contextmanager | |||
36 | 36 | ||
37 | logger = logging.getLogger("BitBake.Util") | 37 | logger = logging.getLogger("BitBake.Util") |
38 | 38 | ||
39 | def clean_context(): | ||
40 | return { | ||
41 | "os": os, | ||
42 | "bb": bb, | ||
43 | "time": time, | ||
44 | } | ||
45 | |||
46 | def get_context(): | ||
47 | return _context | ||
48 | |||
49 | |||
50 | def set_context(ctx): | ||
51 | _context = ctx | ||
52 | |||
39 | # Context used in better_exec, eval | 53 | # Context used in better_exec, eval |
40 | _context = { | 54 | _context = clean_context() |
41 | "os": os, | ||
42 | "bb": bb, | ||
43 | "time": time, | ||
44 | } | ||
45 | 55 | ||
46 | def explode_version(s): | 56 | def explode_version(s): |
47 | r = [] | 57 | r = [] |
@@ -343,7 +353,7 @@ def better_exec(code, context, text = None, realfile = "<code>"): | |||
343 | if not hasattr(code, "co_filename"): | 353 | if not hasattr(code, "co_filename"): |
344 | code = better_compile(code, realfile, realfile) | 354 | code = better_compile(code, realfile, realfile) |
345 | try: | 355 | try: |
346 | exec(code, _context, context) | 356 | exec(code, get_context(), context) |
347 | except Exception as e: | 357 | except Exception as e: |
348 | (t, value, tb) = sys.exc_info() | 358 | (t, value, tb) = sys.exc_info() |
349 | 359 | ||
@@ -358,10 +368,10 @@ def better_exec(code, context, text = None, realfile = "<code>"): | |||
358 | raise e | 368 | raise e |
359 | 369 | ||
360 | def simple_exec(code, context): | 370 | def simple_exec(code, context): |
361 | exec(code, _context, context) | 371 | exec(code, get_context(), context) |
362 | 372 | ||
363 | def better_eval(source, locals): | 373 | def better_eval(source, locals): |
364 | return eval(source, _context, locals) | 374 | return eval(source, get_context(), locals) |
365 | 375 | ||
366 | @contextmanager | 376 | @contextmanager |
367 | def fileslocked(files): | 377 | def fileslocked(files): |