Lintian is a Debian package checker. It can be used to check binary and source packages for compliance with the Debian policy and for other common packaging errors.
Lintian uses an archive directory, called laboratory, in which it stores information about the packages it examines. It can keep this information between multiple invocations in order to avoid repeating expensive data-collection operations. It's also possible to check the complete Debian archive for bugs -- in a timely manner.
Packaging has become complicated--not because dpkg is complicated (indeed, dpkg-deb is very simple to use) but because of the high requirements of our policy. If a developer releases a new package, she has to consider hundreds of guidelines to make the package `policy compliant.'
All parts of our policy have been introduced by the same procedure: Some developer has a good idea how to make packages more `unique' with respect to a certain aspect--then the idea is discussed and a policy proposal is prepared. If we have a consensus about the policy change, it's introduced in our manuals.
Therefore, our policy is not designed to make life harder for the maintainers! The intention is to make Debian the best Linux distribution out there. With this in mind, lots of policy changes are discussed on the mailing lists each week.
But changing the policy is only a small part of the story: Just having some statement included in the manual does not make Debian any better. What's needed is for that policy to become `real life,' i.e., it's implemented in our packages. And this is where Lintian comes in: Lintian checks packages and reports possible policy violations. (Of course, not everything can be checked mechanically -- but a lot of things can and this is what Lintian is for.)
Thus, Lintian has the following goals:
From the results of the first two Lintian checks I implemented, I see that there is a big need to make this gap smaller. Introducing more policy aspects is worthless unless they are implemented. We first should fix packages to comply with current policy before searching for new ways to make policy more detailed. (Of course, there are also important policy changes that need to be introduced -- but this is not what's meant here.)
For example, it could turn out that some ideas that once sounded great in theory are hard to implement in all our packages -- in which case we should rework this aspect of policy.
Most release requirements will be implemented through policy. Lintian reports provide an easy way to compare all our packages against policy and keep track of the fixing process by watching bug reports. Note, that all this can be done automatically.
Being humans, it's natural for us to make errors. Since we all have the ability to learn from our mistakes, this is actually no big problem. Once an important bug is discovered, a Lintian check could be written to check for exactly this bug. This will prevent the bug from appearing in any future revisions of any of our packages.
There are three fields of application for Lintian:
The authors of Lintian decided to use a very modular design to achieve the following goals:
Here is a list of important notes on how to use Lintian:
lintian-maint@debian.org
.
Lintian User's Manual
version 1.23.0, 15 April 2004schwarz@debian.org
dark@xs4all.nl
shaleh@debian.org
djpig@debian.org
lintian-maint@debian.org