🍃このブログは移転しました。
3秒後、自動的に移動します・・・。

Firefoxをソースからビルドする

ちょっと所用があったので。

Firefox Contributors’ Quick Reference — Firefox Source Docs documentation

ドキュメントがさすがにちゃんとしてて、基本的には全部ここに書いてあるけど、自分用にもメモを。

事前準備

FirefoxのコードはMercurialで管理されてるけど、変換ツールを介することでGitも利用できるらしく、そっちを使ってみることに。

brew install hg
brew install git-cinnabar

他にも`xcode-select`が必要らしいけど、既に入ってたのでスキップ。

ブートストラップ

開発環境をセットアップするためのPythonスクリプトがあって、それを使うとのこと。

curl https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py -O

楽ちん。

  • この時点ではディスク容量はまだ減らない
    • 最低30GBあけておけって書いてあったけど、まだ大丈夫
  • この`bootstrap.py`は後で消す?って聞いてくれるので、どこに置いてもよい
    • cloneする場所も別途で聞いてくれる

いざ実行で、Gitでやりたいですフラグを渡す。

python3 bootstrap.py --vcs=git

ダウンロードがはじまってディスク容量を消費しはじめる。

  • コントリビュートが目的なら、各種アカウントも用意しろって言われてトークンを要求されたりする
    • BugzillaとPhabricator
    • Phabricatorは、usernameを後から自分で変更できないので要注意(まじで)
  • C++みたいなコードを変更しない場合は、ビルド済バイナリを利用できるアーティファクトモードなる方法が選べる
    • それを使うようにすると、ディスク容量も抑えられるぽい
    • 最終的に、10GBくらいあればよさそうだった

さすがにダウンロードに時間がかかる。

ビルドと実行

./mach build
./mach run

マッハ!っていうコマンドがある。本当に楽ちん・・・。

  • アーティファクトモードならあっさりビルドできる
    • 2015年製のMBPでも、初回が2-3分くらいで後は1分以内に終わる
    • 900MBくらいのディレクトリが誕生した
  • `./mach build faster`とすると、さらに短縮できる
    • ローカルのJSやCSSだけをビルドするらしい

起動するとNightlyのFirefoxとご対面できる!

ディレクトリ探訪や、コードの修正・反映やらは、またの機会にやってみたい。