From 0d6014e1742bcf140771e71cc2c2138addf38533 Mon Sep 17 00:00:00 2001 From: Francois Pons Date: Thu, 29 Aug 2002 15:48:28 +0000 Subject: 0.70-5mdk --- URPM/Resolve.pm | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'URPM/Resolve.pm') diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm index 2cb1791..ad92f44 100644 --- a/URPM/Resolve.pm +++ b/URPM/Resolve.pm @@ -333,10 +333,21 @@ sub resolve_requested { if ($best) { push @properties, $best; } else { - #- no package have been found, we need to remove the package examined. - $options{keep_state} or - $urpm->resolve_closure_ask_remove($db, $state, $p, - { unsatisfied => \@l, id => $pkg->id }); + #- no package have been found, we may need to remove the package examined unless + #- there exists a package that provided the unsatisfied requires. + my @best; + foreach (@l) { + $packages = $urpm->find_candidate_packages($_); + push @best, join('|', map { $_->id } map { @{$_ || []} } values %$packages); + } + + if (@best == @l) { + push @properties, @best; + } else { + $options{keep_state} or + $urpm->resolve_closure_ask_remove($db, $state, $p, + { unsatisfied => \@l, id => $pkg->id }); + } } } }); -- cgit v1.2.1