From 475b01877ca41713d789298a00d22fc02defa3ed Mon Sep 17 00:00:00 2001 From: Debian BTS Date: Sun, 9 Dec 2007 00:53:14 +0000 Subject: [PATCH] merge dla source changes --- Debbugs/Config.pm | 15 +++++++++++++++ Debbugs/Packages.pm | 13 +++++++++++-- cgi/pkgreport.cgi | 24 ++++++++++++++++++------ 3 files changed, 44 insertions(+), 8 deletions(-) diff --git a/Debbugs/Config.pm b/Debbugs/Config.pm index fe07b64..41d388c 100644 --- a/Debbugs/Config.pm +++ b/Debbugs/Config.pm @@ -64,6 +64,7 @@ BEGIN { qw(%gDistributionAliases), qw(@gPostProcessall @gRemovalDefaultDistributionTags @gRemovalDistributionTags @gRemovalArchitectures), qw(@gRemovalStrongSeverityDefaultDistributionTags), + qw(@gDefaultArchitectures), ], 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]); + +=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 diff --git a/Debbugs/Packages.pm b/Debbugs/Packages.pm index 7103fc1..39e5ed8 100644 --- a/Debbugs/Packages.pm +++ b/Debbugs/Packages.pm @@ -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.) +=item return_archs -- returns a version=>[archs] hash indicating which +architectures are at which versions. + =back =cut @@ -285,6 +288,9 @@ sub get_versions{ no_source_arch => {type => BOOLEAN, default => 0, }, + return_archs => {type => BOOLEAN, + default => 0, + }, }, ); 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} = 1; + push @{$versions{$f_ver}},$arch; } } } } } if ($param{time}) { - return %versions + return %versions; + } + elsif ($param{return_archs}) { + return %versions; } return keys %versions; } diff --git a/cgi/pkgreport.cgi b/cgi/pkgreport.cgi index 78b4dc2..c07bf78 100755 --- a/cgi/pkgreport.cgi +++ b/cgi/pkgreport.cgi @@ -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')) { - my @versions = get_versions(package => $entry, + my %versions = get_versions(package => $entry, (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, + 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; } @@ -775,7 +787,7 @@ sub pkg_htmlizebugs { (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, -- 2.39.2