cleaned up a bit, and added support for netinst iso for debian, so that can be used for installation

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@12658 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
arifali 2012-05-13 23:12:06 +00:00
parent cf6ffbc38d
commit 4ff3dc9eba

View File

@ -205,20 +205,15 @@ sub copycd
}
my $dinfo;
open($dinfo, $path . "/.disk/info");
my $darch;
my $line = <$dinfo>;
chomp($line);
my @line2 = split(/ /,$line);
$darch = $line2[6];
close($dinfo);
# Ubuntu 10.04 doesn't put into the correct place
# This in essence will pick up the LTS releases
$darch = $line2[7] if ($darch eq "Release");
# For debian lenny to work
$darch = $line2[8] if ($darch eq "Official");
my $isnetinst = 0;
my $prod = $line2[0]; # The product should be the first word
my $ver = $line2[1]; # The version should be the second word
my $darch = $line2[6]; # The architecture should be the seventh word
# Check to see if $darch is defined
unless ($darch)
@ -226,27 +221,30 @@ sub copycd
return;
}
# The product should be the first word
my $prod = $line2[0];
# The version should be the second word
my $ver = $line2[1];
# For debian lenny to work
$ver = $line2[2] if ($ver eq "GNU/Linux");
if ($prod eq "Ubuntu" or $prod eq "Ubuntu-Server" )
{
$distname="ubuntu".$ver;
$detdistname="ubuntu".$ver;
}
elsif ($prod eq "Debian")
if ( $prod eq "Debian")
{
# Debian specific, the arch and version are in different places
$darch = $line2[6];
$ver = $line2[2];
# For the purpose of copying the netinst cd before the main one
# So that we have the netboot images
$isnetinst = 1 if ($line2[7] eq "NETINST");
$distname="debian".$ver;
$detdistname="debian".$ver;
}
else {
return;
elsif ($prod eq "Ubuntu" or $prod eq "Ubuntu-Server" )
{
# to cover for LTS releases
$darch = $line2[7] if ($line2[2] eq "LTS");
$distname="ubuntu".$ver;
$detdistname="ubuntu".$ver;
}
else
{
return;
}
# So that I can use amd64 below
@ -289,6 +287,7 @@ sub copycd
{data => "Copying media to $installroot/$distname/$arch"});
my $omask = umask 0022;
mkpath("$installroot/$distname/$arch");
mkpath("$installroot/$distname/$arch/install/netboot") if ($isnetinst);
umask $omask;
my $rc;
$SIG{INT} = $SIG{TERM} = sub {
@ -351,6 +350,13 @@ sub copycd
system("rm -f $installroot/$distname/$arch/dists/unstable");
system("rm -f $installroot/$distname/$arch/dists/testing");
# copies the netboot files for debian
if ($isnetinst)
{
system("cp install.*/initrd.gz $installroot/$distname/$arch/install/netboot/.");
system("cp install.*/vmlinuz $installroot/$distname/$arch/install/netboot/.");
}
if ($rc != 0)
{
$callback->({error => "Media copy operation failed, status $rc"});
@ -641,10 +647,10 @@ sub mkinstall
and $initrdpath = "$pkgdir/install/netboot/ubuntu-installer/$darch/initrd.gz"
) or
(
-r "$::XCATROOT/share/xcat/install/$platform/".$os."Images/linux"
and $kernpath = "$::XCATROOT/share/xcat/install/$platform/".$os."Images/linux"
and -r "$::XCATROOT/share/xcat/install/$platform/".$os."Images/initrd.gz"
and $initrdpath = "$::XCATROOT/share/xcat/install/$platform/".$os."Images/initrd.gz"
-r "$pkgdir/install/netboot/vmlinuz"
and $kernpath = "$pkgdir/install/netboot/vmlinuz"
and -r "$pkgdir/install/netboot/initrd.gz"
and $initrdpath = "$pkgdir/install/netboot/initrd.gz"
)
)