X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=lib%2FPackages%2FDoShow.pm;h=08eb376d236ddb237999af2258cae7048eabb64d;hb=f27f1fcc5bffc0696f694e962eb40dbb0c554855;hp=3070f1b85f7f0de6feee0c1559f4304c5d36c516;hpb=3bb6c9d9922b0487901c02962b1d64c525f1bdd7;p=deb%2Fpackages.git diff --git a/lib/Packages/DoShow.pm b/lib/Packages/DoShow.pm index 3070f1b..08eb376 100644 --- a/lib/Packages/DoShow.pm +++ b/lib/Packages/DoShow.pm @@ -97,7 +97,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 +106,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 +116,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 +161,9 @@ sub do_show { $subsection ], ); + my $v_str = $version; + my $multiple_versions = grep { $_ ne $version } values %$versions; + $v_str .= " (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 +171,6 @@ sub do_show { $title .= " ".marker( $section ) if $section ne 'main'; $package_page .= title( $title ); - $package_page .= "

"._g( "Versions:" )." $v_str_arch

\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 { "$_" } @$provided_by) ); } @@ -225,22 +226,27 @@ sub do_show { $package_page .= "\n"; $package_page .= "\n"; $package_page .= "\n"; - $package_page .= "\n"; + $package_page .= ""; + $package_page .= "" + if $multiple_versions; + $package_page .= "\n"; foreach my $a ( @archs ) { $package_page .= "\n"; $package_page .= "\n"; - $package_page .= "" + if $multiple_versions; + $package_page .= '\n\n"; } $package_page .= "
"._g("Download for all available architectures")."
"._g("Architecture").""._g("Files").""._g( "Package Size").""._g("Installed Size")."
"._g("Architecture").""._g("Version").""._g( "Package Size").""._g("Installed Size").""._g("Files")."
$a"; + $package_page .= "".$versions->{$a}."'; + $package_page .= floor(($sizes_deb->{$a}/102.4)+0.5)/10 . " kB"; + $package_page .= ''; + $package_page .= $sizes_inst->{$a} . " kB"; + $package_page .= ""; if ( $suite ne "experimental" ) { $package_page .= sprintf( "["._g( "list of files" )."]\n", "$ROOT/$suite/$encodedpkg/$a/filelist", $pkg ); } else { $package_page .= _g( "no current information" ); } - $package_page .= ''; - $package_page .= floor(($sizes_deb->{$a}/102.4)+0.5)/10 . " kB"; - $package_page .= ''; - $package_page .= $sizes_inst->{$a} . " kB"; $package_page .= "
\n"; @@ -282,21 +288,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 +317,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 +426,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 %s in %s" ) :