[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Autoconfig bug report
From: |
Eric Blake |
Subject: |
Re: Autoconfig bug report |
Date: |
Fri, 12 Oct 2007 06:15:47 -0600 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070728 Thunderbird/2.0.0.6 Mnenhy/0.7.5.666 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
According to JohnT on 10/10/2007 6:21 PM:
Please keep replies on the list, so that others may chime in. Also, on
lists, it is customary to reply following some context, rather than
top-posting, so that others joining in late can follow what the thread is
about; I've reformatted your message a bit accordingly.
Also, I'm adding bug-gnupg, since it is a bug in their package.
>> Sounds like there is some missing m4 quoting; more likely in your original
>> configure.ac, but possibly in autoconf's replacement macro. Can you give
>> us a link to the configure.ac as it was before you tried to run autoupdate
>> (or post it here)? Can you figure out which macro was auto-updated into
>> the expansion error?
> The package I have worked with the most on this is libgpg-error-1.5.tar.bz2,
> which is needed (v. 1.4+) to build gpg2. I think it's from Sourceforge.
> The version of
> M4 that I'm using is 1.4.3.
That's a problem. All versions of m4 earlier than 1.4.5 contain known
bugs which are documented to interfere with autoconf (note, not
"autoconfig") in combination with gettext operation. Try upgrading m4
first; the latest version is 1.4.10. However, that is a side issue, and
should not affect your original report.
> Gettext is version 14.5. I ran autoconfig
> after autoupdate
> to incur the problem I reported, but don't know anything about aclocal
> or options
> for autoconfig except what the --help output shows.
Basically, I was asking if you have a line ACLOCAL_AMFLAGS in your
Makefile.am?
>
> Below are the diffs and the text of the original configure.ac file. I
> found that versions
> of autoupdate earlier than 2.59 either failed because of the version
> requirement in the
> original configure.ac or reported errors, after trying 2.55, 2.57 and
> 2.58 as I recall.
>
> John T
>
> Here's the output of a diff command, which I've never used before.
> address@hidden libgpg-error-1.5]$ diff --suppress-common-lines
> configure.ac configure.ac.original
It's MUCH nicer to use context diffs (diff -u or diff -c) for human use.
The default diff output is designed primarily for machine use. Also, when
using diff, it is customary to list the original file first on the command
line.
> 22c22
> < AC_PREREQ(2.61)
> ---
>> AC_PREREQ(2.59)
> 33c33,34
> <
> AC_INIT([libgpg-error],[my_versionm4_if(my_issvn,yes,-svn[]svn_revision)],address@hidden)
> ---
>> AC_INIT([libgpg-error],
> my_version[]m4_if(my_issvn,[yes],[-svn[]svn_revision]),
>> address@hidden)
Yep - underquoted. The bug is in the libgpg-error configure.ac, and not
in autoconf.
>
>
> Original configure.ac file
...
> # Remember to change the version number immediately *after* a release.
> # Set my_issvn to "yes" for non-released code. Remember to run an
> # "svn up" and "autogen.sh" right before creating a distribution.
> m4_define([my_version], [1.5])
> m4_define([my_issvn], [no])
>
> m4_define([svn_revision], m4_esyscmd([echo -n $( (svn info 2>/dev/null \
> || echo 'Revision: 0')|sed -n '/^Revision:/
> {s/[^0-9]//gp;q;}')]))
> AC_INIT([libgpg-error],
> my_version[]m4_if(my_issvn,[yes],[-svn[]svn_revision]),
> address@hidden)
What happens here is that AC_INIT is called with the expansion of the
'my_version' macro, concatenated with the expansion of the 'm4_if' macro,
as its second argument. This works for autoconf, even though it is
underquoted; the [] in the middle separates the two macro names. However,
autoupdate is a lot stricter on quoting, because it works by using m4 to
parse the literal arguments to AC_INIT without expansion, then replays
exactly what it parsed. Since the argument is underquoted, m4 sees the
giant string 'my_versionm4_if' rather than 'my_version[]m4_if'.
The fix should be as simple as properly quoting, per these rules[1]:
AC_INIT([libgpg-error],
[my_version[]m4_if(my_issvn,[yes],[-svn[]svn_revision])],
address@hidden)
[1]
http://www.gnu.org/software/autoconf/manual/html_node/Quotation-Rule-Of-Thumb.html#Quotation-Rule-Of-Thumb
- --
Don't work too hard, make some time for fun as well!
Eric Blake address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFHD2Vz84KuGfSFAYARAmNFAJ9W27QUqT9e5IN00nFIQculOVbftACfWly3
NmBbEBGU839e7AZ9094v6Qk=
=MV07
-----END PGP SIGNATURE-----