diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2007-06-08 07:23:08 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2007-06-08 07:23:08 +0000 |
commit | 4829bccbf414394d38823305b7a0509308bcd294 (patch) | |
tree | f40ec3bbe4edcf5cf4101e6b6bfcb2f8c8d6c7a3 /urpm/select.pm | |
parent | 23cc0103cf2f25b614b281e732e379893108b28a (diff) | |
download | urpmi-4829bccbf414394d38823305b7a0509308bcd294.tar urpmi-4829bccbf414394d38823305b7a0509308bcd294.tar.gz urpmi-4829bccbf414394d38823305b7a0509308bcd294.tar.bz2 urpmi-4829bccbf414394d38823305b7a0509308bcd294.tar.xz urpmi-4829bccbf414394d38823305b7a0509308bcd294.zip |
fix previous "prefer best architecture over exact name" commit:
noarch pkgs need to be taken into account differently
(nb: is it a pb that the list order is not kept?)
Diffstat (limited to 'urpm/select.pm')
-rw-r--r-- | urpm/select.pm | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/urpm/select.pm b/urpm/select.pm index 16aa2e87..24b844f8 100644 --- a/urpm/select.pm +++ b/urpm/select.pm @@ -52,13 +52,14 @@ sub search_packages { } $urpm->packages_providing($v)) { #- find the lowest value of is_arch_compat + my ($noarch, $arch) = partition { $_->arch eq 'noarch' } @l; my %compats; - push @{$compats{$_->is_arch_compat}}, $_ foreach @l; + push @{$compats{$_->is_arch_compat}}, $_ foreach @$arch; delete $compats{0}; #- means not compatible #- if there are pkgs matching arch, prefer them if (%compats) { - @l = @{$compats{min(keys %compats)}}; + @l = (@$noarch, @{$compats{min(keys %compats)}}); } #- we assume that if there is at least one package providing |