This patch improves the efficiency of "git clone" in 'bootstrap'.

In the inetutils CI this patch dramatically speeds up of the 'build-tarball'
phase:

Build from August 5:    7 min 29 sec
Build from August 11:   8 min 48 sec
Build from August 18:   6 min 58 sec
Build from August 25:  11 min 50 sec
Build from Sept. 1:    15 min 35 sec
Build from today, #1:  48 min 37 sec
Build from today, #2:  20 min 42 sec and failed:
  ./bootstrap: getting gnulib files...
  Initialized empty Git repository in 
/home/runner/work/ci-check/ci-check/inetutils/gnulib/.git/
  error: RPC failed; curl 56 GnuTLS recv error (-9): Error decoding the 
received TLS packet.
  fetch-pack: unexpected disconnect while reading sideband packet
  fatal: early EOF
  fatal: fetch-pack: invalid index-pack output
  remote: warning: suboptimal pack - out of memory        
  remote: error: Out of memory, malloc failed (tried to allocate 6885877 bytes) 
       
  remote: fatal: packed object 68b375e9b52ceed44ff656214a233616b822c770 (stored 
in ./objects/pack/pack-81de6107cf729dcbf0372b01a06593dc75fe2c17.pack) is 
corrupt        
  remote: aborting due to possible repository corruption on the remote side.
  fatal: protocol error: bad pack header

Build from today, #3 (with this patch):  6 min 40 sec


2025-09-07  Bruno Haible  <[email protected]>

        bootstrap: Improve efficiency of "git clone".
        * top/bootstrap-funclib.sh (default_gnulib_url): Use read-only mirror of
        git.savannah.gnu.org.
        * build-aux/bootstrap: Regenerated.

diff --git a/top/bootstrap-funclib.sh b/top/bootstrap-funclib.sh
index e4f42103b4..0ed5be464e 100644
--- a/top/bootstrap-funclib.sh
+++ b/top/bootstrap-funclib.sh
@@ -1,6 +1,6 @@
 # A library of shell functions for autopull.sh, autogen.sh, and bootstrap.
 
-scriptlibversion=2025-06-10.02; # UTC
+scriptlibversion=2025-09-07.23; # UTC
 
 # Copyright (C) 2003-2025 Free Software Foundation, Inc.
 #
@@ -35,7 +35,7 @@ export LC_ALL
 # Honor $PERL, but work even if there is none.
 PERL="${PERL-perl}"
 
-default_gnulib_url=https://git.savannah.gnu.org/git/gnulib.git
+default_gnulib_url=https://https.git.savannah.gnu.org/git/gnulib.git
 
 # Copyright year, for the --version output.
 copyright_year=`echo "$scriptlibversion" | sed -e 's/[^0-9].*//'`

Reply via email to