diff options
author | Rafael Garcia-Suarez <rgarciasuarez@mandriva.org> | 2004-07-30 06:10:00 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@mandriva.org> | 2004-07-30 06:10:00 +0000 |
commit | 88de03498f989316d3ab721b58a343d4ea9e68e6 (patch) | |
tree | e62df9e27047adbc0f0d4263bcf612ecb00184e2 | |
parent | 60870d96de058efa9476f6ef6e1135732ae11679 (diff) | |
download | perl-URPM-88de03498f989316d3ab721b58a343d4ea9e68e6.tar perl-URPM-88de03498f989316d3ab721b58a343d4ea9e68e6.tar.gz perl-URPM-88de03498f989316d3ab721b58a343d4ea9e68e6.tar.bz2 perl-URPM-88de03498f989316d3ab721b58a343d4ea9e68e6.tar.xz perl-URPM-88de03498f989316d3ab721b58a343d4ea9e68e6.zip |
Resolution of requested packages: by default, don't propose a choice when
multiple found packages are already installed.
-rw-r--r-- | URPM/Resolve.pm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm index 1046be7..616206c 100644 --- a/URPM/Resolve.pm +++ b/URPM/Resolve.pm @@ -35,12 +35,12 @@ sub find_chosen_packages { my %packages; #- search for possible packages, try to be as fast as possible, backtrack can be longer. - foreach (split '\|', $dep) { + foreach (split /\|/, $dep) { if (/^\d+$/) { my $pkg = $urpm->{depslist}[$_]; $pkg->arch eq 'src' || $pkg->is_arch_compat or next; $pkg->flag_skip || $state->{rejected}{$pkg->fullname} and next; - #- determine if this packages is better than a possibly previously chosen package. + #- determine if this package is better than a possibly previously chosen package. $pkg->flag_selected || exists $state->{selected}{$pkg->id} and return $pkg; if (my $p = $packages{$pkg->name}) { $pkg->flag_requested > $p->flag_requested || @@ -103,6 +103,9 @@ sub find_chosen_packages { push @chosen, $p; } + #- if several packages are installed, trim the choices. + if (!$urpm->{options}{morechoices} && $mode == 3 && @chosen > 1) { @chosen = ($chosen[0]) } + #- packages that require locales-xxx when the corresponding locales are #- already installed should be preferred over packages that require locales #- which are not installed. @@ -118,6 +121,7 @@ sub find_chosen_packages { push @chosen_other, $_; } } + #- sort packages in order to have preferred ones first #- (this means good locales, no locales, bad locales). return (sort { $a->id <=> $b->id } @chosen_good_locales), |