Universal and binary builds (was: Re: Is isysroot useful for non-universal?)

Marcus Calhoun-Lopez mcalhoun at macports.org
Mon Mar 23 19:39:32 PDT 2009


Ryan Schmidt <ryandesign at ...> writes:

> I'm getting really burned out on universal.
...
> 
> The new muniversal portgroup aims to solve this but has other severe  
> problems, in that the configure phase runs once for each  
> architecture, and some configure scripts are written wrong so they  
> try to run a program at configure time to learn things about the  
> build environment, which is not appropriate when cross-compiling. So  
> the configure script exits saying it cannot run a program when cross- 
> compiling, and the maintainer has to research what those values are  
> supposed to be for each architecture, possibly getting them wrong.  
> Many programs simply cannot be cross-compiled so then the list of  
> supported architectures is reduced, and it's a different list of  
> supported architectures depending on the computer doing the build.
> 
> What if we set aside what we have now for universal variants and  
> spent some energy on finally doing binary builds? Finish the script  
> that builds a port in a clean MacPorts tree in a chroot. Make it  
> package that up and send it to a download server. Modify MacPorts  
> base to look for, download and install those binaries first. Make  
> those binaries integrate properly with the registry. Begin by having  
> the build server only build the default variant of a port, but later  
> it can be expanded to build more combinations of variants. We can  
> work out a system later that allows more variant combinations of an  
> old port to be built without impacting the building of newly-updated  
> ports. Since the server will have multiple cores we can run multiple  
> ports' builds simultaneously, in multiple chroots.

I am all for binary builds, but I would suggest that work on
universal variants continue (personally I find them very useful).
Universal, however, should be limited to 32/64-bit universal as soon as possible.
Having changes several ports over the muniversal PortGroup, the biggest
obstacle is the cross-compiling (see
http://trac.macports.org/attachment/ticket/17042/glib2-Portfile.diff)
for the reasons noted above.

I can not image that MacPorts ppc/i386 universal builds are in widespread use.

-Marcus









More information about the macports-dev mailing list