]> git.donarmstrong.com Git - debbugs.git/commitdiff
- Handle src/binary packages with the same name (but different src
authorDon Armstrong <don@donarmstrong.com>
Wed, 8 Aug 2007 01:38:16 +0000 (18:38 -0700)
committerDon Armstrong <don@donarmstrong.com>
Wed, 8 Aug 2007 01:38:16 +0000 (18:38 -0700)
    packages) correctly. (closes: #435926)

Debbugs/Packages.pm
cgi/pkgreport.cgi
debian/changelog

index b34e1b5643ba8e8cbb5342be48c7c60ab9a1efb1..7103fc10daf9fefd1afaa7e2918f57267ae7300d 100644 (file)
@@ -254,6 +254,11 @@ matching this version was uploaded
 
 =item source -- returns source/version instead of just versions
 
+=item no_source_arch -- discards the source architecture when arch is
+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.)
+
 =back
 
 =cut
@@ -277,6 +282,9 @@ sub get_versions{
                                           source  => {type    => BOOLEAN,
                                                       default => 0,
                                                      },
+                                          no_source_arch => {type => BOOLEAN,
+                                                             default => 0,
+                                                            },
                                          },
                               );
      my $versions;
@@ -303,7 +311,9 @@ sub get_versions{
          for my $dist (make_list($param{dist})) {
               for my $arch (exists $param{arch}?
                             make_list($param{arch}):
-                            (keys %{$version->{$dist}})) {
+                            (grep {not $param{no_source_arch} or
+                                        $_ ne 'source'
+                              } keys %{$version->{$dist}})) {
                    next unless defined $version->{$dist}{$arch};
                    for my $ver (ref $version->{$dist}{$arch} ?
                                 keys %{$version->{$dist}{$arch}} :
index 37f4196dbaab5977f3bcf2170d564e532e72bdff..48d755b016d9dcc65edba46330e7cccdae20b0d5 100755 (executable)
@@ -308,6 +308,7 @@ while (my ($key,$value) = splice @search_key_order, 0, 2) {
                                           (exists $param{dist}?(dist => $param{dist}):()),
                                           (exists $param{arch}?(arch => $param{arch}):()),
                                           ($key eq 'src'?(arch => q(source)):()),
+                                          no_source_arch => 1,
                                          );
               my $verdesc = join(', ',@versions);
               $verdesc = 'version'.(@versions>1?'s ':' ').$verdesc;
@@ -398,9 +399,17 @@ for my $package (make_list($param{src}||[])) {
 
 sub output_package_info{
     my ($srcorbin,$package) = @_;
+
+    my %pkgsrc = %{getpkgsrc()};
+    my $srcforpkg = $package;
+    if ($srcorbin eq 'binary') {
+        $srcforpkg = $pkgsrc{$package};
+        defined $srcforpkg or $srcforpkg = $package;
+    }
+
     my $showpkg = html_escape($package);
     my $maintainers = getmaintainers();
-    my $maint = $maintainers->{$package};
+    my $maint = $maintainers->{$srcforpkg};
     if (defined $maint) {
         print '<p>';
         print htmlize_maintlinks(sub { $_[0] == 1 ? "Maintainer for $showpkg is "
@@ -411,12 +420,6 @@ sub output_package_info{
     } else {
         print "<p>No maintainer for $showpkg. Please do not report new bugs against this package.</p>\n";
     }
-    my %pkgsrc = %{getpkgsrc()};
-    my $srcforpkg = $package;
-    if ($srcorbin eq 'binary') {
-        $srcforpkg = $pkgsrc{$package};
-        defined $srcforpkg or $srcforpkg = $package;
-    }
     my @pkgs = getsrcpkgs($srcforpkg);
     @pkgs = grep( !/^\Q$package\E$/, @pkgs );
     if ( @pkgs ) {
index 53b2b7304cdf207b9efbc9599cf4aeb9b4067c1e..cd4aadcae5c9dfbc4fd07a9c961c5da46ec01de8 100644 (file)
@@ -198,6 +198,8 @@ debbugs (2.4.2) UNRELEASED; urgency=low
     - Allow selecting the newest N bugs (closes: #84681)
     - Add anchor links to specific messages (closes: #431450)
     - Add missing newline after indicating what the user is (closes: #432466)
+    - Handle src/binary packages with the same name (but different src
+      packages) correctly. (closes: #435926)
 
   
  -- Colin Watson <cjwatson@debian.org>  Fri, 20 Jun 2003 18:57:25 +0100