Provided by: dpkg-dev_1.16.1.2ubuntu7_all bug


       deb-control - Debian packages' master control file format




       Each  Debian package contains the master `control' file, which contains
       a number of fields, or comments when the line  starts  with  '#'.  Each
       field begins with a tag, such as Package or Version (case insensitive),
       followed by a colon, and the body of the field.  Fields  are  delimited
       only by field tags. In other words, field text may be multiple lines in
       length, but the installation  tools  will  generally  join  lines  when
       processing the body of the field (except in the case of the Description
       field, see below).


       Package: package-name
              The value of this field determines the package name, and is used
              to generate file names by most installation tools.

       Version: version-string
              Typically,  this  is  the  original  package's version number in
              whatever form the program's author uses. It may also  include  a
              Debian  revision  number  (for  non-native  packages). The exact
              format and sorting algorithm are described in deb-version(5).

       Maintainer: fullname-email
              Should be in the format `Joe Bloggs <>',  and  is
              typically  the person who created the package, as opposed to the
              author of the software that was packaged.

       Description: short-description
              The format for the package description is a short brief  summary
              on the first line (after the "Description" field). The following
              lines should be used as a  longer,  more  detailed  description.
              Each  line  of the long description must be preceded by a space,
              and blank lines in the long description must  contain  a  single
              '.' following the preceding space.


       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.

       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  Section  and  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 debian-policy package.

       Essential: yes|no
              This  field  is  usually  only needed when the answer is yes. It
              denotes a package that is required for proper operation  of  the
              system.  Dpkg  or  any other installation tool will not allow an
              Essential package to be removed (at least not without using  one
              of the force options).

       Architecture: arch|all
              The  architecture  specifies which type of hardware this package
              was compiled  for.  Common  architectures  are  `i386',  `m68k',
              `sparc',  `alpha',  `powerpc'  etc.  Note that the all option is
              meant for  packages  that  are  architecture  independent.  Some
              examples of this are shell and Perl scripts, and documentation.

       Origin: name
              The name of the distribution this package is originating from.

       Bugs: url
              The url of the bug tracking system for this package. The current
              used      format      is      bts-type://bts-address,       like

       Homepage: url
              The upstream project home page url.

       Tag: tag-list
              List  of  tags  describing  the  qualities  of  the package. The
              description and list of supported  tags  can  be  found  in  the
              debtags package.

       Multi-Arch: same|foreign|allowed
              This field is used to indicate how this package should behave on
              a multi-arch  installations.  The  value  same  means  that  the
              package  is  co-installable with itself, but it must not be used
              to  satisfy  the  dependency  of  any  package  of  a  different
              architecture  from  itself.  The  value  foreign  means that the
              package is not co-installable with itself, but should be allowed
              to  satisfy the dependency of a package of a different arch from
              itself.  The  value  allowed  allows   reverse-dependencies   to
              indicate  in their Depends field that they need a package from a
              foreign architecture, but has no effect  otherwise.  This  field
              should  not  be  present  in packages with the Architecture: all

       Source: source-name
              The name of the source package that  this  binary  package  came
              from, if different than the name of the package itself.

       Subarchitecture: value
       Kernel-Version: value
       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
              debian-installer package for more details about them.

       Depends: package-list
              List of packages that are required for this package to provide a
              non-trivial  amount  of  functionality.  The package maintenance
              software will not  allow  a  package  to  be  installed  if  the
              packages  listed in its Depends field aren't installed (at least
              not without using the force options).  In an  installation,  the
              postinst  scripts  of packages listed in Depends: fields are run
              before those of the  packages  which  depend  on  them.  On  the
              opposite,  in  a  removal,  the prerm script of a package is run
              before those of the packages listed in its Depends: field.

       Pre-Depends: package-list
              List of packages that must be installed  and  configured  before
              this  one  can  be  installed.  This is usually used in the case
              where this package requires  another  package  for  running  its
              preinst script.

       Recommends: package-list
              Lists packages that would be found together with this one in all
              but unusual installations. The package maintenance software will
              warn  the user if they install a package without those listed in
              its Recommends field.

       Suggests: package-list
              Lists packages that are related to  this  one  and  can  perhaps
              enhance  its  usefulness,  but  without  which  installing  this
              package is perfectly reasonable.

       The syntax of Depends, Pre-Depends, Recommends and Suggests 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.

       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.

       Breaks: package-list
              Lists  packages  that  this  one breaks, for example by exposing
              bugs when the named packages  rely  on  this  one.  The  package
              maintenance  software  will  not  allow  broken  packages  to be
              configured; generally the resolution is to upgrade the  packages
              named in a Breaks field.

       Conflicts: package-list
              Lists  packages  that  conflict  with  this  one, for example by
              containing files with the same names.  The  package  maintenance
              software  will not allow conflicting packages to be installed at
              the same time. Two conflicting packages should  each  include  a
              Conflicts line mentioning the other.

       Replaces: package-list
              List  of  packages  files  from which this one replaces. This is
              used for allowing this package to overwrite the files of another
              package  and  is  usually used with the Conflicts field to force
              removal of the other package, if this  one  also  has  the  same
              files as the conflicted package.

       Provides: package-list
              This  is  a  list  of  virtual  packages that this one provides.
              Usually this is  used  in  the  case  of  several  packages  all
              providing  the same service.  For example, sendmail and exim can
              serve as a  mail  server,  so  they  provide  a  common  package
              (`mail-transport-agent')  on  which  other  packages can depend.
              This will allow sendmail or exim to serve as a valid  option  to
              satisfy  the  dependency. This prevents the packages that depend
              on a mail server from having to know the package names  for  all
              of them, and using `|' to separate the list.

       The  syntax  of  Breaks,  Conflicts, Replaces and Provides is a list of
       package names, separated by commas (and optional whitespace).   In  the
       Breaks  and  Conflicts  fields,  the  comma  should be read as `OR'. An
       optional version can also be given with the same syntax  as  above  for
       the Breaks, Conflicts and Replaces fields.

       Built-Using: package-list
              This field lists extra source packages that were used during the
              build of this binary package.  This  is  an  indication  to  the
              archive  maintenance  software  that these extra source packages
              must be kept whilst this binary  package  is  maintained.   This
              field  must  be  a  list of source package names with strict (=)
              version  relationships.   Note  that  the  archive   maintenance
              software  is likely to refuse to accept an upload which declares
              a Built-Using relationship which cannot be satisfied within  the


       # Comment
       Package: grep
       Essential: yes
       Priority: required
       Section: base
       Maintainer: Wichert Akkerman <>
       Architecture: sparc
       Version: 2.4-1
       Pre-Depends: libc6 (>= 2.0.105)
       Provides: rgrep
       Conflicts: rgrep
       Description: GNU grep, egrep and fgrep.
        The GNU family of grep utilities may be the "fastest grep in the west".
        GNU grep is based on a fast lazy-state deterministic matcher (about
        twice as fast as stock Unix egrep) hybridized with a Boyer-Moore-Gosper
        search for a fixed string that eliminates impossible text from being
        considered by the full regexp matcher without necessarily having to
        look at every character. The result is typically many times faster
        than Unix grep or egrep. (Regular expressions containing backreferencing
        will run more slowly, however).


       deb(5), deb-version(5), debtags(1), dpkg(1), dpkg-deb(1).