.\" Author: Oxan van Leeuwen
.\" Includes text from the deb-control manual page by Raul Miller
.TH deb\-src\-control 5 "2011-08-14" "Debian Project" "Debian"
.SH NAME
deb\-src\-control \- Debian source packages' master control file format
.
.SH SYNOPSIS
control
.
.SH DESCRIPTION
Each Debian source package contains the master "control" file, which contains
at least 2 paragraphs, separated by a blank line. The first paragraph lists
all information about the source package in general, while each following
paragraph describes exactly one binary package. Each paragraph consists of at
least one field. A field starts with a fieldname, such as
.B Package
or
.B Section
(case insensitive), followed by a colon, the body of the field and a newline.
Multi-line fields are also allowed, but each supplementary line, without a
fieldname, should start with at least one space. The content of the multi-line
fields is generally joined to a single line by the tools (except in the case of
the
.B Description
field, see below). To insert empty lines into a multi-line
field, insert a dot after the space. Lines starting with a \fB'#'\fP are
treated as comments.
.
.SH SOURCE FIELDS
.TP
.BR Source: " \fIsource-package-name\fP (required)"
The value of this field is the name of the source package, and should
match the name of the source package in the debian/changelog file. A package
name must consist only of lower case letters (a-z), digits (0-9), plus (+) and
minus (-) signs, and periods (.). Package names must be at least two characters
long and must start with an alphanumeric character.

.TP
.BR Maintainer: " \fIfullname-email\fP (required)"
Should be in the format "Joe Bloggs <jbloggs@foo.com>", and references the
person who currently maintains the package, as opposed to the author of the
software or the original packager.

.TP
.BI Uploaders: " fullname-email"
Lists all the names and email addresses of co-maintainers of the package, in
the same format as the Maintainer field. Multiple co-maintainers should be
separated by a comma.

.TP
.BI Standards\-Version: " version-string"
This documents the most recent version of the standards (which consists of the
Debian Policy Manual and referenced texts from the
.B debian\-policy
package) this package complies to.

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

.TP
.BI Homepage: " url"
The upstream project home page URL.

.TP
.BI Bugs: " url"
The \fIurl\fP of the bug tracking system for this package. The current
used format is \fIbts-type\fP\fB://\fP\fIbts-address\fP, like
\fBdebbugs://bugs.debian.org\fP. This field is usually not needed.

.TP
.BI Vcs\-*: " url"
The \fIurl\fP of the Version Control System repository used to maintain this
package. Currently supported are \fBArch\fP, \fBBzr\fP (Bazaar), \fBCvs\fP,
\fBDarcs\fP, \fBGit\fP, \fBHg\fP (Mercurial), \fBMtn\fP (Monotone) and
\fBSvn\fP (Subversion). Usually this field points to the latest version
of the package, such as the main branch or the trunk.

.TP
.BI Vcs\-Browser: " url"
The \fIurl\fP of a webinterface to browse the Version Control System
repository.

.TP
.BI Origin: " name"
The name of the distribution this package is originating from. This field is
usually not needed.

.TP
.BI Section: " section"
This is a general field that gives the package a category based on the
software that it installs. Some common sections are "utils", "net",
"mail", "text", "x11", etc.

.TP
.BI Priority: " priority"
Sets the importance of this package in relation to the system as a whole.
Common priorities are "required", "standard", "optional", "extra", etc.

In Debian, the
.B Section
and
.B Priority
fields have a defined set of accepted values based on the Policy Manual.
A list of these values can be obtained from the latest version of the
.B debian\-policy
package.

.TP
.BI Build\-Depends: " package-list"
A list of packages that need to be installed and configured to be able to build
the source package.

.TP
.BI Build\-Depends\-Indep: " package-list"
Same as \fBBuild\-Depends\fP, but they are only needed when building the
architecture independent packages. The \fBBuild\-Depends\fP are also installed
in this case.

.TP
.BI Build\-Conflicts: " package-list"
A list of packages that should not be installed when the package is build, for
example because they interfere with the used build system.

.TP
.BI Build\-Conflicts\-Indep: " package-list"
Same as \fBBuild\-Conflicts\fP, but only when building the architecture
independent packages.

The syntax of the
.B Build\-Depends
and
.B Build\-Depends\-Indep
fields is a list of groups of alternative packages. Each group is a list
of packages separated by vertical bar (or "pipe") symbols, "|". The
groups are separated by commas. Commas are to be read as "AND", and pipes
as "OR", with pipes binding more tightly. Each package name is
optionally followed by a version number specification in parentheses and an
architecture specification in square brackets.

The syntax of the
.B Build\-Conflicts
and
.B Build\-Conflicts\-Indep
fields is a list of comma-separated package names, where the comma is read
as an "AND". Specifying alternative packages using a "pipe" is not supported.
Each package name is optionally followed by a version number specification in
parentheses and an architecture specification in square brackets.

A version number may start with a ">>", in which case any later version
will match, and may specify or omit the Debian packaging revision (separated
by a hyphen). Accepted version relationships are ">>" for greater than,
"<<" for less than, ">=" for greater than or equal to, "<=" for less than
or equal to, and "=" for equal to.

A architecture specification consists of one or more architecture names,
separated by whitespace. Exclamation marks may be prepended to each of the
names, meaning "NOT".

Note that dependencies on packages in the
.B build\-essential
set can be omitted and that declaring build conflicts against them is
impossible. A list of these packages is in the build\-essential package.


.SH BINARY FIELDS

.LP
Note that the
.BR Priority ", " Section
and
.B Homepage
fields can also be in a binary paragraph to override the global value from the
source package.

.TP
.BR Package: " \fIbinary-package-name\fP (required)"
This field is used to name the binary package name. The same restrictions as
to a source package name apply.

.TP
.BR Architecture: " \fIarch\fP|\fBall\fP|\fBany\fP (required)"
The architecture specifies on which type of hardware this package runs. For
packages that run on all architectures, use the
.B any
value. For packages that are architecture independent, such as shell and Perl
scripts or documentation, use the
.B all
value. To restrict the packages to a certain set of architectures, specify the
architecture names, separated by a space. It's also possible to put
architecture wildcards in that list (see
.BR dpkg\-architecture (1)
for more information about them).

.TP
.BR Package\-Type: " \fBdeb\fP|\fBudeb\fP"
This field defines the type of the package. "udeb" is for size-constrained
packages used by the debian installer. "deb" is the default value, it's
assumed if the field is absent. More types might be added in the future.

.TP
.PD 0
.BI Subarchitecture: " value"
.TP
.PD 0
.BI Kernel\-Version: " value"
.TP
.PD 0
.BI Installer\-Menu\-Item: " value"
These fields are used by the debian\-installer and are usually not needed.
See /usr/share/doc/debian\-installer/devel/modules.txt from the
.B debian\-installer
package for more details about them.

.TP
.PD 0
.BR Essential: " \fByes\fP|\fBno\fP"
.TP
.PD 0
.BR Multi\-Arch: " \fBsame\fP|\fBforeign\fP|\fBallowed\fP"
.TP
.PD 0
.BI Tag: " tag-list"
.TP
.PD 0
.BR Description: " \fIshort-description\fP (required)"
These fields are described in the
.BR deb\-control (5)
manual page, as they are copied literally to the control file of the binary
package.

.TP
.PD 0
.BI Depends: " package-list"
.TP
.PD 0
.BI Pre\-Depends: " package-list"
.TP
.PD 0
.BI Recommends: " package-list"
.TP
.PD 0
.BI Suggests: " package-list"
.TP
.PD 0
.BI Breaks: " package-list"
.TP
.PD 0
.BI Enhances: " package-list"
.TP
.PD 0
.BI Replaces: " package-list"
.TP
.PD 0
.BI Conflicts: " package-list"
.TP
.PD 0
.BI Provides: " package-list"
.TP
.PD 0
.BI Built\-Using: " package-list"
.br
These fields declare relationships between packages. They are discussed in
the
.BR deb\-control (5)
manpage and in the
.B debian\-policy
package.

.SH USER-DEFINED FIELDS
It is allowed to add additional user-defined fields to the control file. The
tools will ignore these fields. If you want the fields to be copied over to
the output files, such as the binary packages, you need to use a custom naming
scheme: the fields should start with a X, followed by one or more of the
letters BCS and a hypen. If the letter B is used, the field will appear in the
control file in the binary package, see
.BR deb\-control (5),
for the letter S in the source package control file as constructed by
.BR dpkg\-source (1)
and for the letter C in the upload control (.changes) file. Note that the
X[BCS]\- prefixes are stripped when the fields are copied over to the
output files. A field \fBXC\-Approved\-By\fP will appear as
\fBApproved\-By\fP in the changes file and will not appear in the binary or
source package control files.


.SH EXAMPLE
.\" .RS
.nf
# 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.
.fi
.\" .RE


.SH SEE ALSO
.BR deb\-control (5),
.BR deb\-version (5),
.BR dpkg\-source (1)
