From: Colin Watson Date: Sun, 27 May 2018 20:07:58 +0000 (+0200) Subject: bootstrap: allow non-submodule control of gnulib X-Git-Tag: v1.0~5578 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=c083cd5af2655e6cd0240d02dccb28556bad8dbf;p=gnulib.git bootstrap: allow non-submodule control of gnulib Some projects prefer to avoid git submodules for various reasons (they have rather strange UI), but at present they're the only way to pin a particular gnulib commit. Add a couple of extra variables which can be set in bootstrap.conf to control this separately. * build-aux/bootstrap: Honour GNULIB_URL and GNULIB_REVISION in bootstrap.conf when fetching gnulib using "git clone" or via GNULIB_SRCDIR. --- diff --git a/ChangeLog b/ChangeLog index daa6c2b9e4..26d6414e32 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2018-04-09 Colin Watson + + bootstrap: allow non-submodule control of gnulib + * build-aux/bootstrap: Honour GNULIB_URL and GNULIB_REVISION in + bootstrap.conf when fetching gnulib using "git clone" or via + GNULIB_SRCDIR. + 2018-05-21 Paul Eggert crypto: omit stream ops Emacs doesn’t need diff --git a/build-aux/bootstrap b/build-aux/bootstrap index eddacfb64d..747946abdb 100755 --- a/build-aux/bootstrap +++ b/build-aux/bootstrap @@ -1,6 +1,6 @@ #! /bin/sh # Print a version string. -scriptversion=2018-04-28.14; # UTC +scriptversion=2018-05-27.20; # UTC # Bootstrap this package from checked-out sources. @@ -634,9 +634,11 @@ if $use_gnulib; then trap cleanup_gnulib 1 2 13 15 shallow= - git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2' - git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" || - cleanup_gnulib + if test -z "$GNULIB_REVISION"; then + git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2' + fi + git clone $shallow ${GNULIB_URL:-git://git.sv.gnu.org/gnulib} \ + "$gnulib_path" || cleanup_gnulib trap - 1 2 13 15 fi @@ -671,6 +673,11 @@ if $use_gnulib; then ;; esac + if test -d "$GNULIB_SRCDIR"/.git && test -n "$GNULIB_REVISION" \ + && ! git_modules_config submodule.gnulib.url >/dev/null; then + (cd "$GNULIB_SRCDIR" && git checkout "$GNULIB_REVISION") || cleanup_gnulib + fi + # $GNULIB_SRCDIR now points to the version of gnulib to use, and # we no longer need to use git or $gnulib_path below here.