On 07/11/2010 12:51 AM, Ralf Wildenhues wrote: > I have a patch below that turns Eric's diff into a patch for PACKAGE and > VERSION. It really makes me cringe though: we ourselves break the > promise not to use PACKAGE and VERSION (nor BUG-REPORT btw.) outside of > here-douments: > ./configure --help=short > ./configure --help=recursive > > and running > ./config.status > > extends config.log with a version of PACKAGE_STRING that was set to a > double-quoted string after going through a quoted here-document. So at > least double quotes in these strings are a deal-breaker here.
For that matter, we AC_DEFINE_UNQUOTED([PACKAGE_NAME],
["$PACKAGE_NAME"], [...]), so users _can't_ have been using
double-quotes in a package name or version in the first place. We're
back to things like (), +, and spaces being useful in version strings
(and as far as I can see, spaces are still allowed by 2.66).
At this point, I'm thinking of using AS_LITERAL_HEREDOC_IF plus one
additional check for "; all other uses of AC_PACKAGE_STRING and friends
appeared to be inside "", so it's just a documentation matter to mention
that these strings should be double-quoted for project-generic code
(such as automake), but an individual project that follows stricter
rules (such as coreutils version string always being a single shell
word) can get by with referencing AC_PACKAGE_VERSION outside double quotes.
Updated patch coming shortly...
> Question is: Eric, do you really want to have different standards for
> the first three arguments for AC_INIT, and do you want to limit all
> future Autoconf versions to allowing to use PACKAGE and VERSION only in
> here-documents?
As long as AC_PACKAGE_* are in double-quotes throughout autoconf (which
they are, by my quick audit of lib/autoconf/{general,status}.m4), then "
is the only problem, but it was already a problem, so rejecting it up
front seems reasonable to me, at which point, users need not be
restricted to just here-docs.
--
Eric Blake [email protected] +1-801-349-2682
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
