]> git.donarmstrong.com Git - debbugs.git/blobdiff - examples/debian/versions/build-versions-db
switch back to using viscomponent because $component is read-only
[debbugs.git] / examples / debian / versions / build-versions-db
index 8456bfe501fcdc308687f5ee3a95db0eb6e5e311..70b7b927045bfe53379ffee328fece60d3bda500 100755 (executable)
@@ -106,7 +106,6 @@ my $time = time;
 my %db;
 my %db2;
 if ($options{update}) {
-    copy($versions,$versions_new);
     copy($versions_time,$versions_time_new);
 }
 tie %db, "MLDBM", $versions_new, O_CREAT|O_RDWR, 0664
@@ -129,10 +128,14 @@ sub open_compressed_file {
        $mode = '-|:encoding(UTF-8)';
        push @opts,'gzip','-dc';
     }
-    if ($file =~ /^\.xz$/) {
+    if ($file =~ /\.xz$/) {
        $mode = '-|:encoding(UTF-8)';
        push @opts,'xz','-dc';
     }
+    if ($file =~ /\.bz2$/) {
+       $mode = '-|:encoding(UTF-8)';
+       push @opts,'bzip2','-dc';
+    }
     open($fh,$mode,@opts,$file);
     return $fh;
 }
@@ -158,6 +161,8 @@ sub read_packages {
        update_package_version($db,$db2,$dist,$arch,$pkg,$ver,$time) unless
            $extra_source_only;
     }
+    close($PACKAGES) or
+       die "Error while closing ${packages}: $!";
 }
 
 
@@ -182,18 +187,27 @@ for my $suite (@{$suites}) {
     my $suitedir = "$toplevel/$suite";
 
     for my $component ('main', 'main/debian-installer',
-                      'contrib', 'non-free') {
+                      'contrib', 'contrib/debian-installer',
+                      'non-free', 'non-free/debian-installer',
+                     ) {
        my $componentdir = "$suitedir/$component";
-       next unless -d $componentdir;
+       if (not -d $componentdir) {
+           print STDERR "No directory $suitedir/$component\n" if $DEBUG;
+           next;
+       }
        my $COMPONENT;
        opendir $COMPONENT, $componentdir or die "opendir $componentdir: $!";
 
        # debian-installer is really a section rather than a component
        # (ugh).
-       (my $viscomponent = $component) =~ s[/.*][];
+       my $viscomponent = $component;
+       $viscomponent =~ s[/.*][];
 
-       my $sources = (grep { -f $_ } glob "$suitedir/$component/source/Sources.*")[0];
-       next unless defined $sources;
+       my $sources = (grep { -f $_ } glob "$componentdir/source/Sources.*")[0];
+       if (not defined $sources) {
+           print STDERR "No sources matching $componentdir/source/Sources.*\n" if $DEBUG;
+           next;
+       }
        read_packages($db,$db2,$sources, $viscomponent,'source',$suite);
 
        for my $arch (readdir $COMPONENT) {
@@ -201,11 +215,15 @@ for my $suite (@{$suites}) {
            my $archdir = "$componentdir/binary-$arch";
 
            my $packages = (grep { -f $_ } glob("$archdir/Packages.*"))[0];
-           next unless defined $packages;
+           if (not defined $packages) {
+               print STDERR "No binary packages matching $archdir/Packages.*\n" if $DEBUG;
+               next;
+           }
            read_packages($db,$db2,$packages, $viscomponent,$arch,$suite);
        }
 
-       closedir $COMPONENT;
+       closedir $COMPONENT or
+           die "Unable to closedir $componentdir: $!";
     }
 }
 }