bitbake: cooker: Change to consistent prefile/postfile handling

Currently the original prefile and postfile passed when starting bitbake
server are 'sticky'. With the new memory resident model this doesn't make
sense as the server the system is started with isn't special.

This patch changes the code so the prefile/postfile are used if specified
on the commandline and not used otherwise. This makes the behaviour much
more predictable and expected and as an added bonus simplifies the code.

(Bitbake rev: 638d366234fad78f283d3a13a12b07cb0ccbe914)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2017-08-31 17:07:24 +01:00
parent 5759039a89
commit 984da85479
3 changed files with 10 additions and 21 deletions

View File

@ -416,19 +416,16 @@ class BBCooker:
clean = True
for o in options:
if o in ['prefile', 'postfile']:
server_val = getattr(self.configuration, "%s_server" % o, None)
if not options[o] and server_val:
# restore value provided on server start
logger.debug(1, "Restoring server value for option '%s'" % o)
setattr(self.configuration, o, server_val)
clean = False
continue
if getattr(self.configuration, o) == options[o]:
# Value is the same, no need to mark dirty
continue
else:
logger.debug(1, "Marking as dirty due to '%s' option change to '%s'" % (o, options[o]))
clean = False
# Only these options may require a reparse
try:
if getattr(self.configuration, o) == options[o]:
# Value is the same, no need to mark dirty
continue
except AttributeError:
pass
logger.debug(1, "Marking as dirty due to '%s' option change to '%s'" % (o, options[o]))
print("Marking as dirty due to '%s' option change to '%s'" % (o, options[o]))
clean = False
setattr(self.configuration, o, options[o])
for k in bb.utils.approved_variables():
if k in environment and k not in self.configuration.env:

View File

@ -127,8 +127,6 @@ class CookerConfiguration(object):
self.extra_assume_provided = []
self.prefile = []
self.postfile = []
self.prefile_server = []
self.postfile_server = []
self.debug = 0
self.cmd = None
self.abort = True

View File

@ -405,12 +405,6 @@ class BitBakeServer(object):
server = ProcessServer(self.bitbake_lock, self.sock, self.sockname)
self.configuration.setServerRegIdleCallback(server.register_idle_function)
# Copy prefile and postfile to _server variants
for param in ('prefile', 'postfile'):
value = getattr(self.configuration, param)
if value:
setattr(self.configuration, "%s_server" % param, value)
self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset, self.readypipein)
server.cooker = self.cooker
server.server_timeout = self.configuration.server_timeout