support/download/git: do not use git archive, handle it manually
authorYann E. MORIN <yann.morin.1998@free.fr>
Fri, 1 Jul 2016 09:01:17 +0000 (11:01 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Sat, 2 Jul 2016 17:11:14 +0000 (19:11 +0200)
commit3abd5ba4243489b821d44e407528020cd8a138f8
tree6f834f88a8f34c321093bc5e55d2a3a8d851e99c
parent13c89c2f897258bfe389d953018ec99854a1dd53
support/download/git: do not use git archive, handle it manually

We currently use git-archive to generate the tarball. This is all handy
and dandy, but git-archive does not support submodules. In the follow-up
patch, we're going to handle submodules, so we would not be able to use
git-archive.

Instead, we manually generate the archive:
  - extract the tree to the requested cset,
  - get the date of the commit to store in the archive,
  - store only numeric owners,
  - store owner and group as 0 (zero, although any arbitrary value would
    have been fine, as long as it's a constant),
  - sort the files to store in the archive.

We also get rid of the .git directory, because there is no reason to
keep it in the context of Buildroot. Some people would love to keep it
so as to speed up later downloads when updating a package, but that is
not really doable. For example:
  - use current Buildroot
  - it would need foo-12345, so do a clone and keep the .git in the
    generated tarball
  - update Buildroot
  - it would need foo-98765
For that second clone, how could we know we would have to first extract
foo-12345 ? So, the .git in the archive is pretty much useless for
Buildroot.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: Matt Weber <matt@thewebers.ws>
Reviewed-by: Matt Weber <matt@thewebers.ws>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
support/download/git