From ff9115673eb413e300aa7cb7e868413489d9024a Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Tue, 7 Feb 2023 18:00:40 +0100 Subject: [PATCH] support/dependencies/dependencies.sh: ensure git is >= 2.0.0 for vendoring The go vendoring fails on CentOS 7 (which uses git 1.8.3.1) with errors related to shallow clones: make docker-compose-source .. go: downloading github.com/matttproud/golang_protobuf_extensions v1.0.4 github.com/docker/compose/v2/pkg/mocks imports github.com/theupdateframework/notary/client imports github.com/docker/go/canonical/json: github.com/docker/go@v1.5.1-1.0.20160303222718-d30aec9fd63c: invalid pseudo-version: git fetch --unshallow -f origin in /home/jacmet/source/buildroot-mirror/output/host/share/go-path/pkg/mod/cache/vcs/48fbd2dfabec81f4c93170677bfc89087d4bec07a2d08f6ca5ce3d17962677ee: exit status 128: fatal: git fetch-pack: expected shallow list make[1]: *** [/home/jacmet/source/buildroot-mirror/output/build/docker-compose-2.15.1/.stamp_downloaded] Error 1 It works with git 2.0.0 (released May 2014, included in Debian 8), so check for >= 2.0.0 with logic similar to the GNU patch version check. Signed-off-by: Peter Korsgaard Signed-off-by: Thomas Petazzoni (cherry picked from commit f229564c36ec64c1f1292b7281ae0bd33840d7a4) Signed-off-by: Peter Korsgaard --- support/dependencies/dependencies.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh index 3822f0ca0e..89ed3c9df9 100755 --- a/support/dependencies/dependencies.sh +++ b/support/dependencies/dependencies.sh @@ -183,6 +183,16 @@ for prog in perl tar wget cpio unzip rsync bc cmp find xargs ${DL_TOOLS} ; do echo " xargs is usually part of the findutils package in your distribution" fi fi + + # we need git >= 2.0.0 for shallow clones / vendoring + if test $prog = "git" ; then + GIT_VERSION="$(git --version | sed -n 's/^git version \(.*\)/\1/p')" + GIT_MAJOR="$(echo "${GIT_VERSION}" | cut -d . -f 1)" + if [ "${GIT_MAJOR}" -lt 2 ]; then + echo "You have git '${GIT_VERSION}' installed. Git >= 2.0.0 is required" + exit 1 + fi + fi done if test "${missing_progs}" = "yes" ; then