Provided by: dpkg-dev_1.22.21ubuntu4_all 

NAME
deb822 - Debian RFC822 control data format
DESCRIPTION
The package management system manipulates data represented in a common format, known as control data,
stored in control files. Control files are used for source packages, binary packages and the .changes
files which control the installation of uploaded files (dpkg's internal databases are in a similar
format).
SYNTAX
A control file consists of one or more stanzas of fields (the stanzas sometimes used to be referred to as
paragraphs). The stanzas are separated by empty lines. Parsers may accept lines consisting solely of
U+0020 SPACE and U+0009 TAB as stanza separators, but control files should use empty lines. Some control
files allow only one stanza; others allow several, in which case each stanza usually refers to a
different package. (For example, in source packages, the first stanza refers to the source package, and
later stanzas refer to binary packages generated from the source.) The ordering of the stanzas in
control files is significant.
Each stanza consists of a series of data fields. Each field consists of the field name followed by a
colon (U+003A ‘:’), and then the data/value associated with that field. The field name is composed of
US-ASCII characters excluding control characters, space, and colon (i.e., characters in the ranges U+0021
‘!’ through U+0039 ‘9’, and U+003B ‘;’ through U+007E ‘~’, inclusive). Field names must not begin with
the comment character (U+0023 ‘#’), nor with the hyphen character (U+002D ‘-’).
The field ends at the end of the line or at the end of the last continuation line (see below).
Horizontal whitespace (U+0020 SPACE and U+0009 TAB) may occur immediately before or after the value and
is ignored there; it is conventional to put a single space after the colon. For example, a field might
be:
Package: dpkg
the field name is Package and the field value dpkg.
Empty field values are only permitted in source package control files (debian/control). Such fields are
ignored.
A stanza must not contain more than one instance of a particular field name.
There are three types of fields:
simple
The field, including its value, must be a single line. Folding of the field is not permitted.
This is the default field type if the definition of the field does not specify a different type.
folded
The value of a folded field is a logical line that may span several lines. The lines after the
first are called continuation lines and must start with a U+0020 SPACE or a U+0009 TAB.
Whitespace, including any newlines, is not significant in the field values of folded fields.
This folding method is similar to RFC5322, allowing control files that contain only one stanza
and no multiline fields to be read by parsers written for RFC5322.
multiline
The value of a multiline field may comprise multiple continuation lines. The first line of the
value, the part on the same line as the field name, often has special significance or may have to
be empty. Other lines are added following the same syntax as the continuation lines of the
folded fields. Whitespace, including newlines, is significant in the values of multiline fields.
Whitespace must not appear inside names (of packages, architectures, files or anything else) or
version numbers, or between the characters of multi-character version relationships.
The presence and purpose of a field, and the syntax of its value may differ between types of control
files.
Field names are not case-sensitive, but it is usual to capitalize the field names using mixed case as
shown below. Field values are case-sensitive unless the description of the field says otherwise.
Stanza separators (empty lines) and lines consisting only of U+0020 SPACE and U+0009 TAB, are not
allowed within field values or between fields. Empty lines in field values are usually escaped by
representing them by a U+0020 SPACE followed by a dot (U+002E ‘.’).
Lines starting with U+0023 ‘#’, without any preceding whitespace are comments lines that are only
permitted in source package control files (debian/control) and in deb-origin(5) files. These comment
lines are ignored, even between two continuation lines. They do not end logical lines.
All control files must be encoded in UTF-8.
SEE ALSO
RFC822, RFC5322.
1.22.21 2025-10-16 deb822(5)