X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=lib%2FPackages%2FHTML.pm;h=6a6baf6c9e4055241d577ae97b97801cf5cce21b;hb=3f085acbf01251255c4f6e4786b0439ff424d979;hp=1de010d4beea3b9c951098699343cdd4f867dd7c;hpb=11fc9730f6aeb68430f61940b69b171d519dd4ad;p=deb%2Fpackages.git
diff --git a/lib/Packages/HTML.pm b/lib/Packages/HTML.pm
index 1de010d..6a6baf6 100644
--- a/lib/Packages/HTML.pm
+++ b/lib/Packages/HTML.pm
@@ -8,7 +8,7 @@ use URI::Escape;
use HTML::Entities;
use Locale::gettext;
-use Packages::CGI ();
+use Packages::CGI qw(make_url make_search_url);
use Packages::Search qw( read_entry_simple );
use Packages::Config qw( :all );
@@ -82,12 +82,14 @@ sub pkg_list {
my $suite = $opts->{suite}[0];
my $str = "";
- foreach my $p ( @$pkgs ) {
+ foreach my $p ( sort @$pkgs ) {
+ # we don't deal with virtual packages here because for the
+ # current uses of this function this isn't needed
my $short_desc = (read_entry_simple( $packages, $p, $opts->{h_archives}, $suite))->[-1];
if ( $short_desc ) {
- $str .= "
$p\n".
+ $str .= "undef})."\">$p\n".
"\t$short_desc\n";
} else {
$str .= "$p\n\t"._g("Not available")."\n";
@@ -125,11 +127,8 @@ sub pmoreinfo {
my $src_dir = $page->get_src('directory');
if ($info{sourcedownload}) {
my $files = $page->get_src( 'files' );
- my $path = (@{$opts->{archive}} >1) ?
- $suite :
- "$suite/$opts->{archive}[0]";
$str .= _g( "Source Package:" );
- $str .= " $source, ".
+ $str .= " 'source'})."\">$source, ".
_g( "Download" ).":\n";
unless (defined($files) and @$files) {
@@ -137,17 +136,10 @@ sub pmoreinfo {
} else {
foreach( @$files ) {
my ($src_file_md5, $src_file_size, $src_file_name) = split /\s/o, $_;
- for ($page->get_newest('archive')) {
- /security/o && do {
- $str .= "{security}/$src_dir/$src_file_name\">["; last };
- /volatile/o && do {
- $str .= "{volatile}/$src_dir/$src_file_name\">["; last };
- /backports/o && do {
- $str .= "{backports}/$src_dir/$src_file_name\">["; last };
- /non-us/io && do {
- $str .= "{nonus_site}/$src_dir/$src_file_name\">["; last };
- $str .= "{us}/$src_dir/$src_file_name\">[";
- }
+ # non-US hack
+ (my $server = lc $page->get_newest('archive')) =~ s/-//go;
+ $str .= sprintf("[",
+ $env->{$server}||$env->{us});
if ($src_file_name =~ /dsc$/) {
$str .= "dsc";
} else {
@@ -216,13 +208,11 @@ sub pmoreinfo {
}
sub dep_item {
- my ( $link, $name, $info, $desc ) = @_;
- my $post_link = '';
- if ($link) {
- $link = "";
+ my ( $suite, $name, $info, $desc ) = @_;
+ my ($link, $post_link) = ('', '');
+ if ($suite) {
+ $link = "$suite})."\">";
$post_link = '';
- } else {
- $link = '';
}
if ($info) {
$info = " $info";
@@ -239,13 +229,15 @@ sub dep_item {
} # end dep_item
sub provides_string {
- my ($path, $entry) = @_;
- my @provided_by = split /\s/, $entry;
- my $short_desc = "virtual package provided by ";
+ my ($suite, $entry, $also) = @_;
+ my %tmp = map { $_ => 1 } split /\s/, $entry;
+ my @provided_by = keys %tmp; # weed out duplicates
+ my $short_desc = $also ? _g("also a virtual package provided by ")
+ : _g("virtual package provided by ");
if (@provided_by < 10) {
- $short_desc .= join( ', ',map { "$_" } @provided_by);
+ $short_desc .= join( ', ',map { "$suite})."\">$_" } @provided_by);
} else {
- $short_desc .= scalar(@provided_by)." packages";
+ $short_desc .= sprintf( _g("%s packages"), scalar(@provided_by));
}
return $short_desc;
}
@@ -299,23 +291,26 @@ sub print_deps {
my $short_desc = $entry->[-1];
my $arch = $entry->[3];
my $archive = $entry->[1];
+ my $p_suite = $entry->[2];
if ( $short_desc ) {
- my $path = $suite;
if ( $is_old_pkgs ) {
- push @res_pkgs, dep_item( "$ROOT/$path/$p_name",
+ push @res_pkgs, dep_item( $p_suite,
$p_name, "$pkg_version$arch_str" );
} elsif (defined $entry->[1]) {
$entries{$p_name} ||= $entry;
$short_desc = encode_entities( $short_desc, "<>&\"" );
- $short_desc .= "
Also, a ".provides_string( "$ROOT/$path",
- $entry->[0] )
+ $short_desc .= "
".provides_string( $p_suite,
+ $entry->[0],
+ 1 )
if defined $entry->[0];
- push @res_pkgs, dep_item( "$ROOT/$path/$p_name",
+ push @res_pkgs, dep_item( $p_suite,
$p_name, "$pkg_version$arch_str", $short_desc );
} elsif (defined $entry->[0]) {
- $short_desc = provides_string( "$ROOT/$path",
+ $short_desc = provides_string( $p_suite,
$entry->[0] );
- push @res_pkgs, dep_item( "$ROOT/$path/$p_name",
+ #FIXME: we don't handle virtual packages from
+ # the fallback suite correctly here
+ push @res_pkgs, dep_item( $suite,
$p_name, "$pkg_version$arch_str", $short_desc );
}
} elsif ( $is_old_pkgs ) {