aboutsummaryrefslogtreecommitdiffstats
path: root/URPM/Resolve.pm
diff options
context:
space:
mode:
Diffstat (limited to 'URPM/Resolve.pm')
-rw-r--r--URPM/Resolve.pm9
1 files changed, 5 insertions, 4 deletions
diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm
index 945697d..8d80262 100644
--- a/URPM/Resolve.pm
+++ b/URPM/Resolve.pm
@@ -1430,10 +1430,11 @@ sub build_transaction_set {
#- order computed in first step and to update a list of packages to
#- install, to upgrade and to remove.
my %examined;
- while (@sorted) {
+ my @todo = @sorted;
+ while (@todo) {
my @ids;
- while (@sorted && @ids < $options{split_length}) {
- my $l = shift @sorted;
+ while (@todo && @ids < $options{split_length}) {
+ my $l = shift @todo;
push @ids, @$l;
}
my %requested = map { $_ => undef } @ids;
@@ -1455,7 +1456,7 @@ sub build_transaction_set {
if (my @bad_remove = grep { !$state->{rejected}{$_}{removed} || $state->{rejected}{$_}{obsoleted} } @remove) {
$urpm->{error}(sorted_rpms_to_string($urpm, @sorted)) if $urpm->{error};
- $urpm->{error}('transaction is too small: ' . join(' ', @bad_remove) . ' is rejected but it should not (current transaction: ' . join(' ', map { $urpm->{depslist}[$_]->name } @upgrade) . ')') if $urpm->{error};
+ $urpm->{error}('transaction is too small: ' . join(' ', @bad_remove) . ' is rejected but it should not (current transaction: ' . join(' ', map { scalar $urpm->{depslist}[$_]->fullname } @upgrade) . ', requested: ' . join('+', map { scalar $urpm->{depslist}[$_]->fullname } @ids) . ')') if $urpm->{error};
$state->{transaction} = [];
last;
}