summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--urpm.pm25
-rw-r--r--urpmi.spec9
2 files changed, 24 insertions, 10 deletions
diff --git a/urpm.pm b/urpm.pm
index 6d14a840..cc096a69 100644
--- a/urpm.pm
+++ b/urpm.pm
@@ -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;
}
diff --git a/urpmi.spec b/urpmi.spec
index 7d29c8e1..adbb66ab 100644
--- a/urpmi.spec
+++ b/urpmi.spec
@@ -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).