]> git.donarmstrong.com Git - bugscan.git/blobdiff - scanlib.pm
Ignore bugs on hurd-i386 and m68k. This moves a bit more logic back into
[bugscan.git] / scanlib.pm
index b207b14fd17f8ea65bd7648f870a1d31b6ba207a..4c97a1c690c25d4fbd5f968a0030d9b49af0eddf 100644 (file)
@@ -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));
                        }
                }