summaryrefslogtreecommitdiff
path: root/bootstrap
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2014-12-29 22:33:25 +0000
committerPádraig Brady <P@draigBrady.com>2014-12-30 02:21:47 +0000
commit974c355c595598a219785b6661bb6b030aaef4df (patch)
tree732f78fb9473ad56b0a485905c19cd31e442f7ff /bootstrap
parentfe14d42ec93b25b244b2061fd1236911c0a5b0e1 (diff)
downloadcoreutils-974c355c595598a219785b6661bb6b030aaef4df.tar.xz
build: update to latest gnulib
Included in this are gnulib changes 3ea43e02 2768ceb7 which make the device IDs from /proc/self/mountinfo available to df. This can be leveraged by a subsequent change to df to present a more accurate list of file systems. * bootstrap: Merge from gnulib. * src/ls.c (dev_ino_pop): s/obstack_blank/obstack_blank_fast/ as this API/ABI has changed, giving memory exhausted errors if negative (large positive) numbers are passed to obstack_blank(). * tests/df/skip-duplicates.sh: Adjust as the new gnulib code requires a non NULL mnt_opts even when mnt_type is not "none".
Diffstat (limited to 'bootstrap')
-rwxr-xr-xbootstrap40
1 files changed, 33 insertions, 7 deletions
diff --git a/bootstrap b/bootstrap
index a3e68f009..1f4c97b8f 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,6 +1,6 @@
#! /bin/sh
# Print a version string.
-scriptversion=2013-12-05.23; # UTC
+scriptversion=2014-12-08.12; # UTC
# Bootstrap this package from checked-out sources.
@@ -42,6 +42,9 @@ export LC_ALL
local_gl_dir=gl
+# Honour $PERL, but work even if there is none
+PERL="${PERL-perl}"
+
me=$0
usage() {
@@ -210,7 +213,17 @@ bootstrap_sync=false
use_git=true
check_exists() {
+ 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
}
@@ -408,7 +421,7 @@ sort_ver() { # sort -V is not generally available
get_version() {
app=$1
- $app --version >/dev/null 2>&1 || return 1
+ $app --version >/dev/null 2>&1 || { $app --version; return 1; }
$app --version 2>&1 |
sed -n '# Move version to start of line.
@@ -446,6 +459,7 @@ check_versions() {
test "$appvar" = TAR && appvar=AMTAR
case $appvar in
GZIP) ;; # Do not use $GZIP: it contains gzip options.
+ PERL::*) ;; # Keep perl modules as-is
*) eval "app=\${$appvar-$app}" ;;
esac
@@ -463,11 +477,22 @@ check_versions() {
ret=1
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
if [ "$req_ver" = "-" ]; then
# Merely require app to exist; not all prereq apps are well-behaved
# 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"
ret=1
fi
@@ -598,8 +623,8 @@ case ${GNULIB_SRCDIR--} in
# Note that $use_git is necessarily true in this case.
if git_modules_config submodule.gnulib.url >/dev/null; then
echo "$0: getting gnulib files..."
- git submodule init || exit $?
- git submodule update || exit $?
+ git submodule init -- "$gnulib_path" || exit $?
+ git submodule update -- "$gnulib_path" || exit $?
elif [ ! -d "$gnulib_path" ]; then
echo "$0: getting gnulib files..."
@@ -628,13 +653,14 @@ case ${GNULIB_SRCDIR--} in
# This fallback allows at least git 1.5.5.
if test -f "$gnulib_path"/gnulib-tool; then
# Since file already exists, assume submodule init already complete.
- git submodule update || exit $?
+ git submodule update -- "$gnulib_path" || exit $?
else
# Older git can't clone into an empty directory.
rmdir "$gnulib_path" 2>/dev/null
git clone --reference "$GNULIB_SRCDIR" \
"$(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 $?
fi
fi