package Packages::DoShow;
use strict;
+use warnings;
use POSIX;
use URI::Escape;
unless (@results || @non_results ) {
fatal_error( _g( "No such package." )."<br>".
- sprintf( _g( '<a href="%s">Search for the package</a>' ), "$SEARCH_URL/$pkg" ) );
+ sprintf( _g( '<a href="%s">Search for the package</a>' ), make_search_url('','keywords='.uri_escape($pkg)) ) );
} else {
my %all_suites;
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=\"".make_url($encodedpkg,'',{suite=>$_})."\">$_</a> ] ";
}
}
$$menu .= '<br>';
} 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;
$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]);
}
$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 $did = $page->get_newest( 'description' );
+ my @tags = split(/, /, $page->get_newest( 'tag' ));
$section = $page->get_newest( 'section' );
$subsection = $page->get_newest( 'subsection' );
my $filenames = $page->get_arch_field( 'filename' );
$long_desc =~ s/\n /\n/sgo;
$long_desc =~ s/\n.\n/\n<p>\n/go;
$long_desc =~ s/(((\n|\A) [^\n]*)+)/\n<pre>$1\n<\/pre>/sgo;
-# $long_desc = conv_desc( $lang, $long_desc );
-# $short_desc = conv_desc( $lang, $short_desc );
-
- $$menu .= simple_menu( [ _g( "Distribution:" ),
- _g( "Overview over this suite" ),
- "$ROOT/$suite/",
- $suite ],
- [ _g( "Section:" ),
- _g( "All packages in this section" ),
- "$ROOT/$suite/$subsection/",
- $subsection ],
- );
+ my @menu = ( [ _g( "Distribution:" ),
+ _g( "Overview over this suite" ),
+ make_url("/",''),
+ $suite ],
+ [ _g( "Section:" ),
+ _g( "All packages in this section" ),
+ make_url("$subsection/",''),
+ $subsection ], );
+ push @menu, [ _g( "Source:" ),
+ _g( "Source package building this package" ),
+ make_url($source,'',{source=>'source'}),
+ $source ] if $source;
+ $$menu .= simple_menu( @menu );
my $v_str = $version;
my $multiple_versions = grep { $_ ne $version } values %$versions;
- $v_str .= " (and others)" if $multiple_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'
$package_page .= title( $title );
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) );
+ note( _g( "This is also a virtual package provided by ").join( ', ', map { "<a href=\"".make_url($_,'')."\">$_</a>" } @$provided_by) );
}
if ($suite eq "experimental") {
);
}
$package_page .= pdesc( $short_desc, $long_desc );
+ $package_page .= ptags( $pkg, @tags ) if @tags;
#
# display dependencies
if ( $dep_list ) {
$package_page .= "<div id=\"pdeps\">\n";
$package_page .= sprintf( "<h2>"._g( "Other Packages Related to %s" )."</h2>\n", $pkg );
- if ($suite eq "experimental") {
- note( sprintf( _g( 'Note that the <strong>experimental</strong> distribution is not self-contained; missing dependencies are likely found in the <a href="%s">unstable</a> distribution.' ), "$ROOT/unstable/" ) );
- }
$package_page .= pdeplegend( [ 'dep', _g( 'depends' ) ],
[ 'rec', _g( 'recommends' ) ],
$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 .= "<th><a href=\"".make_url("$encodedpkg/$a/download",'');
$package_page .= "\">$a</a></th>\n";
$package_page .= "<td>".$versions->{$a}."</td>"
if $multiple_versions;
+ $package_page .= '<td class="size">';
+ # package size
+ $package_page .= sprintf(_g('%.1f kB'),
+ floor(($sizes_deb->{$a}/102.4)+0.5)/10);
$package_page .= '</td><td class="size">';
- $package_page .= floor(($sizes_deb->{$a}/102.4)+0.5)/10 . " kB";
- $package_page .= '</td><td class="size">';
- $package_page .= $sizes_inst->{$a} . " kB";
+ # installed size
+ $package_page .= sprintf(_g('%d kB'),
+ $sizes_inst->{$a});
$package_page .= "</td>\n<td>";
- if ( $suite ne "experimental" ) {
+ if ( ($suite ne "experimental")
+ && ($subsection ne 'debian-installer')) {
$package_page .= sprintf( "[<a href=\"%s\">"._g( "list of files" )."</a>]\n",
- "$ROOT/$suite/$encodedpkg/$a/filelist", $pkg );
+ make_url("$encodedpkg/$a/filelist",''), $pkg );
} else {
$package_page .= _g( "no current information" );
}
$$menu .= simple_menu( [ _g( "Distribution:" ),
_g( "Overview over this distribution" ),
- "$ROOT/",
+ make_url('/',''),
$suite ],
[ _g( "Section:" ),
_g( "All packages in this section" ),
- "$ROOT/$suite/virtual/",
+ make_url("virtual/",''),
'virtual' ], );
} # 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;
$archive = $page->get_newest( 'archive' );
$section = $page->get_newest( 'section' );
$$menu .= simple_menu( [ _g( "Distribution:" ),
_g( "Overview over this suite" ),
- "/$suite/",
+ make_url('/',''),
$suite ],
[ _g( "Section:" ),
_g( "All packages in this section" ),
- "/$suite/$subsection/",
+ make_url("$subsection/",''),
$subsection ],
);
if ( $dep_list ) {
$package_page .= "<div id=\"pdeps\">\n";
$package_page .= sprintf( "<h2>"._g( "Other Packages Related to %s" )."</h2>\n", $pkg );
- if ($suite eq "experimental") {
- note( sprintf( _g( 'Note that the <strong>experimental</strong> distribution is not self-contained; missing dependencies are likely found in the <a href="%s">unstable</a> distribution.' ), "$ROOT/unstable/" ) );
-
- }
$package_page .= pdeplegend( [ 'adep', _g( 'build-depends' ) ],
[ 'idep', _g( 'build-depends-indep' ) ],
foreach( @$source_files ) {
my ($src_file_md5, $src_file_size, $src_file_name)
= split /\s+/, $_;
- my $src_url;
- for ($archive) {
- /security/o && do {
- $src_url = $FTP_SITES{security}; last };
- /volatile/o && do {
- $src_url = $FTP_SITES{volatile}; last };
- /backports/o && do {
-
- $src_url = $FTP_SITES{backports}; last };
- /non-us/io && do {
- $src_url = $FTP_SITES{'non-US'}; last };
- $src_url = $FTP_SITES{us};
- }
+ (my $server = lc $archive) =~ s/-//go; # non-US hack
+ my $src_url = $FTP_SITES{$server}
+ || $FTP_SITES{us};
$src_url .= "/$source_dir/$src_file_name";
$package_page .= "<tr><td><a href=\"$src_url\">$src_file_name</a></td>\n"
}
# 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" ) :