Adding SLES10 SP4 supports
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@10820 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
parent
c1bf9b1413
commit
8bc3677aec
@ -263,10 +263,18 @@ unless ($onlyinitrd) {
|
||||
system("zypper -R $rootimg_dir --non-interactive --no-gpg-checks sa file:$kerneldir");
|
||||
}
|
||||
}
|
||||
|
||||
#remove the old repository for extra packages
|
||||
my $result=`zypper -R $rootimg_dir --non-interactive --no-gpg-checks sl |grep otherpkg|cut -f2 -d '|'|tr "\n" " "`;
|
||||
if ($result =~ /\S/) {
|
||||
system("zypper -R $rootimg_dir --non-interactive --no-gpg-checks sd $result");
|
||||
if ($osver_host == 11) {
|
||||
my $result=`zypper -R $rootimg_dir --non-interactive --no-gpg-checks lr |grep otherpkg|cut -f2 -d '|'|tr "\n" " "`;
|
||||
if ($result =~ /\S/) {
|
||||
system("zypper -R $rootimg_dir --non-interactive --no-gpg-checks rr $result");
|
||||
}
|
||||
} else {
|
||||
my $result=`zypper -R $rootimg_dir --non-interactive --no-gpg-checks sl |grep otherpkg|cut -f2 -d '|'|tr "\n" " "`;
|
||||
if ($result =~ /\S/) {
|
||||
system("zypper -R $rootimg_dir --non-interactive --no-gpg-checks sd $result");
|
||||
}
|
||||
}
|
||||
|
||||
#add the new repository for extra packages
|
||||
@ -290,7 +298,7 @@ unless ($onlyinitrd) {
|
||||
}
|
||||
} else {
|
||||
if($osver_host == 11) {
|
||||
system("zypper -R $rootimg_dir --non-interactive --no-gpg-checks ar -t Plaindir file:$srcdir_otherpkgs/$_ otherpkg$index");
|
||||
system("zypper -R $rootimg_dir --non-interactive --no-gpg-checks ar -t Plaindir file:$srcdir_otherpkgs/$_ otherpkg$index");
|
||||
}else {
|
||||
system("zypper -R $rootimg_dir --non-interactive --no-gpg-checks sa -t Plaindir file:$srcdir_otherpkgs/$_");
|
||||
}
|
||||
@ -318,12 +326,16 @@ unless ($onlyinitrd) {
|
||||
chomp;
|
||||
next if /^\s*#/;
|
||||
my ($repotype,$repourl,$repoalias) = split m/\|/;
|
||||
system("zypper -R $rootimg_dir --non-interactive --no-gpg-checks ar $repourl $repoalias");
|
||||
if($osver_host == 11) {
|
||||
system("zypper -R $rootimg_dir --non-interactive --no-gpg-checks ar $repourl $repoalias");
|
||||
}else {
|
||||
system("zypper -R $rootimg_dir --non-interactive --no-gpg-checks sa $repourl $repoalias");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Refresh the zypper cache in case there is still old data out there
|
||||
system("zypper -R $rootimg_dir --non-interactive --no-gpg-checks refresh");
|
||||
system("zypper -R $rootimg_dir --non-interactive --no-gpg-checks refresh");
|
||||
|
||||
#my $yumcmd = "yum -y -c /tmp/genimage.$$.yum.conf --installroot=$rootimg_dir --disablerepo=* ";
|
||||
#$yumcmd .= "install ";
|
||||
@ -332,7 +344,7 @@ unless ($onlyinitrd) {
|
||||
if($osver =~ /sles11/ && $osver_host == 11) {
|
||||
$yumcmd = "zypper -R $rootimg_dir --non-interactive --no-gpg-checks install -l "; #add -l for SLES11
|
||||
}else {
|
||||
$yumcmd = "zypper -R $rootimg_dir --non-interactive --no-gpg-checks install ";
|
||||
$yumcmd = "zypper -R $rootimg_dir --non-interactive --no-gpg-checks install ";
|
||||
}
|
||||
|
||||
#install packages from pkglist file
|
||||
@ -400,16 +412,14 @@ unless ($onlyinitrd) {
|
||||
$pkgnames .= " " . join(' ', @npa);
|
||||
$group_pkgnames .= " " . join(' ', @npa_group);
|
||||
}
|
||||
|
||||
my $envlist;
|
||||
if(exists $pkg_hash{$pass}{ENVLIST}){
|
||||
$envlist = join(' ', @{$pkg_hash{$pass}{ENVLIST}});
|
||||
}
|
||||
|
||||
if($pkgnames ne ' ')
|
||||
{
|
||||
print "$envlist $yumcmd $pkgnames\n";
|
||||
my $rc = system("$envlist $yumcmd $pkgnames");
|
||||
print "$envlist $yumcmd -t pattern $group_pkgnames\n";
|
||||
$rc = system("$envlist $yumcmd -t pattern $group_pkgnames");
|
||||
$rc = $rc >> 8;
|
||||
if (($rc) && ($rc != '104')) {
|
||||
print "zypper invocation failed with rc: $rc\n";
|
||||
@ -418,8 +428,8 @@ unless ($onlyinitrd) {
|
||||
}
|
||||
if($group_pkgnames ne ' ')
|
||||
{
|
||||
print "$envlist $yumcmd -t pattern $group_pkgnames\n";
|
||||
$rc = system("$envlist $yumcmd -t pattern $group_pkgnames");
|
||||
print "$envlist $yumcmd -t pattern $group_pkgnames\n";
|
||||
$rc = system("$envlist $yumcmd -t pattern $group_pkgnames");
|
||||
$rc = $rc >> 8;
|
||||
if (($rc) && ($rc != '104')) {
|
||||
print "zypper invocation failed with rc: $rc\n";
|
||||
@ -435,7 +445,7 @@ unless ($onlyinitrd) {
|
||||
$envlist = join(' ', @{$extra_hash{$pass}{ENVLIST}});
|
||||
}
|
||||
|
||||
my $yumcmd_remove= "zypper -R $rootimg_dir --non-interactive --no-gpg-checks remove ";
|
||||
my $yumcmd_remove= "zypper -R $rootimg_dir --non-interactive --no-gpg-checks remove ";
|
||||
if (exists ($extra_hash{$pass}{'PRE_REMOVE'})) {
|
||||
my $pa=$extra_hash{$pass}{'PRE_REMOVE'};
|
||||
my $rm_packges= join(' ', @$pa);
|
||||
@ -470,7 +480,12 @@ unless ($onlyinitrd) {
|
||||
|
||||
# run zypper update to update any installed rpms
|
||||
# needed when running genimage again after updating software in repositories
|
||||
my $yumcmd_update = "zypper -R $rootimg_dir --non-interactive --no-gpg-checks update ";
|
||||
my $yumcmd_update;
|
||||
if ($osver_host == 11) {
|
||||
$yumcmd_update = "zypper -R $rootimg_dir --non-interactive --no-gpg-checks update ";
|
||||
} else {
|
||||
$yumcmd_update = "zypper -R $rootimg_dir --non-interactive --no-gpg-checks update ";
|
||||
}
|
||||
$rc = system("$yumcmd_update");
|
||||
# ignore any return code
|
||||
|
||||
@ -866,8 +881,11 @@ EOS1
|
||||
# This script can be found in /lib/mkinitrd
|
||||
echo "Creating device nodes with udev"
|
||||
/sbin/udevd --daemon
|
||||
/sbin/udevadm trigger
|
||||
/sbin/udevadm settle --timeout=10
|
||||
if [ -f "/sbin/udevadm" ]
|
||||
then
|
||||
/sbin/udevadm trigger
|
||||
/sbin/udevadm settle --timeout=10
|
||||
fi
|
||||
EOMS
|
||||
|
||||
foreach (@ndrivers) {
|
||||
@ -921,6 +939,8 @@ fi
|
||||
|
||||
export IFACE=\$IFACE
|
||||
|
||||
/usr/bin/touch /var/lib/dhcpcd/dhcpcd-$IFACE.info
|
||||
|
||||
netstart \$IFACE
|
||||
while ! ifconfig | grep inet; do
|
||||
echo -e "\${RED}Failed to acquire address, retrying \${RESET}"
|
||||
@ -1204,17 +1224,28 @@ END
|
||||
}
|
||||
}
|
||||
if($mode eq "statelite") {
|
||||
foreach ("sbin/ifconfig", "usr/bin/clear", "sbin/mount.nfs","sbin/umount.nfs","bin/hostname","usr/bin/egrep","bin/ln","bin/ls","usr/bin/dirname","usr/bin/expr","usr/bin/chroot","usr/bin/grep","bin/cpio","bin/sleep","bin/mount","bin/umount","sbin/dhcpcd","bin/bash","sbin/insmod","bin/mkdir","bin/mknod","sbin/ip","bin/cat","usr/bin/awk","usr/bin/wget","bin/cp","usr/bin/cpio","usr/bin/zcat","usr/bin/gzip","lib/mkinitrd/bin/run-init","usr/bin/uniq","usr/bin/sed","usr/bin/wc", "bin/sed","sbin/udevd", "sbin/udevadm", "usr/bin/readlink") {
|
||||
foreach ("sbin/ifconfig", "usr/bin/clear","usr/bin/touch","bin/hostname","usr/bin/egrep","bin/ln","bin/ls","usr/bin/dirname","usr/bin/expr","usr/bin/chroot","usr/bin/grep","bin/cpio","bin/sleep","bin/mount","bin/umount","sbin/dhcpcd","bin/bash","sbin/insmod","bin/mkdir","bin/mknod","sbin/ip","bin/cat","usr/bin/awk","usr/bin/wget","bin/cp","usr/bin/cpio","usr/bin/zcat","usr/bin/gzip","lib/mkinitrd/bin/run-init","usr/bin/uniq","usr/bin/sed","usr/bin/wc", "bin/sed","sbin/udevd", "usr/bin/readlink") {
|
||||
getlibs($_);
|
||||
push @filestoadd,$_;
|
||||
}
|
||||
if($osver_host == 11) {
|
||||
foreach ("sbin/mount.nfs", "sbin/umount.nfs", "sbin/udevadm") {
|
||||
getlibs($_);
|
||||
push @filestoadd,$_;
|
||||
}
|
||||
}
|
||||
|
||||
}else {
|
||||
foreach ("sbin/ifconfig","usr/bin/clear", "usr/bin/grep","bin/cpio","bin/sleep","bin/mount","sbin/dhcpcd","bin/bash","sbin/insmod","bin/mkdir","bin/mknod","sbin/ip","bin/cat","usr/bin/awk","usr/bin/wget","bin/cp","usr/bin/cpio","usr/bin/zcat","usr/bin/gzip","lib/mkinitrd/bin/run-init","usr/bin/uniq","usr/bin/sed","sbin/udevd", "sbin/udevadm", "usr/bin/readlink") {
|
||||
foreach ("sbin/ifconfig","usr/bin/clear","usr/bin/touch","usr/bin/grep","bin/cpio","bin/sleep","bin/mount","sbin/dhcpcd","bin/bash","sbin/insmod","bin/mkdir","bin/mknod","sbin/ip","bin/cat","usr/bin/awk","usr/bin/wget","bin/cp","usr/bin/cpio","usr/bin/zcat","usr/bin/gzip","lib/mkinitrd/bin/run-init","usr/bin/uniq","usr/bin/sed","sbin/udevd", "usr/bin/readlink") {
|
||||
getlibs($_);
|
||||
push @filestoadd,$_;
|
||||
}
|
||||
if($osver_host == 11) {
|
||||
getlibs("sbin/udevadm");
|
||||
push @filestoadd,"sbin/udevadm";
|
||||
}
|
||||
}
|
||||
|
||||
if ($arch =~ /x86_64/) {
|
||||
push @filestoadd,"lib64/libnss_dns.so.2";
|
||||
}
|
||||
@ -1261,7 +1292,9 @@ END
|
||||
system("mkdir -p /tmp/xcatinitrd.$$/lib/firmware");
|
||||
system("cp -r $rootimg_dir/etc/udev/* /tmp/xcatinitrd.$$/etc/udev");
|
||||
system("cp -r $rootimg_dir/bin/uname /tmp/xcatinitrd.$$/bin/");
|
||||
system("cp -r $rootimg_dir/lib/firmware/* /tmp/xcatinitrd.$$/lib/firmware");
|
||||
if ( -d "$rootimg_dir/lib/firmware/" ) {
|
||||
system("cp -r $rootimg_dir/lib/firmware/* /tmp/xcatinitrd.$$/lib/firmware");
|
||||
}
|
||||
system("cp -r $rootimg_dir/usr/bin/killall /tmp/xcatinitrd.$$/usr/bin");
|
||||
|
||||
# Copy rules for network adapter
|
||||
@ -1270,8 +1303,13 @@ END
|
||||
if ($name =~ m/(\d+\.\d+\.\d+)/g) {
|
||||
$nic = $&;
|
||||
}
|
||||
system("cp -r /etc/udev/rules.d/*$nic.rules /tmp/xcatinitrd.$$/etc/udev/rules.d");
|
||||
system("cp -r /etc/udev/rules.d/*persistent-net.rules /tmp/xcatinitrd.$$/etc/udev/rules.d");
|
||||
|
||||
if ( -f "/etc/udev/rules.d/*$nic.rules" ) {
|
||||
system("cp -r /etc/udev/rules.d/*$nic.rules /tmp/xcatinitrd.$$/etc/udev/rules.d");
|
||||
}
|
||||
if ( -f "/etc/udev/rules.d/*persistent-net.rules" ) {
|
||||
system("cp -r /etc/udev/rules.d/*persistent-net.rules /tmp/xcatinitrd.$$/etc/udev/rules.d");
|
||||
}
|
||||
|
||||
system("mkdir -p /tmp/xcatinitrd.$$/lib/udev");
|
||||
system("cp -r $rootimg_dir/lib/udev/* /tmp/xcatinitrd.$$/lib/udev");
|
||||
@ -1428,13 +1466,13 @@ sub generic_post { # This function is meant to leave the image in a state approx
|
||||
copy("$installroot/postscripts/xcatpostinit", "$rootimg_dir/etc/init.d/xcatpostinit");
|
||||
chmod(0755, "$rootimg_dir/etc/init.d/xcatpostinit");
|
||||
system("chroot $rootimg_dir insserv gettyset xcatpostinit");
|
||||
|
||||
my $rc = system("grep sshd $rootimg_dir/etc/init.d/.depend.start");
|
||||
|
||||
my $rc = system("grep sshd $rootimg_dir/etc/init.d/.depend.start | grep TARGETS");
|
||||
if ($rc) {
|
||||
system("sed -i '".'s/^\(TARGETS = .*\)$/\1 sshd/'."' $rootimg_dir/etc/init.d/.depend.start");
|
||||
system("ln -s ../sshd $rootimg_dir/etc/init.d/rc3.d/S20sshd");
|
||||
}
|
||||
my $rc = system("grep gettyset $rootimg_dir/etc/init.d/.depend.start");
|
||||
my $rc = system("grep gettyset $rootimg_dir/etc/init.d/.depend.start | grep TARGETS");
|
||||
if ($rc) {
|
||||
system("sed -i '".'s/^\(TARGETS = .*\)$/\1 gettyset/'."' $rootimg_dir/etc/init.d/.depend.start");
|
||||
system("ln -s ../gettyset $rootimg_dir/etc/init.d/rc3.d/S60gettyset");
|
||||
|
Loading…
Reference in New Issue
Block a user