- for my $dist qw(oldstable stable testing unstable experimental) {
- local $SIG{__WARN__} = sub {};
-
- next if (!$disttags{$dist});
-
- my $presence = Debbugs::Status::bug_presence(
- bug => $f,
- status => $bug,
- dist => $dist,
- arch => [ qw(alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc) ]
- );
-
- # ignore bugs that are absent/fixed in this distribution, include everything
- # else (that is, "found" which says that the bug is present, and undef, which
- # indicates that no versioning information is present and it's not closed
- # unversioned)
- if (!defined($presence) || ($presence ne 'absent' && $presence ne 'fixed')) {
- $relinfo .= uc(substr($dist, 0, 1));
+ if (defined($section{$bug->{'package'}}) && $section{$bug->{'package'}} eq 'pseudo') {
+ # versioning information makes no sense for pseudo packages,
+ # just use the tags
+ for my $dist qw(oldstable stable testing unstable experimental) {
+ $relinfo .= uc(substr($dist, 0, 1)) if $disttags{$dist};
+ }
+ next if (length($bug->{'done'}));
+ } else {
+ # only bother to check the versioning status for the distributions indicated by the tags
+ for my $dist qw(oldstable stable testing unstable experimental) {
+ local $SIG{__WARN__} = sub {};
+
+ next if (!$disttags{$dist});
+
+ # This is needed for now
+ my $exists = 0;
+ for my $arch (@bugcfg::architectures) {
+ for my $pkg (split /[,\s]+/, $bug->{'package'}) {
+ my @versions = Debbugs::Packages::getversions($pkg, $dist, $arch);
+ $exists = 1 if (scalar @versions > 0);
+ }
+ last if $exists;
+ }
+
+ next if !$exists;
+
+ my $presence = Debbugs::Status::bug_presence(
+ bug => $f,
+ status => $bug,
+ dist => $dist,
+ arch => \@bugcfg::architectures
+ );
+
+ # ignore bugs that are absent/fixed in this distribution, include everything
+ # else (that is, "found" which says that the bug is present, and undef, which
+ # indicates that no versioning information is present and it's not closed
+ # unversioned)
+ if (!defined($presence) || ($presence ne 'absent' && $presence ne 'fixed')) {
+ $relinfo .= uc(substr($dist, 0, 1));
+ }