GNU bug report logs - #72267
automake 1.17 issue with new AM_SILENT_RULES

Previous Next

Package: automake;

Reported by: Francis Dupont <Francis.Dupont <at> fdupont.fr>

Date: Wed, 24 Jul 2024 07:27:01 UTC

Severity: normal

Done: Karl Berry <karl <at> freefriends.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Nick Bowler <nbowler <at> draconx.ca>
To: Francis Dupont <Francis.Dupont <at> fdupont.fr>
Cc: 72267 <at> debbugs.gnu.org
Subject: bug#72267: automake 1.17 issue with new AM_SILENT_RULES
Date: Wed, 24 Jul 2024 22:36:54 -0400
On 2024-07-23 13:23, Francis Dupont wrote:
> 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])
> +])

As far as I can see nothing in Automake expands AM_SILENT_RULES so
there must be an expansion written somewhere in configure.ac which is
producing the problematic construct.

The usual convention for an autoconf macro that ends in a shell command
is not to include a newline.  The newline present where a macro is
expanded serves to terminate the command.  Otherwise we'd have to write
dnl after basiclaly everything just to avoid unneeded newlines.

However, it is true that this is a change in behaviour.  Automake 1.16.5
didn't follow this convention and it does produce a newline at the end
of the AM_SILENT_RULES expansion.

So before, if you wrote something like:

  AM_SILENT_RULES([no])something else without intervening newline

it would work before (and avoid an extra newline) but now indeed it
probably will not work.

If possible, it is probably a good idea to change whatever package was
broken by this.  But at the same time, it is probably not a big deal to
restore the extra newline in Automake.  But maybe use m4_newline() to
make it extremely obvious that it was put there on purpose.

Cheers,
  Nick




This bug report was last modified 85 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.