summaryrefslogtreecommitdiffstats
path: root/perl-install/pkgs.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/pkgs.pm')
-rw-r--r--perl-install/pkgs.pm17
1 files changed, 12 insertions, 5 deletions
diff --git a/perl-install/pkgs.pm b/perl-install/pkgs.pm
index dfb568208..3d4d9d672 100644
--- a/perl-install/pkgs.pm
+++ b/perl-install/pkgs.pm
@@ -97,7 +97,7 @@ sub invCorrectSize { ($_[0] - $C) / $B }
sub selectedSize {
my ($packages) = @_;
my $size = 0;
- my %skip;
+ my (%skip_added, %skip_removed);
#- take care of packages selected...
foreach (@{$packages->{depslist}}) {
if ($_->flag_selected) {
@@ -105,14 +105,14 @@ sub selectedSize {
#- if a package is obsoleted with the same name it should
#- have been selected, so a selected new package obsoletes
#- all the old package.
- exists $skip{$_->name} and next; $skip{$_->name} = undef;
+ exists $skip_added{$_->name} and next; $skip_added{$_->name} = undef;
$size -= $packages->{sizes}{$_->name};
}
}
#- but remove size of package being obsoleted or removed.
foreach ((map { /(.*)\.[^\.]*$/ } keys %{$packages->{state}{obsoleted}}), keys %{$packages->{state}{ask_remove}}) {
my ($name) = /(.*)-[^\-]*-[^\-]*$/ or next;
- exists $skip{$name} and next; $skip{$name} = undef;
+ exists $skip_removed{$name} and next; $skip_removed{$name} = undef;
$size -= $packages->{sizes}{$name};
}
$size;
@@ -1089,7 +1089,7 @@ sub install($$$;$$) {
}
sub remove($$) {
- my ($prefix, $toRemove) = @_;
+ my ($prefix, $toRemove, $packages) = @_;
return if $::g_auto_install || !@{$toRemove || []};
@@ -1098,7 +1098,7 @@ sub remove($$) {
foreach my $p (@$toRemove) {
#- stuff remove all packages that matches $p, not a problem since $p has name-version-release format.
- $trans->remove($p) if allowedToUpgrade($p);
+ $trans->remove($p);
}
eval { fs::mount("/proc", "$prefix/proc", "proc", 0) } unless -e "$prefix/proc/cpuinfo";
@@ -1116,6 +1116,13 @@ sub remove($$) {
if (my @probs = $trans->run(undef, force => 1)) {
die "removing of old rpms failed:\n ", join("\n ", @probs);
+ } else {
+ #- clean ask_remove according to package marked to be deleted.
+ if ($packages) {
+ foreach my $p (@$toRemove) {
+ delete $packages->{state}{ask_remove}{$p};
+ }
+ }
}
#- keep in mind removing of these packages by cleaning $toRemove.
/td> * add ndiswrapper in INSTALL section, commonly used for wireless cardsOlivier Blin2005-12-071-0/+1 | * don't try to install an old library (that is anyway pulled by other packages)Olivier Blin2005-12-071-1/+1 | * install nscd on laptopsFrederic Lepied2005-12-061-1/+1 | * NVU is the new defaut Web editor in Mandriva LinuxDavid Baudens2005-12-051-4/+1 | * *** empty log message ***José Melo2005-12-051-191/+93 | * UpdatedWilly Sudiarto Raharjo2005-12-051-2/+2 | * Updated POT file.Funda Wang2005-12-0471-7234/+7309 | * add cdrdao-gcdmaster to burn audio on gnomeFlorent Villard2005-12-011-1/+1 | * typo fixThierry Vignaud2005-11-301-2/+2 | * updateThierry Vignaud2005-11-301-10/+10 | * UpdatedWilly Sudiarto Raharjo2005-11-301-3/+3 | * Updated POT file.Funda Wang2005-11-3071-31195/+31581 | * Updated Malay translationSharuzzaman Ahmat Raslan2005-11-261-3162/+3569 | * updateThierry Vignaud2005-11-251-3/+3 | * Updated zh_CN translationFunda Wang2005-11-241-120/+4 | * adapt to MDV::PackdrakengPascal Rigaux2005-11-231-1/+3 | * *** empty log message ***José Melo2005-11-221-182/+94 | * updated Walloon file (better strings in drakfont)Pablo Saratxaga2005-11-211-12/+16 | * install aoss too when installing ALSAThierry Vignaud2005-11-211-2/+2 | * bpalogin is required for Telstra's BPA cable connectionsOlivier Blin2005-11-211-0/+1 | * UpdatedWilly Sudiarto Raharjo2005-11-191-3/+5 | * updateThierry Vignaud2005-11-182-13/+6 | * Updated POT fileThierry Vignaud2005-11-18