I figured I’d explain what went on in getting Firefox running on an Intel Mac.
First off, Apple employees got Firefox running on an Intel Mac for the sake of using it as a demonstration of what it takes to port a complex application. After the demo, they sent me patches.
I never tried to get Firefox running on Intel Macs by just applying their patches. For one thing, they were not worried about cross-platform patches or writing the code in such a way that we could actually land it in our tree. They just wanted it to run. Secondly, the patches were fairly out of date by the time I got them, in particular because of the huge build system improvements Mark Mentovai has been making. However, the Apple patches were extremely valuable because they did a lot of work for us and at least pointed us right to many of the problem areas instead of us having to figure out what we need to do.
Once I had the Apple patches, Mark Mentovai took care of cleaning up the ones related to the build system, David Baron took care of figuring out things related to x86 assembly code, and I cleaned up the rest of the stuff with Simon Fraser. One of the core Fink developers sent me a patch to get Fink to bootstrap on an Intel Mac, so I didn’t have to spend a bunch of time installing required packages by hand. A few days ago we had gotten far enough that in an evening I was able to sit down, check out a fresh cvs tree on the Intel Mac at my desk, apply some of the various patches sitting on bugzilla, and get a build up and running. Great teamwork. I wouldn’t have had time to get it going by now had I had to do all of this myself, so thank you to everyone who helped. Now I just need to get the patches into the tree so we can build out of cvs with no patches, and work out a few runtime bugs.
This kind of thing is really what Mozilla development has been about for me lately. I don’t sit down and write tons of code all the time – I spend a lot of time bringing together the pieces needed to accomplish something, testing them, fixing them, and doing what need to be done to get them merged into our codebase. We have an awesome community, and its great that this kind of teamwork is possible.