my %archives = map { $_ => 1 } qw( us security non-US );
foreach (sort keys %changes) {
- my $entry = read_entry_simple( \%packages, $_, \%archives, $suite)
- or die "Fatal Error: Can't find entry for package $_\n";
- shift @$entry; # remove virtual pkg info
+ my $entry = [];
+ if ($changes{$_} == 1) {
+ $entry = read_entry_simple( \%packages, $_, \%archives, $suite);
+ die "Fatal Error: Can't find entry for package $_\n"
+ unless @$entry;
+ shift @$entry; # remove virtual pkg info
+ }
print CHANGES join(" ", $_, $age, @$entry)."\n";
print "Wrote entry: ".join(" ", $_, $age, @$entry)."\n";
}
array => ',', var => \@archs, replace =>
{ any => \@ARCHITECTURES } },
format => { default => 'html', match => '^([\w.]+)$', },
- mode => { default => undef, match => '^(\w+)$', },
+ mode => { default => '', match => '^(\w+)$', },
sort_by => { default => 'file', match => '^(\w+)$', },
);
my %opts;
$page_content->{archive} = $archive;
$page_content->{suite} = $suite;
$page_content->{pkg} = $pkg;
- $page_content->{pkgsize} = sprintf( '%.1f', floor(($data{size}/102.4)+0.5)/10 );
- $page_content->{pkgsize_unit} = _g( 'kByte' );
- if ($page_content->{pkgsize} > 1024) {
+ my $pkgsize = floor(($data{size}/102.4)+0.5)/10;
+ if ($pkgsize < 1024) {
+ $page_content->{pkgsize} = sprintf( '%.1f', $pkgsize );
+ $page_content->{pkgsize_unit} = _g( 'kByte' );
+ } else {
$page_content->{pkgsize} = sprintf( '%.1f', floor(($data{size}/(102.4*102.4))+0.5)/100 );
$page_content->{pkgsize_unit} = _g( 'MByte' );
}
fatal_error( _g( "No such package in this suite on this architecture." ) );
} else {
my @files = unpack "L/(CC/a)", $contents{$pkg};
- my $file;
+ my $file = '';
$page_content->{files} = [];
for (my $i=0; $i<scalar @files;) {
my $sort_func = sub { $_[0][0] cmp $_[1][0] };
$sort_func = sub { $_[0][1] <=> $_[1][1] or $_[0][0] cmp $_[1][0] }
- if $opts->{mode} eq 'byage';
+ if $opts->{mode} eq 'byage';
my $suite = $opts->{suite}[0];
my $one_archive = @{$opts->{archive}} == 1 ?
chomp;
my @data = split /\s/, $_, 10;
+ next unless $data[2]; #removed packages
next unless $data[3] eq $suite;
next if $one_archive and $data[2] ne $one_archive;
next if $one_section and $data[5] ne $one_section;
my $did = $page->get_newest( 'description' );
my $desc_md5 = $page->get_newest( 'description-md5' );
- my @complete_tags = split(/, /, $page->get_newest( 'tag' ));
+ my @complete_tags = split(/, /, $page->get_newest( 'tag' )||'' );
my @tags;
foreach (@complete_tags) {
my ($facet, $tag) = split( /::/, $_, 2);
}
}
- foreach (split /\000/o, $result) {
+ foreach (split(/\000/o, $result||'')) {
my @data = split ( /\s/o, $_, 8 );
debug( "Considering entry ".join( ':', @data), 2) if DEBUG;
if ($opts->{h_suites}{$data[1]}
}
sub do_xapian_search {
- my ($keywords, $db, $did2pkg, $packages, $read_entry, $opts,
+ my ($keywords, $dbpath, $did2pkg, $packages, $read_entry, $opts,
$results, $non_results) = @_;
# NOTE: this needs to correspond with parse-packages!
my $stemmer = Lingua::Stem->new();
my $stemmed_keywords = $stemmer->stem( @tmp );
- my $db = Search::Xapian::Database->new( $db );
+ my $db = Search::Xapian::Database->new( $dbpath );
my $enq = $db->enquire( OP_OR, @$keywords, @$stemmed_keywords );
debug( "Xapian Query was: ".$enq->get_query()->get_description(), 1) if DEBUG;
my @matches = $enq->matches(0, 999);
}
sub find_similar {
- my ($pkg, $db, $did2pkg) = @_;
+ my ($pkg, $dbpath, $did2pkg) = @_;
- my $db = Search::Xapian::Database->new( $db );
+ my $db = Search::Xapian::Database->new( $dbpath );
my $enq = $db->enquire( "P$pkg" );
debug( "Xapian Query was: ".$enq->get_query()->get_description(), 1) if DEBUG;
my $first_match = ($enq->matches(0,1))[0]->get_document();
my $term_it = $first_match->termlist_begin();
my $term_end = $first_match->termlist_end();
- for ($term_it; $term_it ne $term_end; $term_it++) {
+ for (; $term_it ne $term_end; $term_it++) {
debug( "TERM: ".$term_it->get_termname(), 3);
push @terms, $term_it->get_termname();
}
debug( "Xapian Query was: ".$rel_enq->get_query()->get_description(), 1) if DEBUG;
my @rel_pkg = $rel_enq->matches(2,20);
- use Data::Dumper;
- debug(Dumper(\@rel_pkg),1);
+# use Data::Dumper;
+# debug(Dumper(\@rel_pkg),1);
my (@order, %tmp_results);
foreach my $match ( @rel_pkg ) {
[% file %]
[% '</pre></div>' IF loop.last -%]
[% END %]
+
+[%- PROCESS 'html/foot.tmpl' -%]