Universal and binary builds (was: Re: Is isysroot useful for non-universal?)
Jeremy Huddleston
jeremyhu at macports.org
Mon Mar 23 16:01:52 PDT 2009
On Mar 23, 2009, at 15:12, Ryan Schmidt wrote:
>
> I would want (at least) one build server for each OS and processor
> combination, but if we began with just a single Intel Leopard
> machine, that would cover the majority of users. If we add a
> corresponding PowerPC Leopard machine, then we could do something
> interesting: Once the Intel and PowerPC builds are sent to the
> download server, the download server could combine both builds into
> a single universal binary package.
Why put it on the back of the download server? Let the user handle
this. That way if we support n differnet architectures, we just need
to host n files (one tarball for each arch) instead of n! files (one
tarball for each combination). With ppc, ppc64, i386, x86_64 that's 4
versus 24 files which would probably be about 10x storage space
required (just a rough estimate considering that the combined packages
will be larger than the individual ones)
> It would use lipo, probably assisted by the code we have in the
> MacPorts merge procedure or the muniversal portgroup. It would avoid
> the above problems with our existing universal variants because the
> configure phase would run once for each processor, on that
> processor. We wouldn't need to deal with SDKs anymore. (I've never
> been comfortable with the idea of allowing the user to specify an
> SDK in macports.conf, so I don't see it as a problem that that would
> not be accommodated by our binary builds.)
>
> Using the above, we would have stable 32-bit universal binaries. We
> would also want each build server to separately build 64-bit
> versions. Obviously the build servers would be 64-bit machines.
This just needs 2 build servers per OS version. Setup a ppc chroot on
the ppc64 box and an i386 chroot on the x86_64 box. Since rosetta
doesn't handle ppc64, we can't narrow this down to a single x86_64 box.
More information about the macports-dev
mailing list