# if the first directory in @INC is not an absolute directory, assume that
# someone has overridden us via -I.
if ($INC[0] !~ /^\//) {
+ undef $debbugs_dir;
}
}
use if defined $debbugs_dir, lib => $debbugs_dir;
use Debbugs::Bugs qw(get_bugs bug_filter newest_bug);
use Debbugs::Packages qw(source_to_binary binary_to_source get_versions);
+use Debbugs::Collection::Bug;
use Debbugs::Status qw(splitpackages);
single => [qw(ordering archive repeatmerged),
qw(bug-rev pend-rev sev-rev),
qw(maxdays mindays version),
- qw(data which dist newest),
+ qw(data which dist),
qw(noaffects),
],
default => $default_params,
my %ut;
my %seen_users;
+my @users;
for my $user (map {split /[\s*,\s*]+/} make_list($param{users}||[])) {
next unless length($user);
+ push @users, $user;
add_user($user,\%ut,\%bugusertags,\%seen_users,\%cats,\%hidden);
}
Debbugs::User::read_usertags(\%select_ut, $u);
unless (defined $t && $t ne "") {
$t = join(",", keys(%select_ut));
- }
+ }
+ push @users,$u;
add_user($u,\%ut,\%bugusertags,\%seen_users,\%cats,\%hidden);
push @{$param{tag}}, split /,/, $t;
}
push @possible_packages,
source_to_binary(binary_only => 1,
source => $param{src},
+ dist => [@{$config{distributions}}],
@schema_arg,
);
}
for my $package (@possible_packages) {
next unless defined $package and length $package;
+ push @users,
+ $package.'@'.$config{usertag_package_domain};
add_user($package.'@'.$config{usertag_package_domain},
\%ut,\%bugusertags,\%seen_users,\%cats,\%hidden);
}
my @entries = ();
for my $entry (make_list($param{$key})) {
# we'll handle newest below
- next if $key eq 'newest';
my $extra = '';
if (exists $param{dist} and ($key eq 'package' or $key eq 'src')) {
my %versions = get_versions(package => $entry,
($key eq 'src'?(arch => q(source)):()),
no_source_arch => 1,
return_archs => 1,
+ @schema_arg,
);
my $verdesc;
if (keys %versions > 1) {
push @entries, $entry.$extra;
}
}
- push @title,$value.' '.join(' or ', @entries) if @entries;
-}
-if (defined $param{newest}) {
- my $newest_bug = newest_bug();
- @bugs = ($newest_bug - $param{newest} + 1) .. $newest_bug;
- push @title, 'in '.@bugs.' newest reports';
- $param{bugs} = [exists $param{bugs}?make_list($param{bugs}):(),
- @bugs,
- ];
+ if ($key eq 'newest') {
+ push @title, 'in '.join(' or ',@entries).' newest reports';
+ } else {
+ push @title,$value.' '.join(' or ', @entries) if @entries;
+ }
}
my $title = $gBugs.' '.join(' and ', map {/ or /?"($_)":$_} @title);
#yeah for magick!
@bugs = get_bugs((map {exists $param{$_}?($_,$param{$_}):()}
- grep {$_ ne 'newest'}
keys %package_search_keys, 'archive'),
usertags => \%ut,
@schema_arg,
@bugs{@bugs} = @bugs;
@bugs = keys %bugs;
-my $result = pkg_htmlizebugs(bugs => \@bugs,
+my $bugs = Debbugs::Collection::Bug->
+ new(bugs => \@bugs,
+ @schema_arg,
+ users => [map {Debbugs::User->new($_)} @users],
+ );
+
+$bugs->load_related_packages_and_versions();
+
+my $result = pkg_htmlizebugs(bugs => $bugs,
names => \@names,
title => \@title,
order => \@order,