[bitbake-devel] [PATCH 1/1] lib/bb/checksum: avoid exception on broken symlinks
Richard Purdie
richard.purdie at linuxfoundation.org
Tue Jul 26 07:08:42 UTC 2016
On Tue, 2016-07-26 at 15:36 +1200, Paul Eggleton wrote:
> 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.
In some of the cache code we have to note whether files were checked
for but didn't exist. This means that if they then do exist in a later
run, we know to invalidate the cache.
Does this change break that?
Cheers,
Richard
> Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
> ---
> 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 be4ab68..8428920 100644
> --- a/lib/bb/checksum.py
> +++ b/lib/bb/checksum.py
> @@ -120,13 +120,15 @@ class FileChecksumCache(MultiProcessCache):
> checksums.extend(checksum_dir(f))
> else:
> checksum = checksum_file(f)
> - checksums.append((f, checksum))
> + if checksum:
> + checksums.append((f, checksum))
> elif os.path.isdir(pth):
> if not os.path.islink(pth):
> checksums.extend(checksum_dir(pth))
> else:
> checksum = checksum_file(pth)
> - checksums.append((pth, checksum))
> + if checksum:
> + checksums.append((pth, checksum))
>
> checksums.sort(key=operator.itemgetter(1))
> return checksums
> --
> 2.5.5
>
More information about the bitbake-devel
mailing list