makepkg: Use a recursive, shallow clone for git:// This clones git submodules, which are required to build most projects that use them. This change is harmless for packages that don't use them. This also modifies the initial clone to use --depth=1, which avoids checking out the entire history and saves some bandwidth and improves the time required to clone. Signed-off-by: Drew DeVault <sir@cmpwn.com> --- I'm still not used to submitting patches through a mailing list, so I apologize if I've done something wrong. Please don't hesitate to let me know if there's something I could do better. scripts/makepkg.sh.in | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 8a67d94..3b74d4d 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -542,7 +542,7 @@ download_git() { if [[ ! -d "$dir" ]] || dir_is_empty "$dir" ; then msg2 "$(gettext "Cloning %s %s repo...")" "${repo}" "git" - if ! git clone --mirror "$url" "$dir"; then + if ! git clone --depth=1 --mirror "$url" "$dir"; then error "$(gettext "Failure while downloading %s %s repo")" "${repo}" "git" plain "$(gettext "Aborting...")" exit 1 @@ -612,6 +612,11 @@ extract_git() { plain "$(gettext "Aborting...")" exit 1 fi + if ! git submodule update --init --recursive ; then + error "$(gettext "Failure while initializing submodules of %s %s repo")" "${repo}" "git" + plain "$(gettext "Aborting...")" + exit 1 + fi fi popd &>/dev/null -- 2.1.2