X-Git-Url: https://git.donarmstrong.com/?p=bugscan.git;a=blobdiff_plain;f=scanlib.pm;h=4c97a1c690c25d4fbd5f968a0030d9b49af0eddf;hp=ca042af15f59e2db7f7ad2b16ba83f7533f8dac2;hb=0aeb6434b6fe5991b04fe3922feffa31380f8a80;hpb=bc00c7c9f56d7cc857c18e61e6667966a835471d diff --git a/scanlib.pm b/scanlib.pm index ca042af..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; @@ -230,7 +229,26 @@ sub scanspooldir() { 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)); } }