diff options
-rw-r--r-- | NEWS | 32 | ||||
-rw-r--r-- | THANKS | 5 | ||||
-rw-r--r-- | doc/automake.texi | 4 | ||||
-rw-r--r-- | lib/am/python.am | 12 | ||||
-rwxr-xr-x | lib/missing | 4 | ||||
-rwxr-xr-x | lib/test-driver | 20 | ||||
-rwxr-xr-x | maintainer/am-ft | 6 | ||||
-rw-r--r-- | t/autohdr-subdir-pr12495.sh | 4 | ||||
-rw-r--r-- | t/ax/am-test-lib.sh | 6 | ||||
-rw-r--r-- | t/ax/cc-no-c-o.in | 20 | ||||
-rw-r--r-- | t/depcomp2.sh | 5 | ||||
-rw-r--r-- | t/dist-formats.tap | 54 | ||||
-rw-r--r-- | t/silent-custom.sh | 14 |
13 files changed, 130 insertions, 56 deletions
@@ -31,12 +31,9 @@ - According to this new scheme, the next major version of Automake (the one that had previously been labelled as "1.14") will actually - become "Automake 2.0". Automake 1.14 is *this* release (which is - a minor one). It introduces new features, deprecations and bug - fixes, but no serious backward incompatibility. A partial exception - is given by the behavioural changes in the AM_PROG_CC_C_O macro - (described in details below) but such changes can also be seen as a - fix for the old suboptimal and somewhat confusing behaviour. + become "Automake 2.0". Automake 1.14 has already been released as + the last minor release, and the present one is a bug-fixing release + following up on that one. - See discussion about automake bug#13578 for more details and background: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13578> @@ -107,6 +104,29 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +New in 1.14.1: + +* Bugs fixed: + + - Fixed a gross inefficiency in the recipes for installing byte-compiled + python files, that was causing an O(N^2) performance on the number N of + files, instead of the expected O(N) performance. Note that this bug + was only relevant when the number of python files was high (which is + unusual in practice). + + - The 'test-driver' script now actually error out with a clear error + message on the most common invalid usages. + + - Several spurious failures/hangs in the testsuite (bugs #14706, #14707, + #14760, #14911, #15181, #15237). + +* Documentation fixes: + + - Fixed typos in the 'fix-timestamp.sh' example script that made it + nonsensical. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + New in 1.14: * C compilation, and the AC_PROG_CC and AM_PROG_CC_C_O macros: @@ -17,6 +17,7 @@ Alexander Turbov zaufi@sendmail.ru Alexandre Duret-Lutz duret_g@epita.fr Alexey Mahotkin alexm@hsys.msk.ru Alfred M. Szmidt ams@gnu.org +Andrea Urbani matfanjol@mail.com Andreas Bergmeier lcid-fire@gmx.net Andreas Buening andreas.buening@nexgo.de Andreas Köhler andi5.py@gmx.net @@ -145,6 +146,7 @@ Gwenole Beauchesne gbeauchesne@mandrakesoft.com H.J. Lu hjl@lucon.org H.Merijn Brand h.m.brand@hccnet.nl Hans Ulrich Niedermann hun@n-dimensional.de +Hanspeter Niederstrasser fink@snaggledworks.com Harald Dunkel harald@CoWare.com Harlan Stenn Harlan.Stenn@pfcs.com He Li tippa000@yahoo.com @@ -404,10 +406,13 @@ Tom Rini tom_rini@mentor.com Ulrich Drepper drepper@gnu.ai.mit.edu Ulrich Eckhardt eckhardt@satorlaser.com Václav Haisman V.Haisman@sh.cvut.cz +Václav Zeman vhaisman@gmail.com Vadim Zeitlin Vadim.zeitlin@dptmaths.ens-cachan.fr +Vasyl Khalak basiliomail@gmail.com Vincent Lefevre vincent@vinc17.org Vladimir Serbinenko phcoder@gmail.com Volker Boerchers vboerchers@tecon.de +Weiller Ronfini weillerronfini@yahoo.com.br Werner John john@oswf.de Werner Koch wk@isil.d.shuttle.de Werner Lemberg wl@gnu.org diff --git a/doc/automake.texi b/doc/automake.texi index 8f4020bf8..62728d4cf 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -11728,9 +11728,9 @@ touch aclocal.m4 sleep 1 # autoconf-generated configure depends on aclocal.m4 and on # configure.ac -configure config.h.in +touch configure # so does autoheader-generated config.h.in -configure config.h.in +touch config.h.in # and all the automake-generated Makefile.in files touch `find . -name Makefile.in -print` # finally, the makeinfo-generated '.info' files depend on the diff --git a/lib/am/python.am b/lib/am/python.am index 36f0b2dd4..06545b187 100644 --- a/lib/am/python.am +++ b/lib/am/python.am @@ -66,7 +66,7 @@ else !%?BASE% echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)" || exit 1; \ fi; \ - $(am__nobase_list) | while read dir files; do \ + $(am__nobase_list) | { while read dir files; do \ xfiles=; for p in $$files; do \ ## A file can be in the source directory or the build directory. if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ @@ -79,13 +79,13 @@ else !%?BASE% ## Don't perform translation, since script name is important. echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \ $(INSTALL_DATA) $$xfiles "$(DESTDIR)$(%NDIR%dir)/$$dir" || exit $$?; }; \ + done; \ ## Byte-compile must be done at install time, since file times are ## encoded in the actual files. - if test -n "$$dlist"; then \ - $(am__py_compile) --destdir "$(DESTDIR)" \ - --basedir "$(%NDIR%dir)" $$dlist; \ - else :; fi \ - done + if test -n "$$dlist"; then \ + $(am__py_compile) --destdir "$(DESTDIR)" \ + --basedir "$(%NDIR%dir)" $$dlist; \ + else :; fi; } endif !%?BASE% endif %?INSTALL% diff --git a/lib/missing b/lib/missing index cdea51493..db98974ff 100755 --- a/lib/missing +++ b/lib/missing @@ -1,7 +1,7 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2012-06-26.16; # UTC +scriptversion=2013-10-28.13; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. @@ -160,7 +160,7 @@ give_advice () ;; autom4te*) echo "You might have modified some maintainer files that require" - echo "the 'automa4te' program to be rebuilt." + echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) diff --git a/lib/test-driver b/lib/test-driver index 32bf39e83..d30605660 100755 --- a/lib/test-driver +++ b/lib/test-driver @@ -1,7 +1,7 @@ #! /bin/sh # test-driver - basic testsuite driver script. -scriptversion=2012-06-27.10; # UTC +scriptversion=2013-07-13.22; # UTC # Copyright (C) 2011-2013 Free Software Foundation, Inc. # @@ -44,13 +44,12 @@ print_usage () Usage: test-driver --test-name=NAME --log-file=PATH --trs-file=PATH [--expect-failure={yes|no}] [--color-tests={yes|no}] - [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT + [--enable-hard-errors={yes|no}] [--] + TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS] The '--test-name', '--log-file' and '--trs-file' options are mandatory. END } -# TODO: better error handling in option parsing (in particular, ensure -# TODO: $log_file, $trs_file and $test_name are defined). test_name= # Used for reporting. log_file= # Where to save the output of the test script. trs_file= # Where to save the metadata of the test run. @@ -69,10 +68,23 @@ while test $# -gt 0; do --enable-hard-errors) enable_hard_errors=$2; shift;; --) shift; break;; -*) usage_error "invalid option: '$1'";; + *) break;; esac shift done +missing_opts= +test x"$test_name" = x && missing_opts="$missing_opts --test-name" +test x"$log_file" = x && missing_opts="$missing_opts --log-file" +test x"$trs_file" = x && missing_opts="$missing_opts --trs-file" +if test x"$missing_opts" != x; then + usage_error "the following mandatory options are missing:$missing_opts" +fi + +if test $# -eq 0; then + usage_error "missing argument" +fi + if test $color_tests = yes; then # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'. red='[0;31m' # Red. diff --git a/maintainer/am-ft b/maintainer/am-ft index 1d227906e..bb07c165c 100755 --- a/maintainer/am-ft +++ b/maintainer/am-ft @@ -104,8 +104,7 @@ ssh -t -t $remote " || rm -rf $distdir || exit 1 test ! -e $distdir fi - xz -dc $tarball | tar xf - - cd $distdir + export $env "' am_extra_acdir=$HOME/.am-test/extra-aclocal am_extra_bindir=$HOME/.am-test/extra-bin @@ -117,7 +116,8 @@ ssh -t -t $remote " export PATH=$am_extra_bindir:$PATH fi '" - export $env + xz -dc $tarball | tar xf - + cd $distdir if test -f \"\$am_extra_setup\"; then . \"\$am_extra_setup\" fi diff --git a/t/autohdr-subdir-pr12495.sh b/t/autohdr-subdir-pr12495.sh index 7e26b4674..dcb962037 100644 --- a/t/autohdr-subdir-pr12495.sh +++ b/t/autohdr-subdir-pr12495.sh @@ -63,6 +63,10 @@ $MAKE test -f a.h.in test -f a.h +# We might need to grep the output of GNU make for error messages. +LANG=C LANGUAGE=C LC_ALL=C +export LANG LANGUAGE LC_ALL + ocwd=$(pwd) for x in b c; do test $x = b || cd sub diff --git a/t/ax/am-test-lib.sh b/t/ax/am-test-lib.sh index 182b070a0..26e58ef04 100644 --- a/t/ax/am-test-lib.sh +++ b/t/ax/am-test-lib.sh @@ -788,7 +788,11 @@ require_tool () # in the environment "by hand" before calling the testsuite. export CC CPPFLAGS echo "$me: running $CC -?" - $CC -? || skip_all_ "Microsoft C compiler '$CC' not available" + # The IRAF package (http://iraf.noao.edu/) contains a 'cl' program + # which is interactive, and which could cause the testsuite to hang + # if its standard input is not redirected. See automake bug#14707. + $CC -? </dev/null \ + || skip_all_ "Microsoft C compiler '$CC' not available" ;; etags) # Exuberant Ctags will create a TAGS file even diff --git a/t/ax/cc-no-c-o.in b/t/ax/cc-no-c-o.in index c18f9b975..bbc9ec900 100644 --- a/t/ax/cc-no-c-o.in +++ b/t/ax/cc-no-c-o.in @@ -19,11 +19,23 @@ am_CC=${AM_TESTSUITE_GNU_CC-'@GNU_CC@'} -case " $* " in - *\ -c*\ -o* | *\ -o*\ -c*) +seen_c=false +seen_o=false + +for arg +do + case $arg in + -c) + seen_c=true;; + # It is acceptable not to leave a space between the '-o' option + # and its argument, so we have to cater for that. + -o|-o*) + seen_o=true;; + esac + if $seen_c && $seen_o; then echo "$0: both '-o' and '-c' seen on the command line" >&2 exit 2 - ;; -esac + fi +done exec $am_CC "$@" diff --git a/t/depcomp2.sh b/t/depcomp2.sh index 218216477..3eba12d6c 100644 --- a/t/depcomp2.sh +++ b/t/depcomp2.sh @@ -45,6 +45,9 @@ $AUTOMAKE --add-missing $AUTOCONF ./configure 2>stderr || { cat stderr >&2; exit 1; } cat stderr >&2 -test ! -s stderr +# Ignore warning messages sometimes seen on Mac OS X; they are +# not automake's fault anyway, but either autoconf's or Mac's. +sed '/rm:.* conftest\.dSYM/d' stderr >stderr2 +test -s stderr2 && { cat stderr2; exit 1; } : diff --git a/t/dist-formats.tap b/t/dist-formats.tap index 49281d92d..3c9e6210f 100644 --- a/t/dist-formats.tap +++ b/t/dist-formats.tap @@ -67,34 +67,38 @@ setup_vars_for_compression_format () have_compressor () { test $# -eq 1 || fatal_ "have_compressor(): bad usage" - case $1 in + if test $1 = gzip; then # Assume gzip(1) is available on every reasonable portability target. - gzip) - return 0;; - *) - case $1 in - # Do not use --version, or older versions bzip2 would try to - # compress stdin. This would cause binary output in the test - # logs, with potential breakage of our testsuite harness. - bzip2) o=--help;; - # OpenSolaris zip do not support the '--version' option, but - # accepts the '-v' one with a similar meaning (if no further - # arguments are given). - zip) o=-v;; - # Assume the other compressors we care about support the - # '--version' option. - *) o=--version;; - esac - # Redirect to stderr to avoid polluting the output, in case this - # function is used in a command substitution (as it is, below). - if $1 $o </dev/null >&2; then - return 0 - else - return 1 - fi + return 0 + fi + needed_programs=$1 + # Assume by default the other compressors we care about support the + # '--version' option. We'll special-case the one which don't. + checker_option=--version + case $1 in + bzip2) + # Do not use --version, or older versions bzip2 would try to + # compress stdin. This would cause binary output in the test + # logs, with potential breakage of our testsuite harness. + checker_option=--help + ;; + zip) + # OpenSolaris zip do not support the '--version' option, but + # accepts the '-v' one with a similar meaning (if no further + # arguments are given). + checker_option=-v + # Also, we need 'unzip' to decompress the created zipped archives + # (bug#15181). + needed_programs='zip unzip' ;; esac - fatal_ "have_compressor(): dead code reached" + # Redirect to stderr to avoid polluting the output, in case this + # function is used in a command substitution (as it is, later in + # this script). + for p in $needed_programs; do + $p $checker_option </dev/null >&2 || return 1 + done + return 0 } all_compression_formats='gzip lzip xz bzip2 zip' diff --git a/t/silent-custom.sh b/t/silent-custom.sh index 7ce3ffcc8..b00e388b1 100644 --- a/t/silent-custom.sh +++ b/t/silent-custom.sh @@ -80,8 +80,18 @@ do_check () else $FGREP 'GEN ' output && exit 1 $FGREP 'cp ./foo.in foo' output - $FGREP "rm -f sub/0.h sub/1.h sub/2.h" output - $FGREP "generate-header --flags sub/0.h sub/1.h sub/2.h" output + # Be prepared to handle "creative quoting" in the shell traces. + # See automake bug#14760. + ok=false + for q in '' \' \"; do + files="${q}sub/0.h${q} ${q}sub/1.h${q} ${q}sub/2.h${q}" + $FGREP "rm -f $files" output || continue + $FGREP "generate-header --flags $files" output || continue + ok=: + break + done + $ok || exit 1 + unset ok fi } |