[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