# dsc

## NAME



           dsc - Debian source package control file format
    


## SYNOPSIS



           _filename_**.dsc**
    


## DESCRIPTION



           Each Debian source package is composed of a .dsc control file,
           which contains a number of fields, in deb822(5) format.
    
           Each field begins with a tag, such as **Source** or **Binary**(case
           insensitive), followed by a colon, and the body of the field (case
           sensitive unless stated otherwise).  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 case of the multiline
           fields **Package-List** , **Files** , **Checksums-Sha1** and **Checksums-Sha256** ,
           see below).
    
           The control data might be enclosed in an OpenPGP ASCII Armored
           signature, as specified in RFC9580.
    


## FIELDS



           **Format:**_format-version_ (required)
               The value of this field declares the format version of the
               source package.  The field value is used by programs acting on
               a source package to interpret the list of files in the source
               package and determine how to unpack it.  The syntax of the
               field value is a numeric major revision (“0-9”), a period
               (“.”), a numeric minor revision (“0-9”), and then an optional
               subtype after whitespace (“ \t”), which if specified is a
               lowercase alphanumeric (“a-z0-9”) word in parentheses (“()”).
               The subtype is optional in the syntax but may be mandatory for
               particular source format revisions.
    
               The source formats currently supported by **dpkg** are **1.0** , **2.0** ,
               **3.0 (native)** , **3.0 (quilt)** , **3.0 (git)** , **3.0 (bzr)** and **3.0**
               **(custom)**.  See dpkg-source(1) for their description.
    
           **Source:**_source-name_ (required)
               The value of this field determines the package name, and is
               used to generate file names by most installation tools.
    
           **Binary:**_binary-package-list_
               This folded field lists binary packages which this source
               package can produce, separated by commas.
    
               This field has now been superseded by the **Package-List** field,
               which gives enough information about what binary packages are
               produced on which architecture, build-profile and other
               involved restrictions.
    
           **Architecture:**_arch-list_ (recommended)
               A list of architectures and architecture wildcards separated
               by spaces which specify the type of hardware this package can
               be compiled for.  Common architecture names and architecture
               wildcards are **amd64** , **armel** , **i386** , **linux-any** , **any-amd64** , etc.
    
               Note that the **all** value is meant for packages that are
               architecture independent, and **any** for packages that are
               architecture dependent.  The list may include (or consist
               solely of) the special value **all**.  When the list contains the
               architecture wildcard **any** , the only other value allowed in the
               list is **all**.
    
               The field value is generally generated from **Architecture**
               fields from in the _debian/control_ in the source package.
    
           **Version:**_version-string_ (required)
               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(7).
    
               **Note** : On some vendors, dpkg has been made to permit native
               sources with non-native versions, making this incoherent and
               adding to the confusion of the concept, where in addition this
               tends to be a trap for accidental mistakes.
    
           **Origin:**_name_
               The name of the distribution this package is originating from.
    
           **Maintainer:**_fullname-email_ (recommended)
               Should be in the format “Joe Bloggs <jbloggs@foo.com>”, and is
               typically the person who created the package, as opposed to
               the author of the software that was packaged.
    
           **Uploaders:**_fullname-email-list_
               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.
    
           **Description** _short-description_
            _long-description_
               The format for the source 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.
    
           **Homepage:**_url_
               The upstream project home page _url_.
    
           **Standards-Version:**_version-string_ (recommended)
               This documents the most recent version of the distribution
               policy standards this package complies with.
    
           **Vcs-Browser:**_url_
               The _url_ of a web interface to browse the Version Control
               System repository.
    
           **Vcs-Arch:**_url_
           **Vcs-Bzr:**_url_
           **Vcs-Cvs:**_url_
           **Vcs-Darcs:**_url_
           **Vcs-Git:**_url_
           **Vcs-Hg:**_url_
           **Vcs-Mtn:**_url_
           **Vcs-Svn:**_url_
               These fields declare the _url_ of the Version Control System
               repository used to maintain this package.  See
               deb-src-control(5) for more details.
    
           **Testsuite:**_name-list_
               This field declares that the source package contains the
               specified test suites.  The value is a comma-separated list of
               test suites.  If the **autopkgtest** value is present, a
               _debian/tests/control_ is expected to be present, if the file is
               present but not the value, then **dpkg-source** will automatically
               add it, preserving previous values.
    
           **Testsuite-Triggers:**_package-list_
               This field declares the comma-separated union of all test
               dependencies (**Depends** fields in _debian/tests/control_ file),
               with all restrictions removed, and OR dependencies flattened
               (that is, converted to separate AND relationships), except for
               binaries generated by this source package and its
               meta-dependency equivalent **@**.
    
               **Rationale** : this field is needed because otherwise to be able
               to get the test dependencies, each source package would need
               to be unpacked.
    
           **Build-Depends:**_package-list_
           **Build-Depends-Arch:**_package-list_
           **Build-Depends-Indep:**_package-list_
           **Build-Conflicts:**_package-list_
           **Build-Conflicts-Arch:**_package-list_
           **Build-Conflicts-Indep:**_package-list_
               These fields declare relationships between the source package
               and packages used to build it.  They are discussed in the
               deb-src-control(5) manual page.
    
           **Package-List:**
            _package package-type section priority key-value-list_
               This multiline field contains a list of binary packages
               generated by this source package.
    
               The _package_ is the binary package name.
    
               The _package-type_ is the binary package type, usually **deb** ,
               another common value is **udeb**.
    
               The _section_ and _priority_ match the binary package fields of
               the same name, or if omitted default to **unknown** and **optional**
               respectively (since dpkg 1.22.13).
    
               The _key-value-list_ is a space separated _key_**=**_value_ list, and
               the currently known optional keys are:
    
               **arch**
                   The architecture restriction from the binary package
                   **Architecture** field, with spaces converted to ‘,’.
    
               **profile**
                   The normalized build-profile restriction formula from the
                   binary package **Build-Profile** field, with ORs converted to
                   ‘+’ and ANDs to ‘,’.
    
               **protected**
                   If the binary package is protected, this key will contain
                   the value of the **Protected** field, that is a **yes** value.
    
                   Supported since dpkg 1.20.1.
    
               **essential**
                   If the binary package is essential, this key will contain
                   the value of the **Essential** field, that is a **yes** value.
    
           **Files:**(required, weak)
           **Checksums-Sha1:**(required, weak)
           **Checksums-Sha256:**(required, strong)
            _checksum size filename_
               These multiline fields contain a list of files with a checksum
               and size for each one.  These fields have the same syntax and
               differ only in the checksum algorithm used: MD5 for **Files** ,
               SHA-1 for **Checksums-Sha1** and SHA-256 for **Checksums-Sha256**.
    
               The first line of the field value (the part on the same line
               as the field name followed by a colon) is always empty.  The
               content of the field is expressed as continuation lines, one
               line per file.  Each line consists of the checksum, a space,
               the file size, a space, and the file name.
    
               These fields list all files that make up the source package.
               The list of files in these fields must match the list of files
               in the other related fields.
    
               **Note** : The MD5 and SHA-1 checksums are considered weak, and
               should never be assumed to be sufficient for secure
               verification.
    


## BUGS



           The **Format** field conflates the format for the **.dsc** file itself and
           the format of the extracted source package.
    


* * *