6 use POSIX qw(strftime tzset nice);
8 #require '/usr/lib/debbugs/errorlib';
9 require '/usr/lib/debbugs/common.pl';
10 #require '/debian/home/ajt/newajbug/common.pl';
12 require '/etc/debbugs/config';
13 require '/etc/debbugs/text';
18 my ($in, $key, $val, %ret);
19 if (defined $ENV{"QUERY_STRING"} && $ENV{"QUERY_STRING"} ne "") {
20 $in=$ENV{QUERY_STRING};
21 } elsif(defined $ENV{"REQUEST_METHOD"}
22 && $ENV{"REQUEST_METHOD"} eq "POST")
24 read(STDIN,$in,$ENV{CONTENT_LENGTH});
28 foreach (split(/&/,$in)) {
30 ($key, $val) = split(/=/,$_,2);
31 $key=~s/%(..)/pack("c",hex($1))/ge;
32 $val=~s/%(..)/pack("c",hex($1))/ge;
38 my %param = readparse();
40 my ($pkg, $maint, $maintenc, $submitter, $severity, $status);
42 if (defined ($pkg = $param{'pkg'})) {
43 } elsif (defined ($maint = $param{'maint'})) {
44 } elsif (defined ($maintenc = $param{'maintenc'})) {
45 } elsif (defined ($submitter= $param{'submitter'})) {
46 } elsif (defined ($severity = $param{'severity'})) {
47 $status = $param{'status'} || 'open';
49 quit("You have to choose something to select by");
52 my $repeatmerged = ($param{'repeatmerged'} || "yes") eq "yes";
53 my $archive = ($param{'archive'} || "no") eq "yes";
54 my $include = $param{'include'} || "";
55 my $exclude = $param{'exclude'} || "";
57 my $Archived = $archive ? "Archived" : "";
62 my %maintainer = &getmaintainers();
68 my $dtime = strftime "%a, %e %b %Y %T UTC", localtime;
69 my $tail_html = $debbugs::gHTMLTail;
70 $tail_html = $debbugs::gHTMLTail;
71 $tail_html =~ s/SUBSTITUTE_DTIME/$dtime/;
75 $tag = "package $pkg";
76 } elsif (defined $maint) {
77 $tag = "maintainer $maint";
78 } elsif (defined $maintenc) {
79 $tag = "encoded maintainer $maintenc";
80 } elsif (defined $submitter) {
81 $tag = "submitter $submitter";
82 } elsif (defined $severity) {
83 $tag = "$status $severity bugs";
86 set_option("repeatmerged", $repeatmerged);
87 set_option("archive", $archive);
88 set_option("include", { map {($_,1)} (split /[\s,]+/, $include) })
90 set_option("exclude", { map {($_,1)} (split /[\s,]+/, $exclude) })
95 @bugs = pkgbugs($pkg);
96 } elsif (defined $maint) {
97 @bugs = maintbugs($maint);
98 } elsif (defined $maintenc) {
99 @bugs = maintencbugs($maintenc);
100 } elsif (defined $submitter) {
101 @bugs = submitterbugs($submitter);
102 } elsif (defined $severity) {
103 @bugs = severitybugs($status, $severity);
106 my $result = htmlizebugs(@bugs);
108 print "Content-Type: text/html\n\n";
110 print "<HTML><HEAD><TITLE>\n" .
111 "$debbugs::gProject $Archived $debbugs::gBug report logs: $tag\n" .
112 "</TITLE></HEAD>\n" .
113 '<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#800080">' .
115 print "<H1>" . "$debbugs::gProject $Archived $debbugs::gBug report logs: $tag" .
119 if (defined $maintainer{$pkg}) {
120 print "<p>Maintainer for $pkg is <a href=\""
121 . mainturl($maintainer{$pkg}) . "\">"
122 . htmlsanit($maintainer{$pkg}) . "</a>.</p>\n";
124 print "<p>Note that with multi-binary packages there may be other\n";
125 print "reports filed under the different binary package names.</p>\n";
127 printf "<p>You might like to refer to the <a href=\"%s\">%s package page</a></p>\n", "http://packages.debian.org/$pkg", "$pkg";
128 } elsif (defined $maint || defined $maintenc) {
129 print "<p>Note that maintainers may use different Maintainer fields for\n";
130 print "different packages, so there may be other reports filed under\n";
131 print "different addresses.\n";
132 } elsif (defined $submitter) {
133 print "<p>Note that people may use different email accounts for\n";
134 print "different bugs, so there may be other reports filed under\n";
135 print "different addresses.\n";
143 print "</body></html>\n";