if not exists $param{bug} and not exists $param{summary};
my $status;
my $log;
+ my $location;
if (not defined $param{summary}) {
- my ($lref, $location) = @param{qw(bug location)};
+ my $lref;
+ ($lref,$location) = @param{qw(bug location)};
if (not defined $location) {
$location = getbuglocation($lref,'summary');
return undef if not defined $location;
}
else {
$status = $param{summary};
+ $log = $status;
+ $log =~ s/\.summary$/.log/;
+ ($location) = $status =~ m/(db-h|db|archive)/;
}
my $status_fh = new IO::File $status, 'r' or
warn "Unable to open $status for reading: $!" and return undef;
}
# Add log last modified time
$data{log_modified} = (stat($log))[9];
+ $data{location} = $location;
return \%data;
}
status => \%status,
days_until => 1,
);
- if ($days >= 0) {
+ if ($days >= 0 and defined $status->{location} and $status->{location} ne 'archive') {
$result .= ";\n<strong>Will be archived" . ( $days == 0 ? " today" : $days == 1 ? " in $days day" : " in $days days" ) . "</strong>";
}
}
sub pkg_htmlselectsuite {
my $id = sprintf "b_%d_%d_%d", $_[0], $_[1], $_[2];
my @suites = ("stable", "testing", "unstable", "experimental");
- my %suiteaka = ("stable", "sarge", "testing", "etch", "unstable", "sid");
+ my %suiteaka = ("stable", "etch", "testing", "lenny", "unstable", "sid");
my $defaultsuite = "unstable";
my $result = sprintf '<select name=dist id="%s">', $id;
- Only mail duplicated recipients once (closes: #172635)
- Indicate date of last activity (closes: #207065)
- Reorder title (closes: #265267)
+ - Reopen bugs when a bug is found with a version greater than any
+ fixed version (closes: #365352)
-- Colin Watson <cjwatson@debian.org> Fri, 20 Jun 2003 18:57:25 +0100
use Debbugs::Mail qw(send_mail_message);
use Debbugs::User;
use HTML::Entities qw(encode_entities);
+use Debbugs::Versions::Dpkg;
use Debbugs::Config qw(:globals :config);
use Debbugs::CGI qw(html_escape);
# tracking, because a bug may be closed by multiple
# people in different branches. Until we have something
# more flexible, we set it every time a bug is fixed,
- # and clear it precisely when a found command is
- # received for the rightmost fixed-in version, which
- # equates to the most recent fixing of the bug, or when
- # a versionless found command is received.
- if (defined $version) {
- my $lastfixed = $data->{fixed_versions}[-1];
- # TODO: what if $data->{package} is a source package?
+ # and clear it when a bug is found in a version greater
+ # than any version in which the bug is fixed or when
+ # a bug is found and there is no fixed version
+ if (defined $version) {
addfoundversions($data, $data->{package}, $version, 'binary');
- if (defined $lastfixed and not grep { $_ eq $lastfixed } @{$data->{fixed_versions}}) {
- $data->{done} = '';
- }
+ my @fixed_order = sort {Debbugs::Versions::Dpkg::vercmp($a,$b);}
+ @{$data->{fixed_versions}};
+ if (not @fixed_order or (vercmp($fixed_order[-1],$version) >= 0)) {
+ $data->{done} = '';
+ }
} else {
# Versionless found; assume old-style "not fixed at
# all".