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/