diff options
author | Ross Burton <ross@openedhand.com> | 2010-01-15 08:30:33 +0000 |
---|---|---|
committer | Chris Larson <chris_larson@mentor.com> | 2010-02-25 11:42:26 -0700 |
commit | df32920678d15c86897b50b752b937210a01edea (patch) | |
tree | b7146afea39779253f42d4a2925903d06e51fc3b /classes | |
parent | 2360274c8320849d8618aa73252bbb0afb9a0978 (diff) |
base.bbclass: use bb.utils.*_sum instead of calling md5/sha sum commands
Patch courtesy the Poky project.
Signed-off-by: Chris Larson <clarson@mvista.com>
Acked-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
Acked-by: Tom Rini <tom_rini@mentor.com>
Diffstat (limited to 'classes')
-rw-r--r-- | classes/base.bbclass | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass index 990e75ee14..72e57300d8 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -76,23 +76,26 @@ def base_chk_file_vars(parser, localpath, params, data): raise Exception("The path does not exist '%s'" % localpath) if want_md5sum: - try: - md5pipe = os.popen('PATH=%s md5sum %s' % (bb.data.getVar('PATH', data, True), localpath)) - md5data = (md5pipe.readline().split() or [ "" ])[0] - md5pipe.close() - except OSError, e: - raise Exception("Executing md5sum failed") + md5data = bb.utils.md5_file(localpath) + if want_md5sum != md5data: bb.note("The MD5Sums did not match. Wanted: '%s' and Got: '%s'" % (want_md5sum, md5data)) raise Exception("MD5 Sums do not match. Wanted: '%s' Got: '%s'" % (want_md5sum, md5data)) if want_sha256sum: - try: - shapipe = os.popen('PATH=%s oe_sha256sum %s' % (bb.data.getVar('PATH', data, True), localpath)) - sha256data = (shapipe.readline().split() or [ "" ])[0] - shapipe.close() - except OSError, e: - raise Exception("Executing shasum failed") + shadata = bb.utils.sha256_file(localpath) + + # sha256_file() can return None if we are running on Python 2.4 (hashlib is + # 2.5 onwards, sha in 2.4 is 160-bit only), so check for this and call the + # standalone shasum binary if required. + if shadata is None: + try: + shapipe = os.popen('PATH=%s oe_sha256sum %s' % (bb.data.getVar('PATH', data, True), localpath)) + shadata = (shapipe.readline().split() or [ "" ])[0] + shapipe.close() + except OSError: + raise Exception("Executing shasum failed, please build shasum-native") + if want_sha256sum != sha256data: bb.note("The SHA256Sums did not match. Wanted: '%s' and Got: '%s'" % (want_sha256sum, sha256data)) raise Exception("SHA256 Sums do not match. Wanted: '%s' Got: '%s'" % (want_sha256sum, sha256data)) |