Richard Hansen [Mon, 3 Feb 2025 23:26:54 +0000 (18:26 -0500)]
tests: move space from `diag_()' to `$diag_string_'
* t/ax/tap-functions.sh (diag_): Moved the space separating
`$diag_string_' from the diagnostic message to `$diag_string_' so that
callers can eliminate the space.
Karl Berry [Fri, 21 Feb 2025 17:58:12 +0000 (09:58 -0800)]
m4: force newline after AM_SILENT_RULES, as before 1.17.
From https://bugs.gnu.org/72267.
* m4/silent.m4 (AM_SILENT_RULES): m4_newline() after the assignment.
Report from Francis Dupont, suggestions from Francis and Nick Bowler.
* NEWS: mention this.
* THANKS: add Francis.
Richard Hansen [Thu, 20 Feb 2025 23:43:49 +0000 (15:43 -0800)]
automake: add missing AC_MSG_RESULT calls to AM_SANITY_CHECK.
From https://bugs.gnu.org/76448 (automake-patches).
* m4/sanity.m4 (AM_SANITY_CHECK): Call AC_MSG_RESULT before erroring
out so that a complete line is printed to stdout before the error
message is written to stderr.
* NEWS: mention this.
* THANKS: add Richard.
Karl Berry [Sun, 9 Feb 2025 17:36:24 +0000 (09:36 -0800)]
python: restore more compatible behavior for $PYTHON.
For https://bugs.gnu.org/74434.
* lib/py-compile: if $PYTHON -V does not include the
string "python" (case-insensitive), consider the support
intentionally disabled and exit successfully, unless PYTHON is set
to false, in which case exit unsuccessfully. This is closer to
the old behavior. Mention this in the help message.
* t/py-compile-env.sh: add test for PYTHON=:.
* NEWS: mention this. (And, en passant, add some past bug#s and
clarify that only RCS/SCCS pattern rules were disabled, not all.)
Karl Berry [Tue, 4 Feb 2025 16:22:26 +0000 (08:22 -0800)]
test: allow running with fatal warnings given in PERL5OPT.
* HACKING: mention running the test suite with
PERL5OPT=-Mwarnings=FATAL,all in the environment at new Perl (and
Automake releases), to try to keep up with new Perl warnings.
Suggestion from Jacob Bachmeyer,
https://lists.gnu.org/archive/html/automake/2025-02/msg00001.html
* t/parallel-tests-log-compiler-example.sh: explicitly use warnings
so that this PERL5OPT setting won't be a fatal error.
* NEWS: formatting.
Bruno Haible [Mon, 3 Feb 2025 22:16:42 +0000 (14:16 -0800)]
compile: Distinguish various MinGW, MSYS, MSYS2 environments correctly.
* lib/compile (func_file_conv): Use not only "uname -s", but also
$MSYSTEM and the presence of cygpath, in order to distinguish the
original MinGW and MSYS2.
* lib/ar-lib (func_file_conv): Likewise.
Jose Marchesi [Sun, 2 Feb 2025 18:11:24 +0000 (10:11 -0800)]
Add support for the Algol 68 programming language.
* bin/automake.in: Call register_language for Algol 68.
(resolve_linker): handle A68LINK.
(%_am_macro_for_cond): Add entry for am__fastdepGA68.
* configure.ac: Look for ga68 and set GNU_GA68 and GNU_A68FLAGS
if found.
* lib/Automake/Variable.pm (%_ac_macro_for_var): Add entries for GA68
and GA68FLAGS.
* t/a68-demo.sh: New test.
* doc/automake.texi (Algol 68 Support): New section.
* NEWS: Add entry for Algol 68.
Karl Berry [Fri, 31 Jan 2025 17:20:47 +0000 (09:20 -0800)]
automake: just use warnings, with no => FATAL.
Per Perl recommendation:
https://perldoc.perl.org/warnings#Fatal-Warnings
Suggested by Collin Funk:
https://lists.gnu.org/archive/html/automake/2025-01/msg00003.html
And in the Perl discussion:
https://github.com/Perl/perl5/issues/22954#issuecomment-2622966302
Paul Eggert [Wed, 1 Jan 2025 22:37:27 +0000 (14:37 -0800)]
Rename file to fix copyright update glitch
* Makefile.am (EXTRA_DIST), NEWS: Adjust to file renaming.
* NEWS-future: Rename from NEWS-2.0, so that "make update-copyright"
does not think this is a man page and use \(en rather than - in year
ranges. Change \(en back to -.
* 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.