[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ next ]

Debian Programmers' Manual
Chapter 2 - Discussion of Debian packaging tools


This chapter provides an overview of the tools available for Debian developers. If this is your first time reading this manual,and you want to see how to make the debian package first, you may skip this chapter and come back to it later.

There are 2 classes of debian packaging tools. Those that come with dpkg and dpkg-dev are mandatory for building packages. Debmake provides a set of tools which are not mandatory and are there to help you in your development. They have a number of drawbacks, especially debstd, but they make creating a debian package that much easier at first.

All dpkg-dev tools are described in section 3.1 of Debian Packaging Manual. Please look it over before proceeding.


2.1 debmake tools

Below you will find a list of debmake tools with simple descriptions. Every tool has its own manpage. Please refer to them for more information.

deb-make
Should be run from the directory where the upstream source is unpacked. Renames that directory to package-version.orig and sets up debian directory structure and files.
debchange, debch
Manages debian/changelog file
todo, done
Manage todo list for a debian package
build
Invokes dpkg-buildpackage if given no arguments, runs debian/rules argument when an argument is given.
debstd
usually executed from debian/rules. Has numerous functions, including putting the documentation in proper place and compressing it if necessary, running on dpkg-shlibdeps on all binaries found, checking for and fixing dangling symlinks and multi-binary packages support. Some of these features will be discussed further in this manual, others won't be. Please refer to debstd(1) for the complete description of debstd.
debc
lists the contents of debian package
debi
Installs the package produced from the source tree it was invoked from.
deblint
unpacks the package and performs various checks on the contents.
release
uploads the package using dupload, if it is installed or using ssh, if dupload isn't installed. Posts the announcement to appropriate mailing lists.
uupdate
updates the source package using new upstream source of patch file.

2.2 Execution trees

In order to see how debian packaging process works, the following execution trees might be helpful. They show which tools should be executed by maintainer and which are only called internally by other tools.

Here is how the process looks like without debmake:

     
     (maintainer creates the debian structure)
     dpkg-buildpackage
          dpkg-parsechangelog
          dpkg-source
          rules clean
          rules binary
               dpkg-shlibdeps
               dpkg-gencontrol
               dpkg-deb --build
          dpkg-genchanges
     (maintainer checks and tests the package)

And here is how it looks like with debmake tools:

     
     deb-make or uupdate 
     debchange
     dpkg-buildpackage or build
         dpkg-parsechangelog
         dpkg-source
         rules clean
         rules binary
              debstd
                   dpkg-shlibdeps
              dpkg-gencontrol
              dpkg-deb --build     
         dpkg-genchanges
     debc
     deblint
     debi
     release

[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ next ]

Debian Programmers' Manual


17 June 2006

Igor Grobman igor@debian.org