* Makefile.am (git-dist): The developers should test extensively
before finally creating the release tarball; so don't run "make
distcheck" on their behalf here; instead ...
* HACKING (Release procedure): ... state here that "make check"
and "make distcheck" should be run before calling "make git-dist".
* HACKING (Release procedure): Announces for alpha and beta releases
should be sent to the `platform-testers@gnu.org' mailing list. Some
related rewording.
* HACKING (Administrivia): If a commit fixes a bug registered at GNU
debbugs, its bug number be reported in the ChangeLog entry. Re-order
the entries to give more visibility to the advice on how to verify
that a commit really fixes a bug.
(Working with git): Improve advice about which pre-existing branch
a topic branch should be based on.
Before the present change, automake-generated `dist-xz' rule used
a hard-coded `xz -9'. That was a problem because on this front,
xz differs from gzip and bzip2. While the latter two don't incur
any run-time decompression penalty for using a higher compression
level, specifying -9 with xz imposes a potentially fatal virtual
memory requirement on any client that wants to decompress your
tar.xz file.
People have complained that a tarball compressed with -9 cannot
be uncompressed in a low-memory environment (wrt-based embedded).
Hence, instead of defaulting to -9, which is useful only for very
large tarballs, it defaults to -e (equivalent to -6e). This
limits the default memory requirements imposed on decompressors,
yet still gives very good compression ratios.
* lib/am/distdir.am (dist-xz): Do not hard-code xz's -9: that made
it impossible to override. Actually don't default to -9, either,
since that induced inordinately large virtual memory usage when
merely decompressing. Instead, use its XZ_OPT envvar, defaulting
to -e if not defined. Suggested by Lasse Collin.
(dist, dist-all) [?XZ?]: Likewise
(dist-bzip2): Similarly, do not hard-code -9, but do continue to
use -9 by default. Honor the BZIP2 envvar.
(dist, dist-all) [?BZIP2?]: Likewise
* NEWS: Update.
* doc/automake.texi (The Types of Distributions): Describe the
newly enabled environment variables.
This is inspired to commit v1.11-389-g6da46f3, with additional
changes to reflect that the xz compression level should default
to -e, not -9.
tests: fix spurious failures due to missing 'yywrap()' function
The AC_PROG_LEX Autoconf macro does not diagnose a failure to find
the "lex library" expected to provide a `yywrap' function (function
which is required to link most lex-generated programs). On the
contrary, when all the link attempts (i.e., with `-ll' and `-lfl')
fail, configure declares that no lex library is needed, and simply
proceeds with the configuration process -- only for the build to
possibly fail later, at make time.
This behaviour is intended; the Autoconf manual reads:
``You are encouraged to use Flex in your sources, since it is
both more pleasant to use than plain Lex and the C source it
produces is portable. In order to ensure portability, however,
you must either provide a function `yywrap' or, if you don't use
it (e.g., your scanner has no `#include'-like feature), simply
include a `%noyywrap' statement in the scanner's source.''
This AC_PROG_LEX behaviour is causing some spurious failures of
the Automake testsuite in environments which lack a proper library
providing `yywrap' (this happens for example on Fedora-based
systems). The proper workaround is to simply provide a fall-back
implementation of `yywrap' in our lexers.
Peter Rosin [Sat, 26 Nov 2011 13:54:00 +0000 (14:54 +0100)]
tests: fix 'distcheck-override-infodir.test' on Cygwin
* tests/distcheck-override-infodir.test (Makefile.am): Do not add
any `/' between $(DESTDIR) and the following paths. Otherwise,
when $(DESTDIR) is empty, the recipes will try to access files
with a leading double slash, which have an implementation-defined
interpretation (e.g., for Cygwin, they mean UNC paths).
coverage: undistributed '.am' and '.m4' files are diagnosed
The stub rules emitted to work around the "deleted header problem"
for `.m4' files (included by autoconf in e.g., configure.ac) and
for `.am' files (included by automake in e.g., Makefile.am) should
not prevent "make" from correctly complaining when such a required
file is missing from a distribution tarball.
* tests/dist-missing-am.test: New test.
* tests/dist-missing-m4.test: Likewise.
* tests/dist-missing-included-m4.test: Likewise.
* tests/Makefile.am (TESTS): Add them.
coverage: required but missing '.am' and '.m4' files are diagnosed
The stub rules emitted to work around the "deleted header problem"
for `.m4' files (included by autoconf in e.g., configure.ac) and
for `.am' files (included by automake in e.g., Makefile.am) should
not prevent the remake rules from correctly erroring out when a
still-required file is missing.
texinfo: work around Solaris 10 xpg4 shell bug in install rules
* lib/am/texinfos.am (install-html-am): Use an extra variable
indirection to work around a bug in Solaris 10 /usr/xpg4/bin/sh.
Bug revealed by a failure of `txinfo21.test'. See also:
<http://lists.gnu.org/archive/html/bug-autoconf/2011-11/msg00005.html>
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10026#23>
tests: fix spurious failure with older install-info
* tests/install-info-dir.test (foo.texi): Also add proper
`@settitle', `@dircategory' and `@direntry' directive, otherwise
older versions of `install-info' (e.g., 4.8) will fail to create
the `dir' index file in ${infodir}.
tests: fix spurious error in 'uninstall-fail.test' on Solaris
* tests/uninstall-fail.test: Solaris 10 /usr/xpg4/bin/sh can add
a line number before the `:' in the error messages issued by shell
builtins. Account for that in our grepping of make output.
tests: avoid a spurious failure of 'ltinit.test' MinGW
* tests/ltinit.test: Be laxer in grepping configure output, to
avoid spurious failures on systems which lack POSIX dynamic
linking (e.g., MinGW), or when cross-compiling for such systems.
tests: testsuite is now safe to run with dmake in parallel mode
* tests/defs.in: Unset variables DMAKE_CHILD, DMAKE_DEF_PRINTED
and DMAKE_MAX_JOBS, which are exported by Solaris dmake when run
in parallel mode, and which might confuse make processes spawned
by our testsuite.
tests: fix spurious failures w.r.t. parallel make and colorization
* tests/color2.test: Skip the test if the $MAKE program fails to
consider the standard output as a tty when spawned by `expect'.
This is required for make implementations, like FreeBSD make and
Solaris dmake, that redirect the output of recipes to temporary
files or pipes when run in parallel mode. Since we are at it,
simplify the detection of a working `expect' program, and throw
in other minor simplifications.
tests: avoid another failure of 'uninstall-fail.test' on Solaris
* tests/uninstall-fail.test: On Solaris 10, if `/bin/rm' is run
with the `-f' option, it doesn't print any error message when
failing to remove a file (due to e.g., "Permission denied").
Yikes. Cater to this incompatibility, by relaxing the test when
a faulty `rm' is detected.
* m4/maintainer.m4 (AM_MAINTAINER_MODE): Fix the "checking ..."
configure message related to the enabling/disabling of maintainer
mode.
* tests/help-maintainer.test: Renamed ...
* tests/maintmode-configure-msg.test: ... to this, and extended
to cover the fixed bug. Also, since we are at it, make grepping
of configure help screens stricter, and throw in some few other
changes to reduce code duplication and enhance readability.
* tests/Makefile.am (TESTS): Update.
* THANKS: Update with Zack's new e-mail address.
Report and initial patch by Zack Weinberg, test cases added by
Stefano Lattarini.
info: allow user to inhibit creation/update of '${infodir}/dir'
With this change, we allow the user to request the install-info
rules not to update the `${infodir}/dir' file, by exporting the
environment variable `AM_UPDATE_INFO_DIR' to the value "no".
This is especially useful to distro packagers, and is a definite
improvement over our previous hack of looking whether the
`install-info' program was the Debian or GNU version -- hack
which had been silently broken with recent versions of debian
install-info BTW (probably since dpkg 1.15.4, 2009-09-06).
This change fixes automake bug#9773. See also Debian Bug#543992.
* lib/am/texinfos.am: Don't look anymore at the output of
`install-info --version' to decide whether to use it to update
the `${infodir}/dir' or not; instead, honour the environment
variable `AM_UPDATE_INFO_DIR'.
* tests/install-info-dir.test: New test.
* tests/Makefile.am (TESTS): Add it.
* tests/defs: Also unset `AM_UPDATE_INFO_DIR', to avoid unwanted
interferences from the environment.
* doc/automake.texi (Texinfo): Update.
* NEWS: Likewise.
* THANKS: Likewise.
Report by Jonathan Nieder.
dejagnu: allow the package developer to extend site.exp
Fixes automake bug#7873.
* lib/am/dejagnu.am (site.exp): Depend from the files listed in
$(EXTRA_DEJAGNU_SITE_CONFIG), if any. Append their contents to
the generated site.exp (still preserving user edits).
* doc/automake.texi (Dejagnu Tests): Update.
* tests/dejagnu-siteexp-append.test: New test.
* tests/dejagnu-siteexp-extend.test: Likewise.
* tests/dejagnu-siteexp-useredit.test: Likewise.ù
* NEWS: Update.
* tests/Makefile.am (TESTS): Update.
Merge branch 'dejagnu-srcdir-discrepancy' into maint
* dejagnu-srcdir-discrepancy:
dejagnu: ensure 'srcdir' is defined as a relative directory
Fix testsuite failure of check12.test without DejaGNU.
Extend and improve tests on DejaGnu support.
This change partly reverts commit "Create subdirs for generated
sources even when not dep tracking", of 2011-04-02.
That commit had caused the bugs #8485 and #8526. Since we are
nearing the bug-fixing automake release 1.11.2, the safest policy
at the moment is to just revert the problematic hunks: an older,
known bug is better than a regression.
* automake.in (handle_single_transform): Don't add a dirstamp
dependency, even when $object is derived and lands in a subdir.
* tests/Makefile.am (XFAIL_TESTS): Add lex-subobj-nodep.test,
remove yacc-dist-nobuild-subdir.test.
tests: fix spurious failures with "chatty" make implementations
* tests/distcheck-missing-m4.test: On failure, some make
implementations (such as Solaris make) print the whole failed
recipe on standard output. This was causing a spurious failure
in the checks grepping the output from make. Work around this.
* tests/distcheck-outdated-m4.test: Likewise.
* tests/aclocal-path-precedence.test: Also remove the `configure'
script between different test runs, to ensure it is always remade
by autoconf. Add proper explicative comments.
tests: avoid spurious failure of 'uninstall-fail.test' on Solaris
* tests/uninstall-fail.test: All the Solaris 10 shells (/bin/sh,
/bin/ksh, and /usr/xpg4/bin/sh), upon failing to chdir to a
directory with the `cd' builtin, print a message like:
"sh: /root: permission denied"
which doesn't report the `cd' builtin anywhere. Relax the grepping
of the error message accordingly.
tests: avoid spurious failure of 'uninstall-fail.test' on Cygwin
* tests/uninstall-fail.test: Be sure to really skip this test
on systems that allows files to be removed from unwritable
directories. Motivated by a spurious failure on Cygwin 1.5.
dejagnu: ensure 'srcdir' is defined as a relative directory
This change fixes automake bug#7833.
* lib/am/dejagnu.am (check-DEJAGNU): Prefer using plain $(srcdir)
over calculating and using the absolute path of $(srcdir).
* tests/dejagnu-relative-srcdir.test: New test.
* tests/dejagnu-absolute-builddir.test: Likewise.
* tests/Makefile.am (TESTS): Update.
Report by Ian Lance Taylor. Suggestions by Ralf Wildenhues.
tests: avoid spurious failure in 'parallel-tests3.test'
This fixes automake bug#8788.
* tests/parallel-tests3.test: To ensure that the serial run of
the dummy testsuite is still ongoing when the parallel run has
terminated, use `kill -0', not a bare `kill'. This will prevent
a testsuite crash on NetBSD 5.1, and a testsuite hang on FreeBSD
8.2. Also, since we are at it, try harder to avoid possible
hangs of the script in other unusual situations.
tests: fix spurious failure with FreeBSD make and Yacc in VPATH
* tests/subpkg.test: Some cosmetic adjustments. Move the tests
checking that $(YLWRAP) is defined and installed properly when
ylwrap is in a default auxdir found in a parent package ...
* tests/subpkg-yacc.test: ... into this new test, which carefully
avoids to trigger the known bug#7884 (combo FreeBSD make plus Yacc
plus VPATH build).
* tests/Makefile.am (TESTS): Update.
* tests/aclocal-path-precedence.test: Rewrite configure.in,
rather than appending to it, to avoid spurious failures (at
least with autoconf 2.62) due to repeated calls to AC_INIT.
Also, add package name and version arguments to AC_INIT, to
avoid spurious errors from automake.
docs: avoid using colon character inside arguments of @pxref
Fixes automake bug#9753
* doc/automake.texi (VPATH Builds): Avoid using colon character
`:' inside arguments of @pxref, as this can cause problems in
the generated `.info' files, and such an usage will be explicitly
forbidden by future texinfo documentation.
* THANKS: Update.
parallel-tests: don't allow @substitutions@ in TEST_EXTENSIONS
Even after the last commit `v1.11-476-g90bea64', the checks
performed by automake on entries in $(TEST_EXTENSIONS) tried to
allow for @substitited@ stuff. This however ends up allowing
quite brittle setups, which, most importantly, are of no real
practical usefulness anyway. So it's better to just disallow
@substitutions@ in TEST_EXTENSIONS altogether, offering a clear
error message, instead of risking weird bugs and unexpected
behaviors in the generated Makefile.in.
* automake.in ($TEST_EXTENSION_PATTERN): Turned from a regular
expression ...
(is_valid_test_extension): ... into this subroutine. Don't allow
generic @substitutions@ anymore (possibly making an exception for
`@EXEEXT@' under the proper circumstances).
* tests/test-extensions.test: Adjust and extend.
* tests/insthook.test (Makefile.am): Add a proper `uninstall-hook'
target to remove the symlink created by the `install-exec-hook'
target; this prevents "make distcheck" from failing spuriously.
Since we are at it, delete an extra blank line, and add a trailing
`:' command.
parallel-tests: automake error our on invalid TEST_EXTENSIONS
This change fixes automake bug#9400.
* automake.in (handle_tests): Bail out if a suffix specified in
TEST_EXTENSIONS would produce an invalid `xxx_LOG_COMPILER'
variable or an invalid suffix rule. Before this change, automake
would have issued a confusing error messages (about invalid or
non-POSIX variables being defined), and in some situations would
have even produced a broken `Makefile.in' file.
($TEST_EXTENSION_PATTERN): New helper variable.
* doc/automake.texi (Simple Tests using parallel-tests): Document
the limitations on TEST_EXTENSIONS explicitly.
* NEWS: Update.
* tests/test-extensions.test: New test.
* tests/Makefile.am (TESTS): Update.
docs: don't suggest installing `.m4' files in hard-coded location
This change fixes automake bug#7988.
* doc/automake.texi (aclocal Options): State that the use of
the `--print-ac-dir' option to determine the directory where
third-party packages can install their `.m4' files is discouraged
now.
(Extending aclocal): Suggest telling the user about ACLOCAL_PATH.
* THANKS: Update.
distuninstallcheck: fail also when only one file is left installed
This change fixes automake bug#9579.
* lib/am/distdir.am (distuninstallcheck): Be stricter in ignoring
a potential `dir' file created by install-info and left installed.
Also, be more careful about "this can't happen" kind of errors.
(am__distuninstallcheck_listfiles): New internal helper macro.
* tests/distcheck-pr9579.test: New test.
* tests/distcheck-override-infodir.test: Likewise.
* tests/Makefile.am (TESTS): Add them.
* NEWS, THANKS: Update.
uninstall: "make uninstall" before "make install" works
This change fixes automake bug#9578.
* lib/am/inst-vars.am (am__uninstall_files_from_dir): New internal
macro, that defines a shell code fragment to uninstall files from
a given directory.
* lib/am/data.am (uninstall-%DIR%%PRIMARY%): Use it, to reduce code
duplication and improve consistency and correctness.
* lib/am/libs.am (uninstall-%DIR%LIBRARIES): Likewise.
* lib/am/lisp.am (uninstall-%DIR%LISP): Likewise.
* lib/am/mans.am (uninstall-man%SECTION%): Likewise.
* lib/am/python.am (uninstall-%DIR%LIBRARIES): Likewise.
* lib/am/scripts.am (uninstall-%DIR%SCRIPTS): Likewise.
* tests/uninstall-pr9578.test: New test.
* tests/uninstall-fail.test: New test.
* tests/Makefile.am (TESTS): Add them.
* NEWS, THANKS: Update.
docs: document planned precedence changes in aclocal search path
* doc/automake.texi (Macro Search Path): Explicitly state that the
lookup order for extra directories of `.m4' files will be changed
in the next major release.
* NEWS: Likewise.
Paolo Bonzini [Tue, 9 Nov 2010 19:14:38 +0000 (20:14 +0100)]
aclocal: handle ACLOCAL_PATH environment variable
* aclocal.in (parse_ACLOCAL_PATH): New function, parse ACLOCAL_PATH
as a colon-separated list of directories to be included in the
search path.
* doc/automake.texi (Macro Search Path): Document new behavior and
the precedence rules for various elements of the search path.
* tests/aclocal-path.test: New test.
* tests/aclocal-path-install.test: Likewise.
* tests/aclocal-path-install-serial.test: Likewise.
* tests/aclocal-path-precedence.test: Likewise.
* tests/aclocal-path-nonexistent.test: Likewise.
* tests/Makefile.am (TESTS): Add them.
* NEWS: Update.
* tests/distcheck-missing-m4.test: Extend by also checking
interactions with ACLOCAL_PATH.
* tests/distcheck-outdated-m4.test: Likewise, and fix a couple
of botched comments since we are at it.
tests: fix spurious failure in 'primary-prefix-valid-couples.test'
* tests/primary-prefix-valid-couples.test: After commit v1.11-464-gc9dfc36, `java_JAVA' is not a valid prefix/primary
combination by default anymore: one has to explicitly define
$(javadir) to make it so. So just drop `java_JAVA' from our
Makefile.am Also, since we are at it, ...
(configure.in): ... remove AM_PROG_GCJ from here, as it's not
really required.
* doc/automake.texi (Java): Deprecate the JAVA primary, stating
that it will become obsolete in automake 1.12 and probably removed
altogether in automake 1.13. Reflect this in the section title,
by appending the string "(deprecated feature)".
(@menu, @detailmenu): Update.
(Java Support with gcj): The cross-referenced support for bytecode
compilation with the JAVA primary is rudimentary and deprecated.
State that explicitly.
docs: clearer distinction between `.java' with javac and with gcj
* doc/automake.texi (Java support): Rename this node ...
(Java support with gcj): ... to this, and change its title from
"Compiling Java sources" to "Compiling Java sources using gcj".
(@detailmenu, @menu, @cindex): Update and make more precise.
(Java): Change the title of this node from simply "Java" to
"Java bytecode compilation".
(@detailmenu, @menu, @cindex): Update and make more precise.
* python-work:
cosmetics: fix various typos and grammaros
py-compile: '--' and non-option arguments terminate the option list
py-compile: complain on unrecognized options
py-compile: normalize error and help messages
python tests: add "unit tests" on py-compile
py-compile: the '--destdir' option now accepts a blank argument
python: run the 'py-compile' script with $(SHELL)
java: fix various blunders in test 'java-mix.test'
* tests/java-mix.test: Add missing call to `set -e'. Fix inverted
semantics (`.java' files are expected *not* to be distributed by
default, not the other way round). Fix various typos in the name
of the `.java' files. Correct other minor blunders. Improve some
comments.
java: allow both JAVA and nobase_JAVA in the same Makefile.am
* automake.in (handle_java): Also strip `nobase_' from the given
prefix, when needed.
* tests/java-clean.test: Update and extend.
* tests/java-compile-install.test: Likewise.
* tests/java-no-duplicate.test: Likewise.
* tests/java-sources.test: Likewise.
* tests/java-noinst.test: Likewise.
* tests/java-mix-dist-nodist.test: Renamed to ...
* tests/java-mix.test: ... this, and extended.
* tests/java-nobase.test: New test, still xfailing due to
unrelated issues.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
java: allow both dist_JAVA and nodist_JAVA in the same Makefile.am
Fixes automake bug#8434.
* automake.in (handle_java): Strip `dist_' and `nodist_' from
the given prefix. Define a new internal Makefile variable
`am__java_sources'. Related adjustments.
* lib/am/java.am (JAVAC, JAVAROOT, CLASSPATH_ENV): Define only the
first time this am file is processed.
(class%DIR%.stamp): Stamp file renamed ...
(class%NDIR%.stamp): ... to this, so that the `dist_' and `nodist_'
prefixes are stripped from the name of the stampfile. Adjust
declaration of dependencies by using the new automake-generated
internal variable `$(am__java_sources)'. In the rule, use `$@'
as the name of the target, rather than hard-coding it.
* tests/java.test: Update and extend.
* tests/java-no-duplicate.test: New test.
* tests/java-mix-dist-nodist.test: Likewise.
* tests/java-compile-and-install.test: Likewise.
* tests/java-clean.test: Likewise.
* tests/java-sources.test: Likewise.
* tests/Makefile.am (TESTS): Update.
* maint:
tests: fix spurious failure on fast machines
aclocal: better URL reference in error message
coverage: distcheck-hook to catch missing/outdated *.m4 files
aclocal: more granularity in acdir overriding
* tests/amhello-binpkg.test: Add missing $EXEEXT usage.
fix: list test 'vala-vpath.test' in XFAIL_TESTS
tests: simplify wrapper for aclocal
fix: minor typo in ChangeLog
coverage: vala support failing for VPATH from-scratch builds
docs: report few more automake parsing limitations
tests: list "forgotten" test script in TESTS
ylwrap: fix unusual indentation whitespace