# man > dpkg-genchanges(1)

---
type: CommandReference
command: dpkg-genchanges
mode: man
section: 1
source: man-pages
---

## Quick Reference
- `dpkg-genchanges` — generate .changes file for Debian upload
- `dpkg-genchanges -S` — source-only upload
- `dpkg-genchanges -B` — arch-specific binary packages
- `dpkg-genchanges -A` — arch-independent binary packages
- `dpkg-genchanges -b` — binary packages (any,all)
- `dpkg-genchanges -g` — source and all binary
- `dpkg-genchanges -G` — source and any binary
- `dpkg-genchanges --build=full` — everything (default)

## Name
dpkg-genchanges — generate Debian .changes files

## Synopsis
`dpkg-genchanges` [option...]

## Options

### Build types
- `--build=type` — specify build type from comma-separated components: `source`, `any`, `all`.  
  Aliases: `binary` = `any,all`, `full` = `source,any,all`
- `-g` — `--build=source,all`
- `-G` — `--build=source,any`
- `-b` — `--build=binary` (any,all)
- `-B` — `--build=any`
- `-A` — `--build=all`
- `-S` — `--build=source`

### Source inclusion (when source is generated)
- `-si` — include original source if upstream version differs from previous changelog
- `-sa` — always include original source
- `-sd` — always exclude original source (only diff)

### Changelog and maintainer
- `-v version` — include changelog entries strictly later than version
- `-C changes-description` — read changes description from file instead of changelog
- `-m maintainer-address` — override maintainer in control file
- `-e maintainer-address` — override maintainer for upload

### Substitution variables
- `-V name=value` — set output substitution variable
- `-T substvars-file` — read substitution variables (default `debian/substvars`); may be repeated

### Field manipulation
- `-D field=value` — override or add output control file field
- `-U field` — remove output control file field

### Input files
- `-c control-file` — main source control file (default `debian/control`)
- `-l changelog-file` — changelog file (default `debian/changelog`)
- `-f files-list` — list of files to upload (default `debian/files`)
- `-F changelog-format` — changelog format (see `dpkg-parsechangelog(1)`)

### Output and paths
- `-u upload-files-dir` — directory for files to upload (default `..`)
- `-q` — suppress messages about source files
- `-O [filename]` — print changes file to stdout or to filename

### Help
- `-?, --help` — show usage message
- `--version` — show version

## Environment
- `DPKG_COLORS` — color mode: `auto`, `always`, `never` (default auto)
- `DPKG_NLS` — if set to `0` or `1`, enables/disables Native Language Support (default 1)

## Examples
shell
# Source-only upload
dpkg-genchanges -S

# Binary-only upload (all architectures)
dpkg-genchanges -b

# Architecture-specific binary packages
dpkg-genchanges -B

# Source and all binary packages
dpkg-genchanges -g

# Custom maintainer
dpkg-genchanges -m "John Doe <john@example.com>"

# Using a specific changelog file
dpkg-genchanges -l /path/to/changelog

# Output to file
dpkg-genchanges -O output.changes
## See Also
- [deb-substvars(5)](https://www.chedong.com/phpMan.php/man/deb-substvars/5/markdown)
- [deb-src-control(5)](https://www.chedong.com/phpMan.php/man/deb-src-control/5/markdown)
- [deb-src-files(5)](https://www.chedong.com/phpMan.php/man/deb-src-files/5/markdown)
- [deb-changelog(5)](https://www.chedong.com/phpMan.php/man/deb-changelog/5/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)