さあ、はじめましょう
JHBuild でソフトウェアをビルドする前に、いくつかのセットアップを実行する必要があります。JHBuild には前提条件となるいくつかのソフトウェアがあるので、モジュールの取得やビルドに必要な、それらのツールをインストールする必要があります。
- 2.1. JHBuild のインストール
- 2.2. JHBuild の設定
- 2.3. ビルドの前提条件
- 2.4. JHBuild を使用する
2.1. JHBuild のインストール
JHBuild には Python の実行環境が必要です。Python >= 2.3 がインストールされていることを確認してください。
JHBuild のダウンロードは、git バージョン管理システムからダウンロードする方法を推奨します。これは、以下のコマンドにより行うことができます。コマンドは、~/checkout/gnome2 のような、すべてのソースコードのインストール先となる、新しいディレクトリから実行することを推奨します。
$ git clone git://git.gnome.org/jhbuild ... $
これにより、現在のディレクトリ配下に jhbuild という新しいディレクトリが作成され、そこに JHBuild がダウンロードされます。次に JHBuild のビルド、およびインストールを行います:
$ cd jhbuild $ ./autogen.sh ... $ make ... $ make install ... $
autotools、gnome-doc-utils がインストールされていない場合は、以下の方法で JHBuild をインストールします:
$ cd jhbuild $ make -f Makefile.plain ... $ make -f Makefile.plain install ... $
上記の手順が正常に終了すると、JHBuild を起動するための小さなシェルスクリプトが、~/.local/bin にインストールされるので、~/.local/bin を PATH に加えます:
$ PATH=$PATH:~/.local/bin $
常に ~/.local/bin を PATH に追加したい場合は、以下のコマンドを実行してください:
$ echo PATH=$PATH:~/.local/bin >> ~/.bashrc $
JHBuild を実行する前に、~/.jhbuildrc という設定ファイルをセットアップする必要があります。
2.2. JHBuild の設定
~/.jhbuildrc ファイルでは、JHBuild に設定の変数をセットするのに Python の構文が使用されます。サンプルは jhbuild のディレクトリにある、sample.jhbuildrc を参照してください。sample.jhbuildrc を ~/.jhbuildrc にコピーして、必要な箇所を修正します。
サンプルの設定では JHBuild は meta-gnome-desktop モジュールと、gnome-suites-core-3.0 モジュール セットからの依存モジュールをビルドします。JHBuild は ソース ツリーを ~/checkout/gnome に展開し、/opt/gnome のサブ ディレクトリにインストールします。この2つのディレクトリは書き込み可能でなければなりません。
設定の変数については、セクション 6 - 設定ファイル リファレンス を参照してください。最も一般的に使用される変数には、以下のものがあります:
- repos
-
あるリポジトリにたいして、リポジトリの場所を指定するディクショナリ (訳注:Python の辞書型のこと。他言語での連想配列に相当) です。この変数はモジュール開発者にとって便利です。デフォルトでは、JHBuild は匿名のリポジトリからコードをチェックアウトします。ディクショナリのキーはリポジトリの略称で、値は代わりとなるリポジトリの場所をあらわす文字列です。例:
repos['git.gnome.org'] = 'ssh://username@git.gnome.org/git/'
- moduleset
-
モジュール セットの名前を指定する文字列、または文字列のリスト(配列)です。これは JHBuild に含まれるファイル名(パスと拡張子を除く)、または 外部で管理されているモジュール セットの完全な HTTP URL のどちらでも構いません。HTTP URL のモジュール セットは、ローカルにキャッシュされます。2つ以上のモジュールセットに対して同じ名前が与えられていた場合は、最後のセットが優先されます。JHBuild により提供されるモジュール セットは、その時の GNOME の開発リリースに合わせて更新されます。
- modules
-
ビルドするモジュールを指定する、文字列のリストです。モジュールのリストは、buildone が使用できるようになるまで、すべての依存関係を含めて、再帰的に展開されます。デフォルトは ['meta-gnome-desktop'] です。
- checkoutroot
-
ソース ツリーを展開するディレクトリを指定する文字列です。buildroot がセットされていない場合は、ビルドにもこのディレクトリが使用されます。デフォルトは ~/checkout/gnome です。
- prefix
-
モジュールのインストール先を指定する文字列です。このディレクトリは書き込み可能でなければなりません。デフォルトは '/opt/gnome' です。
- autogenargs
-
すべてのモジュールの autogen.sh スクリプトに渡す引数を指定する文字列です。特定のモジュールに別の引数を指定したい場合は、module_autogenargs ディクショナリでオーバーライドすることができます。
- makeargs
-
make に渡す追加の引数の文字列リストです。デフォルトは '' です。
2.3. ビルドの前提条件
モジュールがビルドできるようになる前に、特定のビルド ツールがインストールされている必要があります。どのモジュールをビルドするかによりますが、共通のビルド ツールには、GNU Autotool (autoconf、automake、libtool、gettext)、および GNU Toolchain (binutils、gcc、g++)、pkg-config、Python などが含まれます。
JHBuild は sanitycheck コマンドを使用することにより、ツールがインストールされているかをチェックすることができます:
$ jhbuild sanitycheck
もしこのコマンドが何らかのメッセージを表示した場合、以下の2つのうちどちらかの方法でエラーを修正することができます:
-
ディストリビューションのリポジトリから、必要なパッケージをインストールします。各ディストリビューションの パッケージの名前 の一覧は、GNOME wiki で保守されています。ディストリビューションの必要なパッケージをインストールしたと確信できたら、sanitycheck コマンドを再び実行してください。
-
bootstrap コマンドを実行して、ビルドの前提条件となるツールをダウンロード、ビルド、そしてインストールします:
$ jhbuild bootstrap
完了したら、sanitycheck コマンドを実行して、必要なツールが存在するか確認します。
bootstrap コマンドは、必要なビルド ツールが依存するパッケージすべてのビルドはしません。あなたのディストリビューションが必要なパッケージを提供していない場合は、それらを JHBuild の環境の外でビルドする必要があります。
ビルド ツールの依存関係には、m4、perl そして C コンパイラ (例えば、gcc) が含まれます。
2.4. JHBuild を使用する
セットアップが完了すると、ソフトウェアをビルドするのに JHBuild を使用できるようになります。~/.jhbuildrc ファイルで選択されたモジュールをすべてビルドするには、以下のコマンドを実行します:
$ jhbuild build
JHBuild は、それぞれのモジュールのダウンロード、configure、コンパイル、そしてインストールを行います。どこかのステージでエラーが発生した場合、JHBuild はメニューを表示して、何をするべきかを尋ねます。選択肢にはエラーを訂正するためにシェルを開く、さまざまなステージからのビルドの再実行、そのモジュールを諦める、エラーを無視して処理を続行する、などが含まれます。
「このモジュールをビルドしない」を選択した場合、そのモジュールに依存するモジュールのビルドも失敗することになります。
表示されるメニューの例です:
[1] build を再実行する
[2] エラーを無視して install を続ける
[3] このモジュールをビルドしない
[4] シェルを起動する
[5] 設定をリロードする
[6] "ディレクトリを削除してもう一度やり直す" のフェーズへ移る
[7] "configure" のフェーズへ移る
[8] "clean" のフェーズへ移る
[9] "distclean" のフェーズへ移る
選択:
build コマンドの引数にモジュールの名前を渡すことにより、異なるモジュール セットと依存するモジュールをビルドすることができます。例えば 、以下は gtk+ をビルドする例です:
$ jhbuild build gtk+
もしビルドの途中で JHBuild がキャンセルされた場合、--start-at オプションを使用して特定のモジュールからビルドを再開することができます:
$ jhbuild build --start-at=pango
1つ(または複数)のモジュールを、依存関係を無視してビルドするために、JHBuild は buildone コマンドを提供しています。buildone コマンドが正常に終了するには、依存するモジュールが事前にビルド、インストールされているか、ディストリビューションのパッケージが提供されていなければなりません。
$ jhbuild buildone gtk+
JHBuild がビルドしようとするモジュールと依存関係、その他のビルドされるモジュールの一覧を得るためには、list コマンドを使用します:
$ jhbuild list
特定のモジュールの情報を取得するには、info コマンドを使用します:
$ jhbuild info gtk+
ビルドせずにソフトウェアのソースをダウンロード、更新だけを行うには、update コマンドを使用します。update コマンドはビルドする前にソースを修正する機会を提供します。またインターネットの帯域幅が変化する場合に便利です。
$ jhbuild update
後から、JHBuild はソースをダウンロードしたり更新することなく、すべてをビルドすることができます:
$ jhbuild build --no-network
JHBuild で使用しているのと同じ環境で特定のコマンドを実行するには、run コマンドを使用します:
$ jhbuild run program
JHBuild で使用しているのと同じ環境でシェルを起動するには、shell コマンドを使用します:
$ jhbuild shell