download: Use shallow clones for big projects

Downloading coreboot and U-Boot takes quite the disk space and bandwith.
We don't need to download entire repos, only the revisions that we are
interested in.

Use the --depth=1 option to only download the files we need. Since the
initial clones may not have our target revision, always try to fetch it.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
This commit is contained in:
Alper Nebi Yasak 2022-08-27 16:39:47 +03:00 committed by Denis 'GNUtoo' Carikli
parent 12dc2140af
commit ec40eb8633
Signed by: GNUtoo
GPG Key ID: 5F5DFCC14177E263
2 changed files with 20 additions and 20 deletions

View File

@ -152,21 +152,21 @@ downloadfor() {
if [ ! -d coreboot ]; then if [ ! -d coreboot ]; then
printf "Download coreboot from upstream:\n" printf "Download coreboot from upstream:\n"
git clone https://review.coreboot.org/coreboot || rm -Rf coreboot git clone --depth=1 https://review.coreboot.org/coreboot || rm -Rf coreboot
if [ ! -d coreboot ]; then if [ ! -d coreboot ]; then
printf "WARNING: Upstream failed. Trying backup github repository:\n" printf "WARNING: Upstream failed. Trying backup github repository:\n"
git clone https://github.com/coreboot/coreboot.git || rm -Rf coreboot git clone --depth=1 https://github.com/coreboot/coreboot.git || rm -Rf coreboot
fi fi
if [ ! -d coreboot ]; then if [ ! -d coreboot ]; then
printf "ERROR: download/coreboot: Problem with git-clone. Network issue?\n" printf "ERROR: download/coreboot: Problem with git-clone. Network issue?\n"
cd ../; return 1 cd ../; return 1
fi fi
else
( cd coreboot/; git pull || touch ../build_error )
if [ -f ../build_error ]; then
printf "ERROR: download/coreboot: Problem with git-pull. Network issue?\n"
cd ../; return 1
fi fi
( cd coreboot/; git fetch --depth=1 origin "${cbrevision}" || touch ../build_error )
if [ -f ../build_error ]; then
printf "ERROR: download/coreboot: Problem with git-fetch. Network issue?\n"
cd ../; return 1
fi fi
cp -R coreboot "${cbtree}" || touch ../build_error cp -R coreboot "${cbtree}" || touch ../build_error
@ -184,7 +184,7 @@ downloadfor() {
cd ../../; return 1 cd ../../; return 1
fi fi
git submodule update --init || touch ../../build_error git submodule update --init --depth=1 || touch ../../build_error
if [ -f ../../build_error ]; then if [ -f ../../build_error ]; then
printf "ERROR: download/coreboot: Unable to update submodules for tree '%s'\n" "${cbtree}" printf "ERROR: download/coreboot: Unable to update submodules for tree '%s'\n" "${cbtree}"
cd ../../; return 1 cd ../../; return 1

View File

@ -125,12 +125,12 @@ downloadfor() {
if [ ! -d "${uboot_dir}" ]; then if [ ! -d "${uboot_dir}" ]; then
printf "Download u-boot from upstream:\n" printf "Download u-boot from upstream:\n"
git clone https://source.denx.de/u-boot/u-boot.git \ git clone --depth=1 https://source.denx.de/u-boot/u-boot.git \
"${uboot_dir}" || \ "${uboot_dir}" || \
rm -Rf "${uboot_dir}" rm -Rf "${uboot_dir}"
if [ ! -d "${uboot_dir}" ]; then if [ ! -d "${uboot_dir}" ]; then
printf "WARNING: Upstream failed. Trying backup github repository:\n" printf "WARNING: Upstream failed. Trying backup github repository:\n"
git clone https://github.com/u-boot/u-boot.git \ git clone --depth=1 https://github.com/u-boot/u-boot.git \
"${uboot_dir}" || \ "${uboot_dir}" || \
rm -Rf coreboot rm -Rf coreboot
fi fi
@ -140,15 +140,15 @@ downloadfor() {
"download/u-boot" "download/u-boot"
return 1 return 1
fi fi
else fi
git -C "${uboot_dir}" pull || touch build_error
git -C "${uboot_dir}" fetch --depth=1 origin "${ubrevision}" || touch build_error
if [ -f build_error ]; then if [ -f build_error ]; then
printf \ printf \
"ERROR: %s: Problem with git-pull. Network issue?\n" \ "ERROR: %s: Problem with git-fetch. Network issue?\n" \
"download/u-boot" "download/u-boot"
return 1 return 1
fi fi
fi
cp -R "${uboot_dir}" "${ubtree}" || touch build_error cp -R "${uboot_dir}" "${ubtree}" || touch build_error
if [ -f build_error ]; then if [ -f build_error ]; then
@ -167,7 +167,7 @@ downloadfor() {
return 1 return 1
fi fi
git -C "${ubtree}" submodule update --init || touch build_error git -C "${ubtree}" submodule update --init --depth=1 || touch build_error
if [ -f build_error ]; then if [ -f build_error ]; then
printf "ERROR: %s: Unable to update submodules for tree '%s'\n" \ printf "ERROR: %s: Unable to update submodules for tree '%s'\n" \
"${ubtree}" "${ubtree}"