[Buildroot] [PATCH v4 0/3] Cleanup trailing slashes from FOO_SITE

Luca Ceresoli luca at lucaceresoli.net
Sat Oct 3 17:22:15 UTC 2015


Hi,

here's the respin of my patch set to clean up the form of FOO_SITE
variables by removing all trailing slashes.

Those slashes are useless and potentially armful, 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.
    
        Signed-off-by: Shawn J. Goff <shawn7400 at gmail.com>
        Signed-off-by: Peter Korsgaard <jacmet at sunsite.dk>

v1 removed all these slashes but did not add a check to prevent some
more ones from slipping in new pagkages, and of course they did. v3
proposed a check, but taht was not ideal. So here's the new, shiny,
fully-make-based version that Arnout's headache produced! :)

Patches from v3 have already be merged that remove the slashes in
existing packages and to state in tha manual that trailing slashes are
incorrect. Here's what's left.

Patch 1 fixes toolchain-external, which introduces a trailing slash on
its own. Patch 2 adds a the check to block trailing slashes before
building. Finally patch 3 removes the workaround that is not needed
anymore.

This work has been inspired by this comment from Arnout Vandecappelle [1]:
>>>>>>>>>>>> >>>>>> >>> >> > +else
>>>>>>>>>>>> >>>>>> >>> >> > +ifneq ($$($(2)_ACTUAL_SOURCE_TARBALL),$$($(2)_SOURCE))
>>>>>>>>>>>> >>>>>> >>> >> > +          $(call DOWNLOAD,$$($(2)_ACTUAL_SOURCE_SITE:/=)/$$($(2)$($(PKG)_SITE:/=)_ACTUAL_SOURCE_TARBALL))
>>>> >> > > 
>>>> >> > >  I think the $($(PKG)_SITE:/=) construct was just introduced because for some
>>>> >> > > packages, the _SITE ends with a / and that should be stripped, and we were too
>>>> >> > > lazy to fix the packages. Hm, looks like all the the external toolchain _SITEs
>>>> >> > > end with a /...

[0] http://lists.busybox.net/pipermail/buildroot/2015-March/121502.html
[1] https://patchwork.ozlabs.org/patch/424980/

Luca Ceresoli (3):
  toolchain-external: strip trailing slash from autogenerated FOO_SITE
  pkg-generic: prevent _SITE URLs with a trailing slash
  download: get rid of trailing slash removal hack for FOO_SITE

 package/pkg-generic.mk                             | 6 +++++-
 toolchain/toolchain-external/toolchain-external.mk | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

-- 
1.9.1



More information about the buildroot mailing list