[Buildroot] [PATCH 09/12] pkg-infra: don't use DL_DIR as scratchpad for temporary downloads

Thomas De Schampheleire patrickdepinguin at gmail.com
Thu Jun 12 06:53:25 UTC 2014


On Sun, Jun 8, 2014 at 10:43 PM, Yann E. MORIN <yann.morin.1998 at free.fr> wrote:
> From: "Yann E. MORIN" <yann.morin.1998 at free.fr>
>
> DL_DIR can be a very precious place for some users: they use it to store
> all the downloaded archives to share across all their Buildroot (and
> maybe non-Buildroot) builds.
>
> We do not want to trash this location with our temporary downloads (e.g.
> git, Hg, svn, cvs repository clones/checkouts, or wget, bzr tep tarballs).
>
> Turns out that we already have some kind of scratchpad, the BUILD_DIR.
> Although it is not really a disposable location, that's the best we have
> so far.
>
> Also, we create the temporary tarballs with mktemp using the final tarrball,
> as template, since we want the temporary to be on the same filesystem as
> the final location, so the 'mv' is just a plain, atomic rename(2), and we
> are not left with a half-copied file as the final location.
>
> Using mktemp ensures all temp file names are unique, so it allows for
> parallel downloads from different build dirs at the same time, without
> cloberring each downloads.
>
> Note: we're using neither ${TMP} nor ${TMPDIR} since they are shared
> locations, sometime with little place (eg. tmpfs), and some of the
> repositories we clone/checkout can be very big.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> Cc: Samuel Martin <s.martin49 at gmail.com>
> Cc: Arnout Vandecappelle <arnout at mind.be>
> Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>

Tested-by: Thomas De Schampheleire <thomas.de.schampheleire at gmail.com>
[tested a particular scenario that used to fail: two separate builds
using a shared DL_DIR, ccache enabled, so that they run almost
synchronously. These would download the same file at the same time,
corrupting each other. With the patches in this series, all works
fine.]


More information about the buildroot mailing list