All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paulo Neves <ptsneves@gmail.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>,
	bitbake-devel@lists.openembedded.org
Subject: Re: [bitbake-devel] [PATCH]] checksum: Support uri formatted file list
Date: Tue, 25 Jan 2022 13:55:38 +0100	[thread overview]
Message-ID: <eb092645-2fbd-675e-078d-9dd464ca64ef@gmail.com> (raw)
In-Reply-To: <db3861e842d22d49b7c834d9fbc9a5ca613bab01.camel@linuxfoundation.org>

I am not aware of it directly being done anywhere but files declared in 
the recipe are in URI form as far as i know. Where in the self test 
should i add such tests?

Paulo Neves

On 1/25/22 1:20 PM, Richard Purdie wrote:
> On Fri, 2022-01-21 at 16:39 +0100, Paulo Neves wrote:
>> Before this commit, if the file list for checksumming had
>> files names with spaces there would be a crash. This happened
>> due to filelist.split breaking on the file names instead of
>> on k:v boundaries. Now we validate this case and emit a fatal
>> error if such case is found. This needs to be fatal as the split
>> will generate broken k:v from then on.
>>
>> Instead of putting literal spaces in the file list the user
>> should urlencode the file names and if they contain coded spaces
>> they will be decoded. This is consistent with the current
>> practice where file names are urlencoded. A reproducer of the
>> issue this commit fixes, was to pass a do_compile[file-checksums]
>> list with files containing spaces in their names, urlencoded or
>> literal.
>>
>> Change-Id: I6ac4f1cffbb86e913883491d46e8cc69a028e992
>> Signed-off-by: Paulo Neves <ptsneves@gmail.com>
>> ---
>>   bitbake/lib/bb/checksum.py | 9 +++++++--
>>   1 file changed, 7 insertions(+), 2 deletions(-)
>>
>> diff --git a/bitbake/lib/bb/checksum.py b/bitbake/lib/bb/checksum.py
>> index fb8a77f6ab..97cf10825e 100644
>> --- a/bitbake/lib/bb/checksum.py
>> +++ b/bitbake/lib/bb/checksum.py
>> @@ -8,6 +8,7 @@
>>   import glob
>>   import operator
>>   import os
>> +import urllib.parse
>>   import stat
>>   import bb.utils
>>   import logging
>> @@ -110,10 +111,14 @@ class FileChecksumCache(MultiProcessCache):
>>   
>>           checksums = []
>>           for pth in filelist.split():
>> -            exist = pth.split(":")[1]
>> +            spl = pth.split(':')
>> +            if len(spl) != 2:
>> +                bb.fatal("found unformatted path in filelist " + pth)
>> +
>> +            exist = spl[1]
>>               if exist == "False":
>>                   continue
>> -            pth = pth.split(":")[0]
>> +            pth = urllib.parse.unquote(spl[0])
>>               if '*' in pth:
>>                   # Handle globs
>>                   for f in glob.glob(pth):
> Does any code currently urlencode the filepaths into this flag?
>
> I think we may also need to add some tests around this to bitbake-selftest...
>
> Cheers,
>
> Richard
>



  reply	other threads:[~2022-01-25 12:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-21 15:39 [PATCH]] checksum: Support uri formatted file list Paulo Neves
2022-01-25 12:20 ` [bitbake-devel] " Richard Purdie
2022-01-25 12:55   ` Paulo Neves [this message]
2022-01-25 13:09     ` Quentin Schulz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=eb092645-2fbd-675e-078d-9dd464ca64ef@gmail.com \
    --to=ptsneves@gmail.com \
    --cc=bitbake-devel@lists.openembedded.org \
    --cc=richard.purdie@linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.