maint: update to latest gnulib

Several portability changes, but the one we are most interested in
is the improvement to bootstrap to detect perl modules.

This patch doesn't actually change our bootstrap requirements
(that will be a separate patch), but sets the stage for it.

* .gnulib: Update to latest.
* bootstrap: Regenerate from upstream.

Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Eric Blake 2014-12-08 14:23:36 -07:00
parent 1398b70044
commit 8a408b869c
2 changed files with 35 additions and 9 deletions

@ -1 +1 @@
Subproject commit 9565c3be73eb6d76b7b42a21d68d2e00a62abb6d Subproject commit 3914f3153576e9a5ba4002bde27de05211b5a79c

View File

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Print a version string. # Print a version string.
scriptversion=2013-12-05.23; # UTC scriptversion=2014-12-08.12; # UTC
# Bootstrap this package from checked-out sources. # Bootstrap this package from checked-out sources.
@ -42,6 +42,9 @@ export LC_ALL
local_gl_dir=gl local_gl_dir=gl
# Honour $PERL, but work even if there is none
PERL="${PERL-perl}"
me=$0 me=$0
usage() { usage() {
@ -210,7 +213,17 @@ bootstrap_sync=false
use_git=true use_git=true
check_exists() { check_exists() {
($1 --version </dev/null) >/dev/null 2>&1 if test "$1" = "--verbose"; then
($2 --version </dev/null) >/dev/null 2>&1
if test $? -ge 126; then
# If not found, run with diagnostics as one may be
# presented with env variables to set to find the right version
($2 --version </dev/null)
fi
else
($1 --version </dev/null) >/dev/null 2>&1
fi
test $? -lt 126 test $? -lt 126
} }
@ -408,7 +421,7 @@ sort_ver() { # sort -V is not generally available
get_version() { get_version() {
app=$1 app=$1
$app --version >/dev/null 2>&1 || return 1 $app --version >/dev/null 2>&1 || { $app --version; return 1; }
$app --version 2>&1 | $app --version 2>&1 |
sed -n '# Move version to start of line. sed -n '# Move version to start of line.
@ -446,6 +459,7 @@ check_versions() {
test "$appvar" = TAR && appvar=AMTAR test "$appvar" = TAR && appvar=AMTAR
case $appvar in case $appvar in
GZIP) ;; # Do not use $GZIP: it contains gzip options. GZIP) ;; # Do not use $GZIP: it contains gzip options.
PERL::*) ;; # Keep perl modules as-is
*) eval "app=\${$appvar-$app}" ;; *) eval "app=\${$appvar-$app}" ;;
esac esac
@ -463,11 +477,22 @@ check_versions() {
ret=1 ret=1
continue continue
} ;; } ;;
# Another check is for perl modules. These can be written as
# e.g. perl::XML::XPath in case of XML::XPath module, etc.
perl::*)
# Extract module name
app="${app#perl::}"
if ! $PERL -m"$app" -e 'exit 0' >/dev/null 2>&1; then
warn_ "Error: perl module '$app' not found"
ret=1
fi
continue
;;
esac esac
if [ "$req_ver" = "-" ]; then if [ "$req_ver" = "-" ]; then
# Merely require app to exist; not all prereq apps are well-behaved # Merely require app to exist; not all prereq apps are well-behaved
# so we have to rely on $? rather than get_version. # so we have to rely on $? rather than get_version.
if ! check_exists $app; then if ! check_exists --verbose $app; then
warn_ "Error: '$app' not found" warn_ "Error: '$app' not found"
ret=1 ret=1
fi fi
@ -598,8 +623,8 @@ case ${GNULIB_SRCDIR--} in
# Note that $use_git is necessarily true in this case. # Note that $use_git is necessarily true in this case.
if git_modules_config submodule.gnulib.url >/dev/null; then if git_modules_config submodule.gnulib.url >/dev/null; then
echo "$0: getting gnulib files..." echo "$0: getting gnulib files..."
git submodule init || exit $? git submodule init -- "$gnulib_path" || exit $?
git submodule update || exit $? git submodule update -- "$gnulib_path" || exit $?
elif [ ! -d "$gnulib_path" ]; then elif [ ! -d "$gnulib_path" ]; then
echo "$0: getting gnulib files..." echo "$0: getting gnulib files..."
@ -628,13 +653,14 @@ case ${GNULIB_SRCDIR--} in
# This fallback allows at least git 1.5.5. # This fallback allows at least git 1.5.5.
if test -f "$gnulib_path"/gnulib-tool; then if test -f "$gnulib_path"/gnulib-tool; then
# Since file already exists, assume submodule init already complete. # Since file already exists, assume submodule init already complete.
git submodule update || exit $? git submodule update -- "$gnulib_path" || exit $?
else else
# Older git can't clone into an empty directory. # Older git can't clone into an empty directory.
rmdir "$gnulib_path" 2>/dev/null rmdir "$gnulib_path" 2>/dev/null
git clone --reference "$GNULIB_SRCDIR" \ git clone --reference "$GNULIB_SRCDIR" \
"$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \ "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
&& git submodule init && git submodule update \ && git submodule init -- "$gnulib_path" \
&& git submodule update -- "$gnulib_path" \
|| exit $? || exit $?
fi fi
fi fi