From 3b56216905542c41c1c34c0c56348dee8f101340 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Tue, 9 Sep 2008 10:12:18 +0000 Subject: o fix orphans handling: an already installed pkg must not become "unrequested" because a new version of it is required fixes test_urpme(['gg', 'g'], 'g', 'g', 'gg-2'); --- NEWS | 2 ++ urpm/orphans.pm | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 4368ebff..c7dc0a36 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,8 @@ - urpmi o after installing in chroot, migrate back rpmdb db version to one compatible with the rpm in the chroot + o fix orphans handling: an already installed pkg must not become + "unrequested" because a new version of it is required - fix display of downloaded urls with aria2 and metalinks - fix handling --downloader when using mirrorlist (it was forcing aria2) diff --git a/urpm/orphans.pm b/urpm/orphans.pm index 2750317c..57cda207 100644 --- a/urpm/orphans.pm +++ b/urpm/orphans.pm @@ -73,11 +73,14 @@ sub _installed_req_and_unreq_and_update_unrequested_list { #- side-effects: none sub _selected_unrequested { - my ($urpm, $selected) = @_; + my ($urpm, $selected, $rejected) = @_; + require urpm::select; map { if (my $from = $selected->{$_}{from}) { - ($urpm->{depslist}[$_]->name => "(required by " . $from->fullname . ")"); + my $name = $urpm->{depslist}[$_]->name; + urpm::select::was_pkg_name_installed($rejected, $name) ? () : + ($name => "(required by " . $from->fullname . ")"); } elsif ($selected->{$_}{suggested}) { ($urpm->{depslist}[$_]->name => "(suggested)"); } else { @@ -110,7 +113,7 @@ sub _renamed_unrequested { sub _new_unrequested { my ($urpm, $state) = @_; ( - _selected_unrequested($urpm, $state->{selected}), + _selected_unrequested($urpm, $state->{selected}, $state->{rejected}), _renamed_unrequested($urpm, $state->{rejected}), ); } -- cgit v1.2.1