Universal issues

Jordan K. Hubbard jkh at apple.com
Sat Jun 14 11:05:07 PDT 2008


On Jun 14, 2008, at 2:58 AM, Ryan Schmidt wrote:

> I think we should strive not to have this situation... if the port
> builds universal by default, an effort should be made to change the
> build so that it builds non-universal by default, and universal only
> when the universal variant is chosen. I know Anthony did this for
> many ports. For my ports that build universal by default I did not do
> this (sleepwatcher, and I just found out adtpro), and I should go
> back and fix this.

That would, unfortunately, invert you from the default scenario for  
all Apple projects (and I note this only because it can cause you  
special headaches when linking apps that expect all their frameworks  
and libraries to be universal by default, some of which may be  
provided by MacPorts) and also the default recommended to developers.   
Things should build universal unless there's a really good reason for  
them NOT to if you want to avoid confusion and anarchy.

I'm also kind of confused as to why this has been such a perennial big  
deal.  We have hundreds of OSS projects internally at Apple which  
build universal and the developer community at large has largely  
embraced universal builds for quite some time now - there are still  
problems here and there, sure, but I see a definitely trend towards  
those getting fixed as I see more and more stuff building universal  
with little to no modification.

I also know that there's the perceived problem of bloat (though  
storage is cheap and getting even cheaper) and general feelings of  
"why should I carry around the extra weight?", but that's short- 
sighted at best.  People buy new machines, they migrate their old apps  
and files using the Migration Assistant, and this is extra insurance  
for this case (instead of "aww, crap, now half of my stuff doesn't  
work!").  As previously noted, it's also REALLY important if your port  
builds a library or plug-in of any kind since you just don't know the  
downstream impact.  We have commercial software bundling in MacPorts  
and Fink bits all the time, as people have noted.

The only real issue I see is with x86_64 and Carbon apps, but that's  
more of an orthogonal porting issue that we (and developers in  
general) are going to need to grapple with regardless once that  
architecture becomes the default and Carbon gets more and more nails  
pounded in the coffin.

As to the value, and why we don't simply build everything i386/x86_64  
and let the ppc folks build their own bits or upgrade their way out of  
trouble, there is still value to Rosetta apps having various ppc  
libraries available, even if 100% of your user base has gone Intel, so  
I think 3-way universal (ppc, i386, x86_64) is still going to be of  
value for a number of years.

- Jordan



More information about the macports-dev mailing list