* HACKING: more doc on version numbers.
* configure.ac (AC_INIT): 1.17.0.91, since we want (I guess)
to retain odd numbers for development and even numbers for pretests.
* m4/amversion.m4 (AM_AUTOMAKE_VERSION): 1.17.0.91 (auto-update).
(AM_SET_CURRENT_AUTOMAKE_VERSION): likewise.
* lib/Automake/Options.pm (_process_option_list): recognize
four-part numeric versions as Automake options.
* lib/Automake/Version.pm (split): recognize four-part numeric
versions.
* t/pm/Version.pl (@tests, @bad_versions): update test
to check (not reject) four-part numeric versions.
Karl Berry [Tue, 9 Jul 2024 22:35:13 +0000 (15:35 -0700)]
test: explanation of MTIME_RESOLUTION resetting.
* t/ax/test-defs.in (MTIME_RESOLUTION): separate the case
where am_cv_filesystem_timestamp_resolution is not set for
more explanations, but still reset MTIME_RESOLUTION to 1
even if it is already set. Which it should be when running
tests, because config.status is sourced. But it's too late in
the release process to change this now; after the release,
can try keeping a non-empty MTIME_RESOLUTION.
Karl Berry [Mon, 8 Jul 2024 22:04:48 +0000 (15:04 -0700)]
automake: info about Automake and Libtool being in different prefixes.
In response to https://bugs.gnu.org/71847.
* doc/automake.texi (Libtool library used but LIBTOOL is undefined):
new node. Tweak aclocal section.
* lib/Automake/Variable.pm (require_variables): refer to the
new node in the message for LT_INIT.
* maintainer/maint.mk (announcement) <AO>: new fn; use it
to output a link to the new node for test releases only.
* HACKING: mention M-x texinfo-master-menu, et al.
* doc/amhello/README: mention that the package is named amhello.
* m4/sanity.m4 (_AM_SLEEP_FRACTIONAL_SECONDS): Set
am_cv_sleep_fractional_seconds to yes/no, not true/false,
for consistency with other results.
Also "quote" this and other $am_cv values.
(_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): Test for yes/no.
* t/ax/test-defs.in: Set am_cv_sleep_fractional_seconds to 'no',
not 'false'.
* lib/Automake/Variable.pm (scan_variable_expansions): recognize
and do nothing if the variable name is empty: $().
* t/varempty.sh: new test.
* t/list-of-tests.mk (handwritten_TESTS): add it.
Karl Berry [Thu, 20 Jun 2024 17:04:55 +0000 (10:04 -0700)]
test: sync list-of-tests.
* t/list-of-tests.mk (handwritten_TESTS): add back t/instdir-ltlib.sh;
turns out all tests need to be listed there, XFAIL_TESTS is not
included, and that seems ok.
* t/CheckListOfTests.am (maintainer-check-list-of-tests): only
delete temp files if result is successful.
Karl Berry [Wed, 19 Jun 2024 16:41:22 +0000 (09:41 -0700)]
doc: rewrite subsecond NEWS entry, sanity.m4 "make" testing wrong, etc.
* m4/sanity.m4 (_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): mention
that testing of "make" is wrong here; but $(MAKE) is not available?
Do some special pleading that it won't matter in practice; we'll see.
https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html
(AM_SANITY_CHECK): use $[]* instead of $[*]2 to avoid
the confusing apparent (but not) use of shell arrays; the square
brackets are parsed off by m4.
* lib/am/check.am (output_system_information): en passant, mention
that $(AWK) should always be defined since AC_PROG_AWK is part of
AM_INIT_AUTOMAKE nowadays.
* NEWS: rewrite subsecond NEWS entry:workaround, more references.
Karl Berry [Wed, 19 Jun 2024 16:01:51 +0000 (09:01 -0700)]
doc: original purpose of $sleep is when AC_OUTPUT is not used.
* t/ax/test-defs.in (sleep): mention original purpose of $sleep,
namely when AC_OUTPUT is not used and hence the sleep done in
AC_CONFIG_COMMANDS_* is not done:
https://lists.gnu.org/archive/html/bug-automake/2010-10/msg00000.html
Discovered by Bruno in his rearch on the "sleep" history:
https://lists.gnu.org/archive/html/automake/2024-06/msg00054.html
Mike Frysinger [Tue, 18 Jun 2024 17:32:09 +0000 (10:32 -0700)]
aclocal: add --aclocal-path option to override ACLOCAL_PATH envvar.
From https://lists.gnu.org/archive/html/automake-patches/2022-01/msg00029.html
(plus wording tweaks from Karl; and thanks to Bogdan for research).
* bin/aclocal.in (usage): relabel output of m4 search path
components to be somewhat more correct (Karl), although it's still
a mess.
(parse_arguments): add new option --aclocal-path=s.
(parse_ACLOCAL_PATH): use $aclocal_path instead of hardwiring envvar.
* doc/automake.texi (aclocal Options): document it.
(dirlist): new anchor so we can reference it.
(Modifying the Macro Search Path: @file{ACLOCAL_PATH}): mention
the option.
(Possible future incompatibility): tone down; it might never happen.
* t/aclocal-path-precedence.sh: test the option.
* NEWS: mention the new option.
Bruno Haible [Mon, 17 Jun 2024 22:38:11 +0000 (15:38 -0700)]
automake: omit 1s test in _AM_FILESYSTEM_TIMESTAMP_RESOLUTION, for speed.
From https://lists.gnu.org/archive/html/automake/2024-06/msg00055.html
plus https://lists.gnu.org/archive/html/automake/2024-06/msg00054.html.
* m4/sanity.m4 (_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): Don't test
whether 1 sec works; instead just accept the 2 sec delay in the
Automake test $sleep in exchange for not incurring the 2s delay of
running the test for all packages on 1s-resolution platforms.
Platforms that support subsecond mtimes will still use them.
Collin Funk [Mon, 17 Jun 2024 21:44:28 +0000 (14:44 -0700)]
test: Improve output of system information in test-suite.log.
Fixes https://bugs.gnu.org/71421.
* lib/am/check.am ($(TEST_SUITE_LOG): Use $(AWK) instead of 'awk'.
Remove an extra space in uname output. Start the line with
"System information", and other sections with "Distribution
information".
* NEWS: add reference to #71421.
Bruno Haible [Mon, 17 Jun 2024 17:06:25 +0000 (10:06 -0700)]
automake: allow omitting logs of skipped tests from test-suite.log.
* doc/automake.texi (Parallel Test Harness): Describe the contents of
test-suite.log. Mention IGNORE_SKIPPED_LOGS.
(Command-line arguments for test drivers): Document the
--collect-skipped-logs option.
* lib/test-driver (print_usage): Document --collect-skipped-logs.
(collect_skipped_logs): New variable.
(gcopy): Use collect_skipped_logs.
* lib/am/check.am (am__common_driver_flags): Add the contents of
am__collect_skipped_logs.
(am__check_pre): Set am__collect_skipped_logs.
* t/parallel-tests-without-skipped-logs.sh: New file, based on
t/parallel-tests-no-color-in-log.sh.
* t/list-of-tests.mk (handwritten_TESTS): Add it.
* NEWS: Mention the change.
Karl Berry [Sun, 16 Jun 2024 16:20:29 +0000 (09:20 -0700)]
test: the instdir-ltlib test is expected to fail.
Discussed in https://bugs.gnu.org/71596.
* t/list-of-tests.mk (handwritten_TESTS): move t/instdir-ltlib.sh
(XFAIL_TESTS): to here. It previously worked by accident
because lib_LTLIBRARIES was misspelled as lib_LTIBRARIES;
Paul Eggert fixed that on June 7,
commit 1d35638b23e95fe6f41c828a3442f6d7f242f4c4, and the
test started failing as a result.
* t/instdir-ltlib.sh: add some doc.
* t/all.sh: likewise. (Another xfail test, which is mysterious to me.)
Paul Eggert [Fri, 7 Jun 2024 15:41:45 +0000 (08:41 -0700)]
maint: spelling and whitespace fixes
Most of these spelling fixes are just to comments and documentation.
However, some affect tests as follows:
* t/cond36.sh (tparse.h): Fix misspelling of dependency.
* t/disthook.sh: Fix misspelling of file.
* t/help3.sh: Fix misspelling of long option.
* t/instdir-ltlib.sh: Fix misspellings of macro names.
This causes the test to fail, so someone with libtool
expertise needs to look into this.
* t/tap-no-spurious-numbers.sh (highno): Fix misspelling of shell var.
* t/dist-missing-m4.sh: Accommodate a slightly different diagnostic
("undefined or overquoted macro" rather than "possibly undefined macro")
in autoconf as of v2.72-9-g7a6347d1.
Karl Berry [Sun, 2 Jun 2024 17:47:20 +0000 (10:47 -0700)]
maint: support test releases numbered from .90 for announcements.
* maintainer/maint.mk (beta_version_rx, alpha_version_rx):
update to use MAJOR.MINOR.90, .92, ..., for "beta" (test) releases,
and .91, .93, ... for "alpha" (development). Follows the
2024-01-21 change.
* HACKING: typo en passant.
Karl Berry [Fri, 31 May 2024 15:55:10 +0000 (08:55 -0700)]
maint: prepare for next pretest.
* HACKING: typo, tweak release info.
* maintainer/maint.mk: typo.
* maintainer/syntax-checks.mk: typo, and exclude test-defs.sh
(actually .in) from the `...` test because I can't figure out how
to get the same results with $(...).
Karl Berry [Mon, 27 May 2024 19:34:35 +0000 (12:34 -0700)]
test: check that subsecond mtime works with make.
Trying to fix https://bugs.gnu.org/68808.
* m4/sanity.m4 (_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): check
that make works with subsecond mtimes, as well as sleep and ls.
(Known to fail with the make 3.81 that ships with macOS.)
* configure.ac (MTIME_RESOLUTION): notice if it erroneously
expands to the empty string, i.e., fall back to 1 if
$am_cv_filesystem_timestamp_resolution ended up being unset.
* t/ax/test-defs.in (MTIME_RESOLUTION): also fall back to 1
if the variable to not set, with a message.
Fix other typos en passant.
* HACKING: tweak.
Bogdan [Sun, 26 May 2024 22:35:58 +0000 (15:35 -0700)]
test: objc tests on openbsd.
Fixes https://bugs.gnu.org/68179.
* t/objcxx-deps.sh: test for objc_getProperty and other
functions in the objc library.
* t/objcxx-minidemo.sh: likewise.
* t/strip2.sh (STRIP): use -x instead of --verbose to test
strip with multiple words, to work with openbsd (and aix) strip.
Mark Wooding [Tue, 21 May 2024 16:54:35 +0000 (09:54 -0700)]
doc: test-driver option args are separate words.
For https://bugs.gnu.org/70638.
As now mentioned in the manual, the description of the
test-driver command-line interface has been wrong since 2011
when it was first added. The manual, and the driver usage
messages themselves, have consistently shown option arguments
joined to the option name with `=' characters, while the
implementation of Automake has always provided option arguments
in the following argument word, and the provided test drivers
only accepted option arguments in the following argument word.
Because Automake has never used the `=' syntax, there can't
possibly be a working driver which actually follows the
specification as written, so, despite the fierce language of the
manual, we agreed that changing the specification was the right
approach. The `test-driver' program's usage message has already
been fixed (#22445), but the full extent of the problem wasn't
noticed at that time.
* doc/automake.texi (Command-line arguments for test drivers): Fix the
table of options to show arguments passed as separate words; add
footnote explaining this rather sorry situation.
* doc/automake.texi (Use TAP with the Automake test harness):
Remove `=' from documentation of `--diagnostic-string', because
that was never acceptable either.
* lib/tap-driver.sh: Fix usage message.
* contrib/tap-driver.pl: Change usage message to match the defined
protocol. (This implementation parses options using Perl's
`Getopt::Long' module, so it accepts the `=' syntax as specified, but
this program isn't actually used.)
Reuben Thomas [Mon, 6 May 2024 15:16:40 +0000 (08:16 -0700)]
doc: update Vala documentation
From https://bugs.gnu.org/70557#29.
* doc/automake.texi (Vala Support): Update the URL for Vala.
Drop the mention of a version requirement, as no current system
will have a too-old version of Vala.
Note the restriction on conditional inclusion of source files in
*_SOURCES.
Karl Berry [Sun, 28 Jan 2024 02:07:48 +0000 (18:07 -0800)]
test: output system information after summary report.
From https://bugs.gnu.org/68746.
* lib/am/check.am ($(TEST_SUITE_LOG)) <output_system_information>:
new shell fn, called inline to write basic os information
into test-suite.log.
Also, question (do not change) the ".. contents:: :depth: 2"
line; what is this for?
Karl Berry [Sat, 27 Jan 2024 18:59:15 +0000 (10:59 -0800)]
maint: secondary updates from make fetch.
* INSTALL: updated from make distcheck.
* maintainer/maint.mk (fetch): update top-level INSTALL
if we update lib/INSTALL.
* lib/gendocs.sh: update with make fetch.
Karl Berry [Wed, 24 Jan 2024 23:43:24 +0000 (15:43 -0800)]
doc: typo for Channels.pm, mention files for which we are the master.
* HACKING: mention files for which we are the master.
* lib/Automake/ChannelDefs.pm: typo for Automake::Channels;
mention that we hold the master copy of this.
* lib/Automake/Channels.pm: update/add text for master copy notice.
* lib/Automake/Configure_ac.pm: likewise.
* lib/Automake/FileUtils.pm: likewise.
* lib/Automake/Getopt.pm: likewise.
* lib/Automake/XFile.pm: likewise.
Karl Berry [Wed, 24 Jan 2024 23:34:29 +0000 (15:34 -0800)]
doc: more about pretest numbering.
* HACKING: mention change to numbered pretests.
* configure.ac: and hence am_beta_version_rx won't match any more.
Let's just call all pretests development snapshots.
Karl Berry [Tue, 23 Jan 2024 16:53:18 +0000 (08:53 -0800)]
automake: recommend autoreconf -f with version mismatches.
From https://bugs.gnu.org/68674.
* bin/automake.in (scan_autoconf_traces): change error
to suggest running autoreconf -f. The version mismatch is
most likely to happen due to the cache files, which
aclocal && automake (the previous recommendation) does not delete.
(scan_autoconf_files): likewise.
* doc/automake.texi (Auto-generating aclocal.m4): mention autoreconf.
Other minor wording changes.
Karl Berry [Sat, 20 Jan 2024 22:33:14 +0000 (14:33 -0800)]
python: use deb_system instead of posix_local if prefix = /usr.
Continuing with https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54412.
* m4/python.m4 (AM_PATH_PYTHON) <am_python_setup_scheme>:
factor out common scheme-related code to this new variable.
If the scheme is posix_local and the prefix is /usr,
use deb_system (for Debian package builds).
* NEWS: more explanations (and unrelated references, en passant).
python: use posix_prefix instead of posix_local on Debian.
From https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54412#17.
(Patch slightly adapted by Bogdan from original by Gianfranco,
as posted by Stefano Rivera in message#14.)
* m4/python.m4 (AM_PATH_PYTHON): replace Debian's posix_local
scheme with posix_prefix.
* doc/automake.texi (Python) <pythondir>: say a bit more.
* NEWS: mention this.
Karl Berry [Wed, 17 Jan 2024 17:51:40 +0000 (09:51 -0800)]
automake: a millisecond is too fast for subsecond-mtime.
This patch is from https://bugs.gnu.org/68325.
* m4/sanity.m4 (_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): don't try
for a millisecond; make a hundredth of a second the fastest we'll go.
Apparently there are plenty of systems which supposedly support
subsecond-mtimes down to the millisecond and yet randomly
fail parallelized tests. For example:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68119#18
Maybe the tests themselves need fixing. (The ones that run
autotools multiple times in succession.) A work in progress.
Bruno Haible [Sun, 31 Dec 2023 23:27:15 +0000 (15:27 -0800)]
test: don't hang waiting for Solaris lex/yacc to read from stdin.
From https://bugs.gnu.org/68165.
* t/get-sysconf.sh: Don't let $LEX or $YACC read from stdin when
trying --version and --help. Only lex --version hangs, but may
as well avoid it in general.
Bruno Haible [Sat, 30 Dec 2023 23:37:05 +0000 (15:37 -0800)]
dist: Use -9 instead of --best, and only for gzip, to pacify Alpine.
From https://bugs.gnu.org/68151.
* lib/am/distdir.am (GZIP_ENV): Set to -9, not --best, since
Alpine does not support --best.
(distcheck): Don't use GZIP_ENV when invoking gzip for decompression,
since Alpine does not support -1..-9 with decompression.
* doc/automake.texi (The Types of Distributions): Document the change.
* NEWS: mention this. (En passant, add more change links.)
Jim Meyering [Wed, 27 Dec 2023 14:52:50 +0000 (06:52 -0800)]
maint: avoid a racy distcheck failure
* lib/am/distdir.am (am__remove_distdir): Use ";" not "&&" after
the chmod-running find, so that a failing find doesn't cause the
entire rule to fail. This could happen when a directory like
doc/automake.t2d being processed by find is concurrently deleted
by another rule.
Karl Berry [Mon, 25 Dec 2023 23:42:34 +0000 (15:42 -0800)]
test: silent-defaults.sh rerun autotools each time.
Follow-up to https://bugs.gnu.org/32868.
* t/silent-defaults.sh: rerun $ACLOCAL && $AUTOMAKE for each trial,
else test failed. (Why it has always succeeded before now, and/or
what has changed, I don't know.) Remake the cache for each trial,
for reliability. Echo trial description.
* doc/automake.texi (Silent Rules): tweak text.
(Unsilencing Automake): new node. Mention
make --debug=p to completely unsilence rules.
Karl Berry [Mon, 25 Dec 2023 23:40:25 +0000 (15:40 -0800)]
test: self-announce leading installcheck/protocol/PATH information.
* t/ax/am-test-lib.sh (am_extra_info): self-announce where the
initial reports on installcheck, test protocol, and PATH
come from. Apparently this doesn't disturb the tests.
If other people don't like the extra verbiage, no problem to remove.
Karl Berry [Mon, 25 Dec 2023 23:38:15 +0000 (15:38 -0800)]
test: force long sleep with explicit cache variable setting.
From https://bugs.gnu.org/67670.
* t/ax/test-defs.in: when MTIME_RESOLUTION is set to 1
because automake/autom4te do not support subsecond-mtime,
also set am_cv_sleep_fractional_seconds=false. Otherwise
the random parallel test failures from given bug and others return.
* m4/sanity.m4 (_AM_SLEEP_FRACTIONAL_SECONDS): reformat.
(_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): elide "the" in AC_CACHE_CHECK.
* t/amassign.sh: end with :.
* HACKING: more on debugging tests.
* NEWS: update.
Karl Berry [Sun, 24 Dec 2023 16:55:04 +0000 (08:55 -0800)]
test: do not leave files as mode zero.
Follows up on https://bugs.gnu.org/67868.
* t/dist-with-unreadable-makefile-fails.sh: chmod u+rw at end.
Also follow usual pattern of ending tests with :, not explicit exit.
* t/tap-bad-prog.tap: chmod u+r at end (since only r removed).
Karl Berry [Sat, 23 Dec 2023 18:44:03 +0000 (10:44 -0800)]
doc: more on help2man and "Errors with distclean".
This fixes (the rest of) https://bugs.gnu.org/67891.
* doc/automake.texi (Errors with distclean): make a subsection of
"Checking the Distribution". Contrast help2man usage examples of
Autoconf (includes man pages in distribution) and
Automake (no man pages, distributes the help2man script instead).
(Checking the Distribution): convert subheadings to subsections.
* doc/local.mk: also mention autoconf vs. automake approaches here,
and point to the manual.
(checklinkx): en passant, remove unused checklinkx exclude.
Zack Weinberg [Fri, 22 Dec 2023 23:52:26 +0000 (15:52 -0800)]
maint: sync autoconf Channels.pm and ChannelsDefs.pm.
Patch from https://bugs.gnu.org/67971.
The changes address <https://savannah.gnu.org/support/?110872>,
about m4_warn code/documentation consistency.
It should be impossible to reach report_bad_channel from code in
Automake.
* lib/Automake/Channels.pm (msg): If the channel argument is invalid,
don't crash; report the mistake and use the `syntax' channel.
(report_bad_channel): New function for reporting invalid channels.
* lib/Automake/ChannelDefs.pm (usage): Clarify that the list of
warning categories is exhaustive, and that ``all'', ``none'',
``no-CATEGORY'', and ``error'' are not warning categories.
Karl Berry [Thu, 21 Dec 2023 23:46:43 +0000 (15:46 -0800)]
automake: avoid unnecessary use of \K.
This fixes (part of) https://bugs.gnu.org/67891
and follows up on https://bugs.gnu.org/55025.
* bin/automake.in (generate_makefile) <posix>: avoid use of
\K when removing comment and blank lines before a .POSIX target,
since Solaris 10 has perl 5.8.4, and \K was added in 5.10.
Karl Berry [Mon, 18 Dec 2023 22:20:55 +0000 (14:20 -0800)]
maint: announcement text tweaks.
* HACKING: mention DEVEL_SNAPSHOT=1 for us.
* NEWS: tweak text.
* maintainer/maint.mk (announcement): tweak text,
ls -l ./announcement as a clue as to where the result is.
karl [Sun, 17 Dec 2023 16:42:35 +0000 (08:42 -0800)]
dist: more forcefully deal with mode 0 directories created by tests.
From https://bugs.gnu.org/67868.
* lib/am/distdir.am (am__remove_distdir): make directories
readable and searchable, not just writable. (Also typo.)
* t/local.mk (clean-local-check): ensure directories are
at least mode 700
* t/uninstall-fail.sh: restore reasonable permissions of
the mode 0 $inst/share directory at the end.
Reuben Thomas [Sun, 10 Dec 2023 23:12:00 +0000 (15:12 -0800)]
doc: add advice to list Yacc/Lex generated sources in BUILT_SOURCES.
For https://bugs.gnu.org/62791.
* doc/automake.texi (Yacc and Lex): it seems to be necessary to
list the generated C source file for a Yacc/Lex file, as well as the
header file, in BUILT_SOURCES.