Skip to content

Commit

Permalink
cooker: preserve pre and post configs
Browse files Browse the repository at this point in the history
Additional config files passed to bitbake server with --read and
--postread options are rewritten by client bitbake even if
it doesn't use those options.

This is a show stopper for toaster as toaster command line
builds are based on the assumption that server is aware of
toster configs, provided by --postread option.

This behaviour is fixed by preserving values of --read and
--postread options when bitbake server starts and restoring
them if client bitbake doesn't explicitly specify them.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
  • Loading branch information
Ed Bartosh authored and rpurdie committed Oct 27, 2015
1 parent 7b3ed62 commit 02c64f7
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 0 deletions.
5 changes: 5 additions & 0 deletions lib/bb/cooker.py
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,11 @@ def updateConfigOpts(self, options, environment):
for o in options:
if o in ['prefile', 'postfile']:
clean = False
server_val = getattr(self.configuration, "%s_server" % o)
if not options[o] and server_val:
# restore value provided on server start
setattr(self.configuration, o, server_val)
continue
setattr(self.configuration, o, options[o])
for k in bb.utils.approved_variables():
if k in environment and k not in self.configuration.env:
Expand Down
2 changes: 2 additions & 0 deletions lib/bb/cookerdata.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ def __init__(self):
self.extra_assume_provided = []
self.prefile = []
self.postfile = []
self.prefile_server = []
self.postfile_server = []
self.debug = 0
self.cmd = None
self.abort = True
Expand Down
7 changes: 7 additions & 0 deletions lib/bb/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,13 @@ def bitbake_main(configParams, configuration):
# Collect the feature set for the UI
featureset = getattr(ui_module, "featureSet", [])

if configParams.server_only:
for param in ('prefile', 'postfile'):
value = getattr(configParams, param)
if value:
setattr(configuration, "%s_server" % param, value)
param = "%s_server" % param

if not configParams.remote_server:
# we start a server with a given configuration
server = start_server(servermodule, configParams, configuration, featureset)
Expand Down

0 comments on commit 02c64f7

Please sign in to comment.