man linda (Commandes) - program to check Debian archives, a'la Lintian.

NAME

Linda - program to check Debian archives, a'la Lintian.

SYNOPSIS

linda [options] [.dsc|.deb|.udeb|.changes]...

DESCRIPTION

Linda is a Debian package checker, modelled after Lintian, since the author of Linda felt that Lintian is too slow and unmaintainable to work on, or with.

Linda is written in Python, as a complete OO scripting language for a package checker just seemed too good an idea to pass up. In addition, it made a perfect excuse to learn Python.

OPTIONS

Listed below are the command line options for linda.

-c, --config
Specify a config file other than the default to be read. This defaults to ~/.linda/config. The easiest way to stop any configuration being read is to specify /dev/null.
-C, --checks
Specify the check(s) to run. The string doesn't have to include the full text, as it uses regular expressions to do the matching. You can also specify multiple checks, separated by commas with no spaces. If it contains spaces, linda will interpret the check names as files, which probably isn't what you want. Linda will now rip the spaces out if you quote the string, for example.
-d, --debug
Set debug level. This option can be specified multiple times to increase the amount of debug output printed. Anything over 2 should be considered to be detrimental for your health, and only attempted if on suitable medication.
-D, --disable-local
Disable the registration of local checks.
-f, --format
Specify the output format to be used by linda. The string 'help' can also be given as an option, which will print out the output formats, as well as their docstring, if they have one defined. Also see EXAMPLES.
-h, --help
Show help, self-explanatory, really.
-i, --info
Also print out the long description for errors and warnings.
-l, --lab
Specify the directory the lab should be in. This defaults to $TMPDIR, followed by /tmp.
-L, --list-checks
Only list the checks that would be run, don't unpack or run any checks. As of 0.2.1, this option requires an argument, which is 'bin1', 'bin2', 'src1', 'src2', or 'all'. This option is most useful when used with -C (specify checks).
-m, --more-overrides
Specify yet another file for overrides. Will be parsed just before the in-deb overrides are attempted to be parsed.
-n, --no-cull
Don't delete the lab directory after the tests are completed.
-p, --print-overrides
Print out the parsed overrides as well. Requires a filename.
-P, --profiling
Print out some profiling statistics before exiting.
-q, --quiet
Quieten me down a little. Forces Checks, and Output methods that throw exceptions to be caught silently.
-o, --show-overridden
Display warnings or errors that have been overridden by the package.
-s, --show-tag
Also display the tag for an error or warning. This is also dependant on the output method (-f) chosen.
-t, --types
Limit errors printed to those which have the specified type.
-T, --traceback
Also display the traceback that an exception causes.
-u, --unpack
Only unpack the .deb or .dsc to the specified unpack level, and run no checks. Also implies no-cull.
-v, --verbose
Set verbose mode. IE, only display which file is being processed, and if specified twice, also display the lab directory.
-V, --version
Show version information.
filename
The filename must be specified on the command line, and must be either a .dsc, a .deb, a .udeb, or a .changes file. Multiple filenames can be specified.

CONFIGURATION FILE

Starting with version 0.3.0, Linda will now read a configuration file when she is started. It can contain comments and long command line arguments only. Special cases to note are that debug or verbose can be specified multiple times, which will increase their count by one, and that checks, format, lab-root and more-overrides need a second argument specified. The only arguments that are not permitted in the configuration file are:

•
help
•
list-checks
•
print-overrides
•
unpack
•
version

Example:

steven@broken:~$ cat .linda/config

debug

debug

more-overrides /home/steven/xringd.linda

OVERRIDES

Overrides allow you to suppress an error or warning from printing out when linda is run. You can of course, override the override (!) with the -o flag. Overrides can be added to the global /usr/share/linda/overrides/<package> file, for the local user in $HOME/.linda/overrides/<package>, and for the local system in /etc/linda/overrides/<package>. Debian packages, if they contain a /usr/share/linda/overrides/<package> file in the .deb, it will be read and parsed as well. Another file can be specified to linda by specifying -m <file> on the command-line.

Linda override files used to look like the following:

steven@broken:~$ cat .linda/overrides/xringd

debconf-select-without-choices

wrong-path-script *

binary-note usr/sbin/xringd

steven@broken:~$ cat .linda/overrides/libc6

binary-note *so

binary-comment *so

Linda overrides files from 0.1.6 onwards look like:

steven@broken:~$ cat .linda/overrides/xringd

Tag: debconf-select-without-choices

Tag: wrong-path-script

Data: .*

Tag: binary-note

Data: usr/sbin/xringd

steven@broken:~$ cat .linda/overrides/libc6

Tag: binary-comment

Data: .*so

Tag: binary-note

Data: .*so

The example override file shown above shows the 3 different types of override you can use. The first shows the simplest override, just the tag. That will override anything with the tag debconf-select-without-choices. The second tag is very much like the first, and it in fact does the same thing. The third override only overrides for an error or warning that contains usr/sbin/xringd in the argument list.

The overrides for libc6 will override any binary-note or binary-comment error that can match .*so. A note about Data globing is that it uses either substring, or regex.

Not only errors can be overridden, but the actually type of the error (be it Error, Warning or whatever) can actually be overridden in the override file by specifying a Type field for the tag in question.

Another thing worth pointing out is that overrides in later files will be merged with previously read override files.

TYPES

There are four types in linda. They are 'Error', 'Warning', 'eXperimental' and 'Informational'. Error means the package is violating a must directive in Policy, Warning means the package may be violating a should directive, eXperimental means that either the check gives false positives most of the time, or is plain broken and should be ignored. Informational is usually suppressed, but can show little things you may not realize.

CHECKS

Checks are loaded from 3 directories when linda starts up. Checks are first registered from /usr/share/linda/checks, or $(LINDA_ROOT)/checks. Checks are then pulled in from ~/.linda/checks, for the local user, and then /etc/linda/checks for the local system. Description files will be read relative from the checks directory at ../data/<name>.data. The name is derived from the *class* name, which has the word 'check' pulled off it, and is then lower cased.

EXIT STATUS

Linda will exit with a different status, depending on what was encountered, either when starting up, or in the checking itself. A list of exit statuses are as follows:

•
0 - Nothing wrong was detected.
•
1 - Warnings detected.
•
2 - Errors detected.
•
3 - No files specified.
•
4 - No checks left to run.
•
5 - An internal error occured, such as being unable to open directories under $LINDA_ROOT.
•
6 - Error importing modules.
•
7 - Option errors.

ENVIRONMENT

LINDA_ROOT
Directory that contains the checks and data files. This defaults to /usr/share/linda.
TMPDIR
Directory used to create linda labs.

EXAMPLES

linda -di debian/xringd_1.20-15_i386.changes

linda -C files,debhelper debian/asp_1.8-2_multi.changes

linda -f long debian/libpoe-perl_0.19-1_i386.changes

AUTHOR

This manual page was hacked together at linux.conf.au 2002, by Brendan O'Dea and Steve Kowalik using help2man, and Brendan's most useful *roff knowledge.

SEE ALSO

lintian(1), dh_make(8), debuild(1), http://www.debian.org/doc/debian-policy/