[bitbake-devel] [bitbake-devel, 1.42, 1.40, v2] git.py: Handle space in git repo name for http/https protocol

Mark Hatle mark.hatle at windriver.com
Mon Jul 8 23:01:27 UTC 2019


On 7/8/19 4:12 PM, Ankur Tyagi wrote:
> We are using TFS in our company and within TFS we have different
> project names that can have spaces.
> With new version of TFS, git repo can also be created inside it and
> the path of those repo also includes the project name that can have
> space.

Yes, spaces are valid.  I don't dispute that.. but however are you entering them?

> Hence the SRC_URI will have a space and that's when I started seeing errors.


SRC_URI = "https://foo.com/bar foobar bar"

That will result in -three- entries:

https://foo.com/bar
foobar
bar

The later two are invalid, because SRC_URI is split on whitespace (spaces and tabs.)

So what I don't understand is how are spaces being entered into the SRC_URI
(other then with %20) unless they are coming in via gitsm?

--Mark

> Hope it answers your question
> 
> regards
> Ankur
> 
> On Tue, Jul 9, 2019 at 6:28 AM Mark Hatle <mark.hatle at windriver.com> wrote:
>>
>> How is a space being added?  I'm a bit confused by this.  Is it due to the gitsm
>> fetching?  or has someone figured out a way in SRC_URI to included spaces?
>>
>> If it's only in the gitsm fetching, then maybe we need to do the conversion
>> there instead.
>>
>> --Mark
>>
>> On 7/3/19 11:46 PM, Ankur Tyagi wrote:
>>> Signed-off-by: Ankur Tyagi <ankur.tyagi85 at gmail.com>
>>> ---
>>>  lib/bb/fetch2/git.py | 3 +++
>>>  1 file changed, 3 insertions(+)
>>>
>>> diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py
>>> index 59a2ee8f..a8fcc2bf 100644
>>> --- a/lib/bb/fetch2/git.py
>>> +++ b/lib/bb/fetch2/git.py
>>> @@ -156,6 +156,9 @@ class Git(FetchMethod):
>>>          if not ud.proto in ('git', 'file', 'ssh', 'http', 'https', 'rsync'):
>>>              raise bb.fetch2.ParameterError("Invalid protocol type", ud.url)
>>>
>>> +        if ud.proto in ('http', 'https'):
>>> +            ud.path = ud.path.replace(" ", "%20")
>>> +
>>>          ud.nocheckout = ud.parm.get("nocheckout","0") == "1"
>>>
>>>          ud.rebaseable = ud.parm.get("rebaseable","0") == "1"
>>>
>>



More information about the bitbake-devel mailing list