Merge branch 'yacc-work' into yl-work-for-master
[platform/upstream/automake.git] / NEWS
diff --git a/NEWS b/NEWS
index 8fae2dd..3dfcd1e 100644 (file)
--- a/NEWS
+++ b/NEWS
-New in 1.11.0a:
+New in 1.11a:
+
+* Obsolete features removed:
+
+  - Support for automatic de-ANSI-fication has been removed.
+
+  - The support for the "obscure" multilib feature has been removed
+    from Automake core (but remains available in the 'contrib/'
+    directory of the Automake distribution).
+
+  - Support for ".log -> .html" conversion and the check-html and
+    recheck-html targets has been removed from Automake core (but
+    remains available in the 'contrib/' directory of the Automake
+    distribution).
+
+  - The deprecated `lzma' compression format for distribution archives
+    has been removed, in favor of `xz' and `lzip'.
+
+  - The obsolete AM_WITH_REGEX macro has been removed.
+
+  - The deprecated options `--output-dir', `--Werror' and `--Wno-error'
+    have been removed.
+
+* New targets:
+
+  - New `cscope' target to build a cscope database for the source tree.
+
+* Changes to Automake-generated testsuite harnesses:
+
+  - Test scripts that exit with status 99 to signal an "hard error" (e.g.,
+    and unexpected or internal error, or a failure to set up the test case
+    scenario) have their outcome reported as an 'ERROR' now.  Previous
+    versions of automake reported such an outcome as a 'FAIL' (the only
+    difference with normal failures being that hard errors were counted
+    as failures even when the test originating them was listed in
+    XFAIL_TESTS).
+
+  - The testsuite summary displayed by the parallel-test harness has a
+    completely new format, that always list the numbers of passed, failed,
+    xfailed, xpassed, skipped and errored tests, even when these numbers
+    are zero (but using smart coloring when the color-tests option is in
+    effect).
+
+  - The default testsuite driver offered by the 'parallel-tests' option is
+    now implemented (partly at least) with the help of automake-provided
+    auxiliary scripts (e.g., `test-driver'), instead of relying entirely
+    on code in the generated Makefile.in.
+    This has two noteworthy implications.  The first one is that projects
+    using the `parallel-tests' option should now either run automake with
+    the `--add-missing' option, or manually copy the `test-driver' script
+    into their tree.  The second, and more important, implication is that
+    now, when the `parallel-tests' option is in use, TESTS_ENVIRONMENT can
+    not be used anymore to define a test runner, and the command specified
+    in LOG_COMPILER (and <ext>_LOG_COMPILER) must be a *real* executable
+    program or script.  For example, this is still a valid usage (albeit
+    a little contorted):
+
+      TESTS_ENVIRONMENT = \
+        if test -n '$(STRICT_TESTS)'; then \
+          maybe_errexit='-e'; \
+        else \
+          maybe_errexit=''; \
+        fi;
+      LOG_COMPILER = $(SHELL) $$maybe_errexit
+
+    while this is not anymore:
+
+      TESTS_ENVIRONMENT = \
+        $(SHELL) `test -n '$(STRICT_TESTS_CHECKING)' && echo ' -e'`
+
+    neither is this:
+
+      TESTS_ENVIRONMENT = \
+        run_with_perl_or_shell () \
+        { \
+          if grep -q '^#!.*perl' $$1; then
+            $(PERL) $$1; \
+          else \
+            $(SHELL) $$1; \
+          fi; \
+        }
+      LOG_COMPILER = run_with_per_or_shell
+
+  - The package authors can now use customary testsuite drivers within
+    the framework provided by the 'parallel-tests' testsuite harness.
+    Consistently with the existing syntax, this can be done by defining
+    special makefile variables `LOG_DRIVER' and `<ext>_LOG_DRIVER'.
+
+  - A new developer-reserved variable `AM_TESTS_FD_REDIRECT' can be used
+    to redirect/define file descriptors used by the test scripts.
+
+  - The parallel-tests harness generates now, in addition the `.log' files
+    holding the output produced by the test scripts, a new set of `.trs'
+    files, holding "metadata" derived by the execution of the test scripts;
+    among such metadata are the outcomes of the test cases run by a script.
+
+  - Initial and still experimental support for the TAP test protocol is
+    now provided.
+
+* Changes to Yacc and Lex support:
 
-* WARNING: Future backward-incompatibilities!
+  - C source and header files derived from non-distributed Yacc and/or
+    Lex sources are now removed by a simple "make clean" (while they were
+    previously removed only "make maintainer-clean").
 
-  - The support for the "obscure" multilib feature has been deprecated,
-    and will be moved out of the automake core in the next major Automake
-    release (1.12).
+  - Slightly backward-incompatible change, relevant only for use of Yacc
+    with C++: the extensions of the header files produced by the Yacc
+    rules are now modelled after extension of the sources corresponding
+    sources.  For example, yacc files named "foo.y++" and "bar.yy" will
+    produce header files named respectively "foo.h++" and "bar.hh", where
+    they would have previously produced header files named simply "foo.h"
+    and "bar.h".  This change offers better compatibility with `bison -o'.
 
-  - The support for ".log -> .html" conversion and the check-html and
-    recheck-html targets will be removed in the next major Automake
-    release (1.12).
+  - C source and header files derived from non-distributed Yacc sources
+    are now removed by "make clean", not only by "make maintainer-clean".
 
-  - The `lzma' compression format for distribution archives has been
-    deprecated in favor of `xz' and `lzip', and will be removed in the
-    next major Automake release (1.12).
+* Miscellaneous changes:
 
-  - The Automake support for automatic de-ANSI-fication will be removed in
-    the next major Automake release (1.12).
+  - The `dist' and `dist-all' targets now can run compressors in parallel.
 
-  - The `--acdir' option of aclocal is deprecated, and will probably be
-    removed in the next major Automake release (1.12).
+  - Automake can now generate silenced rules for texinfo outputs.
 
-  - The exact order in which the directories in the aclocal macro
-    search path are looked up is probably going to be changed in the
-    next Automake release (1.12).
+  - Some auxiliary files that are automatically distributed by Automake
+    (e.g., `install-sh', or the `depcomp' script for packages compiling
+    C sources) might now be listed in the DIST_COMMON variable in many
+    Makefile.in files, rather than in the top-level one.
 
-  - The obsolescent AM_WITH_REGEX  macro has been deprecated (since the
-    GNU rx library has been decommissioned), and will be removed in the
-    next major Automake release (1.12).
+  - Messages of types warning or error from `automake' and `aclocal'
+    are now prefixed with the respective type, and presence of -Werror
+    is noted.
 
-* Changes to aclocal:
+  - Automake's early configure-time sanity check now tries to avoid
+    sleeping for a second, which slowed down cached configure runs
+    noticeably.  In that case, it will check back at the end of the
+    configure script to ensure that at least one second has passed, to
+    avoid time stamp issues with makefile rules rerunning autotools
+    programs.
 
-  - The `--acdir' option is deprecated.  Now you should use the new options
-    `--automake-acdir' and `--system-acdir' instead.
+  - For programs and libraries, automake now detect EXTRA_foo_DEPENDENCIES
+    and adds them to the normal list of dependencies, but without
+    overwriting the foo_DEPENDENCIES variable, which is normally computed
+    by automake.
 
-  - The `ACLOCAL_PATH' environment variable is now interpreted as a
-    colon-separated list of additional directories to search after the
-    automake internal acdir (by default ${prefix}/share/aclocal-APIVERSION)
-    and before the system acdir (by default ${prefix}/share/aclocal).
+  - The warnings in the category `extra-portability' are now enabled by
+    `-Wall'.  In previous versions, one has to use `-Wextra-portability'
+    to enable them.
+
+Bugs fixed in 1.11a:
+
+  - Various minor bugfixes.
+
+* Bugs introduced by 1.11:
+
+  - The AM_COND_IF macro also works if the shell expression for the
+    conditional is no longer valid for the condition.
+
+* Long-standing bugs:
+
+  - Automake's own build system finally have a real "installcheck" target.
+
+  - Files listed with the AC_REQUIRE_AUX_FILE macro in configure.ac are
+    now automatically distributed also if the directory of the auxiliary
+    files coincides with the top-level directory.
+
+  - Automake now detects the presence of the `-d' flag in the various
+    `*YFLAGS' variables even when their definitions involve indirections
+    through other variables, such as in:
+      foo_opts = -d
+      AM_YFLAGS = $(foo_opts)
+
+  - Automake now complains if a `*YFLAGS' variable has any conditional
+    content, not only a conditional definition.
+
+  - Explicit enabling and/or disabling of Automake warning categories
+    through the `-W...' options now always takes precedence over the
+    implicit warning level implied by Automake strictness (foreign, gnu
+    or gnits), regardless of the order in which such strictness and
+    warning flags appear.  For example, a setting like:
+      AUTOMAKE_OPTIONS = -Wall --foreign
+    will cause the warnings in category `portability' to be enabled, even
+    if those warnings are by default disabled in `foreign' strictness.
+
+\f
+New in 1.11.2a:
+
+* WARNING: Future backward-incompatibilities!
+
+  - The obsolescent AM_WITH_REGEX  macro has been deprecated, since the
+    GNU rx library has been decommissioned.
+
+  - The `lzma' compression format for distribution archives has been
+    deprecated in favor of `xz' and `lzip'.
+
+  - The `--acdir' option of aclocal is deprecated, and will probably be
+    removed in the next major Automake release (1.12). [FIXME]
+
+  - The exact order in which the directories in the aclocal macro
+    search path are looked up is probably going to be changed in the
+    next Automake release (1.12). [FIXME]
 
 * Miscellaneous changes:
 
@@ -67,6 +227,41 @@ New in 1.11.0a:
   - The last relics of Python 1.5 support have been removed from the
     AM_PATH_PYTHON macro.
 
+Bugs fixed in 1.11.2a:
+
+* Long-standing bugs:
+
+  - The "deleted header file problem" for *.am files is avoided by stub
+    rules.  This allows `make' to trigger a rerun of `automake' also if
+    some previously needed `.am' file has been removed.
+
+  - The `silent-rules' option now generates working makefiles even
+    for the uncommon `make' implementations that do not support the
+    nested-variables extension to POSIX 2008.  For such `make'
+    implementations, whether a build is silent is determined at
+    configure time, and cannot be overridden at make time with
+    `make V=0' or `make V=1'.
+
+  - Vala support now works better in VPATH setups.
+
+\f
+New in 1.11.2:
+
+* Changes to aclocal:
+
+  - The `--acdir' option is deprecated.  Now you should use the new options
+    `--automake-acdir' and `--system-acdir' instead.
+
+  - The `ACLOCAL_PATH' environment variable is now interpreted as a
+    colon-separated list of additional directories to search after the
+    automake internal acdir (by default ${prefix}/share/aclocal-APIVERSION)
+    and before the system acdir (by default ${prefix}/share/aclocal).
+
+* Miscellaneous changes:
+
+  - The Automake support for automatic de-ANSI-fication has been
+    deprecated.
+
   - The `lzma' compression scheme and associated automake option `dist-lzma'
     is obsoleted by `xz' and `dist-xz' due to upstream changes.
 
@@ -75,6 +270,9 @@ New in 1.11.0a:
     specify a different level via the XZ_OPT and BZIP2 envvars respectively.
     E.g., "make dist-xz XZ_OPT=-7" or "make dist-bzip2 BZIP2=-5"
 
+  - The `compile' script now converts some options for MSVC for a better
+    user experience.  Similarly, the new `ar-lib' script wraps Microsoft lib.
+
   - The py-compile script now accepts empty arguments passed to the options
     `--destdir' and `--basedir', and complains about unrecognized options.
     Moreover, a non-option argument or a special `--' argument terminates
@@ -88,6 +286,11 @@ New in 1.11.0a:
     user; still, the old Makefile.am files that used to define it will
     still continue to work as before.
 
+  - New macro AM_PROG_AR that looks for an archiver and wraps it in the new
+    'ar-lib' auxiliary script if the selected archiver is Microsoft lib.
+    This new macro is required for LIBRARIES and LTLIBRARIES when automake
+    is run with -Wextra-portability and -Werror.
+
   - When using DejaGnu-based testsuites, the user can extend the `site.exp'
     file generated by automake-provided rules by defining the special make
     variable `$(EXTRA_DEJAGNU_SITE_CONFIG)'.
@@ -96,26 +299,7 @@ New in 1.11.0a:
     the `${infodir}/dir' file, by exporting the new environment variable
     `AM_UPDATE_INFO_DIR' to the value "no".
 
-  - For programs and libraries, automake now detects EXTRA_foo_DEPENDENCIES
-    and adds them to the normal list of dependencies, but without
-    overwriting the foo_DEPENDENCIES variable, which is normally computed
-    by automake.
-
-* Changes to Yacc support:
-
-  - C source and header files derived from non-distributed Yacc and/or
-    Lex sources are now removed by a simple "make clean" (while they were
-    previously removed only "make maintainer-clean").
-
-  - Slightly backward-incompatible change, relevant only for use of Yacc
-    with C++: the extensions of the header files produced by the Yacc
-    rules are now modelled after extension of the sources corresponding
-    sources.  For example, yacc files named "foo.y++" and "bar.yy" will
-    produce header files named respectively "foo.h++" and "bar.hh", where
-    they would have previously produced header files named simply "foo.h"
-    and "bar.h".  This change offers better compatibility with `bison -o'.
-
-Bugs fixed in 1.11.0a:
+Bugs fixed in 1.11.2:
 
 * Bugs introduced by 1.11.2:
 
@@ -124,14 +308,11 @@ Bugs fixed in 1.11.0a:
 
 * Bugs introduced by 1.11:
 
-  - The parallel-tests harness doesn't trip anymore on sed implementations
-    with stricter limits on the length of input lines (problem seen at
-    least on Solaris 8).
+  - The parallel-tests driver no longer produces erroneous results with
+    Tru64/OSF 5.1 sh upon unreadable log files.
 
-  - The `parallel-tests' test driver works around a GNU make 3.80 bug with
-    trailing white space in the test list (`TESTS = foo $(EMPTY)'), and
-    does not report spurious successes when used with concurrent FreeBSD
-    make (e.g., "make check -j3").
+  - The `parallel-tests' test driver does not report spurious successes
+    when used with concurrent FreeBSD make (e.g., "make check -j3").
 
   - When the parallel-tests driver is in use, automake now explicitly
     rejects invalid entries and conditional contents in TEST_EXTENSIONS,
@@ -145,23 +326,14 @@ Bugs fixed in 1.11.0a:
     not used, `make' output no longer contains spurious backslash-only
     lines, thus once again matching what Automake did before 1.11.
 
-  - The `silent-rules' option now generates working makefiles even for
-    the uncommon `make' implementations that do not support the
-    nested-variables extension to POSIX 2008.  For such `make'
-    implementations, whether a build is silent is determined at
-    configure time, and cannot be overridden at make time with
-    `make V=0' or `make V=1'.
-
-  - The AM_COND_IF macro also works if the shell expression for the conditional
-    is no longer valid for the condition.
+  - The AM_COND_IF macro also works if the shell expression for the
+    conditional is no longer valid for the condition.
 
 * Long-standing bugs:
 
-  - Vala support now works better in VPATH setups.
-
-  - The "deleted header file problem" for *.am files is avoided by stub
-    rules.  This allows `make' to trigger a rerun of `automake' also if
-    some previously needed `.am' file has been removed.
+  - The order of Yacc and Lex flags is fixed to be consistent with other
+    languages: $(AM_YFLAGS) comes before $(YFLAGS), and $(AM_LFLAGS) before
+    $(LFLAGS), so that the user variables override the developer variables.
 
   - "make distcheck" now correctly complains also when "make uninstall"
     leaves one and only one file installed in $(prefix).
@@ -173,17 +345,9 @@ Bugs fixed in 1.11.0a:
   - Automake now warns about more primary/directory invalid combinations,
     such as "doc_LIBRARIES" or "pkglib_PROGRAMS".
 
-  - On Darwin 9, `pythondir' and `pyexecdir' pointed below `/Library/Python'
-    even if the `--prefix' argument pointed outside of a system directory.
-    AM_PATH_PYTHON has been fixed to ignore the value returned from python's
-    `get_python_lib' function if it points outside the configured prefix,
-    unless the `--prefix' argument was either `/usr' or below `/System'.
-
-  - The testsuite does not try to change the mode of `ltmain.sh' files from
-    a Libtool installation (symlinked to test directories) any more.
-
-  - AM_PROG_GCJ uses AC_CHECK_TOOLS to look for `gcj' now, so that prefixed
-    tools are preferred in a cross-compile setup.
+  - Rules generated by Automake now try harder to not change any files when
+    `make -n' is invoked.  Fixes include compilation of Emacs Lisp, Vala, or
+    Yacc source files and the rule to update config.h.
 
   - Several scripts and the parallel-tests testsuite driver now exit with
     the right exit status upon receiving a signal.
@@ -191,35 +355,15 @@ Bugs fixed in 1.11.0a:
   - A per-Makefile.am setting of -Werror does not erroneously carry over
     to the handling of other Makefile.am files.
 
-  - The order of Yacc and Lex flags is now consistent with that of other
-    languages: $(AM_YFLAGS) comes before $(YFLAGS), and $(AM_LFLAGS) before
-    $(LFLAGS), so that the user variables override the developer variables.
-
-  - Rules generated by Automake now try harder not to change any files when
-    `make -n' is invoked.  Fixes include compilation of Emacs Lisp, Vala, or
-    Yacc source files and the rule to update config.h.
-
   - The code for automatic dependency tracking works around a Solaris
     make bug triggered by sources containing repeated slashes when the
     `subdir-objects' option was used.
 
-  - The parallel-tests driver no longer produces erroneous results with
-    Tru64/OSF 5.1 sh upon unreadable log files.
-
   - The makedepend and hp depmodes now work better with VPATH builds.
 
   - Java sources specified with check_JAVA are no longer compiled for
     "make all", but only for "make check".
 
-  - Automake now detects the presence of the `-d' flag in the various
-    `*YFLAGS' variables even when their definitions involve indirections
-    through other variables, such as in:
-      foo_opts = -d
-      AM_YFLAGS = $(foo_opts)
-
-  - Automake now complains if a `*YFLAGS' variable has any conditional
-    content, not only a conditional definition.
-
   - An usage like "java_JAVA = foo.java" will now cause Automake to warn
     and error out if `javadir' is undefined, instead of silently producing
     a broken Makefile.in.
@@ -232,6 +376,34 @@ Bugs fixed in 1.11.0a:
     change its behaviour; this has proven to be frail and easy to
     regress.
 \f
+Bugs fixed in 1.11.1:
+
+  - Lots of minor bugfixes.
+
+* Bugs introduced by 1.11:
+
+  - The `parallel-tests' test driver works around a GNU make 3.80 bug with
+    trailing white space in the test list (`TESTS = foo $(EMPTY)').
+
+* Long standing bugs:
+
+  - On Darwin 9, `pythondir' and `pyexecdir' pointed below `/Library/Python'
+    even if the `--prefix' argument pointed outside of a system directory.
+    AM_PATH_PYTHON has been fixed to ignore the value returned from python's
+    `get_python_lib' function if it points outside the configured prefix,
+    unless the `--prefix' argument was either `/usr' or below `/System'.
+
+  - The testsuite does not try to change the mode of `ltmain.sh' files from
+    a Libtool installation (symlinked to test directories) any more.
+
+  - AM_PROG_GCJ uses AC_CHECK_TOOLS to look for `gcj' now, so that prefixed
+    tools are preferred in a cross-compile setup.
+
+  - The distribution is tarred up with mode 755 now by the `dist*' targets.
+    This fixes a race condition where untrusted users could modify files
+    in the $(PACKAGE)-$(VERSION) distdir before packing if the toplevel
+    build directory was world-searchable.  This is CVE-2009-4029.
+\f
 New in 1.11:
 
 * Version requirements: