summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2014-04-08 15:03:10 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-04-08 18:05:26 +0100
commit327ed0bfceb993c914a7fe03f3cab2351b835de6 (patch)
tree6c8435332c2e9294c7959614ba35882d14656f69 /bitbake
parent991af87183719bc3920e4edef38d5c75ac6824df (diff)
downloadast2050-yocto-poky-327ed0bfceb993c914a7fe03f3cab2351b835de6.zip
ast2050-yocto-poky-327ed0bfceb993c914a7fe03f3cab2351b835de6.tar.gz
bitbake: fetch2: fix traceback when a wildcard matches a directory
If there is a directory matching a wildcard in SRC_URI when getting file checksums, we should recurse into that instead of producing an error. (Bitbake rev: ae87b7eb414e3d5eefd2effec7b30c22d2186b02) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py28
1 files changed, 18 insertions, 10 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index a9ab75e..5a03a0e 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -962,24 +962,32 @@ def get_file_checksums(filelist, pn):
return None
return checksum
+ def checksum_dir(pth):
+ # Handle directories recursively
+ dirchecksums = []
+ for root, dirs, files in os.walk(pth):
+ for name in files:
+ fullpth = os.path.join(root, name)
+ checksum = checksum_file(fullpth)
+ if checksum:
+ dirchecksums.append((fullpth, checksum))
+ return dirchecksums
+
checksums = []
for pth in filelist.split():
checksum = None
if '*' in pth:
# Handle globs
for f in glob.glob(pth):
- checksum = checksum_file(f)
- if checksum:
- checksums.append((f, checksum))
+ if os.path.isdir(f):
+ checksums.extend(checksum_dir(f))
+ else:
+ checksum = checksum_file(f)
+ if checksum:
+ checksums.append((f, checksum))
continue
elif os.path.isdir(pth):
- # Handle directories
- for root, dirs, files in os.walk(pth):
- for name in files:
- fullpth = os.path.join(root, name)
- checksum = checksum_file(fullpth)
- if checksum:
- checksums.append((fullpth, checksum))
+ checksums.extend(checksum_dir(pth))
continue
else:
checksum = checksum_file(pth)
OpenPOWER on IntegriCloud