Song of The Day: Digging In The Dirt - Artist: Peter Gabriel

Today, I witnessed a bunch of youngsters either starting or restarting their daily treks to school, including one of my own for the first time. Although it was literally “pouring” down rain at 7:20am, my kid was enthusiastic about hopping on the bus and starting the first year right! In like spirit, I headed to work and determined to get my latest black, Intel MacBook laptop spun up with a Mozilla development environment. Some may have read about a network utility I’ve been implementing off and on, so it was time to get that all working on Intel.

Overall, it wasn’t TOO bad. I assume one already has the development tools (e.g., gcc 4., make, otool) already installed from the Mac OS X (10.4.7) installation DVD.

  • 1. Download Firefox . This is the 1.5.0.6 release.
  • 2. Verify the file and signature (steps below):
    a. Install gnupg. On the Mac one can do that
    with fink and FinkCommander.
    b. Import Mozilla.org’s key with:
    /sw/bin/gpg –import KEY.
    • The key is located here.
      [eolaughlen@newton:~] /sw/bin/gpg –verify \
      firefox-1.5.0.6-source.tar.bz2.asc \
      firefox-1.5.0.6-source.tar.bz2
    • You should see something like this in the response.
  • 3. Install glibc and libIDL. These are needed by various programs and by XPCOM respectively.
    • The following installs both of these libs:
    • [eolaughlen@newton:~] sudo apt-get update
      [eolaughlen@newton:~] sudo apt-get install orbit orbit-dev glibThe reference below has DarwinPorts commands.
  • 4. Once the distribution is bunzip2′ed and un-tar’ed, add a .mozconfig file. Mine looks like:
    • [eolaughlen@newton:~/mozilla] cat .mozconfig
      ac_add_options –enable-application=browser
      mk_add_options MOZ_OBJDIR=$HOME/mozilla/objdir
      . $HOME/mozilla/browser/config/mozconfig
  • 5. Afterwards, type “make”, and “make install” if you want the compiled firefox under /usr/local.
  • 6. Since I use NSS for extension signing (e.g., signtool), I did the following to get NSS and its tools to build with a patch. You can use this by saving the text as “headers.mk.patch” and issuing:
    • cd ~/mozilla/security/coreconf
      patch -p1
    • One can also just modify the header.mk directory by adding the following include directories:
    • INCLUDES += -I$(DIST)/include/nspr
      INCLUDES += -I$(DIST)/include/dbm

      Note: I’m checking into a more appropriate way to build NSS tools without my own patch.

    Also, there are a few good references and helps on the Web like: http://developer.mozilla.org/en/docs/Mac_OS_X_Build_Prerequisites

Hopefully, in the near future I’ll be able to share my experiences with XPCOM, signing browser extensions, and other tid-bits as they relate to dent and other initiatives.

Oh yeah. Disclaimer stuff: Use all information, and any code, at your own risk.

Tags: , ,