Subject: bug#72267: closed (Re: bug#72267: automake 1.17 issue with new AM_SILENT_RULES)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 21 Feb 2025 17:59:03 +0000

Your bug report

#72267: automake 1.17 issue with new AM_SILENT_RULES

which was filed against the automake package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
72267: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72267
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#72267: automake 1.17 issue with new AM_SILENT_RULES
From: Karl Berry <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Fri, 21 Feb 2025 10:58:10 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

    configure generated by autoreconf includes
    this line:
    AM_DEFAULT_VERBOSITY=0ac_config_headers="$ac_config_headers config.h"

Thanks for the report and proposed fix, Francis. I added Nick's suggested
m4_newline() to AM_SILENT_RULES in silent.m4.

I see in your kea configure.ac:

  m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])dnl be backward compatible
  AC_CONFIG_HEADERS([config.h])

So the newline in configure.ac was indeed being explicitly discarded by
your dnl. It makes sense for Automake to force the newline here, as was
the behavior before 1.17.

Closing this one. Thanks again,
Karl

-----------------------------------------------------------------------------
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.
diff --git a/NEWS b/NEWS
index 504901a88..34876f3db 100644
--- a/NEWS
+++ b/NEWS
@@ -32,9 +27,16 @@ New in 1.x:
   - The compile script is more robust to Windows configurations;
     specifically, avoiding double-path translation on MSYS. (bug#75939)

+  - AM_SILENT_RULES once again always ends with a newline. (bug#72267)
+
   - AM_SANITY_CHECK outputs a "no" for failure before fatal errors.
     (bug#76448)

diff --git a/THANKS b/THANKS
index 634c77c9b..0f44235aa 100644
--- a/THANKS
+++ b/THANKS
@@ -139,6 +139,7 @@ Felix Yan                       [email-masked]
 Flavien Astraud                 [email-masked]
 Florian Briegel                 [email-masked]
 Francesco Salvestrini           [email-masked]
+Francis Dupont                  [email-masked]
 François Pinard                 [email-masked]
 Fred Fish                       [email-masked]
 Frédéric Bérat                [email-masked]
diff --git a/m4/silent.m4 b/m4/silent.m4
index 56334d3b9..a2865fded 100644
--- a/m4/silent.m4
+++ b/m4/silent.m4
@@ -68,4 +68,8 @@ fi
 # empty being verbose).
 AC_DEFUN([AM_SILENT_RULES],
 [AC_REQUIRE([_AM_SILENT_RULES])
-AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])])
+AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])m4_newline
+dnl We intentionally force a newline after the assignment, since a) nothing
+dnl good can come of more text following, and b) that was the behavior
+dnl before 1.17. See https://bugs.gnu.org/72267.
+])

compile finished at Fri Feb 21 09:56:43 2025

Subject: automake 1.17 issue with new AM_SILENT_RULES
From: Francis Dupont <[email-masked]>
To: [email-masked]
Date: Tue, 23 Jul 2024 19:23:44 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

I use homebrew on macOS Sonoma 14.5. This package system
installed the version 1.17 automake (I use a binary package
but the source one refers to this metadata:
  desc "Tool for generating GNU Standards-compliant Makefiles"
  homepage "https://www.gnu.org/software/automake/"
  url "https://ftp.gnu.org/gnu/automake/automake-1.17.tar.xz"
  mirror "https://ftpmirror.gnu.org/automake/automake-1.17.tar.xz"
  sha256 "8920c1fc411e13b90bf704ef9db6f29d540e76d232cb3b2c9f4dc4cc599bd990"
  license "GPL-2.0-or-later"

My problem is simple: configure generated by autoreconf includes
this line:
AM_DEFAULT_VERBOSITY=0ac_config_headers="$ac_config_headers config.h"

i.e. the last macro generating AM_DEFAULT_VERBOSITY setting
misses to add a newline after its expansion.

I can propose an easy patch which fixes the problem for me:
at the end of the silent.m4 file (m4 directory in sources
but installed at another location my homebrew add a newline
in the AM_SILENT_RULES macro setting AM_DEFAULT_VERBOSITY:

--- /usr/local/Cellar/automake/1.17/share/aclocal-1.17/silent.m4-orig-nl	2024-07-12 07:21:44
+++ /usr/local/Cellar/automake/1.17/share/aclocal-1.17/silent.m4		2024-07-23 07:40:50
@@ -68,4 +68,5 @@
 # empty being verbose).
 AC_DEFUN([AM_SILENT_RULES],
 [AC_REQUIRE([_AM_SILENT_RULES])
-AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])])
+AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])
+])

Regards

[email-masked] (or [email-masked])