Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/1] download url broken if url include '+'
@ 2019-11-05  9:04 jemy.zhang at gmail.com
  2019-11-05  9:04 ` [Buildroot] [PATCH 1/1] fix corrupted download url of extra packages jemy.zhang at gmail.com
  0 siblings, 1 reply; 4+ messages in thread
From: jemy.zhang at gmail.com @ 2019-11-05  9:04 UTC (permalink / raw)
  To: buildroot

From: "Jemy Zhang" <jemy.zhang@gmail.com>

While downloading pacakges, the `SITE_METHOD` will be prefixed to the download url of the main package, but the extra download url would not be. If the `SITE URL` accidentally includes '+', url link before '+' would be parsed as `SITE METHOD` by dl-wrapper, and the url broken.

Take `android-tools` package for example:
```
ANDROID_TOOLS_SITE = https://launchpad.net/ubuntu/+archive/primary/+files
ANDROID_TOOLS_EXTRA_DOWNLOADS = android-tools_$(ANDROID_TOOLS_VERSION)-3ubuntu41.debian.tar.gz
```

while build the android-tools package, `ALL_DOWNLOADS` will be expended as:

```
for p in https+https://launchpad.net/ubuntu/+archive/primary/+files/android-tools_4.2.2+git20130218.orig.tar.xz   https://launchpad.ne
t/ubuntu/+archive/primary/+files/android-tools_4.2.2+git20130218-3ubuntu41.debian.tar.gz; do \
        if test ! -e /mnt/fileroot/jun.zhang/buildroot-git/buildroot/dl/android-tools/`basename $p` ; then \
                echo ">>> android-tools 4.2.2+git20130218 Downloading" ; \
                break ; \
        fi ; \
done
```

Notice that there's no 'https+' prefixed to the url, `SITE_METHOD` missing.

and while downloading package, url corrupted:

>--2019-11-05 14:10:29--  http://archive/primary/+files/android-tools_4.2.2+git20130218-3ubuntu41.debian.tar.gz


Jemy Zhang (1):
  fix corrupted download url of extra packages

 package/pkg-generic.mk | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

-- 
2.22.0

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 1/1] fix corrupted download url of extra packages
  2019-11-05  9:04 [Buildroot] [PATCH 0/1] download url broken if url include '+' jemy.zhang at gmail.com
@ 2019-11-05  9:04 ` jemy.zhang at gmail.com
  2019-11-08 17:28   ` Yann E. MORIN
  0 siblings, 1 reply; 4+ messages in thread
From: jemy.zhang at gmail.com @ 2019-11-05  9:04 UTC (permalink / raw)
  To: buildroot

From: "Jemy Zhang" <jemy.zhang@gmail.com>

If the download url of extra packages contains '+', the contents before
'+' will be parsed as SITE_METHOD, the original download url corrupted.

check with android-tools package.

Signed-off-by: Jemy Zhang <jemy.zhang@gmail.com>
---
 package/pkg-generic.mk | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 893faba22a..bb0ca939a3 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -523,8 +523,9 @@ endif
 $(2)_ALL_DOWNLOADS = \
 	$$(if $$($(2)_SOURCE),$$($(2)_SITE_METHOD)+$$($(2)_SITE)/$$($(2)_SOURCE)) \
 	$$(foreach p,$$($(2)_PATCH) $$($(2)_EXTRA_DOWNLOADS),\
-		$$(if $$(findstring ://,$$(p)),$$(p),\
-			$$($(2)_SITE)/$$(p)))
+		$$(call getschemeplusuri,$$(call qstrip,\
+		  $$(if $$(findstring ://,$$(p)),$$(p),\
+			  $$($(2)_SITE)/$$(p))),urlencode))
 
 ifndef $(2)_SITE
  ifdef $(3)_SITE
-- 
2.22.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 1/1] fix corrupted download url of extra packages
  2019-11-05  9:04 ` [Buildroot] [PATCH 1/1] fix corrupted download url of extra packages jemy.zhang at gmail.com
@ 2019-11-08 17:28   ` Yann E. MORIN
  2019-11-08 22:26     ` jemy zhang
  0 siblings, 1 reply; 4+ messages in thread
From: Yann E. MORIN @ 2019-11-08 17:28 UTC (permalink / raw)
  To: buildroot

Jemy, All,

On 2019-11-05 17:04 +0800, jemy.zhang at gmail.com spake thusly:
> From: "Jemy Zhang" <jemy.zhang@gmail.com>
> 
> If the download url of extra packages contains '+', the contents before
> '+' will be parsed as SITE_METHOD, the original download url corrupted.
> 
> check with android-tools package.

Indeed this is broken. Thank you very much for noticing the issue.

> Signed-off-by: Jemy Zhang <jemy.zhang@gmail.com>
> ---
>  package/pkg-generic.mk | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index 893faba22a..bb0ca939a3 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -523,8 +523,9 @@ endif
>  $(2)_ALL_DOWNLOADS = \
>  	$$(if $$($(2)_SOURCE),$$($(2)_SITE_METHOD)+$$($(2)_SITE)/$$($(2)_SOURCE)) \
>  	$$(foreach p,$$($(2)_PATCH) $$($(2)_EXTRA_DOWNLOADS),\
> -		$$(if $$(findstring ://,$$(p)),$$(p),\
> -			$$($(2)_SITE)/$$(p)))
> +		$$(call getschemeplusuri,$$(call qstrip,\
> +		  $$(if $$(findstring ://,$$(p)),$$(p),\
> +			  $$($(2)_SITE)/$$(p))),urlencode))

I am not certain that we want to unconditionally enforce urlencode on
all additional downloads...

Instead, I think we should just replicate the site method for extra
downloads that use the same site as the main download.

I've sent a patch that does just that:
    https://patchwork.ozlabs.org/patch/1192073/

Can you see if that fixes it for you (it did for me, but if you have an
alternate test-case, that'd be nice to have feedback on it too).

Thanks again for the report! :-)

Regards,
Yann E. MORIN.

>  ifndef $(2)_SITE
>   ifdef $(3)_SITE
> -- 
> 2.22.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 1/1] fix corrupted download url of extra packages
  2019-11-08 17:28   ` Yann E. MORIN
@ 2019-11-08 22:26     ` jemy zhang
  0 siblings, 0 replies; 4+ messages in thread
From: jemy zhang @ 2019-11-08 22:26 UTC (permalink / raw)
  To: buildroot

Correct, if the extra download url is relative to the main, only
SITE_METHOD prefix is needed. Thanks for your reviews.

Yann E. MORIN <yann.morin.1998@free.fr> ? 2019?11?9??? ??1:28???

> Jemy, All,
>
> On 2019-11-05 17:04 +0800, jemy.zhang at gmail.com spake thusly:
> > From: "Jemy Zhang" <jemy.zhang@gmail.com>
> >
> > If the download url of extra packages contains '+', the contents before
> > '+' will be parsed as SITE_METHOD, the original download url corrupted.
> >
> > check with android-tools package.
>
> Indeed this is broken. Thank you very much for noticing the issue.
>
> > Signed-off-by: Jemy Zhang <jemy.zhang@gmail.com>
> > ---
> >  package/pkg-generic.mk | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> > index 893faba22a..bb0ca939a3 100644
> > --- a/package/pkg-generic.mk
> > +++ b/package/pkg-generic.mk
> > @@ -523,8 +523,9 @@ endif
> >  $(2)_ALL_DOWNLOADS = \
> >       $$(if
> $$($(2)_SOURCE),$$($(2)_SITE_METHOD)+$$($(2)_SITE)/$$($(2)_SOURCE)) \
> >       $$(foreach p,$$($(2)_PATCH) $$($(2)_EXTRA_DOWNLOADS),\
> > -             $$(if $$(findstring ://,$$(p)),$$(p),\
> > -                     $$($(2)_SITE)/$$(p)))
> > +             $$(call getschemeplusuri,$$(call qstrip,\
> > +               $$(if $$(findstring ://,$$(p)),$$(p),\
> > +                       $$($(2)_SITE)/$$(p))),urlencode))
>
> I am not certain that we want to unconditionally enforce urlencode on
> all additional downloads...
>
> Instead, I think we should just replicate the site method for extra
> downloads that use the same site as the main download.
>
> I've sent a patch that does just that:
>     https://patchwork.ozlabs.org/patch/1192073/
>
> Can you see if that fixes it for you (it did for me, but if you have an
> alternate test-case, that'd be nice to have feedback on it too).
>
> Thanks again for the report! :-)
>
> Regards,
> Yann E. MORIN.
>
> >  ifndef $(2)_SITE
> >   ifdef $(3)_SITE
> > --
> > 2.22.0
> >
> > _______________________________________________
> > buildroot mailing list
> > buildroot at busybox.net
> > http://lists.busybox.net/mailman/listinfo/buildroot
>
> --
>
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics'
> conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___
>      |
> | +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is
> no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v
>  conspiracy.  |
>
> '------------------------------^-------^------------------^--------------------'
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20191109/5535bf9a/attachment-0001.html>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-11-08 22:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-05  9:04 [Buildroot] [PATCH 0/1] download url broken if url include '+' jemy.zhang at gmail.com
2019-11-05  9:04 ` [Buildroot] [PATCH 1/1] fix corrupted download url of extra packages jemy.zhang at gmail.com
2019-11-08 17:28   ` Yann E. MORIN
2019-11-08 22:26     ` jemy zhang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox