summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Watson <cjwatson@debian.org>2018-05-27 22:07:58 +0200
committerBruno Haible <bruno@clisp.org>2018-05-27 22:07:58 +0200
commitc083cd5af2655e6cd0240d02dccb28556bad8dbf (patch)
treebeb5f35ecc29997f4b1488c68cc47a43586ad591
parenta4e42bc895fcc04147f70dc93b89708342daaf27 (diff)
downloadgnulib-c083cd5af2655e6cd0240d02dccb28556bad8dbf.tar.gz
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.
-rw-r--r--ChangeLog7
-rwxr-xr-xbuild-aux/bootstrap15
2 files changed, 18 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index daa6c2b9e4..26d6414e32 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2018-04-09 Colin Watson <cjwatson@debian.org>
+
+ 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 <eggert@cs.ucla.edu>
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.