Subject: patch: Ensure that makeinfo ≥ 6.8 checks the @menu structure
From: Bruno Haible <[email-masked]>
To: [email-masked]
Date: Fri, 23 Jun 2023 00:05:55 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Makeinfo versions < 6.7 detected mistakes in the @menu structure of TeXinfo
input. Makeinfo versions ≥ 6.8 don't do this any more by default. They need
an extra option, for this validation to happen. See
<https://lists.gnu.org/archive/html/bug-texinfo/2023-06/msg00015.html>.

Since doc/coreutils.texi has a hand-written @menu, it should use this extra
option.

Here's a patch to that effect. I checked it by running
  touch doc/coreutils.texi; make doc/coreutils.info V=1
and
  make sc_makefile_at_at_check
From d3f0c8f482d8be6cb3e117331f0dca7e4fa72503 Mon Sep 17 00:00:00 2001
From: Bruno Haible <[email-masked]>
Date: Thu, 22 Jun 2023 23:59:11 +0200
Subject: [PATCH] =?UTF-8?q?build:=20Ensure=20that=20makeinfo=20=E2=89=A5?=
 =?UTF-8?q?=206.8=20checks=20the=20@menu=20structure?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

See <https://lists.gnu.org/r/bug-texinfo/2023-06/msg00015.html>.

* doc/local.mk (MAKEINFO): New variable.
* cfg.mk (_makefile_at_at_check_exceptions): Update.
---
 cfg.mk       | 3 ++-
 doc/local.mk | 4 ++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/cfg.mk b/cfg.mk
index 92f119ee2..6ba8981ab 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -52,7 +52,8 @@ export XZ_OPT = -8e
 old_NEWS_hash = ac6cb1c35890b53e56acbfbb078fcd53
 
 # Add an exemption for sc_makefile_at_at_check.
-_makefile_at_at_check_exceptions = ' && !/^cu_install_prog/ && !/dynamic-dep/'
+_makefile_at_at_check_exceptions = \
+  ' && !/MAKEINFO/ && !/^cu_install_prog/ && !/dynamic-dep/'
 
 # Our help-version script is in a slightly different location.
 _hv_file ?= $(srcdir)/tests/misc/help-version
diff --git a/doc/local.mk b/doc/local.mk
index 9714d5b18..b5a6c33b6 100644
--- a/doc/local.mk
+++ b/doc/local.mk
@@ -25,6 +25,10 @@ doc_coreutils_TEXINFOS = \
   doc/fdl.texi \
   doc/sort-version.texi
 
+# The customization variable CHECK_NORMAL_MENU_STRUCTURE is necessary with
+# makeinfo versions ≥ 6.8.
+MAKEINFO = @MAKEINFO@ -c CHECK_NORMAL_MENU_STRUCTURE=1
+
 # The following is necessary if the package name is 8 characters or longer.
 # If the info documentation would be split into 10 or more separate files,
 # then this is necessary even if the package name is 7 characters long.
-- 
2.34.1