diff options
author | Thierry Vignaud <tv@mageia.org> | 2012-06-26 18:18:30 +0000 |
---|---|---|
committer | Thierry Vignaud <tv@mageia.org> | 2012-06-26 18:18:30 +0000 |
commit | f3a5346c94ceed8c28a10511db0b1019ec532971 (patch) | |
tree | 20a447700578ea9fcd83842600b55f1a0299329a /URPM/Resolve.pm | |
parent | 0f5e4ddc50cf8f93de30d8c10477fff5d9d99282 (diff) | |
parent | 4e351504dc092a0a99f33dcbd301f48877eaa2f0 (diff) | |
download | perl-URPM-f3a5346c94ceed8c28a10511db0b1019ec532971.tar perl-URPM-f3a5346c94ceed8c28a10511db0b1019ec532971.tar.gz perl-URPM-f3a5346c94ceed8c28a10511db0b1019ec532971.tar.bz2 perl-URPM-f3a5346c94ceed8c28a10511db0b1019ec532971.tar.xz perl-URPM-f3a5346c94ceed8c28a10511db0b1019ec532971.zip |
branch
Diffstat (limited to 'URPM/Resolve.pm')
-rw-r--r-- | URPM/Resolve.pm | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm index f79c438..e0eaf9d 100644 --- a/URPM/Resolve.pm +++ b/URPM/Resolve.pm @@ -82,7 +82,7 @@ sub find_candidate_packages_ { $pkg->is_arch_compat or next; $o_rejected && exists $o_rejected->{$pkg->fullname} and next; #- check if at least one provide of the package overlap the property. - !$urpm->{provides}{$name}{$_} || $pkg->provides_overlap($property) + !$urpm->{provides}{$name}{$_} || $pkg->provides_overlap($property, 1) and push @packages, $pkg; } } @@ -287,7 +287,7 @@ sub _find_required_package__sort { my @chosen = map { $_->[0] } @chosen_with_score; #- return immediately if there is only one chosen package - return \@chosen if @chosen == 1; + if (@chosen == 1) { return \@chosen } #- if several packages were selected to match a requested installation, #- and if --more-choices wasn't given, trim the choices to the first one. @@ -490,7 +490,7 @@ sub unsatisfied_requires { #- check on the selected package if a provide is satisfying the resolution (need to do the ops). foreach (grep { exists $state->{selected}{$_} } keys %{$urpm->{provides}{$n} || {}}) { my $p = $urpm->{depslist}[$_]; - !$urpm->{provides}{$n}{$_} || $p->provides_overlap($prop) and next REQUIRES; + !$urpm->{provides}{$n}{$_} || $p->provides_overlap($prop, 1) and next REQUIRES; } #- check if the package itself provides what is necessary. @@ -513,7 +513,7 @@ sub unsatisfied_requires { if (my ($pn, $ps) = property2name_range($_)) { $ps or $state->{cached_installed}{$pn}{$p->fullname} = undef; $pn eq $n or next; - URPM::ranges_overlap($ps, $s) and ++$satisfied; + URPM::ranges_overlap($ps, $s, 1) and ++$satisfied; } } }); @@ -1487,7 +1487,9 @@ sub disable_selected_and_unrequested_dependencies { #- keep in the packages that had to be unselected. @all_unselected or push @all_unselected, @unselected; - last if $urpm->{keep_unrequested_dependencies}; + if ($urpm->{keep_unrequested_dependencies}) { + last; + } #- search for unrequested required packages. foreach (@unselected) { @@ -1552,7 +1554,11 @@ sub _selected_size_filesize { foreach (values %{$state->{rejected} || {}}) { $_->{removed} || $_->{obsoleted} or next; - $size -= abs($_->{size}); + if ($_->{size} < 0) { + $size += $_->{size}; + } else { + $size -= $_->{size}; + } } foreach (@{$state->{orphans_to_remove} || []}) { @@ -1643,7 +1649,9 @@ sub compute_flags { sub _choose_best_pkg { my ($urpm, $pkg_installed, @pkgs) = @_; - _choose_best_pkg_($urpm, $pkg_installed, grep { $_->compare_pkg($pkg_installed) > 0 } @pkgs); + _choose_best_pkg_($urpm, $pkg_installed, grep { + $_->compare_pkg($pkg_installed) > 0; + } @pkgs); } #- side-effects: none |