From f80fa3b76df681f4dc2837cd2192247cfe2c0d7c Mon Sep 17 00:00:00 2001 From: Francois Pons Date: Tue, 2 May 2000 08:45:28 +0000 Subject: *** empty log message *** --- perl-install/pkgs.pm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'perl-install/pkgs.pm') diff --git a/perl-install/pkgs.pm b/perl-install/pkgs.pm index 6a36eb9aa..198df945a 100644 --- a/perl-install/pkgs.pm +++ b/perl-install/pkgs.pm @@ -465,6 +465,9 @@ sub getDeps($) { my $f = install_any::getFile("depslist.ordered") or die "can't find dependencies list"; + #- beware of heavily mismatching depslist.ordered file against hdlist files. + my $mismatch = 0; + #- update dependencies list, provides attributes are updated later #- cross reference to be resolved on id (think of loop requires) #- provides should be updated after base flag has been set to save @@ -473,9 +476,11 @@ sub getDeps($) { my ($name, $version, $release, $sizeDeps) = /^(\S*)-([^-\s]+)-([^-\s]+)\s+(.*)/; my $pkg = $packages->[0]{$name}; - $pkg or log::l("ignoring package $name-$version-$release in depslist is not in hdlist"), next; - $version eq packageVersion($pkg) and $release eq packageRelease($pkg) - or log::l("ignoring package $name-$version-$release in depslist mismatch version or release in hdlist"), next; + $pkg or + log::l("ignoring $name-$version-$release in depslist is not in hdlist"), $mismatch = 1, next; + $version eq packageVersion($pkg) and $release eq packageRelease($pkg) or + log::l("ignoring $name-$version-$release in depslist mismatch version or release in hdlist"), $mismatch = 1, next; + $pkg->{sizeDeps} = $sizeDeps; #- check position of package in depslist according to precomputed @@ -483,12 +488,15 @@ sub getDeps($) { #- above warning have chance to raise an exception here, but may help #- for debugging. my $i = scalar @{$packages->[1]}; - $i >= $pkg->{medium}{min} && $i <= $pkg->{medium}{max} or die "depslist.ordered mismatch against hdlist files"; + $i >= $pkg->{medium}{min} && $i <= $pkg->{medium}{max} or $mismatch = 1; #- package are already sorted in depslist to enable small transaction and multiple medium. push @{$packages->[1]}, $pkg; } + #- check for mismatching package, it should breaj with above die unless depslist has too many errors! + $mismatch and die "depslist.ordered mismatch against hdlist files"; + #- check for same number of package in depslist and hdlists. scalar(keys %{$packages->[0]}) == scalar(@{$packages->[1]}) or die "depslist.ordered has not same package as hdlist files"; } -- cgit v1.2.1