From 35d34cfa614d86e902b3a13057e8f1bc0881d65c Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Tue, 4 Mar 2008 20:16:04 +0000 Subject: (get_pkgs) use more modern urpm::select::resolve_dependencies() API instead of partially open-coding it, thus enabling further improvements --- Rpmdrake/pkg.pm | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'Rpmdrake') diff --git a/Rpmdrake/pkg.pm b/Rpmdrake/pkg.pm index 1779ec18..ccb08620 100644 --- a/Rpmdrake/pkg.pm +++ b/Rpmdrake/pkg.pm @@ -403,22 +403,25 @@ sub get_pkgs { my $requested = {}; my $state = {}; - $urpm->request_packages_to_upgrade( - $db, - $state, - $requested, - ); # list of updates (including those matching /etc/urpmi/skip.list): - my @requested = sort map { urpm_name($_) } @{$urpm->{depslist}}[keys %$requested]; + my @requested; + # list of pure updates (w/o those matching /etc/urpmi/skip.list but with their deps): - my @requested_strict = $probe_only_for_updates ? - sort map { - urpm_name($_); - } $urpm->resolve_requested($db, $state, $requested, callback_choices => \&Rpmdrake::gui::callback_choices) - : (); - # list updates including skiped ones + their deps in MandrivaUpdate: - push @requested, difference2(\@requested_strict, \@requested) if $probe_only_for_updates; + my @requested_strict; + + urpm::select::resolve_dependencies( + $urpm, $state, $requested, + callback_choices => \&Rpmdrake::gui::callback_choices, + priority_upgrade => $urpm->{options}{'priority-upgrade'}, + auto_select => 1, + upgrade_callback => sub { + @requested = sort map { urpm_name($_) } @{$urpm->{depslist}}[keys %$requested]; + }, + if_($probe_only_for_updates, + resolve_req_callback => sub { @requested_strict = sort map { urpm_name($_) } @_ } + ), + ); if (!$probe_only_for_updates) { $urpm->compute_installed_flags($db); # TODO/FIXME: not for updates -- cgit v1.2.1