# man > deb-src-control(5)

---
type: CommandReference
command: deb-src-control
mode: man
section: 5
source: man-pages
---

## Quick Reference

- `Source` — Source package name (required)
- `Maintainer` — Full name and email of maintainer (recommended)
- `Package` — Binary package name (required)
- `Architecture` — Target architecture(s) for binary package (required)
- `Build-Depends` — List of packages needed to build from source
- `Description` — Short summary and long description of the package

## Name

deb-src-control — Debian source packages' master control file format

## Synopsis

`debian/control`

## Options

### Source Fields

- **`Source:**` _source-package-name_ (required) — Name of the source package, matching debian/changelog; must be lowercase alphanumeric, plus, minus, period, at least 2 characters.
- **`Maintainer:**` _fullname-email_ (recommended) — Person who currently maintains the package (format: `Joe Bloggs <jbloggs@foo.com>`).
- **`Uploaders:**` _fullname-email_ — Comma-separated list of co-maintainers.
- **`Standards-Version:**` _version-string_ — Most recent version of distribution policy standards this package complies with.
- **`Description`** _short-description_ `<newline>` ` `_long-description_ — First line is short summary; subsequent lines (preceded by a space) are detailed description. Blank lines in long description contain a single `.` after the space.
- **`Homepage:`** _url_ — Upstream project home page URL.
- **`Bugs:`** _url_ — Bug tracking system URL (e.g., `debbugs://bugs.debian.org`); usually not needed.
- **`Rules-Requires-Root:`** `no`|`binary-targets`|_impl-keywords_ — Indicates whether `debian/rules` requires (fake)root privileges. `no` means never; `binary-targets` means always (default); _impl-keywords_ are space-separated `namespace/cases`.
- **`Testsuite:`** _name-list_ — Test suite names (see `dsc(5)`).
- **`Testsuite-Triggers:`** _package-list_ — Packages that trigger tests (see `dsc(5)`).
- **`Vcs-Arch:`** _url_ — Arch repository URL.
- **`Vcs-Bzr:`** _url_ — Bazaar repository URL.
- **`Vcs-Cvs:`** _url_ — CVS repository URL.
- **`Vcs-Darcs:`** _url_ — Darcs repository URL.
- **`Vcs-Git:`** _url_ — Git repository URL.
- **`Vcs-Hg:`** _url_ — Mercurial repository URL.
- **`Vcs-Mtn:`** _url_ — Monotone repository URL.
- **`Vcs-Svn:`** _url_ — Subversion repository URL.
- **`Vcs-Browser:`** _url_ — Web interface URL for VCS.
- **`Origin:`** _name_ — Distribution name this package originates from; usually not needed.
- **`Section:`** _section_ — Category of software (e.g., `utils`, `net`, `mail`, `text`, `x11`).
- **`Priority:`** _priority_ — Importance relative to system (e.g., `required`, `standard`, `optional`, `extra`).
- **`Build-Depends:`** _package-list_ — Packages required to build architecture-dependent and independent packages, and source packages. Syntax: comma-separated, vertical bar for alternatives, optional architecture qualifier (`:arch`), version (`>= 1.0`), architecture restriction (`[linux-any]`), build profile (`<profile>`).
- **`Build-Depends-Arch:`** _package-list_ — Additional dependencies only for architecture-dependent builds (since dpkg 1.16.4).
- **`Build-Depends-Indep:`** _package-list_ — Additional dependencies only for architecture-independent builds.
- **`Build-Conflicts:`** _package-list_ — Packages that must not be installed during build (comma-separated, no alternatives). Syntax same as build-depends but without pipes.
- **`Build-Conflicts-Arch:`** _package-list_ — Conflicts only for arch-dependent builds (since dpkg 1.16.4).
- **`Build-Conflicts-Indep:`** _package-list_ — Conflicts only for arch-independent builds.

### Binary Fields

- **`Package:`** _binary-package-name_ (required) — Name of the binary package (same restrictions as source name).
- **`Package-Type:`** `deb`|`udeb`|_type_ — Package type; `deb` is default. `udeb` for debian-installer.
- **`Architecture:`** _arch_|`all`|`any` (required) — Hardware architecture target. `all` for architecture-independent, `any` for all, or list of architectures/wildcards.
- **`Build-Profiles:`** _restriction-formula_ — Conditions under which this binary package builds. Uses same syntax as `Build-Depends` restriction formulas. If absent, builds with all profiles.
- **`Protected:`** `yes`|`no` — Whether package is protected (see `deb-control(5)`).
- **`Essential:`** `yes`|`no` — Whether package is essential (see `deb-control(5)`).
- **`Build-Essential:`** `yes`|`no` — Whether package is build-essential (see `deb-control(5)`).
- **`Multi-Arch:`** `same`|`foreign`|`allowed`|`no` — Multi-arch behavior (see `deb-control(5)`).
- **`Tag:`** _tag-list_ — Tags for package (see `deb-control(5)`).
- **`Description:`** _short-description_ (recommended) — Brief summary; long description follows after first line (see `deb-control(5)`).
- **`Depends:`** _package-list_ — Runtime dependencies.
- **`Pre-Depends:`** _package-list_ — Pre-dependencies.
- **`Recommends:`** _package-list_ — Recommended packages.
- **`Suggests:`** _package-list_ — Suggested packages.
- **`Breaks:`** _package-list_ — Packages this package breaks.
- **`Enhances:`** _package-list_ — Packages this package enhances.
- **`Replaces:`** _package-list_ — Packages this package replaces.
- **`Conflicts:`** _package-list_ — Packages this package conflicts with.
- **`Provides:`** _package-list_ — Virtual packages this provides.
- **`Built-Using:`** _package-list_ — Source packages used to build.
- **`Subarchitecture:`** _value_ — For debian-installer udebs.
- **`Kernel-Version:`** _value_ — For debian-installer udebs.
- **`Installer-Menu-Item:`** _value_ — For debian-installer udebs.

### User-Defined Fields

Additional fields can be added with naming scheme `X[SBC]-`-`FieldName`. Prefixes are stripped when copied to output files. Use `X` for source, `B` for binary, `C` for changes file. To avoid future collisions, use `Private-` prefix (e.g., `XB-Private-New-Field`).

## Examples

shell
# 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: https://wiki.debian.org/Teams/Dpkg
Vcs-Browser: https://git.dpkg.org/cgit/dpkg/dpkg.git
Vcs-Git: https://git.dpkg.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.
## See Also

- [deb822(5)](https://www.chedong.com/phpMan.php/man/deb822/5/markdown)
- [deb-control(5)](https://www.chedong.com/phpMan.php/man/deb-control/5/markdown)
- [deb-version(7)](https://www.chedong.com/phpMan.php/man/deb-version/7/markdown)
- [dpkg-source(1)](https://www.chedong.com/phpMan.php/man/dpkg-source/1/markdown)