<phprelease>、<extbinrelease>、<extsrcrelease>、<bundle>

<phprelease>、<extbinrelease>、<extsrcrelease>、<bundle> -- リリースの型を指定する

リリースの型を記述する

package.xml 1.0 ではリリース型は 1 つだけでした。package.xml 2.0 では、3 つの新しいリリース型 (拡張モジュールのバイナリリリース、 拡張モジュールのソースリリース、パッケージバンドルリリース) を提供することで、リリース形式についてより細かな制御ができるように なっています。

通常のリリースタグ (phprelease、extsrcrelease、extbinrelease) には、 すべて 2 つのオプションのセクション <installconditions> および <filelist> が含まれています。これらのセクションの目的は、 対象 OS やその他の一般的なインストール条件に応じて異なるファイルを インストールさせることです。

もう少し明確に言いましょう。これまで、package.xml には 1 つの <release> タグしかありませんでした。package.xml 2.0 では 複数の release タグを並べてそれぞれ別のインストールセットを 指定することが可能です。tar ボール内のファイル一覧と インストーラがその一覧を処理する手順を分離することで、 複雑なインストールファイルセットを単純化することになります。 この変更により、インストールファイルセットのデバッグが非常に シンプルになります。

<filelist> タグに含めることのできるタグは、<install> および <ignore> の 2 つだけです。 install には、"name" および "as" の 2 つの 属性が必須となります。install タグは、package.xml の <file> における install-as 属性と同様の働きをします、つまり、 リストに含まれるファイルの新しいインストール場所を指定します。 ignore タグは、ファイルを完全に無視するために使用します。

<installconditions> タグには 4 つのタグを含めることができます。 その書式は <dependencies> セクションにある <php>、<extension>、<os> および <arch> です。 extension タグ以外のタグはそれぞれ 1 度ずつしか使用できませんが、 extension タグは無制限に使用可能です。

php タグは、インストールセットが対象とする PHP のバージョンあるいは バージョンの範囲を指定するために使用します。

extension タグは、正常にインストールするために必要な拡張モジュールを 指定するために使用します。

os タグは、正常にインストールするために必要な OS を指定するために 使用します。unix はすべての種類にマッチし、linux はすべての linux 系 OS にマッチします。また Mac OS X に対応するのは darwin で、* を指定するとすべての OS にマッチします。

arch タグは、正常にインストールするために必要な uname 文字列、 あるいはその一部を指定します。

<phprelease>

リリース型 phprelease は、PEAR 形式の PHP スクリプトパッケージの リリース向けに設計された型です。これは、検証規則を 多少変更します。まず最初に、 <contents> タグは必ず <file> タグおよび <dir> タグを含まなければ なりません。ファイルのロールとして有効なのは role="php"、 role="data"、role="doc" および role="test"、 それに加えて利用者が PHP リリースで使用するためにインストールした 独自ロールのみとなります。

<extsrcrelease>

リリース型 extsrcrelease は、PECL 形式の PHP 拡張モジュールリリース、 つまり使用するためにはコンパイルが必要となるリリースを表します。 これは、検証規則を多少変更します。まず最初に、 <contents> タグは必ず <file> タグおよび <dir> タグを含まなければ なりません。ファイルのロールとして有効なのは role="src"、 role="data"、role="doc" および role="test" それに加えて利用者が拡張ソースリリースで使用するためにインストールした 独自ロールのみとなります。

さらに、パッケージが提供する拡張モジュール名を記述した <providesextension> タグが package.xml に存在する必要があります。

<extbinrelease>

リリース型 extbinrelease は、PECL 形式の PHP 拡張モジュールバイナリ リリース、つまりコンパイル済みのリリースを表します。 これは、検証規則を多少変更します。まず最初に、 <contents> タグは必ず <file> タグおよび <dir> タグを含まなければ なりません。ファイルのロールとして有効なのは role="ext"、 role="data"、role="doc" および role="test" それに加えて利用者が拡張バイナリリリースで使用するためにインストールした 独自ロールのみとなります。

さらに、拡張モジュールのソースを提供するパッケージを記述した <srcpackage> あるいは <srcuri> タグ、およびパッケージが 提供する拡張モジュール名を記述した <providesextension> タグが package.xml に存在する必要があります。

<bundle>

リリース型 bundle は、いくつかのパッケージリリースをひとつのパッケージに まとめ、同時にインストールできるようにするために設計されています。 これは、アプリケーション全体をひとつの tar ボールにしたり、パッケージ群を ひとつの tar ボールで配布したりする場合に使用可能です。

他のリリース型と異なり、bundle リリースの <contents> タグには <bundledpackage> タグだけが含まれている必要があります。 bundledpackage の内容は、"Foo-1.2.3.tgz" のようなリリース名となります。

さらに <bundle/> タグは何も要素を含んではいけません。