Provided by: devscripts_2.22.2ubuntu3_amd64 bug


       devscripts - scripts to ease the lives of Debian developers


       The  devscripts  package  provides  a  collection of scripts which may be of use to Debian
       developers and others wishing to build Debian packages.  For a summary  of  the  available
       scripts,  please  see  the file /usr/share/doc/devscripts/README.gz, and for full details,
       please see the individual manpages.  They are  contributed  by  multiple  developers;  for
       details of the authors, please see the code or manpages.

       Also,  the  directory /usr/share/doc/devscripts/examples contains examples of procmail and
       exim scripts for sorting mail arriving to Debian mailing lists.


       Several scripts of the devscripts suite use the following environment variables. Check the
       man pages of individual scripts for more details on how the variables are used.

           Email of the person acting on a given Debian package via devscripts.

           Full  name  (first  +  family)  of  the  person  acting  on a given Debian package via


       Here is the complete list of available devscripts. See  their  man  pages  for  additional

              run  a  command  and prepend time and stream (O for stdout, E for stderr) for every
              line of output.

              Prints arch (tla/Bazaar 1.x) package names. Also supports calculating  the  package
              names for other branches. [tla]

       bts(1) A  command-line  tool  for  accessing  the Debian Bug Tracking System, both to send
              mails to and to access the web pages and SOAP  interface  of
              the  BTS.  [www-browser, libauthen-sasl-perl, libnet-smtps-perl, libsoap-lite-perl,
              liburi-perl, libwww-perl, bsd-mailx | mailx]

              Searches for all packages that build-depend on a given package. [dctrl-tools, dose-
              extra, libdpkg-perl]

              tool to easily play with several distributions. [dctrl-tools]

              check whether a /bin/sh script contains any common bash-specific constructs.

              upload  a  Debian source package to a cowbuilder host and build it, optionally also
              signing and uploading the result to an incoming queue. [ssh-client]

       cvs-debi, cvs-debc(1)
              wrappers around debi and debc respectively (see  below)  which  allow  them  to  be
              called from the CVS working directory. [cvs-buildpackage]

              wrapper  around  debrelease  which  allows  it  to  be  called from the CVS working
              directory. [cvs-buildpackage, dupload | dput, ssh-client]

              A wrapper for cvs-buildpackage to use debuild  as  its  package  building  program.
              [cvs-buildpackage, fakeroot, lintian, gnupg |gnupg2]

              run  a given command replacing the name of a .changes or .dsc file with each of the
              files referenced therein. *

              given a list of packages, pretty-print it ordered by maintainer. *

              bisect to find which change in the archive introduced a certain
              problem. [mmdebstrap, python3-debian]

              List  contents  of current package.  Do this after a successful "debuild" to see if
              the package looks all right.

       debchange (abbreviation dch)(1)
              Modifies debian/changelog and manages version numbers  for  you.   It  will  either
              increment  the  version  number  or add an entry for the current version, depending
              upon the options given to it. [libdistro-info-perl, libsoap-lite-perl]*

              checkout the development repository of a Debian package. *

              Clean a Debian source tree.  Debclean will clean all Debian source trees below  the
              current directory, and if requested, also remove all files that were generated from
              these source trees (that is .deb, .dsc and  .changes  files).   It  will  keep  the
              .diffs  and  original  files,  though,  so that the binaries and other files can be
              rebuilt if necessary. [fakeroot]*

              Commits changes to cvs, darcs, svn, svk, tla, bzr, git, or hg, using new entries in
              debian/changelog  as  the  commit  message.  Also  supports  tagging Debian package
              releases. [cvs | darcs | subversion | svk | tla  |  bzr  |  git-core  |  mercurial,

              A  program  which  examines two .deb files or two .changes files and reports on any
              difference found in their file lists.  Useful  for  ensuring  that  no  files  were
              inadvertently lost between versions.  Can also examine two .dsc files and report on
              the changes between source versions. For  a  deeper  comparison  one  can  use  the
              diffoscope package. [wdiff, patchutils]*

              Apply  unified  diffs  of  two  Debian  source packages, such as those generated by
              debdiff, to a target Debian source package. Any  changes  to  debian/changelog  are
              dealt with specially, to avoid the conflicts that changelog diffs typically produce
              when applied naively. May be used to check that old patches still  apply  to  newer
              versions of those packages. [python3-debian, python3-unidiff, quilt]

              Installs  the  current  package  by  using  the setuid root debpkg script described
              below.  It assumes that the current package has just been  built  (for  example  by
              debuild), and the .deb lives in the parent directory, and will effectively run dpkg
              -i on the .deb.  The ability to install the package with a very  short  command  is
              very useful when troubleshooting packages.

              Combines  debootstrap and to create a chroot containing exactly
              the requested selection of packages. This can be used to re-create  a  chroot  from
              the  past,  for  example to reproduce a bug. The tool is also used by debrebuild to
              build a package in a chroot with build dependencies in the same version as recorded
              in the buildinfo file. [python3-pycurl, mmdebstrap]

              A  wrapper  for  dpkg  used  by  debi to allow convenient testing of packages.  For
              debpkg to work, it needs to be made setuid root, and this needs to be performed  by
              the  sysadmin  --  it is not installed as setuid root by default.  (Note that being
              able to run a setuid root debpkg is effectively the same as having root  access  to
              the  system,  so this should be done with caution.)  Having debpkg as a wrapper for
              dpkg can be a Good Thing  (TM),  as  it  decreases  the  potential  for  damage  by
              accidental  wrong  use of commands in superuser mode (e.g., an inadvertent rm -rf *
              in the wrong directory is disastrous as many can attest to).

              A wrapper around dupload or dput which figures out which  version  to  upload,  and
              then  calls  dupload  or dput to actually perform the upload. [dupload | dput, ssh-

              A script that provided a .buildinfo file reports the instructions on how to try  to
              reproduce the reported build. [sbuild | mmdebstrap, python3-pycurl, libdpkg-perl]

              A  script  that  tests  reproducibility  of  Debian packages. It will build a given
              source directory twice, with a set of variation between the first and second build,
              and compare the binary packages produced. If diffoscope is installed, it is used to
              compare non-matching binaries. If disorderfs is installed, it is  used  during  the
              build  to  inject  non-determinism  in  filesystem  listing  operations. [faketime,
              diffoscope, disorderfs]

              This transfers a .changes/.dsc pair to a  remote  machine  for  signing,  and  runs
              debsign  on  the  remote  machine  over an SSH connection. [gnupg | gnupg2, debian-
              keyring, ssh-client]

              Use GNU Privacy Guard to sign the changes  (and  possibly  dsc)  files  created  by
              running  dpkg-buildpackage  with  no-sign  options.   Useful  if you are building a
              package on a remote machine and wish to sign it on a local  one.   This  script  is
              capable  of  automatically  downloading  the  .changes and .dsc files from a remote
              machine. [gnupg |gnupg2, debian-keyring, ssh-client]*

              grab packages from [libwww-perl, libjson-perl]

              A wrapper for building a package (i.e., dpkg-buildpackage) to avoid  problems  with
              insufficient  permissions  and  wrong  paths  etc.  Debuild  will set up the proper
              environment for building a package. Debuild will use the fakeroot program to  build
              the  package  by default, but can be instructed to use any other gain-root command,
              or can even be installed setuid root.  Debuild can also be used to run  various  of
              the debian/rules operations with the same root-gaining procedure. Debuild will also
              run lintian to check that the package does not have any  major  policy  violations.
              [fakeroot, lintian, gnupg | gnupg2]*

              command-line client for interacting with the Debian Janitor.

              increases  a  binary  package  version  number  and repacks the package, useful for
              porters and the like.

              shows the reason a package was removed from the archive. [libdpkg-perl]

              generate a changelog entry from a DEP3-style patch header.

              given a  desktop  file,  generate  a  skeleton  for  a  menu  file.

              Downloads  Debian  source  and  binary  packages.  Point  at  a .changes or .dsc to
              download all references files. Specify a package  name  to  download  it  from  the
              configured apt repository. [wget | curl]

              extracts  patches  from  a .diff.gz file placing them under debian/ or, if present,
              debian/patches. [patchutils]

       dpkg-depcheck, dpkg-genbuilddeps(1)
              Runs a  specified  command  (such  as  debian/rules  build)  or  dpkg-buildpackage,
              respectively,  to  determine  the  packages  used  during  the build process.  This
              information can be helpful when trying to determine  the  packages  needed  in  the
              Build-Depends etc. lines in the debian/control file. [build-essential, strace]

              extract a single file from a Debian source package. [patchutils]

              check  the  signature  and  MD5  sums of a dsc file against the most current Debian
              keyring on your system. [gnupg | gnupg2, debian-keyring]

              add/edit a patch for a source package and commit the changes.  [quilt  |  dpatch  |

              download package build logs from Debian auto-builders. [wget]

              try to produce Debian orig.tar using git-archive(1). [libdpkg-perl, libgit-wrapper-
              perl, liblist-compare-perl, libstring-shellquote-perl, libtry-tiny-perl]

              grep britney's excuses to find out what is happening to your packages.  [libdbd-pg-
              perl, libterm-size-perl, libyaml-syck-perl, wget, w3m]

              report the hardening characteristics of a set of binaries.

              searches for packages marked UNRELEASED in their changelog.

       ltnu (Long Time No Upload)(1)
              List  all  uploads of packages by the given uploader or maintainer and display them
              ordered by the last upload of that package, oldest uploads first.

              locate binaries without corresponding manpages. [man-db]

              mass-file bug reports. [bsd-mailx | mailx]

              merge .changes files from the same release but built on different architectures.

              Given a package name and/or control file, generate a binary package  which  may  be
              installed to satisfy the build-dependencies of the given package. [equivs]

              Rename  upstream tarball, optionally changing the compression and removing unwanted
              files. [libfile-which-perl, unzip, xz-utils, file]

              Check project names are not already taken.

              prepare a diff of this version (presumably an NMU against the  previously  released
              version (as per the changelog) and submit the diff to the BTS. [patchutils, mutt]

              fetch  the  orig  tarball  of a Debian package from various sources, and unpack it.
              [pristine-tar, pristine-lfs]

              display information from a changelog graphically using gnuplot.  [libtimedate-perl,

              subscribe  to the PTS (Package Tracking System) for a limited period of time. [bsd-
              mailx | mailx, at]

              list installed packages which have release-critical bugs. [wget | curl]

              reports on the reproducible status of installed packages. For more  details  please
              see <>.

              remotely  query  the  Debian  archive database about packages. [liburi-perl, wget |

              run DEP-8 tests. [python3-debian, autodep8]

              manipulates repositories and users [libgitlab-api-v4-perl]

              output a list of files which are not common source files. [python3-magic]

              Prints the path to  the  Subversion  repository  of  a  Subversion  checkout.  Also
              supports  calculating  the  paths for branches and tags in a repository independent
              fashion. Used by debcommit to generate svn tags. [subversion]

              runs from a Debian source tree and tags bugs that are to be closed  in  the  latest
              changelog as pending. [libsoap-lite-perl]

              Check a list of source packages for involvement in transitions for which uploads to
              unstable are currently blocked. [libwww-perl, libyaml-syck-perl]

              Automatically scan for and download  upstream  updates.   Uscan  can  also  call  a
              program  such  as  uupdate to attempt to update the Debianised version based on the
              new  update.   Whilst  uscan  could  be  used  to  release  the   updated   version
              automatically,  it  is  probably better not to without testing it first.  Uscan can
              also verify detached OpenPGP signatures if upstream's signing key is known.  [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]*

              Update the package with an archive or patches from an upstream author.   This  will
              be  of  help  if  you have to update your package.  It will try to apply the latest
              diffs to your package and tell you how successful it was. [patch]

              determine what patch system, if any, a source package is using. [patchutils]

              check which maintainers' packages depend on a package.

              Retrieve information about Debian Maintainer access control lists. [gnupg | gnupg2,
              libencode-locale-perl, libwww-perl, debian-keyring]

              determine  the  most  recent uploaders of a package to the Debian archive. [gnupg |
              gnupg2, debian-keyring, debian-maintainers, wget]

              list installed packages which are orphaned or up for adoption. [wget | curl]

              check whether there is an open request for packaging or intention  to  package  bug
              for a package. [wget | curl]

              wrap long lines and sort items in packaging files. [python3-debian]