deb-src-control(5) Debian ソースパッケージのマスタ制御ファイルのフォーマット

書式

control

説明

Debian の各ソースパッケージには、マスタとなる "control" ファイルがある。ファイルには、空白行で区切られた最低 2 つの段落が含まれる。最初の段落には、通常ソースパッケージに関するすべての情報が列挙されている。以降の段落は、各々が 1 つのバイナリパッケージに関する設定となる。各段落は、最低 1 つのフィールドからなる。フィールドは Package やSection (大文字小文字の区別なし) といったフィールド名から始まり、コロンの後にフィールドの本体 (値) が続き、改行で終わる。フィールドは複数行にまたがっても構わないが、フィールド名を含まない追加の行は、最低 1 つのスペースから始まる必要がある。通常、複数行にまたがるフィールドの本体は、ツールによって 1行にまとめられる (ただし、以下で説明する Description フィールドは例外である)。空行を追加したい場合は、スペースに続けてドットを 1 つだけ記述する。'#' で始まる行はコメントとして扱われる。

SOURCE フィールド

Source: ソースパッケージ名 (必須)
このフィールドの値がソースパッケージ名となる。これは debian/changelog ファイル内のソースパッケージ名と合致させるべきである。パッケージ名には、小文字(a-z)、数字 (0-9)、プラス (+)、マイナス (-) 記号とピリオド (.) のみを含めることができる。パッケージ名は最低 2 文字以上の長さとし、英数字で始めなければならない。

Maintainer: fullname-email (必須)
`Joe Bloggs <[email protected]>' 形式で設定すること。パッケージ化されたソフトウェアの開発者や元々のパッケージ作成者ではなく、*このパッケージ* の現在のメンテナの情報を記載する。

Uploaders: fullname-email
パッケージの共同メンテナの名前と電子メールアドレスを Maintainer フィールドと同じ形式で列挙する。共同メンテナが複数人いる場合はコンマで区切ること。

Standards-Version: バージョン文字列
このパッケージが準拠した標準 (debian-policy パッケージに含まれる Debian Policy Manual と関連ドキュメントから構成される) の最新バージョンを示す。

DM-Upload-Allowed: yes|no
This field indicates whether the package can be uploaded by Debian Maintainers appearing in the Maintainer or Uploaders field. The default value is "no".

Homepage: url
アップストリームのプロジェクトのホームページ URL。

Bugs: url
パッケージのバグトラッキングシステムの url。現在使われている形式は、debbugs://bugs.debian.org のような bts-type://bts_address 形式である。このフィールドは一般的に必要とされない。

Vcs-*: url
このパッケージの管理に用いられているバージョン管理システムのリポジトリ url。現在サポートされているのは、Arch, Bzr (Bazaar), Cvs, Darcs, Git, Hg(Mercurial), Mtn (Monotone), Svn (Subversion) である。通常、このフィールドは、main ブランチや trunk といった最新版のパッケージを示している。

Vcs-Browser: url
バージョン管理システムのリポジトリを閲覧するための Web インタフェースの url

Origin: ディストリビューション名
パッケージの起源となったディストリビューション名。このフィールドは、通常不要である。

Section: セクション
パッケージによりインストールされるソフトウェアがどのセクションの分類に属するかを示すフィールドである。一般的なセクションには "utils" や "net"、"mail"、"text"、"x11" などがある。

Priority: priority
システム全体からみたこのパッケージの重要度を示す。一般的に使われる priority には "required"、"standard"、"optional"、"extra" などがある。

Debian では、SectionPriority フィールドで使える値がポリシーマニュアルで定められている。最新の debian-policy パッケージから一覧を取得できる。

Build-Depends: パッケージのリスト
ソースパッケージをビルドするためにインストールと設定が必要なパッケージのリスト。このリストで定義した依存関係は、Build-Depends-ArchBuild-Depends-Indep の両方で行った定義と同じ効力を持つだけでなく、ソースのみのビルドにおいても効力を持つ。

Build-Depends-Arch: パッケージのリスト
Build-Depends と同様だが、アーキテクチャ非依存なパッケージをビルドする場合にのみ必要とされるもの。Build-Depends もインストールされる。このフィールドは dpkg バージョン 1.16.4 で導入された。古いバージョンの dpkg によるビルドを可能とするためには、Build-Depends を代わりに用いるべきである。

Build-Depends-Indep: パッケージのリスト
Build-Depends と同様だが、アーキテクチャ非依存なパッケージをビルドする場合にのみ必要とされるもの。Build-Depends もインストールされる。

Build-Conflicts: パッケージのリスト
ビルドシステムの動作に影響するなど、パッケージがビルドされる時にインストールされていることが好ましくないパッケージのリスト。このリストで定義した依存関係は、Build-Conflicts-ArchBuild-Conflicts-Indep の両方で行った定義と同じ効力を持つだけでなく、ソースのみのビルドにおいても効力を持つ。

Build-Conflicts-Arch: パッケージのリスト
Build-Conflicts と同様だが、アーキテクチャ依存のパッケージをビルドする場合にのみ必要とされるもの。このフィールドは dpkg バージョン 1.16.4 で導入された。古いバージョンの dpkg によるビルドを可能とするためには、Build-Conflicts を代わりに用いるべきである。

Build-Conflicts-Indep: パッケージのリスト
Build-Conflicts と同様だが、アーキテクチャ非依存なパッケージをビルドする場合にのみ影響するもの。

Build-Depends, Build-Depends-Arch, Build-Depends-Indep フィールドには、代替パッケージグループのリストを指定する。各グループでは、互換性のあるパッケージを縦棒(`パイプ')記号 "|" で区切ったリストで表現する。代替パッケージグループ間はコンマで区切る。コンマは "AND"、パイプは "OR" で、パイプの優先度が高いという理解でよい。各パッケージ名の後に、括弧で囲んでバージョン番号の指定を行ったり、角括弧で囲んでアーキテクチャの指定を行ったりすることもできる。

Build-Conflicts, Build-Conflicts-Arch, Build-Conflicts-Indep フィールドには、パッケージ名をコンマで区切って列挙する。 コンマは "AND" という理解でよい。"パイプ" を用いて複数の代替パッケージを指定する記法はサポートされない。各パッケージ名の後に、括弧で囲んでバージョン番号の指定を行ったり、角括弧で囲んでアーキテクチャの指定を行ったりすることもできる。

バージョン番号が ">>" で始まる場合は、それより新しいバージョンすべてにマッチする。バージョン番号には、(ハイフンに続けて) Debian パッケージリビジョンを指定することもできるが、省略しても構わない。「より新しい」を意味する ">>"、「より古い」を意味する "<<"、「同じか新しい」を意味する ">="、「同じか古い」を意味する "<="、「同じ」を意味する "=" を使用できる。

空白文字で区切った 1 つ以上のアーキテクチャ名により、アーキテクチャを指定する。感嘆符がアーキテクチャ名の前にある場合は "NOT" を意味する。

build-essential に含まれるパッケージとの依存関係は省略できること、これらのパッケージと競合するようなビルド設定は禁止されている点に留意すること。該当するパッケージの一覧は、build-essential パッケージに含まれている。

BINARY フィールド

Priority, Section, Homepage フィールドは、BINARY 段落に設定することで、ソースパッケージで定義されたグローバルな値を上書きすることも可能である点に留意すること。

Package: バイナリパッケージ名 (必須)
このフィールドはバイナリパッケージ名の指定に用いられる。ソースパッケージ名と同様の制約が適用される。

Architecture: arch|all|any (必須)
アーキテクチャ (Architecture) は、このパッケージが動作するハードウェア種別を指定する。すべてのアーキテクチャで動作するパッケージは、値 any を使用する。シェルスクリプトや Perl スクリプト、ドキュメントといったアーキテクチャ非依存のパッケージは、値 all を使用する。パッケージのアーキテクチャを制約したい場合は、アーキテクチャ名をスペースで区切って指定する。アーキテクチャのワイルドカードを使用することも可能である (詳細は dpkg-architecture(1) を参照のこと)。

Package-Type: deb|udeb
このフィールドは、パッケージのタイプを指定する。"udeb" は debian installer が使用するサイズの制約があるパッケージである。"deb" はデフォルトの値であり、フィールドが存在しなかった場合に仮定される値である。将来的にはこれ以外のタイプが追加されるかもしれない。

Subarchitecture: value
Kernel-Version: value
Installer-Menu-Item: value これらのフィールドは、debian-installer によって用いられるもので、通常は不要である。詳細については、debian-installer パッケージに含まれている/usr/share/doc/debian-installer/devel/modules.txt を参照のこと

Essential: yes|no
Multi-Arch: same|foreign|allowed
Tag: タグのリスト
Description: 短い説明 (必須) これらのフィールドは、バイナリパッケージの control ファイルにそのままコピーされるため、deb-control(5) のマニュアルページで解説されている。

Depends: パッケージのリスト
Pre-Depends: パッケージのリスト
Recommends: パッケージのリスト
Suggests: パッケージのリスト
Breaks: パッケージのリスト
Enhances: パッケージのリスト
Replaces: パッケージのリスト
Conflicts: パッケージのリスト
Provides: パッケージのリスト
Built-Using: パッケージのリスト
これらのフィールドは、パッケージ間の関連性を指定するものであり、deb-control(5) マニュアルページと debian-policy パッケージで説明されている。

ユーザ定義フィールド

control ファイルに、ユーザが定義する追加のフィールドを含めることもできる。ツール類は、これらのフィールドを無視する。フィールドをバイナリパッケージなどの出力ファイルにもコピーしたい場合は、X に続き、文字 BCS から 1 文字以上とハイフンとをつなげた custom naming scheme を使用する必要がある。文字 B を使用する場合、フィールドはバイナリパッケージの control ファイルに複製される。deb-control(5) も参照のこと。文字 S の場合は dpkg-source(1) によって作成されるソースパッケージ内の control ファイルに、文字 C の場合はアップロードの制御ファイル (.changes ファイル) に、各々複製される。フィールドが出力ファイルにコピーされる時に、X[BCS]- というプレフィックスは削除されることに注意。例えば XC-Approved-By というフィールドは changes ファイルでは Approved-Byとなり、バイナリやソースパッケージ内 の control ファイルには複製されない点に留意すること。

こうしたユーザ定義のフィールドはグローバルな名前空間を使用するため、将来的に公式に定義されたフィールドと衝突する可能性がある点に注意。このような潜在的な可能性を避けるために、これらのフィールドを XB-Private-New-Field のように Private- から開始するとよい。これには、dpkg-deb がこれらを不明なフィールドとして警告しなくなるという副次的効果もある。

# Comment
Source: dpkg
Section: admin
Priority: required
Maintainer: Dpkg Developers <[email protected]>
# this field is copied to the binary and source packages
XBS-Upstream-Release-Status: stable
Homepage: http://wiki.debian.org/Teams/Dpkg
Vcs-Browser: http://git.debian.org/?p=dpkg/dpkg.git
Vcs-Git: git://git.debian.org/git/dpkg/dpkg.git
Standards-Version: 3.7.3
Build-Depends: pkg-config, debhelper (>= 4.1.81),
 libselinux1-dev (>= 1.28-4) [!linux-any]
Package: dpkg-dev
Section: utils
Priority: optional
Architecture: all
# this is a custom field in the binary package
XB-Mentoring-Contact: Raphael Hertzog <[email protected]>
Depends: dpkg (>= 1.14.6), perl5, perl-modules, cpio (>= 2.4.2-2),
 bzip2, lzma, patch (>= 2.2-1), make, binutils, libtimedate-perl
Recommends: gcc | c-compiler, build-essential
Suggests: gnupg, debian-keyring
Conflicts: dpkg-cross (<< 2.0.0), devscripts (<< 2.10.26)
Replaces: manpages-pl (<= 20051117-1)
Description: Debian package development tools
 This package provides the development tools (including dpkg-source)
 required to unpack, build and upload Debian source packages.
 .
 Most Debian source packages will require additional tools to build;
 for example, most packages need make and the C compiler gcc.

翻訳者

高橋 基信 <[email protected]>. 喜瀬 浩 <[email protected]>. 関戸 幸一 <[email protected]>. 鍋谷 栄展 <[email protected]>. 倉澤 望 <[email protected]>. 石川 睦 <[email protected]>. 鵜飼 文敏 <[email protected]>. 中野 武雄 <[email protected]>.

翻訳校正

Debian JP Documentation ML <[email protected]>.