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:36:07 +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/diffutils.texi has a hand-written @menu, it should use this extra
option.

Here's a patch to that effect.

There are two possibilities for adding the extra option:
  - in the MAKEINFO variable, where it has an effect on both "makeinfo"
    and "makeinfo --html",
  - in the AM_MAKEINFOFLAGS variable, where it has an effect on "makeinfo"
    only.
Since some maintainers may check their documentation edits only by regenerating
the HTML-formatted documentation, the first choice is preferrable.

Tested by running
  touch doc/diffutils.texi ; (cd doc && make diffutils.info V=1)
and
  make sc_makefile_at_at_check

From 4938fa8767bf56521eaa96b0b7991ee74cc18458 Mon Sep 17 00:00:00 2001
From: Bruno Haible <[email-masked]>
Date: Fri, 23 Jun 2023 00:29:28 +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/Makefile.am (MAKEINFO): New variable.
* cfg.mk (_makefile_at_at_check_exceptions): New variable.
---
 cfg.mk          | 3 +++
 doc/Makefile.am | 5 +++++
 2 files changed, 8 insertions(+)

diff --git a/cfg.mk b/cfg.mk
index 3713860..83d454e 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -42,6 +42,9 @@ old_NEWS_hash = d6a8096805f9b3ee162842058477f0bc
 # via diff.h or system.h.
 config_h_header = (<config\.h>|"(diff|system)\.h")
 
+# Add an exemption for sc_makefile_at_at_check.
+_makefile_at_at_check_exceptions = ' && !/MAKEINFO/'
+
 update-copyright-env = \
   UPDATE_COPYRIGHT_USE_INTERVALS=1 \
   UPDATE_COPYRIGHT_MAX_LINE_LENGTH=79
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 300617e..8166ab0 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -15,6 +15,11 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+
+# The customization variable CHECK_NORMAL_MENU_STRUCTURE is necessary with
+# makeinfo versions ≥ 6.8.
+MAKEINFO = @MAKEINFO@ -c CHECK_NORMAL_MENU_STRUCTURE=1
+
 AM_MAKEINFOFLAGS = --no-split
 
 info_TEXINFOS = diffutils.texi
-- 
2.34.1