diff options
-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 ($_)"); |