Preparing to make the next test release... This failed: n=50; ( make bootstrap && make -j$n check keep_testdirs=yes && make maintainer-check && make -j$n distcheck && make -j$n distcheck AM_TESTSUITE_MAKE="make -j$n" && make -j$n check-no-trailing-backslash-in-recipes && make -j$n check-cc-no-c-o ) >& makerr &
With this output around the error: tardir=automake-1.16j && ${TAR-tar} chof - "$tardir" | XZ_OPT=${XZ_OPT--e} xz -c >automake-1.16j.tar.xz tardir=automake-1.16j && ${TAR-tar} chof - "$tardir" | eval GZIP= gzip --best -c >automake-1.16j.tar.gz make[2]: Leaving directory '/home/j/w/co/automake/automake-1.16j/_build/sub' if test -d "automake-1.16j"; then find "automake-1.16j" -type d ! -perm -700 -exec chmod u+rwx {} ';' && rm -rf "automake-1.16j" || { sleep 5 && rm -rf "automake-1.16j"; }; else :; fi make[1]: Leaving directory '/home/j/w/co/automake/automake-1.16j/_build/sub' make[1]: Entering directory '/home/j/w/co/automake/automake-1.16j/_build/sub' rm -rf doc/automake.dvi doc/automake.pdf doc/automake.ps doc/automake.html \ doc/automake-history.dvi doc/automake-history.pdf \ doc/automake-history.ps doc/automake-history.html rm -f bin/automake bin/aclocal bin/aclocal-1.16 bin/automake-1.16 doc/aclocal.1 doc/automake.1 doc/aclocal-1.16.1 doc/automake-1.16.1 lib/Automake/Config.pm t/ax/test-defs.sh t/a x/shell-no-trail-bslash t/ax/cc-no-c-o runtest t/perf/test-suite.log announcement rm -f tests-in-makefile-list.tmp tests-on-filesystem-list.tmp diff-in-tests-lists.tmp find . -type d ! -perm -700 -exec chmod u+rwx {} ';' rm -rf "/home/j/w/co/automake/automake-1.16j/_build/sub/cover_db" rm -rf doc/automake.t2d doc/automake.t2p doc/automake-history.t2d \ doc/automake-history.t2p find: ā./doc/automake.t2dā: No such file or directory rm -f t/get-sysconf.log t/pm/Cond2.log t/pm/Cond3.log t/pm/Condition.log t/pm/Condition-t.log t/pm/DisjCon2.log t/pm/DisjCon3.log t/pm/DisjConditions.log t/pm/DisjConditions-t.log t/pm/General.log t/pm/Version.log t/pm/Version2.log t/pm/Version3.log t/pm/Wrap.log t/instspc.log t/aclocal.log t/aclocal-I-order-1.log t/aclocal-I-order-2.log t/aclocal-I-order-3 .log t/aclocal-I-and-install.log t/aclocal-acdir.log ... I fixed that with the first attached diff. Then ran that command again... and hit this: make[2]: Leaving directory '/t/am-release' make[1]: Leaving directory '/t/am-release' GEN sc_sanity_gnu_grep GEN sc_perl_protos ./t/ax/test-defs.sh:# for this whole subsecond-mtime problem. With this set to "sleep 1", Do not use "sleep x" in the above tests. Use "$sleep" instead. make: *** [maintainer/syntax-checks.mk:443: sc_tests_plain_sleep] Error 1 So I adjusted via the second attached change. Now, I think it will succeed. After which I'll push them and then build/upload the 1.16j test release.
>From c8fcdede16b034260d779ff3f064b84d55064000 Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyer...@meta.com> Date: Wed, 27 Dec 2023 06:52:50 -0800 Subject: [PATCH 1/2] 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. --- lib/am/distdir.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/am/distdir.am b/lib/am/distdir.am index 301239de1..0dd3a2e3f 100644 --- a/lib/am/distdir.am +++ b/lib/am/distdir.am @@ -24,7 +24,7 @@ top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -700 -exec chmod u+rwx {} ';' \ - && rm -rf "$(distdir)" \ + ; rm -rf "$(distdir)" \ ## On MSYS (1.0.17) it is not possible to remove a directory that is in ## use; so, if the first rm fails, we sleep some seconds and retry, to ## give pending processes some time to exit and "release" the directory -- 2.41.0.376.gcba07a324d >From b79e21c53b8e6899ad4616b422d1d1dd32d13d49 Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyer...@meta.com> Date: Wed, 27 Dec 2023 07:48:17 -0800 Subject: [PATCH 2/2] maint: avoid a false-positive syntax-check failure * maintainer/syntax-checks.mk (sc_tests_plain_sleep): This would match the "sleep 1" in a comment. So filter out shell-style comments before matching. --- maintainer/syntax-checks.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/maintainer/syntax-checks.mk b/maintainer/syntax-checks.mk index c56313781..40e30d955 100644 --- a/maintainer/syntax-checks.mk +++ b/maintainer/syntax-checks.mk @@ -440,7 +440,8 @@ sc_tests_ls_t: # Use '$sleep' instead. Some file systems (e.g., Windows) have only # a 2sec resolution. sc_tests_plain_sleep: - @if grep -E '\bsleep +[12345]\b' $(xtests); then \ + @if grep -vE '^[ ]*#' $(xtests) \ + | grep -E '\bsleep +[12345]\b' | grep .; then \ echo 'Do not use "sleep x" in the above tests. Use "$$sleep" instead.' 1>&2; \ exit 1; \ fi -- 2.41.0.376.gcba07a324d