]> git.donarmstrong.com Git - debbugs.git/commitdiff
merge changes from dla source tree
authorDebian BTS <debbugs@rietz>
Thu, 14 Jun 2007 20:49:46 +0000 (20:49 +0000)
committerDebian BTS <debbugs@rietz>
Thu, 14 Jun 2007 20:49:46 +0000 (20:49 +0000)
Debbugs/Status.pm
cgi/pkgreport.cgi
debian/changelog
scripts/service.in

index bda64abdeef4d9aeca2b0e6de1382ec116f56b73..ae1d7a11d42c227b2dec016ac40bcfb01e175ef4 100644 (file)
@@ -160,8 +160,10 @@ sub read_bug{
         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;
@@ -172,6 +174,9 @@ sub read_bug{
     }
     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;
@@ -220,6 +225,7 @@ sub read_bug{
     }
     # Add log last modified time
     $data{log_modified} = (stat($log))[9];
+    $data{location} = $location;
 
     return \%data;
 }
index 87525d91ab3f22c3d57b967404313d6f4f0b849c..5862dd1965d10acd01f1420aedccbfeff67fba78 100755 (executable)
@@ -644,7 +644,7 @@ sub pkg_htmlindexentrystatus {
                                   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>";
         }
     }
@@ -920,7 +920,7 @@ sub pkg_htmlselectyesno {
 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;
index 5dbf1f45026543abb26eaa4561d0eea4769d6d1e..72d54119f9c71b8c100a0fde55b0f6587cda37ee 100644 (file)
@@ -186,6 +186,8 @@ debbugs (2.4.2) UNRELEASED; urgency=low
     - 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
index 3bf7ae6a7d5361865466a4f7a9004242c4a5c385..a161f89c58a46a4ddb09617405ca368961fd6bc7 100755 (executable)
@@ -10,6 +10,7 @@ use Debbugs::MIME qw(decode_rfc1522 encode_rfc1522);
 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);
@@ -554,17 +555,16 @@ END
                     # 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".