X-Git-Url: https://git.donarmstrong.com/?p=bugscan.git;a=blobdiff_plain;f=scanlib.pm;h=4c97a1c690c25d4fbd5f968a0030d9b49af0eddf;hp=b207b14fd17f8ea65bd7648f870a1d31b6ba207a;hb=0aeb6434b6fe5991b04fe3922feffa31380f8a80;hpb=20740b5329b1ab9bf8941e179cfca6fa0981ed16 diff --git a/scanlib.pm b/scanlib.pm index b207b14..4c97a1c 100644 --- a/scanlib.pm +++ b/scanlib.pm @@ -14,8 +14,7 @@ # %packagelist - map from packagename to bugreports # %NMU - map with NMU information -#use lib qw(/org/bugs.debian.org/perl/); -use lib qw(/home/sesse/debbugs); +use lib qw(/org/bugs.debian.org/perl); use LWP::UserAgent; use Debbugs::MIME qw(decode_rfc1522 encode_rfc1522); use Debbugs::Packages; @@ -227,8 +226,29 @@ sub scanspooldir() { # only bother to check the versioning status for the distributions indicated by the tags my $relinfo = ""; for my $dist qw(oldstable stable testing unstable experimental) { + local $SIG{__WARN__} = sub {}; + next if (!$disttags{$dist}); - if (Debbugs::Status::check_bug_presence(bug => $f, status => $bug, dist => $dist) eq 'pending') { + + # only check for the archs we care about + my %svhash = (); + for my $arch qw(alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc) { + my @versions = Debbugs::Packages::getversions($bug->{'package'}, $dist, $arch); + my @sourceversions = Debbugs::Packages::makesourceversions($bug->{'package'}, $arch, @versions); + + for my $sv (@sourceversions) { + $svhash{$sv} = 1; + } + } + + my @sourceversions = keys %svhash; + my $presence = Debbugs::Status::bug_presence(bug => $f, status => $bug, sourceversions => \@sourceversions); + + # ignore bugs that are absent/fixed in this distribution, include everything + # else (that is, "found" which says that the bug is present, and undef, which + # indicates that no versioning information is present and it's not closed + # unversioned) + if (!defined($presence) || ($presence ne 'absent' && $presence ne 'fixed')) { $relinfo .= uc(substr($dist, 0, 1)); } }