diff options
-rw-r--r-- | bitbake/lib/bb/siggen.py | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index 3eed66425e..9231291b43 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py | |||
@@ -136,7 +136,7 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
136 | k = fn + "." + task | 136 | k = fn + "." + task |
137 | data = dataCache.basetaskhash[k] | 137 | data = dataCache.basetaskhash[k] |
138 | self.runtaskdeps[k] = [] | 138 | self.runtaskdeps[k] = [] |
139 | for dep in sorted(deps): | 139 | for dep in sorted(deps, key=clean_basepath): |
140 | # We only manipulate the dependencies for packages not in the whitelist | 140 | # We only manipulate the dependencies for packages not in the whitelist |
141 | if self.twl and not self.twl.search(dataCache.pkg_fn[fn]): | 141 | if self.twl and not self.twl.search(dataCache.pkg_fn[fn]): |
142 | # then process the actual dependencies | 142 | # then process the actual dependencies |
@@ -218,6 +218,19 @@ def dump_this_task(outfile, d): | |||
218 | task = "do_" + d.getVar("BB_CURRENTTASK", True) | 218 | task = "do_" + d.getVar("BB_CURRENTTASK", True) |
219 | bb.parse.siggen.dump_sigtask(fn, task, outfile, "customfile") | 219 | bb.parse.siggen.dump_sigtask(fn, task, outfile, "customfile") |
220 | 220 | ||
221 | def clean_basepath(a): | ||
222 | if a.startswith("virtual:"): | ||
223 | b = a.rsplit(":", 1)[0] + a.rsplit("/", 1)[1] | ||
224 | else: | ||
225 | b = a.rsplit("/", 1)[1] | ||
226 | return b | ||
227 | |||
228 | def clean_basepaths(a): | ||
229 | b = {} | ||
230 | for x in a: | ||
231 | b[clean_basepath(x)] = a[x] | ||
232 | return b | ||
233 | |||
221 | def compare_sigfiles(a, b): | 234 | def compare_sigfiles(a, b): |
222 | p1 = pickle.Unpickler(file(a, "rb")) | 235 | p1 = pickle.Unpickler(file(a, "rb")) |
223 | a_data = p1.load() | 236 | a_data = p1.load() |
@@ -236,16 +249,6 @@ def compare_sigfiles(a, b): | |||
236 | removed = sb - sa | 249 | removed = sb - sa |
237 | return changed, added, removed | 250 | return changed, added, removed |
238 | 251 | ||
239 | def clean_basepaths(a): | ||
240 | b = {} | ||
241 | for x in a: | ||
242 | if x.startswith("virtual:"): | ||
243 | y = x.rsplit(":", 1)[0] + x.rsplit("/", 1)[1] | ||
244 | else: | ||
245 | y = x.rsplit("/", 1)[1] | ||
246 | b[y] = a[x] | ||
247 | return b | ||
248 | |||
249 | if 'basewhitelist' in a_data and a_data['basewhitelist'] != b_data['basewhitelist']: | 252 | if 'basewhitelist' in a_data and a_data['basewhitelist'] != b_data['basewhitelist']: |
250 | print "basewhitelist changed from %s to %s" % (a_data['basewhitelist'], b_data['basewhitelist']) | 253 | print "basewhitelist changed from %s to %s" % (a_data['basewhitelist'], b_data['basewhitelist']) |
251 | print "changed items: %s" % a_data['basewhitelist'].symmetric_difference(b_data['basewhitelist']) | 254 | print "changed items: %s" % a_data['basewhitelist'].symmetric_difference(b_data['basewhitelist']) |