Commit Graph

12 Commits

Author SHA1 Message Date
Stephan Hoffmann
d1f5fc29ef pkg-download.mk: Fix shallow clone
Some git versions (e.g. 1.7.0) do not treat trying to shallow clone
a non existing branch or tag as a fatal error but report a warning
and clone HEAD instead. Thus the fallback mechanism does not work
in this case.

This patch introduces a check for the presence of the requested
version as a branch or tag before trying the shallow clone. It
also removes the need to do two clones when a sha1 is given as
a packege version.

[Peter: use cut -f2-]
Signed-off-by: Stephan Hoffmann <sho@relinux.de>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-12-02 08:07:04 -08:00
Arnout Vandecappelle (Essensium/Mind)
3dd4bcf1eb pkg-download: Make a shallow clone for git downloads
When downloading from git, we clone the whole repository and then only
use the latest commit.  That's a lot of redundant stuff.  So instead,
make a shallow clone.  Unfortunately that's only possible when
downloading a branch or tag, so fall back to the old method if git gives
an error.

This speeds up the cloning of a linux git from more than 2 hours to
20 minutes on a 200KB/s link).

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Acked-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-11-04 00:55:35 +01:00
Peter Korsgaard
a77ee7fd40 pkg-download: allow relative BR2_DL_DIR
And move the BUILDROOT_DL_DIR override here as well for consistency.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-09-10 16:00:50 +02:00
Thomas De Schampheleire
5a83e08499 Package downloads: allow restricting to primary site only
This patch adds a new config option BR2_PRIMARY_SITE_ONLY that, when set,
restricts package downloads to the specified BR2_PRIMARY_SITE. If the package
is not present on the primary site, the download fails.

This is useful for project developers who want to ensure that the project can
be built even if the upstream tarball locations disappear.

[thomas.petazzoni@free-electrons.com:
 Extend config option help message with more details coming from the
 commit log. Added a dependency on the fact that a primary site has
 been defined. Without any primary site (the default configuration),
 this new option does not make any sense.]

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-07-22 18:29:33 +02:00
Thomas De Schampheleire
77e2697218 pkg-download.mk: support detection of URI schemes in DOWNLOAD
When using one of the package infrastructures, the DOWNLOAD function
uses $(PKG)_SITE_METHOD to determine the appropriate download method,
which is autodetected based on the URI if none was explicitly set.

When the DOWNLOAD function is called directly, for example when
downloading a toolchain, or from a package that does not use one of
the package infrastructures, the SITE_METHOD is not autodetected,
and thus the download defaults to wget.

This patch adds URI scheme detection directly to the DOWNLOAD method,
in case no SITE_METHOD was detected yet.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-07-22 16:53:24 +02:00
Thomas De Schampheleire
d57669271d pkg-download.mk: use stripurischeme function in localfiles download method
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-07-22 16:53:24 +02:00
Thomas De Schampheleire
0603125673 pkg-download.mk: allow using localfiles outside of package infrastructure
The localfiles download method uses $($(PKG)_SITE))) and
$($(PKG)_SOURCE) instead of $(1) and $(2). This means that it can only
be used for package downloads (through gentargets, autotargets, ...)
and not for other downloads like external toolchains.

This patch changes localfiles to allow this, just as the wget and scp
download methods already did.
For the version control download methods, nothing changes.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-07-22 16:53:24 +02:00
Arnout Vandecappelle
96885ca7eb pkg-download: handle interrupted wget downloads
When a wget download is interrupted, the downloaded file is still created.
It will therefore not be re-downloaded in the next build, and the
extraction will fail.

To avoid this, download to a temporary file first and rename when the
download is successful.

The existing mechanism doesn't work for interrupted downloads because the
whole sub-shell is interrupted, so the rm-part never gets executed.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-07-01 00:26:37 +02:00
Thomas De Schampheleire
3ae7d81407 pkg-download.mk: Add missing argument when downloading from primary mirror (scp)
This problem was already fixed by Markos Chandras for wget, but not for scp.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-05-23 21:49:40 +02:00
Markos Chandras
0b93a8cead pkg-download.mk: Add missing argument when downloading from primary mirror
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-05-05 23:55:42 +02:00
Thomas Petazzoni
c0e6b52482 pkg-*.mk: add some comments, update some existing comments
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-04-19 16:08:09 +02:00
Thomas Petazzoni
6e6b99a571 Split Makefile.package.in in pkg-download.mk, pkg-utils.mk and pkg-gentargets.mk
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-04-19 16:07:15 +02:00