From c6ed46cf5665980efe6f3672833a8b60dd9a8baf Mon Sep 17 00:00:00 2001 From: Francois Pons Date: Thu, 13 Jun 2002 17:56:39 +0000 Subject: 0.04-4mdk --- URPM/Resolve.pm | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'URPM') diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm index 9b78d58..a7e7f25 100644 --- a/URPM/Resolve.pm +++ b/URPM/Resolve.pm @@ -354,16 +354,20 @@ sub resolve_packages_to_upgrade { #- check provides of existing package to see if a obsolete #- may allow selecting it. - foreach ($p->provides) { - if (my ($n) = /^([^\s\[]*)/) { - foreach my $pkg (@{$obsoletes{$n} || []}) { - next if $pkg->name eq $p->name; - foreach my $property ($pkg->obsoletes) { - if (ranges_overlap($property, $_)) { - #- the package being examined can be obsoleted. - #- do not set installed and provides flags. - $state->{requested}{$pkg->id} = $options{requested}; - return; + foreach my $property ($p->provides) { + #- only real provides should be taken into account, this means internal obsoletes + #- should be avoided. + unless (grep { ranges_overlap($property, $_) } $p->obsoletes) { + if (my ($n) = $property =~ /^([^\s\[]*)/) { + foreach my $pkg (@{$obsoletes{$n} || []}) { + next if $pkg->name eq $p->name; + foreach ($pkg->obsoletes) { + if (ranges_overlap($property, $_)) { + #- the package being examined can be obsoleted. + #- do not set installed and provides flags. + $state->{requested}{$pkg->id} = $options{requested}; + return; + } } } } -- cgit v1.2.1