diff options
author | Francois Pons <fpons@mandriva.com> | 2002-02-20 11:19:33 +0000 |
---|---|---|
committer | Francois Pons <fpons@mandriva.com> | 2002-02-20 11:19:33 +0000 |
commit | a8bc84a038992ebb1c5e419bd016f594722fa1ea (patch) | |
tree | 497073b3bc0d4a556275e5456475f0ec2969fe23 /perl-install | |
parent | 67b42a1ad0f10ee921d824493030f18064c7902f (diff) | |
download | drakx-backup-do-not-use-a8bc84a038992ebb1c5e419bd016f594722fa1ea.tar drakx-backup-do-not-use-a8bc84a038992ebb1c5e419bd016f594722fa1ea.tar.gz drakx-backup-do-not-use-a8bc84a038992ebb1c5e419bd016f594722fa1ea.tar.bz2 drakx-backup-do-not-use-a8bc84a038992ebb1c5e419bd016f594722fa1ea.tar.xz drakx-backup-do-not-use-a8bc84a038992ebb1c5e419bd016f594722fa1ea.zip |
fixed INSTALL category in rpmsrate for copying file when changing cd (was an
limitation in read_rpmsrate when a package having a category and INSTALL caused
INSTALL to be dropped).
Diffstat (limited to 'perl-install')
-rw-r--r-- | perl-install/install_any.pm | 5 | ||||
-rw-r--r-- | perl-install/pkgs.pm | 7 |
2 files changed, 8 insertions, 4 deletions
diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm index f01824732..0389f4a70 100644 --- a/perl-install/install_any.pm +++ b/perl-install/install_any.pm @@ -160,7 +160,10 @@ sub setup_postinstall_rpms($$) { my %toCopy; #- compute closure of package that may be copied, use INSTALL category #- in rpmsrate. - pkgs::setSelectedFromCompssList($packages, { INSTALL => 1 }, 0, 0, \%toCopy); + foreach (@{$packages->{needToCopy} || []}) { + my $p = pkgs::packageByName($packages, $_); + pkgs::selectPackage($packages, $p, 0, \%toCopy); + } my @toCopy = grep { $_ && pkgs::packageFlagSelected($_) == 0 } map { pkgs::packageByName($packages, $_) } keys %toCopy; diff --git a/perl-install/pkgs.pm b/perl-install/pkgs.pm index 5998c9e6c..790063ced 100644 --- a/perl-install/pkgs.pm +++ b/perl-install/pkgs.pm @@ -667,15 +667,16 @@ sub read_rpmsrate { foreach (split ' ', $data) { if ($packages) { my $p = packageByName($packages, $_) or next; - my @m2 = map { if_($_ && packageName($_) =~ /locales-(.*)/, qq(LOCALES"$1")) } map { packageById($packages, $_) } packageDepsId($p); my @m3 = ((grep { !/^\d$/ } @m), @m2); + if (@m3 == 1 && $m3[0] eq 'INSTALL') { + push @{$packages->{needToCopy} ||= []}, $_; + next; #- don't need to put INSTALL flag for a package. + } if (packageRate($p)) { - next if @m3 == 1 && $m3[0] eq 'INSTALL'; - my ($rate2, @m4) = packageRateRFlags($p); if (@m3 > 1 || @m4 > 1) { log::l("can't handle complicate flags for packages appearing twice ($_)"); |