2012-04-24  Eric Blake  <[email protected]>

       Release Version 2.69.
       * NEWS: Mention the release.

2012-04-24  Eric Blake  <[email protected]>

       maint: drop bz2 tarball
       At 2.68b, I asked whether anyone would miss .gz and .bz2 formats.
       Consensus was overwhelming that .gz still holds a place in people's
       hearts, in spite of .xz compressing to smaller files, but no one
       was able to make a convincing argument for .bz2.

       * configure.ac (AM_INIT_AUTOMAKE): Drop bzip2; xz wins hands down.

2012-04-24  Eric Blake  <[email protected]>

       maint: resync files from upstream
       The files in lib/Autom4te/ are intentionally not synced at this
       point, since this recent Automake patch:
       https://lists.gnu.org/archive/html/automake-patches/2012-03/msg00111.html

       was buggy regarding '-' as stdout, and also exposes some latent
       bugs in autoconf where we use raw 'open' instead of XFile::open.

       * build-aux/announce-gen: Resync via 'make fetch'.
       * build-aux/config.sub: Likewise.
       * build-aux/git-version-gen: Likewise.
       * build-aux/gnupload: Likewise.
       * build-aux/move-if-change: Likewise.
       * build-aux/texinfo.tex: Likewise.
       * doc/standards.texi: Likewise.
       * maint.mk: Likewise.

2012-04-24  Eric Blake  <[email protected]>

       doc: fix bad @xref uses
       Upstream gnulib maint.mk improvements caught a few issues we
       should fix, as well as a few issues in files we copy from
       other sources that we will just ignore here.

       * doc/autoconf.texi (Generic Programs, Special Shell Variables)
       (Limitations of Builtins): Use references correctly.
       * cfg.mk
       (exclude_file_name_regexp--sc_prohibit_undesirable_word_seq)
       (exclude_file_name_regexp--sc_useless_cpp_parens): Add exemptions.

2012-04-24  Bruno Haible  <[email protected]>

       AC_INIT: remove a transitional warning
       On bi-arch systems (such as x86 / x86_64) it is often necessary to pass
       the --host option together with an appropriate value for CC. But this
       triggers a warning:

       $ ./configure --host=i686-pc-linux-gnu CC="gcc -m32 -march=i586"
       configure: WARNING: if you wanted to set the --build type, don't use --host.
           If a cross compiler is detected then cross compile mode will be used
       ..

       This warning was introduced on 2000-06-30, in commit
       <http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=cb2e761b8e1181f97e8e09d85526bd22078433db>
       with the remark "Re-enable the old behavior of --host and --build."

       This warning was meant to warn users about a changed semantics of
       --build and --host. This change is now 12 years in the past; users
       have had enough time to learn it. I therefore suggest to remove the
       warning.

       I've done lots of cross and bi-arch compilations in the last 10 years,
       all with --host and without --build, and have never observed a problem
       with it, except for the warning. Simply relying on config.guess is sufficient.

       * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Don't warn if --host
       given without --build.

2012-04-24  Bruno Haible  <[email protected]>

       doc: fix incorrect and incomplete doc about cross-compilation mode
       * doc/autoconf.texi (Runtime): Mention the effect of the cross-
       compilation mode on AC_RUN_IFELSE.
       (Specifying Target Triplets): Fix description of --host's effects.
       (Hosts and Cross-Compilation): Remove incorrect statement about
       --host's effects.

2012-04-23  Paul Eggert  <[email protected]>

       doc: document --build and cross-compilation better
       * doc/autoconf.texi (Specifying Target Triplets): Mention that
       specifying a build-type that differs from host-type enables
       cross-compilation.  Problem reported by Bruno Haible in:
       http://lists.gnu.org/archive/html/autoconf-patches/2012-04/msg00009.html

2012-04-11  Jim Meyering  <[email protected]>

       maint: avoid "make syntax-check" failure
       * cfg.mk (old_NEWS_hash): Update to reflect typo fix in old news.

2012-03-28  Stefano Lattarini  <[email protected]>

       cosmetics fix imprecise comment in Autom4te::General
       * lib/Autom4te/General.pm: This file is *not* used by Automake;
       adjust comments accordingly.

2012-03-07  Paul Eggert  <[email protected]>

       tests: fix port of AT_CHECK_ENV to hosts with flaky grep
       * tests/local.at (AT_CHECK_ENV): Don't copy the buggy grep's
       diagnostics to stderr, as that causes AT_CHECK to fail.  They can
       be found in the stderr-* files if this is needed for debugging.

2012-03-07  Eric Blake  <[email protected]>

       docs: document set -n pitfalls
       * doc/autoconf.texi (Limitations of Builtins) <set>: Document
       issues with set -n.

2012-03-07  Eric Blake  <[email protected]>

       build: require perl 5.6
       This reduces the implicit requirement from 5.6.2 back to 5.6,
       while raising the explicit requirement to match the actual code.

       * configure.ac (PERL): Fail up front if perl is too old.
       * NEWS: Document this.
       * README: Likewise.
       * README-hacking: Likewise.
       * lib/Autom4te/ChannelDefs.pm: Bump requirement.
       * lib/Autom4te/General.pm: Relax requirement.

2012-03-07  Eric Blake  <[email protected]>

       tests: ignore ksh -n warnings
       Recent ksh is noisy:

       $ ksh -nc '``'; echo $?
       ksh: warning: line 1: `...` obsolete, use $(...)
       0

       * tests/local.at (AT_CHECK_SHELL_SYNTAX): Ignore noisy ksh on.
       Reported by Martin Zaun.

2012-03-06  Paul Eggert  <[email protected]>

       tests: port AT_CHECK_ENV to hosts with flaky grep
       * tests/local.at (AT_CHECK_ENV): Don't assume that if one grep
       fails, the other will too.  It could be that 'grep' is flaky,
       and fails somewhat at random.  This would explain the problems
       reported for autoconf-2.68b on FreeBSD and MacOS X, for example:
       <http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00032.html>
       <http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00035.html>
       <http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00036.html>
       <http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00044.html>

2012-03-06  Stefano Lattarini  <[email protected]>

       maint: resync files from upstream
       Since the perl version required in Automake::Getopt has been
       recently lowered from 5.6.2 to 5.6.0, this change has the nice
       effect of making autoconf compatible again with all perls in
       the 5.6.x release series.

       * maint.mk: Resync via 'make fetch'.
       * lib/Autom4te/Channels.pm: Likewise.
       * lib/Autom4te/Configure_ac.pm: Likewise.
       * lib/Autom4te/FileUtils.pm: Likewise.
       * lib/Autom4te/Getopt.pm: Likewise.
       * lib/Autom4te/XFile.pm: Likewise.

2012-03-05  Stefano Lattarini  <[email protected]>

       maint: drop syncing with Automake::Struct
       The module Automake::Struct has been removed in automake master
       branch (with yesterday's commit v1.11-2055-g74a7f49 "maint: drop
       'Automake::Struct' module"): since Automake now requires Perl 5.6,
       that module has become obsolete, being basically just a backport
       of Perl 5.6's 'Class::Struct' to Perl 5.5.  With this change, we
       follow suite in Autoconf, which syncs some of its internal modules
       with Automake.

       * lib/Autom4te/Struct.pm: Delete.
       * lib/Autom4te/Makefile.am (dist_perllib_DATA): Don't list it
       anymore.
       * cfg.mk: Don't sync it with the Automake repository anymore.
       * lib/Autom4te/Request.pm: Use 'Class::Struct' instead of
       'Autom4te::Struct'.

2012-03-04  Paul Eggert  <[email protected]>

       doc: mention PATH bug with "ksh foo"
       * doc/autoconf.texi (Invoking the Shell): Mention ksh PATH bug.

2012-03-04  Stefano Lattarini  <[email protected]>

       tests: fix spurious failure due to Solaris XPG4 sh bug
       On Solaris 10, the /usr/xpg4/bin/sh shell seems unable to execute
       a shell script named 'script':

         $ touch script
         $ /bin/sh script; echo status: $? # As expected.
         status: 0
         $ /usr/xpg4/bin/sh script; echo status: $? # Weirdness follows.
         /usr/xpg4/bin/sh: script: cannot execute
         status: 1

       This was causing a spurious testsuite failure for users which have
       /usr/xpg4/bin in $PATH before /bin and /usr/bin.  Fix that.

       * tests/m4sh.at (Configure re-execs self with CONFIG_SHELL): Rename
       the m4sh-produced script to 'script2', to avoid the just-described
       issue.

2012-03-04  Stefano Lattarini  <[email protected]>

       tests: fix spurious failure when CONFIG_SITE is set
       * tests/m4sh.at (Configure re-execs self with CONFIG_SHELL): Export
       $CONFIG_SITE to "/dev/null", to avoid spurious diffs in expected
       stdout/stderr.

2012-03-03  Paul Eggert  <[email protected]>

       fortran: clean up core files after AC_FC_CHECK_BOUNDS
       * lib/autoconf/fortran.m4 (AC_FC_CHECK_BOUNDS): Clean up core
       files, too.  Needed for Sun Fortran 95 8.2 2005/10/13 on Solaris 8.

       tests: port AS_TR_SH and AS_TR_CPP test to Solaris 8 wc
       * tests/m4sh.at (AS@&t@_TR_SH and AS@&t@_TR_CPP): Do not assume
       that "wc -l" outputs only digits; on Solaris 8 it also outputs
       blanks and POSIX allows this.

       tests: fix "#/bin/sh" typo
       * tests/m4sh.at (AS@&t@_EXECUTABLE): "#!/bin/sh", not "#/bin/sh".
       Typo reported by Tim Rice in:
       http://lists.gnu.org/archive/html/autoconf-patches/2012-03/msg00009.html

       tests: port AS_EXECUTABLE_P test to Solaris 8 /bin/sh
       * tests/m4sh.at (AS@&t@_EXECUTABLE): Treat any nonzero exit
       status as failure.  This is needed for Solaris 8 /bin/sh,
       where executing a nonexecutable file causes the shell
       to say the file had exit status 1.

2012-03-03  Stefano Lattarini  <[email protected]>

       configure: don't infloop when re-executing with $CONFIG_SHELL
       It turns out our guard against infinite recursion wasn't good
       enough when shells without $LINENO support were involved, since
       the creation-and-sourcing of configure.lineno broke the guard's
       expectations.  Reports by Tim Rice and Paul Eggert.

       * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Export '_as_can_reexec'
       to "no" before sourcing the just-created configure.lineno.

2012-03-01  Paul Eggert  <[email protected]>

       maint: spelling fixes

2012-03-01  Eric Blake  <[email protected]>

       maint: post-release administrivia
       * NEWS: Add header line for next release.
       * .prev-version: Record previous version.
       * cfg.mk (old_NEWS_hash): Auto-update.

2012-03-01  Eric Blake  <[email protected]>

       Release Version 2.68b.
       It's been more than a year since 2.68; time for a beta release
       to shake out any last minute bugs, before a release of 2.69
       in the near future.

       * NEWS: Mention the release.
       * HACKING: Update some instructions.

2012-03-01  Eric Blake  <[email protected]>

       maint: resync files from upstream
       * GNUmakefile: Resync via 'make fetch'.
       * build-aux/config.guess: Likewise.
       * build-aux/config.sub: Likewise.
       * build-aux/texinfo.tex: Likewise.
       * build-aux/update-copyright: Likewise.
       * doc/standards.texi: Likewise.
       * lib/Autom4te/Channels.pm: Likewise.
       * lib/Autom4te/Configure_ac.pm: Likewise.
       * lib/Autom4te/FileUtils.pm: Likewise.
       * lib/Autom4te/Getopt.pm: Likewise.
       * lib/Autom4te/Struct.pm: Likewise.
       * lib/Autom4te/XFile.pm: Likewise.
       * maint.mk: Likewise.

2012-02-25  Eric Blake  <[email protected]>

       tests: add test for AS_EXECUTABLE_P
       Now that this is public, we should regression test it.

       * tests/m4sh.at (AS@&t@_EXECUTABLE): New test.

2012-02-24  Eric Blake  <[email protected]>

       m4sh: make AS_EXECUTABLE_P public
       In the process of making it public, factor it into a reusable
       function.  This makes constructs like AC_CHECK_PROGRAM smaller,
       as well as making libtool's naughty use of $as_executable_p safer.

       * lib/m4sugar/m4sh.m4 (_AS_TEST_PREPARE): Add a shell function.
       (AS_EXECUTABLE_P): Forward to shell function.
       * doc/autoconf.texi (Common Shell Constructs): Document it.
       * NEWS: Mention this.

2012-02-24  Eric Blake  <[email protected]>

       m4sh: require that 'test -x' works
       4.3BSD is no longer a reasonable portability target; and we are
       pretty sure that these days we can find at least one shell on any
       platform that supports 'test -x'.  Drop a horribly unsafe use of
       eval as a result. :)

       Libtool still uses $as_executable_p without so much as calling
       either AS_TEST_X or AS_EXECUTABLE_P; even though the latter has
       existed, although undocumented, since at least 2.59; furthermore,
       libtool uses it in a context where filtering out directories
       would have been desirable.  Shame on them.

       * lib/m4sugar/m4sh.m4 (_AS_TEST_X_WORKS): New probe.
       (AS_SHELL_SANITIZE, AS_INIT): Use it in shell searching.
       (AS_TEST_X, AS_EXECUTABLE_P): Simplify.

2012-02-24  Eric Blake  <[email protected]>

       doc: mention more pitfalls of file mode tests
       4.3BSD is museum-ware now, so we can assume that test -x exists;
       however, we still can't assume that it always does what we want.

       * doc/autoconf.texi (Limitations of Builtins) <test (files)>:
       Treat 'test -x' as mostly portable, but mention problems with
       root user, ACLs, and TOCTTOU races.

2012-02-16  Eric Blake  <[email protected]>

       docs: tweak 'rm -f' limitations
       Based on http://debbugs.gnu.org/10819 and
       http://austingroupbugs.net/view.php?id=542

       * doc/autoconf.texi (Limitations of Usual Tools) <rm>: More
       details on 'rm -f' without files.

2012-02-10  Paul Eggert  <[email protected]>

       maint: replace FSF snail-mail addresses with URLs
       * tests/erlang.at, tests/go.at, tests/statesave.m4:
       Replace FSF snail mail addresses with URLs, as per GNU coding
       standards, and for consistency with other tests.

2012-01-28  Jim Meyering  <[email protected]>

       maint: avoid "make syntax-check" failure
       * Makefile.am ($(srcdir)/INSTALL): Remove spurious space-before-TAB.

2012-01-23  Eric Blake  <[email protected]>

       tests: fix test regression due to additional output
       This test has been failing since commit 5285ea8c (sadly, since
       last July; thankfully, unreleased).

       * tests/m4sugar.at (m4@&t@_require: nested): Fix test.

2012-01-23  Eric Blake  <[email protected]>

       INSTALL: convert to '' quoting, drop blank line at end
       This is allowed by recent GNU Coding Standards changes, and
       mirrors recent gnulib changes:
       https://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00267.html
       https://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00298.html

       I've confirmed that after these changes, the INSTALL generated and
       installed by autoconf matches the INSTALL.ISO in gnulib.

       * Makefile.am ($(srcdir)/INSTALL): Match gnulib INSTALL.ISO.

2012-01-23  Jim Meyering  <[email protected]>

       maint: convert .x-sc_* into exclude_file_name_regexp--sc_* exemptions
       Many of the .x-sc_* exemptions were no long necessary.  Remove those
       files and instead, provide exemptions via variable definitions in
       cfg.mk to address the few remaining exceptions.
       * .x-sc_prohibit_atoi_atof: Remove file.
       * .x-sc_space_tab: Likewise.
       * .x-sc_sun_os_names: Likewise.
       * .x-sc_trailing_blank: Likewise.
       * .x-sc_two_space_separator_in_usage: Likewise.
       * .x-sc_useless_cpp_parens: Likewise.
       * cfg.mk: Add minimal exemptions.
       * cfg.mk: Add minimal exemptions.
       * doc/standards.texi (Standard C): Address the sole useless-cpp-parens
       violation in this file:
       -#if defined (__STDC__) || defined (WINDOWSNT)
       +#if defined __STDC__ || defined WINDOWSNT
       With that, the only remaining offender is config.guess, whose name
       is now listed in cfg.mk.
       Suggested by Eric Blake.

2012-01-23  Paul Eggert  <[email protected]>

       doc: work around mingw-w64 alloca problem with example
       * doc/autoconf.texi (Particular Functions): In example code for
       alloca, do not re-#define alloca.  This works around a mingw-w64
       problem reported by Vincent Torri in
       <http://lists.gnu.org/archive/html/autoconf/2012-01/msg00018.html>.

2012-01-21  Jim Meyering  <[email protected]>

       maint: fix or disable failing syntax-check rules
       * cfg.mk (local-checks-to-skip): List failing tests, so we skip
       them, for now.
       (old_NEWS_hash): Update.
       * doc/autoconf.texi: Per suggestion from Eric Blake, obfuscate
       the first word of "Filesystem Hierarchy Standard" as File@/system
       so it continues to render as one word, yet doesn't trigger the
       syntax-check prohibition.

       maint: also sync maint.mk and useless-if-before-free from gnulib
       * cfg.mk (gnulib-update): Add them to the list.
       * maint.mk: Update from gnulib.
       * build-aux/gitlog-to-changelog: Likewise.
       * build-aux/useless-if-before-free: New file, from gnulib.
       * doc/gnu-oids.texi: Update.

       maint.mk: update from gnulib
       * maint.mk: Update.

       maint: placate syntax-check rules: exempt some false positives
       * cfg.mk: Exempt maint.mk from the "undesirable word seq" check.
       Exempt maint.mk and autoconf.texi from the test_minus_ao check.

       maint: tweak to avoid triggering space-tab-prohibiting syntax-check
       * tests/m4sh.at (nargs): Use TAB-SP, not SP-TAB in abusive file name,
       to avoid triggering the space-tab-prohibiting syntax-check.

       maint: remove empty lines at EOF
       * man/autoconf.x: Remove empty line at EOF.
       * man/autoheader.x: Likewise.
       * man/autoscan.x: Likewise.
       * man/autoupdate.x: Likewise.
       * man/ifnames.x: Likewise.
       * tests/compile.at: Likewise.
       * doc/fdl.texi: Likewise.

       doc: fix grammar/doubled-word errors
       * doc/autoconf.texi: Remove/fix doubled-word errors.
       Also, s/can not/cannot/.
       * lib/m4sugar/m4sh.m4: Reword "if IF" comment to avoid triggering
       the doubled-word warning.

2012-01-21  Stefano Lattarini  <[email protected]>

       maint: sync files from gnulib
       * GNUmakefile: Sync from gnulib.
       * build-aux/announce-gen: Likewise.
       * build-aux/config.guess: Likewise.
       * build-aux/config.sub: Likewise.
       * build-aux/git-version-gen: Likewise.
       * build-aux/gnupload: Likewise.
       * build-aux/move-if-change: Likewise.
       * build-aux/texinfo.tex: Likewise.
       * build-aux/update-copyright: Likewise.
       * build-aux/vc-list-files: Likewise.
       * doc/gendocs_template: Likewise.
       * doc/standards.texi: Likewise.
       * m4/autobuild.m4: Likewise.

2012-01-21  Stefano Lattarini  <[email protected]>

       maint: make position of gnulib checkout configurable
       Some gnulib-related tools (most prominently, the gnulib-provided
       'bootstrap' script) allow the user to define the position of his
       gnulib's repository checkout through the use of the 'GNULIB_SRCDIR'
       environment variable.  We should do the same, for consistency and
       to easily support slightly unusual layouts in developers' source
       trees.

       * cfg.mk (gnulib_dir): Define to "$GNULIB_SRCDIR" if that's set,
       and to default value of "'$(abs_srcdir)'/../gnulib" otherwise.
       Update comments.

2012-01-20  Stefano Lattarini  <[email protected]>

       getopt: sync from Automake repository
       * lib/Autom4te/Getopt.am: The master copy of this file has
       been moved to the  Automake repository (see Automake commit
       'v1.11-662-g52246cc' 2012-01-18, "cmdline parsing: move into
       a dedicated perl module").  So we now we sync it from there,
       by listing it ...
       * cfg.mk (autom4te_files): ... in this variable.

2012-01-20  Stefano Lattarini  <[email protected]>

       build: fix automake error due to missing ChangeLog
       Apparently, Automake does not accept the '$(srcdir)/ChangeLog'
       target in Makefile.am as a declaration that ChangeLog is
       automatically generated (and thus does not need to exist at
       automake time).  One has to use a *literal* 'ChangeLog' target.

       Problem introduced in commit v2.68-118-g6ed5195 of 2012-01-17,
       "maint: generate ChangeLog from git log".

       * Makefile.ma ($(srcdir)/ChangeLog): Renamed ...
       (ChangeLog): ... to this.

2012-01-17  Stefano Lattarini  <[email protected]>

       getopt: new Autom4te::Getopt module
       * lib/Autom4te/General.pm (getopt): Move the guts of its
       implementation ...
       * lib/Autom4te/Getopt.pm (parse_options): .. into this function
       in the new Autom4te::Getopt module.  This will make it simpler
       for the implementation to be shared with other projects (right
       now, Automake).
       * lib/Automake/Makefile.am (dist_perllib_DATA): Add the new
       module.

2012-01-17  Jim Meyering  <[email protected]>

       tests: avoid spurious failure for each gnu-fortran-using test
       The tests compare pre- and post-run lists of envvars, which must
       be the same, modulo a list of known, filtered-out exceptions.
       However, when running fortran-checking tests with GNU fortran, each
       would fail due to the post-run addition of the GFC symbol added in
       v2.68-97-gbd962ac.
       * tests/local.at (AT_CHECK_ENV): Add GFC to the list of symbols
       that we ignore in pre-/post-run environment diffs.

2012-01-17  Stefano Lattarini  <[email protected]>

       maint: generate ChangeLog from git log
       Following the practice set by various other GNU projects, we start
       to automatically generate the ChangeLog file from the git commit
       messages.  This will avoid duplication (as the ChangeLog entries
       were always inserted both in the git commit message and in the
       version-controlled ChangeLog file), and potential problems with
       spurious merge conflicts (which, although greatly mitigated by
       Bruno Haible's `git-merge-changelog' helper program, have never
       been completely solved).

       * ChangeLog: Moved ...
       * ChangeLog.3: ... to this.
       * build-aux/gitlog-to-changelog: New script, synced from gnulib.
       * cfg.mk (gnulib-update): Also sync gitlog-to-changelog.
       * Makefile.am (gen-ChangeLog): New .PHONY rule, generate the
       ChangeLog for distribution.
       (dist-hook): Depend on it.
       ($(srcdir)/ChangeLog): New dummy rule, to pacify automake "gnu"
       strictness.  Creates a dummy ChangeLog, that will be overridden
       by the proper one at distribution time.
       (gen_start_date): New variable, the date starting from which the
       git log entries are to be copied in the generated ChangeLog.
       (EXTRA_DIST): Add ChangeLog.3 and gitlog-to-changelog.
       * configure.ac (AC_CONFIG_SRCDIR): Use 'lib/autoconf/autoconf.m4'
       instead of 'ChangeLog' as the sentinel file.
       * .gitignore: Add ChangeLog.

2012-01-15  Stefano Lattarini  <[email protected]>

       cosmetics: fix some typos in ChangeLog