Package: lintian Version: 2.5.3ubuntu2 Severity: normal Currently Lintian does not look at vendor profiles at all when generating HTML reports.
This patchset changes the html_reports script to look at the default vendor profile instead of parsing the .desc files in checks on its own. It's currently deployed at lintian.ubuntuwire.org (for instance, http://lintian.ubuntuwire.org/tags/data.tar.xz-member-without-dpkg-pre-depends.html correctly shows up as Severity: serious) I'm not sure this patch is ideal in its current form, because it means that if a tag were suppressed in the Debian profile, it wouldn't show up on lintian.d.o at all, and I know several people who treat lintian.d.o as an online repository of information about Lintian tags It's also possible that the profile should be settable from reporting/config. Thanks, - Evan -- System Information: Debian Release: wheezy/sid APT prefers oneiric-updates APT policy: (500, 'oneiric-updates'), (500, 'oneiric-security'), (500, 'oneiric'), (100, 'oneiric-backports') Architecture: amd64 (x86_64) Kernel: Linux 3.0.0-13-generic (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages lintian depends on: ii binutils 2.21.53.20110810-0ubuntu5 The GNU assembler, linker and bina ii bzip2 1.0.5-6ubuntu1 high-quality block-sorting file co ii diffstat 1.54-1 produces graph of changes introduc ii file 5.04-5ubuntu3 Determines file type using "magic" ii gettext 0.18.1.1-3ubuntu1 GNU Internationalization utilities ii intltool-debia 0.35.0+20060710.1 Help i18n of RFC822 compliant conf ii libapt-pkg-per 0.1.24build3 Perl interface to libapt-pkg ii libclass-acces 0.34-1 Perl module that automatically gen ii libdpkg-perl 1.16.0.3ubuntu5 Dpkg perl modules ii libemail-valid 0.184-1 Perl module for checking the valid ii libipc-run-per 0.90-1 Perl module for running processes ii libparse-debia 1.2.0-1ubuntu1 parse Debian changelogs and output ii libtimedate-pe 1.2000-1 collection of modules to manipulat ii liburi-perl 1.58-1 module to manipulate and access UR ii locales 2.13+git20110622-2 common files for locale support ii man-db 2.6.0.2-2 on-line manual pager ii patchutils 0.3.2-1 Utilities to work with patches ii perl [libdiges 5.12.4-4 Larry Wall's Practical Extraction ii unzip 6.0-4ubuntu1 De-archiver for .zip files lintian recommends no packages. Versions of packages lintian suggests: pn binutils-multiarch <none> (no description available) ii dpkg-dev 1.16.0.3ubuntu5 Debian package development tools ii libhtml-parser-perl 3.68-1build1 collection of modules that parse H ii libtext-template-perl 1.45-2 Text::Template perl module ii man-db 2.6.0.2-2 on-line manual pager ii xz-utils 5.0.0-2 XZ-format compression utilities -- no debconf information
>From 8f16f3a76717eff9ab4730a632f57dfbf3bb2eb8 Mon Sep 17 00:00:00 2001 From: Evan Broder <e...@ebroder.net> Date: Fri, 2 Dec 2011 00:18:08 -0800 Subject: [PATCH 1/2] Always use the effective severity in a tag's long-form description Signed-off-by: Evan Broder <e...@ebroder.net> --- lib/Lintian/Tag/Info.pm | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Lintian/Tag/Info.pm b/lib/Lintian/Tag/Info.pm index ff2b269..5f871c7 100644 --- a/lib/Lintian/Tag/Info.pm +++ b/lib/Lintian/Tag/Info.pm @@ -283,9 +283,9 @@ sub description { if ($self->{ref}) { push(@text, '', _format_reference($self->{ref})); } - if ($self->{severity} and $self->{certainty}) { - my $severity = $self->{severity}; - my $certainty = $self->{certainty}; + if ($self->severity and $self->certainty) { + my $severity = $self->severity; + my $certainty = $self->certainty; push(@text, '', "Severity: $severity, Certainty: $certainty"); } if ($self->{script} and $self->{'script-type'}){ -- 1.7.5.4
>From 4c70e2c05cf003e6bc332ad3c663c429d42eeefe Mon Sep 17 00:00:00 2001 From: Evan Broder <e...@ebroder.net> Date: Fri, 2 Dec 2011 00:18:47 -0800 Subject: [PATCH 2/2] Use profile information about tags in HTML reports ....instead of parsing the tag descriptions independently. Signed-off-by: Evan Broder <e...@ebroder.net> --- reporting/html_reports | 25 ++++++++++++------------- 1 files changed, 12 insertions(+), 13 deletions(-) diff --git a/reporting/html_reports b/reporting/html_reports index 5815434..a16f0de 100755 --- a/reporting/html_reports +++ b/reporting/html_reports @@ -51,29 +51,28 @@ $ENV{'LINTIAN_ROOT'} = $LINTIAN_ROOT; # Import Lintian Perl libraries. use lib "$ENV{LINTIAN_ROOT}/lib"; use Lintian::Lab; +use Lintian::Profile; use Lintian::Tag::Info (); +use Lintian::Internal::FrontendUtil; use Text_utils; use Util; # Get additional tag information. our %tag_extra = (); -opendir(CHECKDIR, "$LINTIAN_ROOT/checks") - or fail("cannot read directory $LINTIAN_ROOT/checks"); - -for my $check (readdir CHECKDIR) { - next unless $check =~ /\.desc$/; - my @tags = read_dpkg_control("$LINTIAN_ROOT/checks/$check"); - shift(@tags); - foreach my $tag (@tags) { - next unless $tag->{severity} and $tag->{certainty}; - my $name = $tag->{tag}; - $tag_extra{$name}{severity} = $tag->{severity}; - $tag_extra{$name}{certainty} = $tag->{certainty}; - } +my $profile = Lintian::Profile->new(find_default_profile("$LINTIAN_ROOT/profiles"), + ["$LINTIAN_ROOT/profiles"]); + +while ( my ($tagname, $severity) = each(%{$profile->severity_changes}) ) { + my $tag = Lintian::Tag::Info->new($tagname); + $tag->set_severity($severity); } -closedir(CHECKDIR); +for my $name ($profile->tags) { + my $tag = Lintian::Tag::Info->new($name); + $tag_extra{$name}{severity} = $tag->{severity}; + $tag_extra{$name}{certainty} = $tag->{certainty}; +} # Set the Lintian version, current timestamp, and archive timestamp. our $LINTIAN_VERSION = `$LINTIAN_ROOT/frontend/lintian --print-version`; -- 1.7.5.4