From 1182665de0da9a6e5fc77107f32a7fc1515029d0 Mon Sep 17 00:00:00 2001 From: Alexandru DAMIAN Date: Thu, 14 Nov 2013 13:56:30 +0000 Subject: bitbake: cooker, toaster: variable definition tracking In order to track the file where a configuration variable was defined, this patch bring these changes: * a new feature is defined in CookerFeatures, named BASEDATASTORE_TRACKING. When a UI requests BASEDATASTORE_TRACKING, the base variable definition are tracked when configuration is parsed. * getAllKeysWithFlags now includes variable history in the data dump * toaster_ui.py will record the operation, file path and line number where the variable was changes * toaster Simple UI will display the file path and line number for Configuration page There is a change in the models to accomodate the recording of variable change history. [YOCTO #5227] (Bitbake rev: 78e58fed82f2a71f052485de0052d7b9cca53ffd) Signed-off-by: Alexandru DAMIAN Signed-off-by: Richard Purdie --- bitbake/lib/bb/cooker.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'bitbake/lib/bb/cooker.py') diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 08af03a0f9..89410c297f 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -81,7 +81,7 @@ class SkippedPackage: class CookerFeatures(object): - _feature_list = [HOB_EXTRA_CACHES, SEND_DEPENDS_TREE] = range(2) + _feature_list = [HOB_EXTRA_CACHES, SEND_DEPENDS_TREE, BASEDATASTORE_TRACKING] = range(3) def __init__(self): self._features=set() @@ -177,6 +177,9 @@ class BBCooker: self.data.disableTracking() def loadConfigurationData(self): + if CookerFeatures.BASEDATASTORE_TRACKING in self.featureset: + self.enableDataTracking() + self.initConfigurationData() self.databuilder.parseBaseConfiguration() self.data = self.databuilder.data @@ -189,6 +192,10 @@ class BBCooker: bb.data.update_data(self.event_data) bb.parse.init_parser(self.event_data) + if CookerFeatures.BASEDATASTORE_TRACKING in self.featureset: + self.disableDataTracking() + + def modifyConfigurationVar(self, var, val, default_file, op): if op == "append": self.appendConfigurationVar(var, val, default_file) @@ -348,7 +355,6 @@ class BBCooker: open(confpath, 'w').close() def parseConfiguration(self): - # Set log file verbosity verboselogs = bb.utils.to_boolean(self.data.getVar("BB_VERBOSE_LOGS", "0")) if verboselogs: @@ -1203,7 +1209,10 @@ class BBCooker: try: v = self.data.getVar(k, True) if not k.startswith("__") and not isinstance(v, bb.data_smart.DataSmart): - dump[k] = { 'v' : v } + dump[k] = { + 'v' : v , + 'history' : self.data.varhistory.variable(k), + } for d in flaglist: dump[k][d] = self.data.getVarFlag(k, d) except Exception as e: -- cgit v1.2.3-54-g00ecf