書式
substvars説明
dpkg-source, dpkg-gencontrol, dpkg-genchanges が制御情報を (dpkg-source 用のソース制御ファイル .dsc 、dpkg-gencontrol や dpkg-genchanges の標準出力に) 書き出す際に、変数の置換が行われる。変数が置換される箇所は ${変数名} という形式になっている。変数名には英数字、ハイフン、コロンを使用できるが、先頭文字は英数字である必要がある。変数の置換は、置換が不要になるまで再帰的に何度でも行われる。これは、置換後のフィールドの全文に対して、再度置換対象がないかの確認が行われることを意味する。
置換がすべて完了した後で、文字列 ${} (これは置換対象ではない) が $ 記号に置き換えられる。
変数の置換は、すべての制御フィールドに対して行われるが、フィールドによっては変数が置換される前のビルド段階で用いられるものがある。そのため、Package, Source, Architecture フィールドで変数を用いてはならない。
変数の置換は、各フィールドが解析され、切り出された後の内容に対して行われる。そのため、置換した結果が複数行にわたる場合も、改行の後にスペースを含めておく必要はない。これは、置換された変数の内容がフィールドに展開される際に暗黙的に行われる。例えば "foo is bar.${Newline}foo is great." という内容が ${Description} という変数に格納されており、フィールドの内容が以下のようになっていた場合、
Description: foo application
${Description}
.
More text.
置換後の結果は次のようになる:
Description: foo application
foo is bar.
foo is great.
.
More text.
共通オプション -V により変数を設定することが可能である。debian/substvars ファイル (もしくは -T オプションで指定したファイル中) で設定してもよい。このファイルには name=value 形式の行から構成する。行末の空白文字、空白行、# 記号から始まる行 (コメント行) は無視される。
その他に、以下の標準変数を使用することができる:
- Arch
- The current host architecture (i.e. the architecture the package is being built for, the equivalent of DEB_HOST_ARCH).
- source:Version
- ソースパッケージのバージョン
- source:Upstream-Version
- アップストリームのソースパッケージのバージョン、Debian の epoch が存在している場合、それも含まれる。
- binary:Version
- バイナリパッケージのバージョン (binNMU などの場合、source:Version と異なることもある)
- Source-Version
- ソースパッケージのバージョン (changelog ファイルより)。この変数は、名が体を表さなくなってしまっているため、廃止予定である。用途に応じて source:Versionもしくは binary:Version を使用すること。
- Installed-Size
-
The approximate total size of the package's installed files. This value is
copied into the corresponding control file field; setting it will modify the
value of that field. If this variable is not set dpkg-gencontrol will
compute the default value by accumulating the size of each regular file and
symlink rounded to 1 KiB used units, and a baseline of 1 KiB for any other
filesystem object type.
Note: Take into account that this can only ever be an approximation, as the actual size used on the installed system will depend greatly on the filesystem used and its parameters, which might end up using either more or less space than the specified in this field.
- Extra-Size
- パッケージのインストール時に追加で用いられるディスク領域。この変数が設定されていると、Installed-Size 変数の値 (明示的に設定されたものか、デフォルト値かは問わない) に本変数の値を足した値が control ファイルの Installed-Sizeフィールドに適用される。
- F:fieldname
- fieldname というフィールド (大文字で指定する必要がある) の値。この変数は、展開する箇所を明示的に指定するという以上の意味を持たない。
- Format
- ソースパッケージングスクリプトによって生成される .changes ファイルのフォーマットのバージョン。この変数を設定すると、.changes ファイルの Format フィールドの内容も変更される。
- Newline, Space, Tab
- これらの変数は、各々対応する文字を示す。
- shlibs:dependencyfield
- この形式の名前のついた変数は、dpkg-shlibdeps により生成される。
- dpkg:Upstream-Version
- dpkg のアップストリームのバージョン
- dpkg:Version
- dpkg の完全なバージョン表記
変数が定義されていないにもかかわらず参照されている場合は、値として空文字列が想定されるとともに、警告が生成される。
ファイル
- debian/substvars
- 変数およびその値のリスト。