X-Git-Url: https://git.donarmstrong.com/?p=bugscan.git;a=blobdiff_plain;f=scanlib.pm;h=f332917688d059bd6f44a86a2cbd0655ff289a44;hp=123abb9a7945345d27b8b01b548df5a27c41f62b;hb=refs%2Fheads%2Ftesting_framework;hpb=5b1d396f8f09c314859583a8f8b96876e043f2cd diff --git a/scanlib.pm b/scanlib.pm index 123abb9..f332917 100644 --- a/scanlib.pm +++ b/scanlib.pm @@ -10,6 +10,9 @@ # %section - map from packagename to section in the FTP-site # %packagelist - map from packagename to bugreports +use warnings; +use strict; + use lib qw(/org/bugs.debian.org/perl); use LWP::UserAgent; use Debbugs::MIME qw(decode_rfc1522 encode_rfc1522); @@ -17,9 +20,11 @@ use Debbugs::Packages; use Debbugs::Versions; use Debbugs::Status; use Fcntl qw(O_RDONLY); -use strict; -use warnings; -require bugcfg; + +use File::Basename; +use lib dirname(__FILE__); +use bugcfg; + package scanlib; our (%maintainer,%section,%packagelist,%debbugssection,%bugs); @@ -46,14 +51,10 @@ sub readmaintainers() { } -sub readsources() { - my $root; # Root of archive we are scanning - my $archive; # Name of archive we are scanning - my $sect; # Name of current section +sub readsources { + my ($root,$archive) = @_; - $root=shift; - $archive=shift; - for $sect (@bugcfg::sections) { + for my $sect (@bugcfg::sections) { open(P, "zcat $root/$sect/source/Sources.gz|") or die open "open: $sect sourcelist: $!\n"; while (

) { @@ -96,12 +97,9 @@ sub readpackages { } } -sub readdebbugssources() { - my $file; - my $archive; +sub readdebbugssources { + my ($file,$archive) = @_; - $file=shift; - $archive=shift; open(P, $file) or die "open: $file: $!\n"; while (

) { @@ -129,8 +127,6 @@ sub scanspool() { my @dirs; my $dir; - chdir($bugcfg::spooldir) or die "chdir $bugcfg::spooldir: $!\n"; - opendir(DIR, $bugcfg::spooldir) or die "opendir $bugcfg::spooldir: $!\n"; @dirs=grep(m/^\d+$/,readdir(DIR)); closedir(DIR); @@ -151,7 +147,6 @@ sub scanspooldir { my @archs_with_source = ( @bugcfg::architectures, 'source' ); - chdir($dir) or die "chdir $dir: $!\n"; opendir(DIR, $dir) or die "opendir $dir: $!\n"; @list = grep { s/\.summary$// } @@ -160,7 +155,7 @@ sub scanspooldir { closedir(DIR); for $f (@list) { - my $bug = Debbugs::Status::read_bug(summary => "$f.summary"); + my $bug = Debbugs::Status::read_bug(summary => $dir.'/'."$f.summary"); next if (!defined($bug)); my $bi = { @@ -183,8 +178,8 @@ sub scanspooldir { next if $skip==1; my %disttags = (); - for (qw(unstable stable testing unstable)) { - $disttags{$_} = grep(/^$bug_cfg::debian_releases->{$_}$/, @tags); + for my $release (qw(oldstable stable testing unstable)) { + $disttags{$release} = grep(/^$bugcfg::debian_releases->{$release}$/, @tags); } $disttags{'experimental'} = grep(/^experimental$/, @tags); @@ -234,7 +229,7 @@ sub scanspooldir { } for my $keyword (qw(pending patch help moreinfo unreproducible security upstream), - map {$_.$bug_cfg::debian_releases->{testing}.'-ignore'} keys %{$bug_cfg::debian_releases}) { + map {$bugcfg::debian_releases->{$_}.'-ignore'} keys %{$bugcfg::debian_releases}) { $bi->{$keyword} = grep(/^$keyword$/, @tags); } @@ -326,13 +321,13 @@ sub wwwname() { sub check_worry { my ($bi) = @_; - return ($bi->{'testing'} && !$bi->{$bug_cfg::debian_releases->{testing}.'-ignore'}); + return ($bi->{'testing'} && !$bi->{$bugcfg::debian_releases->{testing}.'-ignore'}); } sub check_worry_stable { my ($bi) = @_; - return ($bi->{'stable'} && !$bi->{$bug_cfg::debian_releases->{stable}.'-ignore'}); + return ($bi->{'stable'} && !$bi->{$bugcfg::debian_releases->{stable}.'-ignore'}); } sub check_worry_unstable { @@ -352,7 +347,7 @@ sub get_taginfo { $taginfo .= $bi->{'unreproducible'} ? "R" : " "; $taginfo .= $bi->{'security'} ? "S" : " "; $taginfo .= $bi->{'upstream'} ? "U" : " "; - $taginfo .= ($bi->{$bug_cfg::debian_releases->{stable}.'-ignore'} || $bi->{$bug_cfg::debian_releases->{testing}.'-ignore'}) ? "I" : " "; + $taginfo .= ($bi->{$bugcfg::debian_releases->{stable}.'-ignore'} || $bi->{$bugcfg::debian_releases->{testing}.'-ignore'}) ? "I" : " "; return $taginfo; }