summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbitbake/lib/bb/ui/crumbs/builder.py14
-rw-r--r--bitbake/lib/bb/ui/crumbs/template.py17
2 files changed, 28 insertions, 3 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py
index 899d0e0c16..bcce41dbb6 100755
--- a/bitbake/lib/bb/ui/crumbs/builder.py
+++ b/bitbake/lib/bb/ui/crumbs/builder.py
@@ -40,6 +40,8 @@ from bb.ui.crumbs.hig import CrumbsMessageDialog, ImageSelectionDialog, \
40from bb.ui.crumbs.persistenttooltip import PersistentTooltip 40from bb.ui.crumbs.persistenttooltip import PersistentTooltip
41import bb.ui.crumbs.utils 41import bb.ui.crumbs.utils
42 42
43hobVer = 20120530
44
43class Configuration: 45class Configuration:
44 '''Represents the data structure of configuration.''' 46 '''Represents the data structure of configuration.'''
45 47
@@ -222,6 +224,7 @@ class Configuration:
222 self.split_proxy("cvs", template.getVar("CVS_PROXY_HOST") + ":" + template.getVar("CVS_PROXY_PORT")) 224 self.split_proxy("cvs", template.getVar("CVS_PROXY_HOST") + ":" + template.getVar("CVS_PROXY_PORT"))
223 225
224 def save(self, template, defaults=False): 226 def save(self, template, defaults=False):
227 template.setVar("VERSION", "%s" % hobVer)
225 # bblayers.conf 228 # bblayers.conf
226 template.setVar("BBLAYERS", " ".join(self.layers)) 229 template.setVar("BBLAYERS", " ".join(self.layers))
227 # local.conf 230 # local.conf
@@ -468,7 +471,7 @@ class Builder(gtk.Window):
468 471
469 def initiate_new_build_async(self): 472 def initiate_new_build_async(self):
470 self.switch_page(self.MACHINE_SELECTION) 473 self.switch_page(self.MACHINE_SELECTION)
471 if self.load_template(TemplateMgr.convert_to_template_pathfilename("default", ".hob/")) == None: 474 if self.load_template(TemplateMgr.convert_to_template_pathfilename("default", ".hob/")) == False:
472 self.handler.init_cooker() 475 self.handler.init_cooker()
473 self.handler.set_extra_inherit("image_types") 476 self.handler.set_extra_inherit("image_types")
474 self.handler.generate_configuration() 477 self.handler.generate_configuration()
@@ -537,9 +540,16 @@ class Builder(gtk.Window):
537 540
538 def load_template(self, path): 541 def load_template(self, path):
539 if not os.path.isfile(path): 542 if not os.path.isfile(path):
540 return None 543 return False
541 544
542 self.template = TemplateMgr() 545 self.template = TemplateMgr()
546 # check compatibility
547 tempVer = self.template.getVersion(path)
548 if not tempVer or int(tempVer) < hobVer:
549 self.template.destroy()
550 self.template = None
551 return False
552
543 try: 553 try:
544 self.template.load(path) 554 self.template.load(path)
545 self.configuration.load(self.template) 555 self.configuration.load(self.template)
diff --git a/bitbake/lib/bb/ui/crumbs/template.py b/bitbake/lib/bb/ui/crumbs/template.py
index cbed2708de..7309bb6467 100644
--- a/bitbake/lib/bb/ui/crumbs/template.py
+++ b/bitbake/lib/bb/ui/crumbs/template.py
@@ -101,7 +101,19 @@ class HobTemplateFile(ConfigFile):
101 return self.dictionary[var] 101 return self.dictionary[var]
102 else: 102 else:
103 return "" 103 return ""
104 104
105 def getVersion(self):
106 contents = ConfigFile.readFile(self)
107
108 pattern = "^\s*(\S+)\s*=\s*(\".*?\")"
109
110 for line in contents:
111 match = re.search(pattern, line)
112 if match:
113 if match.group(1) == "VERSION":
114 return match.group(2).strip('"')
115 return None
116
105 def load(self): 117 def load(self):
106 contents = ConfigFile.readFile(self) 118 contents = ConfigFile.readFile(self)
107 self.dictionary.clear() 119 self.dictionary.clear()
@@ -174,6 +186,9 @@ class TemplateMgr(gobject.GObject):
174 self.image_bb.save() 186 self.image_bb.save()
175 self.template_hob.save() 187 self.template_hob.save()
176 188
189 def getVersion(self, path):
190 return HobTemplateFile(path).getVersion()
191
177 def load(self, path): 192 def load(self, path):
178 self.template_hob = HobTemplateFile(path) 193 self.template_hob = HobTemplateFile(path)
179 self.dictionary = self.template_hob.load() 194 self.dictionary = self.template_hob.load()