-print "closing files ...\n";
-foreach my $s (@SUITES) {
- foreach my $a (@ARCHIVES) {
- next if $a eq 'security';
- next if $a eq 'non-US';
- my $key = ($a eq 'us') ? $s : "$s/$a";
- my $root = ($a eq 'us') ? '' : '../';
- print {$pages{$key}{fh}} '</dl>', trailer( "$root../" );
- close $pages{$key}{fh} or
- warn "can't close index file $wwwdir/$key/allpackages.en.html.new: $!";
- rename( "$wwwdir/$key/allpackages.en.html.new",
- "$wwwdir/$key/allpackages.en.html" );
- foreach my $sec (keys %{$sections->{$s}{$a}}) {
- print {$pages{$key}{$sec}{fh}} '</dl>', trailer( "$root../../" );
- close $pages{$key}{$sec}{fh} or
- warn "can't close index file $wwwdir/$key/$sec/index.en.html.new: $!";
- rename( "$wwwdir/$key/$sec/index.en.html.new",
- "$wwwdir/$key/$sec/index.en.html" );
+print "collecting source package info ...\n";
+$count = 0;
+foreach my $pkg (@SRC_PACKAGES) {
+ warn "pkg=$pkg\n" if DEBUG;
+ print "$count\n" unless ++$count % 1000;
+
+ my %pkg;
+ foreach (split /\000/o, $src_packages{$pkg}||'') {
+ my @data = split ( /\s/o, $_ );
+ $pkg{$data[1]} ||= new Packages::SrcPage( $pkg );
+ $pkg{$data[1]}->merge_package( { package => $pkg,
+ archive => $data[0],
+ suite => $data[1],
+ section => $data[2],
+ subsection => $data[3],
+ priority => $data[4],
+ version => $data[5],
+ } );
+ }
+
+ while (my ($suite, $entry) = each %pkg) {
+ my %p = ( name => $pkg, providers => [], versions => '' );
+ $p{versions} = $entry->{version};
+ $p{subsection} = $entry->get_newest( 'subsection' );
+ $p{section} = $entry->get_newest( 'section' );
+ $p{archive} = $entry->get_newest( 'archive' );
+ $p{priority} = $entry->get_newest( 'priority' );
+
+ $p{desc} = '';
+ $p{binaries} = [];
+# my $binaries = find_binaries( $pkg, $p{archive}, $p{suite}, \%src2bin );
+# if ($binaries && @$binaries) {
+# pkg_list( \%packages, $opts, $binaries, 'en', $contents{binaries} );
+# }
+
+ my $html = my $txt = "";
+ warn "\tversions=$p{versions}\n" if DEBUG;
+
+ $html .= "\n<dt><a href='$p{name}' id='$p{name}'>$p{name}</a> ($p{versions})";
+ $html .= " [<strong class='pmarker'>$p{section}</strong>]"
+ if $p{section} ne 'main';
+ $html .= " [<strong class='pmarker'>$p{archive}</strong>]"
+ if $p{archive} ne 'us';
+ $html .= "</dt>";
+
+ $txt .= "\n$p{name} ($p{versions})";
+ $txt .= " [$p{section}]" if $p{section} ne 'main';
+ $txt .= " [$p{archive}]" if $p{archive} ne 'us';
+
+ warn "HTML=$html\n" if DEBUG > 1;
+ warn "TXT=$txt\n" if DEBUG > 1;
+
+ print {$fh{"source/$suite"}} $html;
+ $fh{"source/$suite/en/txt"}->gzwrite($txt);
+ foreach my $key (qw(section subsection priority)) {
+ next unless $fh{"source/$suite/$p{$key}"};
+ warn "\t\tsource/$suite/$p{$key}\n" if DEBUG;
+ print {$fh{"source/$suite/$p{$key}"}} $html;