diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py index 0cfed0a969..60f9ac08aa 100644 --- a/bitbake/lib/bb/command.py +++ b/bitbake/lib/bb/command.py @@ -271,6 +271,10 @@ class CommandsSync: # we always take and leave the cooker in state.initial setFeatures.readonly = True + def updateConfig(self, command, params): + options = params[0] + command.cooker.updateConfigOpts(options) + class CommandsAsync: """ A class of asynchronous commands diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index f463603d5a..c6c69c30ea 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -371,6 +371,10 @@ class BBCooker: self.handleCollections( self.data.getVar("BBFILE_COLLECTIONS", True) ) + def updateConfigOpts(self,options): + for o in options: + setattr(self.configuration, o, options[o]) + def runCommands(self, server, data, abort): """ Run any queued asynchronous command diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py index 60a6d516af..470d5381ae 100644 --- a/bitbake/lib/bb/cookerdata.py +++ b/bitbake/lib/bb/cookerdata.py @@ -69,6 +69,17 @@ class ConfigParameters(object): if bbpkgs: self.options.pkgs_to_build.extend(bbpkgs.split()) + def updateToServer(self, server): + options = {} + for o in ["abort", "tryaltconfigs", "force", "invalidate_stamp", + "verbose", "debug", "dry_run", "dump_signatures", + "debug_domains", "extra_assume_provided", "profile"]: + options[o] = getattr(self.options, o) + + ret, error = server.runCommand(["updateConfig", options]) + if error: + raise Exception("Unable to update the server configuration with local parameters: %s" % error) + def parseActions(self): # Parse any commandline into actions action = {'action':None, 'msg':None} diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index 307886d780..9e58b31727 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py @@ -284,6 +284,7 @@ def main(server, eventHandler, params, tf = TerminalFilter): if not params.observe_only: params.updateFromServer(server) + params.updateToServer(server) cmdline = params.parseActions() if not cmdline: print("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.")