Overview of Debian Maintainer Tools
This section contains a rough overview of the tools available to maintainers.
The following is by no means complete or definitive, but just a guide to some
of the more popular tools.
Debian maintainer tools are meant to aid developers and free their time for
critical tasks. As Larry Wall says, there's more than one way to do it.
Some people prefer to use high-level package maintenance tools and some do not.
Debian is officially agnostic on this issue; any tool which gets the job done
is fine. Therefore, this section is not meant to stipulate to anyone which
tools they should use or how they should go about their duties of
maintainership. Nor is it meant to endorse any particular tool to the
exclusion of a competing tool.
Most of the descriptions of these packages come from the actual package
descriptions themselves. Further information can be found in the package
documentation itself. You can also see more info with the command
apt-cache show <package-name>.
Package uploaders
The following packages help automate or simplify the process of uploading
packages into the official archive.
dupload
dupload is a package and a script to
automatically upload Debian packages to the Debian archive, to log the upload,
and to send mail about the upload of a package. You can configure it for new
upload locations or methods.
dput
The dput package and script does much
the same thing as dupload, but in a
different way. It has some features over dupload, such as the ability to check the GnuPG
signature and checksums before uploading, and the possibility of running
dinstall in dry-run mode after the upload.
dcut
The dcut script (part of the package
) helps in removing files from the ftp upload directory.
Maintenance automation
The following tools help automate different maintenance tasks, from adding
changelog entries or signature lines and looking up bugs in Emacs to making use
of the newest and official config.sub.
devscripts
devscripts is a package containing
wrappers and tools which are very helpful for maintaining your Debian packages.
Example scripts include debchange and
dch, which manipulate your
debian/changelog file from the command-line, and
debuild, which is a wrapper around
dpkg-buildpackage. The bts utility is
also very helpful to update the state of bug reports on the command line.
uscan can be used to watch for new upstream versions of your
packages. debrsign can be used to remotely sign a package
prior to upload, which is nice when the machine you build the package on is
different from where your GPG keys are.
See the devscripts
1 manual page for a complete list of
available scripts.
dpkg-repack
dpkg-repack creates Debian package file out of a package
that has already been installed. If any changes have been made to the package
while it was unpacked (e.g., files in /etc were modified),
the new package will inherit the changes.
This utility can make it easy to copy packages from one computer to another, or
to recreate packages which are installed on your system but no longer available
elsewhere, or to save the current state of a package before you upgrade it.
alien
alien converts binary packages between various packaging
formats, including Debian, RPM (RedHat), LSB (Linux Standard Base), Solaris,
and Slackware packages.
debsums
debsums checks installed packages against their MD5 sums.
Note that not all packages have MD5 sums, since they aren't required by Policy.
dpkg-dev-el
dpkg-dev-el is an Emacs lisp package
which provides assistance when editing some of the files in the
debian directory of your package. For instance, there are
handy functions for listing a package's current bugs, and for finalizing the
latest entry in a debian/changelog file.
dpkg-depcheck
dpkg-depcheck (from the devscripts package, )
runs a command under strace to determine all the packages
that were used by the said command.
For Debian packages, this is useful when you have to compose a
Build-Depends line for your new package: running the build
process through dpkg-depcheck will provide you with a good
first approximation of the build-dependencies. For example:
-depcheck -b debian/rules build
dpkg-depcheck can also be used to check for run-time
dependencies, especially if your package uses exec(2) to run other programs.
For more information please see
dpkg-depcheck 1
.