aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mandriva.org>2007-03-01 11:08:52 +0000
committerThierry Vignaud <tv@mandriva.org>2007-03-01 11:08:52 +0000
commitf3f35cd7cfe0bfff456bfb8f58426d7f89bda31a (patch)
tree9bdae95f6f48c6aebe32d8e5824f271741ee2fce
parenta046bd511f0ee012d2b55dfa6bc3c518c8ef8db6 (diff)
downloadrpmdrake-f3f35cd7cfe0bfff456bfb8f58426d7f89bda31a.tar
rpmdrake-f3f35cd7cfe0bfff456bfb8f58426d7f89bda31a.tar.gz
rpmdrake-f3f35cd7cfe0bfff456bfb8f58426d7f89bda31a.tar.bz2
rpmdrake-f3f35cd7cfe0bfff456bfb8f58426d7f89bda31a.tar.xz
rpmdrake-f3f35cd7cfe0bfff456bfb8f58426d7f89bda31a.zip
(get_pkgs) move better updated enumeration algo from MandrivaUpdate here
(thus fixing a crash in MandrivaUpdate & making rpmdrake displaying the same update set)
-rwxr-xr-xMandrivaUpdate9
-rwxr-xr-xRpmdrake/pkg.pm8
2 files changed, 9 insertions, 8 deletions
diff --git a/MandrivaUpdate b/MandrivaUpdate
index 4c0582e3..a3bbd069 100755
--- a/MandrivaUpdate
+++ b/MandrivaUpdate
@@ -122,20 +122,17 @@ gtknew('ScrolledWindow', width => $typical_width*0.9,
pkgs_provider({}, $default_list_mode); # default mode
# select packages to update:
- my @requested = $urpm->resolve_requested($db, $urpm->{state},
- { map { $pkgs->{$_}{pkg}->id => 1 } keys %$pkgs },
- callback_choices => \&callback_choices,
- );
+ my @requested = sort keys %$pkgs;
# don't select kernel*-latest by default:
- foreach my $name (sort(map { urpm_name($_) } @requested)) {
+ foreach my $name (@requested) {
$pkgs->{$name}{selected} = to_bool($name !~ /^kernel.*-latest/);
$pkgs->{$name}{pkg}->set_flag_required($name !~ /^kernel.*-latest/);
};
@{$list->{data}} = map {
[ $pkgs->{$_}{selected}, join("\n", "<b>$_</b>", translate(rpm_summary($pkgs->{$_}{pkg}->summary))) ]
- } sort map { urpm_name($_) } @requested;
+ } grep { $pkgs->{$_}{pkg} } @requested;
my $cell = ($list->get_column(0)->get_cell_renderers)[0];
$cell->signal_connect (toggled => sub {
my ($cell, $text_path) = @_;
diff --git a/Rpmdrake/pkg.pm b/Rpmdrake/pkg.pm
index f5e83ff6..807bd6d4 100755
--- a/Rpmdrake/pkg.pm
+++ b/Rpmdrake/pkg.pm
@@ -371,6 +371,10 @@ Then, restart %s.", $rpmdrake::myname_update)), myexit(-1);
start => 0,
end => $#{$urpm->{depslist}},
);
+ my @requested = $probe_only_for_updates ?
+ sort map { urpm_name($_) } $urpm->resolve_requested($db, $state, $requested, callback_choices => \&callback_choices)
+ : sort map { urpm_name($_) } @{$urpm->{depslist}}[keys %$requested];
+
if (!$probe_only_for_updates) {
$urpm->compute_installed_flags($db); # TODO/FIXME: not for updates
$urpm->{depslist}[$_]->set_flag_installed foreach keys %$requested; #- pretend it's installed
@@ -387,8 +391,8 @@ Then, restart %s.", $rpmdrake::myname_update)), myexit(-1);
$pkg->flag_upgrade or next;
my $selected = 0;
- if (member(pkg2medium($pkg, $urpm)->{name}, @updates_media_names) && $pkg->flag_installed) { # TODO/FIXME: for updates
- any { $pkg->id >= $_->{start} && $pkg->id <= $_->{end} } @update_medias or next;
+ if (member(urpm_name($pkg), @requested)) {
+ #any { $pkg->id >= $_->{start} && $pkg->id <= $_->{end} } @update_medias or next;
if ($::options{'pkg-sel'} || $::options{'pkg-nosel'}) {
my $n = urpm_name($pkg);
$pkg_sel{$n} || $pkg_nosel{$n} or next;