]> git.donarmstrong.com Git - bugscan.git/blobdiff - scanlib.pm
Attempt to convert to the new versioning code in debbugs. Still not
[bugscan.git] / scanlib.pm
index a24785ae3e873f20a593c1a04e81f464584b56b5..3680b10f2a65a7804693a6d5ca3bdd8d689392cf 100644 (file)
 #   %packagelist    - map from packagename to bugreports
 #   %NMU            - map with NMU information
 
+use lib qw(/org/bugs.debian.org/perl/);
 use LWP::UserAgent;
+use Debbugs::MIME qw(decode_rfc1522 encode_rfc1522);
+use Debbugs::Packages;
+use Debbugs::Versions;
+use Debbugs::Status;
+use Fcntl qw(O_RDONLY);
 require bugcfg;
 
 sub readcomments() {
@@ -182,7 +188,7 @@ sub scanspooldir() {
        for $f (@list) {
                next if $exclude{$f};                   # Check the list of bugs to skip
        
-               my $bug = readbug("$f.summary");
+               my $bug = Debbugs::Status::read_bug(summary => "$f.summary");
                next if (!defined($bug));
                
                $skip=1;
@@ -212,11 +218,11 @@ sub scanspooldir() {
                }
 
                # only bother to check the versioning status for the distributions indicated by the tags 
-               $status_oldstable    = getbugstatus($bug, undef, 'oldstable')    if ($oldstable_tag);
-               $status_stable       = getbugstatus($bug, undef, 'stable')       if ($stable_tag);
-               $status_testing      = getbugstatus($bug, undef, 'testing')      if ($testing_tag);
-               $status_unstable     = getbugstatus($bug, undef, 'unstable')     if ($unstable_tag);
-               $status_experimental = getbugstatus($bug, undef, 'experimental') if ($experimental_tag);
+               $status_oldstable    = get_status($f, $bug, 'oldstable')    if ($oldstable_tag);
+               $status_stable       = get_status($f, $bug, 'stable')       if ($stable_tag);
+               $status_testing      = get_status($f, $bug, 'testing')      if ($testing_tag);
+               $status_unstable     = get_status($f, $bug, 'unstable')     if ($unstable_tag);
+               $status_experimental = get_status($f, $bug, 'experimental') if ($experimental_tag);
 
                $relinfo = "";
                $relinfo .= (($oldstable_tag    && $status_oldstable->{'pending'}    eq 'pending') ? "O" : "");
@@ -361,5 +367,28 @@ sub wwwname() {
 #      "<A HREF=\"${btsURL}/db/pa/l$name.html\">$name</A>";
 }
 
-1;
+my $_version_cache = {};
+sub get_status() {
+       my ($bugnr, $bug, $dist) = @_;
 
+       my @versions = Debbugs::Status::getversions($bug->{'package'}, $dist, undef);
+       my @sourceversions = Debbugs::Status::makesourceversions($bug->{'package'}, $dist, @versions);
+
+       return Debbugs::Status::max_buggy(bug => $bugnr,
+                        sourceversions => \@sourceversions,
+                        found => $bug->{'found_versions'},
+                        fixed => $bug->{'fixed_versions'},
+                        version_cache => $_version_cache,
+                        package => $bug->{'package'});
+}
+
+sub check_worry {
+       my ($status) = @_;
+
+       if ($status =~ m/^\[[^]]*I/ or
+           $status =~ m/ \[[^]]*X/ or
+            ($status =~ m/ \[[^]]*[OSUE]/ and $status !~ m/ \[[^]]*T/)) {
+               return 0;
+       }
+       return 1;
+}