From 06fd2b6aaf0392368c6937aa56525f1aa6e76141 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Thu, 1 May 2008 11:42:24 +0000 Subject: base.bbclass: only depend on shasum-native if we don't have hashlib git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4389 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- meta/classes/base.bbclass | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 0c048b997..d27f0d3c5 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -91,10 +91,20 @@ def base_dep_prepend(d): # the case where host == build == target, for now we don't work in # that case though. # - deps = "shasum-native " - if bb.data.getVar('PN', d, True) == "shasum-native": - deps = "" + deps = "" + + # bb.utils.sha256_file() will return None on Python 2.4 because hashlib + # isn't present. In this case we use a shasum-native to checksum, so if + # hashlib isn't present then add shasum-native to the dependencies. + try: + import hashlib + except ImportError: + # Adding shasum-native as a dependency of shasum-native would be + # stupid, so don't do that. + if bb.data.getVar('PN', d, True) != "shasum-native": + deps = "shasum-native " + # INHIBIT_DEFAULT_DEPS doesn't apply to the patch command. Whether or not # we need that built is the responsibility of the patch function / class, not # the application. @@ -484,7 +494,6 @@ python base_scenefunction () { addtask fetch do_fetch[dirs] = "${DL_DIR}" -do_fetch[depends] = "shasum-native:do_populate_staging" python base_do_fetch() { import sys @@ -969,6 +978,15 @@ def base_after_parse(d): depends = depends + " git-native:do_populate_staging" bb.data.setVarFlag('do_fetch', 'depends', depends, d) + # bb.utils.sha256_file() will fail if hashlib isn't present, so we fallback + # on shasum-native. We need to ensure that it is staged before we fetch. + try: + import hashlib + except ImportError: + depends = bb.data.getVarFlag('do_fetch', 'depends', d) or "" + depends = depends + " shasum-native:do_populate_staging" + bb.data.setVarFlag('do_fetch', 'depends', depends, d) + mach_arch = bb.data.getVar('MACHINE_ARCH', d, 1) old_arch = bb.data.getVar('PACKAGE_ARCH', d, 1) if (old_arch == mach_arch): -- cgit v1.2.3