さあ、はじめましょう

JHBuild でソフトウェアをビルドする前に、いくつかのセットアップを実行する必要があります。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/binPATH に加えます:

$ PATH=$PATH:~/.local/bin
$

常に ~/.local/binPATH に追加したい場合は、以下のコマンドを実行してください:

$ 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 (autoconfautomakelibtoolgettext)、および GNU Toolchain (binutilsgccg++)、pkg-config、Python などが含まれます。

JHBuild は sanitycheck コマンドを使用することにより、ツールがインストールされているかをチェックすることができます:

$ jhbuild sanitycheck

もしこのコマンドが何らかのメッセージを表示した場合、以下の2つのうちどちらかの方法でエラーを修正することができます:

  1. ディストリビューションのリポジトリから、必要なパッケージをインストールします。各ディストリビューションの パッケージの名前 の一覧は、GNOME wiki で保守されています。ディストリビューションの必要なパッケージをインストールしたと確信できたら、sanitycheck コマンドを再び実行してください。

  2. bootstrap コマンドを実行して、ビルドの前提条件となるツールをダウンロード、ビルド、そしてインストールします:

    $ jhbuild bootstrap

    完了したら、sanitycheck コマンドを実行して、必要なツールが存在するか確認します。

    bootstrap コマンドは、必要なビルド ツールが依存するパッケージすべてのビルドはしません。あなたのディストリビューションが必要なパッケージを提供していない場合は、それらを JHBuild の環境の外でビルドする必要があります。

    ビルド ツールの依存関係には、m4perl そして 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