[Buildroot] [PATCH 2/9 v2] pkg-infra: differentiate remote tarball name from local filename

Yann E. MORIN yann.morin.1998 at free.fr
Sat Dec 6 15:08:21 UTC 2014


Samuel, All,

On 2014-12-06 14:28 +0100, Samuel Martin spake thusly:
> On Sat, Dec 6, 2014 at 12:13 PM, Yann E. MORIN <yann.morin.1998 at free.fr> wrote:
> > Some upstreams may use a naming scheme that does not fit well in how
> > Buildroot wants to handle filenames.
> >
> > For example, GitHub used to have a scheme like:
> >     https://github.com/USER/REPO/archive/VERSION.tar.gz
> >
> > which means we would have a local file named VERSION.tar.gz, when we
> > want to have PKG-VERSION.tar.gz
> >
> > Other forges are also known to have similar schemes. Google Code, for
> > example, may also use similarly named files.
> >
> > Introduce a new variable, FOO_UPSTREAM_SOURCE, which the package may set
> > in that case. If not set, it defaults to FOO_SOURCE.
> 
> I wonder how it will play when download falls back on
> http://sources.buildroot.net/, I mean what will be the tarball
> filename uploaded on s.b.n? Will it be FOO_UPSTREAM_SOURCE or
> FOO_SOURCE?
> 
> Afaics, FOO_SOURCE will be uploaded on s.b.n, whereas the fallback url will be:
>   http://sources.buildroot.net/$(FOO_UPSTREAM_SOURCE)

I don't think so.

As far as I can see, we're doing:

    # Argument 1 is the source location
    # Argument 2 is the local filename, optional [...]
    define DOWNLOAD
        $(call DOWNLOAD_INNER,$(1),$(if $(2),$(2),$(notdir $(1))))
    endef

So, we have two cases:
  - upstream and local filenames differ: the second argument is the
    local filename
  - upstream and local filenames are the same: the second argument is
    empty, and defaults to the upstream filename

So, we always end up calling DOWNLOAD_INNER with the local filename as
second argument. Then,

    define DOWNLOAD_INNER
        [...]
        if test -n "$(call qstrip,$(BR2_BACKUP_SITE))" ; then \
            $(call $(DL_MODE)_WGET,$(BR2_BACKUP_SITE)/$(2),$(2)) && exit ; \
        fi ; \
        [...]
    endef

So, we're fetching $(2) from the backup site. And $(2) is the local
filename.

Ergo, the fallback site case is covered. :-)

Pfeww, you made me doubt for a moment, and I was afraid I'd have to
rework the whole series entirely. Not the case, Hehe! ;-p

Regards,
Yann E. MORIN.

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


More information about the buildroot mailing list