Ryan Schmidt ryandesign at
Thu Jun 11 11:17:40 PDT 2009

On Jun 11, 2009, at 06:56, Thomas De Contes wrote:

> Le 11 juin 09 à 06:54, Ryan Schmidt a écrit :
>> On Jun 10, 2009, at 18:28, Thomas De Contes wrote:
>>> i want to install the port "gnat-gcc"
>>> for that, it needs to use an other (older) gnat
>> IMHO this port is in violation of the basic requirement that a  
>> port should install everything it needs. If gnat needs an older  
>> version of gnat to build, gnat must download and use an older  
>> version of gnat.
> a port can download and use binaries ?
> i thought that it has to download only sources and compile all

Some ports download and install a binary. My ports oracle- 
instantclient, isightcapture and sleepwatcher do this because source  
is not available. istumbler and blender presumably do this because  
the person who contributed the ports encountered insurmountable  
obstacles trying to build from source.

But I was talking about ports that need to use a binary to build  
themselves from source. This is common with compilers like gnat-gcc  
and ghc which need an earlier version of themselves to compile the  
newer version. This is not a problem for gcc because an older version  
of gcc is included with Xcode. But gnat-gcc and ghc do not exist  
already on OS X, therefore the ports must somehow provide one. ghc  
does this the correct way, IMHO: It downloads a binary version of ghc  
specific to the OS and processor, unpacks it, and uses it to build  
the final version of ghc that gets installed. The gnat-gcc port does  
this in a poor way, IMHO: it requires the user to either have a prior  
version of the gnat-gcc port installed (obviously not possible the  
first time a user tries to install the port), or to manually download  
and install a binary version of gnat-gcc to a specific location  
outside the MacPorts prefix.

More information about the macports-users mailing list