[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