diff options
author | Martin Jansa <martin.jansa@gmail.com> | 2012-02-22 16:01:59 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-02-22 20:32:40 +0000 |
commit | 8e0c7b3c0de1726617eeef61294b21adde177649 (patch) | |
tree | b9231c01f2800ce52902de3966ba4ff3dd39dea6 /bitbake/lib/bb | |
parent | e228289bf0113218a89a56a8cd2ad3b51ff1b238 (diff) | |
download | poky-8e0c7b3c0de1726617eeef61294b21adde177649.tar.gz |
siggen: compare runtaskdeps dictionary even when they have the same size
* otherwise it reports lots of changed checksums just because it compares different tasks
notice linux-libc-headers_3.1.bb.do_package_write:
Task dependency hash changed from 42acced29debf54d598802474c5e9cbb to f438a54f995df77620d0727d6f4b4ce5 (for linux-libc-headers_3.1.bb.do_package_write and linux-gta04_git.bb.do_deploy)
Task dependency hash changed from 61f8babe1d10c6e7fb1423112bb04e1e to 1b3e21ff106ecfcb7ddf76a1e29537bb (for linux-nokia900-meego_git.bb.do_deploy and linux-gta04_git.bb.do_package_write)
Task dependency hash changed from 512f9d6686d760b318d8b11c8b589226 to 42acced29debf54d598802474c5e9cbb (for linux-nokia900-meego_git.bb.do_package_write and linux-libc-headers_3.1.bb.do_package_write)
Task dependency hash changed from 153e91dfd1d2053fda7b98cc08d4b802 to 92a293bdd8ed234932b87a66025038c5 (for systemd-serialgetty.bb.do_package_write and systemd-serialgetty.bb.do_package_write)
Task dependency hash changed from 730abebf9954794bb440c2f3239f79fe to 413eaebaff27a2fd16f5cf68c1f4ff17 (for systemd_git.bb.do_package_write and systemd_git.bb.do_package_write)
with this patch:
Dependency on task linux-nokia900-meego_git.bb.do_package_write was added
Dependency on task linux-nokia900-meego_git.bb.do_deploy was added
Dependency on task linux-gta04_git.bb.do_deploy was removed
Dependency on task linux-gta04_git.bb.do_package_write was removed
Hash for dependent task systemd_git.bb.do_package_write changed from 730abebf9954794bb440c2f3239f79fe to 413eaebaff27a2fd16f5cf68c1f4ff17
Hash for dependent task systemd-serialgetty.bb.do_package_write changed from 153e91dfd1d2053fda7b98cc08d4b802 to 92a293bdd8ed234932b87a66025038c5
* added test if there is different task with same hash then we don't
show it as added/removed dependency, because bitbake doesn't care
(Bitbake rev: ca52bf32b479811bd7fed41648bedcc06b00430b)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r-- | bitbake/lib/bb/siggen.py | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index f42bae25c5..3a9e132bab 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py | |||
@@ -295,27 +295,32 @@ def compare_sigfiles(a, b): | |||
295 | print "Variable %s value changed from %s to %s" % (dep, a_data['varvals'][dep], b_data['varvals'][dep]) | 295 | print "Variable %s value changed from %s to %s" % (dep, a_data['varvals'][dep], b_data['varvals'][dep]) |
296 | 296 | ||
297 | if 'runtaskhashes' in a_data and 'runtaskhashes' in b_data: | 297 | if 'runtaskhashes' in a_data and 'runtaskhashes' in b_data: |
298 | if len(a_data['runtaskdeps']) != len(b_data['runtaskdeps']): | 298 | a = clean_basepaths(a_data['runtaskhashes']) |
299 | a = clean_basepaths(a_data['runtaskhashes']) | 299 | b = clean_basepaths(b_data['runtaskhashes']) |
300 | b = clean_basepaths(b_data['runtaskhashes']) | 300 | changed, added, removed = dict_diff(a, b) |
301 | changed, added, removed = dict_diff(a, b) | 301 | if added: |
302 | if added: | 302 | for dep in added: |
303 | for dep in added: | 303 | bdep_found = False |
304 | print "Dependency on task %s was added" % (dep) | 304 | if removed: |
305 | if removed: | 305 | for bdep in removed: |
306 | for dep in removed: | 306 | if a[dep] == b[bdep]: |
307 | print "Dependency on task %s was removed" % (dep) | 307 | #print "Dependency on task %s was replaced by %s with same hash" % (dep, bdep) |
308 | if changed: | 308 | bdep_found = True |
309 | for dep in changed: | 309 | if not bdep_found: |
310 | print "Hash for dependent task %s changed from %s to %s" % (dep, a[dep], b[dep]) | 310 | print "Dependency on task %s was added with hash %s" % (dep, a[dep]) |
311 | else: | 311 | if removed: |
312 | for i in range(len(a_data['runtaskdeps'])): | 312 | for dep in removed: |
313 | aent = a_data['runtaskdeps'][i] | 313 | adep_found = False |
314 | bent = b_data['runtaskdeps'][i] | 314 | if added: |
315 | aname = clean_basepath(aent) | 315 | for adep in added: |
316 | bname = clean_basepath(bent) | 316 | if a[adep] == b[dep]: |
317 | if a_data['runtaskhashes'][aent] != b_data['runtaskhashes'][bent]: | 317 | #print "Dependency on task %s was replaced by %s with same hash" % (adep, dep) |
318 | print "Task dependency hash changed from %s to %s (for %s and %s)" % (a_data['runtaskhashes'][aent], b_data['runtaskhashes'][bent], aname, bname) | 318 | adep_found = True |
319 | if not adep_found: | ||
320 | print "Dependency on task %s was removed with hash %s" % (dep, b[dep]) | ||
321 | if changed: | ||
322 | for dep in changed: | ||
323 | print "Hash for dependent task %s changed from %s to %s" % (dep, a[dep], b[dep]) | ||
319 | 324 | ||
320 | def dump_sigfile(a): | 325 | def dump_sigfile(a): |
321 | p1 = pickle.Unpickler(file(a, "rb")) | 326 | p1 = pickle.Unpickler(file(a, "rb")) |