-if (defined $pkg) {
- $title = "package $pkg";
- add_user("$pkg\@packages.debian.org");
- if (defined $version) {
- $title .= " (version $version)";
- } elsif (defined $dist) {
- $title .= " in $dist";
- my $verdesc = getversiondesc($pkg);
- $title .= " ($verdesc)" if defined $verdesc;
- }
- my @pkgs = split /,/, $pkg;
- @bugs = get_bugs(package=>\@pkgs);
-} elsif (defined $src) {
- add_user("$src\@packages.debian.org");
- $title = "source $src";
- set_option('arch', 'source');
- if (defined $version) {
- $title .= " (version $version)";
- } elsif (defined $dist) {
- $title .= " in $dist";
- my $verdesc = getversiondesc($src);
- $title .= " ($verdesc)" if defined $verdesc;
- }
- @bugs = get_bugs(src=>[split /,/, $src]);
-} elsif (defined $maint) {
- add_user($maint);
- $title = "maintainer $maint";
- $title .= " in $dist" if defined $dist;
- @bugs = get_bugs(maint=>[split /,/,$maint]);
-} elsif (defined $maintenc) {
- my %maintainers = %{getmaintainers()};
- $title = "encoded maintainer $maintenc";
- $title .= " in $dist" if defined $dist;
- @bugs = @{getbugs(sub {my %d=@_;
- foreach my $try (splitpackages($d{"pkg"})) {
- my @me = getparsedaddrs($maintainers{$try});
- return 1 if grep {
- maintencoded($_->address) eq $maintenc
- } @me;
- }
- return 0;
- })};
-} elsif (defined $submitter) {
- add_user($submitter);
- $title = "submitter $submitter";
- $title .= " in $dist" if defined $dist;
- my @submitters = split /,/, $submitter;
- @bugs = get_bugs(submitter => \@submitters);
-} elsif (defined($severity) && defined($status)) {
- $title = "$status $severity bugs";
- $title .= " in $dist" if defined $dist;
- my @severities = split /,/, $severity;
- my @statuses = split /,/, $status;
- @bugs = @{getbugs(sub {my %d=@_;
- return (grep($d{"severity"} eq $_, @severities))
- && (grep($d{"status"} eq $_, @statuses));
- })};
-} elsif (defined($severity)) {
- $title = "$severity bugs";
- $title .= " in $dist" if defined $dist;
- my @severities = split /,/, $severity;
- @bugs = @{getbugs(sub {my %d=@_;
- return (grep($d{"severity"} eq $_, @severities));
- }, 'severity', @severities)};
-} elsif (defined($tag)) {
- $title = "bugs tagged $tag";
- $title .= " in $dist" if defined $dist;
- my @tags = split /,/, $tag;
- my %bugs = ();
- for my $t (@tags) {
- for my $b (@{$ut{$t}}) {
- $bugs{$b} = 1;
- }
- }
- @bugs = @{getbugs(sub {my %d = @_;
- return 1 if $bugs{$d{"bug"}};
- my %tags = map { $_ => 1 } split ' ', $d{"tags"};
- return grep(exists $tags{$_}, @tags);
- })};
+
+# addusers for source and binary packages being searched for
+my $pkgsrc = getpkgsrc();
+my $srcpkg = getsrcpkgs();
+for my $package (# For binary packages, add the binary package
+ # and corresponding source package
+ make_list($param{package}||[]),
+ (map {defined $pkgsrc->{$_}?($pkgsrc->{$_}):()}
+ make_list($param{package}||[]),
+ ),
+ # For source packages, add the source package
+ # and corresponding binary packages
+ make_list($param{src}||[]),
+ (map {defined $srcpkg->{$_}?($srcpkg->{$_}):()}
+ make_list($param{src}||[]),
+ ),
+ ) {
+ next unless defined $package;
+ add_user($package.'@'.$config{usertag_package_domain})
+ if defined $config{usertag_package_domain};