From 30071b2f5cb8135154cbc7bb0ec76c5926d2b983 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Tue, 8 May 2012 11:05:29 +0200 Subject: [PATCH] build: update gnulib submodule to latest; also bootstrap and init.sh * bootstrap: Update from gnulib. * tests/init.sh: Likewise. --- bootstrap | 44 ++++++++++++++++++++++++++++++++++++++++---- gnulib | 2 +- tests/init.sh | 37 +++++++++++++++++++++++++++---------- 3 files changed, 68 insertions(+), 15 deletions(-) diff --git a/bootstrap b/bootstrap index c8ee3cc67..c496d29fa 100755 --- a/bootstrap +++ b/bootstrap @@ -1,6 +1,6 @@ #! /bin/sh # Print a version string. -scriptversion=2012-02-11.09; # UTC +scriptversion=2012-04-26.13; # UTC # Bootstrap this package from checked-out sources. @@ -36,6 +36,10 @@ nl=' LC_ALL=C export LC_ALL +# Ensure that CDPATH is not set. Otherwise, the output from cd +# would cause trouble in at least one use below. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + local_gl_dir=gl me=$0 @@ -423,12 +427,28 @@ check_versions() { $use_git || continue fi # Honor $APP variables ($TAR, $AUTOCONF, etc.) - appvar=`echo $app | tr '[a-z]-' '[A-Z]_'` + appvar=`echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_'` test "$appvar" = TAR && appvar=AMTAR case $appvar in GZIP) ;; # Do not use $GZIP: it contains gzip options. *) eval "app=\${$appvar-$app}" ;; esac + + # Handle the still-experimental Automake-NG programs specially. + # They remain named as the mainstream Automake programs ("automake", + # and "aclocal") to avoid gratuitous incompatibilities with + # pre-existing usages (by, say, autoreconf, or custom autogen.sh + # scripts), but correctly identify themselves (as being part of + # "GNU automake-ng") when asked their version. + case $app in + automake-ng|aclocal-ng) + app=`echo "$app" | sed 's/-ng$//'` + ($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || { + echo "$me: Error: '$app' not found or not from Automake-NG" >&2 + ret=1 + 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. @@ -758,9 +778,15 @@ fi # Autoreconf runs aclocal before libtoolize, which causes spurious # warnings if the initial aclocal is confused by the libtoolized # (or worse out-of-date) macro directory. +# libtoolize 1.9b added the --install option; but we support back +# to libtoolize 1.5.22, where the install action was default. if test $use_libtool = 1; then - echo "running: $LIBTOOLIZE --copy --install" - $LIBTOOLIZE --copy --install + install= + case $($LIBTOOLIZE --help) in + *--install*) install=--install ;; + esac + echo "running: $LIBTOOLIZE $install --copy" + $LIBTOOLIZE $install --copy fi version_controlled_file() { @@ -863,6 +889,16 @@ if test $with_gettext = yes; then } ' po/Makevars.template >po/Makevars || exit 1 + # If the 'gettext' module is in use, grab the latest Makefile.in.in. + # If only the 'gettext-h' module is in use, assume autopoint already + # put the correct version of this file into place. + case $gnulib_modules in + *gettext-h*) ;; + *gettext*) + cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in || exit 1 + ;; + esac + if test -d runtime-po; then # Similarly for runtime-po/Makevars, but not quite the same. rm -f runtime-po/Makevars diff --git a/gnulib b/gnulib index 639607db0..a3a049672 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 639607db00b96f33b0e18afa27188456c6ccad0a +Subproject commit a3a049672d410b1deba8f1537016f2ece42b4e88 diff --git a/tests/init.sh b/tests/init.sh index 6266a259f..f525a7cab 100644 --- a/tests/init.sh +++ b/tests/init.sh @@ -207,6 +207,14 @@ else fi fi +# If this is bash, turn off all aliases. +test -n "$BASH_VERSION" && unalias -a + +# Note that when supporting $EXEEXT (transparently mapping from PROG_NAME to +# PROG_NAME.exe), we want to support hyphen-containing names like test-acos. +# That is part of the shell-selection test above. Why use aliases rather +# than functions? Because support for hyphen-containing aliases is more +# widespread than that for hyphen-containing function names. test -n "$EXEEXT" && shopt -s expand_aliases # Enable glibc's malloc-perturbing option. @@ -242,20 +250,23 @@ compare_dev_null_ () if test "x$1" = x/dev/null; then test -s "$2" || return 0 - { emit_diff_u_header_ "$@"; sed 's/^/+/' -- "$2"; } >&2 + emit_diff_u_header_ "$@"; sed 's/^/+/' "$2" return 1 fi if test "x$2" = x/dev/null; then test -s "$1" || return 0 - { emit_diff_u_header_ "$@"; sed 's/^/-/' -- "$1"; } >&2 + emit_diff_u_header_ "$@"; sed 's/^/-/' "$1" return 1 fi return 2 } -if diff_out_=`( diff -u "$0" "$0" < /dev/null ) 2>/dev/null`; then +if diff_out_=`exec 2>/dev/null; diff -u "$0" "$0" < /dev/null` \ + && diff -u Makefile "$0" 2>/dev/null | grep '^[+]#!' >/dev/null; then + # diff accepts the -u option and does not (like AIX 7 'diff') produce an + # extra space on column 1 of every content line. if test -z "$diff_out_"; then compare_ () { diff -u "$@"; } else @@ -273,7 +284,7 @@ if diff_out_=`( diff -u "$0" "$0" < /dev/null ) 2>/dev/null`; then fi } fi -elif diff_out_=`( diff -c "$0" "$0" < /dev/null ) 2>/dev/null`; then +elif diff_out_=`exec 2>/dev/null; diff -c "$0" "$0" < /dev/null`; then if test -z "$diff_out_"; then compare_ () { diff -c "$@"; } else @@ -304,11 +315,17 @@ fi # Otherwise, propagate $? to caller: any diffs have already been printed. compare () { - compare_dev_null_ "$@" - case $? in - 0|1) return $?;; - *) compare_ "$@";; - esac + # This looks like it can be factored to use a simple "case $?" + # after unchecked compare_dev_null_ invocation, but that would + # fail in a "set -e" environment. + if compare_dev_null_ "$@"; then + return 0 + else + case $? in + 1) return 1;; + *) compare_ "$@";; + esac + fi } # An arbitrary prefix to help distinguish test directories. @@ -521,7 +538,7 @@ mktempd_ () esac # First, try to use mktemp. - d=`unset TMPDIR; mktemp -d -t -p "$destdir_" "$template_" 2>/dev/null` \ + d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` \ || fail=1 # The resulting name must be in the specified directory.