そろそろいいかな、と思いたったのでChromium(Google Chrome)をビルドしてみた。Dev Channelで配布されているLinux版はDebian系のUbuntu用のみで、以前試しにDLして解凍、起動してみたが、やはりライブラリの依存エラーが山ほど出て使えなかったのが悔しくて対応前にビルドしてやろうと機会を狙っていたのだった。
Google Codeに解説があるのだが(準備編、ソース入手編、コンパイル編)、やはりその通りには行かないところもある。というか英文のあちこちを読み込んで、散らばってる補足をフォローしないと上手くいかなくて、トライ&エラーになった。その辺を補正しながら、手順をまとめてみる。
(1)ライブラリのインストール
Fedora標準ではインストールされていないパッケージを追加しなければならず、準備編にはFedoraでの実行手順(コマンド)も書いてある。
が、コメントが付いている様にそれでは足らず、実行するとさらに必要だった。
準備編にあるようにLinux版はまだ64bitに対応していないので、x86_64ライブラリがインストール済であってもx86版も追加せねばならない。
そこで修正したものがこれ、
$ su -c 'yum install subversion pkgconfig python perl gcc-c++ bison flex gperf nss-devel nspr-devel gtk2-devel.i586 glib2-devel.i586 freetype-devel.i586 atk-devel.i586 pango-devel.i586 cairo-devel.i586 fontconfig-devel.i586 GConf2-devel.i586 dbus-devel.i586 glibc-devel.i586 libX11-devel.i586 libXrender-devel.i586 libXext-devel.i586 alsa-lib-devel.i586 PackageKit-gtk-module.i586 libcanberra-gtk2.i586 bug-buddy.i586'
上記で約30MBほど。インストール環境によるので、まだ足りない場合があるかもしれない。その場合の対処は後述する。
(2)ビルド環境の設定
次にローカルのビルド環境を準備する。
ソースのダウンロードに3G、ビルドすると最大10Gも容量を食うらしいので、それに見合ったディレクトリを用意し、そこに移動する。そしてそこを環境変数に登録する。
$ mkdir Chromium $ cd Chromium $ export CHROMIUM_ROOT=`pwd`
次にChromiumをビルドするためのプロジェクト謹製のツールをダウンロードし、これも同じく環境に登録。この中にgclientやhammerといった解説ページに出てくるコマンドが含まれる。
$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools $ export PATH=`pwd`/depot_tools:"$PATH"
次にgclient(Python+SubversionによるGoogle Code向けのソース取得ツール)設定を行う。まず、
$ gclient config http://src.chromium.org/svn/trunk/src
でChromiumのレポジトリを設定する。
すると.gclientが作成されるので、エディタで開いて以下のように修正する。
solutions = [ { "name" : "src", "url" : "http://src.chromium.org/svn/trunk/src", "custom_deps" : { # To use the trunk of a component instead of what's in DEPS: #"component": "https://svnserver/component/trunk/", # To exclude a component from your working copy: "data/really_large_component": None, "src/third_party/WebKit/LayoutTests": None, }, "safesync_url": "http://chromium-status.appspot.com/lkgr" } ]
巨大なソース群には使うか判らないものも含まれるので、custom_depsにNoneをつけたディレクトリを登録すると含まめないことができる。
実際は以下も加えたのだが、効果がなかった。
"src/webkit/data/layout_tests/platform/chromium-win": None,
"src/webkit/data/layout_tests/platform/chromium-mac": None,
DLされるソースのリストを眺めているとテスト用のhtmlやJS,画像データ等がかなり含まれていた。(上記chromium-winで約256MB)単に触ってみたいだけなので全テストツールをいただいても無駄にしてしまう。
(3)ソースを取得
そして、以下のソースのダウンロードを行う。
最後の--forceは初回時に付けないとビルド時にエラーになるらしい。
$ gclient sync --force
DL時間は、本体関係(src/build等)だけで20分、他にもV8やWebkitといったコアエンジン等も加えて30分程かかった。結局2.62GBほどだった。
つづく...
追記(8/9)
「共有オブジェクトファイルを開けません」や「Not implemented reached in ...」といったメッセージが多く出るので、不足と見られるライブラリの分を(1)に追加。3つだが実際は依存関係のため全部で16つ、22MBほどになった。