diff options
Diffstat (limited to 'URPM/Resolve.pm')
-rw-r--r-- | URPM/Resolve.pm | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm index d8eca12..f47b562 100644 --- a/URPM/Resolve.pm +++ b/URPM/Resolve.pm @@ -1018,6 +1018,18 @@ sub _handle_diff_provides { unsatisfied_requires($urpm, $db, $state, $_, name => $n) == 0 } @packages; + if (!@packages) { + @packages = packages_obsoleting($urpm, $p->name); + @packages = grep { + !$_->flag_skip + && $_->is_arch_compat + && !exists $state->{rejected}->{$_->fullname} + && $_->obsoletes_overlap($p->name . " == " . $p->epoch . ":" . $p->version . "-" . $p->release) + && $_->fullname ne $p->fullname && + unsatisfied_requires($urpm, $db, $state, $_, name => $n) == 0; + } @packages; + } + if (@packages) { my $best = join('|', map { $_->id } @packages); $urpm->{debug_URPM}("promoting " . $urpm->{depslist}[$best]->fullname . " because of conflict above") if $urpm->{debug_URPM}; |