From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 2/6] pkg-infra: move git download helper to a script
Date: Tue, 14 Jan 2014 21:39:12 +0100 [thread overview]
Message-ID: <52D5A070.5040800@mind.be> (raw)
In-Reply-To: <add407fe211f2032f76fda6442b06b7d8a3af2cc.1389569992.git.yann.morin.1998@free.fr>
On 13/01/14 00:44, Yann E. MORIN wrote:
> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
>
> The git download helper is getting a bit more complex, and does not
> raise an error when a PKG_VERSION is a sha1 that does not exist in
> the repository. Instead, it generates an empty archive.
>
> Fixing it in the Makefile proves to be challenging, to say the least.
>
> Move it into a shell script in support/download/git, which will make
> it much easier to read, maintain, fix an enhance in the future.
This patch contains a few more changes than just moving it to a script.
These should ideally be done in separate patches.
[snip]
> diff --git a/support/download/git b/support/download/git
> new file mode 100755
> index 0000000..99ea1b2
> --- /dev/null
> +++ b/support/download/git
> @@ -0,0 +1,36 @@
> +#!/bin/sh
> +set -e
> +
> +# Download helper for git
> +# Call it with:
> +# $1: git repo
> +# $2: git cset
> +# $3: prefix/
> +# $4: output file
> +# And this environment:
> +# GIT : the git command to call
> +# BUILD_DIR: path to Buildroot's build dir
> +
> +repo="${1}"
> +cset="${2}"
> +prefix="${3}"
> +output="${4}"
> +
> +pushd "${BUILD_DIR}" >/dev/null
This used to be DL_DIR.
Note that I agree that BUILD_DIR is more appropriate.
Although the original indeed does a pushd, this is quite redundant when
it's done in a script. So I'd directly make it a simple cd (without
redirection).
> +rm -rf .git-tmp-repo # In case a previous attempt was interrupted
> +
> +if [ -n "$(${GIT} ls-remote "${repo}" "${cset}" 2>&1)" ]; then
> + printf "Doing shallow clone\n"
> + ${GIT} clone --depth 1 -b "${cset}" --bare "${repo}" .git-tmp-repo
It used to be extracted into $($(PKG)_BASE_NAME). That has the
advantage that it is unique, which makes it possible to do multiple
downloads in parallel (which I sometimes do BTW, by manually starting
downloads in separate shells).
But even better would be $($(PKG)_BASE_NAME).git-tmp-repo :-)
> +else
> + printf "Doing full clone\n"
> + ${GIT} clone --bare "${repo}" .git-tmp-repo
> +fi
> +
> +pushd .git-tmp-repo >/dev/null
> +${GIT} archive --prefix="${prefix}" --format=tar "${cset}" \
> +|gzip -c >"${output}"
We have about 20 instances of the | at the end of the line (as was the
original), and only 4 at the beginning of the line (and two of these were
done by you...).
In the original, the / at the end of the prefix is added explicitly
here in the call to git archive. I think that makes more sense than
adding the / in the call itself.
Regards,
Arnout
> +popd >/dev/null
> +
> +rm -rf .git-tmp-repo
> +popd >/dev/null
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
next prev parent reply other threads:[~2014-01-14 20:39 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-12 23:44 [Buildroot] [PATCH 0/6] [RFC] some download-related changes Yann E. MORIN
2014-01-12 23:44 ` [Buildroot] [PATCH 1/6] Makefile: rename USER_HOOKS_EXTRA_ENV to EXTRA_ENV Yann E. MORIN
2014-01-14 20:44 ` Arnout Vandecappelle
2014-01-12 23:44 ` [Buildroot] [PATCH 2/6] pkg-infra: move git download helper to a script Yann E. MORIN
2014-01-13 14:18 ` Luca Ceresoli
2014-01-13 17:51 ` Yann E. MORIN
2014-01-14 20:39 ` Arnout Vandecappelle [this message]
2014-01-14 22:49 ` Yann E. MORIN
2014-01-12 23:44 ` [Buildroot] [PATCH 3/6] pkg-infra: git helper creates an empty archive if PKG_VERSION is a missing hash Yann E. MORIN
2014-01-13 14:22 ` Luca Ceresoli
2014-01-13 17:50 ` Yann E. MORIN
2014-01-14 20:43 ` Arnout Vandecappelle
2014-01-14 23:21 ` Yann E. MORIN
2014-01-15 8:17 ` Arnout Vandecappelle
2014-01-17 22:35 ` Yann E. MORIN
2014-01-12 23:44 ` [Buildroot] [PATCH 4/6] package infra: DOWNLOAD is never called with two arguments Yann E. MORIN
2014-01-14 20:51 ` Arnout Vandecappelle
2014-01-12 23:44 ` [Buildroot] [PATCH 5/6] pkg-infra: add possiblity to check downloaded files against known hashes Yann E. MORIN
2014-01-13 4:53 ` Baruch Siach
2014-01-13 17:52 ` Yann E. MORIN
2014-01-14 21:37 ` Arnout Vandecappelle
2014-01-14 23:34 ` Yann E. MORIN
2014-01-15 8:22 ` Arnout Vandecappelle
2014-01-15 13:22 ` Gustavo Zacarias
2014-01-17 23:02 ` Yann E. MORIN
2014-01-18 0:33 ` Gustavo Zacarias
2014-01-17 22:41 ` Yann E. MORIN
2014-01-18 15:53 ` Luca Ceresoli
2014-01-15 0:08 ` Gustavo Zacarias
2014-01-12 23:44 ` [Buildroot] [PATCH 6/6] package/ca-certificates: add tarball's hash Yann E. MORIN
2014-01-14 21:39 ` [Buildroot] [PATCH 0/6] [RFC] some download-related changes Arnout Vandecappelle
2014-01-14 23:39 ` Yann E. MORIN
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52D5A070.5040800@mind.be \
--to=arnout@mind.be \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.