<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!--*- mode: nxml -*-->
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- process to HTML with: xmlto xhtml-nochunks -m ../custom.xsl index.docbook -->
<article id="index" lang="ja">
  <articleinfo>
    <title>JHBuild マニュアル</title>
    <authorgroup>
      <author role="maintainer">
        <firstname>James</firstname>
        <surname>Henstridge</surname>
      </author>
      <author>
        <firstname>C.J.</firstname>
        <surname>Adams-Collier</surname>
      </author>
      <author>
        <firstname>Frederic</firstname>
        <surname>Peters</surname>
      </author>
      <author>
        <firstname>David</firstname>
        <surname>Turner</surname>
      </author>
    </authorgroup>
    <copyright>
      <year>2004, 2008</year>
      <holder>James Henstridge</holder>
    </copyright>
    <revhistory>
      <revision>
        <revnumber>JHBuild Manual v0.5</revnumber>
        <date>January 2008</date>
      </revision>
      <revision>
        <revnumber>JHBuild Manual v0.1</revnumber>
        <date>August 2007</date>
      </revision>
    </revhistory>
    <abstract role="description">
      <para>JHBuild はバージョン管理システムを利用して、GNOME デスクトップ全体をビルドするのに使用されるツールです。JHBuild は他のプロジェクトをビルドするようにカスタマイズすることもできます。</para>
    </abstract>
  </articleinfo>

  <section id="introduction">
    <title>はじめに</title>

    <para>JHBuild は <quote>モジュール(modules)</quote> と呼ばれる、ソース パッケージのあつまりを、簡単にビルドできるように作られたツールです。JHBuild はビルドできるモジュールの記述に、<quote>モジュール セット(module set)</quote> というファイルを使います。<quote>モジュール セット</quote> ファイルには、JHBuild があるモジュールをビルドするのに、何を必要としているかを見つけるための、依存関係の情報が含まれています。</para>

    <para>JHBuild のオリジナルは <ulink url="http://www.gnome.org">GNOME</ulink> をビルドするために作られましたが、その後、他のプロジェクトでも使用できるように拡張されています。<quote>モジュール セット</quote> ファイルはウェブ サーバー上に置くことができるので、JHBuild プロジェクトのビルド ルールとは独立させることができます。</para>

    <para>JHBuild can build modules from a variety of sources, including
      <ulink url="http://www.cvshome.org/">CVS</ulink>,
      <ulink url="http://subversion.tigris.org/">Subversion</ulink>,
      <ulink url="http://www.bazaar-vcs.org/">Bazaar</ulink>,
      <ulink url="http://darcs.net/">Darcs</ulink>,
      <ulink url="http://git.or.cz/">Git</ulink> and
      <ulink url="http://www.selenic.com/mercurial/">Mercurial</ulink>
      repositories, as well as Tar and Zip archives hosted on web or FTP sites.
      JHBuild can build modules using a variety of build systems, including
      Autotools, CMake, WAF, Python Distutils and Perl Makefiles.</para>

    <para>JHBuild は、ディストリビューションのパッケージ管理システムを置き換えるものではありません。JHBuild は、インストール先を prefix によって分離することにより、システムの他の部分に影響を及ぼすことなくソフトウェアをビルドするのを簡単にします。</para>
  </section>

  <section id="getting-started">
    <title>さあ、はじめましょう</title>

    <para>JHBuild でソフトウェアをビルドする前に、いくつかのセットアップを実行する必要があります。JHBuild には前提条件となるいくつかのソフトウェアがあるので、モジュールの取得やビルドに必要な、それらのツールをインストールする必要があります。</para>

    <section id="getting-started-install">
      <title>JHBuild のインストール</title>

      <para>JHBuild には Python の実行環境が必要です。Python &gt;= 2.3 がインストールされていることを確認してください。</para>

      <para>JHBuild のダウンロードは、<command>git</command> バージョン管理システムからダウンロードする方法を推奨します。これは、以下のコマンドにより行うことができます。コマンドは、<filename>~/checkout/gnome</filename> のような、すべてのソースコードのインストール先となる、新しいディレクトリから実行することを推奨します。</para>

<screen><prompt>$</prompt> <userinput>git clone git://git.gnome.org/jhbuild</userinput>
<computeroutput>...</computeroutput>
<prompt>$</prompt></screen>

      <para>これにより、現在のディレクトリ配下に <filename>jhbuild</filename> という新しいディレクトリが作成され、そこに JHBuild がダウンロードされます。次に JHBuild のビルド、およびインストールを行います:</para>

<screen><prompt>$</prompt> <userinput>cd jhbuild</userinput>
<prompt>$</prompt> <userinput>./autogen.sh</userinput>
<computeroutput>...</computeroutput>
<prompt>$</prompt> <userinput>make</userinput>
<computeroutput>...</computeroutput>
<prompt>$</prompt> <userinput>make install</userinput>
<computeroutput>...</computeroutput>
<prompt>$</prompt></screen>

      <para>If <application>gnome-common</application>,
        <application>yelp-tools</application> and
        <application>autotools</application> are available,
        <filename>autogen.sh</filename> will configure JHBuild to install via
        <application>autotools</application>. If
        <application>gnome-common</application>,
        <application>yelp-tools</application> and
        <application>autotools</application> are not available,
        <filename>autogen.sh</filename> will configure JHBuild to install via a
        plain Makefile. To always use the plain Makefile method pass
        <option>--simple-install</option> to <filename>autogen.sh</filename>.
      </para>

      <para>上記の手順が正常に終了すると、JHBuild を起動するための小さなシェルスクリプトが、<filename>~/.local/bin</filename> にインストールされるので、<filename>~/.local/bin</filename> を <envar>PATH</envar> に加えます:</para>

<screen><prompt>$</prompt> <userinput>PATH=$PATH:~/.local/bin</userinput>
<prompt>$</prompt></screen>

      <para>常に <filename>~/.local/bin</filename> を <envar>PATH</envar> に追加したい場合は、以下のコマンドを実行してください:</para>

<screen>
<prompt>$</prompt> <userinput>echo PATH=$PATH:~/.local/bin &gt;&gt; ~/.bashrc</userinput>
<prompt>$</prompt></screen>

      <para>JHBuild を実行する前に、<filename>~/.jhbuildrc</filename> という設定ファイルをセットアップする必要があります。</para>
    </section>

    <section id="getting-started-configure">
      <title>JHBuild の設定</title>

      <para>The <filename>~/.jhbuildrc</filename> file uses Python syntax to
        set configuration variables for JHBuild. An example is provided with
        JHBuild, see <filename>examples/sample.jhbuildrc</filename>. Copy
        <filename>examples/sample.jhbuildrc</filename> to
        <filename>~/.jhbuildrc</filename> and customize as required.</para>

      <para>The sample configuration will make JHBuild build the
        <application>meta-gnome-core</application> and
        <application>meta-gnome-apps-tested</application> modules and
        dependencies from the <systemitem>gnome-apps</systemitem> module
        set. JHBuild will unpack source trees to
        <filename>~/checkout/gnome</filename> and install all files to
        subdirectories of <filename>/opt/gnome</filename>. The two directories
        must be writable.</para>

      <para>設定の変数については、<xref linkend="config-reference"/> を参照してください。最も一般的に使用される変数には、以下のものがあります:</para>

      <variablelist>
<?dbhtml list-presentation="table"?>
        <varlistentry>
          <term>
            <link linkend="cfg-repos"><varname>repos</varname></link>
          </term>
          <listitem>
            <simpara>あるリポジトリにたいして、リポジトリの場所を指定するディクショナリ (訳注:Python の辞書型のこと。他言語での連想配列に相当) です。この変数はモジュール開発者にとって便利です。デフォルトでは、JHBuild は匿名のリポジトリからコードをチェックアウトします。ディクショナリのキーはリポジトリの略称で、値は代わりとなるリポジトリの場所をあらわす文字列です。例:</simpara>

<programlisting>repos['git.gnome.org'] = 'ssh://<replaceable>username</replaceable>@git.gnome.org/git/'</programlisting>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>
            <link linkend="cfg-moduleset"><varname>moduleset</varname></link>
          </term>
          <listitem>
            <simpara>モジュール セットの名前を指定する文字列、または文字列のリスト(配列)です。これは JHBuild に含まれるファイル名(パスと拡張子を除く)、または 外部で管理されているモジュール セットの完全な HTTP URL のどちらでも構いません。HTTP URL のモジュール セットは、ローカルにキャッシュされます。2つ以上のモジュールセットに対して同じ名前が与えられていた場合は、最後のセットが優先されます。JHBuild により提供されるモジュール セットは、その時の GNOME の開発リリースに合わせて更新されます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>
            <link linkend="cfg-modules"><varname>modules</varname></link>
          </term>
          <listitem>
            <simpara>A list of strings specifying the modules to build. The
              list of modules actually built will be recursively expanded to
              include all the dependencies unless the
              <link linkend="command-reference-buildone">
              <command>buildone</command></link> command is used. Defaults to
              <literal>['meta-gnome-desktop']</literal>.</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>
            <link linkend="cfg-checkoutroot"><varname>checkoutroot</varname></link>
          </term>
          <listitem>
            <simpara>A string specifying the directory to unpack source trees
              to. Unless <link linkend="cfg-buildroot">
              <varname>buildroot</varname></link> is set, builds will occur in
              this directory too. Defaults to
              <filename>~/checkout/gnome</filename>.</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>
            <link linkend="cfg-prefix"><varname>prefix</varname></link>
          </term>
          <listitem>
            <simpara>A string specifying the prefix to install modules to.
              <varname>prefix</varname> must be an absolute path. This directory
              must be writable. Defaults to <literal>'/opt/gnome'</literal>.
            </simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>
            <link linkend="cfg-autogenargs"><varname>autogenargs</varname></link>
          </term>
          <listitem>
            <simpara>A string containing arguments passed to the
              <command>autogen.sh</command> script of all modules. Can be
              overridden for particular modules using the
              <link linkend="cfg-module-autogenargs">
              <varname>module_autogenargs</varname></link> dictionary.</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>
            <link linkend="cfg-makeargs"><varname>makeargs</varname></link>
          </term>
          <listitem>
            <simpara><command>make</command> に渡す追加の引数の文字列リストです。デフォルトは <literal>''</literal> です。</simpara>
          </listitem>
        </varlistentry>
      </variablelist>
    </section>

    <section id="getting-started-bootstrap">
      <title>ビルドの前提条件</title>

      <para>Before any modules can be built, it is necessary to have certain
        build tools installed. Common build tools include the GNU Autotools
        (<application>autoconf</application>,
        <application>automake</application>, <application>libtool</application>
        and <application>gettext</application>), The GNU Toolchain
        (<application>binutils</application>, <application>gcc</application>,
        <application>g++</application>), make, pkg-config and Python, depending
        on which modules will be built.</para>

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

<screen><prompt>$</prompt> <userinput>jhbuild sanitycheck</userinput></screen>

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

      <orderedlist>
        <listitem>
          <simpara>ディストリビューションのリポジトリから、必要なパッケージをインストールします。各ディストリビューションの <ulink url="http://live.gnome.org/JhbuildDependencies">パッケージの名前</ulink> の一覧は、GNOME wiki で保守されています。ディストリビューションの必要なパッケージをインストールしたと確信できたら、<command>sanitycheck</command> コマンドを再び実行してください。</simpara>
        </listitem>
        <listitem>
          <simpara><command>bootstrap</command> コマンドを実行して、ビルドの前提条件となるツールをダウンロード、ビルド、そしてインストールします:</simpara>

<screen><prompt>$</prompt> <userinput>jhbuild bootstrap</userinput></screen>

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

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

            <para>ビルド ツールの依存関係には、<application>m4</application>、<application>perl</application> そして C コンパイラ (例えば、<application>gcc</application>) が含まれます。</para>
          </note>
        </listitem>
      </orderedlist>
    </section>

    <section id="getting-started-use">
      <title>JHBuild を使用する</title>

      <para>セットアップが完了すると、ソフトウェアをビルドするのに JHBuild を使用できるようになります。<filename>~/.jhbuildrc</filename> ファイルで選択されたモジュールをすべてビルドするには、以下のコマンドを実行します:</para>

<screen><prompt>$</prompt> <userinput>jhbuild build</userinput></screen>

      <para>JHBuild は、それぞれのモジュールのダウンロード、configure、コンパイル、そしてインストールを行います。どこかのステージでエラーが発生した場合、JHBuild はメニューを表示して、何をするべきかを尋ねます。選択肢にはエラーを訂正するためにシェルを開く、さまざまなステージからのビルドの再実行、そのモジュールを諦める、エラーを無視して処理を続行する、などが含まれます。</para>

      <note>
        <simpara>「このモジュールをビルドしない」を選択した場合、そのモジュールに依存するモジュールのビルドも失敗することになります。</simpara>
      </note>

      <para>表示されるメニューの例です:</para>

<screen>  [1] Rerun phase build
  [2] Ignore error and continue to install
  [3] Give up on module
  [4] Start shell
  [5] Reload configuration
  [6] Go to phase "wipe directory and start over"
  [7] Go to phase "configure"
  [8] Go to phase "clean"
  [9] Go to phase "distclean"
<prompt>choice:</prompt> </screen>

      <para><command>build</command> コマンドの引数にモジュールの名前を渡すことにより、異なるモジュール セットと依存するモジュールをビルドすることができます。例えば 、以下は gtk+ をビルドする例です:</para>

<screen><prompt>$</prompt> <userinput>jhbuild build gtk+</userinput></screen>

      <para>もしビルドの途中で JHBuild がキャンセルされた場合、<option>--start-at</option> オプションを使用して特定のモジュールからビルドを再開することができます:</para>

<screen><prompt>$</prompt> <userinput>jhbuild build --start-at=pango</userinput></screen>

      <para>1つ(または複数)のモジュールを、依存関係を無視してビルドするために、JHBuild は <command>buildone</command> コマンドを提供しています。<command>buildone</command> コマンドが正常に終了するには、依存するモジュールが事前にビルド、インストールされているか、ディストリビューションのパッケージが提供されていなければなりません。</para>

<screen><prompt>$</prompt> <userinput>jhbuild buildone gtk+</userinput></screen>

      <para>When actively developing a module, you are likely in a source
        working directory. The <command>make</command> will invoke the build
        system and install the module. This will be a key part of your
        edit-compile-install-test cycle.</para>

<screen><prompt>$</prompt> <userinput>jhbuild make</userinput></screen>

      <para>もしビルドの途中で JHBuild がキャンセルされた場合、<option>--start-at</option> オプションを使用して特定のモジュールからビルドを再開することができます:</para>

      <para>JHBuild がビルドしようとするモジュールと依存関係、その他のビルドされるモジュールの一覧を得るためには、<command>list</command> コマンドを使用します:</para>

<screen><prompt>$</prompt> <userinput>jhbuild list</userinput></screen>

      <para>特定のモジュールの情報を取得するには、<command>info</command> コマンドを使用します:</para>

<screen><prompt>$</prompt> <userinput>jhbuild info gtk+</userinput></screen>

      <para>ビルドせずにソフトウェアのソースをダウンロード、更新だけを行うには、<command>update</command> コマンドを使用します。<command>update</command> コマンドはビルドする前にソースを修正する機会を提供します。またインターネットの帯域幅が変化する場合に便利です。</para>

<screen><prompt>$</prompt> <userinput>jhbuild update</userinput></screen>

      <para>後から、JHBuild はソースをダウンロードしたり更新することなく、すべてをビルドすることができます:</para>

<screen><prompt>$</prompt> <userinput>jhbuild build --no-network</userinput></screen>

      <para>JHBuild で使用しているのと同じ環境で特定のコマンドを実行するには、<command>run</command> コマンドを使用します:</para>

<screen><prompt>$</prompt> <userinput>jhbuild run <replaceable>program</replaceable></userinput></screen>

      <para>JHBuild で使用しているのと同じ環境でシェルを起動するには、<command>shell</command> コマンドを使用します:</para>

<screen><prompt>$</prompt> <userinput>jhbuild shell</userinput></screen>
    </section>
  </section>

  <section id="jhbuild-and-gnome">
    <title>JHBuild と GNOME</title>

    <para>このセクションでは、GNOME をビルド、インストール、実行するガイダンスを提供します。</para>

    <section id="building-gnome">
      <title>GNOME をビルドする</title>

      <para>GNOME をビルドするためには、以下に示すようないくつかの開発用パッケージが必要となります:</para>

      <itemizedlist>
        <listitem>
          <simpara>XML カタログ(<filename>/etc/xml/catalog</filename>)を登録するために、DocBook XML DTD と XSLT スタイル シートが必要です。</simpara>
        </listitem>
        <listitem>
          <simpara>X ライブラリ</simpara>
        </listitem>
        <listitem>
          <simpara>Samba のための <filename>libsmbclient</filename>(Windows ネットワークのブラウジングで使用)。</simpara>
        </listitem>
        <listitem>
          <simpara>bzip2 のための <filename>libbz2</filename>。</simpara>
        </listitem>
        <listitem>
          <simpara><filename>libpng</filename>、<filename>libjpeg</filename>、<filename>libtiff</filename> (イメージのロードで使用)。</simpara>
        </listitem>
      </itemizedlist>

      <para>ディストリビューションのパッケージをインストールする場合、ディストリビューションに適合するようならば、対応する <quote>dev</quote>、または <quote>devel</quote> パッケージをインストールしてください。それぞれのディストリビューションのために、<ulink url="http://live.gnome.org/JhbuildDependencies">パッケージの名前</ulink> のリストが GNOME wiki で保守されています。</para>
    </section>

    <section id="running-single-application">
      <title>GNOME アプリケーションを単独で実行する</title>

      <para>ここでは、単独の GNOME アプリケーションを実行する方法について説明します。アプリケーションは現在のデスクトップ環境で実行できるはずです。アプリケーションを JHBuild で構築した GNOME で実行する方法については、<xref linkend="running-gnome"/> を参照してください。</para>

      <para>JHBuild のシェルを起動してください。JHBuild のシェルには、必要となるすべての環境変数が設定されています。</para>

<screen><prompt>$ </prompt><userinput>jhbuild shell</userinput></screen>

      <para>実行するアプリケーションが正しいことを確認します。例:</para>

<screen><prompt>$ </prompt><userinput>which gedit</userinput>
/opt/gnome/bin/gedit</screen>

      <para>アプリケーションを実行します:</para>

<screen><prompt>$ </prompt><userinput>gedit &amp;</userinput></screen>

      <para><command>run</command> コマンドでアプリケーションを実行することもできます:</para>

<screen><prompt>$ </prompt><userinput>jhbuild run gedit</userinput></screen>
    </section>

    <section id="running-gnome">
      <title>GNOME デスクトップ環境の実行</title>

      <para>JHBuild の GNOME を実行するための、新しいアカウントを作成します。ホーム ディレクトリに保存された設定に起因する問題を無視するために、JHBuild の GNOME のために異なるユーザー アカウントを使用することを推奨します。このマニュアルでは、新しいアカウントを <systemitem class="username">gnomedev</systemitem> として説明します。</para>

      <para>新しく作成した <systemitem class="username">gnomedev</systemitem> アカウントの、JHBuild 環境をセットアップします。<systemitem class="username">gnomedev</systemitem> のホーム ディレクトリに、<filename>~/.jhbuildrc</filename> と <filename>~/.local/bin/jhbuild</filename> のソフト リンクを作成します。</para>

      <para><systemitem class="username">gnomedev</systemitem> ユーザーで端末を開いてください。以下のコマンドにより、<envar>PATH</envar> 変数に <filename>~/.local/bin</filename> を追加します:</para>

<screen><prompt>$</prompt> <userinput>echo PATH=$PATH:~/.local/bin &gt;&gt; ~/.bashrc</userinput></screen>

      <para>JHBuild が動作することを確認します:</para>

<screen><prompt>$</prompt> <userinput>jhbuild run pkg-config gtk+-2.0 --modversion</userinput>
2.20.1</screen>

      <section>
        <title>GNOME をディスプレイ マネージャーで実行するためのセットアップ</title>

        <para>JHBuild の GNOME をビルド、およびインストールします。</para>

        <para>システム サービスを有効にします。JHBuild の GNOME は、<filename>/usr/bin</filename> のシステム <application>D-Bus</application> デーモンと、<filename>/usr/share/dbus-1/system-services/</filename> のシステム サービスを使用します。また、JHBuild の GNOME は、JHBuild のセッション <application>D-Bus</application> デーモンと、<filename><replaceable>/opt/gnome</replaceable>/share/dbus-1/services/</filename> のサービスを使用します。以下のコマンドで、GNOME の <varname>prefix</varname> (インストール先)を置き換えてください:</para>

<screen><prompt>$ </prompt><userinput>rm -rf <replaceable>/opt/gnome</replaceable>/var/run/dbus</userinput>
<prompt>$ </prompt><userinput>ln -s /var/run/dbus <replaceable>/opt/gnome</replaceable>/var/run/dbus</userinput>
<prompt>$ </prompt><userinput>rm -rf <replaceable>/opt/gnome</replaceable>/var/lib/dbus/machine-id</userinput>
<prompt>$ </prompt><userinput>ln -s /var/lib/dbus/machine-id <replaceable>/opt/gnome</replaceable>/var/lib/dbus/machine-id</userinput></screen>

        <para>以下の内容で GNOME の起動スクリプト <filename>/usr/bin/gnome-jhbuild-session</filename> を作成してください。GNOME は <varname>prefix</varname> (インストール先)で置き換えます:</para>

<programlisting>#!/bin/sh

GNOME=<replaceable>/opt/gnome</replaceable>
 
GDK_USE_XFT=1
XDG_DATA_DIRS=$XDG_DATA_DIRS:$GNOME/share
XDG_CONFIG_DIRS=$XDG_CONFIG_DIRS:$GNOME/etc/xdg

jhbuild run gnome-session
</programlisting>

        <para><filename>/usr/bin/gnome-jhbuild-session</filename> のモードを実行可能に設定します:</para>

<screen><prompt>$ </prompt><userinput>chmod a+x /usr/bin/gnome-jhbuild-session</userinput></screen>

        <para>ディスプレイ マネージャーに新しいセッションを追加するために、<filename>/usr/share/xsessions/gnome-jhbuild.desktop</filename> を作成して、以下を入力します:</para>

<programlisting>[Desktop Entry]
Name=GNOME (JHBuild)
Comment=This session logs you into GNOME testing session
TryExec=/usr/bin/gnome-jhbuild-session
Exec=/usr/bin/gnome-jhbuild-session
Icon=
Type=Application</programlisting>

        <para><command>gdm</command> を再起動します。</para>

        <para/>
      </section>

      <section>
        <title>ディスプレイ マネージャーから GNOME を起動する</title>

        <para>JHBuild の GNOME を実行するには、<systemitem class="username">gnomedev</systemitem> のログイン情報を入力する前に、ディスプレイ マネージャーで GNOME (JHBuild) セションを選択します。成功した場合は、JHBuild の GNOME が表示されます。不成功の場合は、<filename>~gnomedev/.xsession-errors</filename> ファイルのログを確認してください。</para>
      </section>
    </section>
  </section>

  <section id="buildbot-integration">
    <title>Buildbot との統合</title>

    <para><ulink url="http://buildbot.net">Buildbot</ulink> と共に使用することにより、JHBuild を継続的な統合ツールとして機能させることができます。Buildbot の設定は、<ulink url="http://build.gnome.org">build.gnome.org</ulink> の GNOME プロジェクトで使用されています。</para>

    <section id="buildbot-slave">
      <title>Buildbot スレーブ を設定する</title>

      <para>Buildbot スレーブは、JHBuild の通常インストールのバリエーションであり、Buildbot マスターへのリクエストを提供します。Buildbot のカスタマイズを追加する前に、JHBuild をセットアップして、ほとんどのモジュールを正常にビルドできるようにしておくことを推奨します。</para>

      <para>Buildbot コマンドは、<command>bot</command> コマンドのオプションとして指定します。必要なソフトウェアを追加でダウンロード、インストールするには、以下のコマンドを実行します:</para>

<screen><prompt>$</prompt> <userinput>jhbuild bot --setup</userinput></screen>

      <para>このステップが1度正常に完了すると、<filename>~/.jhbuildrc</filename> に3つの新しい設定が必要になります。</para>

      <note>
        <para>かわりの設定ファイルを使用することはできません。<link linkend="option-file"><option>--file</option></link> は期待した効果をもたらしません。</para>
      </note>

<programlisting>
jhbuildbot_master = 'build.gnome.org:9070'
jhbuildbot_slavename = 'slavename'
jhbuildbot_password = 'password'
</programlisting>

      <para><varname>jhbuildbot_master</varname> は Buildbot マスター サーバーを指定する文字列です; デフォルトは <literal>'build.gnome.org:9070'</literal> です。<varname>jhbuildbot_slavename</varname> と <varname>jhbuildbot_password</varname> は、マスター サーバーでスレーブを識別するためのものです。スレーブの名前とパスワードについては、Buildbot マスターの管理者に連絡してください。</para>

      <note>
        <para><ulink url="http://build.gnome.org">build.gnome.org</ulink> の管理者には、<ulink url="mailto:build-brigade-list@gnome.org">Build Brigade mailing list</ulink> で連絡することができます。</para>
      </note>
    </section>

<!-- TODO: configuring a buildbot master
    <section id="buildbot-master">
      <title>Configuring a Buildbot Master</title>
    </section>
    -->
  </section>

  <section id="command-reference">
    <title>コマンド リファレンス</title>

    <para>JHBuild は CVS のようなツールと似たコマンド ライン構文を使用します:</para>

    <cmdsynopsis><command>jhbuild</command>
      <arg><replaceable>global-options</replaceable></arg>
      <arg choice="plain"><replaceable>command</replaceable></arg>
      <arg><replaceable>command-arguments</replaceable></arg>
    </cmdsynopsis>

    <para>以下は JHBuild 全体のオプションです:</para>

    <variablelist>
      <varlistentry>
        <term id="option-file">
          <option>-f</option>, <option>--file</option>
          <replaceable>config</replaceable>
        </term>
        <listitem>
          <simpara><filename>~/.jhbuildrc</filename> のかわりに、指定された設定ファイルを使用します。</simpara>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-m</option>, <option>--moduleset</option>
          <replaceable>moduleset</replaceable>
        </term>
        <listitem>
          <simpara>設定ファイルに記述されたモジュール セットではなく、指定されたモジュール セットを使用します。このオプションは、モジュール セットが JHBuild のモジュール セット フォルダーにある場合は相対パスで指定することができます。それ以外の場所にある場合は、絶対パスで指定します。</simpara>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>--no-interact</option>
        </term>
        <listitem>
          <simpara>ユーザーに入力を求めません。このオプションは、ビルドが中断されないことが保証されるので、無人でビルドを行うような場合に便利です。</simpara>
        </listitem>
      </varlistentry>
    </variablelist>

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

    <section id="command-reference-autobuild">
      <title>autobuild</title>

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

      <cmdsynopsis><command>jhbuild autobuild</command>
        <arg>--autogen</arg>
        <arg>--clean</arg>
        <arg>--distcheck</arg>
        <arg rep="repeat">--skip=<replaceable>module</replaceable></arg>
        <arg>--start-at=<replaceable>module</replaceable></arg>
        <arg>--report-url=<replaceable>reporturl</replaceable></arg>
        <arg>--verbose</arg>
      </cmdsynopsis>

      <para><option>--autogen</option>、<option>--clean</option>、<option>--distcheck</option>、<option>--skip</option>、および <option>--start-at</option> のオプションは、<link linkend="command-reference-build"><command>build</command></link> コマンドに引き渡されます。</para>

      <variablelist>
        <varlistentry>
          <term><option>--report-url=<replaceable>reporturl</replaceable></option>, <option>-r <replaceable>reporturl</replaceable></option></term>
          <listitem>
            <simpara>このオプションは、報告先である JhAutobuild の URL を指定します。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--verbose</option>, <option>-v</option></term>
          <listitem>
            <simpara>指定された場合、JHBuild は、より詳細な出力を生成します。</simpara>
          </listitem>
        </varlistentry>
      </variablelist>
    </section>

    <section id="command-reference-bootstrap">
      <title>bootstrap</title>

      <para><command>bootstrap</command> command コマンドは、ほとんどのモジュールのビルドに必要となる、一連のビルド ユーティリティをインストールします(例 <application>autoconf</application>、<application>automake</application>、等)。</para>

      <cmdsynopsis><command>jhbuild bootstrap</command>
      </cmdsynopsis>

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

      <para>利用可能なオプションについては、<link linkend="command-reference-build"><command>build</command></link> コマンドを参照してください。</para>
    </section>

    <section id="command-reference-build">
      <title>build</title>

      <para><command>build</command> コマンドは1つ(または複数)のパッケージを、それらの依存関係も含めてビルドします。</para>

      <cmdsynopsis><command>jhbuild build</command>
        <arg>--autogen</arg>
        <arg>--clean</arg>
        <arg>--check</arg>
        <arg>--dist</arg>
        <arg>--distcheck</arg>
        <arg>--ignore-suggests</arg>
        <arg>--no-network</arg>
        <arg rep="repeat">--skip=<replaceable>module</replaceable></arg>
        <arg>--start-at=<replaceable>module</replaceable></arg>
        <arg>--tags=<replaceable>tags</replaceable></arg>
        <arg>-D <replaceable>date</replaceable></arg>
        <arg>--no-xvfb</arg>
        <arg>--try-checkout</arg>
        <arg>--no-poison</arg>
        <arg>--force</arg>
        <arg>--build-optional-modules</arg>
        <arg>--min-age=<replaceable>time</replaceable></arg>
        <arg rep="repeat">module</arg>
      </cmdsynopsis>

      <para>コマンドラインでモジュールの名前が指定されなかった場合、設定ファイルの <link linkend="cfg-modules">modules</link> のリストが使用されます。</para>

      <variablelist>
        <varlistentry>
          <term><option>-c</option>, <option>--clean</option></term>
          <listitem>
            <simpara>モジュールをビルドする前に、<command>make clean</command> を実行します。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>
            <option>--check</option>
          </term>
          <listitem>
            <simpara>モジュールをビルドした後に、<command>make check</command> を実行します。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-d</option>, <option>--dist</option></term>
          <listitem>
            <simpara>モジュールをビルドした後に、<command>make dist</command> を実行します。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>
            <option>--distcheck</option>
          </term>
          <listitem>
            <simpara>モジュールをビルドした後に、<command>make distcheck</command> を実行します。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>
            <option>--ignore-suggests</option>
          </term>
          <listitem>
            <simpara>推奨の依存関係をビルドしません。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-n</option>, <option>--no-network</option></term>
          <listitem>
            <simpara>モジュールをビルドするときに、ネットワークにアクセスしません。これによりビルドのステージで、ダウンロードと更新がスキップされます。ネットワークにアクセスしないとモジュールをビルドできない場合、モジュールのビルドは失敗します。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-s</option>, <option>--skip</option>=<replaceable>module,...</replaceable></term>
          <listitem>
            <simpara>指定されたモジュールをビルドしません。依存関係のビルドをスキップするのに使用されます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--tags</option>=<replaceable>tag,...</replaceable></term>
          <listitem>
            <simpara><replaceable>tag</replaceable> タグにマッチしないモジュールを無視します。tag とモジュールのモジュール セットの名前が、自動的にマッチングされます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-t</option>, <option>--start-at</option>=<replaceable>module</replaceable></term>
          <listitem>
            <simpara>リストの先頭からではなく、名前で指定されたモジュールから開始します。このオプションはビルドを中断したときなどに便利です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>
            <option>-D</option> <replaceable>date</replaceable>
          </term>
          <listitem>
            <simpara>バージョン管理システムでサポートされていれば、ビルドの前にソース ツリーを指定された日時に更新します。ISO の日時フォーマットが要求されます。例 <literal>"2009-09-18 02:32Z"</literal>。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-x</option>, <option>--no-xvfb</option></term>
          <listitem>
            <simpara>Xvfb によりシミュレートされたものではなく、実際の X サーバーでグラフィカルなテストを実行します。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-C</option>, <option>--try-checkout</option></term>
          <listitem>
            <simpara>もしビルドが失敗したとき、バージョン管理システムがサポートしている場合はビルドを再試行する前に、強制的にチェックアウトして <command>autogen.sh</command> を実行します。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-N</option>, <option>--no-poison</option></term>
          <listitem>
            <simpara>1つ(または複数)のモジュールの依存関係のビルドに失敗した場合、とにかくモジュールをビルドするよう JHBuild に強制します。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-f</option>, <option>--force</option></term>
          <listitem>
            <simpara>ビルドを要求しないポリシーでも、指定されたモジュールをビルドします。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>
            <option>--build-optional-modules</option>
          </term>
          <listitem>
            <simpara>モジュールをビルドするのに必須ではないモジュールは、オプショナルな依存関係としてリストされます。このオプションは JHBuild にたいして、オプショナルな依存関係のビルドを強制します。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--min-age</option>=<replaceable>time</replaceable></term>
          <listitem>
            <simpara>指定された相対時間より最近にインストールされたモジュールをスキップします。<replaceable>time</replaceable> の文字列書式は、単位を付加した数字です。付加する単位は、次のものがサポートされています: 秒 (s)、分 (m)、時間 (h)、日 (d)。例えば、<option>--min-age=2h</option> は2時間前以降にビルドされたモジュールをスキップします。</simpara>
          </listitem>
        </varlistentry>
      </variablelist>
    </section>

    <section id="command-reference-make">
      <title>make</title>

      <para>The <command>make</command> command is for actively developing on
        a particular module. It requires the current directory be a source
        checkout, and does the equivalent of <command>buildone -nf $(basename
        $(pwd))</command>.</para>

      <cmdsynopsis><command>jhbuild make</command>
        <arg>--clean</arg>
        <arg>--check</arg>
        <arg>--distcheck</arg>
        <arg>--quiet</arg>
      </cmdsynopsis>

      <para>The options are the same as those available for the
        <link linkend="command-reference-build"><command>buildone</command></link>
        command.</para>
    </section>

    <section id="command-reference-buildone">
      <title>buildone</title>

      <para><command>buildone</command> コマンドは、<command>build</command> と似ていますが、依存するモジュールをビルドしません。このコマンドは、1つ(または複数)のモジュールをリビルドするときに便利です。</para>

      <cmdsynopsis><command>jhbuild buildone</command>
        <arg>--clean</arg>
        <arg>--check</arg>
        <arg>--distcheck</arg>
        <arg>--no-network</arg>
        <arg>-D <replaceable>date</replaceable></arg>
        <arg>--no-xvfb</arg>
        <arg>--force</arg>
        <arg>--min-age=<replaceable>time</replaceable></arg>
        <arg choice="plain" rep="repeat">module</arg>
      </cmdsynopsis>

      <para>The <option>--check</option>, <option>--clean</option>,
        <option>-d</option>, <option>--distcheck</option>,
        <option>--no-network</option>, <option>-D</option> and
        <option>-x</option> options are processed as per the
        <link linkend="command-reference-build"><command>build</command></link>
        command.</para>

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

    <section id="command-reference-checkbranches">
      <title>checkbranches</title>

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

      <cmdsynopsis><command>jhbuild checkbranches</command>
        <arg rep="repeat">--branch=<replaceable>branch</replaceable></arg>
      </cmdsynopsis>

      <variablelist>
        <varlistentry>
          <term>
            <option>--branch</option>=<replaceable>branch</replaceable>,
            <option>-b</option> <replaceable>branch</replaceable>
          </term>
          <listitem>
            <simpara>チェックするブランチを指定します。</simpara>
          </listitem>
        </varlistentry>
      </variablelist>

<screen><prompt>$</prompt> <userinput>jhbuild -m gnome-2.20 checkbranches</userinput>
libgnomecanvas is missing branch definition for gnome-2-20
<prompt>$</prompt></screen>
    </section>

    <section id="command-reference-clean">
      <title>clean</title>

      <para><command>clean</command> コマンドは1つ(または複数)のビルド ディレクトリをクリーンします。</para>

      <cmdsynopsis><command>jhbuild clean</command>
        <arg rep="repeat">--skip=<replaceable>module</replaceable></arg>
        <arg>--start-at=<replaceable>module</replaceable></arg>
      </cmdsynopsis>

      <para>コマンドラインでモジュールの名前が指定されなかった場合、設定ファイルの <link linkend="cfg-modules">modules</link> のリストが使用されます。</para>

      <para>利用可能なオプションについては <link linkend="command-reference-build"><command>build</command></link> コマンドのドキュメントの説明を参照してください。</para>
    </section>

    <section id="command-reference-dot">
      <title>dot</title>

      <para><command>dot</command> コマンドは、モジュール間の依存関係によって形成された、有向グラフが記述されたファイルを生成します。このファイルは、ダイアグラムを生成する <ulink url="http://www.graphviz.org/">GraphViz</ulink> ソフトウェアで処理することができます。</para>

      <cmdsynopsis><command>jhbuild dot</command>
        <arg>--soft-deps</arg>
        <arg>--clusters</arg>
        <arg rep="repeat">module</arg>
      </cmdsynopsis>

      <para>コマンドラインでモジュールの名前が指定されなかった場合、設定ファイルの <link linkend="cfg-modules">modules</link> のリストが使用されます。</para>

      <para><option>--soft-deps</option> オプションはモジュールから、推奨される依存関係への点線を追加します。<option>--clusters</option> オプションは <link linkend="moduleset-syntax-defs-metamodule">metamodules</link> によりモジュールをグループ化します。</para>

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

<screen><prompt>$</prompt> <userinput>jhbuild dot <replaceable>modules</replaceable> | dot -Tps &gt; dependencies.ps</userinput></screen>

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

<screen><prompt>$</prompt> <userinput>jhbuild dot <replaceable>modules</replaceable> | dot -Tpng &gt; dependencies.png</userinput></screen>

      <figure id="sample-dot-output">
        <title>JHBuild dot コマンドの出力例</title>
        <screenshot>
          <mediaobject>
            <imageobject>
              <imagedata fileref="figures/jhbuild_sample_dot_output.png" format="PNG"/>
            </imageobject>
          </mediaobject>
        </screenshot>
      </figure>
    </section>

    <section id="command-reference-gui">
      <title>gui</title>

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

      <cmdsynopsis><command>jhbuild gui</command>
      </cmdsynopsis>

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

    <section id="command-reference-info">
      <title>info</title>

      <para><command>info</command> コマンドは、1つ(または複数)のモジュールの情報を表示します。</para>

      <cmdsynopsis><command>jhbuild info</command>
        <arg choice="plain" rep="repeat">module</arg>
      </cmdsynopsis>

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

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

    <section id="command-reference-list">
      <title>list</title>

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

      <cmdsynopsis><command>jhbuild list</command>
        <arg>-a</arg>
        <arg>-r</arg>
        <arg>-s</arg>
        <arg>--start-at=<replaceable>module</replaceable></arg>
        <arg>--tags=<replaceable>tags</replaceable></arg>
        <arg>--ignore-suggests</arg>
        <arg>--list-optional-modules</arg>
        <arg rep="repeat">module</arg>
      </cmdsynopsis>

      <para>コマンドラインでモジュールの名前が指定されなかった場合、設定ファイルの <link linkend="cfg-modules">modules</link> のリストが使用されます。</para>

      <para><option>--skip</option>、<option>--start-at</option>、<option>--tags</option>、および <option>--ignore-suggests</option> のオプションは、<link linkend="command-reference-build"><command>build</command></link> コマンドに引き渡されます。</para>

      <variablelist>
        <varlistentry>
          <term><option>-a</option>, <option>--all-modules</option></term>
          <listitem>
            <simpara>ビルドの依存関係に関わらず、モジュール セットのモジュールをすべて一覧します。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-r</option>, <option>--show-revision</option></term>
          <listitem>
            <simpara>モジュールがブランチとして設定されている場合、モジュール名とともにブランチ名が表示されます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>
            <option>--list-optional-modules</option>
          </term>
          <listitem>
            <simpara>このオプションは JHBuild にたいして、オプショナルな依存関係の一覧を強制します。</simpara>
          </listitem>
        </varlistentry>
      </variablelist>
    </section>

    <section id="command-reference-rdepends">
      <title>rdepends</title>

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

      <cmdsynopsis><command>jhbuild rdepends</command>
        <arg>module</arg>
      </cmdsynopsis>

      <variablelist>
        <varlistentry>
          <term>
            <option>--dependencies</option>
          </term>
          <listitem>
            <simpara>モジュールの横に、依存関係のパスを表示します。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>
            <option>--direct</option>
          </term>
          <listitem>
            <simpara>指定されたモジュールと直接の依存関係にあるモジュールに、表示を限定します。</simpara>
          </listitem>
        </varlistentry>
      </variablelist>
    </section>

    <section id="command-reference-run">
      <title>run</title>

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

      <cmdsynopsis><command>jhbuild run</command>
        <arg>--in-builddir</arg>
        <arg>--in-checkoutdir</arg>
        <arg choice="plain"><replaceable>program</replaceable></arg>
        <arg rep="repeat"><replaceable>argument</replaceable></arg>
      </cmdsynopsis>

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

      <variablelist>
        <varlistentry>
          <term><option>--in-builddir</option>=<replaceable>module</replaceable></term>
          <listitem>
            <simpara>指定したモジュールの、ビルド ディレクトリでコマンドを実行します。</simpara>
          </listitem>
        </varlistentry>
      </variablelist>

      <variablelist>
        <varlistentry>
          <term><option>--in-checkoutdir</option>=<replaceable>module</replaceable></term>
          <listitem>
            <simpara>指定したモジュールの、ソース ディレクトリでコマンドを実行します。</simpara>
          </listitem>
        </varlistentry>
      </variablelist>
    </section>

    <section id="command-reference-sanitycheck">
      <title>sanitycheck</title>

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

      <cmdsynopsis><command>jhbuild sanitycheck</command>
      </cmdsynopsis>

      <para>以下のチェックが含まれます:</para>

      <itemizedlist>
        <listitem>
          <simpara>チェックアウト先とインストール先が書き込み可能か。</simpara>
        </listitem>
        <listitem>
          <simpara>必要なビルド ツールがインストールされているか。</simpara>
        </listitem>
        <listitem>
          <simpara>さまざまなバージョンの <command>automake</command> に関連付けられている <command>aclocal</command> コマンドの検索パスで、よく使用されるマクロが利用可能か。</simpara>
        </listitem>
        <listitem>
          <simpara>XML カタログに DocBook の DTD と スタイル シートが含まれているか。</simpara>
        </listitem>
      </itemizedlist>
    </section>

    <section id="command-reference-shell">
      <title>shell</title>

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

      <cmdsynopsis><command>jhbuild shell</command>
      </cmdsynopsis>

      <para>このコマンドは以下のコマンドと同じです:</para>

<screen><prompt>$</prompt> <userinput>jhbuild run $SHELL</userinput></screen>

      <para>このシェルが実行されている場合、環境変数 <envar>UNDER_JHBUILD</envar> が "true" に設定されます。これを利用すれば、JHBuild の制御下にあるシェルであることが確信できるように、あなたのシェルのプロンプトをカスタマイズできます。例えば、あなたの <filename>.bashrc</filename> に、以下のような設定をしたいと思うでしょう:</para>

<screen>
	if [ -n "$UNDER_JHBUILD" ]; then
	    PS1="[jhbuild] $PS1"
	fi
      </screen>

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

    <section id="command-reference-sysdeps">
      <title>sysdeps</title>

      <para>The <command>sysdeps</command> command displays a list of
        dependency modules that are provided by installed system packages.
        JHBuild will not build the modules from source if the configuration
        variable
        <link linkend="cfg-partial-build"><varname>partial_build</varname></link>
        is <constant>True</constant>.</para>

      <para>The <command>sysdeps</command> command also displays a list of
        dependency modules where the installed system packages are too old.
        JHBuild will build newer modules from source.</para>

      <para>The <command>sysdeps</command> command also displays a list of
        dependency modules with no matching system package installed.</para>

      <cmdsynopsis><command>jhbuild sysdeps</command>
        <arg>--install</arg>
      </cmdsynopsis>

      <variablelist>
        <varlistentry>
          <term>
            <option>--install</option>
          </term>
          <listitem>
            <simpara>This option installs system packages which are
              dependencies of the moduleset. The system packages are installed
              using <application>PackageKit</application>.</simpara>
          </listitem>
        </varlistentry>
      </variablelist>

      <example>
        <title><command>sysdeps</command> example</title>
<screen><prompt>$</prompt> <userinput>jhbuild sysdeps</userinput>
System installed packages which are new enough:
  speex (required=1.2rc1, installed=1.2rc1)
  libdiscid (required=0.2.2, installed=0.2.2)
  telepathy-farsight (required=0.0.14, installed=0.0.16)
  lcms2 (required=2.2, installed=2.2)
...
System installed packages which are too old:
  webkitgtk-3.0 (required=1.5.1, installed=1.4.0)
  ...
No matching system package installed:
  libvala-0.14 (required=0.13.1)
  ...</screen>
      </example>
    </section>

    <section id="command-reference-tinderbox">
      <title>tinderbox</title>

      <para><command>tinderbox</command> コマンドは、<command>build</command> コマンドに似ていますが、すべての端末出力を、ウェブサイトで発行しやすいような HTML ファイルに出力します。このコマンドは Mozilla の Tinderbox や、Debian の Buildd と同じようにシステムをセットアップします。</para>

      <cmdsynopsis><command>jhbuild tinderbox</command>
        <arg>--clean</arg>
        <arg>--no-network</arg>
        <arg>--output=<replaceable>directory</replaceable></arg>
        <arg rep="repeat">--skip=<replaceable>module</replaceable></arg>
        <arg>--start-at=<replaceable>module</replaceable></arg>
        <arg>-D <replaceable>date</replaceable></arg>
        <arg>-C</arg>
        <arg>-N</arg>
        <arg>-f</arg>
        <arg rep="repeat">module</arg>
      </cmdsynopsis>

      <para>The <option>--clean</option>, <option>--no-network</option>,
        <option>--skip</option>, <option>--start-at</option>,
        <option>-D</option>, <option>-C</option>, <option>-N</option> and
        <option>-f</option> options are processed as per the
        <link linkend="command-reference-build"><command>build</command></link>
        command.</para>

      <variablelist>
        <varlistentry>
          <term><option>-o</option>, <option>--output</option>=<replaceable>directory</replaceable></term>
          <listitem>
            <simpara>HTML ファイルを出力するディレクトリです。</simpara>
          </listitem>
        </varlistentry>
      </variablelist>
    </section>

    <section id="command-reference-uninstall">
      <title>uninstall</title>

      <para><command>uninstall</command> コマンドは、1つ(または複数)のモジュールをアン インストールします。</para>

      <cmdsynopsis><command>jhbuild uninstall</command>
        <arg choice="plain" rep="repeat">module</arg>
      </cmdsynopsis>
    </section>

    <section id="command-reference-update">
      <title>update</title>

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

      <cmdsynopsis><command>jhbuild update</command>
        <arg rep="repeat">--skip=<replaceable>module</replaceable></arg>
        <arg>--start-at=<replaceable>module</replaceable></arg>
        <arg>--tags=<replaceable>tags</replaceable></arg>
        <arg>--ignore-suggests</arg>
        <arg>-D <replaceable>date</replaceable></arg>
        <arg rep="repeat">module</arg>
      </cmdsynopsis>

      <para><option>--skip</option>、<option>--start-at</option>、<option>--tags</option>、<option>--ignore-suggests</option>、および <option>-D</option> options オプションは、 <link linkend="command-reference-build"><command>build</command></link> コマンドで処理されます。</para>
    </section>

    <section id="command-reference-updateone">
      <title>updateone</title>

      <para><command>updateone</command> コマンドは <command>update</command> と似ていますが、依存するモジュールをビルドしません。このコマンドは、1つ(または複数)のモジュールをビルドするときに便利です。</para>

      <cmdsynopsis><command>jhbuild updateone</command>
        <arg>-D <replaceable>date</replaceable></arg>
        <arg choice="plain" rep="repeat">module</arg>
      </cmdsynopsis>

      <para><option>-D</option> オプションは、<link linkend="command-reference-build"><command>build</command></link> コマンドで処理されます。</para>

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

  <section id="config-reference">
    <title>設定ファイル リファレンス</title>

    <para><filename>~/.jhbuildrc</filename> ファイルでは、標準的な Python 構文を使用します。このファイルは実行されて、ネーム スペースで定義された変数の結果は、 JHBuild がどのように動作するかを制御するために使用されます。一連のデフォルト値は、ユーザーの設定ファイルの実行前にネーム スペースに挿入されます。</para>

    <para>変数にブール値をセットする場合、以下の例で示す構文が使用されます:</para>

<programlisting>use_local_modulesets = True</programlisting>

    <para>変数に文字列をセットする場合、以下の例で示す構文が使用されます:</para>

<programlisting>autogenargs = '--disable-static --disable-gtk-doc'</programlisting>

    <para>リストへ設定値をセットする場合、以下の例で示す構文が使用されます:</para>

<programlisting>skip = ['mozilla'、'pulseaudio']</programlisting>

    <para>ディクショナリへ設定値をセットする場合、以下の例で示す構文が使用されます:</para>

<programlisting>repos['git.gnome.org'] = 'ssh://username@git.gnome.org/git/'</programlisting>

    <section id="config-reference-variables">
      <title>設定変数</title>

      <variablelist>
<?dbhtml list-presentation="table"?>
        <varlistentry>
          <term id="cfg-autogenargs">
            <varname>autogenargs</varname>
          </term>
          <listitem>
            <simpara>すべてのモジュールの <command>autogen.sh</command> スクリプトに渡す引数を指定する文字列です。特定のモジュールに別の引数を指定したい場合は、<varname>module_autogenargs</varname> ディクショナリでオーバーライドできます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-branches">
            <varname>branches</varname>
          </term>
          <listitem>
            <simpara>A dictionary specifying which branch to use for specific
              modules. This is useful if you are making some changes on a branch
              of a module and want JHBuild to build that branch instead of the
              one listed in the module set.</simpara>

            <simpara>ブランチの定義の仕方は、バージョン管理システムに依存します:</simpara>

            <itemizedlist>
              <listitem>
                <simpara>CVS: リビジョンを指定します。例: <literal>'BRANCH-PROJECT-0_8'</literal></simpara>
              </listitem>
              <listitem>
                <simpara>Bazaar: モジュール ブランチの URI を指定します。例: <literal>'http://bzr.example.net/project/gnome-2-28'</literal></simpara>
              </listitem>
              <listitem>
                <simpara>Git: タプル で指定します。最初の部分はオプションのリポジトリ(または None 値)、2番目にはブランチの名前です。例: <literal>('git://git.example.net/project'、'gnome-2-28')</literal></simpara>

                <example>
                  <title>Simple example</title>
<programlisting>branches['modulename'] = (None, 'branchname')</programlisting>
                </example>
              </listitem>
              <listitem>
                <simpara>Subversion: モジュール ブランチの URI を指定します。例: <literal>'svn://svn.example.net/project/gnome-2-28'</literal></simpara>
              </listitem>
            </itemizedlist>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-builddir-pattern">
            <varname>builddir_pattern</varname>
          </term>
          <listitem>
            <simpara>ビルド ディレクトリの名前を生成するための、<function>printf</function> スタイルの書式設定パターンです。これはソースとビルド ツリーが違う場合のみ使用します。書式の中の <literal>%s</literal> は、<varname>checkoutdir</varname> で置き換えられます。デフォルトは <literal>'%s'</literal> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-buildroot">
            <varname>buildroot</varname>
          </term>
          <listitem>
            <simpara>ビルド ツリーの親ディレクトリを指定する文字列です。デフォルトは <constant>None</constant> で、ビルドはソース ツリーで実行されます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-buildscript">
            <varname>buildscript</varname>
          </term>
          <listitem>
            <simpara>どのビルド スクリプトを使用するかを指定する文字列です。推奨の設定はデフォルトの <literal>terminal</literal> です。特に <literal>gtk</literal> に設定しないでください。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cf-build-policy">
            <varname>build_policy</varname>
          </term>
          <listitem>
            <simpara>どのモジュールをビルドするかを指定する文字列です。利用可能なオプションは、要求されたモジュールをすべてビルドする <literal>all</literal>、変更されたモジュールだけをビルドする <literal>updated</literal>、モジュール または 依存するモジュールが変更されたときにモジュールをビルドする <literal>updated-deps</literal> の3つです。デフォルトは <literal>updated-deps</literal> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-checkoutroot">
            <varname>checkoutroot</varname>
          </term>
          <listitem>
            <simpara>ソース ツリーを展開するディレクトリを指定する文字列です。<varname>buildroot</varname> がセットされていない場合は、ビルドにもこのディレクトリが使用されます。デフォルトは <filename>~/checkout/gnome</filename> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-checkout-mode">
            <varname>checkout_mode</varname>
          </term>
          <listitem>
            <simpara>バージョン管理されているディレクトリにたいして、どのようにチェックアウトを行うかを指定する文字列です。デフォルトは <literal>update</literal> です。モジュールごとに指定する場合は、<varname>module_checkout_mode</varname> を使用できます。利用可能な値は <literal>update</literal> (チェックアウト ディレクトリを更新する)、<literal>clobber</literal> (ソースをチェックアウトする前にディレクトリを掃除する)、<literal>export</literal> (ディレクトリを掃除した後にソースのバージョン管理外コピーを作成する)、そして <literal>copy</literal> (ディレクトリにビルドされるものとは別にチェックアウトします)です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-copy-dir">
            <varname>copy_dir</varname>
          </term>
          <listitem>
            <simpara>A string specifying the directory to copy to, if the copy
              <link linkend="cfg-checkout-mode">
              <varname>checkout_mode</varname></link> is in use. Defaults to the
              checkout directory.</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-cvs-program">
            <varname>cvs_program</varname>
          </term>
          <listitem>
            <simpara>cvs をサポートするために、どのプログラムを使用するかを指定する文字列です。<literal>git-cvsimport</literal>、または <literal>cvs</literal> が指定できます。デフォルトは <literal>cvs</literal> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-dvcs-mirror-dir">
            <varname>dvcs_mirror_dir</varname>
          </term>
          <listitem>
            <simpara>ローカルミラーのディレクトリを指定する文字列です。JHBuild は指定されたディレクトリにリポジトリのローカルミラーを作成します。ミラーは複数のリポジトリグループによって共有することができ、ローカルのクローンにたいしてハードリンクが使用されるため領域と時間の節約につながります。<command>update</command> および <command>updateone</command> コマンドはミラーを作成し、オンラインのリポジトリから新規のコミットをフェッチします。このオプションは Git および Bazaar リポジトリにたいしてのみサポートされます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-installprog">
            <varname>installprog</varname>
          </term>
          <listitem>
            <simpara><literal>/usr/bin/install</literal> のかわりに使用するプログラムを指定する文字列です。利用可能な場合、デフォルトは JHBuild により提供される<literal>install-check</literal> ラッパーです。<literal>install-check</literal> ラッパーはヘッダーのインストールを最適化することにより、リビルドにかかる時間を短縮します。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-ignore-suggests">
            <varname>ignore_suggests</varname>
          </term>
          <listitem>
            <simpara>依存ツリーを計算するときに、推奨される依存関係を無視するかどうかを指定するブール値です。デフォルトは <constant>False</constant> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-interact">
            <varname>interact</varname>
          </term>
          <listitem>
            <simpara>ユーザーと対話するかどうかを指定するブール値です。この値を <constant>False</constant> に設定することは、<option>--no-interact</option> オプションを指定するのと同じです。デフォルトは <constant>True</constant> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-makeargs">
            <varname>makeargs</varname>
          </term>
          <listitem>
            <simpara><command>make</command> に渡す追加の引数の文字列リストです。デフォルトは <literal>''</literal> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-makecheck">
            <varname>makecheck</varname>
          </term>
          <listitem>
            <simpara><command>make</command> の後に、<command>make check</command> を実行するかどうかを指定するブール値です。デフォルトは <constant>False</constant> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-makecheck-advistory">
            <varname>makecheck_advisory</varname>
          </term>
          <listitem>
            <simpara><command>make check</command> が失敗したときに、ビルドを失敗させない(メッセージの表示のみ)にするかどうかを指定する文字列です。デフォルトは <constant>False</constant> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-makeclean">
            <varname>makeclean</varname>
          </term>
          <listitem>
            <simpara><command>make</command> の前に、<command>make clean</command> を実行するかどうかを指定するブール値です。デフォルトは <constant>False</constant> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-makedist">
            <varname>makedist</varname>
          </term>
          <listitem>
            <simpara><command>make</command> の後に、<command>make dist</command> を実行するかどうかを指定するブール値です。デフォルトは <constant>False</constant> です。これは <option>--dist</option> オプションを指定するのと同じです。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-makedistcheck">
            <varname>makedistcheck</varname>
          </term>
          <listitem>
            <simpara><command>make</command> の後に、<command>make distcheck</command> を実行するかどうかを指定するブール値です。デフォルトは <constant>False</constant> です。これは <option>--distcheck</option> オプションを指定するのと同じです。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-module-autogenargs">
            <varname>module_autogenargs</varname>
          </term>
          <listitem>
            <simpara>モジュールの名前と、<command>autogen.sh</command> に渡す引数をマッピングするディクショナリです。<varname>module_autogenargs</varname> の設定は、<varname>autogenargs</varname> のグローバルな設定より優先されます。モジュールがディクショナリに指定されていないときは、グローバルな <varname>autogenargs</varname> が使用されます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-module-checkout-mode">
            <varname>module_checkout_mode</varname>
          </term>
          <listitem>
            <simpara>チェックアウト モードをモジュールごとに指定するためのディクショナリです。この設定はグローバルな <varname>checkout_mode</varname> の設定より優先されます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-module-makeargs">
            <varname>module_makeargs</varname>
          </term>
          <listitem>
            <simpara>モジュールの名前と、<command>make</command> に渡す引数をマッピングするディクショナリです。<varname>module_makeargs</varname> の設定は、<varname>makeargs</varname> の値を置き換えます。モジュールがディクショナリに指定されていないときは、グローバルな <varname>makeargs</varname> が使用されます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-module-makecheck">
            <varname>module_makecheck</varname>
          </term>
          <listitem>
            <simpara>モジュールの名前と、<command>make</command> の後に <command>make check</command> を実行するかどうかの指定をマッピングするディクショナリです。<varname>module_makecheck</varname> の設定は、<varname>makecheck</varname> の値より優先されます。モジュールがディクショナリに指定されていないときは、グローバルな <varname>makecheck</varname> の設定が使用されます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-module-nopoison">
            <varname>module_nopoison</varname>
          </term>
          <listitem>
            <simpara>モジュールの名前とブール値をマッピングするディクショナリです。モジュールに <constant>True</constant> が設定されている場合、JHBuild は指定されたモジュールのビルドが失敗しても、依存するモジュールをビルドしようと試みます。<varname>module_nopoison</varname> の設定は、<varname>nopoison</varname> の設定より優先されます。モジュールがディクショナリに指定されていないときは、グローバルな <varname>nopoison</varname> の設定が使用されます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-module-extra-env">
            <varname>module_extra_env</varname>
          </term>
          <listitem>
            <simpara>モジュールの名前と、追加の環境変数と値のディクショナリをマッピングするディクショナリです。モジュールのためにコマンドを実行するときに使用されます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-modules">
            <varname>modules</varname>
          </term>
          <listitem>
            <simpara>A list of strings specifying the modules to build. The
              list of modules actually built will be recursively expanded to
              include all the dependencies unless the
              <link linkend="command-reference-buildone">
              <command>buildone</command></link> command is used. Defaults to
              <literal>['meta-gnome-desktop']</literal>.</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-moduleset">
            <varname>moduleset</varname>
          </term>
          <listitem>
            <simpara>モジュール セットの名前を指定する文字列、または文字列のリスト(配列)です。これは JHBuild に含まれるファイル名(パスと拡張子を除く)、または 外部で管理されているモジュール セットの完全な HTTP URL のどちらでも構いません。HTTP URL のモジュール セットは、ローカルにキャッシュされます。2つ以上のモジュールセットに対して同じ名前が与えられていた場合は、最後のセットが優先されます。JHBuild により提供されるモジュール セットは、その時の GNOME の開発リリースに合わせて更新されます。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-modulesets-dir">
            <varname>modulesets_dir</varname>
          </term>
          <listitem>
            <simpara>モジュール セットのあるディレクトリを指定する文字列です。デフォルトは JHBuild のソースの <filename>modulesets/</filename> ディレクトリです。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-nice-build">
            <varname>nice_build</varname>
          </term>
          <listitem>
            <simpara>Run builds under the <constant>SCHED_IDLE</constant>
              priority on Linux, <command>nice</command> on other Unix. This can
              dramatically improve desktop interactivity for parallel builds
              while having only a negligible impact on build throughput.
            </simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-nobuild">
            <varname>nobuild</varname>
          </term>
          <listitem>
            <simpara>ブール値です。<constant>True</constant> に設定した場合、JHBuild はモジュールのビルドを行わず、ソースのダウンロードと展開のみ行います。デフォルトは <constant>False</constant> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-nonetwork">
            <varname>nonetwork</varname>
          </term>
          <listitem>
            <simpara>ネットワークにアクセスするかどうかを指定するブール値です。この設定は CVS モジュールのチェックアウトと更新、および tarball のダウンロードと、モジュール セットの更新に影響を与えます。<constant>True</constant> に設定した場合、<option>--no-network</option> オプションを指定したのと同じです。デフォルトは <constant>False</constant> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-nonotify">
            <varname>nonotify</varname>
          </term>
          <listitem>
            <simpara>A boolean value specifying whether to emit notifications
              using the notification daemon. If set to
              <constant>False</constant>, notifications are emitted. Defaults to
              <constant>True</constant>.</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-nopoison">
            <varname>nopoison</varname>
          </term>
          <listitem>
            <simpara>ブール値です。<constant>True</constant> に設定された場合、依存関係にある1つ以上のモジュールのビルドに失敗しても、JHBuild はビルドを試みます。このオプションは <option>--no-poison</option> を引数で指定するのと同じです。デフォルトは <constant>False</constant> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-notrayicon">
            <varname>notrayicon</varname>
          </term>
          <listitem>
            <simpara>A boolean value specifying whether to show an icon in the
              system tray using Zenity. If set to <constant>False</constant>,
              notifications are emitted. Defaults to <constant>True</constant>.
            </simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-noxvfb">
            <varname>noxvfb</varname>
          </term>
          <listitem>
            <simpara>ブール値です。<constant>True</constant> に設定した場合、JHBuild は <command>Xvfb</command> を使用せずに、実際の X サーバーでグラフィック テストを実行します。このオプションは、<option>--no-xvfb</option> を指定するのと同じです。デフォルトは <constant>False</constant> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-partial-build">
            <varname>partial_build</varname>
          </term>
          <listitem>
            <simpara>A boolean value, if set to <constant>True</constant>
              JHBuild will not build dependency modules if corresponding system
              packages are installed and sufficient version. Defaults to
              <constant>True</constant>.</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-prefix">
            <varname>prefix</varname>
          </term>
          <listitem>
            <simpara>A string specifying the prefix to install modules to.
              <varname>prefix</varname> must be an absolute path. This directory
              must be writable. Defaults to <literal>'/opt/gnome'</literal>.
            </simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-pretty-print">
            <varname>pretty_print</varname>
          </term>
          <listitem>
            <simpara>サブ プロセスの出力を、綺麗にプリントするかどうかを指定するブール値です。CVS の出力のみをサポートします。この指定により問題が発生する場合は無効にしてください。デフォルトは <literal>True</literal> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-print-command-pattern">
            <varname>print_command_pattern</varname>
          </term>
          <listitem>
            <simpara>A string displayed before JHBuild executes a command.
              <varname>%(command)s</varname> in the string will be replaced with
              the command about to be executed. <varname>%(cwd)s</varname> in
              the string will be replaced with the current working directory.
              Defaults to <literal>'%(command)s'</literal>.</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-progress-bar">
            <varname>progress_bar</varname>
          </term>
          <listitem>
            <simpara><link linkend="cfg-quiet-mode">quiet mode</link> で、プログレスバーを表示するかどうかを指定するブール値です。デフォルトは <literal>True</literal> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-quiet-mode">
            <varname>quiet_mode</varname>
          </term>
          <listitem>
            <simpara>ブール値です。<constant>True</constant> に設定した場合、コマンドの出力を抑止します。デフォルトは <literal>False</literal> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term id="cfg-repos">
            <varname>repos</varname>
          </term>
          <listitem>
            <simpara>特定のリポジトリにたいして、かわりのリポジトリ ロケーションを指定するディクショナリです。この設定変数は、モジュール開発者にとって便利です。デフォルトでは、JHBuild は匿名のリポジトリ ロケーションから、コードをチェックアウトします。ディクショナリのキーはリポジトリの略称で、値はリポジトリ ロケーションの文字列です。例:</simpara>

<programlisting>repos['git.gnome.org'] = 'ssh://username@git.gnome.org/git/'</programlisting>
          </listitem>
        </varlistentry>
        <varlistentry id="cfg-skip">
          <term>
            <varname>skip</varname>
          </term>
          <listitem>
            <simpara>スキップするモジュールを、リストで指定します。これは <option>--skip</option> のコマンドライン オプションをリスト型に拡張したものです。デフォルトではこのリストは空です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry id="cfg-sticky-date">
          <term>
            <varname>sticky_date</varname>
          </term>
          <listitem>
            <simpara>文字列型です。もし指定された場合、背後のバージョン管理システムがサポートしていれば、JHBuild はビルドの前に、ソース ツリーを指定された日付に更新します。ここで指定できるのは ISO の日付書式です。例: <literal>'<replaceable>yyyy</replaceable>-<replaceable>mm</replaceable>-<replaceable>dd</replaceable>'</literal>。デフォルトは <constant>None</constant> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry id="cfg-svn-program">
          <term>
            <varname>svn_program</varname>
          </term>
          <listitem>
            <simpara>subversion をサポートするために、どのプログラムを使用するかを指定する文字列です。<literal>svn</literal>、または <literal>git-svn</literal> が指定できます。デフォルトは <literal>svn</literal> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry id="cfg-tarballdir">
          <term>
            <varname>tarballdir</varname>
          </term>
          <listitem>
            <simpara>文字列型です。指定された場合、tarball を <varname>checkoutroot</varname> ではなく、指定されたディレクトリにダウンロードします。これは JHBuild で複数の環境を使用していたり、<varname>checkoutroot</varname> を定期的にクリーンしていて、なおかつ帯域幅の使用を減らしたい場合などに便利です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry id="cfg-tinderbox-outputdir">
          <term>
            <varname>tinderbox_outputdir</varname>
          </term>
          <listitem>
            <simpara><command>jhbuild tinderbox</command> の出力を保存するディレクトリを指定する文字列です。この設定は <option>--output</option> オプションより優先されます。デフォルトは <constant>None</constant> なので、コマンドライン オプションで指定するか、設定ファイルの中でこれが指定されていなければなりません。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry id="cfg-trycheckout">
          <term>
            <varname>trycheckout</varname>
          </term>
          <listitem>
            <simpara>ブール値です。<constant>True</constant> を指定した場合、JHBuild は失敗したときに次の解決を自動的に試みます。 1) <command>autogen.sh</command> コマンドを再実行する 2) バージョン管理システムから新しいバージョンをチェック アウトする。この設定は <option>--try-checkout</option> オプションを指定するのと同じです。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry id="cfg-use-lib64">
          <term>
            <varname>use_lib64</varname>
          </term>
          <listitem>
            <simpara><filename>lib64</filename> ディレクトリにライブラリをインストールするかどうかを指定するブール値です。設定した場合、configure のオプションに <literal>--libdir=\${exec_prefix}/lib64</literal> を引き渡します。<literal>x86_64</literal>、<literal>ppc64</literal>、<literal>s390x</literal> で Linux を実行している場合のデフォルトは <constant>True</constant> です。これ以外のシステムの場合、デフォルトは <constant>False</constant> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry id="cfg-use-local-modulesets">
          <term>
            <varname>use_local_modulesets</varname>
          </term>
          <listitem>
            <simpara>GNOME のバージョン管理システムから、オン ザ フライでモジュール セットを取得するのではなく、JHBuild のソースコードと一緒にチェックアウトしたモジュール セットを使用するかどうかを指定するブール値です。デフォルトは <constant>False</constant> です。</simpara>
          </listitem>
        </varlistentry>
        <varlistentry id="cfg-xvfbargs">
          <term>
            <varname>xvfbargs</varname>
          </term>
          <listitem>
            <simpara>グラフィック テストを <command>Xvfb</command> で実行する場合の引数を指定するリスト型です。</simpara>
          </listitem>
        </varlistentry>
      </variablelist>
    </section>

    <section id="config-reference-other">
      <title>その他の設定ファイルの構造</title>

      <para>上述の変数に加えて、以下の文字列が設定ファイルで指定できます:</para>

      <variablelist>
        <varlistentry id="cfg-os-environ">
          <term>
            <varname>os.environ</varname>
          </term>
          <listitem>
            <para>環境をあらわすディクショナリです。この環境は JHBuild により 生成されたプロセスに引き渡されます。</para>

            <para><envar>CPPFLAGS</envar>、<envar>CFLAGS</envar>、<envar>INSTALL</envar>、そして <envar>LDFLAGS</envar> を含む、影響のある環境変数が含まれます。例:</para>

<programlisting>os.environ['CFLAGS'] = '-O0 -g'</programlisting>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><function>addpath</function>(<parameter>envvar</parameter>, <parameter>pathname</parameter>)</term>
          <listitem>
            <para><envar>PATH</envar> 環境変数にディレクトリを追加します。<function>addpath</function> は、環境変数の初期値が空の場合を確実に処理します(環境変数の先頭、もしくは末尾にある単独のコロンは予期せぬ結果をもたらすことがあります)。</para>

            <para><function>addpath</function> は、パスが <literal>-I <replaceable>pathname</replaceable></literal> の形式であることを期待する <envar>ACLOCAL_FLAGS</envar> 環境変数のために特別な処理を行います。</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><function>prependpath</function>(<parameter>envvar</parameter>, <parameter>pathname</parameter>)</term>
          <listitem>
            <para>設定ファイルを処理した後、JHBuild は <varname>prefix</varname> のような変数に基づくパスに対して変更を加えます(例: <envar>PATH</envar> の先頭に <literal>$prefix/bin</literal> を追加する)。</para>

            <para><function>prependpath</function> は <function>addpath</function> と同じように動作しますが、JHBuild が環境に対して行った変更の後に環境変数への変更が適用される点が異なります。</para>
          </listitem>
        </varlistentry>
      </variablelist>
    </section>
  </section>

  <section id="moduleset-syntax">
    <title>モジュール セット ファイルの構文</title>

    <para>JHBuild は モジュール間の依存関係を XML ファイルに記述します。RELAX-NG スキーマとドキュメント タイプの定義は、JHBuild の <filename>modulesets/</filename> ディレクトリにあります。RELAX-NG スキーマにより、Emacs の <literal>nxml-mode</literal> でモジュール セットファイルを編集できます。</para>

    <para>モジュール セット ファイルのトップレベル要素は、<sgmltag class="element">moduleset</sgmltag> という要素です。XML のネームスペースは使用されておらず、トップレベル要素の下には、モジュール ソース、インクルード文、モジュール定義 の3つのタイプがあります。</para>

    <section id="moduleset-syntax-sources">
      <title>モジュール ソース</title>

      <para>それぞれのモジュールの場所をすべてリストするよりは、いくつかの "モジュール ソース" をモジュール セットに記述し、モジュール定義でその名前を参照するほうが簡単です。同様に、モジュール セットの冗長な情報を減らすことにより、それらのモジュールの代替ソースを指定するのが簡単になります(開発者やユーザーにとって CVS や Subversion などは、異なるリポジトリにアクセスする方法として一般的です)。</para>

      <para><sgmltag class="element">repository</sgmltag> 要素は、すべてのタイプのリポジトリを説明するのに使用します。<sgmltag class="element">branch</sgmltag> 要素は、モジュール定義の内部で、追加の設定を指定するのに使用します。</para>

<programlisting>
&lt;repository name="<replaceable>name</replaceable>"
  type="<replaceable>type</replaceable>"
  [ default="<replaceable>default</replaceable>" ]
  [ password="<replaceable>password</replaceable>" ]
  [ cvsroot="<replaceable>cvsroot</replaceable>" ]
  [ archive="<replaceable>archive</replaceable>" ]
  [ href="<replaceable>href</replaceable>" ]
  [ server="<replaceable>server</replaceable>" ]
  [ database="<replaceable>database</replaceable>" ]
  [ defbranch="<replaceable>defbranch</replaceable>" ]
  [ trunk-template="<replaceable>trunk-template</replaceable>" ]
  [ branches-template="<replaceable>branches-template</replaceable>" ]
  [ tags-template="<replaceable>tags-template</replaceable>" ]
  [ developer-href-example="<replaceable>developer-href-example</replaceable>" ] /&gt;
</programlisting>

      <para><sgmltag class="attribute">name</sgmltag> 属性により、リポジトリを一意に識別します。</para>

      <para><sgmltag class="attribute">default</sgmltag> 属性により、そのモジュールに対するデフォルトのソースがどこにあるかを指定します。</para>

      <para>The <sgmltag class="attribute">type</sgmltag> attribute specifies
        the type of repository. It can be one of: <literal>bzr</literal>,
        <literal>cvs</literal>, <literal>darcs</literal>,
        <literal>fossil</literal>, <literal>git</literal>,
        <literal>hg</literal>, <literal>mnt</literal>, <literal>svn</literal>,
        <literal>tarball</literal>. Other attributes depend on the
        <sgmltag class="attribute">type</sgmltag>, as well as the
        <sgmltag class="element">branch</sgmltag> used inside module
        definitions. Those are described below in the repository type
        sub-sections.</para>

      <para><sgmltag class="attribute">developer-href-example</sgmltag> 属性は、開発者が使うリポジトリの URL の書式を指定します。この属性は情報の提供のためだけに使用されます。</para>

      <para><sgmltag class="element">branch</sgmltag> 要素は、モジュール定義の内部で使用します。</para>

<programlisting>
&lt;branch
  [ repo="<replaceable>repository</replaceable>" ]
  [ module="<replaceable>module name</replaceable>" ]
  [ checkoutdir="<replaceable>checkoutdir</replaceable>" ]
  [ revision="<replaceable>revision</replaceable>" ]
  [ tag="<replaceable>tag</replaceable>" ]
  [ update-new-dirs="<replaceable>update-new-dirs</replaceable>" ]
  [ override-checkoutdir="<replaceable>override-checkoutdir</replaceable>" ]
  [ subdir="<replaceable>subdir</replaceable>" ]
  [ branch="<replaceable>branch</replaceable>" ]
  [ version="<replaceable>version</replaceable>" ]
  [ size="<replaceable>size</replaceable>" ]
  [ source-subdir="<replaceable>source-subdir</replaceable>" ]
  [ hash="<replaceable>hash</replaceable>" ]/&gt;
</programlisting>

      <para>すべての属性には実用的なデフォルト値があり、それらはモジュールとリポジトリの定義に依存します。以下は、一般的な属性についての説明です。</para>

      <para><sgmltag class="attribute">repo</sgmltag> 属性は、リポジトリのサーバーを指定します。</para>

      <para><sgmltag class="attribute">module</sgmltag> 属性は、リポジトリからチェックアウトするモジュールの名前を指定します。デフォルトはモジュール ID です。</para>

      <para><sgmltag class="attribute">checkoutdir</sgmltag> 属性は、チェックアウト ディレクトリの名前を指定します。デフォルトはモジュール ID です。</para>

      <para>その他の属性については、以下で説明します</para>

      <section id="moduleset-syntax-sources-bzr">
        <title>Bazaar</title>

        <para>このリポジトリ タイプは、Bazaar リポジトリを定義します。Bazaar 1.16 以降を推奨します。</para>

<programlisting>
&lt;repository type="bzr" name="launchpad.net"
      href="lp:"/&gt;
        </programlisting>

        <para>追加の属性は: <sgmltag class="attribute">trunk-template</sgmltag> (defaults to <literal>"%(module)s"</literal>) と <sgmltag class="attribute">branches-template</sgmltag> (defaults to <literal>"%(module)s/%(branch)s</literal>") です。これらの属性は、URL を構築するために使用します。モジュール定義内の <sgmltag class="element">branch</sgmltag> 要素では、<sgmltag class="attribute">branch</sgmltag> と <sgmltag class="attribute">user</sgmltag> 属性を指定できます。もしこれらが <sgmltag class="attribute">branches-template</sgmltag> や <sgmltag class="attribute">trunk-template</sgmltag> で使用されている場合は、設定した値でテンプレートを置き換えることができます。この方法で、リポジトリをオーバーライドしてあなたの個人的なブランチからモジュールをビルドしたり、非標準的なレイアウトのリポジトリから多くのモジュールをビルドすることができます。</para>

        <para>さらに <sgmltag class="element">branch</sgmltag> 要素は、特定のリビジョンにたいするアンカーとして <sgmltag class="attribute">revspec</sgmltag> 属性を指定できます。有効な <literal>bzr revspec</literal> を指定することができます。例えば、<literal>date:yesterday,-5,tag:0.1</literal> は、昨日以降で、tag が "0.1"、5回前に コミットされたリビジョンを取得します。指定可能な値については <literal>bzr help revisionspec</literal> を参照してください。</para>

        <para><sgmltag class="attribute">template</sgmltag> 属性が定義された、リポジトリの例です:</para>

<programlisting>
&lt;repository type="bzr" name="launchpad.net"
      href="lp:"
      trunk-template="~bzr-pqm/%(module)s/bzr.dev"
      branches-template="~bzr-pqm/%(module)s/%(branch)s"/&gt;
        </programlisting>

        <para>上記のリポジトリにたいする、<sgmltag class="element">branch</sgmltag> 要素の例です:</para>

<programlisting>
&lt;branch repo="launchpad.net"
      module="bzr"
      checkoutdir="bzr-next"/&gt;
        </programlisting>

<programlisting>
&lt;branch repo="launchpad.net"
      module="bzr"
      branch="2.2"
      checkoutdir="bzr-beta"/&gt;
        </programlisting>
      </section>

      <section id="moduleset-syntax-sources-cvs">
        <title>CVS</title>

        <para>このリポジトリ タイプは、CVS リポジトリを定義します。</para>

        <para><sgmltag class="attribute">password</sgmltag> 属性は、リポジトリのパスワードを指定します。</para>

        <para><sgmltag class="attribute">cvsroot</sgmltag> 属性は、リポジトリの root を指定します。</para>

<programlisting>
&lt;repository type="cvs" name="tango.freedesktop.org"
    cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/tango"
    password=""/&gt;
        </programlisting>

<!-- TODO describe these attributes -->

        <para>追加の属性は: <sgmltag class="attribute">revision</sgmltag>、<sgmltag class="attribute">update-new-dirs</sgmltag>、および <sgmltag class="attribute">override-checkoutdir</sgmltag> です。</para>
      </section>

      <section id="moduleset-syntax-sources-darcs">
        <title>Darcs</title>

        <para>このリポジトリ タイプは、Darcs リポジトリを定義します。</para>

<programlisting>
&lt;repository type="darcs" name="telepathy.freedesktop.org"
      href="http://projects.collabora.co.uk/darcs/telepathy/"/&gt;
</programlisting>
      </section>

      <section id="moduleset-syntax-sources-git">
        <title>Git</title>

        <para>このリポジトリ タイプは、Git リポジトリを定義します。</para>

<programlisting>
&lt;repository type="git" name="git.freedesktop.org"
    href="git://anongit.freedesktop.org/git/"/&gt;
        </programlisting>

        <para><sgmltag class="element">branch</sgmltag> 要素には、以下の属性を指定できます:</para>

        <para><sgmltag class="attribute">revision</sgmltag> 属性には、更新のフェーズにおいてローカル、またはリモートで追跡するブランチの切り替えを指定します。デフォルトは 'master' です。<varname>branches</varname> の設定値で、この属性をオーバーライドすることができます。現在のブランチがリモートのブランチを追跡している場合は、あなたの作業を破壊しないように切り替えのみが処理されます。</para>

        <para><sgmltag class="attribute">tag</sgmltag> 属性は、更新フェーズでリビジョンを無条件にチェックアウトするために使用します。この属性は、<sgmltag class="attribute">revision</sgmltag> 属性より優先されます。</para>

<!-- TODO I can't say much about the subdir attribute. In the
        end it will just be appended to checkoutdir.
        https://bugzilla.gnome.org/show_bug.cgi?id=342846
        -->

<programlisting>
&lt;branch repo="git.freedesktop.org" module="swfdec/swfdec"
        checkoutdir="swfdec"
        revision="<replaceable>local-or-remote-branch</replaceable>"
        tag="<replaceable>tree-ish</replaceable>"/&gt;
        </programlisting>
      </section>

      <section id="moduleset-syntax-sources-hg">
        <title>Mercurial</title>

        <para>このリポジトリ タイプは、Mercurial リポジトリを定義します。</para>

<programlisting>
&lt;repository type="hg" name="hg.gtk-vnc"
    href="http://gtk-vnc.codemonkey.ws/hg/" /&gt;
</programlisting>

<programlisting>
&lt;branch repo="hg.gtk-vnc" module="outgoing.hg" checkoutdir="gtk-vnc"/&gt;
</programlisting>
      </section>

      <section id="moduleset-syntax-sources-mtn">
        <title>Monotone</title>

        <para>このリポジトリ タイプは、Monotone リポジトリを定義します。</para>

        <para><sgmltag class="attribute">server</sgmltag> 属性は、リポジトリのサーバーを指定します。</para>

        <para><sgmltag class="attribute">database</sgmltag> 属性は、リポジトリで使用するデータベースを指定します。</para>

        <para><sgmltag class="attribute">defbranch</sgmltag> 属性は、使用するリポジトリのブランチを指定します。</para>

<programlisting>
&lt;repository type="mtn" name="pidgin.im"
    server="pidgin.im" database="pidgin.im.mtn"
    defbranch="im.pidgin.pidgin"/&gt;
</programlisting>
      </section>

      <section id="moduleset-syntax-sources-svn">
        <title>Subversion</title>

        <para>このリポジトリ タイプは、Subversion リポジトリを定義します。</para>

<programlisting>
&lt;repository type="svn" name="svn.gnome.org" default="yes"
    href="http://svn.gnome.org/svn/"/&gt;
        </programlisting>

<!-- So how do I checkut out branch at a specific revision? -->

        <para><sgmltag class="element">branch</sgmltag> に <sgmltag class="attribute">revision</sgmltag> を指定できます。この属性で、チェックアウトするブランチの定義、または、チェックアウトするブランチのリビジョン番号を指定します。</para>

<programlisting>
&lt;branch revision="gnome-2-20"/&gt;
        </programlisting>

        <para><sgmltag class="attribute">trunk-template</sgmltag> (デフォルトは "%(module)s/trunk")、<sgmltag class="attribute">branches-template</sgmltag> (デフォルトは "%(module)s/branches/%(branch)s")、<sgmltag class="attribute">tags-template</sgmltag> (デフォルトは "%(module)s/tags/%(tag)s") を使用して、カスタマイズされた <literal>svn</literal> レイアウトを指定できます。</para>
      </section>

      <section id="moduleset-syntax-sources-tarball">
        <title>Tarballs</title>

        <para>このリポジトリ タイプは、tarball のリポジトリを定義します。</para>

<programlisting>
&lt;repository type="tarball" name="dbus/dbus-python"
    href="http://dbus.freedesktop.org/releases/dbus-python/"/&gt;
</programlisting>

        <para><sgmltag class="element">branch</sgmltag> 要素には、以下の属性を指定できます:</para>

        <para><sgmltag class="attribute">module</sgmltag> 属性により、ダウンロード、およびコンパイルするファイルを指定し、<sgmltag class="attribute">version</sgmltag> 属性でモジュールのバージョンを指定します。</para>

        <para><sgmltag class="attribute">size</sgmltag>、<sgmltag class="attribute">hash</sgmltag>、同様に 旧来の <sgmltag class="attribute">md5sum</sgmltag> 属性はオプションです。これらが指定された場合、パッケージが正しくダウンロードされたかチェックするのに使用されます。</para>

        <para><sgmltag class="element">branch</sgmltag> 要素は、任意の数の <sgmltag class="element">patch</sgmltag> 要素を持つことができます。ここで指定したパッチは、展開したソース ツリーにたいして記述した順に適用されます。<sgmltag class="attribute">file</sgmltag> 属性でパッチのファイル名を指定し、<sgmltag class="attribute">strip</sgmltag> 属性でパッチを適用する際に無視するディレクトリのレベル数を指定します(訳注:patch コマンドの -p オプションに相当)。</para>

        <para>JHBuild に同梱されているモジュール セットでは、<filename>jhbuild/patches/</filename> ディレクトリからパッチ ファイルを探します。URI で参照されるモジュール セットの場合、モジュール セットと同じディレクトリ、もしくは<filename>patches/</filename> というサブ ディレクトリからパッチ ファイルを探します。<sgmltag class="attribute">file</sgmltag> 属性に URI を指定することもでき、その場合は指定された場所からファイルをダウンロードします。</para>

<programlisting>
&lt;branch module="dbus-python-0.80.2.tar.gz" version="0.80.2"
    repo="dbus/dbus-python"
    hash="md5:2807bc85215c995bd595e01edd9d2077" size="453499"&gt;
  &lt;patch file="dbus-glib-build.patch" strip="1" /&gt;
&lt;/branch&gt;
</programlisting>

        <para>また、tarball の <sgmltag class="element">branch</sgmltag> 要素は、内部に <sgmltag class="element">quilt</sgmltag> 要素を含めることで、インポートしたい入れ子の <sgmltag class="element">branch</sgmltag> を指定することもできます。</para>
      </section>
    </section>

    <section id="moduleset-syntax-includes">
      <title>他のモジュール セットのインクルード</title>

      <para>JHBuild では <sgmltag class="element">include</sgmltag> 要素により、モジュール セットから他のモジュール セットをインクルードすることができます。</para>

<programlisting>
&lt;include href="<replaceable>uri</replaceable>"/&gt;
</programlisting>

      <para><sgmltag class="attribute">href</sgmltag> は、インクルードするモジュール セットを参照するための URI で、<sgmltag class="element">include</sgmltag> 要素を含むファイルからの相対的な URI です。</para>

      <para>参照されるモジュール セットからインポートされるのはモジュール定義だけで、モジュール ソースはインポートされません。複数階層のインクルードもできますが、インクルードのループはできません(今のところループの処理は実装されていません)。</para>
    </section>

    <section id="moduleset-syntax-defs">
      <title>モジュールの定義</title>

      <para>モジュール セット ファイルで使用できるモジュール定義には、さまざまな種類があり、そのリストは簡単に拡張できます。以下に記載するのは、最も一般的なものです。</para>

      <para>基本的にモジュール定義は、モジュールをどうやって取得するかを記述する <sgmltag class="element">branch</sgmltag> 要素と、モジュールの依存関係を定義する <sgmltag class="element">dependencies</sgmltag>、<sgmltag class="element">suggests</sgmltag>、<sgmltag class="element">after</sgmltag> 要素で構成されます。</para>

      <para><sgmltag class="element">dependencies</sgmltag> 要素にリストされたモジュールは、それがインクルードされていない場合 <command>jhbuild build</command> のモジュール リストに追加され、依存するモジュールが最初にビルドされることを保証します。</para>

      <para>モジュール リストを生成した後で、<sgmltag class="element">suggests</sgmltag> 要素にリストされたモジュールが、モジュール リストの他に使用されます(追加のモジュールを取得しないとしても)。これはモジュールが他のモジュールに対してオプションの依存関係をもつ場合を想定したものです。</para>

      <section id="moduleset-syntax-defs-autotools">
        <title>autotools</title>

        <para><sgmltag class="element">autotools</sgmltag> 要素は、GNU Autotools ビルド システムでモジュールをコンパイルすることを定義します。</para>

<programlisting>
&lt;autotools id="<replaceable>id</replaceable>"
	      [ autogenargs="<replaceable>autogenargs</replaceable>" ]
	      [ makeargs="<replaceable>makeargs</replaceable>" ]
	      [ makeinstallargs="<replaceable>makeinstallargs</replaceable>" ]
	      [ autogen-sh="<replaceable>autogen-sh</replaceable>" ]
	      [ makefile="<replaceable>makefile</replaceable>" ]
	      [ skip-autogen="<replaceable>skip-autogen</replaceable>" ]
	      [ autogen-template="<replaceable>autogen-template</replaceable>" ]
	      [ check-target="<replaceable>check-target</replaceable>" ]
	      [ supports-non-srcdir-builds="<replaceable>supports-non-srcdir-builds</replaceable>" ]&gt;

  &lt;branch [ ... ] &gt;
    [...]
  &lt;/branch&gt;

  &lt;dependencies&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/dependencies&gt;
  &lt;after&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/after&gt;

&lt;/autotools&gt;
</programlisting>

        <para><sgmltag class="attribute">autogenargs</sgmltag>、<sgmltag class="attribute">makeargs</sgmltag>、<sgmltag class="attribute">makeinstallargs</sgmltag> 属性では、それぞれ <command>autogen.sh</command>、<command>make</command> および <command>make install</command> に引き渡す追加の引数を指定します。</para>

        <para><sgmltag class="attribute">autogen-sh</sgmltag> 属性は、実行する autogen.sh スクリプトの名前を指定します。<literal>autoreconf</literal> の値は、モジュールに <command>autogen.sh</command> に相当するスクリプトがない場合に使用されます。この場合、JHBuild は適切な <command>configure</command> の後で <command>autoreconf -i</command> を実行します。<sgmltag class="attribute">skip-autogen</sgmltag> では autogen.sh を実行するかどうかを指定します。指定できるのはブール値、および <literal>never</literal> で、never を指定した場合 JHBuild は決して <command>autogen.sh</command> の実行をスキップしません。<sgmltag class="attribute">makefile</sgmltag> は、使用する makefile のファイル名を指定します。</para>

        <para><sgmltag class="attribute">supports-non-srcdir-builds</sgmltag> 属性は、分離されたソース ディレクトリでクリーンなビルドができないモジュールであることをマークします。</para>

        <para><sgmltag class="attribute">autogen-template</sgmltag> 属性は、autogen のコマンド ラインを "優雅" に制御したい場合に使用できます。これには Python の文字列書式を使用でき、以下の変数が置換されます: <varname>srcdir</varname>、<varname>autogen-sh</varname>、<varname>prefix</varname>、<varname>libdir</varname>、<varname>autogenargs</varname>。例えば、これはデフォルトの autogen-template です:</para>

<programlisting>
%(srcdir)s/%(autogen-sh)s --prefix %(prefix)s --libdir %(libdir)s %(autogenargs)s
</programlisting>

        <para><sgmltag class="attribute">check-target</sgmltag> 属性は、<command>make check</command> ターゲットがないモジュールの場合は指定しなければなりません(値は false)。</para>
      </section>

      <section id="moduleset-syntax-defs-cmake">
        <title>cmake</title>

        <para><sgmltag class="element">cmake</sgmltag> 要素は、CMake ビルド システムでモジュールをビルドすることを定義します。</para>

<programlisting>
&lt;cmake id="<replaceable>modulename</replaceable>"&gt;
  &lt;branch [ ... ] &gt;
    [...]
  &lt;/branch&gt;

  &lt;dependencies&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/dependencies&gt;
  &lt;after&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/after&gt;
&lt;/cmake&gt;
</programlisting>
      </section>

      <section id="moduleset-syntax-defs-distutils">
        <title>distutils</title>

        <para><sgmltag class="element">distutils</sgmltag> 要素は、python の distutils でモジュールをビルドすることを定義します。</para>

<programlisting>
&lt;distutils id="<replaceable>modulename</replaceable>"
            [ supports-non-srcdir-builds="<replaceable>yes|no</replaceable>" ]&gt;
  &lt;branch [ ... ] &gt;
    [...]
  &lt;/branch&gt;

  &lt;dependencies&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/dependencies&gt;
  &lt;after&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/after&gt;
&lt;/distutils&gt;
</programlisting>
      </section>

      <section id="moduleset-syntax-defs-linux">
        <title>linux</title>

        <para><sgmltag class="element">linux</sgmltag> 要素は、linux カーネルのビルドで使用されるモジュールを定義します。加えて、<sgmltag class="element">kconfig</sgmltag> サブ要素により、別のカーネル設定を選択することができます。</para>

<programlisting>
&lt;linux id="<replaceable>id</replaceable>"
	  [ makeargs="<replaceable>makeargs</replaceable>" ]&gt;

  &lt;branch [ ... ] &gt;
    [...]
  &lt;/branch&gt;

  &lt;dependencies&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/dependencies&gt;
  &lt;after&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/after&gt;

  &lt;kconfig [ repo="<replaceable>repo</replaceable>" ]
	    version="<replaceable>version</replaceable>"
	    [ module="<replaceable>module</replaceable>" ]
	    [ config="<replaceable>config</replaceable>" ] /&gt;

&lt;/linux&gt;
</programlisting>
      </section>

      <section id="moduleset-syntax-defs-perl">
        <title>perl</title>

        <para><sgmltag class="element">perl</sgmltag> 要素は、perl モジュールをビルドするために使用します。</para>

        <para><sgmltag class="attribute">makeargs</sgmltag> 属性は、<command>make</command> に引き渡す追加の引数を指定します。</para>

<programlisting>
&lt;perl id="<replaceable>modulename</replaceable>"
	 [ makeargs="<replaceable>makeargs</replaceable>" ]&gt;

  &lt;branch [ ... ] &gt;
    [...]
  &lt;/branch&gt;

  &lt;dependencies&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/dependencies&gt;
  &lt;after&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/after&gt;

&lt;/perl&gt;
</programlisting>
      </section>

      <section id="moduleset-syntax-defs-waf">
        <title>waf</title>

        <para><sgmltag class="element">waf</sgmltag> 要素は、Waf ビルド システムでモジュールをビルドすることを定義します。</para>

        <para><sgmltag class="attribute">waf-command</sgmltag> 属性は、使用する waf コマンド スクリプトを指定します。デフォルトは <command>waf</command> です。</para>

<programlisting>
&lt;waf id="<replaceable>modulename</replaceable>"&gt;
	 [ waf-command="<replaceable>waf-command</replaceable>" ]&gt;
  &lt;branch [ ... ] &gt;
    [...]
  &lt;/branch&gt;

  &lt;dependencies&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/dependencies&gt;
  &lt;after&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/after&gt;
&lt;/waf&gt;
</programlisting>
      </section>

      <section id="moduleset-syntax-defs-testmodule">
        <title>testmodule</title>

        <para><sgmltag class="element">testmodule</sgmltag> 要素は、LDTP、または Dogtail でテストを実行するモジュールを作成するために使用します。</para>

<programlisting>
&lt;testmodule id="<replaceable>id</replaceable>"
	       type="<replaceable>type</replaceable>"&gt;

  &lt;branch [ ... ] &gt;
    [...]
  &lt;/branch&gt;

  &lt;dependencies&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/dependencies&gt;
  &lt;after&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/after&gt;

  &lt;testedmodules&gt;
    &lt;tested package="<replaceable>package</replaceable>" /&gt;
  &lt;/testedmodules&gt;

&lt;/testmodule&gt;
</programlisting>

        <para><sgmltag class="attribute">type</sgmltag> 属性には、モジュールで実行するテストのタイプを指定します。'dogtail' は、すべての .py ファイルの実行に Python を使用します。'ldtp' は 'ldtprunner run.xml' を実行します。</para>

        <para>noxvfb オプションが設定されていない場合、テストのために Xvfb サーバーが起動されます。</para>
      </section>

      <section id="moduleset-syntax-defs-metamodule">
        <title>metamodule</title>

        <para><sgmltag class="element">metamodule</sgmltag> 要素は、実際には何もしないモジュールを定義します。このモジュールの唯一の目的は、依存関係のためです。</para>

        <para>例えば、meta-gnome-desktop は GNOME デスクトップの主要コンポーネントに依存しているので、実際には完全なデスクトップをインストールするよう JHBuild に指定することになります。</para>

<programlisting>
&lt;metamodule id="<replaceable>modulename</replaceable>"&gt;
  &lt;dependencies&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/dependencies&gt;
  &lt;suggests&gt;
    &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
    ...
  &lt;/suggests&gt;
&lt;/metamodule&gt;
</programlisting>

        <para><sgmltag class="attribute">id</sgmltag> 属性には、モジュールの名前を指定します。子要素は <link linkend="moduleset-syntax-defs-autotools"><sgmltag class="element">autotools</sgmltag></link> と同様に処理されます。</para>
      </section>
    </section>

    <section id="moduleset-deprecated-elements">
      <title>非推奨となった要素</title>

      <section id="moduleset-deprecated-elements-syntax-sources">
        <title>モジュール ソース</title>

        <section id="moduleset-syntax-sources-cvsroot">
          <title>cvsroot</title>

          <para><sgmltag class="element">cvsroot</sgmltag> 要素は、現在は非推奨となっています - かわりに <sgmltag class="element">repository</sgmltag> 要素を使用してください。</para>

          <para><sgmltag class="element">cvsroot</sgmltag> 要素は、CVS リポジトリを記述するのに使用します。</para>

<programlisting>
  &lt;cvsroot name="<replaceable>rootname</replaceable>"
           [ default="<replaceable>yes|no</replaceable>" ]
           root="<replaceable>anon-cvsroot</replaceable>"
           password="<replaceable>anon-password</replaceable>"/&gt;
</programlisting>

          <para><sgmltag class="attribute">name</sgmltag> 属性は、CVS リポジトリを一意に識別する名前です。</para>

          <para><sgmltag class="attribute">default</sgmltag> 属性には、モジュール セット ファイルのデフォルトのモジュール ソースを記述します。</para>

          <para><sgmltag class="attribute">root</sgmltag> 属性には、このリポジトリへの匿名アクセスに使用される CVS root のリストを記述し、<sgmltag class="attribute">password</sgmltag> 属性で匿名アクセスするときのパスワードを記述します。</para>
        </section>

        <section id="moduleset-syntax-sources-svnroot">
          <title>svnroot</title>

          <para><sgmltag class="element">svnroot</sgmltag> 要素は、現在は非推奨となっています - かわりに <sgmltag class="element">repository</sgmltag> 要素を使用してください。</para>

          <para><sgmltag class="element">svnroot</sgmltag> 要素は、Subversion リポジトリを記述するのに使用します。</para>

<programlisting>
  &lt;svnroot name="<replaceable>rootname</replaceable>"
           [ default="<replaceable>yes|no</replaceable>" ]
           href="<replaceable>anon-svnroot</replaceable>"/&gt;
</programlisting>

          <para><sgmltag class="attribute">name</sgmltag> 属性は、Subversion リポジトリを一意に識別する名前です。</para>

          <para><sgmltag class="attribute">default</sgmltag> 属性には、モジュール セット ファイルのデフォルトのモジュール ソースを記述します。</para>

          <para><sgmltag class="attribute">href</sgmltag> 属性には、リポジトリの URL のリストを記述します。おそらく <literal>http</literal>、<literal>https</literal>、<literal>svn</literal> のような URL となるでしょう。</para>
        </section>
      </section>

<!-- end of deprecated module sources -->

      <section>
        <title>非推奨となったモジュール タイプ</title>

        <warning>
          <para>このセクションでは、既存のモジュール セットでは使用されているものの、今後の使用は非推奨の要素について説明します。</para>
        </warning>

        <section id="moduleset-syntax-defs-tarball">
          <title>tarball</title>

          <important>
            <para>この非推奨な要素は、<sgmltag class="element">autotools</sgmltag> モジュール タイプと <sgmltag class="element">tarball</sgmltag> リポジトリ タイプの単なる軽量なラッパーです。</para>
          </important>

          <para><sgmltag class="element">tarball</sgmltag> 要素では、tarball からビルドされるモジュールを定義します。</para>

<programlisting>
  &lt;tarball id="<replaceable>modulename</replaceable>"
              [ version="<replaceable>version</replaceable>" ]
              [ checkourdir="<replaceable>checkoutdir</replaceable>" ]
              [ autogenargs="<replaceable>autogenargs</replaceable>" ]
              [ makeargs="<replaceable>makeargs</replaceable>" ]
              [ autogen-sh="<replaceable>autogen-sh</replaceable>" ]
              [ supports-non-srcdir-builds="<replaceable>yes|no</replaceable>" ]&gt;
    &lt;source href="<replaceable>source-url</replaceable>"
            [ size="<replaceable>source-size</replaceable>" ]
            [ hash="<replaceable>source-algo:source-hash</replaceable>" ]
            [ md5sum="<replaceable>source-md5sum</replaceable>" ]/&gt;
    &lt;patches&gt;
      &lt;patch file="<replaceable>filename</replaceable>" strip="<replaceable>level</replaceable>"/&gt;
      ...
    &lt;/patches&gt;
    &lt;dependencies&gt;
      &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
      ...
    &lt;/dependencies&gt;
    &lt;suggests&gt;
      &lt;dep package="<replaceable>modulename</replaceable>"/&gt;
      ...
    &lt;/suggests&gt;
  &lt;/tarball&gt;
</programlisting>

          <para><sgmltag class="attribute">id</sgmltag>、および <sgmltag class="attribute">version</sgmltag> 属性は、モジュールを識別するために使用されます。</para>

          <para><sgmltag class="element">source</sgmltag> 要素では、ダウンロードしてコンパイルするファイルを指定します。<sgmltag class="attribute">href</sgmltag> は必須の属性で、<sgmltag class="attribute">size</sgmltag>、<sgmltag class="attribute">hash</sgmltag>、同様に 旧来の <sgmltag class="attribute">md5sum</sgmltag> 属性はオプションです。最後の2つの属性が指定された場合は、ダウンロードされたソースが正しいものであるか確認するために使用されます。</para>

          <para><sgmltag class="element">patches</sgmltag> 要素は、ソース ツリーを展開後に1つ (または複数) のパッチの適用を指定します。<sgmltag class="attribute">file</sgmltag> 属性はファイル名を指定し、<sgmltag class="attribute">strip</sgmltag> 属性はパッチを適用する際に無視するディレクトリのレベル数を指定します(訳注:patch コマンドの -p オプションに相当)。</para>

          <para>JHBuild に同梱されているモジュール セットでは、<filename>jhbuild/patches/</filename> ディレクトリからパッチ ファイルを探します。URI で参照されるモジュール セットの場合、モジュール セットと同じディレクトリ、もしくは<filename>patches/</filename> というサブ ディレクトリからパッチ ファイルを探します。<sgmltag class="attribute">file</sgmltag> 属性に URI を指定することもでき、その場合は指定された場所からファイルをダウンロードします。</para>

          <para>その他の属性、および <sgmltag class="element">dependencies</sgmltag>、<sgmltag class="element">suggests</sgmltag>、<sgmltag class="element">after</sgmltag> 要素は、<link linkend="moduleset-syntax-defs-autotools">autotools</link> によって処理されます。</para>
        </section>
      </section>

<!-- end of deprecated module types -->
    </section>

<!-- end of deprecated elements -->
  </section>
</article>
