# deb-changelog

## NAME



           deb-changelog - dpkg source packages' changelog file format
    


## SYNOPSIS



           **debian/changelog**
    


## DESCRIPTION



           Changes in the packaged version of a project are explained in the
           changelog file _debian/changelog_.  This includes modifications made
           in the source package compared to the upstream one as well as
           other changes and updates to the package.
    
           The format of the _debian/changelog_ allows the package building
           tools to discover which version of the package is being built and
           find out other release-specific information.
    
           That format is a series of entries like this:
    
            _package_ (_version_) _distributions_ ; _metadata_
                     [optional blank line(s), stripped]
             * _change-details_
               _more-change-details_
                     [blank line(s), included in dpkg-parsechangelog(1)
           output]
             * _even-more-change-details_
                     [optional blank line(s), stripped]
             -- _maintainer-name_ <_email-address_ >  _date_
    
           _package_ and _version_ are the source package name and version
           number.  _version_ is delimited by parenthesis U+00028 ‘**(** ’ and
           U+0029 ‘**)** ’.
    
           _distributions_ lists one or more space-separated distributions
           where this version should be installed when it is uploaded; it is
           copied to the **Distribution** field in the _.changes_ file.
           _distributions_ must be terminated by a semicolon (U+003B ‘**;** ’).
    
           _metadata_ lists zero or more comma-separated _keyword_ =_value_ items.
           Each keyword can contain only minus and case insensitive
           alphanumeric characters, as they need to be mapped to deb822(5)
           field names.  The only _keyword_ s currently supported by **dpkg** are:
    
           **urgency**
               Its value is used for the **Urgency** field in the _.changes_ file
               for the upload.
    
           **binary-only**
               With a **yes** value, it is used to denote that this changelog
               entry is for a binary-only non-maintainer upload (an automatic
               binary rebuild with the only change being the changelog
               entry).
    
           The change details may in fact be any series of lines starting
           with at least two spaces (U+0020 **SPACE**), but conventionally each
           change starts with an asterisk and a separating space and
           continuation lines are indented so as to bring them in line with
           the start of the text above.  Blank lines may be used here to
           separate groups of changes, if desired.
    
           If this upload resolves bugs recorded in the distribution bug
           tracking system, they may be automatically closed on the inclusion
           of this package into the distribution archive by including the
           string:
    
               **Closes: #**_nnnnn_
    
           in the change details, where **#**_nnnnn_ is the bug number.  The exact
           Perl regular expression is:
    
               **/closes:\s*(?:bug)?\#?\s?\d+(?:,\s*(?:bug)?\#?\s?\d+)*/i**
    
           That is, the string should consist of the word **closes:** followed by
           a comma-separated list of bug numbers.  Bug numbers may be
           preceded by the word **bug** and/or a **#** sign, as in "Closes: 42,
           bug#43, #44, bug 45".  The words **closes:** and **bug** are not case
           sensitive.  The list of bug numbers may span multiple lines.
    
           This information is conveyed via the **Closes** field in the _.changes_
           file.  Where, depending on the archive maintenance software, all
           the bug numbers listed might get automatically closed.
    
           The maintainer name and email address used in the changelog should
           be the details of the person who prepared this release of the
           package.  They are **not** necessarily those of the uploader or usual
           package maintainer.  The information here will be copied to the
           **Changed-By** field in the _.changes_ file, and then later might be
           used to send an acknowledgment when the upload has been installed
           in the distribution archive.
    
           The _date_ has the following format (compatible and with the same
           semantics of RFC2822 and RFC5322, or what «date -R» generates):
    
               _day-of-week_**,**_dd month yyyy hh_**:**_mm_**:**_ss_ **+**_zzzz_
    
           where:
    
           _day-of-week_
               Is one of: **Mon** , **Tue** , **Wed** , **Thu** , **Fri** , **Sat** , **Sun**.
    
           _dd_  Is a one- or two-digit day of the month (**01** -**31**), where the
               leading zero is optional, but conventionally does not get
               omitted.
    
           _month_
               Is one of: **Jan** , **Feb** , **Mar** , **Apr** , **May** , **Jun** , **Jul** , **Aug** , **Sep** , **Oct** ,
               **Nov** , **Dec**.
    
           _yyyy_
               Is the four-digit year (e.g. 2010).
    
           _hh_  Is the two-digit hour (**00** -**23**).
    
           _mm_  Is the two-digit minutes (**00** -**59**).
    
           _ss_  Is the two-digit seconds (**00** -**60**).
    
           [**+-**]_zzzz_
               Is the time zone offset from Coordinated Universal Time (UTC).
               ‘**+** ’ indicates that the time is ahead of (i.e., east of) UTC
               and ‘**-** ’ indicates that the time is behind (i.e., west of) UTC.
               The first two digits indicate the hour difference from UTC and
               the last two digits indicate the number of additional minutes
               difference from UTC.  The last two digits must be in the range
               **00** -**59**.
    
           The first “title” line with the package name must start at the
           left hand margin.  The “trailer” line with the maintainer and date
           details must be preceded by exactly one space (U+0020 **SPACE**).  The
           maintainer details and the date must be separated by exactly two
           spaces (U+0020 **SPACE**).  Each part of the _date_ can be separated by
           one or more spaces (U+0020 **SPACE**), except after the comma where it
           can be separated by zero or more spaces (U+0020 **SPACE**).
    
           Any line that consists entirely (i.e., no leading whitespace) of **#**
           or **/* */** style comments or RCS keywords.
    
           Vim modelines or Emacs local variables, and ancient changelog
           entries with other formats at the end of the file should be
           accepted and preserved on output, but their contents might be
           otherwise ignored and parsing stopped at that point.
    
           The entire changelog must be encoded in UTF-8.
    


## FILES



           _debian/changelog_
    


## EXAMPLES



            dpkg (1.17.18) unstable; urgency=low
    
             [ Guillem Jover ]
             * Handle empty minimum versions when initializing dependency versions,
               as the code is mapping the minimum version 0 to '' to avoid outputting
               useless versions. Regression introduced in dpkg 1.17.17. Closes: #764929
    
             [ Updated programs translations ]
             * Catalan (Guillem Jover).
    
             [ Updated dselect translations ]
             * Catalan (Guillem Jover).
             * German (Sven Joachim).
    
             -- Guillem Jover <guillem@debian.org>  Sun, 12 Oct 2014 15:47:44 +0200
    


* * *