diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2016-07-26 15:36:40 +1200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-07-29 09:53:32 +0100 |
commit | 2a849e7e9be6040bd76b76c24263f63f8f693753 (patch) | |
tree | c39bee6eaa097ea14eeb488b0c6fddb06a0d89c3 | |
parent | ea234239f41a94a4b13b68648d8dc611f793a441 (diff) | |
download | poky-2a849e7e9be6040bd76b76c24263f63f8f693753.tar.gz |
bitbake: lib/bb/checksum: avoid exception on broken symlinks
If using OE's externalsrc with a source tree that is not tracked by git
and contains broken symlinks, you can receive "TypeError: unorderable
types: NoneType() < str()" within the file checksum code due to:
checksums.sort(key=operator.itemgetter(1))
Don't add files with no checksum to the checksums list in order to avoid
this.
(Bitbake rev: 484fe5a3f5b840e5422cbdff0eef9aecfe944a19)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/bb/checksum.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/bitbake/lib/bb/checksum.py b/bitbake/lib/bb/checksum.py index be4ab68915..84289208f4 100644 --- a/bitbake/lib/bb/checksum.py +++ b/bitbake/lib/bb/checksum.py | |||
@@ -120,13 +120,15 @@ class FileChecksumCache(MultiProcessCache): | |||
120 | checksums.extend(checksum_dir(f)) | 120 | checksums.extend(checksum_dir(f)) |
121 | else: | 121 | else: |
122 | checksum = checksum_file(f) | 122 | checksum = checksum_file(f) |
123 | checksums.append((f, checksum)) | 123 | if checksum: |
124 | checksums.append((f, checksum)) | ||
124 | elif os.path.isdir(pth): | 125 | elif os.path.isdir(pth): |
125 | if not os.path.islink(pth): | 126 | if not os.path.islink(pth): |
126 | checksums.extend(checksum_dir(pth)) | 127 | checksums.extend(checksum_dir(pth)) |
127 | else: | 128 | else: |
128 | checksum = checksum_file(pth) | 129 | checksum = checksum_file(pth) |
129 | checksums.append((pth, checksum)) | 130 | if checksum: |
131 | checksums.append((pth, checksum)) | ||
130 | 132 | ||
131 | checksums.sort(key=operator.itemgetter(1)) | 133 | checksums.sort(key=operator.itemgetter(1)) |
132 | return checksums | 134 | return checksums |