2008-09-05

Linux 版 Google Chrome のソースコ一ド

2008-09-03、Google Chrome が公開された。リリースされたのは、Windows 版のみ。Mac / Linux 版はリリースされなかった。これらは現在、開発中とのアナウンスあり。

さて、ソース・コードだけは Mac 版も Linux 版も公開されている。

上記 Instruction ページをちゃんと読むと、ソースをコンパイルしてもブラウザー「Chrome」が作られないことが分かる。

じゃあ、あのソースは何なのか。答え。いくつかのモジュールがコンパイルされて、そのユニット・テストが走る。それだけ。Linux/Mac 版のソース・コードは、サグラダ・ファミリアのやうに未完成のまま公開されている。

ドキュメントに目を通さずに、とにかくコンパイルしたらバグありありのブラウザーが出来るでせう。ドキュメントはコンパイルが終わったら精読しやう。なんて不埓な考えを持っていると、コンパイル終了後、Chrome の実行ファイルはどこ〜? なんて探し回る羽目になる。そして、ドキュメントを読み直して、がっくりと肩を落とす。

コンパイルするなら...

上に書いてあるやうなおバカをやってしまったのだけど、せっかくなのでコンパイルの手順だけ書いておく。ほとんど Build Instructions の訳だけど、よければどうぞ。

ちなみに、ぼくの環境は Ubuntu Linux 8.04。Google の Linux 用テスト環境も Ubuntu 8 (Hardy Heron) の変種とのこと。

準備

必要なソフトウェアは以下の通り。

  • Subversion >= 1.4
  • pkg-config >= 0.20
  • Python >= 2.4
  • Perl >= 5.x
  • gcc/g++ >= 4.2
  • bison >= 2.3
  • flex >= 2.5.34
  • gperf >= 3.0.3
  • libnss3-dev >= 3.12

以下のコマンドで、これらのパッケージを全てインストールすることが出来る (Ubuntu 8.04 のパッケージは、上のバージョン条件を全て満たしている)。

$ sudo apt-get install subversion pkg-config python perl g++ bison flex gperf libnss3-dev

$CHROMIUM_ROOT

build ディレクトリーを $CHROMIUM_ROOT と呼ぶことにする。

depot_tools の入手

$ cd $CHROMIUM_ROOT
$ svn co http://src.chromium.org/svn/trunk/depot_tools/linux depot_tools

tar ball も公開されてるけど、欠けてるファイルがあるそうな (tar ball を使う場合は Subversion 1.5 が必要になるとのこと)

depot_tools の解説もどぞ。

Chromium の Check out (スナップ・ショット編)

現在、暫定的な処置として、ソースのスナップ・ショットを公開している。そちらをダウンロードして欲しいとのこと。おそらく一斉にアクセスされて、過負荷になることを恐れているんでせう。

といふわけで、スナップショットのダウンロード。

ダウンロードしたら展開。

$ cd $CHROMIUM_ROOT
$ tar xzvf ~/download/chromium.tgz
$ mv chromium/src ./

Chromium の Check out (gclient 編)

スナップショットを使わない場合、次の操作を行なう。

$ export LANG=C
$ ./depot_tools/gclient config http://src.chromium.org/svn/trunk/src
checking out latest depot_tools...
$ ./depot_tools/gclient sync
(update が実行される...)

環境変数 LANG を C に設定するのは、gclient のためのおまじない。

コンパイル

コンパイルは 30 分もかからない。

$ cd $CHROMIUM_ROOT/src/chrome
$ time ../third_party/scons/scons.py Hammer
...
...
../third_party/scons/scons.py Hammer  508.97s user 53.07s system 165% cpu 5:38.90 total

おまじないの解除を忘れずに。

$ export LANG=ja_JP.UTF-8

動かしてみる

実行ファイル (ユニット・テスト) は、$CHROMIUM_ROOT/src/chrome/Hammer に出来る。base_unittests と net_unittests を実行してみませう。

No comments:

Post a Comment