[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
More problems when overriding autotools in bootstrap
From: |
Stefano Lattarini |
Subject: |
More problems when overriding autotools in bootstrap |
Date: |
Mon, 16 Aug 2010 15:11:28 +0200 |
User-agent: |
KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; ) |
Hello automakers.
Even with this patch of mine applied:
<http://lists.gnu.org/archive/html/automake-patches/2010-08/msg00151.html>
there are still problems when using non-default autoconf and autom4te to build
and test automake. For example, the tests `missing.test' and `missing2.test'
fail (see attached logs). This is mostly a testsuite problem/limitation, but
we should deal with it nonetheless.
I see three possibilities:
- Use address@hidden@' and address@hidden@' instead of plain `autoconf' and
`autom4te'
in `automake.in' and `aclocal.in'. While this was my first idea, I soon
realized that it's a *very bad* idea, likely to create far more problems
than it solves.
- Hack the failing tests to avoid the quasi-spurious failure. Not a good
idea either, sounds like sweeping the dirt under carpet.
- Hack the `tests/automake.in' and `tests/aclocal.in' to export AUTOCONF and
AUTOMA4TE to respectively address@hidden@' and address@hidden@', unless they
are
already exported. This is the way to go IMO.
Also, we should extend the automake documentation with a section explaining
how to use automake with non-default autoconf and autom4te.
At this point, my idea would be to drop my previous patch, and follow this
"roadmap":
1. Add a tests that fails if aclocal-used autoconf and testsuite-used
autoconf don't match; this test is expected to fail with my current
setup (bootstrap-time and configure-time overridden $AUTOCONF and
$AUTOMA4TE, but no AUTOCONF nor AUTOM4TE in the environment).
2. Add the tests intoduced by my previous version of the patch; verify that
all of them still fail at this point (and declare them as xfailing).
3. Apply the changes to `m4/init.m4' and `lib/am/configure.am' introduced
by my previous patch; see that the tests introduced in step 2 now
pass.
4. Do the fix to `tests/automake.in' and `tests/aclocal.in', and verify
that the test added in step 1 now passes.
5. Do the documentation improvement described above (maybe with some
help ;-).
6. Re-run the whole testsuite.
Opinions?
Regards,
Stefano
FAIL: missing.test (exit: 2)
============================
/home/stefano/src/automake/tests:/home/stefano/go/bin:/home/stefano/bin/linux:/home/stefano/bin:/usr/local/bin:/opt/bin:/usr/lib/jvm/java-6-sun-1.6.0.20/bin:/usr/games:/usr/bin:/usr/sbin:/bin:/sbin
=== Running test ./missing.test
++ pwd
/home/stefano/src/automake/tests/missing.dir
+ set -e
+ cat
+ :
+ aclocal-1.11 -Werror
+ /opt/bleedingedge/bin/autoconf
aclocal.m4:16: warning: this file was generated for autoconf 2.65.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.
+ automake-1.11 --foreign -Werror -Wall --add-missing
+ MYAUTOCONF='./missing --run /opt/bleedingedge/bin/autoconf'
+ unset AUTOCONF
+ ./configure 'AUTOCONF=./missing --run /opt/bleedingedge/bin/autoconf'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
+ make
make: Nothing to be done for `all'.
+ sleep 2
+ echo 'AC_PREREQ(9999)'
+ make distdir
cd . && /bin/sh /home/stefano/src/automake/tests/missing.dir/missing --run
automake-1.11 --foreign
aclocal.m4:16: warning: this file was generated for autoconf 2.65.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.
aclocal.m4:619: error: Autoconf version 9999 or higher is required
aclocal.m4:619: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
WARNING: `/opt/bleedingedge/bin/autoconf' is needed, and is probably too old.
You might have modified some files without having the
proper tools for further handling them. Check the `README' file,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing
`/opt/bleedingedge/bin/autoconf' program.
automake: ./missing failed with exit status: 1
make: *** [Makefile.in] Error 1
+ exit_status=2
+ set +e
+ cd /home/stefano/src/automake/tests
+ case $exit_status,$keep_testdirs in
+ test 0 '!=' 0
+ echo 'missing: exit 2'
missing: exit 2
+ exit 2
FAIL: missing2.test (exit: 2)
=============================
/home/stefano/src/automake/tests:/home/stefano/go/bin:/home/stefano/bin/linux:/home/stefano/bin:/usr/local/bin:/opt/bin:/usr/lib/jvm/java-6-sun-1.6.0.20/bin:/usr/games:/usr/bin:/usr/sbin:/bin:/sbin
=== Running test ./missing2.test
++ pwd
/home/stefano/src/automake/tests/missing2.dir
+ set -e
+ cat
+ :
+ :
+ aclocal-1.11 -Werror
+ /opt/bleedingedge/bin/autoconf
aclocal.m4:16: warning: this file was generated for autoconf 2.65.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.
+ automake-1.11 --foreign -Werror -Wall --add-missing
+ MYAUTOCONF='./missing --run /opt/bleedingedge/bin/autoconf'
+ unset AUTOCONF
+ ./configure 'AUTOCONF=./missing --run /opt/bleedingedge/bin/autoconf'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
+ make
make: Nothing to be done for `all'.
+ sleep 2
+ echo 'AC_PREREQ(9999)'
+ make distdir
cd . && /bin/sh /home/stefano/src/automake/tests/missing2.dir/missing --run
aclocal-1.11
v.m4:1: error: Autoconf version 9999 or higher is required
v.m4:1: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
aclocal: autom4te failed with exit status: 63
WARNING: `aclocal-1.11' is probably too old. You should only need it if
you modified `acinclude.m4' or `configure.in'. You might want
to install the `Automake' and `Perl' packages. Grab them from
any GNU archive site.
cd . && /bin/sh /home/stefano/src/automake/tests/missing2.dir/missing --run
automake-1.11 --foreign
aclocal.m4:16: warning: this file was generated for autoconf 2.65.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.
v.m4:1: error: Autoconf version 9999 or higher is required
v.m4:1: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
WARNING: `/opt/bleedingedge/bin/autoconf' is needed, and is probably too old.
You might have modified some files without having the
proper tools for further handling them. Check the `README' file,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing
`/opt/bleedingedge/bin/autoconf' program.
automake: ./missing failed with exit status: 1
make: *** [Makefile.in] Error 1
+ exit_status=2
+ set +e
+ cd /home/stefano/src/automake/tests
+ case $exit_status,$keep_testdirs in
+ test 0 '!=' 0
+ echo 'missing2: exit 2'
missing2: exit 2
+ exit 2
- More problems when overriding autotools in bootstrap,
Stefano Lattarini <=