diff options
author | Christophe Fergeau <cfergeau@mandriva.com> | 2009-07-28 13:14:07 +0000 |
---|---|---|
committer | Christophe Fergeau <cfergeau@mandriva.com> | 2009-07-28 13:14:07 +0000 |
commit | a03cc8fca2f2910417d63086bc8b84081d588042 (patch) | |
tree | c0477fbdc7500bdf07d15b2b23f513f06bb98420 | |
parent | d1d666428ac197ed53d0af999ef1328c1a02c213 (diff) | |
download | perl-URPM-a03cc8fca2f2910417d63086bc8b84081d588042.tar perl-URPM-a03cc8fca2f2910417d63086bc8b84081d588042.tar.gz perl-URPM-a03cc8fca2f2910417d63086bc8b84081d588042.tar.bz2 perl-URPM-a03cc8fca2f2910417d63086bc8b84081d588042.tar.xz perl-URPM-a03cc8fca2f2910417d63086bc8b84081d588042.zip |
_handle_conflicts: check all provides for conflicts, not just package name
Patch by Anssi Hannula, fixes bug #52135
If package a has "Conflicts: x" and b has "Provides: x", installing both at the
same time creates a failing transaction (instead of producing the "cannot
install a (or b), continue?") as perl-URPM does not detect the conflict, as it
just checks the conflicts on the package name (it does the correct thing with
installed packages, though).
_handle_conflicts: call _set_rejected_from if any provides match the conflict,
instead of just package name
-rw-r--r-- | URPM/Resolve.pm | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm index 1f23552..9aa7064 100644 --- a/URPM/Resolve.pm +++ b/URPM/Resolve.pm @@ -1048,7 +1048,7 @@ sub _handle_conflicts { if (my ($n, $o, $v) = property2name_op_version($_)) { foreach my $p ($urpm->packages_providing($n)) { $pkg == $p and next; - $p->name eq $n && (!$o || eval($p->compare($v) . $o . 0)) or next; + $p->provides_overlap($_) or next; _set_rejected_from($state, $p, $pkg); } } |