diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2007-07-02 15:11:24 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2007-07-02 15:11:24 +0000 |
commit | 58b997826f660b99806ea10823229af5c7a7fa6a (patch) | |
tree | 623cde613c8dd564a13e18f2d0e64960c9e091d1 /URPM | |
parent | 4d3ebe2ef621c3796fe0689a52ee5f1b2a138b4c (diff) | |
download | perl-URPM-58b997826f660b99806ea10823229af5c7a7fa6a.tar perl-URPM-58b997826f660b99806ea10823229af5c7a7fa6a.tar.gz perl-URPM-58b997826f660b99806ea10823229af5c7a7fa6a.tar.bz2 perl-URPM-58b997826f660b99806ea10823229af5c7a7fa6a.tar.xz perl-URPM-58b997826f660b99806ea10823229af5c7a7fa6a.zip |
- 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."
hopefully this change won't break too much...
for the record, a few issues:
- skipping java-1.5.0-gcj-1.5.0.0-14.7mdv2008.0.i586 since java-1.7.0-icedtea-1.7.0.0-1.3mdv2008.0.i586 provides a more recent version of jre (1.7.0 vs 1.5.0)
- skipping emacs-common-22.1-2mdv2008.0.i586 since gnus-emacs-5.10.8-1mdv2007.0.noarch provides a more recent vers
whereas java-1.5.0-gcj-1.5.0.0-14.6mdv and emacs-common-22.1-1mdv are installed
Diffstat (limited to 'URPM')
-rw-r--r-- | URPM/Resolve.pm | 25 |
1 files changed, 1 insertions, 24 deletions
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; } |