From: Stefano Lattarini Date: Tue, 27 Dec 2011 21:01:12 +0000 (+0100) Subject: Merge branch 'maint' into yacc-work X-Git-Tag: ylwrap-refactor-abandoned-branch~2^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f0645e2ddf6327fafdd072d1c30d15f48510e605;p=thirdparty%2Fautomake.git Merge branch 'maint' into yacc-work * maint: (34 commits) tests: drop unnecessary requirement in 'subpkg.test' gitlog-to-changelog: new auxiliary script, synced from gnulib docs: "aclocal --install -I /abs/dir" actually copies files docs: fix node names for automake and aclocal invocations gitignore: use only one .gitignore file, in the top-level directory tests: one more fixlet for gettext macros requirement tests: fix handling of gettext macros requirement tests: fix failure due to debugging code forgotten into a test tests: avoid spurious failure of libtool and gettext tests hacking: distribute it, and mention it in the ChangeLog regex: deprecate the obsolete macro AM_WITH_REGEX maint: distribute .xz tarballs, not .bz2 ones maint: better use of autoconf 2.68 features cosmetics: use proper m4 quoting in configure.ac include: avoid "deleted .am file" problem tests: better handling of gettext and libtool requirements fix: typos and grammaros in comments of the new test tests: report useful system information in 'test-suite.log' python: remove relics for Python 1.5 support configure: remove extraneous 'eval's from AM_RUN_LOG invocations ... --- f0645e2ddf6327fafdd072d1c30d15f48510e605 diff --cc ChangeLog index c0d1f3009,ab99cd31c..ebc125304 --- a/ChangeLog +++ b/ChangeLog @@@ -1,42 -1,518 +1,557 @@@ + 2011-12-27 Stefano Lattarini + + tests: drop unnecessary in 'subpkg.test' + * tests/subpkg.test ($required): Drop "bison", it is not required + anymore since commit `v1.11-502-g7e5ae80'. + + 2011-12-27 Stefano Lattarini + + gitlog-to-changelog: new auxiliary script, synced from gnulib + + We have plans to stop maintaining a version-controlled ChangeLog + file in the Automake repository, and instead begin to generate it + automatically from the git log messages. To do so, we will use + the `gitlog-to-changelog' script from gnulib. + + * lib/gitlog-to-changelog: New, synced from gnulib. + * Makefile.am (fetch): Fetch and sync it. + * lib/Makefile.am (EXTRA_DIST): Distribute it. + + 2011-12-27 Stefano Lattarini + + docs: "aclocal --install -I /abs/dir" actually copies files + + This change is for automake bug#8407. + + In the past, there had been some debate and confusion about + whether "aclocal --install" should copy third-party .m4 files + in the first directory passed to the `-I' option even when + such directory was given as an absolute path, or whether it + was better to do so only for directories specified with a + relative path. + + The rationale for this latter behaviour was that, before the + existence of the `ACLOCAL_PATH' variable, the only way (a poor + way, I might add) for a common user to extend the search path + of a system-wide installation of aclocal was to export something + like ACLOCAL="aclocal -I /my/extra/macros" in the environment. + Today, the correct way to proceed is undoubtedly through the + use of ACLOCAL_PATH, so we can settle the question once and for + all, and start verifying the correct behaviour of `-I' with a + new test. + + * tests/aclocal-install-absdir.test: New test. + * tests/Makefile.am (TESTS): Add it. + * doc/automake.texi (aclocal Options): Be more explicit about + this part of `--install' semantics. + + 2011-12-26 Stefano Lattarini + + docs: fix node names for automake and aclocal invocations + + With the older node names, an "info automake" command issued + from the command line would have opened the node about the + invocation of the automake program, rather than the Top node + of the automake documentation. To invoke the Top node, one + had to issue the command "info Automake" instead (note the + different capitalization). This was suboptimal, and certainly + confusing. + + With this change, "info automake" will open the Top node of the + automake documentation; to access the nodes about the invocation + of the automake and aclocal program, one has now to issue "info + automake-invocation" and "info aclocal-invocation" respectively. + + This change fixes automake bug#8071. + + See also commits `v2.61a-22-ge9215d1' and `v2.61a-72-g8c07b48' in + the autoconf git repository, which tackled a similar issue. + + * doc/automake.texi (@direntry): Rename nodes `aclocal' and + `automake' to `aclocal-invocation' and `automake-invocation' + respectively. + * NEWS: Update. + + 2011-12-24 Stefano Lattarini + + gitignore: use only one .gitignore file, in the top-level directory + * doc/.gitignore, doc/amhello/.gitignore, lib/Automake/.gitignore, + lib/Automake/tests/.gitignore, tests/.gitignore: Deleted, their + contents merged into ... + * .gitignore: ... this top-level file. Since we are at it, improve + it by anchoring files where it makes sense. + + 2011-12-24 Stefano Lattarini + + tests: one more fixlet for gettext macros requirement + * tests/gettext-macros.test (configure.in): Add calls to + AC_INIT and AC_PROG_CC, to avoid a spurious failure in the + later aclocal invocation. + Luckily, this wart wasn't causing any spurious SKIP or FAIL, + but only the redundant addition to the `-Wno-syntax' option + to some aclocal invocations in the gettext tests. + + 2011-12-24 Stefano Lattarini + + tests: fix handling of gettext macros requirement + + The code introduced in the earlier change `v1.11-581-gb7d67d5' + and aimed at automatically fetching all the .m4 files provided by + gettext has proven inadequate, since it hasn't managed to truly + and always get *all* the required .m4 files. For example, it has + failed to fetch the file `intldir.m4' (present in gettext 0.18.1, + and where the macro `AM_GNU_GETTEXT_INTL_SUBDIR' is defined), + which in turn has caused spurious SKIPs of at least the test + `gettext3.test'. + + The reason for this debacle is that autopoint looks at the version + specified in AM_GNU_GETTEXT_VERSION to decide which version of the + gettext infrastructure to bring in; since we were unconditionally + specifying the older 0.10.35 version, the newer `.m4' files weren't + brought in. + + * tests/gettext-macros.test: In AM_GNU_GETTEXT_VERSION, instead + of unconditionally specifying the older 0.10.35 version, specify + the version of the available `gettextize' or `autopoint' program, + dynamically extracted with the help of ... + (extract_program_version):... this new function, and saved ... + ($autopoint_version): ... in this new variable. + + 2011-12-22 Stefano Lattarini + + tests: fix failure due to debugging code forgotten into a test + * tests/missing-tar.test: Don't ever call the `missing' script + with `sh -x'; this was used for debugging, but an instance of + it slipped into the committed test case. Bug revealed by a + failure on a Solaris 10 system with GNU tar installed as `gtar'. + + 2011-12-23 Stefano Lattarini + + tests: avoid spurious failure of libtool and gettext tests + + On Solaris 10 (and presumably earlier), /bin/sh trips up on + here-documents that contains a command substitution *and* are + fed to a shell function: + + # All as expected. + $ cat < + + 2011-12-22 Stefano Lattarini + + hacking: distribute it, and mention it in the ChangeLog + Not distributing the HACKING file might make it more difficult, + for some random curious user, to get informed about or interested + in the Automake development process, or to send us patches. + * Makefile.am (EXTRA_DIST): Add HACKING. + * HACKING: It's OK to distribute this file, and to mention it in + the ChangeLog. + + 2011-12-22 Stefano Lattarini + + regex: deprecate the obsolete macro AM_WITH_REGEX + This is a backport of commit v1.11-433-g37b0aee. + Today, practically nobody uses the GNU rx library, which, according + to its own website , has + been "decommissioned". Consequently, the automake-provided macro + AM_WITH_REGEX is not used nor required anymore. Deprecate it, so + that it will be possible to safely remove it in the next major + automake version. + * m4/regex.m4 (AM_WITH_REGEX): Give a warning of the class + `obsolete' when this macro is used. + * doc/automake.texi (Public Macros): Move description of + `AM_WITH_REGEX' from here ... + (Obsolete Macros): ... to here, and declare it as obsolete + and "to be removed in a future version". + * tests/regex-obsolete.test: New test. + * tests/Makefile.am (TESTS): Add it. + * NEWS: Update. + See also: + + + 2011-12-22 Stefano Lattarini + + maint: distribute .xz tarballs, not .bz2 ones + Many GNU packages are moving towards xz-compressed tarballs, so + let's follow suit, by dropping the creation and distribution of + a bzip2-compressed tarball and switching to xz instead. + For compatibility and safeness, we will continue to create and + distribute a gzip-compressed tarball as well. + * configure.ac (AM_INIT_AUTOMAKE): Drop `dist-bzip2', add + `dist-xz'. + * NEWS: Update + Suggested by Jim Meyering. + + 2011-12-22 Stefano Lattarini + + include: avoid "deleted .am file" problem + * automake.in (handle_configure): When processing `configure.am', + also expand `HAVE-MAKEFILE-IN-DEPS' to a boolean telling whether + `MAKEFILE-IN-DEPS' is empty or not. + * lib/am/configure.am [?HAVE-MAKEFILE-IN-DEPS?] + (%MAKEFILE-IN-DEPS%): New target without dependencies, to + avoid the "deleted .am file" problem. Emit this only when + `?HAVE-MAKEFILE-IN-DEPS?' is true, to avoid generating an + "empty" dependency declaration. + * tests/deleted-am.test: Make grepping of error message stricter. + * tests/dist-missing-am.test: Likewise. + * tests/remake-deleted-am.test: New test. + * tests/remake-deleted-am-2.test: Likewise. + * tests/remake-deleted-am-subdir.test: Likewise. + * tests/remake-renamed-am.test: Likewise. + * tests/makefile-deps.test: Likewise. + * tests/Makefile.am (TESTS): Add the new tests. + * NEWS: Update. + Fixes automake bug#9768. + Report by Peter Johansson. + See also commit `Release-1-10-40-gd0ebf71', which fixed a similar + problem for .m4 files included by configure.ac. + + 2011-12-22 Stefano Lattarini + + maint: better use of autoconf 2.68 features + * configure.ac: Now that Automake requires autoconf 2.68 for its + own bootstrapping and build system, we can assume that PACKAGE_URL + gets automatically AC_SUBT'd. + + 2011-12-22 Stefano Lattarini + + cosmetics: use proper m4 quoting in configure.ac + * configure.ac (AC_CONFIG_SRCDIR): Use proper m4 quoting + for its arguments. + (AC_CONFIG_AUX_DIR): Likewise. + (AC_PROG_PATH): Likewise. + + 2011-12-14 Stefano Lattarini + + tests: better handling of gettext and libtool requirements + + This change fixes automake bug#9807. + + Before this change, the automake testsuite only looked for the + `.m4' files containing libtool and gettext macros definitions in + the directory `${prefix}/share/aclocal' (and in the directories + specified by the `dirlist' file in there, if any), where ${prefix} + was the configure-time automake installation prefix (defaulting + to `/usr/local'). + + This approach had various shortcomings and disadvantages. Let's + briefly describe the three major ones. + + First, on most GNU/Linux systems, a libtool or gettext installed + from distro-provided packages (e.g., by dpkg on Debian/Ubuntu, or + by rmp on RedHat/Fedora) would have `/usr', not `/usr/local', as + its ${prefix}; so, trying to run the automake testsuite with a + simple "./configure && make && make check" would have failed to + execute the libtool and gettext tests on most GNU/Linux distros. + It's true that it was quite easy to work around this issue, by + creating a proper `/usr/local/share/aclocal/dirlist' file with + an entry pointing to `/usr/share/aclocal' (a workaround in fact + used by most automake developers); but the typical user wasn't + aware of the necessity of this trick, so the libtool and gettext + tests was usually skipped on testsuite runs "in the wild", thus + needlessly reducing coverage. + + Second, the older testsuite behaviour made more difficult for + the developers to run the testsuite with non-default libtool or + gettext. For example, assume the developer is working on a system + that has a default libtool version 1.5 installed in the /usr/local + hierarchy; to improve coverage, the developer installs also a more + modern libtool version, say 2.4, in its home directory, let's say + in ~/libtool-2.4; he then tries to run the automake testsuite with + this more modern libtool by doing an (apparently) simple: + $ PATH=$HOME/libtool-2.4:$PATH make check + But the automake testsuite would still look for libtool macros in + /usr/local/share/aclocal, not in ~/libtool-2.4/share/aclocal, so + the wrong version of the macros would be picked up, and the tests + would either fail spuriously or (which would be worse) pass without + truly covering the libtool version the developers was thinking to + be testing with. + Worse again, the automake testsuite would *unconditionally* look + for libtool macros in /usr/local/share/aclocal, so even something + like: + $ export ACLOCAL_PATH=$HOME/libtool-2.4/share/aclocal + $ PATH=$HOME/libtool-2.4:$PATH make check + wouldn't work. + + Third and last, during a "make distcheck", automake is configured + with a ${prefix} pointing to a proper subdirectory of the build + directory (usually `pwd`/_inst), which gets created on-the-fly; + in this case, with the old approach, the automake testsuite never + found the libtool and gettext macro files, ans so the libtool and + gettext tests was *always* skipped in a "make distcheck". + + * tests/libtool-macros.test: New helper test, looking (with the + help of the `libtoolize' script) for libtool macro files required + by most libtool tests, and making them easily accessible. + * tests/gettext-macros.test: New helper test, looking (with the + help of the `libtoolize' script) for libtool macro files required + by most libtool tests, and making them easily accessible. + * tests/defs.in: Update to make it rely on the results and setups + of `libtool-macros.test' and `gettext-macros.test'. + * tests/Makefile.am: Declare dependency of all the logs of libtool + tests from `libtool-macros.log', and all the logs of gettext tests + from `gettext-macros.log'. + (TESTS): Add the new tests. + + 2011-12-22 Stefano Lattarini + + fix: typos and grammaros in comments of the new test + * tests/get-sysconf.test: Fix few typos, grammaros and botched + wording. Reported by Eric Blake. + + 2011-12-22 Stefano Lattarini + + tests: report useful system information in 'test-suite.log' + It has already happened various times that a user has run the + automake testsuite, experienced a failure, read the messages + telling him "See tests/test-suite.log" and "Please report to + bug-automake@gnu.org", and done exactly that -- sending us only + the contents of `tests/test-suite.log', which are usually not + enough to start debugging the reported failure. So we have to + ask him for more details, and usually also for the `config.log' + file generated by configure. It's time to fix this recurring + feedback inefficiency. We do so by creating a dummy test case + that takes care of copying the contents of `config.log', plus + other useful system information, in the final `test-suite.log'. + * tests/get-sysconf.test: New test, gathering system information + and then always terminating with a SKIP, so that its output gets + copied in `test-suite.log'. + * tests/Makefile.am (TESTS): Add it. + + 2011-12-07 Reuben Thomas (tiny change) + + python: remove relics for Python 1.5 support + * m4/python.m4: The comments in here claim to support only + Python >= 2.0, yet this file still has specific support for + Python 1.5. Just remove it, python 1.5 is 12 years old now, + and practically defunct. + * NEWS: Update. + See also commit `Release-1-10-205-gd5bec12', "Support for + Python 3.0, drop support for pre-2.0." + + 2011-12-21 Stefano Lattarini + + configure: remove extraneous 'eval's from AM_RUN_LOG invocations + * configure.ac: Remove extra 'eval's from AM_RUN_LOG invocations; + for example, instead of "AM_RUN_LOG([eval $PERL --version])", + simply use "AM_RUN_LOG([$PERL --version])" + + 2011-12-21 Stefano Lattarini + + configure: report TeX version in config.log + * configure.ac: If possible, report the version of the selected + TeX program; this should render the logs more informative. + + 2011-12-22 Stefano Lattarini + + maint: snapshots from `maint' are still development snapshots + The maintenance-oriented development line in the `maint' branch, + while being usually pretty stable and 99% backward-compatible, + is not always right off production-quality; but until now, the + Automake package version declared in configure.ac hid this fact, + since it appeared to be the version of a stable release (e.g., + 11.1). Fix this. + * configure.ac (AC_INIT): Bump version to "1.11.0a". + + 2011-12-22 Stefano Lattarini + + configure: print proper message for test releases + * configure.ac: If the current release is detected to be a test + release or a development snapshot, print a proper warning for + the user. + * README-alpha: Delete, it's obsolete now (and in fact this file + hasn't been touched in eleven years, since release 1.4b or so). + * HACKING (Release procedure): Don't say to update README-alpha. + + 2011-12-22 Stefano Lattarini + + devel: help in comparing Makefile.in from different commits + Now that the generated Makefile.in, configure and aclocal.m4 files + are no longer committed in Automake's git repository, a simple + "git diff" or "git log" no longer shows if and how a change in + Automake results in changes to the Makefile.in files and/or + configure script of its own build system. Still, the ability to + peek so easily at such differences has proved itself quite useful + in the past, often revealing inconsistencies and blunders, and + sometimes even bugs; so it would be a pity to lose that altogether. + With this change, we add a new maintainer recipe that re-introduces + much of that capability, by generating and comparing on the fly the + Makefile.in, configure and aclocal.m4 derived from two arbitrary + commits of the Automake repository. + * Makefile.am (autodiffs, compare-autodiffs): New phony targets. + + 2011-12-22 Stefano Lattarini + + repo: don't commit generated files in the git repository anymore + It has been quite some time since autoconf and libtool have stopped + committing the generated autotools files in their git repositories, + with no significant ill effects we're aware of. It's true that the + autoconf bootstrap process has now the minor annoyance that a + pre-installed autoconf is required to complete it; but luckily + automake will not have a similar annoyance, since our bootstrap + script take care, through some hoops, to use the very automake and + aclocal versions from the current git checkout to generate the + required aclocal.m4 and Makefile.in files. In fact, this has been + a necessity also in the past, because automake has been known to + use in its own build system new development features that hadn't + been present in any previously released automake distribution. + * .gitignore: Ignore configure, aclocal.m4, and all the + Makefile.in files. + * configure.ac (AC_PREREQ): New macro call, to require the + latest autoconf (2.68 for the moment). + + 2011-12-22 Stefano Lattarini + + missing: don't try to re-run tar with a munged command line + * lib/missing: If the default `tar' program fails with the given + arguments, and GNU tar is not available, don't try to re-run the + default `tar' with a munged command line (e.g., ditching possibly + unportable options), as that could be subtly alter the intended + semantics (and maybe even create a somewhat corrupted tarball). + Also, it's worth noting that the main purpose of the `missing' + script is to allow a non-developer to build the package in the + face of slightly-skewed timestamps, not to provide wrappers for + all the maintainer tools -- so we don't have to try too hard + when `missing' is just called to wrap `tar'. + * tests/missing-tar.test: New test. + * tests/Makefile.am (TESTS): Add it. + + 2011-12-22 Stefano Lattarini + + missing: inform the user if GNU tar is called + * lib/missing: If the code trying to run GNU tar is reached, it + means that the previous attempt to run the default tar program + has failed, very likely producing some error message. At this + point, just running GNU tar without further comments might be + confusing. + + 2011-12-22 Stefano Lattarini + + missing: if GNU tar exists but fails when called, give up + * lib/missing: If the code trying to run GNU tar is reached, + don't continue if the invoked GNU tar program fails, as there + is little point in doing so (and can even be confusing and + counter-productive). + + 2011-12-22 Stefano Lattarini + + missing: miscellaneous fixlets + * lib/missing: Some shells, such as Solaris or FreeBSD /bin/sh, + warn about missing programs before performing redirections. + Therefore, where we have to silently check whether a program + exists, perform redirections on a subshell. + Remove redundant uses of double-quotes in variable definitions. + Delete an extra blank line. + + 2011-12-22 Stefano Lattarini + + maint: remove executable bit from automake.in + * automake.in: This file is not meant to be executed, only to + be preprocessed to create the `automake' script; so don't leave + it executable. + + 2011-12-20 Peter Rosin + + tests: fix spurious failure on systems lacking unistd.h + This is for automake bug#10324. + * tests/silent-lex-generic.test (foo.l): Add a dummy #define of + YY_NO_UNISTD_H, so that the generated foo.c file won't require + unistd.h to be present (it is not present when compiling with, + e.g., MSVC 9). + + 2011-12-16 Stefano Lattarini + + test defs: hack to support autoconf-wrapper programs + * tests/defs.in ($AUTOCONF): Add a dummy `-B' option to the + autoconf invocation, so that, when the Debian autoconf wrapper + is involved, it will correctly dispatch an autoconf >= 2.50 + instead of defaulting to autoconf 2.13. + ($AUTOHEADER, $AUTORECONF): Likewise, but for autoheader and + autoreconf respectively. + Reported by Bruno Haible: + + + 2011-12-16 Stefano Lattarini + + tests: fix a minor spurious failure with FreeBSD make + * tests/remake-am-pr10111.test: Avoid using `#' comments in + makefile recipes, as these have been confusing FreeBSD make. + The failure was masked by the fact that this test is currently + expected to fail. + Suggested by a report from Bruno Haible. + + 2011-12-16 Stefano Lattarini + + tests: make two test scripts executable + * tests/remake-am-pr10111.test: Make executable. + * tests/remake-m4-pr10111.test: Likewise. + +2011-12-27 Stefano Lattarini + + yacc/lex tests: remove an unneeded workaround for bug#8485 + + * tests/yacc-d-cxx.test: Remove the workaround previously required + to avoid spurious failures due to automake bug#8485: that bug has + been solved with commit `v1.11-512-g40c3432'. + +2011-12-27 Stefano Lattarini + + yacc/lex tests: avoid too much failures with FreeBSD make + + In various Yacc/Lex tests, we used to run "make distcheck" commands + whose value was mostly dubious, and, even when it was there, was + very, very little. The presence of these extra distchecks had two + disadvantages: it slowed down our already-too-slow testsuite even + more, and, much worse, caused a lot of extra failures with FreeBSD, + all due to automake bug#7884, which is already exposed by the test + case `yacc-dist-nobuild.test'. + + We can improve this situation by simply removing "make distcheck" + calls from a few testcases, or making them conditional to the use + of GNU make. + + * tests/lex-clean-cxx.test: Do not call "make distcheck". + * tests/lex-clean.test: Likewise. + * tests/yacc-clean-cxx.test: Likewise. + * tests/yacc-clean.test: Likewise. + * tests/yflags-force-override.test: Likewise. + * tests/yacc-nodist.test: Only run "make distcheck" if make + is GNU make. + +2011-12-15 Stefano Lattarini + + Merge branch 'maint' into 'yacc-work' + * tests/silent-lex.test: Provide a dummy `yywrap()' function, to + avoid link errors on systems that doesn't provide a "lex library". + See also commit `v1.11-546-gca0ba5d'. + 2011-12-14 Stefano Lattarini readme: reference webpages for automake mailing lists diff --cc automake.in index a0894707e,309eadefe..3fc850670 mode 100755,100644..100644 --- a/automake.in +++ b/automake.in diff --cc configure.ac index 4a4cc2a04,1ae68c581..fa05a494f --- a/configure.ac +++ b/configure.ac @@@ -99,26 -97,11 +97,30 @@@ AC_SUBST([PERL_THREADS] # The test suite will skip some tests if tex is absent. AC_CHECK_PROG([TEX], [tex], [tex]) + # Save details about the selected TeX program in config.log. + # Redirect input from /dev/null, as TeX might otherwise hang waiting + # for input from the terminal. + AM_RUN_LOG([$TEX --version