Karl Berry [Mon, 14 Jul 2025 16:13:13 +0000 (09:13 -0700)]
doc: xfail doesn't mean testing a failure condition.
* doc/automake.texi (Generalities about Testing): mention that
xfail is not about testing a failure condition. See thread around:
https://lists.gnu.org/archive/html/automake/2025-07/msg00008.html
Bruno Haible [Sat, 21 Jun 2025 01:06:20 +0000 (18:06 -0700)]
automake: improve debuggability of installcheck failures.
From https://bugs.gnu.org/78850.
* lib/am/progs.am (installcheck-%DIR%PROGRAMS): Show the cause of
each failure.
* lib/am/scripts.am (installcheck-%DIR%SCRIPTS): Likewise.
* NEWS: mention this.
Karl Berry [Fri, 20 Jun 2025 16:04:52 +0000 (09:04 -0700)]
test: adapt tests for SOURCE_DATE_EPOCH.
From https://lists.gnu.org/archive/html/automake/2025-06/msg00016.html.
* t/mdate5.sh: allow years 19xx for old SOURCE_DATE_EPOCH.
* t/txinfo-vtexi3.sh: likewise.
* t/txinfo-vtexi4.sh: if SDE is set, use mdate-sh to parse it into
the expected UPDATED and UPDATED-MONTH values.
Report from Frederic Berat.
* NEWS: mention this.
Karl Berry [Mon, 26 May 2025 17:31:51 +0000 (10:31 -0700)]
maint: more 1.18 preparations.
* HACKING: it's the distcheck results that get distributed; tags.
* maintainer/maint.mk (git-tag-release, git-upload-release):
show commands that are being run.
Karl Berry [Mon, 26 May 2025 16:10:25 +0000 (09:10 -0700)]
maint: prepare for 1.18 release.
* configure.ac (AC_INIT): 1.18
(APIVERSION): also 1.18.
* m4/amversion.m4: likewise (auto-updated).
* doc/automake.texi: missing comma in make xref.
* HACKING: tweak release info some more.
* NEWS: likewise.
* INSTALL: missed top-level update from make fetch.
Karl Berry [Fri, 23 May 2025 15:54:17 +0000 (08:54 -0700)]
maint: secondary updates from make fetch.
* maintainer/maint.mk (git-sv-host): switch to
cgit.git.savannah.gnu.org/cgit, since https://git.savannah.gnu.org
has become unreliable, due to AI crawler bombardment.
(SV_GIT_CF, SV_GIT_GL): update.
https://lists.gnu.org/archive/html/savannah-hackers-public/2025-05/msg00040.html
* lib/INSTALL: update with make fetch.
* lib/gendocs.sh: likewise.
Jose Marchesi [Wed, 21 May 2025 16:49:46 +0000 (09:49 -0700)]
automake: algol68: rename A68C and A68CFLAGS back to A68 and A68FLAGS.
From https://bugs.gnu.org/78518, discussion at 78481
(both automake-patches).
* bin/automake.in: Rename A68C and A68CFLAGS to A68 and A68FLAGS.
* doc/automake.texi: Likewise.
* configure.ac: Rename GNU_A68C and GNU_A68FLAGS to GNU_A68 and
GNU_A68FLAGS.
* lib/Automake/Variable.pm: Likewise.
* t/a68-demo.sh: Likewise.
Karl Berry [Tue, 20 May 2025 16:17:04 +0000 (09:17 -0700)]
mdate-sh: support $SOURCE_DATE_EPOCH.
From https://bugs.gnu.org/77805.
* lib/mdate-sh: if $SOURCE_DATE_EPOCH is set, use it
instead of the mtime of any file. Debian was removing
@value{UPDATED}, etc., from manuals because of varying output.
Try date --date, then date -r, then perl gmtime, then
fall back to the file's mtime.
Also, warn if more than one file argument is given.
(mon_to_month): factor out conversion of Jan to January.
* t/mdate5.sh: test it.
* doc/automake.texi (Texinfo): mention it.
* NEWS: mention it.
Jose Marchesi [Thu, 24 Apr 2025 22:07:41 +0000 (15:07 -0700)]
automake: algol68: rename A68 to A68C and AM_PROG_A68 to AM_PROG_A68C.
From https://bugs.gnu.org/78033 (automake-patches).
While upstreaming the Algol 68 autoconf support it was pointed
out that the shell variable A68 should be renamed to A68C and
that the macro AC_PROG_A68 should be renamed to AC_PROG_A68C.
This is to be more consistent to the support for other languages
like Go. This patch updates the Automake side.
The Algol 68 code snippets are also updated to use modern
stropping, which is the stropping regime now used by default by ga68.
Karl Berry [Sat, 12 Apr 2025 15:47:59 +0000 (08:47 -0700)]
maint: 1.17.92 pretest released, 1.17.93 for dev.
* configure.ac (AC_INIT): now 1.17.93.
* m4/amversion.m4 (AM_AUTOMAKE_VERSION): 1.17.93 (auto-update).
* HACKING: mention delay between upload and appearance on server.
Richard Hansen [Wed, 9 Apr 2025 17:00:05 +0000 (10:00 -0700)]
test: force Autoconf config.site to /dev/null.
From https://bugs.gnu.org/76622 (automake-patches).
* t/ax/test-defs.in: Set `CONFIG_SITE' to `/dev/null' to avoid
the local system's Autoconf site defaults from breaking the test
environment. Original report from Nelson Beebe, 26 Feb 2025.
* NEWS: mention this.
Karl Berry [Thu, 13 Mar 2025 21:39:59 +0000 (14:39 -0700)]
dist: document bzip3 support.
More from https://bugs.gnu.org/73795 (automake-patches).
* doc/automake.texi (The Types of Distributions): add item for bzip3.
Analogous changes throughout.
* lib/am/distdir.am (dist-bzip3): bzip3 does not read any envvars;
don't set BZIP2.
Karl Berry [Tue, 25 Feb 2025 22:39:11 +0000 (14:39 -0800)]
maint: doc and maintainer-check in preparation for 1.17.90.
* HACKING: mention thanks to individuals.
* NEWS: update for 1.17.90.
* configure.ac (AC_INIT): now 1.17.90.
* m4/amversion.m4 (AM_AUTOMAKE_VERSION): 1.17.90 (auto-update).
* maintainer/syntax-checks.mk (sc_tests_command_subst): allow
whitespace before # shell comment line.
(sc_tests_plain_sleep): emphasize using $sleep without a number;
only replace sleep 1 or sleep 2; longer than that would be fine.
* t/tap-stderr-prefix.tap: use $sleep instead of sleep 1.
Karl Berry [Mon, 24 Feb 2025 23:35:09 +0000 (15:35 -0800)]
automake: warn about install.sh being found, rather than error.
Report from https://bugs.gnu.org/19964.
* bin/automake.in (scan_autoconf_files): give a msg 'obsolete'
rather than err_am. Mention where install.sh was found.
(En passant, fix some doubled words.)
* NEWS: mention this.
Karl Berry [Mon, 24 Feb 2025 22:41:48 +0000 (14:41 -0800)]
dist: change tar format default to ustar.
Suggested in https://bugs.gnu.org74847.
* m4/init.m4 (tar-ustar): make ustar the default instead of tar-v7.
* doc/automake.texi (tar-formats): document this.
* NEWS: mention this.
* t/tar-override.sh: force tar-v7 for purposes of this test.
Richard Hansen [Mon, 24 Feb 2025 00:21:23 +0000 (19:21 -0500)]
tests: test TAP stdout/stderr order with --merge --stderr-prefix
* t/tap-stderr-prefix.tap: Add a test checking the processing order of stdout
lines relative to stderr lines when the TAP driver is passed `--merge' and
`--stderr-prefix'.
Richard Hansen [Mon, 24 Feb 2025 00:21:17 +0000 (19:21 -0500)]
tests: add shell function support to `command_ok_'
* t/ax/tap-functions.sh (command_ok_): Run the command without testing
the exit status with `||' in case the command is a shell function.
This avoids unintentionally disabling `set -e' inside the shell
function.
Bogdan [Mon, 24 Feb 2025 18:30:42 +0000 (10:30 -0800)]
dist: correct sense of no-dist-built-sources option.
Primarily from https://bugs.gnu.org/69908.
* bin/automake.in (preprocess_file) <DIST_BUILT_SOURCES>:
make the option name be "no-dist-built-sources",
per Options.pm and automake.texi; then set it with a single !.
* lib/am/distdir.am (distdir) [DIST_BUILT_SOURCES]: insert the
dependency on $(BUILT_SOURCES) when DIST_BUILT_SOURCES is true,
not false; i.e., sense was reversed.
* t/dist-no-built-sources.sh: edit the test configure.ac
in the no-dist-built-sources case. Rename the testopt value to
match the Automake option.
* NEWS: mention this.
Karl Berry [Sun, 23 Feb 2025 17:57:47 +0000 (09:57 -0800)]
doc: move --stderr-prefix doc details to a new subsubsection.
Still in https://bugs.gnu.org/72536.
* doc/automake.texi (TAP setup and examples):
(TAP stderr examples),
TAP stderr prefixing): split TAP examples
into new subsubsections. Add discussion of race condition and
other reordering from the open bug.
* NEWS: mention --stderr-prefix.
Richard Hansen [Mon, 3 Feb 2025 23:26:59 +0000 (18:26 -0500)]
tests: use `--stderr-prefix' for TAP tests
* t/local.mk: Pass `--stderr-prefix' to `lib/tap-driver.sh' when
running TAP tests to prevent stderr lines from being confused with
test results and to improve the readability of the test log files.
Richard Hansen [Mon, 3 Feb 2025 23:26:58 +0000 (18:26 -0500)]
tap: include malformed output in error message to aid with debugging
* lib/tap-driver.sh: If the line that should contain the test script's exit
status is not an integer (which would indicate a bug with the driver, not the
code under test), include the line in the error message to help with
debugging.
Richard Hansen [Mon, 3 Feb 2025 23:26:57 +0000 (18:26 -0500)]
tap: new `--stderr-prefix' option to prefix test script's stderr
* lib/tap-driver.sh: Add a new `--stderr-prefix' option to instruct
the TAP driver to prefix each line of the test script's standard error
with the given string. This is useful when `--merge' is enabled and
standard error lines might be confused with test results.
* doc/automake.texi: Document the new `--stderr-prefix' option.
* t/tap-stderr-prefix.tap: New test.
* t/list-of-tests.mk (handwritten_TESTS): Add it.
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.