use vars qw($gPackagePages $gWebDomain);
-if ($ENV{REQUEST_METHOD} eq 'HEAD') {
- print "Content-Type: text/html\n\n";
+if (defined $ENV{REQUEST_METHOD} and $ENV{REQUEST_METHOD} eq 'HEAD') {
+ print "Content-Type: text/html; charset=utf-8\n\n";
exit 0;
}
nice(5);
+my $userAgent = detect_user_agent();
my %param = readparse();
my $repeatmerged = ($param{'repeatmerged'} || "yes") eq "yes";
my $version = $param{'version'} || undef;
my $dist = $param{'dist'} || undef;
my $arch = $param{'arch'} || undef;
+my $show_list_header = ($param{'show_list_header'} || $userAgent->{'show_list_header'} || "yes" ) eq "yes";
+my $show_list_footer = ($param{'show_list_footer'} || $userAgent->{'show_list_footer'} || "yes" ) eq "yes";
my ($pkg, $src, $maint, $maintenc, $submitter, $severity, $status, $tag);
set_option("version", $version);
set_option("dist", $dist);
set_option("arch", $arch);
+set_option("use-bug-idx", defined($param{'use-bug-idx'}) ? $param{'use-bug-idx'} : 0);
+set_option("show_list_header", $show_list_header);
+set_option("show_list_footer", $show_list_footer);
my $title;
my @bugs;
$title .= " (version $version)";
} elsif (defined $dist) {
$title .= " in $dist";
- my $distver = getversion($pkg, $dist, $arch);
- $title .= " (version $distver)" if defined $distver;
+ my $verdesc = getversiondesc($pkg);
+ $title .= " ($verdesc)" if defined $verdesc;
}
my @pkgs = split /,/, $pkg;
@bugs = @{getbugs(sub {my %d=@_;
}, 'package', @pkgs)};
} elsif (defined $src) {
$title = "source $src";
+ set_option('arch', 'source');
if (defined $version) {
$title .= " (version $version)";
} elsif (defined $dist) {
$title .= " in $dist";
- my $distver = getversion($src, $dist, 'source');
- $title .= " (version $distver)" if defined $distver;
+ my $verdesc = getversiondesc($src);
+ $title .= " ($verdesc)" if defined $verdesc;
}
my @pkgs = ();
my @srcs = split /,/, $src;
$title = "submitter $submitter";
$title .= " in $dist" if defined $dist;
my @submitters = split /,/, $submitter;
- @bugs = @{getbugs(sub {my %d=@_; my $se;
- ($se = $d{"submitter"} || "") =~ s/\s*\(.*\)\s*//;
- $se = $1 if ($se =~ m/<(.*)>/);
- return 1 if grep($se eq $_, @submitters);
- }, 'submitter-email', @submitters)};
+ @bugs = @{getbugs(sub {my %d=@_;
+ my @se = getparsedaddrs($d{"submitter"} || "");
+ foreach my $try (@submitters) {
+ return 1 if grep { $_->address eq $try } @se;
+ }
+ }, 'submitter-email', @submitters)};
} elsif (defined($severity) && defined($status)) {
$title = "$status $severity bugs";
$title .= " in $dist" if defined $dist;
my $result = htmlizebugs(\@bugs);
-print "Content-Type: text/html\n\n";
+print "Content-Type: text/html; charset=utf-8\n\n";
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
print "<HTML><HEAD>\n" .
my $showresult = 1;
if (defined $pkg || defined $src) {
+ my $showpkg = (defined $pkg) ? $pkg : "source package $src";
my %maintainers = %{getmaintainers()};
my $maint = $pkg ? $maintainers{$pkg} : $maintainers{$src} ? $maintainers{$src} : undef;
if (defined $maint) {
print '<p>';
- my $showpkg = (defined $pkg) ? $pkg : "source package $src";
print htmlmaintlinks(sub { $_[0] == 1 ? "Maintainer for $showpkg is "
: "Maintainers for $showpkg are "
},
$maint);
print ".</p>\n";
+ } else {
+ print "<p>No maintainer for $showpkg. Please do not report new bugs against this package.</p>\n";
}
if (defined $maint or @bugs) {
my %pkgsrc = %{getpkgsrc()};
}
my @pkgs = getsrcpkgs($pkg ? $srcforpkg : $src);
undef $srcforpkg unless @pkgs;
- my @references;
- my $ptslink = $src || $srcforpkg;
- if (defined $debbugs::gSubscriptionDomain) {
- push @references, "to the <a href=\"http://$debbugs::gSubscriptionDomain/$ptslink\">Package Tracking System</a>";
- }
@pkgs = grep( !/^\Q$pkg\E$/, @pkgs ) if ( $pkg );
if ( @pkgs ) {
@pkgs = sort @pkgs;
print join( ", ", map( "<A href=\"" . pkgurl($_) . "\">$_</A>", @pkgs ) );
print ".\n";
}
- if ($pkg) {
- my $pseudodesc = getpseudodesc();
- if (defined($pseudodesc) and exists($pseudodesc->{$pkg})) {
- push @references, "to the <a href=\"http://${debbugs::gWebDomain}/pseudo-packages${debbugs::gHTMLSuffix}\">list of other pseudo-packages</a>";
- } else {
+ my @references;
+ my $pseudodesc = getpseudodesc();
+ if ($pkg and defined($pseudodesc) and exists($pseudodesc->{$pkg})) {
+ push @references, "to the <a href=\"http://${debbugs::gWebDomain}/pseudo-packages${debbugs::gHTMLSuffix}\">list of other pseudo-packages</a>";
+ } else {
+ if ($pkg and defined $debbugs::gPackagePages) {
push @references, sprintf "to the <a href=\"%s\">%s package page</a>", urlsanit("http://${debbugs::gPackagePages}/$pkg"), htmlsanit("$pkg");
}
- if ($srcforpkg) {
- # Only output this if the source listing is non-trivial.
- if (@pkgs or $pkg ne $srcforpkg) {
- push @references, sprintf "to the source package <a href=\"%s\">%s</a>'s bug page", srcurl($srcforpkg), htmlsanit($srcforpkg);
- }
+ if (defined $debbugs::gSubscriptionDomain) {
+ my $ptslink = $pkg ? $srcforpkg : $src;
+ push @references, "to the <a href=\"http://$debbugs::gSubscriptionDomain/$ptslink\">Package Tracking System</a>";
}
+ # Only output this if the source listing is non-trivial.
+ if ($pkg and $srcforpkg and (@pkgs or $pkg ne $srcforpkg)) {
+ push @references, sprintf "to the source package <a href=\"%s\">%s</a>'s bug page", srcurl($srcforpkg), htmlsanit($srcforpkg);
+ }
+ }
+ if ($pkg) {
+ set_option("archive", !$archive);
+ push @references, sprintf "to the <a href=\"%s\">%s reports for %s</a>", pkgurl($pkg), ($archive ? "active" : "archived"), htmlsanit($pkg);
+ set_option("archive", $archive);
}
if (@references) {
$references[$#references] = "or $references[$#references]" if @references > 1;