]> git.deb.at Git - deb/packages.git/blobdiff - bin/parse-contents
Merge commit 'alioth/master' into ubuntu-master
[deb/packages.git] / bin / parse-contents
index f7fa9a44d3419166435ccb96d8e7311226812080..26f715108530bc1e4ea80e123c018bddc6287a37 100755 (executable)
@@ -38,6 +38,7 @@ use English;
 use DB_File;
 use Storable;
 use File::Path;
+use File::Basename;
 use Packages::CommonCode qw(:all);
 use Packages::Config qw( $TOPDIR $DBDIR @ARCHIVES @SUITES @ARCHITECTURES );
 &Packages::Config::init( './' );
@@ -84,9 +85,11 @@ for my $suite (@suites) {
 
                open CONT, "zcat $filename|$what"
                    or die $!;
-               while (<CONT>) { last if /^FILE/mo; }
-               if (eof(CONT)) { # no header found
+               my $header_found = 0;
+               while (<CONT>) { /^FILE/mo && do { $header_found = 1; last };}
+               if (eof(CONT)) { # no header found or only header found
                    close CONT; # explicit close to reset $.
+                   next if $header_found;
                    open CONT, "zcat $filename|$what";
                }
                while (<CONT>) {
@@ -141,8 +144,8 @@ for my $suite (@suites) {
 
            activate($filelist_db);
            #FIXME: hardcoded archs. (debports has no contrib/non-free)
-           if ($arch !~ m/^kfreebsd-.*$/) {
-               system("ln", "-sf", $filelist_db,
+           if ($arch ne 'm68k') {
+               system("ln", "-sf", basename($filelist_db),
                       "$DBDIR/filelists_${suite}_all.db") == 0
                           or die "Oops";
            }