aboutsummaryrefslogtreecommitdiffstats
path: root/URPM/Resolve.pm
diff options
context:
space:
mode:
Diffstat (limited to 'URPM/Resolve.pm')
-rw-r--r--URPM/Resolve.pm14
1 files changed, 14 insertions, 0 deletions
diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm
index 6c1400a..8aafd9e 100644
--- a/URPM/Resolve.pm
+++ b/URPM/Resolve.pm
@@ -317,6 +317,20 @@ sub resolve_requested {
}
}
}
+
+ #- examine if an existing package does not conflicts with this one.
+ $db->traverse_tag('whatconflicts', [ $pkg->name ], sub {
+ my ($p) = @_;
+ foreach my $property ($p->conflicts) {
+ if (grep { ranges_overlap($_, $property) } $pkg->provides) {
+ $state->{conflicts}{$p->fullname}{$pkg->id} = undef;
+ #- all these packages should be removed.
+ $options{keep_state} or
+ $urpm->resolve_closure_ask_remove($db, $state, $p,
+ { conflicts => $property, pkg => $pkg });
+ }
+ }
+ });
}
if ($options{keep_state}) {