From a8bc84a038992ebb1c5e419bd016f594722fa1ea Mon Sep 17 00:00:00 2001 From: Francois Pons Date: Wed, 20 Feb 2002 11:19:33 +0000 Subject: 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). --- perl-install/install_any.pm | 5 ++++- perl-install/pkgs.pm | 7 ++++--- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'perl-install') 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 ($_)"); -- cgit v1.2.1