Debian Bug report logs -
#372179
autoconf: AC_CANONICAL_SYSTEM overwrites $@
Reported by: Julien Danjou <acid@debian.org>
Date: Thu, 8 Jun 2006 18:33:01 UTC
Severity: important
Fixed in version autoconf-nonfree/2.63-1
Done: Russ Allbery <rra@debian.org>
Bug is archived. No further changes may be made.
Toggle useless messages
Report forwarded to debian-bugs-dist@lists.debian.org, Debian Apache Maintainers <debian-apache@lists.debian.org>:
Bug#372179; Package apr-util.
(full text, mbox, link).
Acknowledgement sent to Julien Danjou <acid@debian.org>:
New Bug report received and forwarded. Copy sent to Debian Apache Maintainers <debian-apache@lists.debian.org>.
(full text, mbox, link).
Message #5 received at submit@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
Package: apr-util
Version: 1.2.7-1
Severity: serious
Hello,
There was a problem while autobuilding your package:
> Automatic build of apr-util_1.2.7-1 on avidan by sbuild/i386 0.46
> Build started at 20060608-1948
> ******************************************************************************
...
> /usr/share/apr-1.0/build/mkdir.sh /build/buildd/apr-util-1.2.7/debian/tmp/usr/include/apr-1 /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib/pkgconfig \
> /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib /build/buildd/apr-util-1.2.7/debian/tmp/usr/bin
> mkdir /build/buildd/apr-util-1.2.7/debian/tmp
> mkdir /build/buildd/apr-util-1.2.7/debian/tmp/usr
> mkdir /build/buildd/apr-util-1.2.7/debian/tmp/usr/include
> mkdir /build/buildd/apr-util-1.2.7/debian/tmp/usr/include/apr-1
> mkdir /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib
> mkdir /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib/pkgconfig
> mkdir /build/buildd/apr-util-1.2.7/debian/tmp/usr/bin
> for f in /build/buildd/apr-util-1.2.7/include/*.h /build/buildd/apr-util-1.2.7/include/*.h; do \
> /usr/bin/install -c -m 644 ${f} /build/buildd/apr-util-1.2.7/debian/tmp/usr/include/apr-1; \
> done
> /usr/bin/install -c -m 644 apr-util.pc /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib/pkgconfig/apr-util-1.pc
> list=''; for i in $list; do \
> ( cd $i ; /usr/bin/make DESTDIR=/build/buildd/apr-util-1.2.7/debian/tmp install ); \
> done
> /usr/bin/libtool --mode=install /usr/bin/install -c -m 755 libaprutil-1.la /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib
> /usr/bin/install -c -m 755 .libs/libaprutil-1.so.0.2.7 /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib/libaprutil-1.so.0.2.7
> (cd /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib && { ln -s -f libaprutil-1.so.0.2.7 libaprutil-1.so.0 || { rm -f libaprutil-1.so.0 && ln -s libaprutil-1.so.0.2.7 libaprutil-1.so.0; }; })
> (cd /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib && { ln -s -f libaprutil-1.so.0.2.7 libaprutil-1.so || { rm -f libaprutil-1.so && ln -s libaprutil-1.so.0.2.7 libaprutil-1.so; }; })
> /usr/bin/install -c -m 755 .libs/libaprutil-1.lai /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib/libaprutil-1.la
> /usr/bin/install -c -m 755 .libs/libaprutil-1.a /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib/libaprutil-1.a
> chmod 644 /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib/libaprutil-1.a
> ranlib /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib/libaprutil-1.a
> libtool: install: warning: remember to run `libtool --finish /usr/lib'
> /usr/bin/install -c -m 644 aprutil.exp /build/buildd/apr-util-1.2.7/debian/tmp/usr/lib
> /usr/bin/install -c -m 755 apu-config.out /build/buildd/apr-util-1.2.7/debian/tmp/usr/bin/apu-1-config
> if [ ! -d /build/buildd/apr-util-1.2.7/debian/tmp ]; then \
> @APR_SOURCE_DIR@/build/mkdir.sh /build/buildd/apr-util-1.2.7/debian/tmp; \
> fi
> /usr/bin/libtool --mode=install cp /build/buildd/apr-util-1.2.7/build/find_apu.m4 \
> /build/buildd/apr-util-1.2.7/debian/tmp/find_apu.m4
> cp /build/buildd/apr-util-1.2.7/build/find_apu.m4 /build/buildd/apr-util-1.2.7/debian/tmp/find_apu.m4
> make[1]: Leaving directory `/build/buildd/apr-util-1.2.7'
> dh_testdir
> dh_testroot
> dh_installchangelogs CHANGES
> dh_installdocs
> dh_install -a
> cp: cannot stat `./debian/tmp/usr/include/apr-1.0': No such file or directory
> dh_install: command returned error code 256
> make: *** [binary-arch] Error 1
> ******************************************************************************
> Finished at 20060608-1954
> Build needed 00:05:48, 9864k disk space
--
Julien Danjou
.''`. Debian Developer
: :' : http://julien.danjou.info
`. `' http://people.debian.org/~acid
`- 9A0D 5FD9 EB42 22F6 8974 C95C A462 B51E C2FE E5CD
[signature.asc (application/pgp-signature, inline)]
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Apache Maintainers <debian-apache@lists.debian.org>:
Bug#372179; Package apr-util.
(full text, mbox, link).
Acknowledgement sent to Tollef Fog Heen <tfheen@err.no>:
Extra info received and forwarded to list. Copy sent to Debian Apache Maintainers <debian-apache@lists.debian.org>.
(full text, mbox, link).
Message #12 received at 372179@bugs.debian.org (full text, mbox, reply):
* Julien Danjou
| There was a problem while autobuilding your package:
[...]
I can't reproduce this. Where's the build log available?
(I also somehow doubt this -- the configure call includes
--includedir=\$${prefix}/usr/include/apr-1.0 )
--
Tollef Fog Heen ,''`.
UNIX is user friendly, it's just picky about who its friends are : :' :
`. `'
`-
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Apache Maintainers <debian-apache@lists.debian.org>:
Bug#372179; Package apr-util.
(full text, mbox, link).
Acknowledgement sent to Mohammed Adnène Trojette <adn+deb@diwi.org>:
Extra info received and forwarded to list. Copy sent to Debian Apache Maintainers <debian-apache@lists.debian.org>.
(full text, mbox, link).
Message #17 received at 372179@bugs.debian.org (full text, mbox, reply):
On Wed, Jun 14, 2006, Tollef Fog Heen wrote:
> I can't reproduce this. Where's the build log available?
>
> (I also somehow doubt this -- the configure call includes
> --includedir=\$${prefix}/usr/include/apr-1.0 )
AFAIK, there is already a NMU addressing the issue in DELAYED queue.
--
adn
Mohammed Adnène Trojette
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Apache Maintainers <debian-apache@lists.debian.org>:
Bug#372179; Package apr-util.
(full text, mbox, link).
Acknowledgement sent to Tollef Fog Heen <tfheen@err.no>:
Extra info received and forwarded to list. Copy sent to Debian Apache Maintainers <debian-apache@lists.debian.org>.
(full text, mbox, link).
Message #22 received at 372179@bugs.debian.org (full text, mbox, reply):
* Mohammed Adnène Trojette
| On Wed, Jun 14, 2006, Tollef Fog Heen wrote:
| > I can't reproduce this. Where's the build log available?
| >
| > (I also somehow doubt this -- the configure call includes
| > --includedir=\$${prefix}/usr/include/apr-1.0 )
|
| AFAIK, there is already a NMU addressing the issue in DELAYED queue.
There was:
: tfheen@gluck ~/DELAYED/2-day $ rm -f libaprutil1* apr-util_1.2.7-1.1*
: tfheen@gluck ~/DELAYED/2-day $
(deleted with the uploader's consent. This seems to be a change in
behaviour in autoconf, so I'll probably reassign the bug there.)
--
Tollef Fog Heen ,''`.
UNIX is user friendly, it's just picky about who its friends are : :' :
`. `'
`-
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Apache Maintainers <debian-apache@lists.debian.org>:
Bug#372179; Package apr-util.
(full text, mbox, link).
Acknowledgement sent to Tollef Fog Heen <tfheen@err.no>:
Extra info received and forwarded to list. Copy sent to Debian Apache Maintainers <debian-apache@lists.debian.org>.
(full text, mbox, link).
Message #27 received at 372179@bugs.debian.org (full text, mbox, reply):
reassign 372179 autoconf
retitle 372179 autoconf: AC_CANONICAL_SYSTEM overwrites $@
thanks
(I'm leaving the severity of this bug since it causes build failures,
feel free to adjust if you disagree.)
It seems like the CVS snapshot of autoconf currently in unstable
overwrites $@ (it does a set x $ac_cv_target among other things).
This causes problems for apr-util since it needs to recover the
command line arguments through the APR_PARSE_ARGUMENTS macro.
--
Tollef Fog Heen ,''`.
UNIX is user friendly, it's just picky about who its friends are : :' :
`. `'
`-
Changed Bug title.
Request was from Tollef Fog Heen <tfheen@err.no>
to control@bugs.debian.org.
(full text, mbox, link).
Disconnected #372241 from all other report(s).
Request was from James Vega <jamessan@debian.org>
to control@bugs.debian.org.
(full text, mbox, link).
Tags removed: patch
Request was from Tollef Fog Heen <tfheen@debian.org>
to control@bugs.debian.org.
(full text, mbox, link).
Tags removed: patch
Request was from Tollef Fog Heen <tfheen@err.no>
to control@bugs.debian.org.
(full text, mbox, link).
Bug reopened, originator not changed.
Request was from Tollef Fog Heen <tfheen@err.no>
to control@bugs.debian.org.
(full text, mbox, link).
Information forwarded to debian-bugs-dist@lists.debian.org, Ben Pfaff <pfaffben@debian.org>:
Bug#372179; Package autoconf.
(full text, mbox, link).
Acknowledgement sent to blp@cs.stanford.edu:
Extra info received and forwarded to list. Copy sent to Ben Pfaff <pfaffben@debian.org>.
(full text, mbox, link).
Message #44 received at 372179@bugs.debian.org (full text, mbox, reply):
I've seen a flurry of Debian BTS emails around this bug, but none
of them have made it clear to me what I should do about it.
In the long term, I suspect that the Autoconf macros in the
apr-util package should be fixed, and that autoconf-doc should
document that $@ may be changed by some macros. In the short
term, I'm willing to help out, if necessary, by putting some kind
of Debian-specific patch that saves and restores the positional
parameters (if indeed there's a way to do that) around
AC_CANONICAL_SYSTEM.
What would you prefer?
--
"I don't want to learn the constitution and the declaration of
independence (marvelous poetry though it be) by heart, and worship the
flag and believe that there is a god and the dollar is its prophet."
--Maarten Wiltink in the Monastery
Information forwarded to debian-bugs-dist@lists.debian.org, Ben Pfaff <pfaffben@debian.org>:
Bug#372179; Package autoconf.
(full text, mbox, link).
Acknowledgement sent to Paul Eggert <eggert@CS.UCLA.EDU>:
Extra info received and forwarded to list. Copy sent to Ben Pfaff <pfaffben@debian.org>.
(full text, mbox, link).
Message #49 received at 372179@bugs.debian.org (full text, mbox, reply):
Ben Pfaff <blp@cs.stanford.edu> writes:
> In the long term, I suspect that the Autoconf macros in the
> apr-util package should be fixed, and that autoconf-doc should
> document that $@ may be changed by some macros.
I've done the latter by installing the patch at the end of this
message into Autoconf CVS.
> In the short term, I'm willing to help out, if necessary, by putting
> some kind of Debian-specific patch that saves and restores the
> positional parameters (if indeed there's a way to do that) around
> AC_CANONICAL_SYSTEM.
I don't know of any portable, reliable way to do it in general,
but you can approximate it by doing something like this:
# Save "$@".
args=
for arg
do
case $arg in
*\'*) arg=`echo "$arg" | sed "s/'/'\\\\\\\\''/g"`;;
esac
args="$args '$arg'"
done
# Restore "$@".
eval set x $args
shift
But even this isn't correct in general, e.g., it mishandles args
containing backslashes, or equal to '-n', or with trailing newlines.
Here's the patch I installed.
2006-06-14 Paul Eggert <eggert@cs.ucla.edu>
* doc/autoconf.texi (Initializing configure, Shell Substitutions):
Warn about $@ not persisting. Problem reported by Julien Danjou in
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=372179>.
--- doc/autoconf.texi 14 Jun 2006 05:14:09 -0000 1.1044
+++ doc/autoconf.texi 14 Jun 2006 19:11:21 -0000
@@ -1747,6 +1747,14 @@ Exactly @var{bug-report}.
@end table
@end defmac
+If your @command{configure} script does its own option processing, it
+should inspect @samp{$@@} or @samp{$*} immediately after calling
+@code{AC_INIT}, because other Autoconf macros liberally use the
+@command{set} command to process strings, and this has the side effect
+of updating @samp{$@@} and @samp{$*}. However, we suggest that you use
+standard macros like @code{AC_ARG_ENABLE} instead of attempting to
+implement your own option processing. @xref{Site Configuration}.
+
@node Notices
@section Notices in @command{configure}
@@ -11297,6 +11305,11 @@ case $# in
esac
@end example
+Autocoonf macros often use the @command{set} command to update
+@samp{$@@}, so if you are writing shell code intended for
+@command{configure} you should not assume that the value of @samp{$@@}
+persists for any length of time.
+
@item $@{10@}
@cindex positional parameters
Information forwarded to debian-bugs-dist@lists.debian.org, Ben Pfaff <pfaffben@debian.org>:
Bug#372179; Package autoconf.
(full text, mbox, link).
Acknowledgement sent to blp@cs.stanford.edu:
Extra info received and forwarded to list. Copy sent to Ben Pfaff <pfaffben@debian.org>.
(full text, mbox, link).
Message #54 received at 372179@bugs.debian.org (full text, mbox, reply):
reassign 372179 autoconf-doc
thanks
Tollef Fog Heen <tfheen@err.no> described this bug as follows:
It seems like the CVS snapshot of autoconf currently in unstable
overwrites $@ (it does a set x $ac_cv_target among other things).
This causes problems for apr-util since it needs to recover the
command line arguments through the APR_PARSE_ARGUMENTS macro.
Later, I summarized my preferred fix as follows:
In the long term, I suspect that the Autoconf macros in the
apr-util package should be fixed, and that autoconf-doc should
document that $@ may be changed by some macros.
Then Paul Eggert <eggert@CS.UCLA.EDU> installed such a patch into
the Autoconf CVS for the documentation, adding the following
paragraphs:
If your @command{configure} script does its own option processing, it
should inspect @samp{$@@} or @samp{$*} immediately after calling
@code{AC_INIT}, because other Autoconf macros liberally use the
@command{set} command to process strings, and this has the side effect
of updating @samp{$@@} and @samp{$*}. However, we suggest that you use
standard macros like @code{AC_ARG_ENABLE} instead of attempting to
implement your own option processing. @xref{Site Configuration}.
...
Autocoonf macros often use the @command{set} command to update
@samp{$@@}, so if you are writing shell code intended for
@command{configure} you should not assume that the value of @samp{$@@}
persists for any length of time.
So I am reassigning this bug to autoconf-doc, in hopes that it
can soon be refreshed from Autoconf CVS.
--
Ben Pfaff
email: blp@cs.stanford.edu
web: http://benpfaff.org
Information forwarded to debian-bugs-dist@lists.debian.org, Henrique de Moraes Holschuh <hmh@debian.org>:
Bug#372179; Package autoconf-doc.
(full text, mbox, link).
Acknowledgement sent to Tollef Fog Heen <tfheen@err.no>:
Extra info received and forwarded to list. Copy sent to Henrique de Moraes Holschuh <hmh@debian.org>.
(full text, mbox, link).
Message #61 received at 372179@bugs.debian.org (full text, mbox, reply):
dev@apr people: This is Debian bug report #372179, available at
http://bugs.debian.org/372179 . Autoconf sometime after 2.59 changed
the behaviour of AC_CANONICAL_SYSTEM in a way that mangles $@. This
causes problems for APR_PARSE_ARGUMENTS which makes for hilarious
build failures when using --includedir and --with-layout (as done in
the Debian packages of apr and apr-util, for instance)
* Ben Pfaff
| I've seen a flurry of Debian BTS emails around this bug, but none
| of them have made it clear to me what I should do about it.
I'm unsure what the right fix is, apart from «make autoconf stop
mangling $@» or «make apr and apr-util not need to reparse $@».
| In the long term, I suspect that the Autoconf macros in the
| apr-util package should be fixed, and that autoconf-doc should
| document that $@ may be changed by some macros. In the short
| term, I'm willing to help out, if necessary, by putting some kind
| of Debian-specific patch that saves and restores the positional
| parameters (if indeed there's a way to do that) around
| AC_CANONICAL_SYSTEM.
Apart from the «ewww» factor, why can't it do its work in a subshell
and echo back the parameters to be set and those get eval-ed by
configure?
I too suspect that the apr macros should be fixed to not rely on $@,
but this was a sudden and unannounced change in the Debian packages
without a significant bump in the version number. (Personally, I'd
treat this as an API bump and increase version number and possibly
package name similarly, but I guess not everybody'll agree with me
there.)
Also, please Cc me on replies as I don't read bug-autoconf or
dev@apr.
--
Tollef Fog Heen ,''`.
UNIX is user friendly, it's just picky about who its friends are : :' :
`. `'
`-
Information forwarded to debian-bugs-dist@lists.debian.org, Henrique de Moraes Holschuh <hmh@debian.org>:
Bug#372179; Package autoconf-doc.
(full text, mbox, link).
Acknowledgement sent to blp@cs.stanford.edu:
Extra info received and forwarded to list. Copy sent to Henrique de Moraes Holschuh <hmh@debian.org>.
(full text, mbox, link).
Message #66 received at 372179@bugs.debian.org (full text, mbox, reply):
Tollef Fog Heen <tfheen@err.no> writes:
> I too suspect that the apr macros should be fixed to not rely on $@,
> but this was a sudden and unannounced change in the Debian packages
> without a significant bump in the version number. (Personally, I'd
> treat this as an API bump and increase version number and possibly
> package name similarly, but I guess not everybody'll agree with me
> there.)
The API is largely the same with a few small exceptions, this one
being one that we were unaware of in advance. The other
exceptions are either very minor or not a problem if the advice
in the Autoconf manual is followed.
--
Ben Pfaff
email: blp@cs.stanford.edu
web: http://benpfaff.org
Information forwarded to debian-bugs-dist@lists.debian.org, Henrique de Moraes Holschuh <hmh@debian.org>:
Bug#372179; Package autoconf-doc.
(full text, mbox, link).
Acknowledgement sent to Paul Eggert <eggert@CS.UCLA.EDU>:
Extra info received and forwarded to list. Copy sent to Henrique de Moraes Holschuh <hmh@debian.org>.
(full text, mbox, link).
Message #71 received at 372179@bugs.debian.org (full text, mbox, reply):
Tollef Fog Heen <tfheen@err.no> writes:
> Apart from the «ewww» factor, why can't it do its work in a subshell
> and echo back the parameters to be set and those get eval-ed by
> configure?
Yes, something like that might work, given that you know the values
can't contain "'" (though you should probably check this).
It's unlikely that we'll buy the change back into Autoconf, though.
Information forwarded to debian-bugs-dist@lists.debian.org, Henrique de Moraes Holschuh <hmh@debian.org>:
Bug#372179; Package autoconf-doc.
(full text, mbox, link).
Acknowledgement sent to "Justin Erenkrantz" <justin@erenkrantz.com>:
Extra info received and forwarded to list. Copy sent to Henrique de Moraes Holschuh <hmh@debian.org>.
(full text, mbox, link).
Message #76 received at 372179@bugs.debian.org (full text, mbox, reply):
On 6/15/06, Paul Eggert <eggert@cs.ucla.edu> wrote:
> Tollef Fog Heen <tfheen@err.no> writes:
>
> > Apart from the «ewww» factor, why can't it do its work in a subshell
> > and echo back the parameters to be set and those get eval-ed by
> > configure?
>
> Yes, something like that might work, given that you know the values
> can't contain "'" (though you should probably check this).
>
> It's unlikely that we'll buy the change back into Autoconf, though.
The point of our autoconf macro is to allow 'shortcuts', such that the argument
--with-layout=Foo
rewrites prefix/libexec/etc to a specific set of values (dictated by
our file config.layout) and then have explicit passed parameters
override those 'layout' files.
It looks like you switched the docs to recomend using AC_ARG_ENABLE,
but I'm not sure how that would address our issue.
We might be able to delay the AC_CANONICAL_SYSTEM invocation until
after we process the layout options - but I seem to recall a reason
why we delayed invoking those macros.
Thanks. -- justin
Information forwarded to debian-bugs-dist@lists.debian.org, Henrique de Moraes Holschuh <hmh@debian.org>:
Bug#372179; Package autoconf-doc.
(full text, mbox, link).
Acknowledgement sent to Ralf Wildenhues <Ralf.Wildenhues@gmx.de>:
Extra info received and forwarded to list. Copy sent to Henrique de Moraes Holschuh <hmh@debian.org>.
(full text, mbox, link).
Message #81 received at 372179@bugs.debian.org (full text, mbox, reply):
Hello Justin, Tollef, everyone,
* Justin Erenkrantz wrote on Fri, Jun 16, 2006 at 09:12:11PM CEST:
>
> The point of our autoconf macro is to allow 'shortcuts', such that the
> argument
>
> --with-layout=Foo
>
> rewrites prefix/libexec/etc to a specific set of values (dictated by
> our file config.layout) and then have explicit passed parameters
> override those 'layout' files.
Yes. But I think you would agree that having your own parsing routine
that is almost a complete copy of the Autoconf one is not a common,
usual way of using Autoconf, and that it's not encouraged by the
Autoconf documentation to override the settings this way, nor do your
own argument parsing at all. Right? The common way to do argument
parsing with Autoconf is to use AC_ARG_WITH and AC_ARG_ENABLE.
(Note I'm not arguing the usefulness of doing so for your needs; in
fact, I understand that you do this. But if you want to be able to rely
on Autoconf upgrades to not break your setup, you should push for
changes to Autoconf itself so it provides enough interfaces so you don't
need to do your own parsing. It's just not natural to do so.)
> It looks like you switched the docs to recomend using AC_ARG_ENABLE,
> but I'm not sure how that would address our issue.
Paul pointed out that $@ won't stay constant througout the configure
script. In fact, this has never been guaranteed. Apr was just lucky
enough not to have been hit by it, and Autoconf wasn't careful enough to
document that there is no such guarantee. (Although strictly speaking,
one may argue that since the Autoconf manual doesn't give such a
guarantee, you should not assume it.) Paul now fixed the documentation
to state this non-guarantee more prominently (the mention of
AC_ARG_ENABLE is just a hint at the macros to use instead).
Let me repeat what I wrote in an earlier message in this bug report[1]:
The AC_CHECK_PROG macro (for example) has overwritten the positional
parameters _for years_, at least since Autoconf-2.13. From a pure
Autoconf view, and I'm exaggerating here on purpose, relying on $@ to
remain constant over the course of the configure script is akin to
relying on "undefined behavior" in C. Now we all know there is a world
of difference between a well-defined language such as C, and a mostly
not so well defined language such as Autoconf-on-top-of-portable-Shell.
But to speak of a major unexpected change as has been done in this bug
report seems a bit exaggerated to me. I would even find a NEWS entry
for this change in AC_CANONICAL_SYSTEM to be more than necessary.
> We might be able to delay the AC_CANONICAL_SYSTEM invocation until
> after we process the layout options - but I seem to recall a reason
> why we delayed invoking those macros.
As as decent workaround, you could just save the positional parameters
early after AC_INIT and restore them when you need them; good code to
this end has already been posted in this bug report as well, see [2].
I see absolutely no need for Autoconf to do more for this bug.
* Tollef Fog Heen <tfheen@err.no> wrote:
> | [...] putting some kind
> | of Debian-specific patch that saves and restores the positional
> | parameters (if indeed there's a way to do that) around
> | AC_CANONICAL_SYSTEM.
>
> Apart from the «ewww» factor, why can't it do its work in a subshell
> and echo back the parameters to be set and those get eval-ed by
> configure?
Because configure scripts are slow enough as they are; a subshell is a
noticeable slowdown when done several times. Because avoiding echoing
avoids the unportabilites of echo. Doing away with modifing $@ in
general is needlessly limiting us to not be able to make efficient use
of the only array variable that is available in Shell programming.[3]
I hope this clears things up enough.
Cheers,
Ralf
[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=372179
[2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=372179#msg49
[3] Eventually, Autoconf will make use of shell functions. At that time
you will have no chance to have $@ survive the first shell function
invocation portably (some older shells do not restore $@ after a
function returns; I'm not sure whether they will be of concern any
more then or not). So really the guarantee Paul gave in the message
above is probably even stronger than we can give.
Information forwarded to debian-bugs-dist@lists.debian.org, Henrique de Moraes Holschuh <hmh@debian.org>:
Bug#372179; Package autoconf-doc.
(full text, mbox, link).
Acknowledgement sent to Tollef Fog Heen <tfheen@err.no>:
Extra info received and forwarded to list. Copy sent to Henrique de Moraes Holschuh <hmh@debian.org>.
(full text, mbox, link).
Message #86 received at 372179@bugs.debian.org (full text, mbox, reply):
(Trimmed Cc list a fair bit)
* Ralf Wildenhues
| Hello Justin, Tollef, everyone,
|
| * Justin Erenkrantz wrote on Fri, Jun 16, 2006 at 09:12:11PM CEST:
| >
| > The point of our autoconf macro is to allow 'shortcuts', such that the
| > argument
| >
| > --with-layout=Foo
| >
| > rewrites prefix/libexec/etc to a specific set of values (dictated by
| > our file config.layout) and then have explicit passed parameters
| > override those 'layout' files.
|
| Yes. But I think you would agree that having your own parsing routine
| that is almost a complete copy of the Autoconf one is not a common,
| usual way of using Autoconf, and that it's not encouraged by the
| Autoconf documentation to override the settings this way, nor do your
| own argument parsing at all. Right? The common way to do argument
| parsing with Autoconf is to use AC_ARG_WITH and AC_ARG_ENABLE.
I think the problem with that is APR wants a way to switch the
defaults for prefix, exec_prefix, etc. Autoconf provides a set of
defaults here. Those can be overridden by passing --prefix=,
--exec-prefix=, etc to the configure script. For APR's --with-layout
option to work correctly, it must be able to hook in between the
defaults setup code and the option parsing code. Except that means it
needs to parse the command line arguments itself (which isn't really a
big deal when it's just looking for --with-layout=$opt or
--enable-layout=$opt, but still a bit wrong).
So, since this is hard and would require APR to reimplement parts of
autoconf (the option-parsing code as well as doing the necessary hacks
to get --with-layout into the --help output, for instance), it's not
really an option.
Currently, if configure is passed --sbindir=, it just overrides
$sbindir without flagging that at all. If it, in addition to changing
$sbindir, it'd set ac_param_sbindir either to 1 to show that sbindir
is derviced from a command line argument or to the value passed on the
command line. If we had this, APR_LAYOUT could check if
ac_param_sbindir was set, and if so skip setting sbindir from the
layout.
Would this be an acceptable solution for both the APR and the autoconf
people?
--
Tollef Fog Heen ,''`.
UNIX is user friendly, it's just picky about who its friends are : :' :
`. `'
`-
Information forwarded to debian-bugs-dist@lists.debian.org, Henrique de Moraes Holschuh <hmh@debian.org>:
Bug#372179; Package autoconf-doc.
(full text, mbox, link).
Acknowledgement sent to "Justin Erenkrantz" <justin@erenkrantz.com>:
Extra info received and forwarded to list. Copy sent to Henrique de Moraes Holschuh <hmh@debian.org>.
(full text, mbox, link).
Message #91 received at 372179@bugs.debian.org (full text, mbox, reply):
On 6/18/06, Tollef Fog Heen <tfheen@err.no> wrote:
> Currently, if configure is passed --sbindir=, it just overrides
> $sbindir without flagging that at all. If it, in addition to changing
> $sbindir, it'd set ac_param_sbindir either to 1 to show that sbindir
> is derviced from a command line argument or to the value passed on the
> command line. If we had this, APR_LAYOUT could check if
> ac_param_sbindir was set, and if so skip setting sbindir from the
> layout.
>
> Would this be an acceptable solution for both the APR and the autoconf
> people?
That could work for our purposes, yes. It'd be cleaner to boot, too. -- justin
Information forwarded to debian-bugs-dist@lists.debian.org, Henrique de Moraes Holschuh <hmh@debian.org>:
Bug#372179; Package autoconf-doc.
(full text, mbox, link).
Acknowledgement sent to Ralf Wildenhues <wildenhues@ins.uni-bonn.de>:
Extra info received and forwarded to list. Copy sent to Henrique de Moraes Holschuh <hmh@debian.org>.
(full text, mbox, link).
Message #96 received at 372179@bugs.debian.org (full text, mbox, reply):
Hello Justin, Tollef,
* Justin Erenkrantz wrote on Sun, Jun 18, 2006 at 11:40:12PM CEST:
> On 6/18/06, Tollef Fog Heen <tfheen@err.no> wrote:
> >Currently, if configure is passed --sbindir=, it just overrides
> >$sbindir without flagging that at all. If it, in addition to changing
> >$sbindir, it'd set ac_param_sbindir either to 1 to show that sbindir
> >is derviced from a command line argument or to the value passed on the
> >command line. If we had this, APR_LAYOUT could check if
> >ac_param_sbindir was set, and if so skip setting sbindir from the
> >layout.
> >
> >Would this be an acceptable solution for both the APR and the autoconf
> >people?
>
> That could work for our purposes, yes. It'd be cleaner to boot, too.
So what do you do with
--bindir=/foo --with-layout=bar --sbindir=/baz
shouldn't the bar layout override bindir but not sbindir? (Note I don't
know the exact semantics --with-layout is supposed to have.)
BTW, all of the apr_common.m4 code and your .in files anyway need an
audit pass to cope with the GCS-induced changes for --datarootdir and
its consequences; see the Autoconf NEWS entries and the manual about
the changed default directories (and new ones).
Cheers,
Ralf
Information forwarded to debian-bugs-dist@lists.debian.org, Henrique de Moraes Holschuh <hmh@debian.org>:
Bug#372179; Package autoconf-doc.
(full text, mbox, link).
Acknowledgement sent to Tollef Fog Heen <tfheen@err.no>:
Extra info received and forwarded to list. Copy sent to Henrique de Moraes Holschuh <hmh@debian.org>.
(full text, mbox, link).
Message #101 received at 372179@bugs.debian.org (full text, mbox, reply):
* Ralf Wildenhues
| Hello Justin, Tollef,
|
| * Justin Erenkrantz wrote on Sun, Jun 18, 2006 at 11:40:12PM CEST:
| > On 6/18/06, Tollef Fog Heen <tfheen@err.no> wrote:
| > >Currently, if configure is passed --sbindir=, it just overrides
| > >$sbindir without flagging that at all. If it, in addition to changing
| > >$sbindir, it'd set ac_param_sbindir either to 1 to show that sbindir
| > >is derviced from a command line argument or to the value passed on the
| > >command line. If we had this, APR_LAYOUT could check if
| > >ac_param_sbindir was set, and if so skip setting sbindir from the
| > >layout.
| > >
| > >Would this be an acceptable solution for both the APR and the autoconf
| > >people?
| >
| > That could work for our purposes, yes. It'd be cleaner to boot, too.
|
| So what do you do with
| --bindir=/foo --with-layout=bar --sbindir=/baz
|
| shouldn't the bar layout override bindir but not sbindir? (Note I don't
| know the exact semantics --with-layout is supposed to have.)
IMO, command line ordering shouldn't matter, unless you do
--bindir=/foo --bindir=/bar. --with-layout just changes the defaults,
it doesn't override the state you're currently in.
--
Tollef Fog Heen ,''`.
UNIX is user friendly, it's just picky about who its friends are : :' :
`. `'
`-
Information forwarded to debian-bugs-dist@lists.debian.org, Henrique de Moraes Holschuh <hmh@debian.org>:
Bug#372179; Package autoconf-doc.
(full text, mbox, link).
Acknowledgement sent to "Justin Erenkrantz" <justin@erenkrantz.com>:
Extra info received and forwarded to list. Copy sent to Henrique de Moraes Holschuh <hmh@debian.org>.
(full text, mbox, link).
Message #106 received at 372179@bugs.debian.org (full text, mbox, reply):
On 6/19/06, Tollef Fog Heen <tfheen@err.no> wrote:
> * Ralf Wildenhues
>
> | Hello Justin, Tollef,
> |
> | * Justin Erenkrantz wrote on Sun, Jun 18, 2006 at 11:40:12PM CEST:
> | > On 6/18/06, Tollef Fog Heen <tfheen@err.no> wrote:
> | > >Currently, if configure is passed --sbindir=, it just overrides
> | > >$sbindir without flagging that at all. If it, in addition to changing
> | > >$sbindir, it'd set ac_param_sbindir either to 1 to show that sbindir
> | > >is derviced from a command line argument or to the value passed on the
> | > >command line. If we had this, APR_LAYOUT could check if
> | > >ac_param_sbindir was set, and if so skip setting sbindir from the
> | > >layout.
> | > >
> | > >Would this be an acceptable solution for both the APR and the autoconf
> | > >people?
> | >
> | > That could work for our purposes, yes. It'd be cleaner to boot, too.
> |
> | So what do you do with
> | --bindir=/foo --with-layout=bar --sbindir=/baz
> |
> | shouldn't the bar layout override bindir but not sbindir? (Note I don't
> | know the exact semantics --with-layout is supposed to have.)
>
> IMO, command line ordering shouldn't matter, unless you do
> --bindir=/foo --bindir=/bar. --with-layout just changes the defaults,
> it doesn't override the state you're currently in.
Correct. Anything explicitly provided on the command-line is
literally respected - the layout file just allows the user to change
autoconf's defaults in a straightforward manner. -- justin
Information forwarded to debian-bugs-dist@lists.debian.org, Henrique de Moraes Holschuh <hmh@debian.org>:
Bug#372179; Package autoconf-doc.
(full text, mbox, link).
Acknowledgement sent to Ralf Wildenhues <wildenhues@ins.uni-bonn.de>:
Extra info received and forwarded to list. Copy sent to Henrique de Moraes Holschuh <hmh@debian.org>.
(full text, mbox, link).
Message #111 received at 372179@bugs.debian.org (full text, mbox, reply):
* Justin Erenkrantz wrote on Mon, Jun 19, 2006 at 06:17:49PM CEST:
> On 6/19/06, Tollef Fog Heen <tfheen@err.no> wrote:
> >| > On 6/18/06, Tollef Fog Heen <tfheen@err.no> wrote:
> >| > >Currently, if configure is passed --sbindir=, it just overrides
> >| > >$sbindir without flagging that at all. If it, in addition to changing
> >| > >$sbindir, it'd set ac_param_sbindir either to 1 to show that sbindir
> >| > >is derviced from a command line argument or to the value passed on the
> >| > >command line.
> >| > >Would this be an acceptable solution for both the APR and the autoconf
> >| > >people?
> >IMO, command line ordering shouldn't matter, unless you do
> >--bindir=/foo --bindir=/bar. --with-layout just changes the defaults,
> >it doesn't override the state you're currently in.
> Anything explicitly provided on the command-line is
> literally respected - the layout file just allows the user to change
> autoconf's defaults in a straightforward manner. -- justin
I'm still a bit unsure whether and how Autoconf should support this.
I would prefer to not have to make up my mind before the 2.60 release,
about whether this approach is consistent or can be made so, long-term
maintainable, and generally useful.
That said, below is a patch to achieve something along the above idea;
it sets
ac_param_FOO_set
to yes for every assignment of FOO that resulted from a command line
option. I suggest not documenting this interface for now.
What do the other Autoconf developers think about this? Safe enough to
apply now, or postpone until after 2.60 (and require the APR people to
keep (ab)using Autoconf internal interfaces, and dragging along a
modified version of the _AC_INIT_PARSE_ARGS macro)?
Cheers,
Ralf
* lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Extend state
machine to set `ac_param_${ac_option}_set' to `yes' for each
option that is set on the command line.
Suggested by Tollef Fog Heen <tfheen@err.no>.
Index: lib/autoconf/general.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/general.m4,v
retrieving revision 1.925
diff -u -r1.925 general.m4
--- lib/autoconf/general.m4 7 Jun 2006 05:35:46 -0000 1.925
+++ lib/autoconf/general.m4 21 Jun 2006 18:50:24 -0000
@@ -578,7 +578,7 @@
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
+ eval "$ac_prev=\$ac_option; ac_param_${ac_prev}_set=yes"
ac_prev=
continue
fi
@@ -588,6 +588,8 @@
*) ac_optarg=yes ;;
esac
+ ac_assign=no
+
# Accept the important Cygnus configure options, so we can diagnose typos.
case $ac_dashdash$ac_option in
@@ -597,34 +599,34 @@
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
+ ac_assign=bindir ;;
-build | --build | --buil | --bui | --bu)
ac_prev=build_alias ;;
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
+ ac_assign=build_alias ;;
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
+ ac_assign=cache_file ;;
--config-cache | -C)
- cache_file=config.cache ;;
+ ac_assign=cache_file; ac_optarg=config.cache ;;
-datadir | --datadir | --datadi | --datad)
ac_prev=datadir ;;
-datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
+ ac_assign=datadir ;;
-datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
| --dataroo | --dataro | --datar)
ac_prev=datarootdir ;;
-datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
| --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
+ ac_assign=datarootdir ;;
-disable-* | --disable-*)
ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
@@ -632,17 +634,17 @@
expr "x$ac_feature" : "[.*[^-_$as_cr_alnum]]" >/dev/null &&
AC_MSG_ERROR([invalid feature name: $ac_feature])
ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- eval enable_$ac_feature=no ;;
+ ac_assign=enable_$ac_feature; ac_optarg=no ;;
-docdir | --docdir | --docdi | --doc | --do)
ac_prev=docdir ;;
-docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
+ ac_assign=docdir ;;
-dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
ac_prev=dvidir ;;
-dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
+ ac_assign=dvidir ;;
-enable-* | --enable-*)
ac_feature=`expr "x$ac_option" : 'x-*enable-\([[^=]]*\)'`
@@ -650,7 +652,7 @@
expr "x$ac_feature" : "[.*[^-_$as_cr_alnum]]" >/dev/null &&
AC_MSG_ERROR([invalid feature name: $ac_feature])
ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- eval enable_$ac_feature=\$ac_optarg ;;
+ ac_assign=enable_$ac_feature ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
@@ -659,82 +661,82 @@
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
| --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
+ ac_assign=exec_prefix ;;
-gas | --gas | --ga | --g)
# Obsolete; use --with-gas.
- with_gas=yes ;;
+ ac_assign=with_gas ;;
-help | --help | --hel | --he | -h)
- ac_init_help=long ;;
+ ac_assign=ac_init_help; ac_optarg=long ;;
-help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
+ ac_assign=ac_init_help; ac_optarg=recursive ;;
-help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
+ ac_assign=ac_init_help; ac_optarg=short ;;
-host | --host | --hos | --ho)
ac_prev=host_alias ;;
-host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
+ ac_assign=host_alias ;;
-htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
ac_prev=htmldir ;;
-htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
| --ht=*)
- htmldir=$ac_optarg ;;
+ ac_assign=htmldir ;;
-includedir | --includedir | --includedi | --included | --include \
| --includ | --inclu | --incl | --inc)
ac_prev=includedir ;;
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
| --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
+ ac_assign=includedir ;;
-infodir | --infodir | --infodi | --infod | --info | --inf)
ac_prev=infodir ;;
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
+ ac_assign=infodir ;;
-libdir | --libdir | --libdi | --libd)
ac_prev=libdir ;;
-libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
+ ac_assign=libdir ;;
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
| --libexe | --libex | --libe)
ac_prev=libexecdir ;;
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
| --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
+ ac_assign=libexecdir ;;
-localedir | --localedir | --localedi | --localed | --locale)
ac_prev=localedir ;;
-localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
+ ac_assign=localedir ;;
-localstatedir | --localstatedir | --localstatedi | --localstated \
| --localstate | --localstat | --localsta | --localst | --locals)
ac_prev=localstatedir ;;
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
| --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
+ ac_assign=localstatedir ;;
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
ac_prev=mandir ;;
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
+ ac_assign=mandir ;;
-nfp | --nfp | --nf)
# Obsolete; use --without-fp.
- with_fp=no ;;
+ ac_assign=with_fp; ac_optarg=no ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c | -n)
- no_create=yes ;;
+ ac_assign=no_create ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
+ ac_assign=no_recursion ;;
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
@@ -743,26 +745,26 @@
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
+ ac_assign=oldincludedir ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
+ ac_assign=prefix ;;
-program-prefix | --program-prefix | --program-prefi | --program-pref \
| --program-pre | --program-pr | --program-p)
ac_prev=program_prefix ;;
-program-prefix=* | --program-prefix=* | --program-prefi=* \
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
+ ac_assign=program_prefix ;;
-program-suffix | --program-suffix | --program-suffi | --program-suff \
| --program-suf | --program-su | --program-s)
ac_prev=program_suffix ;;
-program-suffix=* | --program-suffix=* | --program-suffi=* \
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
+ ac_assign=program_suffix ;;
-program-transform-name | --program-transform-name \
| --program-transform-nam | --program-transform-na \
@@ -779,27 +781,27 @@
| --program-transfo=* | --program-transf=* \
| --program-trans=* | --program-tran=* \
| --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
+ ac_assign=program_transform_name ;;
-pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
ac_prev=pdfdir ;;
-pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
+ ac_assign=pdfdir ;;
-psdir | --psdir | --psdi | --psd | --ps)
ac_prev=psdir ;;
-psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
+ ac_assign=psdir ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
+ ac_assign=silent ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
| --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
+ ac_assign=sbindir ;;
-sharedstatedir | --sharedstatedir | --sharedstatedi \
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
@@ -810,35 +812,35 @@
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
| --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
+ ac_assign=sharedstatedir ;;
-site | --site | --sit)
ac_prev=site ;;
-site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
+ ac_assign=site ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
+ ac_assign=srcdir ;;
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
| --syscon | --sysco | --sysc | --sys | --sy)
ac_prev=sysconfdir ;;
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
+ ac_assign=sysconfdir ;;
-target | --target | --targe | --targ | --tar | --ta | --t)
ac_prev=target_alias ;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
+ ac_assign=target_alias ;;
-v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
+ ac_assign=verbose ;;
-version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
+ ac_assign=ac_init_version; ac_optarg=: ;;
-with-* | --with-*)
ac_package=`expr "x$ac_option" : 'x-*with-\([[^=]]*\)'`
@@ -846,7 +848,7 @@
expr "x$ac_package" : "[.*[^-_$as_cr_alnum]]" >/dev/null &&
AC_MSG_ERROR([invalid package name: $ac_package])
ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval with_$ac_package=\$ac_optarg ;;
+ ac_assign=with_$ac_package ;;
-without-* | --without-*)
ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
@@ -854,25 +856,25 @@
expr "x$ac_package" : "[.*[^-_$as_cr_alnum]]" >/dev/null &&
AC_MSG_ERROR([invalid package name: $ac_package])
ac_package=`echo $ac_package | sed 's/-/_/g'`
- eval with_$ac_package=no ;;
+ ac_assign=with_$ac_package; ac_optarg=no ;;
--x)
# Obsolete; use --with-x.
- with_x=yes ;;
+ ac_assign=with_x ;;
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
| --x-incl | --x-inc | --x-in | --x-i)
ac_prev=x_includes ;;
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
+ ac_assign=x_includes ;;
-x-libraries | --x-libraries | --x-librarie | --x-librari \
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
ac_prev=x_libraries ;;
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
+ ac_assign=x_libraries ;;
-*) AC_MSG_ERROR([unrecognized option: $ac_option
Try `$[0] --help' for more information.])
@@ -883,7 +885,7 @@
# Reject names that are not valid shell variable names.
expr "x$ac_envvar" : "[.*[^_$as_cr_alnum]]" >/dev/null &&
AC_MSG_ERROR([invalid variable name: $ac_envvar])
- eval $ac_envvar=\$ac_optarg
+ eval "$ac_envvar=\$ac_optarg; ac_param_${ac_envvar}_set=yes"
export $ac_envvar ;;
*)
@@ -895,6 +897,11 @@
;;
esac
+
+ case $ac_assign in
+ no) ;;
+ *) eval "$ac_assign=\$ac_optarg; ac_param_${ac_assign}_set=yes" ;;
+ esac
done
if test -n "$ac_prev"; then
Information forwarded to debian-bugs-dist@lists.debian.org, Henrique de Moraes Holschuh <hmh@debian.org>:
Bug#372179; Package autoconf-doc.
(full text, mbox, link).
Acknowledgement sent to Paul Eggert <eggert@CS.UCLA.EDU>:
Extra info received and forwarded to list. Copy sent to Henrique de Moraes Holschuh <hmh@debian.org>.
(full text, mbox, link).
Message #116 received at 372179@bugs.debian.org (full text, mbox, reply):
Ralf Wildenhues <wildenhues@ins.uni-bonn.de> writes:
> What do the other Autoconf developers think about this? Safe enough to
> apply now, or postpone until after 2.60 (and require the APR people to
> keep (ab)using Autoconf internal interfaces, and dragging along a
> modified version of the _AC_INIT_PARSE_ARGS macro)?
Personally, I'd wait. Even if you say the new interface is
undocumented and unsupported, if you publish 2.60 that way, either
people will switch from the old undocumented method to the new
undocumented method (in which case you're stuck with the new one, and
you don't want this), or people will not switch (in which case why
bother?).
Severity set to `important' from `serious'
Request was from Henrique de Moraes Holschuh <hmh@debian.org>
to control@bugs.debian.org.
(full text, mbox, link).
Reply sent
to Russ Allbery <rra@debian.org>:
You have taken responsibility.
(Fri, 13 Mar 2009 06:15:10 GMT) (full text, mbox, link).
Notification sent
to Julien Danjou <acid@debian.org>:
Bug acknowledged by developer.
(Fri, 13 Mar 2009 06:15:10 GMT) (full text, mbox, link).
Message #123 received at 372179-close@bugs.debian.org (full text, mbox, reply):
Source: autoconf-nonfree
Source-Version: 2.63-1
We believe that the bug you reported is fixed in the latest version of
autoconf-nonfree, which is due to be installed in the Debian FTP archive:
autoconf-doc_2.63-1_all.deb
to pool/non-free/a/autoconf-nonfree/autoconf-doc_2.63-1_all.deb
autoconf-nonfree_2.63-1.diff.gz
to pool/non-free/a/autoconf-nonfree/autoconf-nonfree_2.63-1.diff.gz
autoconf-nonfree_2.63-1.dsc
to pool/non-free/a/autoconf-nonfree/autoconf-nonfree_2.63-1.dsc
autoconf-nonfree_2.63.orig.tar.gz
to pool/non-free/a/autoconf-nonfree/autoconf-nonfree_2.63.orig.tar.gz
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 372179@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Russ Allbery <rra@debian.org> (supplier of updated autoconf-nonfree package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.8
Date: Thu, 12 Mar 2009 19:42:25 -0700
Source: autoconf-nonfree
Binary: autoconf-doc
Architecture: source all
Version: 2.63-1
Distribution: unstable
Urgency: low
Maintainer: Russ Allbery <rra@debian.org>
Changed-By: Russ Allbery <rra@debian.org>
Description:
autoconf-doc - automatic configure script builder documentation
Closes: 179086 298504 325861 372179 376838 401648 447861
Changes:
autoconf-nonfree (2.63-1) unstable; urgency=low
.
* New maintainer with the permission of the previous maintainer.
* New upstream release. (Closes: #447861)
- info autoconf now goes to the top of the manual. (Closes: #401648)
- The requirement of special handling of $@ in configure.ac scripts is
now documented. (Closes: #372179)
- AC_PATH_XTRA works differently in current versions of Autoconf and
the documentation now correctly reflects that. (Closes: #298504)
- The AC_COMPILE_IFELSE synopsis uses more accurate argument names.
(Closes: #325861)
- autoheader AC_DEFINE_UNQUOTED limitations with non-literal symbols
are now documented. (Closes: #179086)
* Build PDF and PostScript versions of the Autoconf manual in addition
to info and HTML, and add the required build dependencies.
* Depend on gnu-standards and symlink the standards PDF and HTML files
so that document links work properly. (Closes: #376838)
* Install upstream AUTHORS and THANKS files.
* Update the README.Debian to warn that this manual may not always match
the separately-maintained autoconf package and to strengthen the
pointer to the autotools-dev documentation.
* Rewrite the doc-base configuration file.
- Change the document ID to just autoconf.
- Expand the abstract based on the upstream manual introduction.
- Update the doc-base section.
- Add the info, PDF, and PostScript formats.
* Rewrite the long package description and remove details that are more
appropriate for the main autoconf package.
* Add a Homepage control field.
* Add Vcs-Git and Vcs-Browser control fields.
* Remove suggest of autobook, which is no longer in Debian.
* Remove suggest of autoconf and autoconf-archive. These packages are
related but don't add additional functionality to the documentation
and hence in my opinion don't qualify for Suggests.
* Remove ancient Conflicts.
* Move the source package into the same section as the binary package
and remove the redundant Section and Priority fields from the binary
package.
* Add a watch file.
* Update debhelper compatibility level to V7.
- Use debhelper rule minimization with override targets.
- Use debian/info instead of debian/install to install the info files,
avoiding the need to pass arguments to dh_installinfo.
* Rewrite debian/copyright to use the proposed new format.
- Add an explicit (public domain) license for the packaging.
- Add the required disclaimer for why this package is in non-free.
* Update standards version to 3.8.1 (no changes required).
Checksums-Sha1:
bdf406b2123e278b5f77d1a133c7b3ad057a970d 1244 autoconf-nonfree_2.63-1.dsc
d42eebd3d342925116c3cb942e9320d5803fcb1a 1562665 autoconf-nonfree_2.63.orig.tar.gz
38af63135d2d665b7778134f53eaeaffc2822a9d 4020 autoconf-nonfree_2.63-1.diff.gz
aef4eb2087378f91ffc73347522663e535cb2831 2475930 autoconf-doc_2.63-1_all.deb
Checksums-Sha256:
9fa2f74fd90d86066469e55b00565458defbab48c1b97d3f023f06371666848d 1244 autoconf-nonfree_2.63-1.dsc
b05a6cee81657dd2db86194a6232b895b8b2606a30a399c3a566d9259366744b 1562665 autoconf-nonfree_2.63.orig.tar.gz
923a2d8f315ec2569c6c46c7f5a07dc84a35d1f6fce25dbd4d20fae4febfabfb 4020 autoconf-nonfree_2.63-1.diff.gz
a23a42775b0392b24056d332eb113dc942a9d139ebee6e9fa8d57ee60765a253 2475930 autoconf-doc_2.63-1_all.deb
Files:
069ee5e77a680afefddc45a6db426aa0 1244 non-free/doc optional autoconf-nonfree_2.63-1.dsc
43d76649fb86cd21d64f68c48d5abdcf 1562665 non-free/doc optional autoconf-nonfree_2.63.orig.tar.gz
e7f7ed3d762e5ea9c29f3f81cb87d2d5 4020 non-free/doc optional autoconf-nonfree_2.63-1.diff.gz
6bd9068d3ac1653a145fbcf11444f0a6 2475930 non-free/doc optional autoconf-doc_2.63-1_all.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAkm59JQACgkQ+YXjQAr8dHaTRgCgnUhbef9abErvR5Wqtyb3St5W
/5YAnA8V1voPfZS8NVaZMq0IdFZeozcj
=mVxK
-----END PGP SIGNATURE-----
Bug archived.
Request was from Debbugs Internal Request <owner@bugs.debian.org>
to internal_control@bugs.debian.org.
(Tue, 21 Apr 2009 07:37:58 GMT) (full text, mbox, link).
Send a report that this bug log contains spam.
Debian bug tracking system administrator <owner@bugs.debian.org>.
Last modified:
Sat Dec 23 09:58:24 2023;
Machine Name:
buxtehude
Debian Bug tracking system
Debbugs is free software and licensed under the terms of the GNU
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.
Copyright © 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson,
2005-2017 Don Armstrong, and many other contributors.