[Pkg-ocaml-maint-commits] [SCM] dh-ocaml packaging branch, master, updated. debian/0.5.0-17-gfce4e39

Sylvain Le Gall gildor at debian.org
Tue Jul 21 14:42:34 UTC 2009


The following commit has been merged in the master branch:
commit ce2fbcc704911c68bdb39dad1187e95c16bb9bf0
Author: Sylvain Le Gall <gildor at debian.org>
Date:   Mon Jul 20 12:59:54 2009 +0200

    Warn if double or unsolved dependency in ocaml-md5sums.

diff --git a/ocaml-md5sums/ocaml-md5sums b/ocaml-md5sums/ocaml-md5sums
index 74c55fc..9a79f27 100755
--- a/ocaml-md5sums/ocaml-md5sums
+++ b/ocaml-md5sums/ocaml-md5sums
@@ -35,6 +35,8 @@ sub new
   $self->{version} = defined $version ? $version : "-";
   $self->{"defined"} = ();
   $self->{imported} = ();
+  $self->{depends} = ();
+  $self->{file} = ();
 
   bless $self, $class;
   return $self;
@@ -46,7 +48,7 @@ sub add_unit
   my $key = "$md5+$unit_name";
   main::debug "Adding unit $unit_name to $symbol_table" 
     unless exists $self->{$symbol_table}{$key};
-  $self->{$symbol_table}{$key} = 1;
+  $self->{$symbol_table}{$key} = "none";
 };
 
 sub get_unit
@@ -144,6 +146,7 @@ sub read_dump
   };
   close(FH) || die "Cannot close file $file";
   $self->squeeze_imported();
+  $self->{file} = $file;
 };
 
 sub write_dump
@@ -222,26 +225,78 @@ sub load
   };
   close(FH);
   $self->squeeze_imported();
+  $self->{file} = $file;
+};
+
+# String representation 
+sub to_string 
+{
+  my ($self) = @_;
+  if (defined($self->{file}))
+  {
+    return $self->{file};
+  }
+  else
+  {
+    return 
+      $self->{dev}.
+      ($self->{runtime} ne "-" ? "/".$self->{runtime} : "").
+      ($self->{version} ne "-" ? " v".$self->{version} : "");
+  }
 };
 
 # Check that self depends on another package
-sub depends_on
+sub add_depends
 {
   my ($self, $other) = @_;
 
+  my $already_depends = 0;
   foreach (keys(%{$self->{imported}}))
   {
-    return 1 if (exists $other->{"defined"}{$_});
+    if (exists $other->{"defined"}{$_})
+    {
+      if (!$already_depends)
+      {
+        push(@{$self->{depends}}, $other);
+      };
+      $already_depends = 1;
+      if ($self->{imported}{$_} ne "none")
+      {
+        my ($unit_name,$md5) = $self->get_unit("imported", $_);
+        warn "Unit $unit_name already defined in ".
+             $self->{imported}{$_}.
+             " and defined again in ".
+             $other->to_string().
+             "\n";
+      }
+      else
+      {
+        $self->{imported}{$_} = $other->to_string();
+      };
+    };
   };
 
   return 0;
 };
 
-sub print_dep 
+sub print_depends
 {
   my ($self) = @_;
 
-  print "$self->{dev} $self->{runtime} $self->{version}\n";
+  print "$_->{dev} $_->{runtime} $_->{version}\n"
+    foreach (@{$self->{depends}}); 
+
+  foreach (keys(%{$self->{imported}}))
+  {
+    if ($self->{imported}{$_} eq "none")
+    {
+      my ($unit_name) = $self->get_unit("imported", $_);
+      warn $self->to_string().
+           " doesn't resolve dependency on unit ".
+           $unit_name.
+           "\n";
+    };
+  };
 };
 
 use Digest::MD5 qw/md5_hex/;
@@ -358,13 +413,10 @@ if ($action eq "compute" || $action eq "dep")
       {
         my $other_md5sums = OCamlMD5Sums::File->new();
         $other_md5sums->load($_);
-        if ($md5sums->depends_on($other_md5sums))
-        {
-          info "Depends on $_";
-          $other_md5sums->print_dep ();
-        };
+        $md5sums->add_depends($other_md5sums);
       };
     };
+    $md5sums->print_depends ();
   }
 
   if (defined($dump_provides))

-- 
dh-ocaml packaging



More information about the Pkg-ocaml-maint-commits mailing list