コマンドリファレンス

JHBuild は CVS などのツールに似たコマンドラインシンタックスを使用します。

jhbuild [global-options] command [command-arguments]

JHBuild のグローバルオプションは次のとおりです。

-f, --file config

デフォルトの ~/.config/jhbuildrc の代わりに、別の設定ファイルを使用します。

-m, --moduleset moduleset

設定ファイルに記述されたモジュールセットではなく、別のモジュールセットを使用します。このオプションは、モジュールセットが JHBuild のモジュールセットフォルダーにある場合は相対パスで指定できます。それ以外の場所にある場合は、絶対パスで指定します。

--no-interact

ユーザーに入力を求めません。無人でビルドを行い、ビルドが中断されないようにする場合に、このオプションは便利です。

--exit-on-error

Exit immediately if a module fails to build. This option is primarily useful in noninteractive mode, in order to ensure jhbuild does not continue to build any additional modules.

--conditions

Modify the condition flags to be different than those determined on the basis of the OS and those specified in jhbuildrc. Modifications are specified like -wayland or +docs in order to remove or add conditions. Multiple modifications can be separated by a comma like --conditions=+docs,-wayland or you can split them across multiple --conditions arguments.

Additionally, JHBuild checks the presence, and value, of the following environment variables:

JHBUILD_RUN_AS_ROOT

By default, JHBuild does not run when using the root user, to avoid destructive operations that may affect the whole system. In certain cases, though, it's acceptable to run JHBuild as root; for instance, inside a container, or in a continuous integration environment. Exporting the JHBUILD_RUN_AS_ROOT will disable the user id check at startup.

コマンドごとのオプションについては、以下で説明します。

5.1. autobuild

autobuild コマンドは、設定ファイルで指定されたモジュールを自動的にビルドして、結果を JhAutobuild にアップロードします。

jhbuild autobuild [--autogen] [--clean] [--distcheck] [--skip=module...] [--start-at=module] [--report-url=reporturl] [--verbose]

--autogen--clean--distcheck--skip、および --start-at のオプションは、build コマンドに引き渡されます。

--report-url=reporturl, -r reporturl

このオプションは、報告先である JhAutobuild の URL を指定します。

--verbose, -v

このオプションを指定すると、JHBuild はより詳細に出力します。

5.2. bootstrap

bootstrap コマンドは、ビルドユーティリティのセットをインストールします。ビルドユーティリティには、autoconfautomake および類似のユーティリティが含まれます。ビルドユーティリティの推奨インストール方法は、お使いのディストリビューションのパッケージ管理システムを使ったインストールです。Mac OS など、ディストリビューションのパッケージ管理システムでビルドユーティリティが提供されていない場合にだけ、bootstrap コマンドを使用してください。

jhbuild bootstrap

bootstrap コマンドがモジュールをビルドする方法は、build コマンドと同じですが、bootstrap.modules モジュールセットを使用します。

利用可能なオプションについては、build コマンドのドキュメントを参照してください。

5.3. build

build コマンドはひとつ以上のパッケージを、その依存関係も含めてビルドします。

jhbuild build [--autogen] [--clean] [--check] [--dist] [--distcheck] [--distclean] [--ignore-suggests] [--no-network] [--skip=module...] [--start-at=module] [--tags=tags] [-D date] [--no-xvfb] [--try-checkout] [--no-poison] [--force] [--build-optional-modules] [--min-age=time] [--nodeps] [module...]

コマンドラインでモジュール名が指定されなかった場合、設定ファイルの modules のリストが使用されます。

-a, --autogen

Always run autogen.sh before building modules.

-c, --clean

モジュールをビルドする前に、make clean を実行します。

--check

モジュールをビルドした後に、make check を実行します。

-d, --dist

モジュールをビルドした後に、make dist を実行します。

--distcheck

モジュールをビルドした後に、make distcheck を実行します。

--distclean

git モジュールにたいしては、モジュールをビルドする前に、git clean -dfx を実行し、その他のモジュールにたいしては、ビルドする前に、make distclean を実行します。

This option will delete any uncommitted changes.

--ignore-suggests

弱い依存関係にあるモジュールをビルドしません。

-n, --no-network

モジュールをビルドするときに、ネットワークにアクセスしません。ビルドのダウンロードステージ、および更新ステージをスキップします。ネットワークアクセスなしではモジュールをビルドできない場合、ビルドは失敗します。

-s, --skip=module,...

指定したモジュールをビルドしません。依存関係のビルドをスキップするのに使用します。

--tags=tag,...

tag で指定したタグにマッチしないモジュールを無視します。モジュールは、そのモジュールのモジュールセット名にマッチするタグを自動的に付与されます。

-t, --start-at=module

リストの先頭からではなく、指定したモジュールから開始します。このオプションはビルドを中断した場合などに便利です。

-D date

バージョン管理システムでサポートされていれば、ビルドの前にソースツリーを指定した日時に更新します。ISO の日時フォーマットで指定します。例 "2009-09-18 02:32Z"

-x, --no-xvfb

Xvfb によりシミュレートされたものではなく、実際の X サーバーでグラフィカルなテストを実行します。

-C, --try-checkout

ビルドが失敗した場合に、バージョン管理システムがサポートしていれば、ビルドを再試行する前に、強制的にチェックアウトして autogen.sh を実行します。

-N, --no-poison

ひとつ以上の依存関係のビルドに失敗した場合でも、強制的にモジュールのビルドを試みます。

-f, --force

ビルドポリシー上ビルドが不要でも、指定のモジュールをビルドします。

--build-optional-modules

依存関係がオプションとなるモジュールは、目的のモジュールをビルドするのに必須ではありません。このオプションはオプションの依存関係にあるモジュールを強制的にビルドします。

--min-age=time

指定された相対時間より最近にインストールされたモジュールをスキップします。time の文字列書式は、単位を付加した数字です。付加する単位は、次のものがサポートされています: 秒 (s)、分 (m)、時間 (h)、日 (d)。例えば、--min-age=2h は2時間前以降にビルドされたモジュールをスキップします。

--nodeps

インストールされていないシステムの依存モジュールを無視します。単独のシステムの依存モジュールを無視するには、そのモジュールを skip に追加します。

5.4. make

make コマンドは、特定のモジュールで活発に行われている開発作業向けのコマンドです。ソースのチェックアウトディレクトリで実行する必要があります。このコマンドは、buildone -nf $(basename $(pwd)) と同等です。

jhbuild make [--clean] [--check] [--distcheck] [--quiet]

このオプションは、buildone のオプションと同じです。

5.5. buildone

buildone コマンドは、build と似ていますが、依存するモジュールをビルドしません。このコマンドは、ひとつ以上のモジュールをリビルドするときに便利です。

jhbuild buildone [--autogen] [--clean] [--check] [--distcheck] [--distclean] [--no-network] [-D date] [--no-xvfb] [--force] [--min-age=time] [--nodeps] module...

The --autogen, --check, --clean, -d, --distcheck, --distclean, --no-network, -D, -x and --nodeps options are processed as per the build command.

コマンドラインで、少なくともひとつのモジュールを指定しなければなりません。

5.6. checkbranches

checkbranches は、バージョン管理システムでブランチが正しく定義されているか、およびブランチのモジュールセットに矛盾がないかをチェックします。

jhbuild checkbranches [--branch=branch...]
--branch=branch, -b branch

チェックするブランチを指定します。

$ jhbuild -m gnome-2.20 checkbranches
libgnomecanvas is missing branch definition for gnome-2-20
$

5.7. clean

clean コマンドはひとつ以上のモジュールのビルドディレクトリを clean します。

jhbuild clean [--skip=module...] [--start-at=module]

コマンドラインでモジュール名が指定されなかった場合、設定ファイルの modules のリストが使用されます。

利用可能なオプションについては build コマンドのドキュメントの説明を参照してください。

5.8. dot

dot コマンドは、モジュール間の依存関係によって形成された、有向グラフが記述されたファイルを生成します。このファイルは、ダイアグラムを生成する GraphViz ソフトウェアで処理することができます。

jhbuild dot [--soft-deps] [--clusters] [module...]

コマンドラインでモジュール名が指定されなかった場合、設定ファイルの modules のリストが使用されます。

--soft-deps オプションはモジュールから、推奨される依存関係への点線を追加します。--clusters オプションは metamodules によりモジュールをグループ化します。

dot コマンドの出力は、dot ユーティリティにパイプすることにより、PostScript ファイルを生成することができます:

$ jhbuild dot modules | dot -Tps > dependencies.ps

PNG イメージを生成することもできます:

$ jhbuild dot modules | dot -Tpng > dependencies.png
図 1JHBuild dot コマンドの出力例

5.9. gui

gui コマンドは、JHBuild のためにモジュールを選択したり、いくつかのビルドオプションを変更できる、グラフィカルなインターフェースを起動します。

jhbuild gui

グラフィカルなインターフェースの描画には GTK を使用しているので、追加のサポートライブラリが必要です。

5.10. info

info コマンドは、ひとつ以上のモジュールの情報を表示します。

jhbuild info [--installed] [module...]

このコマンドはモジュールの名前、タイプ、依存関係、依存するパッケージ、JHBuild で最後にインストールされた日時を表示します。もし可能なら、そのモジュールの CVS リポジトリやダウンロード元の URL などの、具体的な情報も表示されます。

コマンドにモジュールが指定されなかった場合、モジュールセットで定義されたすべてのモジュールについての情報が表示されます。

If the --installed option is specified, the output will be filtered to include only installed packages. This resulting output only contains modules that were actually built and installed by jhbuild. The output does not include system dependencies.

If the --installed option is specified together with one or more module names, then only the installed modules (not including system dependencies) are printed out. If at least one module is not installed, then the command will exit with a return value of 1.

5.11. list

list コマンドは、build コマンドがビルドするモジュールのリストを、展開して表示します。

jhbuild list [-a] [-r] [-s] [--start-at=module] [--tags=tags] [--ignore-suggests] [--list-optional-modules] [module...]

コマンドラインでモジュール名が指定されなかった場合、設定ファイルの modules のリストが使用されます。

--skip--start-at--tags、および --ignore-suggests のオプションは、build コマンドに引き渡されます。

-a, --all-modules

ビルドの依存関係に関わらず、モジュールセットのモジュールをすべて一覧します。

-r, --show-revision

モジュールがブランチとして設定されている場合、モジュール名とともにブランチ名が表示されます。

--list-optional-modules

このオプションは JHBuild にたいして、オプショナルな依存関係の一覧を強制します。

5.12. rdepends

rdepends コマンドは、モジュールの依存関係を逆方向に表示します。

jhbuild rdepends [module]
--dependencies

モジュールの横に、依存関係のパスを表示します。

--direct

指定されたモジュールと直接の依存関係にあるモジュールに、表示を限定します。

5.13. run

run コマンドは、JHBuild がモジュールをビルドするのに使用するのと同じ環境で、指定したコマンドを実行します。

jhbuild run [--in-builddir] [--in-checkoutdir] program [argument...]

GNOME をビルドするのに JHBuild を使用する場合、このコマンドは X の起動スクリプトなどで便利です。

--in-builddir=module

指定したモジュールの、ビルドディレクトリでコマンドを実行します。

--in-checkoutdir=module

指定したモジュールの、ソースディレクトリでコマンドを実行します。

5.14. sanitycheck

sanitycheck コマンドは、ビルド環境に問題がないことを確認するために、いくつかのチェックを行います。

jhbuild sanitycheck

以下のチェックが含まれます:

  • チェックアウト先とインストール先が書き込み可能か。

  • 必要なビルドツールがインストールされているか。

  • さまざまなバージョンの automake に関連付けられている aclocal コマンドの検索パスで、よく使用されるマクロが利用可能か。

  • XML カタログに DocBook の DTD と スタイルシートが含まれているか。

5.15. shell

shell コマンドは、JHBuild がモジュールをビルドするのと同じ環境で、ユーザーシェルを起動します。

jhbuild shell

このコマンドは次のコマンドと同等です。

$ jhbuild run $SHELL

このシェルがアクティブなときは、環境変数 UNDER_JHBUILD が "true" にセットされます。この変数の存在を利用して、JHBuild 制御下のシェルにあることがわかるようシェルのプロンプトをカスタマイズできます。たとえば、.bashrc に次の記述をするとよいでしょう。

	if [ -n "$UNDER_JHBUILD" ]; then
	    PS1="[jhbuild] $PS1"
	fi
      

これにより、あなたの bash シェルは、通常のプロンプトの前に [jhbuild] を表示するようになるので、どのシェルが JHBuild の制御下にあるかを識別しやすくなります。

5.16. sysdeps

sysdeps コマンドは次の情報を表示します。

  1. ビルド中に使用する、インストール済みシステムパッケージの一覧。JHBuild は、これらのモジュールをビルドせずに、代わりにシステムパッケージを使用します。

  2. 必須パッケージの一覧。ビルドを始めるにあたり、このパッケージがお使いのシステムで提供されている必要があります。

  3. オプションパッケージの一覧。対応するシステムパッケージが見つからないか、古すぎます。JHBuild は、指定のモジュールをビルドします。partial_buildFalse に設定されている場合は、オプションパッケージは表示されません。

jhbuild sysdeps [--install]
--install

This option installs system packages which are dependencies of the moduleset. The installation method depends on your distribution. System packages are installed using PackageKit, if available. For distributions using APT such as Debian and Ubuntu, this option requires apt-file to be installed.

例 1sysdeps の例
$ jhbuild sysdeps
System installed packages which are new enough:
  speex (speex.pc required=1.2rc1, installed=1.2rc1)
  lcms2 (lcms2.pc required=2.2, installed=2.2)
...
Required packages:
  System installed packages which are too old:
    (none)
  No matching system package installed:
    zlib (zlib.pc required=1.2)
Optional packages: (JHBuild will build the missing packages)
  System installed packages which are too old:
    WebKit (webkitgtk-3.0.pc required=1.5.1, installed=1.4.0)
    ...
  No matching system package installed:
    pulseaudio (libpulse.pc required=2.0)
    ...

5.17. tinderbox

tinderbox コマンドは、build コマンドに似ていますが、すべての端末出力を、ウェブサイトに掲載するのに適した HTML ファイルに出力します。このコマンドは Mozilla の Tinderbox や、Debian の Buildd と同じようにシステムをセットアップします。

jhbuild tinderbox [--autogen] [--clean] [--distclean] [--no-network] [--output=directory] [--skip=module...] [--start-at=module] [-D date] [-C] [-N] [-f] [--nodeps] [module...]

The --autogen, --clean, --distclean, --no-network, --skip, --start-at, -D, -C, -N, -f and --nodeps options are processed as per the build command.

-o, --output=directory

The directory to write the HTML files. JHBuild will create an index (index.html) and a HTML file for each module.

5.18. uninstall

uninstall コマンドは、ひとつ以上のモジュールをアンインストールします。

jhbuild uninstall module...

5.19. update

update コマンドは build コマンドに似ていますが、モジュールのビルドは行わずに、ダウンロードと更新のステージのみ実行します。

jhbuild update [--skip=module...] [--start-at=module] [--tags=tags] [--ignore-suggests] [-D date] [module...]

--skip--start-at--tags--ignore-suggests および -D オプションは、build コマンドと同様に処理されます。

5.20. updateone

updateone コマンドは update と似ていますが、依存するモジュールをビルドしません。このコマンドは、ひとつ以上のモジュールをビルドするときに便利です。

jhbuild updateone [-D date] module...

-D オプションは、build コマンドと同様に処理されます。

コマンドラインで、少なくともひとつのモジュールを指定しなければなりません。