# deb822

## 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.
    


* * *