Lintian User's Manual - chapter 1
Introduction
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 that policy becomes `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:
- To give us some impression of the `gap' between theory (written
policy) and praxis (current state of implementation).
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.)
- To make us re-think about certain aspects of our policy.
For example, it could turn out that some ideas that once sounded great
in theory are hard to implemented in all our packages--in which case
we should rework this aspect of policy.
- To show us where to concentrate our efforts in order give
Debian a higher quality.
Most of the release requirements will be implemented through policy.
That is, a new policy manual will be released in a few days which will
cover (nearly) everything that's necessary for a package to be ready
for Debian 2.0. The Lintian reports will 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.
- To make us avoid doing the same mistakes all over again.
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 avoid the bug to
appear in any future revisions of any of our packages.
There are three fields of application for Lintian:
- one person could use Lintian to check the whole Debian archive
and reports bugs,
- each maintainer runs Lintian over her packages before uploading
them,
- dinstall checks packages which are uploaded to master before
they are installed in the archive.
The authors of Lintian decided to choose a very modular design to
achieve the following goals:
- flexibility: Lintian can be used to check single packages or
the whole archive and to report and keep track of bug reports, etc.
- completeness: Lintian will eventually include checks for
(nearly) everything that can be checked mechanically.
- uptodateness: Lintian will be updated whenever policy is
changed.
- performance: Lintian makes it possible to check single packages
within seconds or check the full archive within a few hours.
Here is a list of important notes on how to use Lintian:
- Lintian is not finished yet and will probably never be. Please
don't use Lintian as a reference for Debian policy. Lintian might miss
a lot of policy violations while it might also report some violations
by mistake. If in doubt, please check out the policy manuals.
- The Debian policy gives the maintainers a lot of freedom. In
most cases, the guidelines included in the manuals allow
exceptions. Thus, if Lintian reports a policy violation on a package
and you think this is such an exception (or if you think Lintian has a
bug itself) please contact the authors of Lintian about this. There is
an `override' file which tells Lintian about policy exceptions.
- Please DO NOT use Lintian to file bug reports (neither single
ones nor mass bug reports). This is done by authors of Lintian already
and duplication of efforts and bug reports should be avoided! If you
think a certain bug is `critical', and should be reported/fixed
immediately, please contact the maintainer of the corresponding
package and/or the Lintian maintainers.
- Any feedback about Lintian is welcomed! Please send your
comments to Richard Braakman
lintian-maint@debian.org.
Lintian User's Manual
- Copyright ©1998 Christian Schwarz and Richard Braakman
Contents; abstract; next.
version 0.3.2, 14 March 1998
Christian Schwarz schwarz@debian.org
Richard Braakman dark@xs4all.nl
Contact address: lintian-maint@debian.org