L::C::Binary: Re-instate the TEXTREL marker

Fix a regression where Lintian did not properly detect shared
libraries that were compiled without "pic".

Signed-off-by: Niels Thykier <niels@thykier.net>
Test::Lintian: Support finding checks in a dir

Extend some of the tests to accept directory arguments (or omit check
name arguments).  In such cases, all checks in those directories will
be processed.

Signed-off-by: Niels Thykier <niels@thykier.net>
L::Relation::Version: Add versions_comparator for sorting

Add new function that can be used for sorting lists of versions.

Signed-off-by: Niels Thykier <niels@thykier.net>
r/t/maintainer.tmpl: Support multiple versions of a source

Generate versioned link anchors for all source packages listed on the
maintainer page.  Also include an unversioned one for the first
version of that source.

Signed-off-by: Niels Thykier <niels@thykier.net>
L::R::Version: Add missing space in POD

Signed-off-by: Niels Thykier <niels@thykier.net>
L::R::Version: Add prototype to versions_comparator

Perl's sort expects that comparators either accept arguments as the $a
and $b package globals OR has a prototype of '($$)'.  The former is
faster, but somewhat limits the scope of the function.

Signed-off-by: Niels Thykier <niels@thykier.net>
r/t/{tag,packages}.tmpl: Handle multiple versions of a source

Signed-off-by: Niels Thykier <niels@thykier.net>
reporting/html_reports: Generate a source -> report mapping

Signed-off-by: Niels Thykier <niels@thykier.net>
reporting/html_reports: Map sources to the "full" report

Signed-off-by: Niels Thykier <niels@thykier.net>
Add more variant for good text

autogen is known to use the following good formulation:
"with no Invariant Sections, with no Front-Cover Texts,
and with no Back-Cover Texts"
Allow it and avoid a false positive
Tweak history graphs

Change plot size to allow longer version labels, and force font family.

* reporting/graphs/{statistics,tags}.gpi:
  + [JP] Tweak graph size to allow longer labels, and force font
    family.
Fix version labels glitches

Don't include labels for: 1) older versions, and 2) versions that are too
close to each other.

* reporting/html_reports:
  + [JP] Fix version labels glitches.
Use global $GRAPHS_RANGE_DAYS

* reporting/html_reports:
  + [JP] Use global $GRAPHS_RANGE_DAYS.
Include history graphs in HTML templates

* reporting/html_reports:
  + [JP] Pass graph variables to index and tag templates.
* reporting/lintian.css:
  + [JP] Tweak graph alignment
* reporting/templates/{index,tag}.tmpl:
  + [JP] Include history graphs in HTML templates.
Remove unused $GRAPH_DIR configuration option

* reporting/config:
  + [JP] Remove unused $GRAPH_DIR configuration option.
r/g/tags.gpi: Correct two swapped column ids

1:3 is "Overridden tags" and 1:4 is "Packages" according to the output
produced by html_reports.

Signed-off-by: Niels Thykier <niels@thykier.net>
L::Tutorial.pod: Add a POD tutorial on simple check writing

Signed-off-by: Niels Thykier <niels@thykier.net>
html_reports: Provide slightly more info when a pkg is missing

Signed-off-by: Niels Thykier <niels@thykier.net>
L::Processable: Properly handle "source-version"

When creating L::Lab::Entry instances, we currently rely on
L::Processable's new_from_metadata to init the L::Lab::Entry instance.
Unfortunately it previously discarded the "source-version" and relied
on extracting it from the "source" field.

The result is that the source-version field was effectively replaced
with the package's own version (as is the default).  This error could
then propagate back into the lab indices if these were changed in the
run.

Temporary labs are unaffected (it doesn't use indices) and static labs
can be "repaired" by a simple "remove and re-add" of affected
packages.

Signed-off-by: Niels Thykier <niels@thykier.net>
L::L::Manifest: Add special "GROUP" type

Add a special "GROUP" manifest type that can be used to group elements
together between different manifests.

Signed-off-by: Niels Thykier <niels@thykier.net>