From 66dff37ebcd1dd14ebd6933d727df9cf0a641866 Mon Sep 17 00:00:00 2001 From: Markus Lehtonen Date: Tue, 29 Mar 2016 16:04:19 +0300 Subject: [PATCH] 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 --- lib/bb/checksum.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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)) -- 2.47.3