bitbake: tinfoil: add a means of enabling variable history tracking

Unfortunately it seems like the external use of the cooker
enableDataTracking() function broke at some point since the code that
reads it now runs within BBCooker's constructor. Since this now has to
be done early, add a parameter to Tinfoil's constructor to allow
enabling variable history tracking.

Fixes [YOCTO #6676].

(Bitbake rev: a9439b136f55f3f0e80ff053cd3b159da69ba362)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton
2014-09-03 17:06:42 +01:00
committed by Richard Purdie
parent dfbb546492
commit 1894522f35

View File

@@ -25,12 +25,12 @@ import bb.cache
import bb.cooker import bb.cooker
import bb.providers import bb.providers
import bb.utils import bb.utils
from bb.cooker import state, BBCooker from bb.cooker import state, BBCooker, CookerFeatures
from bb.cookerdata import CookerConfiguration, ConfigParameters from bb.cookerdata import CookerConfiguration, ConfigParameters
import bb.fetch2 import bb.fetch2
class Tinfoil: class Tinfoil:
def __init__(self, output=sys.stdout): def __init__(self, output=sys.stdout, tracking=False):
# Needed to avoid deprecation warnings with python 2.6 # Needed to avoid deprecation warnings with python 2.6
warnings.filterwarnings("ignore", category=DeprecationWarning) warnings.filterwarnings("ignore", category=DeprecationWarning)
@@ -48,7 +48,10 @@ class Tinfoil:
configparams = TinfoilConfigParameters(parse_only=True) configparams = TinfoilConfigParameters(parse_only=True)
self.config.setConfigParameters(configparams) self.config.setConfigParameters(configparams)
self.config.setServerRegIdleCallback(self.register_idle_function) self.config.setServerRegIdleCallback(self.register_idle_function)
self.cooker = BBCooker(self.config) features = []
if tracking:
features.append(CookerFeatures.BASEDATASTORE_TRACKING)
self.cooker = BBCooker(self.config, features)
self.config_data = self.cooker.data self.config_data = self.cooker.data
bb.providers.logger.setLevel(logging.ERROR) bb.providers.logger.setLevel(logging.ERROR)
self.cooker_data = None self.cooker_data = None