]> 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 5e48d573dc9f83b01e6bd6017d05355ebf9f6f4b..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
@@ -162,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}: $!";
 }
 
 
@@ -186,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) {
@@ -205,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: $!";
     }
 }
 }