Hello Dagobert, * Dagobert Michelsen wrote on Tue, May 19, 2009 at 01:44:04PM CEST: > Am 18.05.2009 um 23:10 schrieb Ralf Wildenhues: >>> FAIL: insthook.test >> >> The insthook.test failure looks like you have some variables like >> $bindir or $exec_prefix or $prefix set in your environment. Is that >> the case? Maybe you can look over your environment for other possibly >> problematic settings. We should clear them in tests/defs, I guess. > > Yes, the environment has been customized extensively: *snip*
Wow. > Some settings are redundant due to artifacts of the build system. OK. >>> FAIL: vala4.test >> >> This is a genuine bug in one of Automake, Autoconf, or your system >> shell (which we'd then need to work around). I'm seeing it on a >> Solaris system myself; will analyze. Haven't done this one yet. >> These all end with something like this, a successful command and >> supposedly an error in the cleanup trap: >> >> | + : >> | exit_status=0 >> | + cd >> | >> /export/home/dam/mgar/pkg/automake/trunk/work/build-isa-i386/automake-1.11/tests >> | + chmod -R a+rwx libtoo11.dir >> >> Now, I bet the chmod throws an error, but since the code in >> tests/defs.in diverts stdout and stderr to /dev/null, we don't get to >> see it. Can you do two tests for me, in order to analyze this issue? > You will find the annotated log at > <http://buildfarm.opencsw.org/automake/test-suite.log-20090519> Thanks. This confirms my assumption: | + chmod -R a+rwx libtool5.dir | chmod: WARNING: can't change libtool5.dir/ltmain.sh Ugly. Solaris `chmod -R' tries to change the mode of symlinked-to files. I didn't know that, and GNU coreutils chmod doesn't do it, but POSIX seems to even require it. Sigh. >> Then, after that, please revert the first patch, and instead apply the >> second attached patch, then run [...] >> to verify that most of the failures are gone now? > > Some yes, some no: [...] >> If my hypothesis is true, I will then apply the second patch to >> Automake, and add you to THANKS if you don't mind. > > Sure :-) However, it looks like some more fixing is needed. Well, it seems all remaining failures in the newer log look like this | checking for gcc... no | checking for cc... no | checking for cl.exe... no | configure: error: in `/export/home/dam/mgar/pkg/automake/trunk/work/build-isa-i386/automake-1.11/tests/vala4.dir': | configure: error: no acceptable C compiler found in $PATH | See `config.log' for more details. | exit_status=1 which implies that your setting of $CC doesn't seem to work as expected. Can you look into that again, and maybe inspect one of the log files (such as tests/depcomp7.dir/config.log) for the reason? Anyway, I am fixing the currently-known issues reported in this thread with the following three patches, and adding you to THANKS. Thanks again, Ralf testsuite: do not fail in cleanup code. * tests/defs.in: Turn off errexit in the cleanup trap, to avoid a test failure due to a nonzero command. * THANKS: Update. Report by Dagobert Michelsen. diff --git a/tests/defs.in b/tests/defs.in index 6e26202..7d74dd2 100644 --- a/tests/defs.in +++ b/tests/defs.in @@ -254,6 +254,7 @@ mkdir $testSubDir sh_errexit_wor...@sh_errexit_works@ if test "$sh_errexit_works" = yes; then trap 'exit_status=$? + set +e cd "$curdir" case $exit_status,$keep_testdirs in 0,) testsuite: do not change the mode of installed Libtool files. * tests/defs.in: Do not use `chmod -R' on the test directory, as that may change or try to change the mode of installed files: the test directory may contain symlinks to ltmain.sh files from a Libtool installation, and Solaris `chmod -R' touches symlink targets. Instead, use the cleanup strategy used in distdir.am. * NEWS: Update. Report by Dagobert Michelsen. diff --git a/NEWS b/NEWS index 20d5080..48873d0 100644 --- a/NEWS +++ b/NEWS @@ -10,6 +10,9 @@ Bugs fixed in 1.11.0a: `get_python_lib' function if it points outside the configured prefix, unless the `--prefix' argument was either `/usr' or below `/System'. + - The testsuite does not try to change the mode of `ltmain.sh' files from + a Libtool installation (symlinked to test directories) any more. + New in 1.11: diff --git a/tests/defs.in b/tests/defs.in index 7d74dd2..0254d3a 100644 --- a/tests/defs.in +++ b/tests/defs.in @@ -247,8 +247,10 @@ Exit () curdir=`pwd` testSubDir=$me.dir -chmod -R u+rwx $testSubDir > /dev/null 2>&1 -rm -rf $testSubDir > /dev/null 2>&1 +test ! -d $testSubDir || { + find $testSubDir -type d ! -perm -200 -exec chmod u+w {} ";" + rm -rf $testSubDir +} mkdir $testSubDir sh_errexit_wor...@sh_errexit_works@ @@ -258,8 +260,9 @@ if test "$sh_errexit_works" = yes; then cd "$curdir" case $exit_status,$keep_testdirs in 0,) - chmod -R a+rwx $testSubDir > /dev/null 2>&1 - rm -rf "$testSubDir" ;; + find $testSubDir -type d ! -perm -200 -exec chmod u+w {} ";" + rm -rf $testSubDir + ;; esac test "$signal" != 0 && echo "$as_me: caught signal $signal" testsuite: unset installation directory variables. * tests/defs.in: Before test execution, be sure to unset all installation directory variables, so they cannot have an effect on a `make -e install' command within a test. Report by Dagobert Michelsen. diff --git a/tests/defs.in b/tests/defs.in index ef1008a..61ca796 100644 --- a/tests/defs.in +++ b/tests/defs.in @@ -298,9 +298,14 @@ END unset MFLAGS unset MAKEFLAGS unset MAKELEVEL -unset DESTDIR # Unset verbosity flag. unset V +# Also unset variables that will let `make -e install' divert +# files into unwanted directories. +unset DESTDIR +unset prefix exec_prefix bindir datarootdir datadir docdir dvidir +unset htmldir includedir infodir libdir libexecdir localedir mandir +unset oldincludedir pdfdir psdir sbindir sharedstatedir sysconfdir # Also unset variables that control our test driver. While not # conceptually independent, they cause some changed semantics we # need to control (and test for) in some of the tests to ensure