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

Reply via email to