Re: [Fink-devel] db3-3.3.11-1031 on 10.6 compile error

2009-10-18 Thread Martin Costabel
Adrian Prantl wrote:
 Hi,
 
 on 10.6, fink 32-Bit, I am getting this rather confusing error when  
 updating db3:

This is now fixed in version 3.3.11-1032.

-- 
Martin

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel


[Fink-devel] path_separator test in older configure scripts breaks on 10.6

2009-10-18 Thread Martin Costabel
Building db3-3.3.11-1031 on 10.6 breaks with the error

   configure: error: No ar utility found.

Building mysql-shlibs-3.23.58-1023 on 10.6 breaks with the error

   configure: error: no acceptable C compiler found in $PATH

(see the corresponding threads on fink-devel and fink-beginners.)

Both failures have the same cause which I have now hunted down. It is 
likely to show up for other packages whose configure scripts were 
generated by autoconf version 2.53 or older. A workaround is given at 
the end of this message, and I have fixed db3 correspondingly.

The story is the following:

These old autoconf versions have a test for deciding whether 
PATH_SEPARATOR should be ; or :. (In reality they have even two 
independent pieces of code that do this, which is one of the many 
weirdnesses in this history.) The test looks whether the following line 
of code

   PATH=.;.; conftest.sh

executes without error, that is, finds the conftest.sh executable which 
is in the current directory. If yes, PATH_SEPARATOR is set to ; which, 
of course, wreaks havoc on MacOSX.

Now this line of code is in fact executed by /bin/ksh, because 
configure, in its quest to find an acceptable variant of the echo 
command, re-executes itself several times in different shells, and it is 
/bin/ksh that it is trying out when the above test is being performed.

The two versions of /bin/ksh in MacOSX 10.5 and 10.6 behave differently 
with respect to that line of code (both of them are buggy IMHO). You can 
see this by executing the following line in /bin/ksh:

   cd /usr/bin; PATH=.;.; type -a machine; machine

On 10.5 (similar on 10.4), you get the output

 machine is a tracked alias for '/usr/bin/.;./machine'
 /bin/ksh: machine: not found [No such file or directory]

On 10.6 you get

 machine is a tracked alias for '/usr/bin/.;./machine'
 i486

Thus on 10.5, it finds the command, but then when asked to execute it, 
doesn't really find it. On 10.6, it actually finds it, although that 
weirdo path does not exist.

In newer versions of autoconf (2.57-2.59, ca 2004), the test is changed: 
It uses the line

   PATH=/nonexistent;.; conf$$.sh

which correctly fails in /bin/ksh on 10.6, too. Even newer versions of 
autoconf use some other variant of the test.

The workaround is to run configure with the environment variable

   PATH_SEPARATOR=:

set, so that this whole crazy test is not performed at all.

-- 
Martin








--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel