summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
authorFrancois Pons <fpons@mandriva.com>2002-02-20 11:19:33 +0000
committerFrancois Pons <fpons@mandriva.com>2002-02-20 11:19:33 +0000
commita8bc84a038992ebb1c5e419bd016f594722fa1ea (patch)
tree497073b3bc0d4a556275e5456475f0ec2969fe23 /perl-install
parent67b42a1ad0f10ee921d824493030f18064c7902f (diff)
downloaddrakx-a8bc84a038992ebb1c5e419bd016f594722fa1ea.tar
drakx-a8bc84a038992ebb1c5e419bd016f594722fa1ea.tar.gz
drakx-a8bc84a038992ebb1c5e419bd016f594722fa1ea.tar.bz2
drakx-a8bc84a038992ebb1c5e419bd016f594722fa1ea.tar.xz
drakx-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.pm5
-rw-r--r--perl-install/pkgs.pm7
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 ($_)");