]> git.donarmstrong.com Git - debbugs.git/blobdiff - examples/debian/versions/build-mldbm.pl
ignore Extra-Source-Only: yes packages and make sure the last entry gets inserted
[debbugs.git] / examples / debian / versions / build-mldbm.pl
index f8bc3c2eca580e319b74a57ba92c73a5fe3b3c4b..4b4d3594b26d336d1797015554cac8b19185ac4b 100755 (executable)
@@ -19,17 +19,34 @@ print "$archive/$dist/$arch\n";
 
 my $time = time;
 my ($p, $v);
+my $extra_source_only = 0;
 while (<>) {
     if (/^Package: (.*)/)    { $p = $1; }
     elsif (/^Version: (.*)/) { $v = $1; }
+    elsif (/^Extra-Source-Only: yes/) {
+        $extra_source_only = 1;
+    }
     elsif (/^$/) {
+        if ($extra_source_only) {
+            $extra_source_only = 0;
+            next;
+        }
+        update_package_version($p,$v,$time);
+    }
+}
+update_package_version($p,$v,$time) unless $extra_source_only;
+
+sub update_package_version {
+    my ($p,$v,$t) = @_;
        # see MLDBM(3pm)/BUGS
        my $tmp = $db{$p};
-       $tmp->{$dist}{$arch} = $v;
+       # we allow multiple versions in an architecture now; this
+       # should really only happen in the case of source, however.
+       push @{$tmp->{$dist}{$arch}}, $v;
        $db{$p} = $tmp;
        $tmp = $db2{$p};
        $tmp->{$dist}{$arch}{$v} = $time if not exists
             $tmp->{$dist}{$arch}{$v};
        $db2{$p} = $tmp;
-    }
 }
+