diff options
-rw-r--r-- | bitbake/lib/bb/command.py | 3 | ||||
-rw-r--r-- | bitbake/lib/bb/cooker.py | 22 | ||||
-rw-r--r-- | bitbake/lib/bb/cookerdata.py | 4 | ||||
-rw-r--r-- | bitbake/lib/bb/ui/knotty.py | 2 |
4 files changed, 26 insertions, 5 deletions
diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py index 60f9ac08aa..29b0a53e98 100644 --- a/bitbake/lib/bb/command.py +++ b/bitbake/lib/bb/command.py | |||
@@ -273,7 +273,8 @@ class CommandsSync: | |||
273 | 273 | ||
274 | def updateConfig(self, command, params): | 274 | def updateConfig(self, command, params): |
275 | options = params[0] | 275 | options = params[0] |
276 | command.cooker.updateConfigOpts(options) | 276 | environment = params[1] |
277 | command.cooker.updateConfigOpts(options, environment) | ||
277 | 278 | ||
278 | class CommandsAsync: | 279 | class CommandsAsync: |
279 | """ | 280 | """ |
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 95f65ac685..9086f92e5c 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -489,9 +489,29 @@ class BBCooker: | |||
489 | 489 | ||
490 | self.handleCollections( self.data.getVar("BBFILE_COLLECTIONS", True) ) | 490 | self.handleCollections( self.data.getVar("BBFILE_COLLECTIONS", True) ) |
491 | 491 | ||
492 | def updateConfigOpts(self,options): | 492 | def updateConfigOpts(self, options, environment): |
493 | for o in options: | 493 | for o in options: |
494 | setattr(self.configuration, o, options[o]) | 494 | setattr(self.configuration, o, options[o]) |
495 | clean = True | ||
496 | for k in bb.utils.approved_variables(): | ||
497 | if k in environment and k not in self.configuration.env: | ||
498 | logger.debug(1, "Updating environment variable %s to %s" % (k, environment[k])) | ||
499 | self.configuration.env[k] = environment[k] | ||
500 | clean = False | ||
501 | if k in self.configuration.env and k not in environment: | ||
502 | logger.debug(1, "Updating environment variable %s (deleted)" % (k)) | ||
503 | del self.configuration.env[k] | ||
504 | clean = False | ||
505 | if k not in self.configuration.env and k not in environment: | ||
506 | continue | ||
507 | if environment[k] != self.configuration.env[k]: | ||
508 | logger.debug(1, "Updating environment variable %s to %s" % (k, environment[k])) | ||
509 | self.configuration.env[k] = environment[k] | ||
510 | clean = False | ||
511 | if not clean: | ||
512 | logger.debug(1, "Base environment change, triggering reparse") | ||
513 | self.baseconfig_valid = False | ||
514 | self.reset() | ||
495 | 515 | ||
496 | def runCommands(self, server, data, abort): | 516 | def runCommands(self, server, data, abort): |
497 | """ | 517 | """ |
diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py index 2ceed2d867..7eae761d59 100644 --- a/bitbake/lib/bb/cookerdata.py +++ b/bitbake/lib/bb/cookerdata.py | |||
@@ -69,14 +69,14 @@ class ConfigParameters(object): | |||
69 | if bbpkgs: | 69 | if bbpkgs: |
70 | self.options.pkgs_to_build.extend(bbpkgs.split()) | 70 | self.options.pkgs_to_build.extend(bbpkgs.split()) |
71 | 71 | ||
72 | def updateToServer(self, server): | 72 | def updateToServer(self, server, environment): |
73 | options = {} | 73 | options = {} |
74 | for o in ["abort", "tryaltconfigs", "force", "invalidate_stamp", | 74 | for o in ["abort", "tryaltconfigs", "force", "invalidate_stamp", |
75 | "verbose", "debug", "dry_run", "dump_signatures", | 75 | "verbose", "debug", "dry_run", "dump_signatures", |
76 | "debug_domains", "extra_assume_provided", "profile"]: | 76 | "debug_domains", "extra_assume_provided", "profile"]: |
77 | options[o] = getattr(self.options, o) | 77 | options[o] = getattr(self.options, o) |
78 | 78 | ||
79 | ret, error = server.runCommand(["updateConfig", options]) | 79 | ret, error = server.runCommand(["updateConfig", options, environment]) |
80 | if error: | 80 | if error: |
81 | raise Exception("Unable to update the server configuration with local parameters: %s" % error) | 81 | raise Exception("Unable to update the server configuration with local parameters: %s" % error) |
82 | 82 | ||
diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index 9e58b31727..ea20ddc7e0 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py | |||
@@ -284,7 +284,7 @@ def main(server, eventHandler, params, tf = TerminalFilter): | |||
284 | 284 | ||
285 | if not params.observe_only: | 285 | if not params.observe_only: |
286 | params.updateFromServer(server) | 286 | params.updateFromServer(server) |
287 | params.updateToServer(server) | 287 | params.updateToServer(server, os.environ.copy()) |
288 | cmdline = params.parseActions() | 288 | cmdline = params.parseActions() |
289 | if not cmdline: | 289 | if not cmdline: |
290 | print("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.") | 290 | print("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.") |