From: Markus Lehtonen Date: Tue, 29 Mar 2016 13:04:19 +0000 (+0300) Subject: checksum: In FileChecksumCache don't follow directory symlinks X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=66dff37ebcd1dd14ebd6933d727df9cf0a641866;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git checksum: In FileChecksumCache don't follow directory symlinks Before this patch, directory symlinks mathcing filename pattern (either a file name or a glob pattern) were followed. However, directory symlinks deeper in the search chain were omitted by os.walk(). Now directory traversal behaves consistently, ignoring syminks on all levels. One reason for choosing not to "walk into" directory symlinks is that dir symlinks in externalsrc.bbclass in oe-core are causing problems in source tree checksumming. [YOCTO #8853] Signed-off-by: Richard Purdie --- diff --git a/lib/bb/checksum.py b/lib/bb/checksum.py index 7fb46d8db57..2ec964d73b9 100644 --- a/lib/bb/checksum.py +++ b/lib/bb/checksum.py @@ -123,12 +123,14 @@ class FileChecksumCache(MultiProcessCache): # Handle globs for f in glob.glob(pth): if os.path.isdir(f): - checksums.extend(checksum_dir(f)) + if not os.path.islink(f): + checksums.extend(checksum_dir(f)) else: checksum = checksum_file(f) checksums.append((f, checksum)) elif os.path.isdir(pth): - checksums.extend(checksum_dir(pth)) + if not os.path.islink(pth): + checksums.extend(checksum_dir(pth)) else: checksum = checksum_file(pth) checksums.append((pth, checksum))