# deb-changelog(5) - man - phpMan

[deb-changelog(5)](https://www.chedong.com/phpMan.php/man/deb-changelog/5/markdown)                             dpkg suite                             [deb-changelog(5)](https://www.chedong.com/phpMan.php/man/deb-changelog/5/markdown)



## 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)](https://www.chedong.com/phpMan.php/man/dpkg-parsechangelog/1/markdown) 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)](https://www.chedong.com/phpMan.php/man/deb822/5/markdown) field names.  The only _keyword_s currently supported by **dpkg** are **urgency** and **binary-**
       **only**.  **urgency**'s value is used for the **Urgency** field in the _.changes_ file for the upload.
       **binary-only** with a **yes** value, 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:** **Bug#**_nnnnn_

       in the change details (the exact Perl regular expression is
       **/closes:\s*(?:bug)?\#?\s?\d+(?:,\s*(?:bug)?\#?\s?\d+)*/i**).  This information is conveyed via
       the **Closes** field in the _.changes_ file.

       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

## SEE ALSO
       [**deb822**(5)](https://www.chedong.com/phpMan.php/man/deb822/5/markdown), [**deb-version**(7)](https://www.chedong.com/phpMan.php/man/deb-version/7/markdown), [**deb-changes**(5)](https://www.chedong.com/phpMan.php/man/deb-changes/5/markdown), [**dpkg-parsechangelog**(1)](https://www.chedong.com/phpMan.php/man/dpkg-parsechangelog/1/markdown).



1.21.1                                       2025-09-09                             [deb-changelog(5)](https://www.chedong.com/phpMan.php/man/deb-changelog/5/markdown)
