summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2013-10-30 01:04:04 +0000
committerStefano Lattarini <stefano.lattarini@gmail.com>2013-10-30 01:04:04 +0000
commit82216ce83ba3cdf3572b58e4d9e84886ab02d22d (patch)
tree63f66607b3d47bac7d8bf2148c9a583335e643de
parentc0d7b263f438f192852159bfd7e482ad348cef8f (diff)
parent8a310a5fa5a908cf8771e44431e5743fb0e8b026 (diff)
downloadautomake-82216ce83ba3cdf3572b58e4d9e84886ab02d22d.tar.gz
Merge branch 'micro' into minor
* micro: tests: fix spurious failure when zip is present but unzip is not tests: fix spurious failure due to localization issues NEWS: update with the changes since v1.14 docs: correct typos in the fix-timestamp.sh script python: byte-compile nobase_*_PYTHON files only once cosmetics: typofix in the 'missing' script test: avoid false positives in 'cc-no-c-o' script test harness: improve catching of usage errors in script 'test-driver' tests: fix a spurious failure on NetBSD-current am-ft: make the environment available earlier NEWS: post-release tweaks (for 1.14.x series) tests: avoid a spurious failure on MacOS X 10.6.8 tests: don't risk hanging on the 'cl' requirement
-rw-r--r--NEWS32
-rw-r--r--THANKS5
-rw-r--r--doc/automake.texi4
-rw-r--r--lib/am/python.am12
-rwxr-xr-xlib/missing4
-rwxr-xr-xlib/test-driver20
-rwxr-xr-xmaintainer/am-ft6
-rw-r--r--t/autohdr-subdir-pr12495.sh4
-rw-r--r--t/ax/am-test-lib.sh6
-rw-r--r--t/ax/cc-no-c-o.in20
-rw-r--r--t/depcomp2.sh5
-rw-r--r--t/dist-formats.tap54
-rw-r--r--t/silent-custom.sh14
13 files changed, 130 insertions, 56 deletions
diff --git a/NEWS b/NEWS
index 39ad7a365..aaec7c0da 100644
--- a/NEWS
+++ b/NEWS
@@ -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:
diff --git a/THANKS b/THANKS
index cc5e23816..6be803e16 100644
--- a/THANKS
+++ b/THANKS
@@ -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='' # 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
}