Differences between revisions 31 and 32
Revision 31 as of 2014-10-27 06:56:41
Size: 5202
Editor: PaulWise
Comment: Add links to derivatives
Revision 32 as of 2015-05-01 02:02:03
Size: 5189
Editor: PaulWise
Comment: fix link
Deletions are marked like this. Additions are marked like this.
Line 67: Line 67:
 * [[https://dex.alioth.debian.org/census/patches/l/lintian/|Patches by derivatives]]  * [[http://deriv.debian.net/patches/l/lintian/|Patches by derivatives]]



Interacting with the team

Usual roles

  • Russ Allbery (rra) commits patches, fixes bugs, does infrastructure development, and watches over the version on lilburn.debian.org for http://lintian.debian.org/

  • Raphael Geissert commits patches, fixes bugs, and does infrastructure development

  • Niels Thykier commits patches, fixes bugs, and does infrastructure development, and watches over the version on lilburn.debian.org for http://lintian.debian.org/

  • Adam D. Barratt commits patches, fixes bugs, and does infrastructure development
  • Frank Lichtenheld (djpig) does bug fixing and commits
  • Marc 'HE' Brockschmidt does some bug fixing and commits and was the Google Summer of Code mentor
  • Colin Watson keeps an eye on Ubuntu integration and man page checks

Task description

Lintian is a comprehensive package checker for Debian packages. It primarily tries to check for Debian Policy violations and violations of various sub-policies, but it also checks for best practices, common mistakes, and problems that maintainers like to catch before uploads.

Lintian by design only performs checks internal to a single source package (and binaries built from that source) which can be done without external information other than Lintian itself. This allows stability of output: Lintian will produce the same report for a given package and a given version of Lintian each time it's run. Cross-repository checks and checks for consistency and linkages between packages should be done by other tools.

The team also maintains http://lintian.debian.org/ as a presentation of the results of running Lintian on the entire archive. Currently, due to limitations in both disk space and available CPU, as well as limitations in Lintian's archive-wide configuration abilities, these checks are only done for arch: i386, arch: amd64 and arch: all packages in sid and experimental.

Get involved

Have a look at /HackersGuide for hints.

Easy Projects

  • Pick a fully specified wishlist bug for a Lintian check and implement it.
  • Look at t/COVERAGE and write a test case for a tag that's not currently tested.
  • Edit all tag descriptions for consistency and add appropriate markup.

Larger Projects

  • Rewrite the Lintian manual. It is somewhat out of date.
  • Add documentation of what Lintian extracts into the laboratory. A rewritten Lintian manual would be a good place to put this information.

Hard Projects

  • Help the team with refactoring the existing code to share more common modules. (Please discuss this on the team list before starting. RussAllbery has some ideas for what could be done.)

More stuff

This is a somewhat random collection of additional notes about Lintian, mostly from the DebConf7 Lintian BOF.

  • Role of lintian: package checker without external dependencies besides lintian (and its Depends) and the package. Does not look at other packages (except if they are built from the same source), the rest of the archive, external web sites like the BTS, and so forth, so that if neither lintian nor the package have changed, the results will be the same as the last time the check was run.
  • lintian wontfix bugs accumulate ideas for archive-wide checks that are outside lintian's scope but may be interesting for other tools.
  • lintian's architecture uses collect scripts to unpack and analyze the package. The results are stored on the disk and accessed via the Lintian::Collect modules (which caches the data where possible). Some checks still accesses the collected data directly, but this access method is deprecated.
  • Manoj has some ideas for more closely integrating package checking with Policy and putting checking pseudocode into Policy as part of the Policy constraint. Some of the program analysis and proof languages may be useful for doing something like this, but it needs someone interested in this sort of thing to work on it.


When submitting a request for a Lintian auto-reject tag against ftp.debian.org, please use the following usertags: