aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS6
-rw-r--r--URPM/Resolve.pm25
2 files changed, 7 insertions, 24 deletions
diff --git a/NEWS b/NEWS
index db02ba1..5e33b37 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,9 @@
+- fix --auto-select skipping some packages because of other packages providing
+ a more recent version, but no obsolete between those packages.
+ the fix is to revert commit from Aug 2002:
+ "fixed propable old package (according provides) requested by
+ request_packages_to_upgrade."
+
Version 1.64 - 12 June 2007, by Pascal "Pixel" Rigaux
- hack on $pkg->is_arch_compat to make it return true for noarch packages
diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm
index 131b6fc..ac68af1 100644
--- a/URPM/Resolve.pm
+++ b/URPM/Resolve.pm
@@ -1063,7 +1063,7 @@ sub request_packages_to_upgrade {
sub _request_packages_to_upgrade_1 {
my ($urpm, %options) = @_;
- my (%provides, %names, %skip);
+ my (%names, %skip);
my @idlist = $urpm->build_listid($options{start}, $options{end}, $options{idlist}) or return;
@@ -1071,29 +1071,6 @@ sub _request_packages_to_upgrade_1 {
foreach my $pkg (@{$urpm->{depslist}}[@idlist]) {
if ($pkg->is_arch_compat) {
- foreach ($pkg->provides) {
- if (my ($n, $evr) = /^([^\s\[]*)(?:\[\*\])?\[?=+\s*([^\s\]]*)/) {
- if ($provides{$n}) {
- foreach ($provides{$n}->provides) {
- if (my ($pn, $pevr) = /^([^\s\[]*)(?:\[\*\])?\[?=+\s*([^\s\]]*)/) {
- $pn eq $n or next;
- if (ranges_overlap("< $evr", "== $pevr")) {
- #- this package looks like too old ?
- if ($provides{$n}->name ne $pkg->name) {
- $urpm->{debug_URPM}("skipping " . $provides{$n}->fullname . " since " . $pkg->fullname . " provides a more recent version of $n ($evr vs $pevr)") if $urpm->{debug_URPM};
- $skip{$provides{$n}->name} = undef;
- }
- $provides{$n} = $pkg;
- }
- last;
- }
- }
- } else {
- $provides{$n} = $pkg;
- }
- }
- }
-
my $p = $names{$pkg->name};
!$p || $pkg->compare_pkg($p) > 0 and $names{$pkg->name} = $pkg;
}