#! /usr/bin/perl
-# vim: ts=4 sw=4 nowrap
+# vim: ts=8 sw=8 nowrap
# Generate some counts for the bugreports
require scanlib;
require bugcfg;
use strict;
-use warnings;
+# use warnings;
my $Version = "BugCount 1.1\nCopyright (C) Wichert Akkerman <wakkerma\@debian.org>\n";
my $statusfile = "status";
-my $commentsfile = "comments";
sub ShowVersion() {
print "$Version\n";
-V show version
-h show some (hopefully) helpfull information
-S use different statusfile
- -C use different commentsfile
EOF
exit 0;
}
-our ($opt_h,$opt_V,$opt_S,$opt_C);
+our ($opt_h,$opt_V,$opt_S);
-getopts('VhS:C:');
+getopts('VhS:');
ShowUsage if ($opt_h);
ShowVersion if ($opt_V);
$statusfile=$opt_S if ($opt_S);
-$commentsfile=$opt_C if ($opt_C);
scanlib::readstatus($statusfile);
-scanlib::readcomments($commentsfile);
my $total=0; # total number of bugs
-my $removecount=0; # Number of bugs that will disappear if packages are removed
my $patchcount=0; # Number of bugs that have a fix proposed
my $pendingcount=0; # Number of bugs that will have a fix uploaded RSN
-my $ignorecount=0; # Number of bugs being ignored
-my $nottestingcount=0; # Number of bugs on packages not in testing
+my $ignorecount=0; # Number of bugs being ignored
my $worrycount=0; # Number of bugs we're actually worried about
-my %sectcount=(); # Bugs per type
-
-for my $p (keys %scanlib::packagelist) {
- next if (defined $bugcfg::exclude{$p});
- for my $nr (sort split(/ /, $scanlib::packagelist{$p})) {
- next if (defined $bugcfg::exclude{$nr});
- $total++;
- $pendingcount++ if ($scanlib::bugs{$nr} =~ m/^\[[^]]*P/);
- $patchcount++ if ($scanlib::bugs{$nr} =~ m/^\[[^]]*\+/);
- $ignorecount++ if ($scanlib::bugs{$nr} =~ m/^\[[^]]*I/);
- $nottestingcount++ if ($scanlib::bugs{$nr} =~ m/ \[[^]]*X/);
- if (defined $scanlib::comments{$nr}) {
- my $sect = ($scanlib::comments{$nr} =~ m/\[([^]]*)\]/);
- $sectcount{$sect}++;
- }
- unless ($scanlib::bugs{$nr} =~ m/^\[[^]]*I/ or
- $scanlib::bugs{$nr} =~ m/ \[[^]]*X/ or
- ($scanlib::bugs{$nr} =~ m/ \[[^]]*[OSUE]/ and $scanlib::bugs{$nr} !~ m/ \[[^]]*T/)) {
- $worrycount++;
- # print STDERR "$nr $bugs{$nr}\n";
- }
- }
-
- if (defined($scanlib::comments{$p}) && $scanlib::comments{$p} =~ m/^\[REMOVE\]/) {
- my @a = split(/ /,$scanlib::packagelist{$p});
- $removecount += scalar(@a);
- }
+my $stablecount=0; # Number of bugs affecting stable
+
+for my $bug (values %scanlib::bugs) {
+ $total++;
+ $pendingcount++ if ($bug->{'pending'});
+ $patchcount++ if ($bug->{'patch'});
+ $ignorecount++ if ($bug->{$debian_releases->{stable}.'-ignore'} ||
+ $bug->{$debian_releases->{testing}.'-ignore'});
+ $worrycount++ if (scanlib::check_worry($bug));
+ $stablecount++ if (scanlib::check_worry_stable($bug));
}
-printf("%d %d %d %d %d %d %d\n", $total, $pendingcount, $patchcount, $removecount, $ignorecount, $nottestingcount, $worrycount);
+printf("%d %d %d 0 %d 0 %d %d\n", $total, $pendingcount, $patchcount, $ignorecount, $worrycount, $stablecount);