summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/ui/crumbs/template.py
diff options
context:
space:
mode:
authorShane Wang <shane.wang@intel.com>2012-06-02 12:54:37 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-06-08 12:13:15 +0100
commit25785d8ddfccfc12af0c677cb519f133be158d1f (patch)
tree6496e41df422a0cad918e26199cb66cf60e4eec6 /bitbake/lib/bb/ui/crumbs/template.py
parentefd977010ea4c9f611089b19cebb81f7a501dafa (diff)
downloadpoky-25785d8ddfccfc12af0c677cb519f133be158d1f.tar.gz
Hob: add versions for compatibility check between Hob and templates
If a user uses a very old version of Hob and does some work, later on he/she upgrade to the latest version of Hob, because Hob may change the settings (add more config option into the Adv. Settings dialog or remove some), then the old templates are not loadable and workable for the new Hob. Even though the user hasn't save any template before, the Hob could remember the settings between Hob sessions as a default template, (Remember we have a bug to ask Hob remember between sessions?), the new Hob will also load the default template. By adding versions, we can easily to fix the issue. If the versions don't match, Hob will remove the old default template first and initiate a new build, which has very very little impact on the user. (Just can't remember from the previous session after the user upgrades to a new and incompatible Hob) [Yocto #2492] (Bitbake rev: d5dd9a7af9d35c588528f9937430d1ef5de216c6) Signed-off-by: Shane Wang <shane.wang@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/ui/crumbs/template.py')
-rw-r--r--bitbake/lib/bb/ui/crumbs/template.py17
1 files changed, 16 insertions, 1 deletions
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()