autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: distcheck fails with autotest: autom4te: cannot open ../../tests/tes


From: Ralf Wildenhues
Subject: Re: distcheck fails with autotest: autom4te: cannot open ../../tests/testsuite.tmp: Permission denied
Date: Fri, 2 Nov 2007 18:49:33 +0100
User-agent: Mutt/1.5.17 (2007-11-01)

* Ralf Wildenhues wrote on Fri, Nov 02, 2007 at 05:08:32PM CET:
> * Benoit SIGOURE wrote on Fri, Nov 02, 2007 at 03:07:23AM CET:
> >
> > make[3]: Entering directory 
> > `/Users/tsuna/svn/git/boost.m4/_build/boost-m4-test-0.1/_build/tests'
> > /bin/sh 
> > /Users/tsuna/svn/git/boost.m4/_build/boost-m4-test-0.1/build-aux/missing 
> > --run autom4te --language=autotest -I '../../tests' 
> > ../../tests/testsuite.at -o ../../tests/testsuite.tmp
> > autom4te: cannot open ../../tests/testsuite.tmp: Permission denied
> > make[3]: *** [../../tests/testsuite] Error 1
> 
> The rule is that no distributed files can depend on undistributed ones.
> So if you ship `testsuite', then ship package.m4 as well.  If you ship
> package.m4, then it should not depend on config.status or Makefile
> (the manual shows an example where it depends on configure.ac only.)

Oh.  Current Autoconf code has that.  I didn't notice (but I see you
also did now):

| 2007-10-28  Jim Meyering  <address@hidden>
[...]
|         * tests/Makefile.am ($(srcdir)/package.m4): Depend on Makefile,
|         not configure.ac, now that the version number changes automatically.

Yuck, that's ugly.  Should we have a VERSION file, changed by a commit
hook or something like that?

Hmm, distcheck is not even failing at this point:
[...]
| make[3]: Entering directory 
`/tmp/build/autoconf-2.61a-248-dc51-dirty/_build/tests'
| {                                       \
|           echo '# Signature of the current package.'; \
|           echo 'm4_define([AT_PACKAGE_NAME],      [GNU Autoconf])'; \
|           echo 'm4_define([AT_PACKAGE_TARNAME],   [autoconf])'; \
|           echo 'm4_define([AT_PACKAGE_VERSION],   [2.61a-248-dc51-dirty])'; \
|           echo 'm4_define([AT_PACKAGE_STRING],    [GNU Autoconf 
2.61a-248-dc51-dirty])'; \
|           echo 'm4_define([AT_PACKAGE_BUGREPORT], address@hidden)'; \
|         } >../../tests/package.m4
| /bin/sh: line 7: ../../tests/package.m4: Permission denied
| cd ../lib/autotest && make  autotest.m4f
| make[4]: Entering directory 
`/tmp/build/autoconf-2.61a-248-dc51-dirty/_build/lib/autotest'
| make[4]: `autotest.m4f' is up to date.
[... happily going on ...]

If I use a subshell for redirection, the shell exits nonzero:

$ touch a && chmod -w a
$ sh -c '{ echo foo; } > a'; echo $?
sh: a: Permission denied
0
$ sh -c '( echo foo; ) > a'; echo $?
sh: a: Permission denied
1

This is bash 3.1.17(1), but also happens with 3.2.0(2); not with pdksh.
Isn't that a bash bug?

Cheers,
Ralf

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 4c3ad1a..dc1b827 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -35,14 +35,14 @@ include ../lib/freeze.mk
 ## ------------ ##
 
 $(srcdir)/package.m4: Makefile
-       {                                       \
+       (                                       \
          echo '# Signature of the current package.'; \
          echo 'm4_define([AT_PACKAGE_NAME],      [$(PACKAGE_NAME)])'; \
          echo 'm4_define([AT_PACKAGE_TARNAME],   [$(PACKAGE_TARNAME)])'; \
          echo 'm4_define([AT_PACKAGE_VERSION],   [$(PACKAGE_VERSION)])'; \
          echo 'm4_define([AT_PACKAGE_STRING],    [$(PACKAGE_STRING)])'; \
          echo 'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])'; \
-       } >$(srcdir)/package.m4
+       ) >$(srcdir)/package.m4
 
 
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]