<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, 4 Aug 2019, 11:45 a.m. Khem Raj, &lt;<a href="mailto:raj.khem@gmail.com">raj.khem@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 8/3/19 2:34 PM, Ankur Tyagi wrote:<br>
&gt; Hi Richard,<br>
&gt; <br>
&gt; Any input on how it should be handled? I have identified the area like <br>
&gt; you asked and some ways to fix it as well<br>
&gt; <br>
&gt; Thanks<br>
&gt; Ankur<br>
&gt; <br>
&gt; On Sun, 28 Jul 2019, 9:15 p.m. Ankur Tyagi, &lt;<a href="mailto:ankur.tyagi85@gmail.com" target="_blank" rel="noreferrer">ankur.tyagi85@gmail.com</a> <br>
&gt; &lt;mailto:<a href="mailto:ankur.tyagi85@gmail.com" target="_blank" rel="noreferrer">ankur.tyagi85@gmail.com</a>&gt;&gt; wrote:<br>
&gt; <br>
&gt;     How about something like this:<br>
&gt; <br>
&gt;     diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py<br>
&gt;     index f6b5529b..fa1f9e27 100644<br>
&gt;     --- a/lib/bb/fetch2/__init__.py<br>
&gt;     +++ b/lib/bb/fetch2/__init__.py<br>
&gt;     @@ -380,6 +380,9 @@ def decodeurl(url):<br>
&gt;               user = &#39;&#39;<br>
&gt;               pswd = &#39;&#39;<br>
&gt; <br>
&gt;     +    if type not in [&#39;git&#39;]:<br>
&gt;     +        path = urllib.parse.unquote(path)<br>
&gt;     +<br>
&gt;           p = collections.OrderedDict()<br>
&gt;           if parm:<br>
&gt;               for s in parm.split(&#39;;&#39;):<br>
&gt;     @@ -389,7 +392,7 @@ def decodeurl(url):<br>
&gt;                       s1, s2 = s.split(&#39;=&#39;)<br>
&gt;                       p[s1] = s2<br>
&gt; <br>
&gt;     -    return type, host, urllib.parse.unquote(path), user, pswd, p<br>
&gt;     +    return type, host, path, user, pswd, p<br>
<br>
It would be good to add some self test for this case as well and patch <br>
needs to be formatted as per <br>
<a href="https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines" rel="noreferrer noreferrer" target="_blank">https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines</a><br>
<br>I wanted to get nod on the fix so that I can send v3 of patch. I like your idea for self test , any reference on how to do it would be great. Thanks<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote></div></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
&gt; <br>
&gt;       def encodeurl(decoded):<br>
&gt;           &quot;&quot;&quot;Encodes a URL from tokens (scheme, network location, path,<br>
&gt; <br>
&gt;     regards<br>
&gt;     Ankur<br>
&gt; <br>
&gt;     On Fri, Jul 26, 2019 at 3:13 PM Ankur Tyagi &lt;<a href="mailto:ankur.tyagi85@gmail.com" target="_blank" rel="noreferrer">ankur.tyagi85@gmail.com</a><br>
&gt;     &lt;mailto:<a href="mailto:ankur.tyagi85@gmail.com" target="_blank" rel="noreferrer">ankur.tyagi85@gmail.com</a>&gt;&gt; wrote:<br>
&gt;      &gt;<br>
&gt;      &gt; Hi,<br>
&gt;      &gt;<br>
&gt;      &gt; Previous idea is stupid, please discard that.<br>
&gt;      &gt; Just checked quote/unquote were added as part of commit<br>
&gt;      &gt; b1dbc24ebcc4e5100c32568c2c41fd982fb4bcce<br>
&gt;      &gt;<br>
&gt;      &gt; So explaining the situation again --&gt; when fecthing from repo url<br>
&gt;      &gt; <a href="https://tfs.local/repos/foo%bar" rel="noreferrer noreferrer" target="_blank">https://tfs.local/repos/foo%bar</a><br>
&gt;      &gt;<br>
&gt;      &gt; During FetchData initialization, decodeurl(d.expand(url)) returns<br>
&gt;     path<br>
&gt;      &gt; with %20 stripped<br>
&gt;      &gt;<br>
&gt;      &gt; [log][__init__][decodeurl] Path returned /repos/foo bar<br>
&gt;      &gt;<br>
&gt;      &gt; And when git method urldata_init() is called, it sets gitsrcname with<br>
&gt;      &gt; space instead of %20<br>
&gt;      &gt;<br>
&gt;      &gt; [log][git][urldata_init] gitsrcname is tfs.local.repos.foo bar<br>
&gt;      &gt;<br>
&gt;      &gt; And when git method _get_repo_url is called, it always returns Path<br>
&gt;      &gt; with space instead of %20<br>
&gt;      &gt;<br>
&gt;      &gt; [log][git][_get_repo_url] Path returned /repos/foo bar<br>
&gt;      &gt;<br>
&gt;      &gt; So I am bit confused now on how to handle it properly as unquote is<br>
&gt;      &gt; removing %20 and it cannot be added back in later stage.<br>
&gt;      &gt;<br>
&gt;      &gt; Regards<br>
&gt;      &gt; Ankur<br>
&gt;      &gt;<br>
&gt;      &gt;<br>
&gt;      &gt; On Thu, Jul 25, 2019 at 7:23 PM Ankur Tyagi<br>
&gt;     &lt;<a href="mailto:ankur.tyagi85@gmail.com" target="_blank" rel="noreferrer">ankur.tyagi85@gmail.com</a> &lt;mailto:<a href="mailto:ankur.tyagi85@gmail.com" target="_blank" rel="noreferrer">ankur.tyagi85@gmail.com</a>&gt;&gt; wrote:<br>
&gt;      &gt; &gt;<br>
&gt;      &gt; &gt; Hi,<br>
&gt;      &gt; &gt;<br>
&gt;      &gt; &gt; Sorry for the late reply but I have figured out where %20 is<br>
&gt;     being stripped out.<br>
&gt;      &gt; &gt;<br>
&gt;      &gt; &gt; File lib/bb/fetch2/__init__.py, method decodeurl(url) is returning<br>
&gt;      &gt; &gt; path as urllib.parse.unquote(path) which strips out %20<br>
&gt;      &gt; &gt; So if I return path as it is, then %20 is preserved and works<br>
&gt;     as expected.<br>
&gt;      &gt; &gt;<br>
&gt;      &gt; &gt; diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py<br>
&gt;      &gt; &gt; index f6b5529b..97fd59e1 100644<br>
&gt;      &gt; &gt; --- a/lib/bb/fetch2/__init__.py<br>
&gt;      &gt; &gt; +++ b/lib/bb/fetch2/__init__.py<br>
&gt;      &gt; &gt; @@ -389,7 +389,7 @@ def decodeurl(url):<br>
&gt;      &gt; &gt;                  s1, s2 = s.split(&#39;=&#39;)<br>
&gt;      &gt; &gt;                  p[s1] = s2<br>
&gt;      &gt; &gt;<br>
&gt;      &gt; &gt; -    return type, host, urllib.parse.unquote(path), user, pswd, p<br>
&gt;      &gt; &gt; +    return type, host, path, user, pswd, p<br>
&gt;      &gt; &gt;<br>
&gt;      &gt; &gt;<br>
&gt;      &gt; &gt; Is above change acceptable?<br>
&gt;      &gt; &gt;<br>
&gt;      &gt; &gt; Regards<br>
&gt;      &gt; &gt; Ankur<br>
&gt;      &gt; &gt;<br>
&gt;      &gt; &gt; On Wed, Jul 10, 2019 at 4:33 AM Richard Purdie<br>
&gt;      &gt; &gt; &lt;<a href="mailto:richard.purdie@linuxfoundation.org" target="_blank" rel="noreferrer">richard.purdie@linuxfoundation.org</a><br>
&gt;     &lt;mailto:<a href="mailto:richard.purdie@linuxfoundation.org" target="_blank" rel="noreferrer">richard.purdie@linuxfoundation.org</a>&gt;&gt; wrote:<br>
&gt;      &gt; &gt; &gt;<br>
&gt;      &gt; &gt; &gt; On Wed, 2019-07-10 at 21:26 +1200, Ankur Tyagi wrote:<br>
&gt;      &gt; &gt; &gt; &gt; Hi,<br>
&gt;      &gt; &gt; &gt; &gt;<br>
&gt;      &gt; &gt; &gt; &gt; Is there something else that needs to be done in this patch? Or<br>
&gt;      &gt; &gt; &gt; &gt; perhaps there is a better to handle this?<br>
&gt;      &gt; &gt; &gt; &gt; I am willing to learn and try it out if original patch is<br>
&gt;     not good.<br>
&gt;      &gt; &gt; &gt;<br>
&gt;      &gt; &gt; &gt; I think Mark is right, we need to figure out where the %20<br>
&gt;     characters<br>
&gt;      &gt; &gt; &gt; are being stripped out and preserve them rather than<br>
&gt;     injecting them<br>
&gt;      &gt; &gt; &gt; back in again.<br>
&gt;      &gt; &gt; &gt;<br>
&gt;      &gt; &gt; &gt; The question is therefore where they&#39;re being stripped out in<br>
&gt;     the code?<br>
&gt;      &gt; &gt; &gt;<br>
&gt;      &gt; &gt; &gt; Cheers,<br>
&gt;      &gt; &gt; &gt;<br>
&gt;      &gt; &gt; &gt; Richard<br>
&gt;      &gt; &gt; &gt;<br>
&gt; <br>
&gt; <br>
<br>
</blockquote></div></div></div>