Lintian for Vendors

This page covers some of the features that might be interesting for Vendors (e.g. derivatives) interested in extending Lintian for their purposes. This document was written for Lintian 2.5.10 (Wheezy).

Step 1. Making a default Lintian profile for your distro

Lintian will attempt to use dpkg-vendor to determine which vendor profile to use. The following sh snippet can be used to determine the default profile used by Lintian.

   1 # If dpkg-vendor is properly configured, it should say something like "my-distro/main"
   2 $ echo "$(dpkg-vendor --query Vendor | tr A-Z a-z)/main"

A quick profile is as simple as:

Profile: my-distro/main
Extends: debian/main

(install as /usr/share/lintian/profiles/my-distro/main.profile)

With this simple profile, you will get all of the Lintian checks as used by Debian. Though, even without this profile you would (probably) get those checks by default. So, you may be thinking "Just how is this useful to me?". First you can use your new vendor profile to make Lintian recognise the release names of your distro. There are also a number of fields you can add to your profile to enable, disable or change the severity of various Lintian tags.

For the full details of how to write a Lintian vendor profile, please see the Lintian User Manual.

Step 2. Make Lintian recognise release name of your distro

With the Lintian profile ready, we can create a vendor specific data file for "changes-file/known-dists" containing the release name of your distro. Lintian automatically strips common extensions (e.g. "-backports" and "-security"), so you (probably) do not have to worry about those. The exact definition of extensions stripped can be found in the check "changes-file".

A quick start vendor data file:

## Release names for my-distro

## Uncomment the line below, if you also accept your "parent's" distro names
## (NB: Here "parent" is defined in terms of Lintian Profiles and not dpkg-vendor)
#@include-parent


## Release names for my-distro (order not important)
# fobbing frog (LTS)
fobbing
# barring burger (current stable)
barring
# meta-sizing muffin (dev release)
meta-sizing

(install as /usr/share/lintian/vendors/data/my-distro/main/data/changes-file/known-dists)

With this, Lintian will now (by default) recognise your distro's release name.