[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ next ]



Debian New Maintainers' Guide
Chapter 7 - Checking the package for errors



7.1 The lintian and linda packages

Run lintian(1) and linda(1) on your .changes file; these programs will check for many common packaging errors. The commands are:

       lintian -i gentoo_0.9.12-1_i386.changes
       linda -i gentoo_0.9.12-1_i386.changes

Of course, replace the filename with the name of the .changes file generated for your package. If it appears that there are some errors (lines beginning with E:), read the explanation (the N: lines), correct mistakes, and rebuild as described in Complete rebuild, Section 6.1. If there are lines that begin with W:, those are warnings, so tune the package or verify that the warnings are spurious (and make Lintian overrides; see the documentation for details).

Note that you can build the package with dpkg-buildpackage , run lintian , and linda all in one command with debuild(1).


7.2 The mc command

You can unpack the contents of *.deb package with dpkg-deb(1) command. You can list the contents of a generated Debian package with debc(1).

This can be made into an intuitive process by using a file manager like mc(1) which will let you browse not only the contents of *.deb package files but also *.diff.gz and *.tar.gz files.

Be on the lookout for extra unneeded files or zero length files, both in the binary and source package. Often cruft doesn't get cleaned up properly; adjust your rules file to compensate for that.

Tips: `zgrep ^+++ ../gentoo_0.9.12-1.diff.gz' will give you a list of your changes/additions to the source files, and `dpkg-deb -c gentoo_0.9.12-1_i386.deb' or `debc gentoo_0.9.12-1_i386.changes' will list the files in the binary package.


7.3 The debdiff command

You can compare file lists in two binary Debian packages with debdiff(1) command. This is useful for verifying that no files have been unintentionally misplaced or removed, and no other inadvertent changes were made when updating packages. You can check group of *.deb files simply by `debdiff old-package.change new-package.change'.


7.4 The interdiff command

You can compare two diff.gz files with interdiff(1) command. This is useful for verifying that no inadvertent changes were made to the source by the maintainer when updating packages. Run `interdiff -z old-package.diff.gz new-package.diff.gz'.


7.5 The debi command

Install the package to test it yourself, e.g. using the debi(1) command as root. Try to install and run it on machines other than your own and watch closely for any warnings or errors both during the installation and while the program is being run.


7.6 The pbuilder package

For a clean room (chroot) build environment to verify the build dependencies, the pbuilder package is very useful. This ensures a clean build from source under the auto-builder for different architectures and avoids the severity serious FTBFS (Fails To Build From Source) bug which is always in the RC (release critical) category. See http://buildd.debian.org/ for more on the Debian package auto-builder.

The most basic use of the pbuilder package is the direct invocation of pbuilder command from root. For example, issue the following commands in the directory where .orig.tar.gz, .diff.gz, and .dsc exist to build a package.

     root # pbuilder create # if second time, pbuilder update
     root # pbuilder build foo.dsc

The newly built packages will be located in /var/cache/pbuilder/result/ with root ownership.

The pdebuild command helps you to use pbuilder package functions from the normal user account. From the root of the source tree while having orig.tar.gz file in its parent directory, you issue the following commands:

     $ sudo pbuilder create # if second time, sudo pbuilder update
     $ pdebuild

The newly built packages will be located in /var/cache/pbuilder/result/ with non-root ownership. [2]

If you want to add an additional apt source to be used by the pbuilder package, you set OTHERMIRROR in ~/.pbuilderrc or /etc/pbuilderrc and run (for sarge)

     $ sudo pbuilder update --distribution sarge --override-config

The use of --override-config is needed to update apt source within chroot environment.

See http://www.netfort.gr.jp/~dancer/software/pbuilder.html, pdebuild(1), pbuilderrc(5), and pbuilder(8) .


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ next ]


Debian New Maintainers' Guide


version 1.2.11, 12 January 2007.

Josip Rodin [email protected]