]> git.deb.at Git - deb/packages.git/blobdiff - lib/Packages/DoShow.pm
Simply some stuff due to (suite,arch) now being unique and $archive being
[deb/packages.git] / lib / Packages / DoShow.pm
index 3070f1b85f7f0de6feee0c1559f4304c5d36c516..c9940a16bfc980af9a75cca6852a7108b90b4b94 100644 (file)
@@ -75,19 +75,13 @@ sub do_show {
            foreach (@results, @non_results) {
                my $a = $_->[1];
                my $s = $_->[2];
-               if ($a =~ /^(?:us|security|non-US)$/o) {
-                   $all_suites{$s}++;
-               } else {
-                   $all_suites{"$s/$a"}++;
-               }
+               $all_suites{$s}++;
            }
            foreach (suites_sort(keys %all_suites)) {
-               if (("$suite/$archive" eq $_)
-                   || (!$all_suites{"$suite/$archive"} && ($suite eq $_))) {
+               if ($suite eq $_) {
                    $$menu .= "[ <strong>$_</strong> ] ";
                } else {
-                   $$menu .=
-                       "[ <a href=\"$ROOT/$_/$encodedpkg\">$_</a> ] ";
+                   $$menu .= "[ <a href=\"$ROOT/$_/$encodedpkg\">$_</a> ] ";
                }
            }
            $$menu .= '<br>';
@@ -97,7 +91,7 @@ sub do_show {
            } else {
                unless ($opts->{source}) {
                    for my $entry (@results) {
-                       debug( join(":", @$entry), 1 );
+                       debug( join(":", @$entry), 1 ) if DEBUG;
                        my (undef, $archive, undef, $arch, $section, $subsection,
                            $priority, $version, $provided_by) = @$entry;
                        
@@ -106,7 +100,7 @@ sub do_show {
                            $data{package} = $pkg;
                            $data{architecture} = $arch;
                            $data{version} = $version;
-                           $page->merge_package(\%data) or debug( "Merging $pkg $arch $version FAILED", 2 );
+                           $page->merge_package(\%data) or debug( "Merging $pkg $arch $version FAILED", 2 ) if DEBUG;
                        } else {
                            $page->add_provided_by([split /\s+/, $provided_by]);
                        }
@@ -116,22 +110,22 @@ sub do_show {
                        $version = $page->{newest};
                        my $source = $page->get_newest( 'source' );
                        $archive = $page->get_newest( 'archive' );
-                       debug( "find source package: source=$source", 1);
+                       debug( "find source package: source=$source", 1) if DEBUG;
                        my $src_data = $sources_all{"$archive $suite $source"};
                        $page->add_src_data( $source, $src_data )
                            if $src_data;
 
                        my $st1 = new Benchmark;
                        my $std = timediff($st1, $st0);
-                       debug( "Data search and merging took ".timestr($std) );
+                       debug( "Data search and merging took ".timestr($std) ) if DEBUG;
 
-                       my ($v_str, $v_str_arch, $v_str_arr) = $page->get_version_string();
                        my $did = $page->get_newest( 'description' );
                        $section = $page->get_newest( 'section' );
                        $subsection = $page->get_newest( 'subsection' );
                        my $filenames = $page->get_arch_field( 'filename' );
                        my $file_md5sums = $page->get_arch_field( 'md5sum' );
                        my $archives = $page->get_arch_field( 'archive' );
+                       my $versions = $page->get_arch_field( 'version' );
                        my $sizes_inst = $page->get_arch_field( 'installed-size' );
                        my $sizes_deb = $page->get_arch_field( 'size' );
                        my @archs = sort $page->get_architectures;
@@ -161,6 +155,9 @@ sub do_show {
                                                 $subsection ],
                                               );
 
+                       my $v_str = $version;
+                       my $multiple_versions = grep { $_ ne $version } values %$versions;
+                       $v_str .= _g(" and others") if $multiple_versions;
                        my $title .= sprintf( _g( "Package: %s (%s)" ), $pkg, $v_str );
                        $title .=  " ".marker( $archive ) if $archive ne 'us';
                        $title .=  " ".marker( $subsection ) if $subsection eq 'non-US'
@@ -168,8 +165,6 @@ sub do_show {
                        $title .=  " ".marker( $section ) if $section ne 'main';
                        $package_page .= title( $title );
                        
-                       $package_page .= "<h2>"._g( "Versions:" )." $v_str_arch</h2>\n" 
-                           unless $version eq $v_str;
                        if (my $provided_by = $page->{provided_by}) {
                            note( _g( "This is also a virtual package provided by ").join( ', ', map { "<a href=\"$ROOT/$suite/$_\">$_</a>"  } @$provided_by) );
                        }
@@ -225,22 +220,27 @@ sub do_show {
                        $package_page .= "<table summary=\""._g("The download table links to the download of the package and a file overview. In addition it gives information about the package size and the installed size.")."\">\n";
                        $package_page .= "<caption class=\"hidecss\">"._g("Download for all available architectures")."</caption>\n";
                        $package_page .= "<tr>\n";
-                       $package_page .= "<th>"._g("Architecture")."</th><th>"._g("Files")."</th><th>"._g( "Package Size")."</th><th>"._g("Installed Size")."</th></tr>\n";
+                       $package_page .= "<th>"._g("Architecture")."</th>";
+                       $package_page .= "<th>"._g("Version")."</th>"
+                           if $multiple_versions;
+                       $package_page .= "<th>"._g( "Package Size")."</th><th>"._g("Installed Size")."</th><th>"._g("Files")."</th></tr>\n";
                        foreach my $a ( @archs ) {
                            $package_page .= "<tr>\n";
                            $package_page .=  "<th><a href=\"$ROOT/$suite/$encodedpkg/$a/download";
                            $package_page .=  "\">$a</a></th>\n";
-                           $package_page .= "<td>";
+                           $package_page .= "<td>".$versions->{$a}."</td>"
+                               if $multiple_versions;
+                           $package_page .= '</td><td class="size">';
+                           $package_page .=  floor(($sizes_deb->{$a}/102.4)+0.5)/10 . "&nbsp;kB";
+                           $package_page .= '</td><td class="size">';
+                           $package_page .=  $sizes_inst->{$a} . "&nbsp;kB";
+                           $package_page .= "</td>\n<td>";
                            if ( $suite ne "experimental" ) {
                                $package_page .= sprintf( "[<a href=\"%s\">"._g( "list of files" )."</a>]\n",
                                                          "$ROOT/$suite/$encodedpkg/$a/filelist", $pkg );
                            } else {
                                $package_page .= _g( "no current information" );
                            }
-                           $package_page .= '</td><td class="size">';
-                           $package_page .=  floor(($sizes_deb->{$a}/102.4)+0.5)/10 . "&nbsp;kB";
-                           $package_page .= '</td><td class="size">';
-                           $package_page .=  $sizes_inst->{$a} . "&nbsp;kB";
                            $package_page .= "</td>\n</tr>";
                        }
                        $package_page .= "</table>\n";
@@ -282,21 +282,20 @@ sub do_show {
                    } # else (unless $page->is_virtual)
                } else { # unless $opts->{source}
                    for my $entry (@results) {
-                       debug( join(":", @$entry), 1 );
+                       debug( join(":", @$entry), 1 ) if DEBUG;
                        my (undef, $archive, undef, $section, $subsection,
                            $priority, $version) = @$entry;
                        
                        my $data = $sources_all{"$archive $suite $pkg"};
                        $page->merge_data($pkg, $suite, $archive, $data)
-                           or debug( "Merging $pkg $version FAILED", 2 );
+                           or debug( "Merging $pkg $version FAILED", 2 ) if DEBUG;
                    }
                    $version = $page->{version};
 
                    my $st1 = new Benchmark;
                    my $std = timediff($st1, $st0);
-                   debug( "Data search and merging took ".timestr($std) );
+                   debug( "Data search and merging took ".timestr($std) ) if DEBUG;
 
-                   my ($v_str, $v_str_arr) = $page->get_version_string();
                    $archive = $page->get_newest( 'archive' );
                    $section = $page->get_newest( 'section' );
                    $subsection = $page->get_newest( 'subsection' );
@@ -312,7 +311,7 @@ sub do_show {
                                           );
                    
                    my $title .= sprintf( _g( "Source Package: %s (%s)" ),
-                                         $pkg, $v_str );
+                                         $pkg, $version );
                    $title .=  " ".marker( $archive ) if $archive ne 'us';
                    $title .=  " ".marker( $subsection ) if $subsection eq 'non-US'
                        and $archive ne 'non-US'; # non-US/security
@@ -421,7 +420,7 @@ sub do_show {
     }
 
 #    use Data::Dumper;
-#    debug( "Final page object:\n".Dumper($page), 3 );
+#    debug( "Final page object:\n".Dumper($page), 3 ) if DEBUG;
 
     my $title = $opts->{source} ?
        _g( "Details of source package <em>%s</em> in %s" ) :