Patchwork siggen.py: If both sigs have a variable in it's whitelist then don't say it's changed

login
register
mail settings
Submitter Matthew McClintock
Date Nov. 30, 2011, 7:55 a.m.
Message ID <1322639707-7798-2-git-send-email-msm@freescale.com>
Download mbox | patch
Permalink /patch/15769/
State New
Headers show

Comments

Matthew McClintock - Nov. 30, 2011, 7:55 a.m.
Some BB_HASHBASE_WHITELIST variables are in the lists of variable
dependencies for signatures. Ignore those differences in lists
since this difference does not matter

Signed-off-by: Matthew McClintock <msm@freescale.com>
---
I'm seeing variables in BB_HASHBASE_WHITELIST make it
to the signature. Not sure if they are used to calculate
the hash but assuming they are not we don't need to print
out that they are different

 bitbake/lib/bb/siggen.py |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
McClintock Matthew-B29882 - Nov. 30, 2011, 5:25 p.m.
On Wed, Nov 30, 2011 at 1:55 AM, Matthew McClintock <msm@freescale.com> wrote:
> Some BB_HASHBASE_WHITELIST variables are in the lists of variable
> dependencies for signatures. Ignore those differences in lists
> since this difference does not matter
>
> Signed-off-by: Matthew McClintock <msm@freescale.com>

Sent this to bitbake mailing list where it belongs.

-M

Patch

diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py
index 9231291..bb909ba 100644
--- a/bitbake/lib/bb/siggen.py
+++ b/bitbake/lib/bb/siggen.py
@@ -237,13 +237,13 @@  def compare_sigfiles(a, b):
     p2 = pickle.Unpickler(file(b, "rb"))
     b_data = p2.load()
 
-    def dict_diff(a, b):
+    def dict_diff(a, b, whitelist=set()):
         sa = set(a.keys())
         sb = set(b.keys())
         common = sa & sb
         changed = set()
         for i in common:
-            if a[i] != b[i]:
+            if a[i] != b[i] and i not in whitelist:
                 changed.add(i)
         added = sa - sb
         removed = sb - sa
@@ -263,7 +263,7 @@  def compare_sigfiles(a, b):
     if a_data['basehash'] != b_data['basehash']:
         print "basehash changed from %s to %s" % (a_data['basehash'], b_data['basehash'])
 
-    changed, added, removed = dict_diff(a_data['gendeps'], b_data['gendeps'])
+    changed, added, removed = dict_diff(a_data['gendeps'], b_data['gendeps'], a_data['basewhitelist'] & b_data['basewhitelist'])
     if changed:
         for dep in changed:
             print "List of dependencies for variable %s changed from %s to %s" % (dep, a_data['gendeps'][dep], b_data['gendeps'][dep])