Re: bug#16841: Bug#738716: automake: Generates syntax error in configure script
Stefano Lattarini <[email protected]>
| Newsgroups | gmane.comp.sysutils.automake.patches,gmane.comp.sysutils.automake.bugs |
|---|---|
| Message-ID | <[email protected]> |
tags 16841 + patch close 16841 thanks On 02/22/2014 08:40 AM, Eric Dorland wrote: > * Hilko Bengen ([email protected]) wrote: >> Source: automake-1.14 >> Version: 1:1.14.1-2 >> Severity: critical >> Tags: patch >> >> While trying to build a new version of nbdkit, I fonud that a freshly >> generated configure script contains a syntax error: >> >> ,---- >> | $ curl -O http://libguestfs.org/download/nbdkit/nbdkit-1.1.4.tar.gz >> | [...] >> | $ tar xzf nbdkit-1.1.4.tar.gz >> | $ cd nbdkit-1.1.4/ >> | $ autoreconf >> | $ ./configure >> | [...] >> | checking for style of include used by make... GNU >> | checking whether make supports nested variables... yes >> | checking dependency style of gcc... gcc3 >> | ./configure: line 4820: syntax error near unexpected token `case' >> | ./configure: line 4820: `fi case `pwd` in' >> `---- >> >> To me, this looks like a missing newline at the end of AM_INIT_AUTOMAKE >> in /usr/share/aclocal-1.14/init.m4. At least the attached patch fixes >> the problem for me. > > It looks like the problem is the dnl on your AM_INIT_AUTOMAKE line: > > AM_INIT_AUTOMAKE(foreign) dnl NB: Do not [quote] this parameter. > > That's suppressing the natural new line that would be there. But I > think the patch is legitimate so forwarding it along. > >> --- /usr/share/aclocal-1.14/init.m4.orig 2014-02-12 09:45:22.883382346 +0100 >> +++ /usr/share/aclocal-1.14/init.m4 2014-02-12 09:45:40.758921507 +0100 >> @@ -164,7 +164,8 @@ >> END >> AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) >> fi >> -fi]) >> +fi >> +]) >> >> dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not >> dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further > > Agreed, we shouldn't have broken backward-compatibility for no good reason (and IIRC the removal of the trailing newline wasn't deliberated). Fixed with the attached patch. Thanks, Stefano
0001-AM_INIT_AUTOMAKE-make-sure-has-a-trailing-newline-af.patch
(text/x-patch, 4.5 KB)
From 69d9e8de6154916072900974d62f3b27ba9c664c Mon Sep 17 00:00:00 2001 Message-Id: <69d9e8de6154916072900974d62f3b27ba9c664c.1418988210.git.stefano.lattarini@gmail.com> From: Stefano Lattarini <[email protected]> Date: Fri, 19 Dec 2014 11:44:12 +0100 Subject: [PATCH] AM_INIT_AUTOMAKE: make sure has a trailing newline after expansion This used to be the case until Automke 1.13, but we broke it in Automake 1.14 (see commit v1.13.1-71-gf78b0f0). This caused issues like http://debbugs.gnu.org/16841 * m4/init.m4 (AM_INIT_AUTOMAKE): Adjust. * t/aminit-trailing-dnl-comment-pr16841.sh: New test. * t/list-of-tests.mk: Add it. * NEWS, THANKS: Update. Signed-off-by: Stefano Lattarini <[email protected]> --- NEWS | 9 +++++++ THANKS | 1 + m4/init.m4 | 6 ++++- t/aminit-trailing-dnl-comment-pr16841.sh | 44 ++++++++++++++++++++++++++++++++ t/list-of-tests.mk | 1 + 5 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 t/aminit-trailing-dnl-comment-pr16841.sh diff --git a/NEWS b/NEWS index 614eba6..626d295 100644 --- a/NEWS +++ b/NEWS @@ -104,6 +104,15 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +New in 1.14.2: + +* Bugs fixed: + + - The expansion of AM_INIT_AUTOMAKE ends once again with a trailing + newline (bug#16841). Regression introduced in Automake 1.14. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + New in 1.14.1: * Bugs fixed: diff --git a/THANKS b/THANKS index 7f84850..9ace719 100644 --- a/THANKS +++ b/THANKS @@ -152,6 +152,7 @@ Harlan Stenn [email protected] He Li [email protected] Henrik Frystyk Nielsen [email protected] Hib Eris [email protected] +Hilko Bengen [email protected] Ian Lance Taylor [email protected] Ignacy Gawedzki [email protected] Илья Н. Голубев [email protected] diff --git a/m4/init.m4 b/m4/init.m4 index 432ff20..d8350fe 100644 --- a/m4/init.m4 +++ b/m4/init.m4 @@ -164,7 +164,11 @@ to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi -fi]) +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further diff --git a/t/aminit-trailing-dnl-comment-pr16841.sh b/t/aminit-trailing-dnl-comment-pr16841.sh new file mode 100644 index 0000000..0f47f16 --- /dev/null +++ b/t/aminit-trailing-dnl-comment-pr16841.sh @@ -0,0 +1,44 @@ +#! /bin/sh +# Copyright (C) 2014 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Check that a trailing 'dnl' m4 comment automake after the +# AM_INIT_AUTOMAKE invocation doesn't produce a syntactically +# invalid configure script. This used to be the case until +# automake 1.13, but we broke that in automake 1.14. See +# automake bug#16841. + +am_create_testdir=empty +. test-init.sh + +cat > configure.ac <<END +AC_INIT([test-pr16841], [1.0]) +AM_INIT_AUTOMAKE([1.14 -Werror]) dnl Some comment +echo "OK OK OK" +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT +END + +: > Makefile.am + +$ACLOCAL +$AUTOCONF +$AUTOMAKE -a + +./configure >stdout || { cat stdout; exit 1; } +cat stdout +greop '^OK OK OK$' stdout + +: diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk index 462497e..c98d69e 100644 --- a/t/list-of-tests.mk +++ b/t/list-of-tests.mk @@ -132,6 +132,7 @@ t/amhello-cflags.sh \ t/amhello-cross-compile.sh \ t/amhello-binpkg.sh \ t/aminit-moreargs-deprecation.sh \ +t/aminit-trailing-dnl-comment-pr16841.sh \ t/amassign.sh \ t/am-config-header.sh \ t/am-prog-cc-stdc.sh \ -- 2.1.3