Nick Alexander: Firefox "artifact builds" for Mac OS X |
I’m thrilled to announce support for Mac OS X artifact builds. Artifact builds trade expensive compile times for (variable) download times and some restrictions on what parts of the Firefox codebase can be modified. For Mac OS X, the downloaded binaries are about 100Mb, which might take just a minute to fetch. The hard restriction is that only the non-compiled parts of the browser can be developed, which means that artifact builds are really only useful for front-end developers. The Firefox for Android front-end team has been using artifact builds with great success for almost a year (see Build Fennec frontend fast with mach artifact! and my other posts on this blog).
I intend to update the MDN documentation and the build bootstrapper (see Bug 1221200) as soon as I can, but in the meantime, here’s a quick start guide.
You’ll need to have run mach mercurial-setup and installed the mozext extension (see Bug 1234912). In your mozconfig file, add the lines
ac_add_options --enable-artifact-builds mk_add_options MOZ_OBJDIR=./objdir-artifact
You’ll want to run mach configure again to make sure the change is recognized. This sets --disable-compile-environment and opts you in to running mach artifact install automatically.
After this, you should find that mach build downloads and installs the required artifact binaries automatically, based off your current Mercurial commit. To test, just try
./mach build && ./mach run
After the initial build, incremental mach build DIR should also maintain the state of the artifact binaries — even across hg commit and hg pull && hg update.
You should find that mach build faster works as expected, and that the occasional mach build browser/app/repackage is required.
Oh, so many. Here are some of the major ones:
The command that installs binaries is mach artifact install. Start by understanding what happens when you run
./mach artifact install --verbose
See the troubleshooting section of my older blog post for more. As a last resort, the Firefox for Android MDN documentation may be helpful.
Thanks to Gregory Szorc (@indygreg) and Mike Hommey for reviewing this work. Many thanks to Mark Finkle (@mfinkle) for providing paid time for me to pursue this line of work and to the entire Firefox for Android team for being willing guinea pigs.
There’s a huge amount of work to be done here, and I’ve tried to include Bugzilla ticket links so that interested folks can contribute or just follow along. Dan Minor will be picking up some of this artifact build work in the first quarter of 2016.
Mozilla is always making things better for the front-end teams and our valuable contributors! Get involved with code contribution at Mozilla!
Discussion is best conducted on the dev-builds mailing list and I’m nalexander on irc.mozilla.org/#developers and @ncalexander on Twitter.
http://www.ncalexander.net/blog/2015/12/31/firefox-artifact-builds-for-mac/
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |