精力的に開発に関わっている人は、CVS を使って最新のソースをチェックアウトできます。この方法は、パッチやバグ修正を提供したい場合におすすめの方法です。というのも、文字通り最新の変更を入手でき、それらとあなた独自の変更をマージできるからです。
リリースのために製品をコンパイルしたい場合は、tarball で Mozilla ソースコードをダウンロードする 方が良いでしょう。
はじめに
CVS とは「Concurrent Versioning System」を意味します。CVS 全般について知りたい場合は、 ximbiot.com あるいは チュートリアル を参照してください。
誰でも CVS を経由してソースをチェックアウト (「pull (引っ張る)」 とか 「download (ダウンロードする)」 とも言われます) できますが、チェックイン (変更すること、「commit (コミット)」 とも言われます) は許可のある人しかできません。チェックインができる人は、モジュールオーナー やその代理人に限られます。「Mozilla をハックするhacking mozilla」 を読んで、チェックインの権限を得るにはどうしたらよいのか学んでください。SSH をつかって CVS に接続するも参考になるかもしれません。
必要条件
ソースをチェックアウトするには、CVS 1.11 以降を実行していなければなりません。1.12.13 は CVS サーバと相性が悪く、ハングアップします。1.12.9 は動作することがわかっています。さらに、Mozilla をチェックアウトしてビルドするには GNU make を使用しなければなりません。それ以外の「make」プログラムでは動きません。Windows、Mac および通常の GNU システム(GNU/Linux など)では、「make」と入力して GNU make を実行してください。非 GNU UNIX の多く(例えば Solaris など)では「gmake」を使用してください。
CVS クライアントの設定
Mozilla の CVS に匿名でアクセスするための 「cvsroot」(リポジトリを識別する文字列)は次のとおりです:
:pserver:[email protected]:/cvsroot
グラフィカル CVS インタフェースを使用する場合は次のサーバデータを使用してください:
- ホスト: "cvs-mirror.mozilla.org"
- リポジトリパス: "/cvsroot"
- ユーザ: "anonymous"
- パスワード: "anonymous"
- 接続方法: pserver
- ポート: デフォルト (2401)
引っ張ってくるプロジェクトを選択する
同じ基礎のソースコードから複数の異なるアプリケーションがビルドされているため、MOZ_CO_PROJECT
変数を使ったコマンドライン上で、どのアプリケーションをチェックアウトするかを選択しなければなりません。この情報は実際のソースコードがチェックアウトされる際に使用されます(チェックアウトしたいブランチに従って、下にある適当な チェックアウト セクション をご覧ください)。利用可能なオプションには次のようなものがあります:
- browser
- スタンドアローンな「Firefox」ブラウザです。
- スタンドアローンな「Thunderbird」メール・ニュースクライアントです。
- suite
- 古くからある、ブラウザ、メール・ニュース、コンポーザ、その他のアプリケーションからなる「Mozilla」 SeaMonkey スイートです。
- minimo
- 小型デバイス向けのスタンドアローンなブラウザです。
- composer
- スタンドアローンな HTML コンポーザです。
- calendar
- スタンドアローンな「Sunbird」カレンダーアプリケーションです。
- xulrunner
- 次世代の XUL アプリケーションランチャーです。
- camino
- Macintosh 用の「Camino」ネイティブブラウザです。
- all
- 上記のプロジェクトすべてに対応したソースに加えてユーティリティコードをチェックアウトします。
カンマで繋ぐことで複数のプロジェクトを指定できます:MOZ_CO_PROJECT=suite,browser,xulrunner
注意:独自の .mozconfig
ファイルを使用する場合は MOZ_CO_PROJECT
をコマンドラインではなくそのファイルで指定することもできます。
新しいソースツリーをチェックアウトする
Tinderbox を確認する
ツリーを引っ張ってくる前には適当な Tinderbox を毎回確認してコードベースが壊れていないかどうかを確かめるようにします。赤くなっている Tinderbox があれば、それが緑になるまでツリーを引っ張るのを待つことをお勧めします。
ブランチ HEAD
一から新しいソースツリーをチェックアウトするには、まず client.mk
ファイルを取得してください。このファイルには残りのツリーを引っ張ってくるのに使用するメイクファイルの命令が含まれています。
$ cvs -d :pserver:[email protected]:/cvsroot co mozilla/client.mk
注意:.mozconfig
ファイルをすでに用意してある場合は次のファイルもチェックアウトしなければなりません。
- Firefox
-
cvs -d :pserver:[email protected]:/cvsroot co mozilla/browser/config/mozconfig
- Thunderbird
-
cvs -d :pserver:[email protected]:/cvsroot co mozilla/mail/config/mozconfig
特定のブランチ
特定の CVS ブランチ のソースコードをチェックアウトしたい場合は代わりに次のようにしてください:
$ cvs -d :pserver:[email protected]:/cvsroot co -r BRANCH mozilla/client.mk
例えば、Firefox 2.0/Thunderbird 2.0/SeaMonkey 1.1 開発ブランチを引っ張ってくるには、上記の BRANCH を MOZILLA_1_8_BRANCH に置き換えてください。利用可能な Mozilla のブランチタグについては CVS タグ を参照してください。
前のセクション で示したプロジェクト固有の .mozconfig
ファイルを引っ張ってくる方法はもちろん HEAD 以外のブランチでも使用できます。
チェックアウト
正しいブランチを選んだら、次を実行してください:
$ cd mozilla $ make -f client.mk checkout MOZ_CO_PROJECT=option,option
上で触れたように、MOZ_CO_PROJECT
変数を指定済みの独自の .mozconfig
ファイルを使用する場合は、コマンドラインでこの作業を繰り返す必要はありません。
client.mk
を使用してください。直接 mozilla/
モジュールをチェックアウトしてはいけません。通常の Mozilla の開発がトランク上で行われているときでさえ、NSS、NSPR、LDAP C SDK といったさまざまなサブプロジェクトは安定版リリースタグから引っ張り出されます。
特定の時刻
ある特定の時刻においてのソースコードをチェックアウトしたい場合は MOZ_CO_DATE 変数を使用できます。例:MOZ_CO_DATE="20 Oct 2006 17:00 PDT"
これは .mozconfig
に加えることも、次のようにしてコマンドラインで指定することもできます。
$ cd mozilla $ make -f client.mk checkout MOZ_CO_DATE="20 Oct 2006 17:00 PDT" MOZ_CO_PROJECT=option,option
ソースツリーを異なるブランチに変更する
ブランチ HEAD
ソースツリー(ブランチ HEAD あるいは特定のブランチ)を最新のブランチ HEAD に更新するには、まずこれを実行してください:
$ cd mozilla $ cvs up -A client.mk
-A オプションは「貼り付いたブランチ」の情報を取り払い、ツリーを HEAD に更新できるようになります。
特定のブランチ
特定のブランチから引っ張ってきたソースツリーを更新するには代わりにこうしてください:
$ cd mozilla $ cvs up -r BRANCH client.mk
BRANCH は更新したいブランチのタグで置き換えてください。
ソースツリーを更新する
ソースツリーを更新するには、単に次のようにします:
$ make -f client.mk checkout MOZ_CO_PROJECT=option,option
やはり MOZ_CO_PROJECT
を定義してある独自の .mozconfig
ファイルを使用するのであれば、コマンドラインで作業を繰り返す必要はありません。
差分ファイルを作成する
リポジトリ内の現時点でのファイルと単一のローカルファイルとの差分を作成するには次のようにしてください:
$ cvs diff -u8p FILENAME
詳しくは パッチの作成 を参照してください。
ダウンロードしたソースツリーを変換する
mozilla.org からダウンロードしたソースツリー(ソースの tarball)は、通常のチェックアウト時のようにすでに CVS の情報が付け加えられた状態になっています。通常のツリーと同様、このツリーは特別なことをしなくても最新のコードに更新することができます。ソースツリーの更新方法は前のセクションをご覧ください。