deb-src-control - 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 <jbloggs@foo.com>'
形式で設定すること。パッケージ化されたソフトウェアの開発者や元々のパッケージ作成者ではなく、*このパッケージ*
の現在のメンテナの情報を記載する。
- 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 では、 Section と Priority
フィールドで使える値がポリシーマニュアルで定められている。最新の
debian-policy
パッケージから一覧を取得できる。
- Build-Depends:
パッケージのリスト
- ソースパッケージをビルドするためにインストールと設定が必要なパッケージのリスト。このリストで定義した依存関係は、Build-Depends-Arch
と Build-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-Arch
と Build-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 <debian-dpkg@lists.debian.org>
# 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 <hertzog@debian.org>
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.
関連項目¶
deb-control(5),
deb-version(5),
dpkg-source(1)
翻訳者¶
高橋 基信 <monyo@monyo.com>. 喜瀬
浩 <kise@fuyuneko.jp>. 関戸 幸一
<sekido@mbox.kyoto-inet.or.jp>. 鍋谷 栄展
<nabe@debian.or.jp>. 倉澤 望
<nabetaro@debian.or.jp>. 石川 睦
<ishikawa@linux.or.jp>. 鵜飼 文敏
<ukai@debian.or.jp>. 中野 武雄
<nakano@apm.seikei.ac.jp>.
翻訳校正¶
Debian JP Documentation ML <debian-doc@debian.or.jp>.