LoginSignup
1
2

More than 5 years have passed since last update.

Firefox 49.0をビルドして実行する

Last updated at Posted at 2016-10-20

Firefox 49.0をビルドして実行する

環境

Ubuntu14.04 LTS

Download方法

Downloading Source Archives - Mozilla | MDN
こちらに従ってfirefoxのソースコードをダウンロードします。
念の為ダウンロード方法を丁寧に記載しておくと、ここにあるfirefox-49.0.source.tar.xzをダウンロードしてください。

tar.xzファイルの解凍についてはこのサイトによると以下のようにするそうです。

$ tar Jxfv xxx.tar.xz

あるいは

$ tar xvf firefox-49.0.source.tar.xz

としても問題なさそうです。

ビルドの方法

参考にしたサイト
Configuring Build Options - Mozilla | MDN

$ cd firefox-49.0

として展開したfirefoxのディレクトリに移ってから、そこにビルドする上でデバッグオプションをつけるために以下の内容が書かれた.mozconfigファイルを作成します。

.mozconfig
ac_add_options --enable-debug
ac_add_options --disable-optimize

ビルドするには以下のコマンドを実行してください。

$ ./mach build

おそらくどこかでパッケージが不足しているためビルドが止まると思います。その場合は必要なパッケージをインストールしてビルドし直す必要があります。以下が私の環境で不足していたパッケージのインストール方法です。

$ sudo apt-get install autoconf2.13 libgtk2.0-dev libgtk-3-dev libgconf2-dev libdbus-glib-1-dev yasm libasound2-dev libpulse-dev libxt-dev

パッケージがそのままの名前で出てこない時は先頭にlibをつけるとインストールするできる場合があります。
例えば今回であれば

$ sudo apt-get install dbus-glib-1-dev

などしてもインストールできません

ビルドにはかなり時間がかかります。参考までに、スペックの高い方のパソコン(Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz x 8core, メモリ:16GB)だと20分、低い方のパソコン(CPU:Intel(R) Celeron(R) CPU N2920 @ 1.86GHz
x 4core, メモリ:4GB)だと120分ほどかかりました。
なおCPUの使用率はほぼ100%となります。高い方のパソコンだとメモリは約10GBほど、低い方のパソコンではメモリはほぼすべて使用しました。パソコンのスペックが低い場合はパソコン上での別の作業に支障をきたすため他の作業はしないほうがいいかもしれません。
なお、二回目のビルド以降は変更部分だけビルドするためこれほど時間はかからないです。

実行方法

$ ./mach run

と入力すれば実行できます。

補足

実行は以下のコマンドでも行えます。

$ ./obj-x86_64-pc-linux-gnu/dist/bin/firefox

obj-x86_64-pc-linux-gnuの部分は環境によると思われます。このコマンドによって実行すると、普段使用しているfirefoxの設定が読み込まれるといったような違いが生じます。他にも生じていると思われるのでこちらのコマンドを使用することはおすすめしません。なお、./mach runを実行した時にこのファイルがいくらかのオプションを付けて動作していることがpdbで./mach runの挙動を追いかけるとわかります。

最後に

Firefoxを大学の講義の一環でいじっています。ここにその目次がありますので興味がある方は見てみてください。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2