summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2014-09-23 12:58:22 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-09-23 20:06:06 +0100
commitff5fba8462151364a3834453ee5c861f471cf8d3 (patch)
tree93b87a7e998c36e368802e77b8f070f7d85758eb /bitbake
parentb98bd94e2afa33ecc9861eea046fa7bd386b07c3 (diff)
downloadpoky-ff5fba8462151364a3834453ee5c861f471cf8d3.tar.gz
bitbake: knotty: Ensure commandline parameters are updated in memres server
When using options like -k, -f, -v and so on with the memory resident server, they'd currently only be set on the initial values passed to the original command. This ensures they now match those specified on the commandline for the options where this makes sense. To make this work, a command to update the options on the server side is required so this is added. [YOCTO #5292] (Bitbake rev: 1c75cc4d0c8b606c1fe76e6bf60bf6a32298b105) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/command.py4
-rw-r--r--bitbake/lib/bb/cooker.py4
-rw-r--r--bitbake/lib/bb/cookerdata.py11
-rw-r--r--bitbake/lib/bb/ui/knotty.py1
4 files changed, 20 insertions, 0 deletions
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:
271 # we always take and leave the cooker in state.initial 271 # we always take and leave the cooker in state.initial
272 setFeatures.readonly = True 272 setFeatures.readonly = True
273 273
274 def updateConfig(self, command, params):
275 options = params[0]
276 command.cooker.updateConfigOpts(options)
277
274class CommandsAsync: 278class CommandsAsync:
275 """ 279 """
276 A class of asynchronous commands 280 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:
371 371
372 self.handleCollections( self.data.getVar("BBFILE_COLLECTIONS", True) ) 372 self.handleCollections( self.data.getVar("BBFILE_COLLECTIONS", True) )
373 373
374 def updateConfigOpts(self,options):
375 for o in options:
376 setattr(self.configuration, o, options[o])
377
374 def runCommands(self, server, data, abort): 378 def runCommands(self, server, data, abort):
375 """ 379 """
376 Run any queued asynchronous command 380 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):
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):
73 options = {}
74 for o in ["abort", "tryaltconfigs", "force", "invalidate_stamp",
75 "verbose", "debug", "dry_run", "dump_signatures",
76 "debug_domains", "extra_assume_provided", "profile"]:
77 options[o] = getattr(self.options, o)
78
79 ret, error = server.runCommand(["updateConfig", options])
80 if error:
81 raise Exception("Unable to update the server configuration with local parameters: %s" % error)
82
72 def parseActions(self): 83 def parseActions(self):
73 # Parse any commandline into actions 84 # Parse any commandline into actions
74 action = {'action':None, 'msg':None} 85 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):
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 cmdline = params.parseActions() 288 cmdline = params.parseActions()
288 if not cmdline: 289 if not cmdline:
289 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.")