aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS4
-rw-r--r--URPM.pm4
-rw-r--r--URPM/Resolve.pm2
3 files changed, 8 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 0623e8c..211f3bd 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+- revert change introduced in 3.16 (it breaks too much, eg
+ superuser--priority-upgrade.t test case), and introduce
+ $state->{rejected_already_installed} instead
+
Version 3.17 - 4 July 2008, by Pascal "Pixel" Rigaux
- add traverse_tag_find(), removed_or_obsoleted_packages()
diff --git a/URPM.pm b/URPM.pm
index 9b0cda1..511db42 100644
--- a/URPM.pm
+++ b/URPM.pm
@@ -829,7 +829,7 @@ B<selected>: { id => {
} }
B<rejected>: { fullname => {
- size => int, removed => bool, obsoleted => bool, installed => bool,
+ size => int, removed => bool, obsoleted => bool,
backtrack => { # those info are only used to display why package is unselected
promote => [ name ], keep => [ fullname ],
unsatisfied => [ id|property ],
@@ -840,6 +840,8 @@ B<rejected>: { fullname => {
},
} }
+B<rejected_already_installed>: { id => pkg }
+
B<orphans_to_remove>: [ pkg ]
B<whatrequires>: { name => { id => undef } }
diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm
index 61429c2..8c58c63 100644
--- a/URPM/Resolve.pm
+++ b/URPM/Resolve.pm
@@ -680,7 +680,7 @@ sub _set_rejected_old_package {
my ($state, $pkg, $new_pkg) = @_;
if ($pkg->fullname eq $new_pkg->fullname) {
- $state->{rejected}{$pkg->fullname}{installed} = 1;
+ $state->{rejected_already_installed}{$pkg->id} = $pkg;
} else {
push @{$state->{rejected}{$pkg->fullname}{backtrack}{keep}}, scalar $new_pkg->fullname;
}