Lintian

Lintian task

Thetask_data associated to this task can contain the following keys:

  • input (required): a dictionary of values describing the input data,one of the sub-keys is required but both can be given at the same timetoo.

The task computes dynamic metadata as:

  • subject:name of source package ofinput.source_artifact orinput.binary_artifacts

  • parameter_summary:source package name and Version

  • runtime_context:what:distribution wherewhat is what got analyzed (source,binary-all orbinary-any) anddistribution iscodename ofenvironment.

  • configuration_context:codename ofenvironment

Note

While it’s possible to submit only a source or only a single binaryartifact, you should aim to always submit source + arch-all + arch-anyrelated artifacts to have the best test coverage as some tags can onlybe emitted when lintian has access to all of them at the same time.

  • environment (Single lookup with default categorydebian:environments, required):debian:system-tarball artifact that will be used to runlintian. Must havelintian installed.

  • backend (optional): the virtualization backend to use, defaults toauto where the task is free to use the most suitable backend.Supported options:incus-lxc,incus-vm,unshare.

  • output (optional): a dictionary of values controlling some aspectsof the generated artifacts

    • source_analysis (optional, defaults to True): indicates whetherwe want to generate thedebian:lintian artifact for thesource package

    • binary_all_analysis (optional, defaults to True): same assource_analysis but for thedebian:lintian artifactrelated toArchitecture:all packages

    • binary_any_analysis (optional, defaults to True): same assource_analysis but for thedebian:lintian artifactrelated toArchitecture:any packages

  • target_distribution (optional): the fully qualified name of thedistribution that will provide the lintian software to analyze thepackages. Defaults todebian:unstable.

  • include_tags (optional): a list of the lintian tags that are allowed tobe reported. If not provided (or empty), defaults to all. Translates into the--tags or--tags-fromfile command line option.

  • exclude_tags (optional): a list of the lintian tags that are notallowed to be reported. If not provided (or empty), then no tags arehidden. Translates into the--suppress-tags or--suppress-tags-fromfile command line option.

  • fail_on_severity (optional, defaults toerror): if the analysis emitstags of that severity or higher, then the task will return a “failure”instead of a “success”. Valid values are (in decreasing severity)“error”, “warning”, “info”, “pedantic”, “experimental”, “overridden”.“none” is a special value indicating that we should never fail.

The lintian runs will always use the options--no-cfg--display-level">=classification"--display-experimental--info--show-overrides tocollect the full set of data that lintian can provide.

Note

Current lintian can generate “masked” tags (withM: prefix) when youuse--show-overrides. For the purpose of Debusine, we entirelyignore those tags on the basis that it’s lintian’s decision to hidethem (and not the maintainer’s decision) and as such, they don’t bringany useful information. Lintian is full of exceptions to not emit sometags and the fact that some tags rely on a modular exception mechanismthat can be diverted to generate masked tags is not useful to packagemaintainers.

For those reasons, we suggested to lintian’s maintainers to entirelystop emitting those tags inhttps://bugs.debian.org/1053892

Between 1 to 3debian:lintian artifacts will be generated (onefor each source/binary package artifact submitted) and they will have a“relates to” relationship with the corresponding artifact that has beenanalyzed.