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)
downloadpoky-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 a9ab75ee41..5a03a0e46e 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):
962 return None 962 return None
963 return checksum 963 return checksum
964 964
965 def checksum_dir(pth):
966 # Handle directories recursively
967 dirchecksums = []
968 for root, dirs, files in os.walk(pth):
969 for name in files:
970 fullpth = os.path.join(root, name)
971 checksum = checksum_file(fullpth)
972 if checksum:
973 dirchecksums.append((fullpth, checksum))
974 return dirchecksums
975
965 checksums = [] 976 checksums = []
966 for pth in filelist.split(): 977 for pth in filelist.split():
967 checksum = None 978 checksum = None
968 if '*' in pth: 979 if '*' in pth:
969 # Handle globs 980 # Handle globs
970 for f in glob.glob(pth): 981 for f in glob.glob(pth):
971 checksum = checksum_file(f) 982 if os.path.isdir(f):
972 if checksum: 983 checksums.extend(checksum_dir(f))
973 checksums.append((f, checksum)) 984 else:
985 checksum = checksum_file(f)
986 if checksum:
987 checksums.append((f, checksum))
974 continue 988 continue
975 elif os.path.isdir(pth): 989 elif os.path.isdir(pth):
976 # Handle directories 990 checksums.extend(checksum_dir(pth))
977 for root, dirs, files in os.walk(pth):
978 for name in files:
979 fullpth = os.path.join(root, name)
980 checksum = checksum_file(fullpth)
981 if checksum:
982 checksums.append((fullpth, checksum))
983 continue 991 continue
984 else: 992 else:
985 checksum = checksum_file(pth) 993 checksum = checksum_file(pth)