Firefox 49.0をビルドして実行する
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ファイルを作成します。
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を大学の講義の一環でいじっています。ここにその目次がありますので興味がある方は見てみてください。
Author And Source
この問題について(Firefox 49.0をビルドして実行する), 我々は、より多くの情報をここで見つけました https://qiita.com/fujibo/items/59c74113389ba8a8b49d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .