qw(%gDistributionAliases),
qw(@gPostProcessall @gRemovalDefaultDistributionTags @gRemovalDistributionTags @gRemovalArchitectures),
qw(@gRemovalStrongSeverityDefaultDistributionTags),
+ qw(@gDefaultArchitectures),
],
text => [qw($gBadEmailPrefix $gHTMLTail $gHTMLExpireNote),
],
@_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
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
no_source_arch => {type => BOOLEAN,
default => 0,
},
+ return_archs => {type => BOOLEAN,
+ default => 0,
+ },
},
);
my $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;
}
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;
}
(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,