From: Debian BTS Date: Sun, 1 Aug 2010 20:43:15 +0000 (+0000) Subject: merge changes from dla bugscan X-Git-Url: https://git.donarmstrong.com/?p=bugscan.git;a=commitdiff_plain;h=beb904099ea5c625f027a86b3b758369fbadd86b;hp=7e2643d05cdce6436883facaa5f13afb2f168525 merge changes from dla bugscan --- diff --git a/dohtml b/dohtml index 3e1e04e..9235b19 100755 --- a/dohtml +++ b/dohtml @@ -56,7 +56,7 @@ tags:

The second set of tags indicate what releases a bug applies to: -O for oldstable (sarge), S for stable (lenny), T for testing (squeeze), +O for oldstable (etch), S for stable (lenny), T for testing (squeeze), U for unstable (sid) or E for experimental.

diff --git a/scanlib.pm b/scanlib.pm index 96aee35..43cfb8d 100644 --- a/scanlib.pm +++ b/scanlib.pm @@ -66,16 +66,10 @@ sub readsources() { } } -sub readpackages() { - my $root; # Root of archive we are scanning - my $archive; # Name of archive we are scanning - my $sect; # Name of current section - my $arch; # Name of current architecture - - $root=shift; - $archive=shift; - for $arch ( @bugcfg::architectures ) { - for $sect ( @bugcfg::sections) { +sub readpackages { + my ($root,$archive) = @_; + for my $arch ( @bugcfg::architectures ) { + for my $sect ( @bugcfg::sections) { open(P, "zcat $root/$sect/binary-$arch/Packages.gz|") or die "open: $root/$sect/binary-$arch/Packages.gz: $!\n"; while (

) { @@ -88,6 +82,18 @@ sub readpackages() { close(P); } } + # handle the source packages + for my $sect (@bugcfg::sections) { + my $fh; + open($fh,'-|','zcat',"$root/$sect/source/Sources.gz") or + die "Unable to open zcat $root/$sect/source/Sources.gz for reading: $!"; + while (<$fh>) { + chomp; + next unless m/^Package:\s/; # We're only interested in the packagenames + s/^Package:\s*//; # Strip the fieldname + $section{$_} = "$archive/$sect"; + } + } } sub readdebbugssources() { @@ -135,7 +141,7 @@ sub scanspool() { } -sub scanspooldir() { +sub scanspooldir { my ($dir) = @_; my $f; # While we're currently processing my @list; # List of files to process @@ -250,7 +256,7 @@ sub scanspooldir() { } -sub readstatus() { +sub readstatus { my $filename = shift; open STATUS, "<", $filename or die "$filename: $!"; @@ -277,7 +283,7 @@ sub readstatus() { $bugs{$bug->{'number'}} = $bug; for my $package (split /[,\s]+/, $bug->{'package'}) { - $_= $package; y/A-Z/a-z/; $_= $` if m/[^-+._a-z0-9]/; + $_= $package; y/A-Z/a-z/; $_= $` if m/[^-+._:a-z0-9]/; push @{$packagelist{$_}}, $bug->{'number'}; } }