summaryrefslogtreecommitdiff
path: root/bootstrap
diff options
context:
space:
mode:
authorColin Watson <cjwatson@debian.org>2022-01-16 18:49:35 +0000
committerColin Watson <cjwatson@debian.org>2022-01-16 18:49:35 +0000
commitb7e6ca7decc86e0780f20a681cbf3403139a90f5 (patch)
tree38a2f2b435c78fa7a85f302d058d14e7a9f1c6e8 /bootstrap
parent507b0326798a23ba944d63613c160c0ddb36078e (diff)
Update to Gnulib 20220116
* bootstrap: Sync to Gnulib 1eae0f7ea3c220d054025f2c9211700665f9f4a0. * bootstrap.conf (GNULIB_REVISION): Set to 1eae0f7ea3c220d054025f2c9211700665f9f4a0.
Diffstat (limited to 'bootstrap')
-rwxr-xr-xbootstrap22
1 files changed, 19 insertions, 3 deletions
diff --git a/bootstrap b/bootstrap
index 63e76dee..9535aecc 100755
--- a/bootstrap
+++ b/bootstrap
@@ -4,7 +4,7 @@ scriptversion=2021-04-11.09; # UTC
# Bootstrap this package from checked-out sources.
-# Copyright (C) 2003-2021 Free Software Foundation, Inc.
+# Copyright (C) 2003-2022 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -763,9 +763,25 @@ if $use_gnulib; then
shallow=
if test -z "$GNULIB_REVISION"; then
git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
+ git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \
+ || cleanup_gnulib
+ else
+ git fetch -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
+ mkdir -p "$gnulib_path"
+ # Only want a shallow checkout of $GNULIB_REVISION, but git does not
+ # support cloning by commit hash. So attempt a shallow fetch by commit
+ # hash to minimize the amount of data downloaded and changes needed to
+ # be processed, which can drastically reduce download and processing
+ # time for checkout. If the fetch by commit fails, a shallow fetch can
+ # not be performed because we do not know what the depth of the commit
+ # is without fetching all commits. So fallback to fetching all commits.
+ git -C "$gnulib_path" init
+ git -C "$gnulib_path" remote add origin ${GNULIB_URL:-$default_gnulib_url}
+ git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION" \
+ || git -C "$gnulib_path" fetch origin \
+ || cleanup_gnulib
+ git -C "$gnulib_path" reset --hard FETCH_HEAD
fi
- git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \
- || cleanup_gnulib
trap - 1 2 13 15
fi