aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2004-02-12 20:57:57 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2004-02-12 20:57:57 +0000
commit33c7c332e7a23877b4f838aec120780954e48454 (patch)
treee96d9c107a4294c518668fd5209793c6f273c0a0
parent7554066ae61cabb1e8e1e40b4addc50b8d9d9348 (diff)
downloadrpmdrake-33c7c332e7a23877b4f838aec120780954e48454.tar
rpmdrake-33c7c332e7a23877b4f838aec120780954e48454.tar.gz
rpmdrake-33c7c332e7a23877b4f838aec120780954e48454.tar.bz2
rpmdrake-33c7c332e7a23877b4f838aec120780954e48454.tar.xz
rpmdrake-33c7c332e7a23877b4f838aec120780954e48454.zip
fix #7675: rpmdrake-remove wrongly thought an unrelated package was
needed to remove another one because of closures trouble
-rwxr-xr-xrpmdrake5
-rw-r--r--rpmdrake.spec4
2 files changed, 6 insertions, 3 deletions
diff --git a/rpmdrake b/rpmdrake
index 200a6cb1..59c40b52 100755
--- a/rpmdrake
+++ b/rpmdrake
@@ -418,6 +418,7 @@ sub run_treeview_dialog {
};
my $closure_removal = sub {
my @to_remove;
+ $urpm->{state} = {};
foreach (@_) {
$urpm->resolve_rejected(db(), $urpm->{state}, $pkgs->{$_}{pkg}, removed => 1);
foreach (keys %{$urpm->{state}{rejected}}) {
@@ -528,7 +529,6 @@ or you already installed all of them."));
}
};
if ($MODE eq 'remove') {
- $urpm->{state} = {};
if ($new_state) {
my @remove;
slow_func($tree->window, sub { @remove = $closure_removal->(@nodes) });
@@ -547,7 +547,8 @@ or you already installed all of them."));
} else {
slow_func($tree->window,
sub { @nodes_with_deps = grep { intersection(\@nodes, [ $closure_removal->($_) ]) }
- grep { $pkgs->{$_}{selected} } keys %$pkgs });
+ grep { $pkgs->{$_}{selected} && !member($_, @nodes) } keys %$pkgs });
+ push @nodes_with_deps, @nodes;
$deps_msg->(N("Some packages can't be removed"),
N("Because of their dependencies, the following package(s) must be\nunselected now:\n\n"),
\@nodes, \@nodes_with_deps) or @nodes_with_deps = ();
diff --git a/rpmdrake.spec b/rpmdrake.spec
index d77c5f9d..82513899 100644
--- a/rpmdrake.spec
+++ b/rpmdrake.spec
@@ -117,10 +117,12 @@ rm -rf $RPM_BUILD_ROOT
%{_sbindir}/park-rpmdrake
%changelog
-* Wed Feb 11 2004 Guillaume Cottenceau <gc@mandrakesoft.com> 2.1.2-3mdk
+* Thu Feb 12 2004 Guillaume Cottenceau <gc@mandrakesoft.com> 2.1.2-3mdk
- some #7472-alike progressbar sizing fixes
- menu: specify that gurpmi.addmedia handles application/x-urpmi-media
- fix #7425: center-always or center-on-parent popup windows
+- fix #7675: rpmdrake-remove wrongly thought an unrelated package was
+ needed to remove another one
* Wed Jan 21 2004 Guillaume Cottenceau <gc@mandrakesoft.com> 2.1.2-2mdk
- remove unneeded stuff from grpmi/po/*.po