path: root/bitbake/lib/bb/ui
diff options
authorAlexandru DAMIAN <>2013-11-14 13:56:30 +0000
committerAlexandru DAMIAN <>2013-11-15 12:18:03 +0000
commit1182665de0da9a6e5fc77107f32a7fc1515029d0 (patch)
tree813be818732cef39f64815ca2a9cade8fd86dfb3 /bitbake/lib/bb/ui
parent6302d1baf516d5cff5d2b65cc734ca5098a26894 (diff)
bitbake: cooker, toaster: variable definition trackingdora-toaster
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 * 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 <>
Diffstat (limited to 'bitbake/lib/bb/ui')
2 files changed, 11 insertions, 5 deletions
diff --git a/bitbake/lib/bb/ui/ b/bitbake/lib/bb/ui/
index c4131aebf0..170ee12a7e 100644
--- a/bitbake/lib/bb/ui/
+++ b/bitbake/lib/bb/ui/
@@ -27,8 +27,10 @@ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "toaster.toastermain.settings")
import toaster.toastermain.settings as toaster_django_settings
from toaster.orm.models import Build, Task, Recipe, Layer_Version, Layer, Target, LogMessage
-from toaster.orm.models import Target_Package, Build_Package, Variable, Build_File
-from toaster.orm.models import Task_Dependency, Build_Package_Dependency, Target_Package_Dependency, Recipe_Dependency
+from toaster.orm.models import Variable, VariableHistory
+from toaster.orm.models import Target_Package, Build_Package, Build_File
+from toaster.orm.models import Task_Dependency, Build_Package_Dependency
+from toaster.orm.models import Target_Package_Dependency, Recipe_Dependency
from bb.msg import BBLogFormatter as format
class ORMWrapper(object):
@@ -238,11 +240,15 @@ class ORMWrapper(object):
desc = vardump[root_var]['doc']
if desc is None:
desc = ''
- Variable.objects.create( build = build_obj,
+ variable_obj = Variable.objects.create( build = build_obj,
variable_name = k,
variable_value = value,
description = desc)
+ for vh in vardump[k]['history']:
+ VariableHistory.objects.create( variable = variable_obj,
+ file_name = vh['file'],
+ line_number = vh['line'],
+ operation = vh['op'])
class BuildInfoHelper(object):
""" This class gathers the build information from the server and sends it
diff --git a/bitbake/lib/bb/ui/ b/bitbake/lib/bb/ui/
index 6c5b1529df..d2dba256c4 100644
--- a/bitbake/lib/bb/ui/
+++ b/bitbake/lib/bb/ui/
@@ -41,7 +41,7 @@ import sys
import time
import xmlrpclib
-featureSet = [bb.cooker.CookerFeatures.HOB_EXTRA_CACHES, bb.cooker.CookerFeatures.SEND_DEPENDS_TREE]
+featureSet = [bb.cooker.CookerFeatures.HOB_EXTRA_CACHES, bb.cooker.CookerFeatures.SEND_DEPENDS_TREE, bb.cooker.CookerFeatures.BASEDATASTORE_TRACKING]
logger = logging.getLogger("BitBake")
interactive = sys.stdout.isatty()