diff options
author | Francois Pons <fpons@mandriva.com> | 2002-04-10 09:48:23 +0000 |
---|---|---|
committer | Francois Pons <fpons@mandriva.com> | 2002-04-10 09:48:23 +0000 |
commit | 14494b8b340e4b660a4e1acaaf57b76032f97224 (patch) | |
tree | dc711a207d73111c9b3798508174ed1c52cc4596 | |
parent | 7e4dd8cbed614456785b0c7b312ca8623d016605 (diff) | |
download | urpmi-14494b8b340e4b660a4e1acaaf57b76032f97224.tar urpmi-14494b8b340e4b660a4e1acaaf57b76032f97224.tar.gz urpmi-14494b8b340e4b660a4e1acaaf57b76032f97224.tar.bz2 urpmi-14494b8b340e4b660a4e1acaaf57b76032f97224.tar.xz urpmi-14494b8b340e4b660a4e1acaaf57b76032f97224.zip |
fixed 2 resolver bug.
-rw-r--r-- | urpm.pm | 25 | ||||
-rw-r--r-- | urpmi.spec | 9 |
2 files changed, 24 insertions, 10 deletions
@@ -1599,13 +1599,19 @@ sub filter_packages_to_upgrade { foreach (@{$p->{requires}}) { if (my ($pn, $po, $pv, $pr) = /^([^\s\[]*)(?:\[\*\])?(?:\s+|\[)?([^\s\]]*)\s*([^\s\-\]]*)-?([^\s\]]*)/) { - $pn eq $n && $pn eq $pkg->{name} or next; - ++$needed; - (!$pv || eval(rpmtools::version_compare($pkg->{version}, $pv) . $po . 0)) && - (!$pr || rpmtools::version_compare($pkg->{version}, $pv) != 0 || - eval(rpmtools::version_compare($pkg->{release}, $pr) . $po . 0)) or next; - #- an existing provides (propably the one examined) is satisfying the underlying. - ++$satisfied; + if ($po || $o) { + $pn eq $n && $pn eq $pkg->{name} or next; + ++$needed; + (!$pv || eval(rpmtools::version_compare($pkg->{version}, $pv) . $po . 0)) && + (!$pr || rpmtools::version_compare($pkg->{version}, $pv) != 0 || + eval(rpmtools::version_compare($pkg->{release}, $pr) . $po . 0)) or next; + #- an existing provides (propably the one examined) is satisfying the underlying. + ++$satisfied; + } else { + $pn eq $n or next; + #- a property has been removed since in diff_provides. + ++$needed; + } } } #- check if the package need to be updated because it @@ -1686,6 +1692,7 @@ sub filter_packages_to_upgrade { if (my ($n, $o, $v, $r) = /^([^\s\[]*)(?:\[\*\])?(?:\s+|\[)?([^\s\]]*)\s*([^\s\-\]]*)-?([^\s\]]*)/) { $provides{$_} and next; + print "trying on $n ($o,$v,$r)\n" if /backend/; foreach my $fullname (keys %{$urpm->{params}{provides}{$n} || {}}) { exists $conflicts{$fullname} and next; my $pkg = $urpm->{params}{info}{$fullname}; @@ -1703,8 +1710,8 @@ sub filter_packages_to_upgrade { /^([^\s\[]*)(?:\[\*\])?(?:\s+|\[)?([^\s\]]*)\s*([^\s\-\]]*)-?([^\s\]]*)/) { $pn eq $n or next; my $no = $po eq '==' ? $o : $po; #- CHECK TODO ? - (!$pv || eval(rpmtools::version_compare($pv, $v) . $no . 0)) && - (!$pr || rpmtools::version_compare($pv, $v) != 0 || + (!$pv || !$v || eval(rpmtools::version_compare($pv, $v) . $no . 0)) && + (!$pr || !$r || rpmtools::version_compare($pv, $v) != 0 || eval(rpmtools::version_compare($pr, $r) . $no . 0)) or next; push @{$pre_choices{$pkg->{name}}}, $pkg; } @@ -2,7 +2,7 @@ Name: urpmi Version: 3.3 -Release: 22mdk +Release: 23mdk License: GPL Source0: %{name}.tar.bz2 Source1: %{name}.logrotate @@ -144,6 +144,13 @@ fi %changelog +* Wed Apr 10 2002 François Pons <fpons@mandrakesoft.com> 3.3-23mdk +- fixed diff_provides on unversioned property not taken into + account (libbinutils2 with binutils). +- fixed virtual version only requires against virtual version and + release provides when resolver try to check release + (libgtk+-x11-2.0_0-devel with gtk+2.0-backend-devel). + * Mon Mar 11 2002 François Pons <fpons@mandrakesoft.com> 3.3-22mdk - added --wget/--curl support to urpmq (needed by rpmdrake). |