diff options
Diffstat (limited to 'classes/base.bbclass')
| -rw-r--r-- | classes/base.bbclass | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass index 384a67d3d6..9a242720e7 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -151,9 +151,27 @@ def base_chk_file(parser, pn, pv, src_uri, localpath, data): file.write("[%s]\nmd5=%s\nsha256=%s\n\n" % (src_uri, md5data, shadata)) file.close() + + from string import maketrans + trtable = maketrans("", "") + uname = src_uri.split("/")[-1].translate(trtable, "-+._") + + try: + ufile = open("%s/%s.sum" % (bb.data.getVar("TMPDIR", data, 1), uname), "wt") + except: + return False + + if not ufile: + raise Exception("Creating %s.sum failed" % uname) + + ufile.write("SRC_URI = \"%s;name=%s\"\nSRC_URI[%s.md5sum] = \"%s\"\nSRC_URI[%s.sha256sum] = \"%s\"\n" % (src_uri, uname, uname, md5data, uname, shadata)) + ufile.close() + if not bb.data.getVar("OE_STRICT_CHECKSUMS",data, True): bb.note("This package has no entry in checksums.ini, please add one") bb.note("\n[%s]\nmd5=%s\nsha256=%s" % (src_uri, md5data, shadata)) + bb.note("This package has no checksums in corresponding recipe, please add") + bb.note("SRC_URI = \"%s;name=%s\"\nSRC_URI[%s.md5sum] = \"%s\"\nSRC_URI[%s.sha256sum] = \"%s\"\n" % (src_uri, uname, uname, md5data, uname, shadata)) return True else: bb.note("Missing checksum") @@ -226,14 +244,17 @@ def base_version_less_or_equal(variable, checkvalue, truevalue, falsevalue, d): return falsevalue def base_contains(variable, checkvalues, truevalue, falsevalue, d): + val = bb.data.getVar(variable,d,1) + if not val: + return falsevalue matches = 0 if type(checkvalues).__name__ == "str": checkvalues = [checkvalues] for value in checkvalues: - if bb.data.getVar(variable,d,1).find(value) != -1: + if val.find(value) != -1: matches = matches + 1 if matches == len(checkvalues): - return truevalue + return truevalue return falsevalue def base_both_contain(variable1, variable2, checkvalue, d): |
