]> git.donarmstrong.com Git - debbugs.git/commitdiff
merge dla source changes
authorDebian BTS <debbugs@rietz>
Sun, 9 Dec 2007 00:53:14 +0000 (00:53 +0000)
committerDebian BTS <debbugs@rietz>
Sun, 9 Dec 2007 00:53:14 +0000 (00:53 +0000)
Debbugs/Config.pm
Debbugs/Packages.pm
cgi/pkgreport.cgi

index fe07b6403e09ed88575a4d03eff61b23ecf7ecac..41d388c9aed31f4ab5579ae5f8b0724be5a4b2c5 100644 (file)
@@ -64,6 +64,7 @@ BEGIN {
                                 qw(%gDistributionAliases),
                                 qw(@gPostProcessall @gRemovalDefaultDistributionTags @gRemovalDistributionTags @gRemovalArchitectures),
                                 qw(@gRemovalStrongSeverityDefaultDistributionTags),
                                 qw(%gDistributionAliases),
                                 qw(@gPostProcessall @gRemovalDefaultDistributionTags @gRemovalDistributionTags @gRemovalArchitectures),
                                 qw(@gRemovalStrongSeverityDefaultDistributionTags),
+                                qw(@gDefaultArchitectures),
                                ],
                     text     => [qw($gBadEmailPrefix $gHTMLTail $gHTMLExpireNote),
                                 ],
                                ],
                     text     => [qw($gBadEmailPrefix $gHTMLTail $gHTMLExpireNote),
                                 ],
@@ -382,6 +383,20 @@ my %_distributions_default;
 @_distributions_default{values %{$config{distribution_aliases}}} = values %{$config{distribution_aliases}};
 set_default(\%config,'distributions',[keys %_distributions_default]);
 
 @_distributions_default{values %{$config{distribution_aliases}}} = values %{$config{distribution_aliases}};
 set_default(\%config,'distributions',[keys %_distributions_default]);
 
+
+=item default_architectures
+
+List of default architectures to use when architecture(s) are not
+specified
+
+Default: i386 amd64 arm ppc sparc alpha
+
+=cut
+
+set_default(\%config,'default_architectures',
+           [qw(i386 amd64 arm powerpc sparc alpha)]
+          );
+
 =item removal_distribution_tags
 
 Tags which specifiy distributions to check
 =item removal_distribution_tags
 
 Tags which specifiy distributions to check
index 7103fc10daf9fefd1afaa7e2918f57267ae7300d..39e5ed82ae246d5b2a274de3d3703571ed6c5b7b 100644 (file)
@@ -259,6 +259,9 @@ not passed. [Used for finding the versions of binary packages only.]
 Defaults to 0, which does not discard the source architecture. (This
 may change in the future, so if you care, please code accordingly.)
 
 Defaults to 0, which does not discard the source architecture. (This
 may change in the future, so if you care, please code accordingly.)
 
+=item return_archs -- returns a version=>[archs] hash indicating which
+architectures are at which versions.
+
 =back
 
 =cut
 =back
 
 =cut
@@ -285,6 +288,9 @@ sub get_versions{
                                           no_source_arch => {type => BOOLEAN,
                                                              default => 0,
                                                             },
                                           no_source_arch => {type => BOOLEAN,
                                                              default => 0,
                                                             },
+                                          return_archs => {type => BOOLEAN,
+                                                           default => 0,
+                                                          },
                                          },
                               );
      my $versions;
                                          },
                               );
      my $versions;
@@ -328,14 +334,17 @@ sub get_versions{
                              $versions{$f_ver} = max($versions{$f_ver}||0,$version->{$dist}{$arch}{$ver});
                         }
                         else {
                              $versions{$f_ver} = max($versions{$f_ver}||0,$version->{$dist}{$arch}{$ver});
                         }
                         else {
-                             $versions{$f_ver} = 1;
+                             push @{$versions{$f_ver}},$arch;
                         }
                    }
               }
          }
      }
      if ($param{time}) {
                         }
                    }
               }
          }
      }
      if ($param{time}) {
-         return %versions
+         return %versions;
+     }
+     elsif ($param{return_archs}) {
+         return %versions;
      }
      return keys %versions;
 }
      }
      return keys %versions;
 }
index 78b4dc20fa8c0d1a31edaf91ac25f7639b856ce5..c07bf78a1b8eb7256544de604345d75ea668e2b7 100755 (executable)
@@ -304,15 +304,27 @@ while (my ($key,$value) = splice @search_key_order, 0, 2) {
      for my $entry (make_list($param{$key})) {
          my $extra = '';
          if (exists $param{dist} and ($key eq 'package' or $key eq 'src')) {
      for my $entry (make_list($param{$key})) {
          my $extra = '';
          if (exists $param{dist} and ($key eq 'package' or $key eq 'src')) {
-              my @versions = get_versions(package => $entry,
+              my %versions = get_versions(package => $entry,
                                           (exists $param{dist}?(dist => $param{dist}):()),
                                           (exists $param{dist}?(dist => $param{dist}):()),
-                                          (exists $param{arch}?(arch => $param{arch}):()),
+                                          (exists $param{arch}?(arch => $param{arch}):(arch => $config{default_architectures})),
                                           ($key eq 'src'?(arch => q(source)):()),
                                           no_source_arch => 1,
                                           ($key eq 'src'?(arch => q(source)):()),
                                           no_source_arch => 1,
+                                          return_archs => 1,
                                          );
                                          );
-              my $verdesc = join(', ',@versions);
-              $verdesc = 'version'.(@versions>1?'s ':' ').$verdesc;
-              $extra= " ($verdesc)" if @versions;
+              my $verdesc;
+              if (keys %versions > 1) {
+                   $verdesc = 'versions '. join(', ',
+                                   map { $_ .' ['.join(', ',
+                                                   sort @{$versions{$_}}
+                                                  ).']';
+                                  } keys %versions);
+              }
+              else {
+                   $verdesc = 'version '.join(', ',
+                                              keys %versions
+                                             );
+              }
+              $extra= " ($verdesc)" if keys %versions;
          }
          push @entries, $entry.$extra;
      }
          }
          push @entries, $entry.$extra;
      }
@@ -775,7 +787,7 @@ sub pkg_htmlizebugs {
                                      (exists $param{dist}?(dist => $param{dist}):()),
                                      bugusertags => \%bugusertags,
                                      (exists $param{version}?(version => $param{version}):()),
                                      (exists $param{dist}?(dist => $param{dist}):()),
                                      bugusertags => \%bugusertags,
                                      (exists $param{version}?(version => $param{version}):()),
-                                     (exists $param{arch}?(arch => $param{arch}):()),
+                                     (exists $param{arch}?(arch => $param{arch}):(arch => $config{default_architectures})),
                                     )};
         next unless %status;
         next if bug_filter(bug => $bug,
                                     )};
         next unless %status;
         next if bug_filter(bug => $bug,