From 247b0bea1ddce336a319e72dd933b91c2dd0de5d Mon Sep 17 00:00:00 2001 From: Francois Pons Date: Wed, 20 Feb 2002 17:00:40 +0000 Subject: synced with newer rpmsrate of DrakX and newer method to select INSTALL packages. --- rescue/tree/etc/oem | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'rescue') diff --git a/rescue/tree/etc/oem b/rescue/tree/etc/oem index 973c3b440..b38660019 100755 --- a/rescue/tree/etc/oem +++ b/rescue/tree/etc/oem @@ -601,10 +601,16 @@ sub select_packages { eval { install_any::getFile("XXX") }; #- close out any still opened filehandle.. #- first select closure, package that will be selected for closure at least. - $o->{compssUsersChoice}{$_} = 1 foreach qw(BURNER DVD PCMCIA HIGH_SECURITY BIGMEM SMP 3D TV SCANNER PHOTO SOUND INSTALL); + $o->{compssUsersChoice}{$_} = 1 foreach qw(BURNER DVD PCMCIA HIGH_SECURITY BIGMEM SMP 3D TV SCANNER PHOTO SOUND); pkgs::setSelectedFromCompssList($o->{packages}, $o->{compssUsersChoice}, 4, 0); - $o->{compssUsersChoice}{$_} = 0 foreach qw(BURNER DVD PCMCIA HIGH_SECURITY BIGMEM SMP 3D TV SCANNER PHOTO SOUND INSTALL); + $o->{compssUsersChoice}{$_} = 0 foreach qw(BURNER DVD PCMCIA HIGH_SECURITY BIGMEM SMP 3D TV SCANNER PHOTO SOUND); + #- INSTALL class need to be copied as closure (unless installed after). + foreach (@{$o->{packages}{needToCopy}}) { + my $pkg = pkgs::packageByName($packages, $_); + pkgs::selectPackage($packages, $pkg); + } + #- first select package that have to go to closure according to their names. foreach my $pkg (@{$o->{packages}{depslist}}) { $pkg->{name} =~ /kernel-(\d|smp|enterprise|secure)/ and pkgs::selectPackage($o->{packages}, $pkg); @@ -841,15 +847,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