platform/upstream/automake.git
11 years agotests: remove one obsolete workaround for long-lifted limitations
Stefano Lattarini [Sun, 26 May 2013 18:34:14 +0000 (20:34 +0200)]
tests: remove one obsolete workaround for long-lifted limitations

* t/silent-many-languages.sh: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: couple of minor tweaks in demo tests in C++ and Libtool
Stefano Lattarini [Sun, 26 May 2013 17:18:55 +0000 (19:18 +0200)]
tests: couple of minor tweaks in demo tests in C++ and Libtool

* t/cxx-lt-demo.sh: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: adjust or remove some obsolete comments
Stefano Lattarini [Sun, 26 May 2013 10:42:04 +0000 (12:42 +0200)]
tests: adjust or remove some obsolete comments

* t/ax/am-test-lib.sh: Here.
* t/distcheck-configure-flags.sh: And here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: remove some useless 'unset' of variables
Stefano Lattarini [Sun, 26 May 2013 10:13:33 +0000 (12:13 +0200)]
tests: remove some useless 'unset' of variables

They are redundant, now that we no longer call "make -e".

* t/javaflags.sh: Don't unset JAVAC.
* t/lflags.sh: Don't unset LEX.
* t/lflags2.sh: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: avoid a couple of extra sleep with GNU make
Stefano Lattarini [Sun, 26 May 2013 09:35:15 +0000 (11:35 +0200)]
tests: avoid a couple of extra sleep with GNU make

They are only required by BSD make in order to avoid spurious failures.

* t/deleted-am.sh: Here.
* t/parallel-tests-recheck-pr11791.sh: And here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoNEWS: document testsuite work for 1.13.3
Stefano Lattarini [Sun, 26 May 2013 09:23:29 +0000 (11:23 +0200)]
NEWS: document testsuite work for 1.13.3

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agolint: remove a couple of obsolete syntax checks
Stefano Lattarini [Sat, 25 May 2013 20:50:20 +0000 (22:50 +0200)]
lint: remove a couple of obsolete syntax checks

* syntax-checks.mk (sc_obsolete_requirements_rules): Remove
definition of this variable.
(modern-requirement.texi2dvi-o): Likewise.
(modern-requirement.makeinfo-html): Likewise.
($(sc_obsolete_requirements_rules)): Remove these obsolete
syntax checks.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agolint: cosmetics: use #-comments, not ##-comments
Stefano Lattarini [Sat, 25 May 2013 20:22:55 +0000 (22:22 +0200)]
lint: cosmetics: use #-comments, not ##-comments

* syntax-checks.mk: Here.  This makes sense because this file is
not meant to be processed by Automake, so the ##-comments are not
treated specially.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agolint: cosmetics: some reordering
Stefano Lattarini [Sat, 25 May 2013 20:20:44 +0000 (22:20 +0200)]
lint: cosmetics: some reordering

* syntax-checks.mk: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agolint: recipes of syntax check require GNU grep; ensure it is used
Stefano Lattarini [Sat, 25 May 2013 20:18:45 +0000 (22:18 +0200)]
lint: recipes of syntax check require GNU grep; ensure it is used

* syntax-checks.mk (sc_sanity_gnu_grep): New.
($(syntax_check_rules)): Depend on it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agolint: better name for a syntax check
Stefano Lattarini [Sat, 25 May 2013 19:36:35 +0000 (21:36 +0200)]
lint: better name for a syntax check

* syntax-checks.mk (sc_tests_make_without_am_makeflags): Rename ...
(sc_make_without_am_makeflags): ... like this.
(syntax_check_rules): Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: rename $am_make_rc_got -> $am_make_rc
Stefano Lattarini [Fri, 24 May 2013 18:54:41 +0000 (20:54 +0200)]
tests: rename $am_make_rc_got -> $am_make_rc

The latter is more natural  More importantly, I keep misspelling
the former over and over.

* t/ax/am-test-lib.sh (run_make): Update.
* t/ax/tap-summary-aux.sh: Adjust.
* t/ax/testsuite-summary-checks.sh: Likewise.
* t/parallel-tests-exit-statuses.sh: Likewise.
* t/parallel-tests-extra-programs.sh: Likewise.
* t/parallel-tests-fd-redirect-exeext.sh: Likewise.
* t/parallel-tests-fd-redirect.sh: Likewise.
* t/parallel-tests-fork-bomb.sh: Likewise.
* t/parallel-tests-no-spurious-summary.sh: Likewise.
* t/parallel-tests-recheck-pr11791.sh: Likewise.
* t/parallel-tests-reset-term.sh: Likewise.
* t/tap-signal.tap: Likewise.
* t/test-driver-acsubst.sh: Likewise.
* t/test-driver-cond.sh: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: ensure $required is not set too late
Stefano Lattarini [Fri, 24 May 2013 10:46:17 +0000 (12:46 +0200)]
tests: ensure $required is not set too late

And do so in a safer way, with a runtime check rather than a brittle
static maintainer check.

* t/ax/test-init.sh: Set the 'required' variable to readonly.
* syntax-checks.mk (sc_tests_required_after_defs): Remove.
(syntax_check_rules): No longer list it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: use append mode to capture parallel make output
Stefano Lattarini [Thu, 23 May 2013 23:13:40 +0000 (01:13 +0200)]
tests: use append mode to capture parallel make output

This will allow us to run the Automake testsuite forcing all the make
invocations in the test cases to run in parallel mode [1], but without
hitting the spurious failure reported in automake bug#11413.

See also:
<http://lists.gnu.org/archive/html/bug-make/2013-05/msg00135.html>

The make invocations in the test cases can be forced to run in parallel
mode by, e.g., invoking "make check" like this:

      make check AM_TESTSUITE_MAKE="make -j16"

The possible spurious failures hinted above are due to the fact that
the redirected output of parallel make can racily lose lines.  For
example, if GNU make (3.82) is run with -j10 on a Makefile like this:

    all = 0 1 2 3 4 5 6 7 8 9
    default: $(all)
    $(all):
            @sleep 0.$$(($RANDOM % 10)); echo $@

and has its standard output redirected in overwrite-mode to a regular
file, it looses a line of that output every 15 runs or so on a Fedora
17 system with 64 ppc64 cores.  Redirection in append mode does not
suffer of this problem, as explained here:
<http://lists.gnu.org/archive/html/automake-patches/2009-03/msg00073.html>

See also previous commits v1.12-63-g45c1fcd of 2012-05-05 (tests: use
append mode to capture parallel make output) and Release-1-10-280-g6426999
of 2009-03-10 (Use append mode to capture parallel test output).

* t/ax/am-test-lib.sh (run_make): Adjust and enhance.
* t/lisp8.sh: Take advantage of the enhancement, nd stop doing output
redirection for $MAKE by hand.
* t/tap-more.sh: Likewise.
* t/parallel-tests-concurrency.sh: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: new convenience target 'check-parallel'
Stefano Lattarini [Thu, 23 May 2013 22:44:59 +0000 (00:44 +0200)]
tests: new convenience target 'check-parallel'

To force the test scripts to invoke make in parallel mode.  This should
enhance coverage of use cases (make concurrency) that are becoming more
and more important with today multicore fast machines.

* Makefile.am (check-parallel): New .PHONY target.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: avoid '$MAKE' redirections, use 'run_make' instead
Stefano Lattarini [Thu, 23 May 2013 10:10:18 +0000 (12:10 +0200)]
tests: avoid '$MAKE' redirections, use 'run_make' instead

The use 'run_make' with  the -E, -O and -M option, it is more
idiomatic now.  Also, this way, centralized fixes and improvements
done in 'run_make' will automatically propagate through most of
the testsuite.

* syntax-checks.mk (sc_tests_no_run_make_redirect): Also check against
'$MAKE' invocations that uses output redirections (and not only against
'run_make' invocation that do so).
* Several tests: Adjust (and few minor cosmetic changes as well, while
at it).

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: avoid use of redirected 'run_make' invocations
Stefano Lattarini [Wed, 22 May 2013 21:29:47 +0000 (23:29 +0200)]
tests: avoid use of redirected 'run_make' invocations

Instead, properly use the -E, -O, or -M options of run_make.
The occurrences of the 'run_make' invocations using output
redirection has been found by the recently-introduced maintainer
check 'sc_tests_no_run_make_redirect'.

* t/ax/tap-summary-aux.sh: Adjust.
* t/ax/testsuite-summary-checks.sh: Likewise.
* Several other tests: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agolint: warn against redirected 'run_make' invocations
Stefano Lattarini [Wed, 22 May 2013 20:34:12 +0000 (22:34 +0200)]
lint: warn against redirected 'run_make' invocations

The testsuite shell function 'run_make()' has the three options
-E, -O and -M to perform the various kind of output redirections,
so the test scripts should use them instead of redirecting the
output "by hand":

    run_make ARGS >stdout           =>  run_make -O ARGS
    run_make ARGS >stderr           =>  run_make -E ARGS
    run_make ARGS >stdout 2>stderr  =>  run_make -O -E ARGS
    run_make ARGS >output 2>&1      =>  run_make -M ARGS

See the commit message of v1.13.2-13-gc7cfa09, 2013-05-22
(tests: run_make: options to do command redirection) for an
explanation of why this is a good idea.

It's worth noting that the present patch only introduced a new
static maintainer check looking against the undesired idioms,
but doesn't yet remove usages of such idioms from the testsuite.
That will be done by follow-up patch(es).

* syntax-checks.mk (sc_tests_no_run_make_redirect): New check.
(syntax_check_rules): List it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agocomments: next GNU make release 4.0, not 3.83
Stefano Lattarini [Wed, 22 May 2013 21:42:09 +0000 (23:42 +0200)]
comments: next GNU make release 4.0, not 3.83

See: <http://lists.gnu.org/archive/html/bug-make/2013-05/msg00093.html>

* lib/am/header-vars.am (am__make_running_with_option): Adjust
comments.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: fix a potential spurious failure due to global config.site
Stefano Lattarini [Wed, 22 May 2013 18:39:59 +0000 (20:39 +0200)]
tests: fix a potential spurious failure due to global config.site

* t/instdir-no-empty.sh: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoHACKING: it's OK to do testsuite refactoring in a micro version
Stefano Lattarini [Wed, 22 May 2013 18:13:41 +0000 (20:13 +0200)]
HACKING: it's OK to do testsuite refactoring in a micro version

Reported-by: Peter Rosin <peda@lysator.liu.se>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: remove some code duplication
Stefano Lattarini [Wed, 22 May 2013 11:00:48 +0000 (13:00 +0200)]
tests: remove some code duplication

* t/ax/am-test-lib (null_install): New function.
* t/instdir-java.sh: Use it instead of copied & pasted code.
* t/instdir-lisp.sh: Likewise.
* t/instdir-ltlib.sh: Likewise.
* t/instdir-prog.sh: Likewise.
* t/instdir-python.sh: Likewise.
* t/instdir-texi.sh: Likewise.
* t/instdir.sh: Likewise.
* t/instdir2.sh: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agocosmetics: remove a couple of extra whitespaces in tests
Stefano Lattarini [Wed, 22 May 2013 09:09:39 +0000 (11:09 +0200)]
cosmetics: remove a couple of extra whitespaces in tests

* t/instdir.sh: Here.
* t/instdir2.sh: And here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: two minor fixups
Stefano Lattarini [Wed, 22 May 2013 08:56:07 +0000 (10:56 +0200)]
tests: two minor fixups

* t/make-keepgoing.tap: Here.
* t/parallel-tests-exit-statuses.sh: And here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: run_make: options to do command redirection
Stefano Lattarini [Tue, 21 May 2013 18:22:17 +0000 (20:22 +0200)]
tests: run_make: options to do command redirection

Let's improve the API of the 'run_make()' helper shell function by
adding three new options:

  -O   Save the standard output from make on disk, in a regular file
       named 'stdout'.

  -E   Save the standard error from make on disk, in a regular file
       named 'stderr'.

  -M   Save both the standard output and standard error from make on
       disk, in a regular file named 'output'. This option supersedes
       both the '-O' and '-E' options.

This new API has two main advantages.

  1. Its use will allow us to get rid of more cumbersome idioms
     like, e.g.,

       $MAKE check >stdout && { cat stdout; exit 1; }
       cat stdout

     That can now be substituted with a simpler one:

       run_make -e FAIL -O check

  2. More importantly, using the new API we will prevent any extra output
     from the shell traces of the code in run_make to be redirected along
     with the make stderr (where that was redirected).  This problem was
     present in usages like, e.g.,

       run_make TESTS=foo.test check 2>stderr && exit 1
       grep 'expected error message' stderr

     Such usages are now to be rewritten as follows:

       run_make -e FAIL -E TESTS=foo.test check
       grep 'expected error message' stderr

     ensuring that 'stderr' won't end up containing unrelated stuff.

Note that we do not convert in bulk the old idioms and the use of
redirected 'run_make' invocations with this patch.  We only convert
some occurrences, to ensure that the new implementation of 'run_make'
is sound enough.  More sweeping conversions will likely be done in
follow-up patches.

* t/ax/am-test-lib.sh (run_make): Enhance and implement the extended API.
* t/tap-xfail-tests.sh: Use the new 'run_make' API.
* t/test-driver-cond.sh: Likewise.
* t/tests-environment-fd-redirect.sh: Likewise.
* t/uninstall-fail.sh: Likewise.
* t/yacc-dist-nobuild.sh: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: only activate 'unset' alias if required
Stefano Lattarini [Tue, 21 May 2013 09:59:21 +0000 (11:59 +0200)]
tests: only activate 'unset' alias if required

This makes the test logs easier to read for most shells (which do not
actually require that alias).  This is especially important now that
'unset' is used in the new 'run_make()' function, and that function is
likely going to be used more and more in the future.

* t/ax/test-lib.sh (_am_unset, unset): Only define this function and
alias if "unset VAR" returns a non-zero exit status when VAR is already
unset.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: better idiom to override make macro defs on the cmdline
Stefano Lattarini [Mon, 20 May 2013 09:23:01 +0000 (11:23 +0200)]
tests: better idiom to override make macro defs on the cmdline

We now do so with a new wrapper shell function 'run_make()', which
relies on the use of AM_MAKEFLAGS, avoiding the use of the '-e' make
option.  The use of that option (that causes the environment variables
to take precedence over the macro definitions in the Makefile) has
proved to be quite brittle in the past, causing annoying and sometimes
problematic spurious failures.  This has worsened in some still
unpublished work going on in development branches.  It's time to solve
the issue once and for all.

Note that we do not convert all uses of $MAKE in the testsuite right
away; we might do so in follow-up changes, with leisure, to avoid a
"patch bomb" effect (this commit is already too much of a bomb itself).
What we do in this commit is to get rid of all "$MAKE -e" invocations.

We admit that the implementation and feature-set of 'run_make()' are
far from perfect, but good enough for our current purposes.  We'll
improve 'run_make()' if and when the need arises.

* syntax-checks.mk (sc_tests_no_make_e): New syntax check, guard against
the use of "$MAKE -e".
(syntax_check_rules): Add it.
(sc_tests_overriding_macros_on_cmdline): Adjust.
(lint): New, alias for 'maintainer-check', for lazy typists.  Idea
backported from the 'maint' branch (Automake 1.13a).
* t/ax/am-test-lib.sh (run_make): New function.  Run $MAKE with the
given command-line arguments, handling command-line override of variable
definitions in a smart way (using AM_MAKEFLAGS if a non-GNU make
implementation is detected to be in use).
(useless_vpath_rebuild): Adjust to use 'run_make', to avoid a spurious
maintainer check failure.
(yl_distcheck): Use 'run_make' rather than bare '$MAKE'.
(single_quote, append_single_quoted, is_valid_varname): New auxiliary
function, used, directly or indirectly, by it.
* Many tests: Adjust to avoid the use of "$MAKE -e", and prefer the
use of 'run_make' in few other contexts as well, where it makes sense.
Other minor fixlets while at it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotest-lib: minor style changes
Stefano Lattarini [Mon, 20 May 2013 13:17:11 +0000 (15:17 +0200)]
test-lib: minor style changes

* t/ax/am-test-lib.sh (require_tool): Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotest-lib: fix botched function name in an error message
Stefano Lattarini [Mon, 20 May 2013 13:07:48 +0000 (15:07 +0200)]
test-lib: fix botched function name in an error message

* t/ax/am-test-lib.sh (useless_vpath_rebuild): Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomaintcheck: minor tweaks and fixlets
Stefano Lattarini [Mon, 20 May 2013 08:53:11 +0000 (10:53 +0200)]
maintcheck: minor tweaks and fixlets

* syntax-checks.mk: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agolisp: fix a failure with Solaris /usr/xpg4/bin/sh
Stefano Lattarini [Sat, 18 May 2013 11:35:16 +0000 (13:35 +0200)]
lisp: fix a failure with Solaris /usr/xpg4/bin/sh

* lib/am/lisp.am (.el.elc): By initializing the 'am__dir' properly
here.  For most shells, the lacking initialization, while technically
incorrect, didn't cause any issue in practice, because in those shells
"test -d" returns an exit status of 0. But with /usr/xpg4/bin/sh, the
shell complains like this: "test: argument expected", and returns a
non-zero exit status.  This caused testsuite failures in several lisp
tests.
Also, while we are at it, use more proper quoting in the recipe, to
ensure a missing initialization to now be caught by more forgiving
shells as well.
* NEWS: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: sanitize 'unset' usages
Stefano Lattarini [Fri, 17 May 2013 11:45:44 +0000 (13:45 +0200)]
tests: sanitize 'unset' usages

In some shells (e.g., Solaris 10 /bin/ksh, or NetBSD 5.1 /bin/sh),
"unset VAR" returns a non-zero exit status in case the VAR variable
is already unset.  This doesn't interact well with our usage of
"set -e" in the testsuite.  So far, we've avoided spurious failures
by either explicitly ignoring the exit status from unset:

    unset VAR || :

or explicitly ensuring that a variable is set, before trying to
unset it:

    VAR=; unset VAR

But we can do better, by aliasing the 'unset' command to a custom
function that will take care of these details for us.  This will
avoid us annoying spurious failures in the future, failures that
have already bitten us too much times.  For an example, refer to
commit 'v1.12.2-88-g5b1dae5' of 2012-08-05 (tests: avoid tons of
spurious failures on NetBSD).

* t/ax/test-lib.sh (_am_unset): New function.
(unset): New alias to it.
(_am_exit): Adjust comments.
* t/ax/am-test-lib.sh: No need to temporary disable the 'errexit'
shell flag when unsetting variables that are potentially already
unset.
(am_process_requirements): Adjust to remove a now-useless
workaround related to unset.
* t/aclocal-macrodir.tap: Likewise.
* t/aclocal-macrodirs.tap: Likewise.
* t/auxdir-autodetect.sh: Likewise.
* t/ax/am-test-lib.sh: Likewise.
* t/ax/test-lib.sh: Likewise.
* t/check-tests-in-builddir.sh: Likewise.
* t/dist-formats.tap: Likewise.
* t/distcheck-configure-flags-am.sh: Likewise.
* t/distcheck-configure-flags.sh: Likewise.
* t/java-empty-classpath.sh: Likewise.
* t/javaflags.sh: Likewise.
* t/lflags.sh: Likewise.
* t/lflags2.sh: Likewise.
* t/lisp-flags.sh: Likewise.
* t/lisp6.sh: Likewise.
* t/missing-auxfile-stops-makefiles-creation.sh: Likewise.
* t/parallel-am.sh: Likewise.
* t/parallel-am2.sh: Likewise.
* t/parallel-am3.sh: Likewise.
* t/parallel-tests-log-override-recheck.sh: Likewise.
* t/pkg-config-macros.sh: Likewise.
* t/python-missing.sh: Likewise.
* t/python-too-old.sh: Likewise.
* t/python11.sh: Likewise.
* t/self-check-dir.tap: Likewise.
* t/self-check-report.sh: Likewise.
* t/self-check-seq.tap: Likewise.
* t/silent-configsite.sh: Likewise.
* t/suffix6c.sh: Likewise.
* t/tar-override.sh: Likewise.
* t/tests-environment-and-log-compiler.sh: Likewise.
* t/vala-configure.sh: Likewise.
* t/werror3.sh: Likewise.
* t/yflags-cmdline-override.sh: Likewise.
* t/yflags.sh: Likewise.
* t/yflags2.sh: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: fix some botched/outdated comments
Stefano Lattarini [Thu, 16 May 2013 12:49:44 +0000 (14:49 +0200)]
tests: fix some botched/outdated comments

* t/ax/test-defs.in: Here.  Also, fix a couple of grammaros while at it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: use perl, not find+rm, to remove temporary directories
Stefano Lattarini [Thu, 16 May 2013 12:18:55 +0000 (14:18 +0200)]
tests: use perl, not find+rm, to remove temporary directories

The File::Path::rmtree function from perl, if used right, is
more reliable and more portable of our past idiom:

    find $dirs -type d ! -perm -700 -exec chmod u+rwx {} ';';
    rm -rf $$dirs || exit 1

at least of the face of unreadable dirs/files and other similar
permission issues (and we have those in our test directories).

In fact, this change fixes some spurious failures seen in
"make distcheck" on Solaris 10.

* t/ax/deltree.pl: New.
* Makefile.am (EXTRA_DIST): Add it.
(clean-local-check): Use it.
* t/ax/test-lib.sh (rm_rf_): Use it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: remove exec bit from all of them ('micro' branch)
Stefano Lattarini [Thu, 16 May 2013 10:18:43 +0000 (12:18 +0200)]
tests: remove exec bit from all of them ('micro' branch)

It gives the impression that they are directly runnable, as with
"./t/foo.sh", but it has been a while since that was the case.  Today,
tests are runnable only through "make check" or "./runtest".

This change is for the 'micro' branch (automake 1.13.2a).  It will
soon be followed by similar patches for the 'maint' branch (automake
1.13a) and the 'master' branch (automake 1.99a).

* t/*.sh, t/*.tap: Remove executable bit.
* maint.mk (sc_tests_executable): Remove.
(syntax_check_rules): Adjust.
* gen-testsuite-part: Set permissions of generated tests to
'444' (-r--r--r--), rather than 555 (-r-xr-xr-x).

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomaint: tests no longer need to have executable bit set
Stefano Lattarini [Thu, 16 May 2013 10:13:32 +0000 (12:13 +0200)]
maint: tests no longer need to have executable bit set

It has been a while since they are runnable only through "make check"
or "./runtest", and not directly.

* HACKING: Adjust.
* t/README: Likewise, and updated the surrounding text to get rid of
obsolete statements and advices.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agopost-release: micro version bump (1.13.2a)
Stefano Lattarini [Wed, 15 May 2013 20:44:43 +0000 (22:44 +0200)]
post-release: micro version bump (1.13.2a)

* configure.ac, m4/amversion.m4: Bump version: 1.13.2 -> 1.13.2a

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agorelease: stable micro release 1.13.2 v1.13.2
Stefano Lattarini [Wed, 15 May 2013 17:43:39 +0000 (19:43 +0200)]
release: stable micro release 1.13.2

* configure.ac (AC_INIT): Bump version number to 1.13.2.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agovala tests: skip in a cross compiler setup
Stefano Lattarini [Wed, 15 May 2013 20:05:21 +0000 (22:05 +0200)]
vala tests: skip in a cross compiler setup

The "vala + pkg-config" doesn't interact well with cross-compilation:
<https://mail.gnome.org/archives/vala-list/2012-September/msg00094.html>

That is causing annoying failures in our testsuite when it's run in
cross-compilation mode.  It's not worth trying too be overly smart and
work around these problems; just skip the affected tests instead.

* t/ax/am-test-lib.sh (require_tool): A new requirement 'valac', telling
that the test needs to compile Vala-generated C files.  In particular,
this causes the test to be skipped when using a cross-compiler.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoHACKING: miscellaneous fixes, updates and enhancements
Stefano Lattarini [Wed, 15 May 2013 17:34:41 +0000 (19:34 +0200)]
HACKING: miscellaneous fixes, updates and enhancements

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoNEWS: minor improvements to wording (about new versioning scheme)
Stefano Lattarini [Wed, 15 May 2013 17:13:13 +0000 (19:13 +0200)]
NEWS: minor improvements to wording (about new versioning scheme)

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agowarns: don't tell AM_PROG_MKDIR_P is going to be removed
Stefano Lattarini [Fri, 10 May 2013 21:59:02 +0000 (23:59 +0200)]
warns: don't tell AM_PROG_MKDIR_P is going to be removed

That is no longer true.  For a more extended rationale, see file
'PLANS/obsolete-removed/am-prog-mkdir-p.txt' in the maint branch
(as of commit v1.13.1d-132-g90ec3fe).

* automake.in (scan_autoconf_traces): So adjust the warning message
here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoautomake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/
Stefano Lattarini [Fri, 10 May 2013 10:13:00 +0000 (12:13 +0200)]
automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agocosmetics: fix few typos, grammaros and missing whitespace
Stefano Lattarini [Fri, 10 May 2013 08:50:05 +0000 (10:50 +0200)]
cosmetics: fix few typos, grammaros and missing whitespace

* lib/am/*.am: In comments in some of these files.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agofixup: remove an obsolete comment
Stefano Lattarini [Fri, 10 May 2013 08:35:26 +0000 (10:35 +0200)]
fixup: remove an obsolete comment

* lib/am/header-vars.am (am__make_running_with_option): Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agodocs: we still don't have the promised better Java interface
Stefano Lattarini [Thu, 9 May 2013 18:23:40 +0000 (20:23 +0200)]
docs: we still don't have the promised better Java interface

Reported by Michael Zucchi:
<http://lists.gnu.org/archive/html/automake/2013-05/threads.html>

See also automake bug#9088.

* doc/automake.texi (Java): Adjust and clarify.
* THANKS: Update.

Reported-by: Michael Zucchi <notzed@gmail.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoannouncement: cater to more flexible NEWS format
Stefano Lattarini [Thu, 9 May 2013 11:55:15 +0000 (13:55 +0200)]
announcement: cater to more flexible NEWS format

* maint.mk (announcement): Here, be prepared to handle the case
in which the first section of the NEWS file is dedicated to report
future backward-incompatibilities and/or other warnings.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomaint: version bump after beta release 1.13.1d
Stefano Lattarini [Sat, 4 May 2013 22:46:54 +0000 (00:46 +0200)]
maint: version bump after beta release 1.13.1d

* configure.ac (AC_INIT): Bump version number to 1.13.1e.
* m4/amversion.m4: Likewise (autoupdated by "make bootstrap").

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agorelease: beta release 1.13.1d (will become 1.13.2) v1.13.1d
Stefano Lattarini [Sat, 4 May 2013 21:19:36 +0000 (23:19 +0200)]
release: beta release 1.13.1d (will become 1.13.2)

* configure.ac (AC_INIT): Bump version number to 1.13.1d.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoNEWS: document more robust handling/recognition of make options
Stefano Lattarini [Sat, 4 May 2013 20:58:25 +0000 (22:58 +0200)]
NEWS: document more robust handling/recognition of make options

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge 'better-makeflags-recognition' and 'testing-work' into branch-1.13.2
Stefano Lattarini [Sat, 4 May 2013 09:37:09 +0000 (11:37 +0200)]
Merge 'better-makeflags-recognition' and 'testing-work' into branch-1.13.2

* better-makeflags-recognition:
  make flags analysis: handle more options with args
  make flags analysis: use simpler variable names
  make flags analysis: whitespace changes
  make flags analysis: embed in a subshell
  make flags analysis: be more robust
  make flags analysis: cater to GNU make 3.83 (still unreleased as of now)
  tests: expose weaknesses in make flags analysis
  tests: improve debugging output in checks on make flags analysis
  make flags analysis: refactor, to reduce code duplication

* testing-work:
  maint: targets and recipes to simplify testing on real-world packages
  build: preparatory refactoring
  build: tiny reduction in code duplication

11 years agomaint: targets and recipes to simplify testing on real-world packages
Stefano Lattarini [Fri, 3 May 2013 21:02:11 +0000 (23:02 +0200)]
maint: targets and recipes to simplify testing on real-world packages

We introduce a new section in the maintainer-specific makefile that
contains recipes to test the build system of some well-known GNU
packages with the current development version of Automake.  Not the
cleanest way to do so, but good enough for the moment.  We'll revisit
the matter after the 1.13.2 release (which we now hope will happen
soon).

* maint.mk (git-sv-host): New.
(SV_GIT_CF, SV_GIT_AC, SV_GIT_GL): Use it to reduce code duplication.
(ALL_PACKAGES, FEW_PACKAGES): New, lists of GNU packages to try out.
(ttp-check, ttp-check-all): New targets, do the checking with said
packages.
(ttp): New, alias for 'ttp-check'.
(ttp-all): New, alias for 'ttp-check-all'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agobuild: preparatory refactoring
Stefano Lattarini [Fri, 3 May 2013 19:02:42 +0000 (21:02 +0200)]
build: preparatory refactoring

No semantic change intended.  This change will be required
by a later patch.

* Makefile.am (setup_autotools_paths): New.
($(srcdir)/doc/amhello-1.0.tar.gz): Use it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agobuild: tiny reduction in code duplication
Stefano Lattarini [Fri, 3 May 2013 18:56:02 +0000 (20:56 +0200)]
build: tiny reduction in code duplication

The code was only duplicated two times, but we are soon going to
need a third occurrence, and that would be one to much.

* Makefile.am (extend_path): New.
(update_mans): Use it instead of copying & pasting its contents.
($(srcdir)/doc/amhello-1.0.tar.gz): Likewise, and minor related
adjustments.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomake flags analysis: handle more options with args
Stefano Lattarini [Fri, 3 May 2013 12:06:25 +0000 (14:06 +0200)]
make flags analysis: handle more options with args

That is, not only -I, but also -O (for upcoming GNU make 3.83),
-l (GNU make), -d, -E, -D, -m (BSD make), -J, -T (NetBSD make).

* lib/am/header-vars.am (am__make_running_with_option): Extend
and adjust, both code and comments.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomake flags analysis: use simpler variable names
Stefano Lattarini [Fri, 3 May 2013 11:01:35 +0000 (13:01 +0200)]
make flags analysis: use simpler variable names

* lib/am/header-vars.am (am__make_running_with_option): Here.  Now
that we expect to be run in a subshell, we don't have to worry about
being namespace-safe.  And '$foo' is much more pleasant to read than
'$am__foo' -- and pleasant code tends to be more correct.
(am__make_dryrun, am__make_keepgoing): Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomake flags analysis: whitespace changes
Stefano Lattarini [Fri, 3 May 2013 10:52:14 +0000 (12:52 +0200)]
make flags analysis: whitespace changes

* lib/am/header-vars.am (am__make_running_with_option): Here.
No semantic change is intended.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomake flags analysis: embed in a subshell
Stefano Lattarini [Fri, 3 May 2013 10:47:59 +0000 (12:47 +0200)]
make flags analysis: embed in a subshell

So that we won't have to worry about leaking temporary variables,
and similar stuff.

* lib/am/header-vars.am (am__make_dryrun, am__make_keepgoing): Here.
(am__make_running_with_option): Minor adjustments.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomake flags analysis: be more robust
Stefano Lattarini [Thu, 2 May 2013 17:41:24 +0000 (19:41 +0200)]
make flags analysis: be more robust

In particular, catering to option-with-argument bundled together
with options-without-arguments, as in:

   # With GNU make 3.82:
   $ make -f- <<<'all:; echo "$$MFLAGS"' -s -k -I none
   -skiI none

   # With development version of GNU make (Git commit b5ea49b):
   $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none
   -skiI none

This fixes some lingering failures in the testsuite; precisely, in
tests 'make-dryrun.tap' and 'make-keepgoing.tap'.

* t/header-vars.am (am__make_running_with_option): Enhance.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomake flags analysis: cater to GNU make 3.83 (still unreleased as of now)
Stefano Lattarini [Wed, 1 May 2013 23:10:13 +0000 (01:10 +0200)]
make flags analysis: cater to GNU make 3.83 (still unreleased as of now)

The current development version of GNU make (that is planned to become
GNU make 3.83, sooner or later) has changed the format its $(MFLAGS)
variable slightly, removing the space between an option and its argument:

   # With GNU make 3.82, compiled from official tarball:
   $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none
   -I none

   # With development version of GNU make (Git commit b5ea49b):
   $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none
   -Inone

This was done on purpose, in order to support more easily the new
option '-O', which takes an optional argument; see:

  <http://lists.gnu.org/archive/html/bug-make/2013-05/msg00001.html>

So Just adapt to the new format as well.

* t/header-vars.am (am__make_running_with_option): Adjust to cater
to the new GNU make behaviour.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: expose weaknesses in make flags analysis
Stefano Lattarini [Wed, 1 May 2013 22:43:33 +0000 (00:43 +0200)]
tests: expose weaknesses in make flags analysis

This introduces some failures in the testsuite, that will be fixed
soon enough by follow-up patches.

* t/make-dryrun.tap: Enhance and extend.
* t/make-keepgoing.tap: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: improve debugging output in checks on make flags analysis
Stefano Lattarini [Wed, 1 May 2013 22:27:46 +0000 (00:27 +0200)]
tests: improve debugging output in checks on make flags analysis

* t/make-dryrun.tap: Here.
* t/make-keepgoing.tap: And here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomake flags analysis: refactor, to reduce code duplication
Stefano Lattarini [Wed, 1 May 2013 21:26:42 +0000 (23:26 +0200)]
make flags analysis: refactor, to reduce code duplication

And make it a little more reliable.

* t/header-vars.am (am__make_running_with_option): Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: avoid one tricky use of "make -e"
Stefano Lattarini [Wed, 1 May 2013 15:06:42 +0000 (17:06 +0200)]
tests: avoid one tricky use of "make -e"

Which was causing a spurious failure on FreeBSD.  Not particularly
surprising, given how brittle "make -e" is in general ...

* t/cxx-lt-demo.sh: Instead of forcing $(CC) to be 'false' by
exporting "CC=false" in the environment and then passing the '-e'
option to make, do so by passing "CC=false" on the make command
line, both directly and using AM_MAKEFLAGS.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'fix-pr12554' into branch-1.13.2
Stefano Lattarini [Tue, 30 Apr 2013 21:55:47 +0000 (23:55 +0200)]
Merge branch 'fix-pr12554' into branch-1.13.2

* fix-pr12554:
  tests: avoid a spurious error with Solaris make
  subdirs: don't return false positives for the '-k' option's presence
  header-vars: recognize more make flags ('-k' in particular)
  header-vars: simplify how make flags are determined
  tests: remove dead code from t/make-dryrun.tap
  header-vars: new variable $(am__running_with_option)
  tests: expose bug#12554 (false positives for presence of '-k' make option)

11 years agocosmetics: remove few trailing whitespace occurrences
Stefano Lattarini [Tue, 30 Apr 2013 21:00:53 +0000 (23:00 +0200)]
cosmetics: remove few trailing whitespace occurrences

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotypofix: in NEWS (extra whitespace)
Stefano Lattarini [Tue, 30 Apr 2013 20:59:30 +0000 (22:59 +0200)]
typofix: in NEWS (extra whitespace)

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'fix-pr13588-pax-hangs' into branch-1.13.2
Stefano Lattarini [Tue, 30 Apr 2013 12:48:45 +0000 (14:48 +0200)]
Merge branch 'fix-pr13588-pax-hangs' into branch-1.13.2

* fix-pr13588-pax-hangs:
  tar: format 'ustar' cannot support UID/GID longer than 21 bits

11 years agotests: avoid a spurious error with Solaris make
Stefano Lattarini [Mon, 29 Apr 2013 18:43:02 +0000 (20:43 +0200)]
tests: avoid a spurious error with Solaris make

* t/make-keepgoing.tap (Makefile.am): Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agosubdirs: don't return false positives for the '-k' option's presence
Stefano Lattarini [Mon, 29 Apr 2013 14:12:34 +0000 (16:12 +0200)]
subdirs: don't return false positives for the '-k' option's presence

This change fixes automake bug#12554.

The old implementation of the code descending into $(SUBDIRS)
entries used the following snippet to decide whether make is running
with the '-k' a.k.a. '--keep-going' option, and thus whether a failure
in a subdirectory should prevent the descent in the following ones:

    fail= failcom='exit 1'; \
    for f in x $$MAKEFLAGS; do \
      case $$f in \
        *=* | --[!k]*);; \
        *k*) failcom='fail=yes';; \
      esac; \
    done

It's clear that the second pattern in the 'case' construct could possibly
match false positives, for examples in these two cases:

    make check TESTS="x.test k.test"
    make -I /usr/local/kool-fragments

which are somewhat unusual, but not invalid.  So we need a more resilient
implementation, as we did for the detection of the '-n' flag.

This implementation is now provided by the new private macro
'$(am__make_keepgoing)' (introduced in recent commits); so we can
just us that to fix the bug.

* lib/am/subdirs.am ($(am__recursive_targets)): Use '$(am__make_keepgoing)'
instead of ad-hoc and more brittle checks.
* t/list-of-tests.mk (XFAIL_TESTS): Remove the now-passing test case
't/subdir-keep-going-pr12554.sh'.

Reported-by: Michael Daniels <mdaniels@rim.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoheader-vars: recognize more make flags ('-k' in particular)
Stefano Lattarini [Mon, 29 Apr 2013 13:22:10 +0000 (15:22 +0200)]
header-vars: recognize more make flags ('-k' in particular)

* lib/am/header-vars.am (am__running_with_option): Here.
Few improvements to comments, while at it.
(am__make_keepgoing): New, tell whther make is being runt with
the '-k' option.
* t/make-keepgoing.tap: New test.
* t/list-of-tests.mk: Add it.
* t/make-dryrun.tap: Minor edits to keep it more in sync with
the new test.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agosync: update files from upstream with "make fetch"
Stefano Lattarini [Mon, 29 Apr 2013 14:44:00 +0000 (16:44 +0200)]
sync: update files from upstream with "make fetch"

* lib/config.guess: Likewise.
* lib/config.sub: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomaintcheck: remove outdated whitelisting
Stefano Lattarini [Mon, 29 Apr 2013 14:39:47 +0000 (16:39 +0200)]
maintcheck: remove outdated whitelisting

* syntax-checks.mk (sc_tests_overriding_macros_on_cmdline): Here.
The test 'make-dryrun.sh' has been since long rewritten as the TAP
test 'make-dryrun.tap', and no longer spuriously triggers this
maintainer check.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoheader-vars: simplify how make flags are determined
Stefano Lattarini [Sat, 27 Apr 2013 14:09:43 +0000 (16:09 +0200)]
header-vars: simplify how make flags are determined

Actually, son far only the '-n' option ("dry mode") was detected,
but this change will allow us to soon detect more options.

* lib/am/header-vars.am (am__running_with_option): Even when $MAKEFLAGS
appears to contain definition of variables with embedded whitespace,
use simple textual pre-processing over $MAKEFLAGS rather than tricky
recursive invocations of make to determine whether the '-n' option was
given.  This is enough to correctly handle all the tricky usages covered
in the testsuite.
* t/nodep.sh: Adjust to avoid a spurious failure.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: remove dead code from t/make-dryrun.tap
Stefano Lattarini [Sat, 27 Apr 2013 13:49:52 +0000 (15:49 +0200)]
tests: remove dead code from t/make-dryrun.tap

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoheader-vars: new variable $(am__running_with_option)
Stefano Lattarini [Sat, 27 Apr 2013 13:25:06 +0000 (15:25 +0200)]
header-vars: new variable $(am__running_with_option)

This is a preparatory refactoring, needed by later patches.
No semantic change is intended.

* lib/am/header-vars.am (am__running_with_option): New, contains
shell code that determines whether the current make instance is
running with a given one-letter option (e.g., -k, -n) that takes
no argument.  Actually, the only supported option at the moment
is '-n' (support for '-k' will be added soon).
(am__make_dryrun): Rewrite as a thin wrapper around
'$(am__make_running_with_option)'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: expose bug#12554 (false positives for presence of '-k' make option)
Stefano Lattarini [Tue, 2 Oct 2012 19:27:28 +0000 (21:27 +0200)]
tests: expose bug#12554 (false positives for presence of '-k' make option)

The current implementation of the code descending into $(SUBDIRS)
entries uses the following snippet to decide whether make is running
with the '-k' a.k.a. '--keep-going' option, and thus whether a failure
in a subdirectory should prevent the descent in the following ones:

    fail= failcom='exit 1'; \
    for f in x $$MAKEFLAGS; do \
      case $$f in \
        *=* | --[!k]*);; \
        *k*) failcom='fail=yes';; \
      esac; \
    done

It's clear that the second pattern in the 'case' construct can possibly
match false positives, for examples in these two cases:

    make check TESTS="x.test k.test"
    make -I /usr/local/kool-fragments

which are somewhat unusual, but not invalid.  So we need a more resilient
implementation, as we did for the detection of the '-n' flag.

But alas, such an implementation seems quite tricky to obtain in portable
make.  So for the moment we content ourselves with exposing the bug, with
the hope of being able to fix soon enough.

* t/subdir-keep-going-pr12554.sh: New test.
* t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add it.
* THANKS: Update

Reported-by: Michael Daniels <mdaniels@rim.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotar: format 'ustar' cannot support UID/GID longer than 21 bits
Stefano Lattarini [Sun, 17 Feb 2013 15:42:46 +0000 (16:42 +0100)]
tar: format 'ustar' cannot support UID/GID longer than 21 bits

See automake bug#8343 and bug#13588.

POSIX 1988 'ustar' format is defined with *fixed-size* fields. There
is notably a 21 bits limit (2097151) for the UID and the GID.

Tom Rini tom_rini@mentor.com says (in bug#8343):

    When the user has a UID or GID that is larger than the ustar format
    supports, pax does not error out gracefully in some cases (FC13).

Marc Herbert <marc.herbert@intel.com> adds (in bug#8343):

    When "configure" is run by a user with an UID bigger than 21 bits,
    BSD pax 3.4 aborts when trying to create the 'conftest.tar' test
    archive and leaves an empty or corrupted conftest.tar file behind.
    In the next step, pax tries to extract this incomplete or corrupted
    archive and this *** hangs the whole ./configure script ***.

    Note: GNU cpio 2.9 pretends to pass the test but it is a LIE: it
    silently truncates any big UID to its lower 21 bits. I don't know
    what can be the consequences of this lie.

    I think there is currently a design issue in automake/m4/tar.m4
    considering that a ustar archive should should *never* succeed when
    ./configure is run from a big user ID.

Months later, Petr Hracek <phracek@redhat.com> reports a similar issue
(in bug#13588) for Fedora 17:

    I am trying to solve problem in case a user is created with big
    UID and during configuration pax hangs with message

        ATTENTION! pax archive volume change required.
        Ready for archive volume: 1
        Input archive name or "." to quit pax.
        Archive name >

    and needs user interaction.

    Reference: <https://bugzilla.redhat.com/show_bug.cgi?id=843376>

Time to fix this issue, on the line of a preliminary patch provided by
Petr Hracek in bug#13588.  The final patch ended up being remarkably
different from that original proposition, though.

* m4/tar.m4 (_AM_PROG_TAR): If the UID or GID of the current user is
too high (> 2097151), the 'ustar' format cannot work.  Adjust checks
accordingly.  Some related code reordering and clean-up.
* t/tar-ustar-id-too-high.sh: New test.
* t/list-of-tests.mk: Add it.
* t/tar.sh: While at it, tweak and enhance a little.
* t/tar2.sh: Likewise.
* t/tar3.sh: Likewise.
* t/tar-override.sh: Likewise.
* NEWS: Update.
* THANKS: Likewise.

Helped-by: Pavel Raiskup <praiskup@redhat.com>
Helped-by: Petr Hracek <phracek@redhat.com>
Helped-by: Marc Herbert <marc.herbert@intel.com>
Helped-by: Tom Rini <tom_rini@mentor.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge few bug-fixing branches into branch-1.13.2
Stefano Lattarini [Fri, 26 Apr 2013 18:22:24 +0000 (20:22 +0200)]
Merge few bug-fixing branches into branch-1.13.2

* fix-part-pr13832:
  tests: avoid possible autotools caching issues (automake bug#13832)

* fix-pr13760:
  dry-run: don't get confused by '-I' option
  dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)
  header vars: can determine whether we are running under GNU make

* fix-doc-pr14019:
  docs: issues with configure substitutions in TESTS

* news-wording-improve:
  NEWS: improve wording for automake bug#13514 fix

11 years agodocs: issues with configure substitutions in TESTS
Stefano Lattarini [Thu, 25 Apr 2013 19:03:40 +0000 (21:03 +0200)]
docs: issues with configure substitutions in TESTS

Motivated by automake bug#14019.

* doc/automake.texi: Currently, when the parallel test harness is in use,
configure substitutions in TESTS definitions can only work if they expand
to tests that ends with a suffix listed in TEST_EXTENSIONS.  Document this
limitation.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: avoid possible autotools caching issues (automake bug#13832)
Stefano Lattarini [Sat, 20 Apr 2013 20:46:30 +0000 (22:46 +0200)]
tests: avoid possible autotools caching issues (automake bug#13832)

* t/ar-lib4.sh: Here, by removing the autom4te cache before editing
configure.ac and re-running the autotools.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agodocs: add myself and Ralf Wildenhues as authors
Stefano Lattarini [Thu, 25 Apr 2013 19:34:17 +0000 (21:34 +0200)]
docs: add myself and Ralf Wildenhues as authors

* doc/automake.texi: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoauthors: add myself
Stefano Lattarini [Thu, 25 Apr 2013 19:20:11 +0000 (21:20 +0200)]
authors: add myself

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agodry-run: don't get confused by '-I' option
Stefano Lattarini [Mon, 22 Apr 2013 16:02:07 +0000 (18:02 +0200)]
dry-run: don't get confused by '-I' option

Fixes automake bug#13760 for non-GNU make implementations that still
support the option '-I'.  So far, the only such make implementation
are FreeBSD (8.x) make and NetBSD (5.x) make.

* lib/am/header-vars.am (am__make_dryrun): If a non-GNU make is being
used, try to handle the '-I' option in $MAKEFLAGS correctly.  For GNU
make, that is already done by the proper use of the $MFLAGS variable.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: avoid a spurious failure with the Korn Shell
Stefano Lattarini [Mon, 22 Apr 2013 21:37:11 +0000 (23:37 +0200)]
tests: avoid a spurious failure with the Korn Shell

* t/list-flags.sh: Ensure the EMACS variable is set before unsetting it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agodry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)
Stefano Lattarini [Mon, 22 Apr 2013 13:07:43 +0000 (15:07 +0200)]
dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)

Fixes automake bug#13760 for GNU make.

* lib/am/header-vars.am (am__make_dryrun): If GNU make is being used, rely
on the contents of the $(MFLAGS) variable rather than of the $(MAKEFLAGS)
to decide whther make is being executed in "dry run" mode.  Not only this
makes the code possibly faster and less brittle, but also fixes automake
bug#13760 (at least when GNU make is in use).
* t/make-dryrun.tap: Adjust: some tests that were xfailing now pass.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoheader vars: can determine whether we are running under GNU make
Stefano Lattarini [Mon, 22 Apr 2013 12:53:14 +0000 (14:53 +0200)]
header vars: can determine whether we are running under GNU make

This is mostly a preparatory patch in view of future changes.

* lib/am/header-vars.am (am__is_gnu_make): New, contains shell code that
determines whether we are running under GNU make.
* t/make-is-gnu.sh: New test.
* t/list-of-tests.mk: Add it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoNEWS: improve wording for automake bug#13514 fix
Stefano Lattarini [Sun, 21 Apr 2013 14:59:05 +0000 (16:59 +0200)]
NEWS: improve wording for automake bug#13514 fix

Helped-by: Jack Kelly <jack@jackkelly.name>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoNEWS: document fix for automake bug#13514
Stefano Lattarini [Sun, 21 Apr 2013 08:38:29 +0000 (10:38 +0200)]
NEWS: document fix for automake bug#13514

It was fixed by commit v1.13.1b-5-g7a3d7ce.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoINSTALL: regen
Stefano Lattarini [Sat, 20 Apr 2013 18:56:18 +0000 (20:56 +0200)]
INSTALL: regen

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agosync: update files from upstream with "make fetch"
Stefano Lattarini [Sat, 20 Apr 2013 16:10:28 +0000 (18:10 +0200)]
sync: update files from upstream with "make fetch"

* lib/INSTALL: Update.
* lib/config.guess: Likewise.
* lib/config.sub: Likewise.
* lib/gendocs.sh: Likewise.
* lib/gendocs_template: Likewise.
* lib/gitlog-to-changelog: Likewise.
* lib/gnupload: Likewise.
* lib/texinfo.tex: Likewise.
* lib/update-copyright: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: tweaks and minimal improvements to t/insthook.sh
Stefano Lattarini [Sat, 20 Apr 2013 15:03:51 +0000 (17:03 +0200)]
tests: tweaks and minimal improvements to t/insthook.sh

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoAdd missing '$' for variable expansion in depout.m4
Gavin Smith [Fri, 19 Apr 2013 13:16:26 +0000 (15:16 +0200)]
Add missing '$' for variable expansion in depout.m4

* m4/depout.m4: "am__include" appeared where "$am__include" was meant.

Reference:
<http://lists.gnu.org/archive/html/automake-patches/2013-04/msg00000.html>

Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agofixup: one stray reference to older versioning scheme
Stefano Lattarini [Thu, 21 Feb 2013 18:25:55 +0000 (19:25 +0100)]
fixup: one stray reference to older versioning scheme

* lib/Automake/Options.pm: Here, in a FIXME comment: reference
"Automake 3.0" rather than "Automake 1.15".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'fix-pr13514' into branch-1.13.2
Stefano Lattarini [Thu, 21 Feb 2013 14:35:04 +0000 (15:35 +0100)]
Merge branch 'fix-pr13514' into branch-1.13.2

* fix-pr13514:
  aclocal: fix for more-than-once specified directories
  aclocal: just warn if the primary local m4 dir doesn't exist (don't error)

11 years agoaclocal: fix for more-than-once specified directories
Pavel Raiskup [Mon, 11 Feb 2013 12:11:52 +0000 (13:11 +0100)]
aclocal: fix for more-than-once specified directories

Related to automake bug#13514.

Do not consider directories for extra m4 files multiple times in
'aclocal'.  Doing so caused problems on older packages that specify

    configure.ac:  AC_CONFIG_MACRO_DIRS([m4])
    Makefile.am:   ACLOCAL_AMFLAGS = -I m4

if the 'm4' directory does not exist when aclocal is called the first
time by autoreconf.

See:
<http://lists.gnu.org/archive/html/bug-automake/2013-01/msg00115.html>

* aclocal.in (scan_m4_files): Remove duplicates in @user_includes.
* t/aclocal-macrodir.tap: Extend.
* t/aclocal-macrodirs.tap: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'new-versioning-scheme' into branch-1.13.2
Stefano Lattarini [Wed, 20 Feb 2013 21:13:34 +0000 (22:13 +0100)]
Merge branch 'new-versioning-scheme' into branch-1.13.2

* new-versioning-scheme:
  maint: describe new versioning and branching scheme, and adjust to it

11 years agoaclocal: just warn if the primary local m4 dir doesn't exist (don't error)
Pavel Raiskup [Mon, 11 Feb 2013 12:11:51 +0000 (13:11 +0100)]
aclocal: just warn if the primary local m4 dir doesn't exist (don't error)

Related to automake bug#13514.

Every package which does not need to have the local m4 macro
directory pre-existing in the version control system (because
e.g., it does not have nor need any private m4 macros) would
fail during the "autoreconf -vfi" phase if AC_CONFIG_MACRO_DIRS([m4])
is specified in configure.ac (it could be to instruct tools like
'autopoint' and 'libtoolize' to use 'm4' as the local directory
where to install definitions of their m4 macros, and to instruct
aclocal to look into it).  The failure would go like this:

  autoreconf: Entering directory `.'
  autoreconf: running: aclocal --force
  aclocal: error: couldn't open directory 'm4': No such file or directory
  autoreconf: aclocal failed with exit status: 1

The problem is that when 'aclocal' is run for the first time during
'autoreconf', the directory 'm4' does not exist yet.  It will be
created by e.g., 'libtoolize' or 'autopoint' later on.  During the
second 'aclocal' run, the 'm4' directory exists and aclocal does not
complain.

To work around this issue, we degrade the error to a simple warning.
The warning is still quite useful when aclocal is run by hand - so
we are not removing completely.

See also:
<http://lists.gnu.org/archive/html/bug-automake/2013-01/msg00115.html>
<http://lists.gnu.org/archive/html/automake-patches/2010-02/msg00030.html>
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=565663>
<https://bugzilla.redhat.com/show_bug.cgi?id=901333>

* aclocal.in (SCAN_M4_DIRS_SILENT, SCAN_M4_DIRS_WARN)
(SCAN_M4_DIRS_ERROR): New constants.
(scan_m4_dirs): Change the second parameter name to $ERR_LEVEL to
better reflect new semantic. Use new constants.
(scan_m4_files): Adjust to reflect the new 'scan_m4_dirs' semantics.
* t/aclocal-macrodir.tap: Adjust.
* t/aclocal-macrodirs.tap: Likewise.
* THANKS: Update.
* NEWS: Likewise.

Suggested-by: Ben Pfaff <blp@cs.stanford.edu>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agocoverage: expose automake bug#13760
Stefano Lattarini [Wed, 20 Feb 2013 12:25:39 +0000 (13:25 +0100)]
coverage: expose automake bug#13760

* t/make-dryrun.tap: Here.
* THANKS: Update with the name of the bug reporter.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: refactor/enhance tests about make dry-run mode
Stefano Lattarini [Wed, 20 Feb 2013 11:44:50 +0000 (12:44 +0100)]
tests: refactor/enhance tests about make dry-run mode

* t/make-dryrun.tap: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>