my %param = readparse();
my $indexon = $param{'indexon'} || 'pkg';
-if ($indexon !~ m/^(pkg|maint|submitter)$/) {
- quit("You have to choose something to index on");
+if ($indexon !~ m/^(pkg|src|maint|submitter)$/) {
+ quitcgi("You have to choose something to index on");
}
my $repeatmerged = ($param{'repeatmerged'} || "yes") eq "yes";
my $archive = ($param{'archive'} || "no") eq "yes";
my $sortby = $param{'sortby'} || 'alpha';
if ($sortby !~ m/^(alpha|count)$/) {
- quit("Don't know how to sort like that");
+ quitcgi("Don't know how to sort like that");
}
#my $include = $param{'include'} || "";
#my $exclude = $param{'exclude'} || "";
-my $Archived = $archive ? "Archived" : "";
+my $Archived = $archive ? " Archived" : "";
-my %maintainers = &getmaintainers();
+my %maintainers = %{&getmaintainers()};
my %strings = ();
$ENV{"TZ"} = 'UTC';
my %sortkey = ();
if ($indexon eq "pkg") {
$tag = "package";
- %count = countbugs(sub {my %d=@_; return $d{"pkg"}});
+ %count = countbugs(sub {my %d=@_; return splitpackages($d{"pkg"})});
$note = "<p>Note that with multi-binary packages there may be other\n";
$note .= "reports filed under the different binary package names.</p>\n";
foreach my $pkg (keys %count) {
mainturl($maintainers{$pkg}),
htmlsanit($maintainers{$pkg} || "(unknown)"));
}
+} elsif ($indexon eq "src") {
+ $tag = "source package";
+ my $pkgsrc = getpkgsrc();
+ %count = countbugs(sub {my %d=@_;
+ return map {
+ $pkgsrc->{$_} || $_
+ } splitpackages($d{"pkg"});
+ });
+ $note = "";
+ foreach my $src (keys %count) {
+ $sortkey{$src} = lc $src;
+ $htmldescrip{$src} = sprintf('<a href="%s">%s</a> '
+ . '(maintainer: <a href="%s">%s</a>)',
+ srcurl($src),
+ htmlsanit($src),
+ mainturl($maintainers{$src}),
+ htmlsanit($maintainers{$src} || "(unknown)"));
+ }
} elsif ($indexon eq "maint") {
$tag = "maintainer";
%count = countbugs(sub {my %d=@_;
- return emailfromrfc822($maintainers{$d{"pkg"}} || "");
+ return map {
+ emailfromrfc822($maintainers{$_}) || ()
+ } splitpackages($d{"pkg"});
});
$note = "<p>Note that maintainers may use different Maintainer fields for\n";
$note .= "different packages, so there may be other reports filed under\n";
print "Content-Type: text/html\n\n";
-print "<HTML><HEAD><TITLE>\n" .
- "$debbugs::gProject $Archived $debbugs::gBug reports by $tag\n" .
- "</TITLE></HEAD>\n" .
+print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
+print "<HTML><HEAD>\n" .
+ "<TITLE>$debbugs::gProject$Archived $debbugs::gBug reports by $tag</TITLE>\n" .
+ "</HEAD>\n" .
'<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#800080">' .
"\n";
-print "<H1>" . "$debbugs::gProject $Archived $debbugs::gBug report logs by $tag" .
+print "<H1>" . "$debbugs::gProject$Archived $debbugs::gBug report logs by $tag" .
"</H1>\n";
print $note;