世界で最も有名な OS 上の最も最適なブラウザを作るお手伝いをしていただき感謝します。このドキュメントはローカルマシンで独自のバージョンの Firefox をビルドしたり改造するための手助けになるでしょう。セットアップは難しいことではありませんが、時間が必要です。たくさんのデータをダウンロードする必要があります!早い回線でも 10~15分必要で、もしかすると1、2時間に及ぶかもしれません。

詳細は以下に記載してありますが、実際にあなた自身でセットアップして動作させてください。

準備

複雑ではありませんが、OS X 上で Firefox をビルドするにあたりいくつか準備が必要となります。

  • OS X 上で使い慣れているターミナル環境
  • OS X 10.7 以上。もしわからなければ Apple メニュー上の「この Mac について」を開くことでわかります。
  • 次に、Python がインストールされているか確認します。Python は OS X のデフォルトで入っていますが、ターミナルウィンドウを開いて python --version と入力し、バージョンの確認をしてください。しかし、もしビルド中に暗号に関するエラーが発生したら、Python 2.7.11(それ以上でも、それ以下でもなく)が bootstrap.py が動作確認している唯一のバージョンですので注意してください。もし自身のマシンで使用可能な複数の Python バージョンがある場合は、pyenv を使ってください。
  • 最後に、ネット環境と Xcode と Firefox のソース・ビルドオブジェクトのための 40 GB の空き領域が必要です。

 

はじめに

OS X 上でのセットアップは簡単です。もし初回時の場合でしたら、ホームディレクトリの下に "src" ディレクトリを作成してください。

cd && mkdir src

次に bootstrapy.py スクリプトをダウンロードして先ほどの src/ ディレクトリに保存します。

そして最後に、ターミナル上で cd ~/src を実行して次のコマンドで bottostrapper を開始します。

python bootstrap.py

すると...いくつかの質問が続きます。もし我々が必要となるいくつかのプログラムをインストールするためのソフトウェアパッケージマネージャである Homebrew または Ports がインストールされていない場合、どちらを選ぶか質問されます。どちらも動作しますが、多くの Mozilla 開発者は Homebrew を利用しています。

アクセスするために

最後のステップは終わるために多少時間が必要です。実行している間は Mozilla のバグトラッカーである Bugzilla のサインインをしたりしてください。バグにコメントしたり、パッチを投稿するには Bugzilla のアカウントが必要になります。Bugzilla のアカウント作成はここから行うことができます。

Bugzilla に加えて、IRC 上で多くの Mozilla の内部的なコミュニケーションが行われます。Limechat はここからダウンロードでき、Mozilla の IRC への接続はここを参照してください。もし何かを始めようとしてセットアップで質問がある場合、新しいコントリビュータを軌道に乗せるために挑戦したりお手伝いをするコミュニティメンバーが #introduction チャンネルにいるので接続できます。

コードの取得

もし bootstrap.py を使って mozilla-unified をダウンロードしない場合、 mozilla-central レポジトリを以下のコマンドをターミナル上で実行してクローンできます。

hg clone https://hg.mozilla.org/mozilla-central/

この手順では mozilla-central から Firefox のソースコードを取得するために mercurial を使用しています。疑問に思うかもしれませんが、hg は水銀の化学式です。

クローンが終了するまで、Mozilla の Mercurial ドキュメント等を閲覧してください。

そこには Mozilla でのコード管理方法やソースツリーへ変更を land する方法が紹介されています。

Firefox のビルド

ここまでで準備は終わりです。あたなたのタームナルで以下のコマンドを実行してビルドを開始してください。

cd mozilla-central

./mach build

そして、これはあなたのやり方でソースコードから Firefox のコピーを自身でビルドしています。

時間がかかることでがっかりしないでください。 Firefox は極めて大きく、最新の催促マシンでもビルドには時間が必要です。

Mozillians.org へ参加しよう!

待っている間にもう1つやるべきことがあります。それは自身の Mozillians のアカウントを作成することです。Mozillians は 興味のある分野・プロジェクト・国などに同調する人と繋がることができる Mozilla のコミュニティディレクトリです。この手順は任意ですが、登録するだけの価値はあると思います。

楽しい新しい一歩

ソースコードを手に入れ、Firefox を自身でコンパイルしました。./mach run コマンドでそれを実行してハックを始める準備をしましょう。次のステップはあなた次第です。IRC の #introduction に参加したり、Twitter 上の StartMozilla をフォローしたり、最初に始めるにちょうど良いバグを探したりできます。

感謝します!

Mozilla の強みはコミュニティの存在です。Firefox は Web の自由・オープン・参加型を保つために協力してくれるグローバルのデベロッパーチームの製品です。そしてあなたの貢献は、Firefox を創り、世界数億のウェブをより良いものにするでしょう。

詳細

OS X の Mozilla ビルドは Makefiles からビルドをする Mach-O ビルドです。OS X 上でビルドすることは Unix/Linux でのビルドと非常に似ています。ターミナルアプリ( /アプリケーション/ユーティリティ )を使うことで快適になります。加えて、Mozilla をユニバーサルバイナリーとしてビルドする追加手順があります。

もし問題がある時は、Mozilla ビルドのよくある質問または Mozilla ビルドドキュメントの一部を参照してください。

ワンラインセットアップ (まず最初に試してください)

ターミナル上で以下のコマンドを実行してください。

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

これは OS X のビルド準備に必要なソフトウェアのインストールをします。成功させるために自信のアカウントがコンピューターの管理者として許可されている必要があります。これは、システム環境設定 -> ユーザーとグループで確認することができます。

特定の状況、特にすでに MacPorts または Homebrew 開発環境がインストールされている場合、このスクリプトはエラーを表示します。多くのエラーは MacPorts または Homebrew をアップデートすることで解決することができます。

MacPorts は以下のようにコマンドを実行します。

port selfupdate && port upgrade outdated

Homebrew は以下のようにコマンドを実行します。

brew update && brew upgrade

もしこれがうまくいかない場合または、もっと詳細が必要な場合、Mike Hoye に連絡してください。以下のドキュメントもまた、参考になる時があります。

以下のこともまた必要です。

  • Apple ID (Xcode のインストール)
  • 1 hour (Xcod のダウンロードインストール)
  • Homebrew または Macports (bootstrap.py は必要な場合、インストールします。)

一度ビルド環境の準備が終わると、以下の手順 3 に進みます。

ビルドステップ (詳細)

OS X のビルドは以下のステップに分割されます。

  1. Apple が配布している開発者ツールをインストールします。
  2. 追加のビルドツールをインストールします。
  3. Mozilla ソースコードのコピーを入手する
  4. ニーズに合わせて Mozilla ソースツリーを設定する
  5. Firefox をビルドする

1. Apple が配布している開発者ツールをインストールする

OS X の全てのバージョンにおいて、どの Mozilla アプリケーションをビルドするために Xcode をインストールする必要があります。

Xcode 4.5 以上の場合、/アプリケーション (/開発/アプリケーション ではなく)にインストールされます。4.5 以上の .dmg を実行した場合、単純に Xcode.app ファイルが表示されます。このファイルを /Applications にドラッグして、そのコピーしたファイルを実行します。もし.dmg フォルダの Xcode.app を直接実行すると、/Volumes/Xcode/Xcode.app を参照しているため、様々な関連するパッチを壊します。これにより、.dmg がアンマウントされたら、Mozilla のビルド(おそらくWebRTC メイクファイルを作成するビルドエラーを伴う)、MacPorts のアップデートなどが中断されます! あなたがこのポジションにいる場合は、走ってみてください。

sudo xcode-select -switch /Applications/Xcode.app

.gyp ファイルから WebRTC メークファイルを生成するときに "find_sdk.py" が見つからないビルドに失敗した場合は、これが問題になる可能性があります。

Xcode のダウンロードとインストールは以下のようにします。

  • https://developer.apple.com/downloads/index.action (Apple ID が必要です。ただし、購読やクレジットカード上は必要ではありません)
  • Apple App Store (OS X の最新バージョンの場合)
    • App Store 経由で Xcode をインストールした後、/アプリケーション/Install Xcode.app を起動する必要があります。これは "信頼できないパッケージ" エラーで失敗するかもしれません。コンピュータの時間を 2010/1/1/ に戻して再インストールすることで回避できることが知られています。
  • Mac OS X を DVD からインストールした場合、 Xcode または XcodeTools は「オプションインストール」フォルダからインストールします。もし可能なら、更新したバージョンの Xcode を入手するためにインターネット経由で入試してください。

一般的に、Xcode の全てのリリースバージョンは Mozilla ソースツリー の最新バージョンでビルドすべきです。しかし、Xcode のアーリーアダプタやベータバージョンは互換性がない場合があります。そのため、OS X と Xcode のアップグレード時には注意してください。

OS X の様々な互換性や Xcode のバージョンは以下のソフト動作条件セクションに記載されています。

注意: Xcode 4.5 とそれ以上のバージョンで、コマンドラインツールを手動でインストールする必要があります。Xcode > Preferences > Downloads > Command Line Tools > Components > Install からインストールできます。(古いバージョンの Xcode からアップグレードする際に実施するこの手順は、単純に古い /usr/bin/clang 等を残します。)

注意: clang 4.2 の Apple バージョンは現在必要となります。もし以下のエラーメッセージが出た場合、古いバージョンの clang を利用しているかもしれません。

In file included from .../js/src/vm/PropertyKey.cpp:9:
./../../dist/include/js/PropertyKey.h:35:7: error: no member named 'operator=' in 'JS::Value'
class PropertyKey
      ^~~~~~~~~~~
./../../dist/include/js/PropertyKey.h:87:14: note: implicit default move assignment operator for 'JS::PropertyKey' first required here
        *key = PropertyKey(uint32_t(v.toInt32()));
             ^
1 error generated.

2. 追加のビルドツールをインストールします

Mozilla のソースツリーはビルドするためにいくつかのサードパーティツールやアプリケーションを必要とします。ビルドが可能になる前にインストールする必要があります。

全てのこのコンポーネントのインストール方法を選択する必要があります。Homebrew や Ports のようなパッケージマネージャを使うことができます。または個別に入手して、コンパイルしてインストールすることも可能です。時間の節約のため、パッケージマネージャを推奨します。以下のセクションでは存在するパッケージマネージャからパッケージをインストールする方法を述べてます。パッケージマネージャは任意のものを使ってください。

もし利用している Xcode が Clang を持っていない場合、パッケージマネージャからインストールすることができます。

2.1a Homebrew 経由でインストールする

Homebrew は「OS X のために欠かせないパッケージマネージャ」です。これはパッケージをインストールするためにシンプルなコマンドラインとして提供しています。基本的にソースからコンパイルします。

Homebrew をインストールする最初のステップは https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Installation.md#installation を参照してください。

Homebrew をインストールすると、以下のコマンドを実行する必要があります。

brew install yasm mercurial gawk ccache python

使っている Xcode のバージョンによって、「brew install mercurial」は Mac OS 4 ユニバーサル SDK が存在しないことにより、失敗する可能性があります。回避策としてこのサイトから直接バイナリをインストールしてください。そして、yasm だけ brew 経由でインストールしてください。

autoconf 2.13 もまた必要になります。しかし Homebrew のコアレポジトリは最新版をデフォルトとしてインストールするため、以下のコマンドでバージョンを指定してインストールします。

brew install autoconf@2.13

もしビルド時にエラーになったら、インストールして標準で利用している auto conf の他のバージョンが存在しているということです。autoconf 2.13 を実行するために以下のコマンドを実行します。

​brew link --overwrite autoconf@2.13

 

2.1b MacPort 経由でインストールする

MacPort は OS X のパッケージマネージャです。もし Homebrew を実行した場合、このセクションは省略できます。

MacPorts をインストールするために、インストールページのサイトへ行き、 自信のプラットフォームに合わせた .dmg をダウンロードしインストールしてください。もし MacPorts がインストールされている場合、以下のコマンドを使ってアップデートしてください。

sudo port selfupdate
sudo port sync

このコマンドラインの最初で、管理者パスワードを聞いてきます。

共通のエラー:

  • sudo は空のパスワードを許可しません。システム環境設定でアカウントのパスワードを作成してください。
  • port コマンドが見つからない:パスを追加してください(後述するトラブルシューティングのセクションを参照してください。)

Firefox をビルドするために必要なパッケージをインストールするために以下の MacPort のコマンドを実行します。

sudo port install libidl autoconf213 yasm

MacPorts はこれらのパッケージと依存関係のビルドとインストールした結果を表示します。これには時間がかかるため、コーヒータイムを楽しんでください。

注意: 初期値として Python 2.7 がインストールし、 X11 ライブラリの全てを pull します。 Firefox を構築するためにそれらを必要としません。インストール・ラインに +no_tkinter を追加して、X11 UI パッケージをサポートしない Pytho nをビルドすることを検討してください。これにより迅速にインストールできる結果となります。
注意: 古い Xcode バージョン(例えば 6.4) だと、clang 3.6 またはそれ以降の正しいバージョンの clang を取得するため、MacPorts を利用する必要があります。clang については Core / Build Config のバグを確認してください。

2.2 Mercurial のインストール

Mozilla のソースコードは Mercurial のレポジトリーにホストされています。OS X に Mercurial をインストールする方法はいくつかあります。

  1. SelenicSelenic から公式のバイナリーをインストールする
  2. MacPorts 経由でインストールする
    sudo port install mercurial
  3. Homebrew 経由でインストールする
    brew install mercurial
  4. Pip 経由でインストールする
    easy_install pip && pip install mercurial

一度インストールされたら、以下のコマンドで確認してください。

hg version

もし動作した場合は成功しています!他の開発者のような Mercurial の設定をしたい場合は、、Mercurial を用いた Mozilla ソースコードの取得を参照してください。

もし「ValueError: unknown locale: UTF-8」が発生する場合、Mercurial の wiki の Unix インストールページにある回避手段を参照してください。

レポジトリのクローンする際に HTTP 500 エラー(インターナルサーバーエラー)が発生する場合があります。これは Mac の Mercurial がサーバーに送信している内容によって発生すると思われます(これは MacPort および selenic.com の Mercurial バイナリで発生し得ます)。シェルやコンピューターの再起動や、Mercurial の再インストール(古いバージョン)を試してください。そして、動作したらこのドキュメントを更新してください。

3. Mozilla ソースコードのコピーを取得する

手順を完了させるために Mercurial を利用した Mozilla ソースコードの取得ドキュメントを読んでください。

# 以下のコマンドは現在のディレクトリに新しい「mozilla-central」
# ディレクトリを作成し、そこへリモートレジストリの内容がクローンされます。
# これを実行すると多くの時間がかかります。これはインターネット経由で
# 数百 MB のデータをコピーするためです。

$ hg clone https://hg.mozilla.org/mozilla-central/ mozilla-central
$ cd mozilla-central

(If you are building Firefox for Android, you should now return to the Android build instructions.)
(もし Android 版 Firefox をビルドする場合、Android のビルド手順をご覧ください)

4. ビルドオプションのために Mozilla ソースツリーを設定する

ソースツリーをチェックアウトし、ビルドオプションを記載する .mozconfig ファイルを作成します。このファイルの他のことについては、ビルドオプションの設定を参照してください。

簡単に始めるために、以下の内容をコピーしてソースツリーに.mozconfig として保存してください。

# Define where build files should go. This places them in the directory
# "obj-ff-dbg" under the current source directory
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-ff-dbg

# -s makes builds quieter by default
# -j4 allows 4 tasks to run in parallel. Set the number to be the amount of
# cores in your machine. 4 is a good number.
mk_add_options MOZ_MAKE_FLAGS="-s -j4"

# Enable debug builds
ac_add_options --enable-debug

10.7 SDK 以上をビルドでは必要とします。構築中のオペレーティングシステムのバージョンとの互換性を確保したい場合は、次のような行を追加して SDK を明示的に指定することができます。

ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.8.sdk

Mac OS X 10.10 もしくは Xcode バージョン 6 以降の場合、この設定はパスが異なるかもしれません。例:

ac_add_options --with-macos-sdk=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk

または、/アプリケーション/Xcode.app/Content/Developer/Platforms ディレクトリに SDK がインストールされているか確認してください。そして、そのパスを .mozconfig に記載してください。

Firefox は gcc 4.8 以前のバージョンでのビルドを保証しません。しかしビルドシステムは PATH から利用可能は clang を自動で選択します。もし該当しない場合、 CC と CXX を指定する必要があります。例えば、Homebrew で Clang 3.7 をインストールしている場合、以下のようにします。

CC=clang-mp-3.7
CXX=clang++-mp-3.7

もし前述した Homebrew で autoconf 2.13 をインストールした場合、以下の1行を .mozconfig に記載します。

mk_add_options AUTOCONF=/usr/local/Cellar/autoconf@2.13/2.13/bin/autoconf213

5. ビルド

.mozconfig ファイルを配置すると、以下のコマンドでビルドします!

./mach build

もしビルド手順がうまくいくと、obj-ff-dbg/dist/ にビルドしたアプリケーションが出来上がります。もし --enable-debug と共にビルドした場合、アプリケーション名は NightlyDebug.app です。アプリケーションを実行するためには以下のコマンドを実行します。

./mach run
注意: コンパイルされたアプリケーションの名前は、ビルドしているブランチの名前にすることもできます。たとえば、これらの命令を変更して mozilla-1.9.2 ブランチをフェッチすると、アプリケーションの名前は Namoroka.app または NamorokaDebug.app になります。

ハードウェア条件

特定のハードウェア条件はありません、Firefox をビルドするための全てのソフトウェア条件を搭載できるハードウェアである必要があります。Firefox ビルドに時間を要するため、多くの CPU 多くの RAM そしてたくさんのディスクを常に推奨します。

  • CPU: インテル CPU は必要です。PowerPC チップはサポートしていません。
  • メモリ: 最小 2GB RAM / 8GB を推奨します。
  • ディスクスペース: 少なくとも 30GB の空きディスクが必要です。

ソフトウェア条件

  • オペレーティングシステム: Mac OS X 10.7 以降. これは Apple メニューにあるソフトウェア更新を実行することで最新のリリースバージョンにアップグレード可能です。開発環境をセットアップするための管理者権限が必要となります。
  • 開発環境: Xcode. App Store から入手可能です。
  • パッケージマネージャ: MacPorts か Homebrew のいずれか。
  • mozilla-central からのビルドや、configure.in ファイルのバージョン 1.9 以降を変更することを考えている場合は、autoconf version 2.13 が必要です。Xcode に含まれ /usr/bin にインストールされる最新の autoconf はMozilla では非互換です(バグ 104642)。autoconf 213 は MacPorts または Homebrew からインストールできます。
  • Mercurial ソースコード管理システム (もし1.9.0 以降のコードを動作させる場合)。詳細は Mozillians のための Mercurial のOS X 上の特定のインストールを参照してください。

OS X で Mozilla をビルドするオプションはいくつか存在します。ビルドオプションの一般的な概要や .mozconfig ファイルの概要を知りたい場合は、ビルドオプションの設定を参照してください。ユニバーサルビルドの設定の特定の情報を知りたい場合は、Mac OS X ユニバーサルビルドを参照してください。

  • コンパイラー: Firefox リリースは gcc-4.8 以前をサポートしません。最新の clang のコピーが必要です。
    • clang を取得するにはいくつかの方法があります。
      • 最新版の Xcode。Xcode 7.0 以降またはオープンソース 3.6 リリースは動作します。(clang 3.6 のプレリリース Xcode 6.4 の場合、条件に一致しません。)
      • clang のウェブサイトの取得方情報に従って構築する。
      • いくつかのパッケージマネージャ(上述)。
    • clang をインストールしたら、PATH を通して設定されていることを確認してください。

ac_add_options で指定されたオプションは、.mozconfig ファイルに追加されるべき行です。

  • Mac OS X SDK: これにより、ビルドするシステムヘッダーとライブラリのバージョンが選択され、ビルドする製品が利用可能な完全な API が存在しない古いシステムでも実行できるようになります。このオプションを使用してSDKを選択すると、 /usr/include/usr/lib、および/System/Library のデフォルトのヘッダーとライブラリが上書きされます。 Mac OS X SDK は、Xcode のインストール時に /Developer/SDKs にインストールされ、インストーラの「カスタマイズ」画面で「相互開発」カテゴリを選択します。
    ac_add_options --with-macos-sdk=/path/to/SDK
    

    公式ビルドは/Developer/SDKs/MacOSX10.7.sdk を使用します。全ての公式リリースビルドの利用している SDK バージョンは build/macosx/universal/mozconfig.common で確認できます。

    特定の SDK に対してビルドされたアプリケーションは、通常、旧バージョンの Mac OS X で動作します。ただし、後のバージョンでのみ使用できる機能やフレームワークを使用しないように注意してください。一部のフレームワーク(特に AppKit)は、ビルド時に使用された SDK に応じて、実行時に動作が異なることに注意してください。これは、特定のプラットフォームや特定のビルドにのみ現れるバグの原因となる可能性があります。

OS Xビルドの場合、定義は次のように設定されます。

  • XP_MACOSX は定義されます。
  • XP_UNIX は定義されます。
  • XP_MACは定義されていません。 XP_MAC は廃止され、ソースツリーから削除されました(バグ 281889 を参照してください)。これは CFM (non-March-O)ビルドで利用していて、クラシック Mac OS (X 以前)のものです。

Mac を除外し、Unix プラットフォームに対応するコードを書く際は注意してください。

#if defined(XP_UNIX) && !defined(XP_MACOSX)

トラブルシューティング

  • GCC でビルドできない: Apple は、vanilla GCC 4.2 に基づいた GCC をリリースしています。LLVM-GCC(GCC 4.2 ベース)の LLVM-GCC をいまだにリリースしています。Mozilla はいかなる GCC 4.2 の種類はビルドをサポートしていません。OS X では non-Apple GCC (例えば stock) はサポートしていません(サポートのブロックはしていません。)。そのため OS X の clang を利用する必要があります。
  • Virex 7.2 の Fink を利用します: Fink と Virex 7.2 は衝突します。両方ともファイルは /sw に配置されます。もしVirex がインストールされている場合、7.2.1 以上にアップグレードする必要があります。Fink News に詳細は記載されています(2003-04-16)。
  • もし、fatal error: 'stdio.h' file not found:でビルドの設定(もしくは clang によるビルド)が失敗する場合: Xcode コマンドラインツールがインストールされ xcode-select --install.を実行したか確認してください。[jgilbert] 10.9 のインストーラの場合にこれが必要になります。
     
  • --enable-dtrace を指定して、configure: error: dtrace enabled but sys/sdt.h not found とビルドが失敗する場合: 標準の設定である 10.4 ではなく、10.5 SDK を使用しているか確認してください。

ドキュメントのタグと貢献者

 このページの貢献者: fscholz, mantaroh, hamasaki, teoli, Marsf
 最終更新者: fscholz,