diff options
author | Rafael Garcia-Suarez <rgarciasuarez@mandriva.org> | 2005-12-08 14:28:09 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@mandriva.org> | 2005-12-08 14:28:09 +0000 |
commit | be1a53d6b4c54d18f97188ba0db7b258a60ba9ac (patch) | |
tree | 21b3798c60c278688c6f4fe1d7b716056bbb485f | |
parent | c49b7811881db1afc6c69e1056bc06bc58213f0f (diff) | |
download | urpmi-be1a53d6b4c54d18f97188ba0db7b258a60ba9ac.tar urpmi-be1a53d6b4c54d18f97188ba0db7b258a60ba9ac.tar.gz urpmi-be1a53d6b4c54d18f97188ba0db7b258a60ba9ac.tar.bz2 urpmi-be1a53d6b4c54d18f97188ba0db7b258a60ba9ac.tar.xz urpmi-be1a53d6b4c54d18f97188ba0db7b258a60ba9ac.zip |
Fix a regression (introduced in urpm.pm revision 1.579) : the packages that
obsoleted older packages were installed as 'install', not as 'upgrade', thus
rpm wasn't attempting to deinstall the old package.
-rwxr-xr-x | gurpmi2 | 2 | ||||
-rw-r--r-- | urpm.pm | 4 | ||||
-rwxr-xr-x | urpmi | 2 |
3 files changed, 5 insertions, 3 deletions
@@ -240,7 +240,7 @@ sub do_install_3 () { sync(); }, ); - my %transaction_sources_install = %{$urpm->extract_packages_to_install(\%transaction_sources) || {}}; + my %transaction_sources_install = %{$urpm->extract_packages_to_install(\%transaction_sources, $state) || {}}; if (!$urpm->{options}{'verify-rpm'} || grep { $_->{'verify-rpm'} } @{$urpm->{media}}) { my @bad_signatures = $urpm->check_sources_signatures(\%transaction_sources_install, \%transaction_sources, translate => 1); if (@bad_signatures) { @@ -2893,12 +2893,14 @@ sub prepare_transaction { #- extract package that should be installed instead of upgraded, #- sources is a hash of id -> source rpm filename. sub extract_packages_to_install { - my ($urpm, $sources) = @_; + my ($urpm, $sources, $state) = @_; my %inst; + my $rej = ref $state ? $state->{rejected} || {} : {}; foreach (keys %$sources) { my $pkg = $urpm->{depslist}[$_] or next; $pkg->flag_disable_obsolete || !$pkg->flag_installed + and !grep { exists $rej->{$_}{closure}{$pkg->fullname} } keys %$rej and $inst{$pkg->id} = delete $sources->{$pkg->id}; } @@ -577,7 +577,7 @@ foreach my $set (@{$state->{transaction} || []}) { goto &urpm::download::sync_logger; }, ); - my %transaction_sources_install = %{$urpm->extract_packages_to_install(\%transaction_sources) || {}}; + my %transaction_sources_install = %{$urpm->extract_packages_to_install(\%transaction_sources, $state) || {}}; if (!$force && ($urpm->{options}{'verify-rpm'} || grep { $_->{'verify-rpm'} } @{$urpm->{media}})) { my @bad_signatures = $urpm->check_sources_signatures(\%transaction_sources_install, \%transaction_sources, translate => 1); |