Skip to contentSkip to conversation

fetcher: fix BB_STRICT_CHECKSUM datatype check

PATCH Superseded Alejandro Hernandez 3 participants 3 messages Sep 25, 2014 – Sep 26, 2014

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fetcher: fix BB_STRICT_CHECKSUM datatype check

[YOCTO #6762]

---
 lib/bb/fetch2/__init__.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
lib/bb/fetch2/__init__.py +1 -1
index df2f2b0..e182a9d 100644
@@ -544,7 +544,7 @@ def verify_checksum(ud, d):
     if ud.method.recommends_checksum(ud):
         # If strict checking enabled and neither sum defined, raise error
         strict = d.getVar("BB_STRICT_CHECKSUM", True) or None
-        if strict and not (ud.md5_expected or ud.sha256_expected):
+        if (strict == 1) and not (ud.md5_expected or ud.sha256_expected):
             logger.error('No checksum specified for %s, please add at least one to the recipe:\n'
                              'SRC_URI[%s] = "%s"\nSRC_URI[%s] = "%s"' %
                              (ud.localpath, ud.md5_name, md5data,
Signature · 1 line
1.9.1
#1 lore raw

lib/bb/fetch2/__init__.py def verify_checksum(ud, d): · line 547

Quoted 3 lines · Alejandro Hernandez
lib/bb/fetch2/__init__.py +1 -1
-        if strict and not (ud.md5_expected or ud.sha256_expected):
+        if (strict == 1) and not (ud.md5_expected or ud.sha256_expected):

I realize python allows it, but I think it's pretty amusing that the subject line mentions correcting the data type, and then you compare a string to an integer ;)

Signature · 5 lines
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics
#2 lore raw
In reply to Alejandro Hernandez
Quoted 12 lines · Alejandro Hernandez

[YOCTO #6762]

---
 lib/bb/fetch2/__init__.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
lib/bb/fetch2/__init__.py +0 -0
index df2f2b0..e182a9d 100644

lib/bb/fetch2/__init__.py def verify_checksum(ud, d): · line 550

Quoted 8 lines
lib/bb/fetch2/__init__.py +1 -1
@@ -544,7 +544,7 @@ def verify_checksum(ud, d):
     if ud.method.recommends_checksum(ud):
         # If strict checking enabled and neither sum defined, raise error
         strict = d.getVar("BB_STRICT_CHECKSUM", True) or None
-        if strict and not (ud.md5_expected or ud.sha256_expected):
+        if (strict == 1) and not (ud.md5_expected or ud.sha256_expected):
             logger.error('No checksum specified for %s, please add at least one to the recipe:\n'
                              'SRC_URI[%s] = "%s"\nSRC_URI[%s] = "%s"' %
                              (ud.localpath, ud.md5_name, md5data,

This gets slightly tricky since the value can be a string or an integer or "None". This needs to work if strict = "1" as well as strict = 1 for example.

I'm thinking we should perhaps import the boolean function from meta/lib/oe/types.py in OE-Core into a new types module in bitbake, as well as perhaps allowing the function to accept integers of 0 (False) and other than 0 (True) and accepting "None" as False.

We could then use this function here to get a "good" value for the field. There are a number of other places we should really start using a standardised function too...

From the bigger picture perspective, we've long since wanted to have better typed variables, there is a bit more planning needed for that however this would be a good step towards it IMO.

Cheers,

Richard