]> git.deb.at Git - deb/packages.git/blobdiff - cgi-bin/show_package.pl
Begin implementing virtual package support.
[deb/packages.git] / cgi-bin / show_package.pl
index 445195d37e55192f280e3a52b43be6f2ce11266f..2ec4616d548512a01d733b6352673ffaf6364ffc 100755 (executable)
@@ -154,13 +154,17 @@ unless (@Packages::CGI::fatal_errors) {
                for my $entry (@results) {
                    debug( join(":", @$entry), 1 );
                    my (undef, $archive, undef, $arch, $section, $subsection,
-                       $priority, $version) = @$entry;
+                       $priority, $version, @provided_by) = @$entry;
                    
-                   my %data = split /\000/, $packages_all{"$pkg $arch $version"};
-                   $data{package} = $pkg;
-                   $data{architecture} = $arch;
-                   $data{version} = $version;
-                   $page->merge_package(\%data) or debug( "Merging $pkg $arch $version FAILED", 2 );
+                   if ($arch ne 'virtual') {
+                       my %data = split /\000/, $packages_all{"$pkg $arch $version"};
+                       $data{package} = $pkg;
+                       $data{architecture} = $arch;
+                       $data{version} = $version;
+                       $page->merge_package(\%data) or debug( "Merging $pkg $arch $version FAILED", 2 );
+                   } else {
+                       $page->add_provided_by(\@provided_by);
+                   }
                }
 
                $version = $page->{newest};
@@ -225,11 +229,11 @@ unless (@Packages::CGI::fatal_errors) {
 
                $package_page .= simple_menu( [ gettext( "Distribution:" ),
                                                gettext( "Overview over this suite" ),
-                                               "/$suite/",
+                                               "$ROOT/$suite/",
                                                $suite ],
                                              [ gettext( "Section:" ),
                                                gettext( "All packages in this section" ),
-                                               "/$suite/$subsection/",
+                                               "$ROOT/$suite/$subsection/",
                                                $subsection ],
                                              );
 
@@ -298,35 +302,22 @@ unless (@Packages::CGI::fatal_errors) {
                $package_page .= "<th>".gettext("Architecture")."</th><th>".gettext("Files")."</th><th>".gettext( "Package Size")."</th><th>".gettext("Installed Size")."</th></tr>\n";
                foreach my $a ( @archs ) {
                    $package_page .= "<tr>\n";
-                   $package_page .=  "<th><a href=\"$DL_URL?arch=$a";
-                   $package_page .=  "&amp;file=".uri_escape($filenames->{$a});
-                   $package_page .=  "&amp;md5sum=$file_md5sums->{$a}";
-                   $package_page .=  "&amp;arch=$a";
-                   for ($archives->{$a}) {
-                       /security/o &&  do {
-                           $package_page .=  "&amp;type=security"; last };
-                       /volatile/o &&  do {
-                           $package_page .=  "&amp;type=volatile"; last };
-                       /backports/o &&  do {
-                           $package_page .=  "&amp;type=backports"; last };
-                       /non-us/io  &&  do {
-                           $package_page .=  "&amp;type=nonus"; last };
-                       $package_page .=  "&amp;type=main";
-                   }
+                   $package_page .=  "<th><a href=\"$ROOT/$suite/$encodedpkg/$a/download";
                    $package_page .=  "\">$a</a></th>\n";
                    $package_page .= "<td>";
                    if ( $suite ne "experimental" ) {
-                       $package_page .= sprintf( "[<a href=\"%s\">".gettext( "list of files" )."</a>]\n", "$FILELIST_URL$encodedpkg&amp;version=$suite&amp;arch=$a", $pkg );
+                       $package_page .= sprintf( "[<a href=\"%s\">".gettext( "list of files" )."</a>]\n",
+                           "$ROOT/$suite/$encodedpkg/$a/filelist", $pkg );
                    } else {
                        $package_page .= gettext( "no current information" );
                    }
-                   $package_page .= "</td>\n<td>";
-                   $package_page .=  floor(($sizes_deb->{$a}/102.4)+0.5)/10;
-                   $package_page .= "</td>\n<td>";
-                   $package_page .=  $sizes_inst->{$a};
+                   $package_page .= "</td>\n<td align=right>"; #FIXME: css
+                   $package_page .=  floor(($sizes_deb->{$a}/102.4)+0.5)/10 . "&nbsp;kB";
+                   $package_page .= "</td>\n<td align=right>"; #FIXME: css
+                   $package_page .=  $sizes_inst->{$a} . "&nbsp;kB";
                    $package_page .= "</td>\n</tr>";
                }
-               $package_page .= "</table><p>".gettext ( "Size is measured in kBytes." )."</p>\n";
+               $package_page .= "</table>\n";
                $package_page .= "</div> <!-- end pdownload -->\n";
                
                #
@@ -355,8 +346,8 @@ unless (@Packages::CGI::fatal_errors) {
                    my (undef, $archive, undef, $section, $subsection,
                        $priority, $version) = @$entry;
                    
-                   my $data = $sources_all{"$pkg $version"};
-                   $page->merge_data($pkg, $version, $data) or debug( "Merging $pkg $version FAILED", 2 );
+                   my $data = $sources_all{"$archive $suite $pkg"};
+                   $page->merge_data($pkg, $suite, $archive, $data) or debug( "Merging $pkg $version FAILED", 2 );
                }
                $version = $page->{version};
 
@@ -472,7 +463,8 @@ unless (@Packages::CGI::fatal_errors) {
                                          gettext("Size (in kB)"),
                                          gettext("md5sum") );
                foreach( @$source_files ) {
-                   my ($src_file_md5, $src_file_size, $src_file_name) = @$_;
+                   my ($src_file_md5, $src_file_size, $src_file_name)
+                       = split /\s+/, $_;
                    my $src_url;
                    for ($archive) {
                        /security/o &&  do {
@@ -508,8 +500,8 @@ unless (@Packages::CGI::fatal_errors) {
     }
 }
 
-#use Data::Dumper;
-#debug( "Final page object:\n".Dumper($page), 3 );
+use Data::Dumper;
+debug( "Final page object:\n".Dumper($page), 3 );
 
 my $title = $opts{source} ?
     "Details of source package <em>$pkg</em> in $suite"  :