# man > devscripts(1)

---
type: CommandReference
command: devscripts
mode: man
section: 1
source: man-pages
---

## Quick Reference

- `debuild` — wrapper around `dpkg-buildpackage` to build packages with proper environment and lintian checks
- `debchange (dch)` — modifies `debian/changelog` and manages version numbers
- `debcheckout` — checkout the development repository of a Debian package
- `debclean` — clean a Debian source tree and optionally remove generated files
- `debi` — install the current package using `debpkg`
- `debc` — list contents of the current package after a successful build
- `dget` — download Debian source and binary packages from a `.changes`/`.dsc` or apt repository
- `uscan` — automatically scan for and download upstream updates

## Name

`devscripts` — scripts to ease the lives of Debian developers

## Description

The **devscripts** package provides a collection of scripts for Debian developers and others wishing to build Debian packages. For a summary of the available scripts, see `/usr/share/doc/devscripts/README.gz`. For full details, see the individual manpages. The directory `/usr/share/doc/devscripts/examples` contains examples of **procmail** and **exim** scripts for sorting mail arriving to Debian mailing lists.

### Environment

Several scripts use the following environment variables:

- `DEBEMAIL` — email of the person acting on a given Debian package
- `DEBFULLNAME` — full name (first + family) of the person acting on a given Debian package

## Scripts

- `annotate-output` — run a command and prepend time and stream (O for stdout, E for stderr) for every line of output
- `archpath` — prints arch (tla/Bazaar) package names; also supports calculating package names for other branches [tla | bazaar]
- `bts` — command-line tool for accessing the Debian Bug Tracking System [www-browser, libauthen-sasl-perl, libnet-smtps-perl, libsoap-lite-perl, liburi-perl, libwww-perl, bsd-mailx | mailx]
- `build-rdeps` — searches for all packages that build-depend on a given package [dctrl-tools, dose-extra, libdpkg-perl]
- `chdist` — tool to easily play with several distributions [dctrl-tools]
- `checkbashisms` — check whether a `/bin/sh` script contains any common bash-specific constructs
- `cowpoke` — upload a Debian source package to a cowbuilder host and build it, optionally signing and uploading the result [ssh-client]
- `cvs-debi`, `cvs-debc` — wrappers around `debi` and `debc` for use from CVS working directory [cvs-buildpackage]
- `cvs-debrelease` — wrapper around `debrelease` for use from CVS working directory [cvs-buildpackage, dupload | dput, ssh-client]
- `cvs-debuild` — wrapper for `cvs-buildpackage` to use `debuild` as its package building program [cvs-buildpackage, fakeroot, lintian, gnupg | gnupg2]
- `dcmd` — run a given command replacing the name of a `.changes` or `.dsc` file with each of the files referenced therein
- `dd-list` — given a list of packages, pretty-print it ordered by maintainer
- `debbisect` — bisect snapshot.debian.org to find which change in the archive introduced a certain problem [mmdebstrap, python3-debian]
- `debc` — list contents of current package (after a successful `debuild`)
- `debchange (dch)` — modifies `debian/changelog` and manages version numbers [libdistro-info-perl, libsoap-lite-perl]
- `debcheckout` — checkout the development repository of a Debian package
- `debclean` — clean a Debian source tree; optionally remove generated files (.deb, .dsc, .changes) [fakeroot]
- `debcommit` — commits changes to various VCS using new entries in `debian/changelog` as commit message; supports tagging releases [cvs | darcs | subversion | svk | tla | bzr | git-core | mercurial, libtimedate-perl]
- `debdiff` — examines two `.deb`, `.changes`, or `.dsc` files and reports differences [wdiff, patchutils]
- `debdiff-apply` — apply unified diffs of two Debian source packages to a target package [python3-debian, python3-unidiff, quilt]
- `debi` — install the current package using `debpkg`
- `debootsnap` — combines `debootstrap` and snapshot.debian.org to create a chroot with exact package selection [python3-pycurl, mmdebstrap]
- `debpkg` — wrapper for `dpkg` used by `debi`; needs to be setuid root (not by default)
- `debrelease` — wrapper around `dupload` or `dput` to upload the current version [dupload | dput, ssh-client]
- `debrebuild` — given a `.buildinfo` file, reports instructions to reproduce the build [sbuild | mmdebstrap, python3-pycurl, libdpkg-perl]
- `debrepro` — tests reproducibility of Debian packages by building twice with variations and comparing results [faketime, diffoscope, disorderfs]
- `debrsign` — transfers a `.changes`/`.dsc` pair to a remote machine for signing via SSH [gnupg | gnupg2, debian-keyring, ssh-client]
- `debsign` — sign `.changes` and `.dsc` files with GNU Privacy Guard; can download from remote machine [gnupg | gnupg2, debian-keyring, ssh-client]
- `debsnap` — grab packages from <https://snapshot.debian.org> [libwww-perl, libjson-perl]
- `debuild` — wrapper for building a package (`dpkg-buildpackage`); sets up proper environment, uses `fakeroot`, runs `lintian` [fakeroot, lintian, gnupg | gnupg2]
- `deb-janitor` — command-line client for interacting with the Debian Janitor
- `deb-reversion` — increases a binary package version number and repacks the package
- `deb-why-removed` — shows the reason a package was removed from the archive [libdpkg-perl]
- `dep3changelog` — generate a changelog entry from a DEP3-style patch header
- `desktop2menu` — given a freedesktop.org desktop file, generate a skeleton for a menu file [libfile-desktopentry-perl]
- `dget` — download Debian source and binary packages from a `.changes`/`.dsc` or apt repository [wget | curl]
- `diff2patches` — extracts patches from a `.diff.gz` file placing them under `debian/` or `debian/patches` [patchutils]
- `dpkg-depcheck`, `dpkg-genbuilddeps` — run a command or `dpkg-buildpackage` to determine build dependencies [build-essential, strace]
- `dscextract` — extract a single file from a Debian source package [patchutils]
- `dscverify` — check the signature and MD5 sums of a `.dsc` file against the Debian keyring [gnupg | gnupg2, debian-keyring]
- `edit-patch` — add/edit a patch for a source package and commit changes [quilt | dpatch | cdbs]
- `getbuildlog` — download package build logs from Debian auto-builders [wget]
- `git-deborig` — try to produce Debian orig.tar using `git-archive` [libdpkg-perl, libgit-wrapper-perl, liblist-compare-perl, libstring-shellquote-perl, libtry-tiny-perl]
- `grep-excuses` — grep britney's excuses to find out what is happening to your packages [libdbd-pg-perl, libterm-size-perl, libyaml-syck-perl, wget, w3m]
- `hardening-check` — report the hardening characteristics of a set of binaries
- `list-unreleased` — searches for packages marked UNRELEASED in their changelog
- `ltnu` (Long Time No Upload) — list all uploads by the given uploader or maintainer, ordered by last upload, oldest first
- `manpage-alert` — locate binaries without corresponding manpages [man-db]
- `mass-bug` — mass-file bug reports [bsd-mailx | mailx]
- `mergechanges` — merge `.changes` files from the same release but built on different architectures
- `mk-build-deps` — generate a binary package to satisfy build-dependencies from a package name or control file [equivs]
- `mk-origtargz` — rename upstream tarball, optionally changing compression and removing unwanted files [libfile-which-perl, unzip, xz-utils, file]
- `namecheck` — check project names are not already taken
- `nmudiff` — prepare a diff of this version (NMU) against the previous release and submit to the BTS [patchutils, mutt]
- `origtargz` — fetch the orig tarball of a Debian package from various sources and unpack it [pristine-tar, pristine-lfs]
- `plotchangelog` — display information from a changelog graphically using gnuplot [libtimedate-perl, gnuplot]
- `pts-subscribe` — subscribe to the PTS for a limited period of time [bsd-mailx | mailx, at]
- `rc-alert` — list installed packages which have release-critical bugs [wget | curl]
- `reproducible-check` — reports on the reproducible status of installed packages
- `rmadison` — remotely query the Debian archive database about packages [liburi-perl, wget | curl]
- `sadt` — run DEP-8 tests [python3-debian]
- `salsa` — manipulates salsa.debian.org repositories and users [libgitlab-api-v4-perl]
- `suspicious-source` — output a list of files which are not common source files [python3-magic]
- `svnpath` — prints the path to the Subversion repository of a checkout; supports branches and tags [subversion]
- `tagpending` — tags bugs to be closed in the latest changelog as pending [libsoap-lite-perl]
- `transition-check` — check a list of source packages for involvement in blocked transitions [libwww-perl, libyaml-syck-perl]
- `uscan` — automatically scan for and download upstream updates; can verify OpenPGP signatures [file, gpgv | gpgv2, gnupg | gnupg2, libfile-dirlist-perl, libfile-touch-perl, libfile-which-perl, liblwp-protocol-https-perl, libmoo-perl, libwww-perl, unzip, xz-utils]
- `uupdate` — update the package with an archive or patches from upstream [patch]
- `what-patch` — determine what patch system a source package is using [patchutils]
- `whodepends` — check which maintainers' packages depend on a package
- `who-permits-upload` — retrieve information about Debian Maintainer access control lists [gnupg | gnupg2, libencode-locale-perl, libwww-perl, debian-keyring]
- `who-uploads` — determine the most recent uploaders of a package to the Debian archive [gnupg | gnupg2, debian-keyring, debian-maintainers, wget]
- `wnpp-alert` — list installed packages which are orphaned or up for adoption [wget | curl]
- `wnpp-check` — check whether there is an open request for packaging or intention to package bug for a package [wget | curl]
- `wrap-and-sort` — wrap long lines and sort items in packaging files [python3-debian]

## See Also

- `/usr/share/doc/devscripts/README.gz` — summary of available scripts
- Individual manpages for each script (e.g., `man debuild`, `man uscan`)