Merge branch 'yacc-work' into maint
[platform/upstream/automake.git] / NEWS
diff --git a/NEWS b/NEWS
index fd8f38c..f468570 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,27 @@
+New in 1.12.3:
+
 * WARNING: Future backward-incompatibilities!
 
+  - Future versions of Automake will likely drop support for the
+    long-deprecated 'configure.in' name for the Autoconf input file.
+    You are advised to use the recommended name 'configure.ac' instead.
+
+  - The long-obsolete (since automake 1.10) AM_PROG_MKDIR m4 macro will
+    be removed in Automake 1.13.  The $(mkdir_p) make variable and the
+    @mkdir_p@ substitution will still remain available (as aliases of
+    $(MKDIR_P)) for the moment, for better backward compatibility.
+
+  - Autoconf 2.65 or later will be required by the next major Automake
+    version (1.13).  Until now, Automake has required Autoconf version
+    2.62 or later.
+
+  - Starting from the next major Automake version (1.13), the rules
+    to build pdf, ps and dvi output from Texinfo input will use the
+    '--build-dir' option by default.  Since such an option was only
+    introduced in Texinfo 4.9, this means that Makefiles generated by
+    future Automake versions will require at least that version of
+    Texinfo.
+
   - Starting from the next major Automake version (1.13), the parallel
     testsuite harness (previously only enabled by the 'parallel-tests'
     option) will become the default one; the older serial testsuite
     the next major Automake version (1.13).
 
   - Support for the two- and three-arguments invocation forms of the
-    AM_INIT_AUTOMAKE macro will be deprecated in the next minor version
-    of Automake (1.12.1) and removed in the next major version (1.13).
-
-  - The long-obsolete (since 1.10) automake-provided $(mkdir_p) make
-    variable, @mkdir_p@ substitution and AM_PROG_MKDIR m4 macro will
-    all be deprecated in the next minor version of Automake (1.12.1)
-    and removed in the next major version (1.13).
+    AM_INIT_AUTOMAKE macro is deprecated, and will be removed in the
+    next major Automake version (1.13).
 
   - The '--acdir' option of aclocal is deprecated, and will probably
     be removed in the next major Automake release (1.13).  You should
     search path are looked up is probably going to be changed in the
     next Automake release (1.13).
 
-New in 1.11a:
+  - The 'missing' script will not try anymore to update the timestamp
+    of out-of-date files that require a maintainer-specific tool to be
+    remade, in case the user lacks such a tool (or has a too-old version
+    of it).  In fact, starting from Automake 1.13, all it'll do will be
+    giving more useful warnings than a bare "command not found" from a
+    make recipe would.
+
+* M4 files:
+
+  - The '.m4' files provided by Automake does not define serial numbers
+    anymore.  This should cause no difference in the behaviour of aclocal
+    though.
+
+* Automake Testsuite:
+
+  - Some testsuite weaknesses and spurious failures have been fixed.
+
+* Long-standing bugs:
+
+  - Instead of renaming only self-references of files (typically for
+    #lines), ylwrap now also renames references to the other generated
+    files.  This fixes support for GLR and C++ parsers from Bison (PR
+    automake/491 and automake bug#7648): 'parser.c' now properly
+    #includes 'parser.h' instead of 'y.tab.h'.
+
+  - Generated files unknown to ylwrap are now preserved.  This fixes
+    C++ support for Bison (automake bug#7648): location.hh and the
+    like are no longer discarded.
+
+New in 1.12.2:
+
+* Warnings and deprecations:
+
+  - Automake now issues a warning (in the 'portability' category) if
+    'configure.in' is used instead of 'configure.ac' as the Autoconf
+    input file.  Such a warning will also be present in the next
+    Autoconf version (2.70).
+
+* Cleaning rules:
+
+  - Recursive cleaning rules descends into the $(SUBDIRS) in the natural
+    order (as done by the other recursive rules), rather than in the
+    inverse order.  They used to do that in order to work a round a
+    limitation in an older implementation of the automatic dependency
+    tracking support, but that limitation had been lifted years ago
+    already, when the automatic dependency tracking based on side-effects
+    of compilation had been introduced.
+
+  - Cleaning rules for compiled objects (both "plain" and libtool) work
+    better when subdir objects are involved, not triggering a distinct
+    'rm' invocation for each such object.  They do so by removing *any*
+    compiled object file that is in the same directory of a subdir
+    object.  See automake bug#10697.
+
+* Silent rules support:
+
+  - A new predefined $(AM_V_P) make variable is provided; it expands
+    to a shell conditional that can be used in recipes to know whether
+    make is being run in silent or verbose mode.
+
+Bugs fixed in 1.12.2:
+
+* SECURITY VULNERABILITIES!
+
+  - The 'distcheck' recipe no longer grants temporary world-write
+    permissions on the extracted distdir.  Even if such rights were
+    only granted for a vanishingly small time window, the implied
+    race condition proved to be enough to allow a local attacker
+    to run arbitrary code with the privileges of the user running
+    "make distcheck".  This is CVE-2012-3386.
+
+* Long-standing bugs:
+
+  - The "recheck" targets behaves better in the face of build failures
+    related to previously failed tests.  For example, if a test is a
+    compiled program that must be rerun by "make recheck", and its
+    compilation fails, it will still be rerun by further "make recheck"
+    invocations.  See automake bug#11791.
+
+* Bugs introduced by 1.12.1:
+
+  - Automake provides once again the '$(mkdir_p)' make variable and the
+    '@mkdir_p@' substitution (both as simple aliases for '$(MKDIR_P)'),
+    for better backward-compatibility.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+New in 1.12.1:
+
+* New supported languages:
+
+  - Support for Objective C++ has been added; it should work similarly to
+    the support for Objective C.
+
+* Deprecated obsolescent features:
+
+  - Use of the long-deprecated two- and three-arguments invocation forms
+    of the AM_INIT_AUTOMAKE macro now elicits a warning in the 'obsolete'
+    category.  Starting from the next major Automake release (1.13), such
+    usages won't be allowed anymore.
+
+  - Support for the "Cygnus-style" trees (enabled by the 'cygnus' option) is
+    now deprecated (its use triggers a warning in the 'obsolete' category).
+    It will be removed in the next major Automake release (1.13).
+
+  - The long-obsolete (since 1.10) automake-provided $(mkdir_p) make
+    variable, @mkdir_p@ configure-time substitution and AM_PROG_MKDIR
+    m4 macro are deprecated, eliciting a warning in the 'obsolete'
+    category.
+
+* Miscellaneous changes:
+
+  - The Automake test cases now require a proper POSIX-conforming shell.
+    Older non-POSIX Bourne shells (like Solaris 10 /bin/sh) won't be
+    accepted anymore.  In most cases, the user shouldn't have to specify
+    such POSIX shell explicitly, since it will be looked up at configure
+    time.  Still, when this lookup fails, or when the user wants to
+    override its conclusion, the variable 'AM_TEST_RUNNER_SHELL' can be
+    used (pointing to the shell that will be used to run the Automake
+    test cases).
+
+Bugs fixed in 1.12.1:
+
+* Bugs introduced by 1.12:
+
+  - Several weaknesses in Automake's own build system and test suite
+    have been fixed.
+
+* Bugs introduced by 1.11.3:
+
+  - When given non-option arguments, aclocal rejects them, instead of
+    silently ignoring them.
+
+* Long-standing bugs:
+
+  - When the 'color-tests' option is in use, forcing of colored testsuite
+    output through "AM_COLOR_TESTS=always" works even if the terminal is
+    a non-ANSI one, i.e., if the TERM environment variable has a value of
+    "dumb".
+
+  - Several inefficiencies and poor performances in the implementation
+    of the parallel-tests 'check' and 'recheck' targets have been fixed.
+
+  - The post-processing of output "#line" directives done the ylwrap
+    script is more faithful w.r.t. files in a subdirectory; for example,
+    if the processed file is "src/grammar.y", ylwrap will correctly
+    produce directives like:
+        #line 7 "src/grammar.y"
+    rather than like
+        #line 7 "grammar.y"
+    as it did before.
+
+* Bugs with new Perl versions:
+
+  - Aclocal works correctly with perl 5.16.0 (automake bug#11543).
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+New in 1.12:
 
 * Obsolete features removed:
 
+  - The never documented nor truly used script 'acinstall' has been
+    removed.
+
   - Support for automatic de-ANSI-fication has been removed.
 
   - The support for the "obscure" multilib feature has been removed
@@ -79,6 +257,10 @@ New in 1.11a:
     testsuite harness.  This is still the default at the moment, but it
     might change in future versions.
 
+  - The 'recheck' target (provided by the parallel testsuite harness) now
+    depends on the 'all' target.  This allows for a better user-experience
+    in test-driven development.  See automake bug#11252.
+
   - 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
@@ -131,7 +313,7 @@ New in 1.11a:
             $(SHELL) $$1; \
           fi; \
         }
-      LOG_COMPILER = run_with_per_or_shell
+      LOG_COMPILER = run_with_perl_or_shell
 
   - The package authors can now use customary testsuite drivers within
     the framework provided by the 'parallel-tests' testsuite harness.
@@ -165,6 +347,12 @@ New in 1.11a:
 
 * Miscellaneous changes:
 
+  - The AM_PROG_VALAC macro now causes configure to exit with status 77,
+    rather than 1, if the vala compiler found is too old.
+
+  - The build system of Automake itself now avoids the use of make
+    recursion as much as possible.
+
   - Automake now prefers to quote 'like this' or "like this", rather
     than `like this', in diagnostic message and generated Makefiles,
     to accommodate the new GNU Coding Standards recommendations.
@@ -174,6 +362,11 @@ New in 1.11a:
 
   - The 'dist' and 'dist-all' targets now can run compressors in parallel.
 
+  - The rules to create pdf, dvi and ps output from Texinfo files now
+    works better with modern 'texi2dvi' script, by explicitly passing
+    it the '--clean' option to ensure stray auxiliary files are not
+    left to clutter the build directory.
+
   - Automake can now generate silenced rules for texinfo outputs.
 
   - Some auxiliary files that are automatically distributed by Automake
@@ -192,26 +385,11 @@ New in 1.11a:
     avoid time stamp issues with makefile rules rerunning autotools
     programs.
 
-  - 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 warnings in the category 'extra-portability' are now enabled by
     '-Wall'.  In previous versions, one has to use '-Wextra-portability'
     to enable them.
 
-  - The 'ar-lib' script now ignores the "s" (symbol index) and "S" (no
-    symbol index) modifiers as well as the "s" action, as the symbol index
-    is created unconditionally by Microsoft lib.  Also, the "q" (quick)
-    action is now a synonym for "r" (replace).  Also, the script has been
-    ignoring the "v" (verbose) modifier already since Automake 1.11.3.
-
-  - When the 'compile' script is used to wrap MSVC, it now accepts an
-    optional space between the -I, -L and -l options and their respective
-    arguments, for better POSIX compliance.
-
-Bugs fixed in 1.11a:
+Bugs fixed in 1.12:
 
   - Various minor bugfixes for recent or long-standing bugs.
 
@@ -228,13 +406,11 @@ Bugs fixed in 1.11a:
 
 * Long-standing bugs:
 
-  - It is now possible for a foo_SOURCES variable to hold Vala sources
-    together with C header files, as well as with sources and headers for
-    other supported languages (e.g., C++).  Previously, only mixing C and
-    Vala sources was supported.
-
   - Automake's own build system finally have a real "installcheck" target.
 
+  - Vala-related cleanup rules are now more complete, and work better in
+    a VPATH setup.
+
   - 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.
@@ -259,18 +435,33 @@ Bugs fixed in 1.11a:
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-New in 1.11.3:
+Bugs fixed in 1.11.5:
 
-* WARNING: Future backward-incompatibilities!
+* Bugs introduced by 1.11.3:
 
-  - The obsolescent AM_WITH_REGEX  macro has been deprecated, since the
-    GNU rx library has been decommissioned.
+  - Vala files with '.vapi' extension are now recognized and handled
+    correctly again.  See automake bug#11222.
+
+  - Vala support work again for projects that contain some program
+    built from '.vala' (and possibly '.c') sources and some other
+    program built from '.c' sources *only*.  See automake bug#11229.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  - The `lzma' compression format for distribution archives has been
-    deprecated in favor of `xz' and `lzip'.
+New in 1.11.4:
 
 * Miscellaneous changes:
 
+  - The 'ar-lib' script now ignores the "s" (symbol index) and "S" (no
+    symbol index) modifiers as well as the "s" action, as the symbol index
+    is created unconditionally by Microsoft lib.  Also, the "q" (quick)
+    action is now a synonym for "r" (replace).  Also, the script has been
+    ignoring the "v" (verbose) modifier already since Automake 1.11.3.
+
+  - When the 'compile' script is used to wrap MSVC, it now accepts an
+    optional space between the -I, -L and -l options and their respective
+    arguments, for better POSIX compliance.
+
   - There is an initial, experimental support for automatic dependency
     tracking with tcc (the Tiny C Compiler).  Its associated depmode is
     currently recognized as "icc" (but this and other details are likely
@@ -279,6 +470,46 @@ New in 1.11.3:
   - Automatic dependency tracking now works also with the IBM XL C/C++
     compilers, thanks to the new new depmode 'xlc'.
 
+Bugs fixed in 1.11.4:
+
+* Bugs introduced by 1.11.2:
+
+  - A definition of 'noinst_PYTHON' before 'python_PYTHON' (or similar)
+    don't cause spurious failures upon "make install" anymore.
+
+  - The user can now instruct the 'uninstall-info' rule not to update
+    the '${infodir}/dir' file by exporting the environment variable
+    'AM_UPDATE_INFO_DIR' to the value "no".  This is done for consistency
+    with how the 'install-info' rule operates since automake 1.11.2.
+
+* Long-standing bugs:
+
+  - It is now possible for a foo_SOURCES variable to hold Vala sources
+    together with C header files, as well as with sources and headers for
+    other supported languages (e.g., C++).  Previously, only mixing C and
+    Vala sources was supported.
+
+  - If "aclocal --install" is used, and the first directory specified with
+    '-I' is non-existent, aclocal will now create it before trying to copy
+    files in it.
+
+  - An empty declaration of a "foo_PRIMARY" don't cause anymore the
+    generated install rules to create an empty $(foodir) directory;
+    for example, if Makefile.am contains something like:
+
+      pkglibexec_SCRIPTS =
+      if FALSE
+      pkglibexec_SCRIPTS += bar.sh
+      endif
+
+    the $(pkglibexec) directory will not be created upon "make install".
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+New in 1.11.3:
+
+* Miscellaneous changes:
+
   - Automake's own build system is more silent by default, making use of
     the 'silent-rules' option.
 
@@ -306,8 +537,22 @@ New in 1.11.3:
   - The last relics of Python 1.5 support have been removed from the
     AM_PATH_PYTHON macro.
 
+  - 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.
+
 Bugs fixed in 1.11.3:
 
+* Bugs introduced by 1.11.2:
+
+  - Automake now correctly recognizes the prefix/primary combination
+   `pkglibexec_SCRIPTS' as valid.
+
+  - 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).
+
 * Long-standing bugs:
 
   - The "deleted header file problem" for *.am files is avoided by stub
@@ -340,7 +585,8 @@ New in 1.11.2:
 * Miscellaneous changes:
 
   - The Automake support for automatic de-ANSI-fication has been
-    deprecated.
+    deprecated.  It will probably be removed in the next major Automake
+    release (1.12).
 
   - The `lzma' compression scheme and associated automake option `dist-lzma'
     is obsoleted by `xz' and `dist-xz' due to upstream changes.
@@ -375,36 +621,11 @@ New in 1.11.2:
     file generated by automake-provided rules by defining the special make
     variable `$(EXTRA_DEJAGNU_SITE_CONFIG)'.
 
-  - The `install-info' and `uninstall-info' rules can now be instructed
-    not to create/update the `${infodir}/dir' file, by exporting the new
-    environment variable `AM_UPDATE_INFO_DIR' to the value "no".
+  - The `install-info' rule can now be instructed not to create/update
+    the `${infodir}/dir' file, by exporting the new environment variable
+    `AM_UPDATE_INFO_DIR' to the value "no".
 
 Bugs fixed in 1.11.2:
-  - 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.
-
-  - The 'ar-lib' script now ignores the "s" (symbol index) and "S" (no
-    symbol index) modifiers as well as the "s" action, as the symbol index
-    is created unconditionally by Microsoft lib.  Also, the "q" (quick)
-    action is now a synonym for "r" (replace).  Also, the script has been
-    ignoring the "v" (verbose) modifier already since Automake 1.11.3.
-
-  - When the 'compile' script is used to wrap MSVC, it now accepts an
-    optional space between the -I, -L and -l options and their respective
-    arguments, for better POSIX compliance.
-
-  - If "aclocal --install" is used, and the first directory specified with
-    '-I' is non-existent, aclocal will now create it before trying to copy
-    files in it.
-
-Bugs fixed in 1.11.0a:
-
-* Bugs introduced by 1.11.2:
-
-  - Automake now correctly recognizes the prefix/primary combination
-   `pkglibexec_SCRIPTS' as valid.
 
 * Bugs introduced by 1.11:
 
@@ -434,27 +655,6 @@ Bugs fixed in 1.11.0a:
   - 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.
-  - An empty declaration of a "foo_PRIMARY" don't cause anymore the
-    generated install rules to create an empty $(foodir) directory;
-    for example, if Makefile.am contains something like:
-
-      pkglibexec_SCRIPTS =
-      if FALSE
-      pkglibexec_SCRIPTS += bar.sh
-      endif
-
-    the $(pkglibexec) directory will not be created upon "make install".
-
-  - It is now possible for a foo_SOURCES variable to hold Vala sources
-    together with C header files, as well as with sources and headers for
-    other supported languages (e.g., C++).  Previously, only mixing C and
-    Vala sources was supported.
-
-  - 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.
 
   - "make distcheck" now correctly complains also when "make uninstall"
     leaves one and only one file installed in $(prefix).
@@ -1516,7 +1716,7 @@ New in 1.8:
     rule for this target.  Running `automake -Woverride' will diagnose
     all such overriding definitions.
 
-    It should be noted that almost all these targets support a *-local
+    It should be noted that almost all of these targets support a *-local
     variant that is meant to supplement the automake-defined rule
     (See node `Extending' in the manual).  The above rule should
     be rewritten as