aboutsummaryrefslogtreecommitdiffstats
path: root/URPM/Resolve.pm
diff options
context:
space:
mode:
Diffstat (limited to 'URPM/Resolve.pm')
-rw-r--r--URPM/Resolve.pm17
1 files changed, 12 insertions, 5 deletions
diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm
index cb458a4..7aeb0d1 100644
--- a/URPM/Resolve.pm
+++ b/URPM/Resolve.pm
@@ -714,11 +714,18 @@ sub resolve_requested {
push @keep, scalar $p->fullname;
} else {
#- no package has been found, we need to remove the package examined.
- delete $state->{rejected}{$p->fullname}; #- force resolution (#12696, maybe #11885)
- $urpm->resolve_rejected($db, $state, $p,
- removed => 1, unsatisfied => \@properties,
- from => scalar $pkg->fullname,
- why => { conflicts => scalar $pkg->fullname });
+ my $obsoleted;
+ #- force resolution (#12696, maybe #11885)
+ if (my $prev = delete $state->{rejected}{$p->fullname}) {
+ $obsoleted = $prev->{obsoleted};
+ }
+ $urpm->resolve_rejected(
+ $db, $state, $p,
+ ($obsoleted ? 'obsoleted' : 'removed') => 1,
+ unsatisfied => \@properties,
+ from => scalar $pkg->fullname,
+ why => { conflicts => scalar $pkg->fullname },
+ );
}
}
}