deb-changelog - Linux


deb-changelog is a command used to generate and manage Debian changelogs for source packages. It automates the creation of changelog entries, making it easier to maintain and update package information.


deb-changelog [-a|--action <action>] [-d <directory>] [-D <define>]
              [-e|--email <email>] [-F <format>] [-f|--force] [-i|--iterative] [-I|--interactive]
              [-k|--key <key>] [-l|--list] [-m|--mail <address>] [-n|--new <version>]
              [-o|--output <file>] [-r|--release <release>] [-s|--source <source>]
              [-t|--to-changelog <path>] [-T|--to-control <path>] [-v|--version <version>]
              [-w|--wrap <width>] [--cache <dir>] [--fix-in-place]
              [--full-changes] [--no-change] [--no-commit] [--no-merge] [--no-need-init]
              [--no-pager] [--no-sign] [--no-seq] [--no-version] [--output-existing]
              [--output-latest-version] [--prepend] [--sign-by <key>]
              [--suppress-source] [--transition <new-version>] [--only-changelog]
              [--only-control] [--control-output <file>]
              [--control-transition <new-version>] [--dch-options <options>]


  • -a, –action: Specifies the action to perform. Default: update.
  • -d, –directory: Changes the working directory to the specified path.
  • -D, –define: Defines a Debian control file variable. Can be used multiple times.
  • -e, –email: Sets the email address associated with the changelog.
  • -F, –format: Sets the changelog format (default: medium).
  • -f, –force: Forces operation even if there are potential conflicts.
  • -i, –iterative: Runs deb-changelog iteratively over all the targets.
  • -I, –interactive: Interactively generates changelog entries.
  • -k, –key: Specifies the GPG key to sign the changelog with.
  • -l, –list: Lists available targets for changelog updates.
  • -m, –mail: Sends changelog entries to the specified email address.
  • -n, –new: Creates a new changelog entry with the specified version number.
  • -o, –output: Specifies the output file for the changelog.
  • -r, –release: Sets the Debian release tag for the changelog.
  • -s, –source: Specifies the path to the source package.
  • -t, –to-changelog: Specifies the path to the changelog file.
  • -T, –to-control: Specifies the path to the control file.
  • -v, –version: Sets the version number for the changelog entry.
  • -w, –wrap: Sets the maximum line width for the changelog text.


Create a new changelog entry for version 1.0.0:

deb-changelog --new 1.0.0

Generate a changelog entry interactively:

deb-changelog --interactive

List available targets for changelog updates:

deb-changelog --list

Send changelog entries to a specific email address:

deb-changelog --mail

Common Issues

  • Conflicts with existing changelog entries: Use the –force option to overwrite existing entries.
  • Missing source package: Ensure the source package is located in the correct path and is accessible.
  • Incorrect version number: Verify that the version number specified in the –new or –version options matches the actual version of the package.


Create and commit a changelog entry using Git:

git commit -am "$(deb-changelog --new 1.0.0)"

Update changelog and control file for a new package release:

deb-changelog --new 2.0.0
deb-changelog --to-control debian/control

Related Commands

  • dpkg-genchanges: Generates a Debian package changes file.
  • dpkg-scanpackages: Scans a directory for Debian packages.
  • dch: Interactive command-line tool for generating changelog entries.