[bitbake-devel] [PATCH] fetch2: Cleanup file checksum generation

Paul Eggleton paul.eggleton at linux.intel.com
Mon Apr 28 12:08:06 UTC 2014


On Monday 28 April 2014 13:55:48 Jacob Kroon wrote:
> On Mon, Apr 28, 2014 at 1:23 PM, Paul Eggleton <
> 
> paul.eggleton at linux.intel.com> wrote:
> > On Saturday 26 April 2014 16:32:18 Jacob Kroon wrote:
> > > Cleanup the fix done in f9416e76e272ba3249abff099f6f3a47fe82e03e.
> > > 
> > > Instead of adding continue statements we can just move the last
> > > statements into the final else-clause.
> > > 
> > > Signed-off-by: Jacob Kroon <jacob.kroon at mikrodidakt.se>
> > > ---
> > > 
> > >  lib/bb/fetch2/__init__.py | 7 ++-----
> > >  1 file changed, 2 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
> > > index 5a03a0e..bc4e8fd 100644
> > > --- a/lib/bb/fetch2/__init__.py
> > > +++ b/lib/bb/fetch2/__init__.py
> > > 
> > > @@ -985,15 +985,12 @@ def get_file_checksums(filelist, pn):
> > >                      checksum = checksum_file(f)
> > >                      
> > >                      if checksum:
> > >                          checksums.append((f, checksum))
> > 
> > Note the above, then see below.
> > 
> > > -            continue
> > > 
> > >          elif os.path.isdir(pth):
> > >              checksums.extend(checksum_dir(pth))
> > > 
> > > -            continue
> > > 
> > >          else:
> > >              checksum = checksum_file(pth)
> > > 
> > > -
> > > -        if checksum:
> > > -            checksums.append((pth, checksum))
> > > +            if checksum:
> > > +                checksums.append((pth, checksum))
> > > 
> > >      checksums.sort(key=operator.itemgetter(1))
> > >      return checksums
> > 
> > This cleanup seems innocuous but unfortunately it does cause a change in
> > behaviour - now for the glob case we will get the last item duplicated
> > because
> > it will be added to the list a second time at the end.
> 
> Sorry..
> But I can't see why this would cause a different behaviour. Both previous
> 'continue' statements applied to the outer for-loop. Unless they have an
> effect on the if-statements aswell ?

Because if we expand a glob we add each expanded item to the list, but because 
we use the "checksum" variable in that inner loop as well it will be left 
assigned to the last added item; thus without the continue when it is checked 
again at the end it will still be assigned and will add it to the list a 
second time.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the bitbake-devel mailing list