X-Git-Url: https://git.deb.at/?p=deb%2Fpackages.git;a=blobdiff_plain;f=lib%2FPackages%2FHTML.pm;h=826461a0e944cb035a3a074c44802fd6373116a0;hp=38bfb588eea2c7f1d678771873aa3f08e29bce70;hb=5ca21f1ba07a6b559395bec8d6bc1e528eb238d1;hpb=08852aab550de858d4e4956ea357dbc3ae713a26 diff --git a/lib/Packages/HTML.pm b/lib/Packages/HTML.pm index 38bfb58..826461a 100644 --- a/lib/Packages/HTML.pm +++ b/lib/Packages/HTML.pm @@ -7,7 +7,8 @@ use URI::Escape; use HTML::Entities; use Packages::CGI; -use Packages::Search qw( read_entry ); +use Packages::Search qw( read_entry_simple ); +use Packages::Config qw( :all ); #use Packages::Util; #use Packages::I18N::Locale; @@ -25,10 +26,6 @@ our @EXPORT = qw( header title trailer file_changed time_stamp ds_begin ds_item ds_end note title marker pdesc pdeplegend pkg_list pmoreinfo print_deps ); -our ( $HOME, $ROOT, $CONTACT_MAIL, $WEBMASTER_MAIL, - $SEARCH_PAGE, $SEARCH_CGI, $SEARCH_URL, - $SRC_SEARCH_URL, $CONTENTS_SEARCH_CGI, - $CN_HELP_URL, $BUG_URL, $SRC_BUG_URL, $QA_URL ); our $CHANGELOG_URL = '/changelogs'; sub img { @@ -82,44 +79,45 @@ sub pdeplegend { return $str; } -sub pkg_list { - my ( $pkgs, $lang, $env ) = @_; +# sub pkg_list { +# my ( $pkgs, $lang, $env ) = @_; - my $str = ""; - foreach my $p ( @$pkgs ) { - my $p_pkg = $env->{db}->get_pkg( $p ); +# my $str = ""; +# foreach my $p ( @$pkgs ) { +# my $p_pkg = $env->{db}->get_pkg( $p ); - if ( $p_pkg ) { - if ($p_pkg->is_virtual) { - $str .= "
$p
\n". - "\t
".gettext("Virtual package")."
\n"; - } else { - my %subsections = $p_pkg->get_arch_fields( 'section', - $env->{archs} ); - my $subsection = $subsections{max_unique}; - my %desc_md5s = $p_pkg->get_arch_fields( 'description-md5', - $env->{archs} ); - my $short_desc = conv_desc( $lang, - encode_entities( $env->{db}->get_short_desc( $desc_md5s{max_unique}, $lang ), "<>&\"" ) ); - $str .= "
$p
\n". - "\t
$short_desc
\n"; - } - } else { - $str .= "
$p
\n\t
".gettext("Not available")."
\n"; - } - } - if ($str) { - $str = "
$str
\n"; - } +# if ( $p_pkg ) { +# if ($p_pkg->is_virtual) { +# $str .= "
$p
\n". +# "\t
".gettext("Virtual package")."
\n"; +# } else { +# my %subsections = $p_pkg->get_arch_fields( 'section', +# $env->{archs} ); +# my $subsection = $subsections{max_unique}; +# my %desc_md5s = $p_pkg->get_arch_fields( 'description-md5', +# $env->{archs} ); +# my $short_desc = conv_desc( $lang, +# encode_entities( $env->{db}->get_short_desc( $desc_md5s{max_unique}, $lang ), "<>&\"" ) ); +# $str .= "
$p
\n". +# "\t
$short_desc
\n"; +# } +# } else { +# $str .= "
$p
\n\t
".gettext("Not available")."
\n"; +# } +# } +# if ($str) { +# $str = "
$str
\n"; +# } - return $str; -} +# return $str; +# } sub pmoreinfo { my %info = @_; my $name = $info{name} or return; -# my $env = $info{env} or return; + my $env = $info{env} or return; + my $opts = $info{opts} or return; my $page = $info{data} or return; my $is_source = $info{is_source}; @@ -135,10 +133,15 @@ sub pmoreinfo { } my $source = $page->get_src( 'name' ); + my $source_version = $page->get_src( 'version' ); + my $src_dir = $page->get_src('directory'); if ($info{sourcedownload}) { my $files = $page->get_src( 'files' ); + my $path = (@{$opts->{archive}} >1) ? + $opts->{suite} : + "$opts->{suite}/$opts->{archive}[0]"; $str .= gettext( "Source Package:" ); - $str .= " $source, ". + $str .= " $source, ". gettext( "Download" ).":\n"; unless (@$files) { @@ -146,15 +149,15 @@ sub pmoreinfo { } else { foreach( @$files ) { my ($src_file_md5, $src_file_size, $src_file_name) = @$_; -# if ($d->{is_security}) { -# $str .= "{opts}{security_site}/$d->{src_directory}/$src_file_name\">["; -# } elsif ($d->{is_volatile}) { -# $str .= "{opts}{volatile_site}/$d->{src_directory}/$src_file_name\">["; -# } elsif ($d->{is_nonus}) { -# $str .= "{opts}{nonus_site}/$d->{src_directory}/$src_file_name\">["; -# } else { -# $str .= "{opts}{debian_site}/$d->{src_directory}/$src_file_name\">["; -# } + 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 }; + /non-us/io && do { + $str .= "{nonus_site}/$src_dir/$src_file_name\">["; last }; + $str .= "{us}/$src_dir/$src_file_name\">["; + } if ($src_file_name =~ /dsc$/) { $str .= "dsc"; } else { @@ -167,22 +170,21 @@ sub pmoreinfo { # if ($src_version ne $version) && !$src_version_given_in_control; } -# if ($info{changesandcopy}) { -# if ( $d->{src_directory} ) { -# my $src_dir = $d->{src_directory}; -# (my $src_basename = $d->{src_version}) =~ s,^\d+:,,; # strip epoche -# $src_basename = "$d->{src_name}_$src_basename"; -# $src_dir =~ s,pool/updates,pool,o; -# $src_dir =~ s,pool/non-US,pool,o; -# $str .= "
".sprintf( gettext( "View the
Debian changelog" ), -# "$CHANGELOG_URL/$src_dir/$src_basename/changelog" )."
\n"; -# my $copyright_url = "$CHANGELOG_URL/$src_dir/$src_basename/"; -# $copyright_url .= ( $is_source ? 'copyright' : "$name.copyright" ); - -# $str .= sprintf( gettext( "View the copyright file" ), -# $copyright_url )."

"; -# } -# } + if ($info{changesandcopy}) { + if ( $src_dir ) { + (my $src_basename = $source_version) =~ s,^\d+:,,; # strip epoche + $src_basename = "${source}_$src_basename"; + $src_dir =~ s,pool/updates,pool,o; + $src_dir =~ s,pool/non-US,pool,o; + $str .= "
".sprintf( gettext( "View the Debian changelog" ), + "$CHANGELOG_URL/$src_dir/$src_basename/changelog" )."
\n"; + my $copyright_url = "$CHANGELOG_URL/$src_dir/$src_basename/"; + $copyright_url .= ( $is_source ? 'copyright' : "$name.copyright" ); + + $str .= sprintf( gettext( "View the copyright file" ), + $copyright_url )."

"; + } + } if ($info{maintainers}) { my @uploaders = @{$page->get_src( 'uploaders' )}; @@ -284,13 +286,16 @@ sub print_deps { $pkg_version = "($pkg_version)" if $pkg_version; my @results; - read_entry( $packages, $p_name, \@results, $opts); - if ( @results ) { + my %short_descs; + my $short_desc = $short_descs{$p_name} || + (read_entry_simple( $packages, $p_name, $opts->{h_archives}, $opts->{suite}))->[-1]; + if ( $short_desc ) { if ( $is_old_pkgs ) { push @res_pkgs, dep_item( "/$opts->{suite}/$p_name", $p_name, "$pkg_version$arch_str" ); } else { - my $short_desc = encode_entities( $results[0][-1], "<>&\"" ); + $short_descs{$p_name} ||= $short_desc; + $short_desc = encode_entities( $short_desc, "<>&\"" ); push @res_pkgs, dep_item( "/$opts->{suite}/$p_name", $p_name, "$pkg_version$arch_str", $short_desc ); }