Just say no to +universal
Jordan K. Hubbard
jkh at brierdr.com
Sat Mar 3 17:06:46 PST 2007
On Mar 3, 2007, at 3:16 PM, James Berry wrote:
> I am speaking about macports, not the general case. Adding huge
> hacks to individual portfiles in order to support universal builds
> gets us nowhere -- particularly when we don't have the distribution
> mechanisms in place to really do anything with such universal port
> builds.
And I hope I've made it clear that I'm not defending the "huge hacks"
either. I don't like huge hacks. I like generic support that can
be leveraged. So far, I think the generic support for universal
building is still pretty green, however, and I guess the ultimate
question is whether or not MacPorts wants to invest anything in this
area at all if people are still questioning the worth of universal
executables and frameworks (in the context of MP) at all. I've said
my piece and if people still don't agree, that's cool, I just thought
it was something worth taking a fairly strong stand over and I'm not
going to go in the corner and cry if MP decides it's always going to
be a "build your own stuff" solution (which still leaves a fairly big
hole in what end-users are looking for, sadly).
> Rather than big hacks on individual ports, it would seem better to
> have a couple of declarative statements for the universal strategy
> of a port:
>
> - port may be built universal: yes/no
> - port builds universal out of box: yes/no
> - port builds in single pass with flags: xxx
> - port can be built in multiple passes by lipoing together the
> following binaries... (all others are assumed the same builds)
I'm not sure what value is added by having so many states. I think,
as far as the builder is concerned, the only state that counts for
anything is the first one. Does it build universal? Yes? OK, then
the builder can choose to build it universal if that's valuable to
them. If not, then it's a moot point. As far as an internal
macports developer is concerned, there's also not a lot of value in
splitting hairs here. If it builds universal out of the box vs
tweaking it, that's great, but it's no different than having a port
which compiles on MacOSX with no patches and respects $prefix
properly in all ways vs one which has to be coerced into doing those
things. Whether to lipo or not depends as much on what the macports
developer wants to do (e.g. how much trouble to go through in the
"coercion process") as anything else, so I don't see what value a
declarative statement adds there either.
- Jordan
More information about the macports-dev
mailing list