[Buildroot] [PATCH v4 2/3] pkg-generic: prevent _SITE URLs with a trailing slash

Arnout Vandecappelle arnout at mind.be
Sun Oct 4 12:38:27 UTC 2015


On 03-10-15 18:22, Luca Ceresoli wrote:
> A trailing slash in FOO_SITE is useless, since Buildroot automatically adds
> a slash between FOO_SITE and the filename as appropriate.
> 
> Moreover it is potentially harmful, which led to introducing a workaround
> to strip them:
> 
>     commit 1cbffbd015106ea90fe49e27433375769dc1035b
>     Author: Shawn J. Goff <shawn7400 at gmail.com>
>     Date:   Fri Apr 12 09:40:30 2013 +0000
> 
>         eliminate double slashes caused by FOO_SITE ending in a slash
> 
>         When a FOO_SITE variable ends in a slash and gets joined with a
>         FOO_SOURCE variable like $(FOO_SITE)/$(FOO_SOURCE), the resulting URI
>         has a double slash. While double-slashes are fine in unix paths, they
>         are reserved in URIs - the part following '//' must be an authority.
> 
> So let's ban trailing slashes entirely. They have all been removed in
> a 7b0e757fb85fd, now add a check to error out loudly in case a new one
> is added.
> 
> Example commands to test this check:
> 
>   $ make busybox-dirclean busybox-source
>   rm -Rf /home/murray/devel/buildroot/output/build/busybox-1.23.2
>   busybox-1.23.2.tar.bz2: OK (md5: 7925683d7dd105aabe9b6b618d48cc73)
>   busybox-1.23.2.tar.bz2: OK (sha1: 7f37193cb249f27630e0b2a2c6c9bbb7b1d24c16)
>   $
>   $ make BUSYBOX_SITE=http://www.busybox.net/downloads/ busybox-dirclean busybox-source
>   rm -Rf /home/murray/devel/buildroot/output/build/busybox-1.23.2
>   BUSYBOX_SITE (http://www.busybox.net/downloads/) cannot have a trailing slash
>   make[1]: *** [/home/murray/devel/buildroot/output/build/busybox-1.23.2/.stamp_downloaded] Error 1
>   make: *** [_all] Error 2
>   $
> 
> Signed-off-by: Luca Ceresoli <luca at lucaceresoli.net>
> Cc: Arnout Vandecappelle <arnout at mind.be>
> Cc: Baruch Siach <baruch at tkos.co.il>

 I'm not going to give it my Rev-by tag since I partly wrote it myself but it
does look good to me.

> 
> ---
> 
> Changed v3 -> v4:
>  - Completely reimplement with make code, not shell code (Arnout actually
>    wrote this patch, I was the typing monkey).
>  - Slightly improve commit log and fix typos (Baruch, me).
> 
> Changed v2 -> v3:
>  - Simplify the check logic removing a useless "&& true".
>  - Expand commit log message. This is a pretty important change, so it
>    should be well justified.
> ---
>  package/pkg-generic.mk | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index 5201fca..de2fb07 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -847,6 +847,10 @@ endif
>  	$(1)-source \
>  	$(1)-source-check
>  
> +ifeq ($$(patsubst %/,ERROR,$$($(2)_SITE)),ERROR)

 Note that by subsituting with ERROR instead of empty, we make sure that we
don't error when _SITE is empty.

 Regards,
 Arnout

> +$$(error $(2)_SITE ($$($(2)_SITE)) cannot have a trailing slash)
> +endif
> +
>  endif # $(2)_KCONFIG_VAR
>  endef # inner-generic-package
>  
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF



More information about the buildroot mailing list