fetcher: fix BB_STRICT_CHECKSUM datatype check
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
@@ -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
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
Quoted 12 lines · Alejandro Hernandez
[YOCTO #6762]
Signed-off-by Alejandro Hernandez <[email protected]>--- lib/bb/fetch2/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)lib/bb/fetch2/__init__.py +0
-0
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