pkg-download: make sure git downloads fail for unknown versions
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 4 Feb 2014 13:36:56 +0000 (14:36 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Tue, 4 Feb 2014 14:15:48 +0000 (15:15 +0100)
commitfecf5b522b651f1304fdc8976e98776f3a130830
treec0d1e4c6107f6e6b556ebfe21908de34df476122
parentdd712eb31cd041eb51c2731a0cdf0422681bb67d
pkg-download: make sure git downloads fail for unknown versions

The current git download helper creates the tarball by doing:

    git archive <version> | gzip -c > <tarball>

Unfortunately, even if "git archive" fails and returns a non-zero
error code, gzip ignores that, compresses nothing, and returns success
(zero error code). The consequence of this behavior is that when the
git version provided in the package is incorrect, we are not failing
during the download step, but later on when trying to extract the
tarball (which was incorrectly created as a result of the failing git
archive).

To fix this, we change the tarball creation logic to:

   git archive -o <tarball>.tmp <version> &&
   gzip -c <tarball>.tmp > <tarball> &&
   rm -f <tarball>.tmp

If the build is interrupted during the "gzip" command, we may leave
the .tmp file behind us, but this also happens with wget downloads,
and is generally not considered a problem, since this temporary file
will be overwritten next time we attempt to do download this package.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/pkg-download.mk