2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-05-02 13:07:46 +00:00

fix: Fix genesis boot in ppc64le

Signed-off-by: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com>
This commit is contained in:
Daniel Hilst Selli
2026-03-11 09:32:35 -03:00
parent 3767e0a25f
commit 4a1905171d
12 changed files with 140 additions and 146 deletions

View File

@@ -156,6 +156,22 @@ sub is_in {
0;
}
sub genesis_tarch_from_targetarch {
my ($targetarch) = @_;
return 'ppc64' if $targetarch eq 'ppc64le';
return 'x86' if $targetarch =~ /^i[3-6]86$/;
return $targetarch;
}
sub targetarch_from_target {
my ($target) = @_;
return $ARCH unless defined $target && length $target;
my @parts = split /-/, $target;
my $arch = $parts[-1];
$arch =~ s/^\s+|\s+$//g;
return lc $arch;
}
# product(\@A, \@B) returns the catersian product of \@A and \@B
sub product {
my ($a, $b) = @_;
@@ -202,7 +218,9 @@ sub createmockconfig {
write_text($cfgfile, $contents);
}
sub buildsources_genesis_base() {
sub buildsources_genesis_base($) {
my ($target) = @_;
die "Assertion failed! No directory xCAT-genesis-builder in the current directory"
unless -d "./xCAT-genesis-builder";
@@ -233,7 +251,8 @@ sub buildsources_genesis_base() {
my $dracutmoddir = "/usr/lib/dracut/modules.d/97xcat/";
my $buildarch = $ARCH;
my $targetarch = targetarch_from_target($target);
my $buildarch = genesis_tarch_from_targetarch($targetarch);
my $kernelversion = `uname -r`;
chomp $kernelversion;
@@ -353,7 +372,18 @@ EOF
} elsif ($pkg eq "xCAT-genesis-scripts") {
sh qq(tar -cjf "$SOURCES/$pkg.tar.bz2" $pkg);
} elsif ($pkg eq "xCAT-genesis-base") {
buildsources_genesis_base();
buildsources_genesis_base($target);
} elsif ($pkg eq "xCATsn") {
sh(<<"EOF");
tar -czf "$SOURCES/$pkg-$VERSION.tar.gz" $pkg
tar -czf "$SOURCES/license.tar.gz" -C $pkg LICENSE.html
tar -czf "$SOURCES/etc.tar.gz" -C xCAT etc
cp $pkg/xcat.conf $SOURCES
cp $pkg/xcat.conf.apach24 $SOURCES
cp $pkg/xCATSN $SOURCES
EOF
# xCATsn.spec consumes templates from xCAT shared templates payload.
sh qq(tar -czf "$SOURCES/templates.tar.gz" xCAT/templates) unless -f "$SOURCES/templates.tar.gz";
} else {
sh qq(tar -czf "$SOURCES/$pkg-$VERSION.tar.gz" $pkg);
}
@@ -363,8 +393,13 @@ sub buildspkgs {
my ($pkg, $target) = @_;
my $chroot = "$pkg-$target";
my $targetarch = targetarch_from_target($target);
my $genesis_tarch = genesis_tarch_from_targetarch($targetarch);
my $diskcache = "dist/$target/srpms/$pkg-$VERSION-$RELEASE.src.rpm";
my $diskcache = (
$pkg eq 'xCAT-genesis-scripts' || $pkg eq 'xCAT-genesis-base'
) ? "dist/$target/srpms/$pkg-$genesis_tarch-$VERSION-$RELEASE.src.rpm"
: "dist/$target/srpms/$pkg-$VERSION-$RELEASE.src.rpm";
return if -f $diskcache and not $opts{force};
my $dir = sub {
@@ -403,22 +438,25 @@ sub buildpkgs {
);
# get x86_64 from rhel+epel-9-x86_64
my $targetarch = (split /-/, $target, 3)[2];
my $targetarch = targetarch_from_target($target);
# get the builder arch, xCAT-genesis-base include it in its package name
my $nativearch = $ARCH;
# xCAT genesis packages include the translated target arch in their file names.
my $arch = is_in($pkg, @native_pkgs) ? $targetarch : "noarch";
my $diskcache = "dist/$target/rpms/$pkg-$VERSION-$RELEASE.$arch.rpm";
my $genesis_tarch = genesis_tarch_from_targetarch($targetarch);
my $diskcache = (
$pkg eq 'xCAT-genesis-scripts' || $pkg eq 'xCAT-genesis-base'
) ? "dist/$target/rpms/$pkg-$genesis_tarch-$VERSION-$RELEASE.noarch.rpm"
: "dist/$target/rpms/$pkg-$VERSION-$RELEASE.$arch.rpm";
return if -f $diskcache and not $opts{force};
my @opts;
push @opts, "--quiet" unless $opts{verbose};
my $spkgname = sub {
return "${pkg}-${arch}-${VERSION}-${RELEASE}.src.rpm"
return "${pkg}-${genesis_tarch}-${VERSION}-${RELEASE}.src.rpm"
if $pkg eq 'xCAT-genesis-scripts';
return "xCAT-genesis-base-${nativearch}-${VERSION}-${RELEASE}.src.rpm"
return "xCAT-genesis-base-${genesis_tarch}-${VERSION}-${RELEASE}.src.rpm"
if $pkg eq 'xCAT-genesis-base';
return "$pkg-${VERSION}-${RELEASE}.src.rpm";

View File

@@ -1,88 +0,0 @@
#!/bin/bash
# Build the xCAT-genesis-base rpm on a host system.
# Option 1: install the xCAT-genesis-builder rpm (that includes this file) on a system installed with
# the distro you want to use to build xCAT-genesis-base.
# Option 2: untar the root file system of the distro you want to use and then chroot into it and copy
# this whole dir into it somewhere (like /tmp).
# Then run this script. The optional 1st arg should be mcp if you are building against mcp.
# Currently, *Fedora 28* and *RedHat 8* are the only OSes supported to build genesis-base for ppc64, and Centos 6.5 for x86_64
DIR=`dirname $0`
#DIR=`realpath $DIR`
DIR=`readlink -f $DIR`
BUILDARCH=`uname -m`
REQUIRED_PACKAGES="rpmdevtools rpm-build screen lldpad mstflint ipmitool pciutils mdadm dosfstools usbutils bind-utils psmisc nmap-ncat ethtool kexec-tools"
DISTRO=$(perl -lane 'print $1 if /^ID="?([^\"\$]+)/' < /etc/os-release)
# Install required packages
dnf install -y epel-release
dnf -y install $REQUIRED_PACKAGES || {
echo "ERROR: Can not install required package"
exit 1
}
rpmdev-setuptree
DRACUTMODDIR=/usr/lib/dracut/modules.d/97xcat
mkdir -p $DRACUTMODDIR
case "$DISTRO" in
ubuntu)
cp -a "$DIR/dracut_105/ubuntu/module-setup.sh" $DRACUTMODDIR/
;;
rhel)
cp -a "$DIR/dracut_105/el/module-setup.sh" $DRACUTMODDIR/
;;
*)
echo "Warning: Unknown distro $DISTRO, assuming RHEL clone"
cp -a "$DIR/dracut_105/el/module-setup.sh" $DRACUTMODDIR/
;;
esac
dracut -m "xcat base" --no-early-microcode -N -f /tmp/xcatgenesis.$$.rfs $KERNELVERSION
echo Expanding the initramfs into /tmp/xcatgenesis.$$/opt/xcat/share/xcat/netboot/genesis/$BUILDARCH/fs ...
mkdir -p /tmp/xcatgenesis.$$/opt/xcat/share/xcat/netboot/genesis/$BUILDARCH/fs
cd /tmp/xcatgenesis.$$/opt/xcat/share/xcat/netboot/genesis/$BUILDARCH/fs
zcat /tmp/xcatgenesis.$$.rfs | cpio -dumi
# add the perl library
# add /usr/share/ntp/lib for Fedora26 ppc64, the ntp-perl will installed libraries under it
PERL_LIB_DIR="/usr/share/perl5 /usr/lib64/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/share/ntp/lib"
for d in `echo $PERL_LIB_DIR`; do
if [ -e $d ]; then
echo Adding perl libary "$d"
TEMP_DIR=/tmp/xcatgenesis.$$/opt/xcat/share/xcat/netboot/genesis/$BUILDARCH/fs/"$d"
mkdir -p $TEMP_DIR
cp -a -t $TEMP_DIR $d/.
fi
done
# create directory for ssh-keygen
mkdir -p /tmp/xcatgenesis.$$/opt/xcat/share/xcat/netboot/genesis/$BUILDARCH/fs/etc/ssh
mkdir -p /tmp/xcatgenesis.$$/opt/xcat/share/xcat/netboot/genesis/$BUILDARCH/fs/lib/udev/rules.d/
# create the predictable naming for nics
LIB_UDEV_RULES="/lib/udev/rules.d/"
if [ ! -e "$LIB_UDEV_RULES/80-net-name-slot.rules" ]; then
cp $DRACUTMODDIR/80-net-name-slot.rules /tmp/xcatgenesis.$$/opt/xcat/share/xcat/netboot/genesis/$BUILDARCH/fs/lib/udev/rules.d/
if [ $? -ne 0 ]; then
echo "ERROR - expanding the initramfs, please correct the issues and try again"
exit 1
fi
fi
# add the kernel
echo Adding kernel /boot/vmlinuz-$BUILDARCH ...
cp /boot/vmlinuz-`uname -r` /tmp/xcatgenesis.$$/opt/xcat/share/xcat/netboot/genesis/$BUILDARCH/kernel
cd -
# create tar file
echo Tarring /tmp/xcatgenesis.$$/opt into ~/rpmbuild/SOURCES/xCAT-genesis-base-$BUILDARCH.tar.bz2 ...
cd /tmp/xcatgenesis.$$
tar jcf ~/rpmbuild/SOURCES/xCAT-genesis-base-$BUILDARCH.tar.bz2 opt
# build the rpm
echo Building xCAT-genesis-base rpm from ~/rpmbuild/SOURCES/xCAT-genesis-base-$BUILDARCH.tar.bz2 and $DIR/xCAT-genesis-base.spec ...
rpmbuild -ba $DIR/xCAT-genesis-base.spec
rm -rf $DRACUTMODDIR

View File

@@ -45,15 +45,18 @@ install() {
dracut_install uniq # mellanox update requires
dracut_install grep ip hostname /usr/bin/awk egrep grep dirname expr
dracut_install mount.nfs sshd vi reboot lspci parted screen mkfs mkfs.ext4 mkfs.xfs xfs_db
_dracut_install_opt /usr/libexec/openssh/sshd-session
_dracut_install_opt /usr/libexec/openssh/sftp-server
#dracut_install libvirtd /usr/share/libvirt/cpu_map.xml /usr/bin/qemu-img /usr/libexec/qemu-kvm
dracut_install mkswap df ifenslave ssh-keygen scp clear
dracut_install dhclient lldpad
dracut_install /usr/sbin/dhclient lldpad
dracut_install /lib64/libnss_dns.so.2
dracut_install poweroff hwclock date /usr/share/terminfo/x/xterm /usr/share/terminfo/s/screen /etc/nsswitch.conf /etc/services
dracut_install /sbin/rsyslogd /etc/protocols umount /bin/rpm /usr/lib/rpm/rpmrc
#dracut_install chmod /sbin/route /sbin/ifconfig /usr/bin/whoami /usr/bin/head /usr/bin/tail basename /etc/redhat-release ping tr lsusb /usr/share/hwdata/usb.ids #ibm fw wrapper requirements
dracut_install chmod ip /usr/bin/whoami /usr/bin/head /usr/bin/tail basename /etc/redhat-release ping tr lsusb /usr/share/hwdata/usb.ids #ibm fw wrapper requirements
dracut_install efibootmgr dmidecode #uxspi prereqs, but will use dmidecode to improve decision on loading ipmi_si
_dracut_install_opt efibootmgr
_dracut_install_opt dmidecode # uxspi prereqs, but optional on minimal EL10 hosts
dracut_install lldptool
dracut_install /usr/share/zoneinfo/posix/Zulu
dracut_install /usr/share/zoneinfo/posix/GMT-0

View File

@@ -64,7 +64,7 @@ if [[ ${ARCH} =~ ppc64 ]]; then
modprobe virtio_pci
fi
waittime=2
ALL_NICS=$(ip link show | grep -v "^ " | awk '{print $2}' | sed -e 's/:$//' | grep -v lo)
ALL_NICS=$(ip -o link show | awk -F': ' '{print $2}' | sed -e 's/@.*$//' -e 's/:$//' | grep -v '^lo$' | sort -u)
for tmp in $ALL_NICS; do
tmp_data="$(ip link show "$tmp" | grep -v "^ " | grep "UP")"
if [ "$tmp_data" == "" ]; then

View File

@@ -5,6 +5,9 @@ dracut_install netstat # broadcom update requires
dracut_install uniq # mellanox update requires
dracut_install grep ip hostname /usr/bin/awk egrep grep dirname expr
dracut_install mount.nfs sshd vi reboot lspci parted screen mkfs mkfs.ext4 mkfs.xfs xfs_db
for ssh_helper in /usr/libexec/openssh/sshd-session /usr/libexec/openssh/sftp-server; do
[ -e "$ssh_helper" ] && dracut_install "$ssh_helper"
done
#dracut_install libvirtd /usr/share/libvirt/cpu_map.xml /usr/bin/qemu-img /usr/libexec/qemu-kvm
dracut_install mkswap df vconfig ifenslave ssh-keygen scp clear dhclient lldpad
dracut_install /lib64/libnss_dns-2.12.so /lib64/libnss_dns.so.2

View File

@@ -6,6 +6,9 @@ dracut_install netstat # broadcom update requires
dracut_install uniq # mellanox update requires
dracut_install grep ip hostname awk egrep grep dirname expr
dracut_install mount.nfs sshd vi reboot lspci parted screen mkfs mkfs.ext4 mkfs.btrfs
for ssh_helper in /usr/libexec/openssh/sshd-session /usr/libexec/openssh/sftp-server; do
[ -e "$ssh_helper" ] && dracut_install "$ssh_helper"
done
dracut_install efibootmgr
#dracut_install libvirtd /usr/share/libvirt/cpu_map.xml /usr/bin/qemu-img /usr/libexec/qemu-kvm
dracut_install mkswap df brctl vconfig ifenslave ssh-keygen scp clear dhclient lldpad

View File

@@ -137,7 +137,7 @@ remove_directory_deep("/opt/xcat/share/xcat/netboot/genesis/%{tarch}/fs/var/run"
if [ "$1" == "2" ]; then #only on upgrade, as on install it's probably not going to work...
if [ -f "/proc/cmdline" ]; then # prevent running it during install into chroot image
. /etc/profile.d/xcat.sh
#mknb %{tarch}
mknb %{tarch}
echo "If you are installing/updating xCAT-genesis-base separately, not as part of installing/updating all of xCAT, run 'mknb <arch>' manually"
mkdir -p /etc/xcat
touch /etc/xcat/genesis-base-updated

View File

@@ -64,7 +64,7 @@ if [[ ${ARCH} =~ ppc64 ]]; then
modprobe virtio_pci
fi
waittime=2
ALL_NICS=$(ip link show | grep -v "^ " | awk '{print $2}' | sed -e 's/:$//' | grep -v lo)
ALL_NICS=$(ip -o link show | awk -F': ' '{print $2}' | sed -e 's/@.*$//' -e 's/:$//' | grep -v '^lo$' | sort -u)
for tmp in $ALL_NICS; do
tmp_data="$(ip link show "$tmp" | grep -v "^ " | grep "UP")"
if [ "$tmp_data" == "" ]; then

View File

@@ -6,6 +6,46 @@
#
log_label="xcat.genesis.doxcat"
# Normalize interface names from "ip link" output by removing decorations
# like "@if3", trailing ":" and surrounding whitespace.
normalize_ifname() {
echo "$1" | sed -e 's/@.*$//' -e 's/:$//' -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
}
# Only consider real ethernet NICs for link probing and DHCP.
# This skips virtual/tunnel interfaces that can spam netlink errors.
is_candidate_nic() {
local nic="$1"
[ -n "$nic" ] || return 1
[ "$nic" = "lo" ] && return 1
case "$nic" in
usb*) return 1 ;;
esac
[ -d "/sys/class/net/$nic" ] || return 1
[ -e "/sys/class/net/$nic/device" ] || return 1
[ "$(cat "/sys/class/net/$nic/type" 2>/dev/null)" = "1" ] || return 1
return 0
}
list_candidate_nics() {
local only_up="$1"
local rawnic
local nic
ip -o link show | awk -F': ' '{print $2}' | while read -r rawnic; do
nic=$(normalize_ifname "$rawnic")
if ! is_candidate_nic "$nic"; then
continue
fi
if [ "$only_up" = "up" ]; then
ip -o link show dev "$nic" 2>/dev/null | grep -q "UP" || continue
fi
echo "$nic"
done
}
# Start rsyslogd and log into a local file specified in /etc/rsyslog.conf
# Later, once xCAT MN is known, dhclient-script will change
# rsyslog.conf file to send log entries to xCAT MN
@@ -40,11 +80,16 @@ if ls /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor &>/dev/null; then
fi
fi
if [ ! -z "$BOOTIF" ]; then
BOOTIF=`echo $BOOTIF|sed -e s/01-// -e s/-/:/g`
BOOTIF=`echo "$BOOTIF"|sed -e s/01-// -e s/-/:/g`
logger -s -t $log_label -p local4.info "Waiting for device with address $BOOTIF to appear.."
gripeiter=6000
while [ -z "$bootnic" ]; do
bootnic=`ip link show|grep -B1 $BOOTIF|grep mtu|awk '{print $2}'|sed -e 's/:$//'`
bootnic=`ip -o link show | awk -v mac="$BOOTIF" 'tolower($0) ~ tolower(mac) {print $2; exit}'`
bootnic=`normalize_ifname "$bootnic"`
if [ ! -z "$bootnic" ] && ! ip link show dev "$bootnic" >/dev/null 2>&1; then
logger -s -t $log_label -p local4.info "Detected boot nic '$bootnic' from BOOTIF=$BOOTIF, but the interface does not exist yet. Retrying..."
bootnic=""
fi
sleep 0.1
if [ $gripeiter = 0 ]; then
logger -s -t $log_label -p local4.err "Unable to find boot device (Maybe the xCAT genesis kernel is missing the driver for your NIC?)"
@@ -108,7 +153,7 @@ logger -s -t $log_label -p local4.info "Creating /var/lib/lldpad file..."
mkdir -p /var/lib/lldpad
echo 'lldp :' >> /var/lib/lldpad/lldpad.conf
echo '{' >> /var/lib/lldpad/lldpad.conf
for iface in `ip link |grep -v '^ '|awk '{print $2}'|sed -e 's/:$//'|grep -v lo`; do
for iface in `ip -o link show | awk -F': ' '{print $2}' | sed -e 's/@.*$//' -e 's/:$//' | grep -v '^lo$'`; do
echo "$iface :" >> /var/lib/lldpad/lldpad.conf
echo "{" >> /var/lib/lldpad/lldpad.conf
echo "tlvid00000006 :" >> /var/lib/lldpad/lldpad.conf
@@ -205,14 +250,14 @@ if [[ -n $hostip && -n $netmask && -n $gateway && -n $bootnic ]]; then
else
logger -s -t $log_label -p local4.info "Setting IP via DHCP..."
# This section is for System P hardware discovery, which won't have a BOOTIF value set
if [ -z "$bootnic" ]; then
tries=0
while [ $tries -lt 100 ]; do
ALLUP_NICS=`ip link show | grep -v "^ " | grep "state UP" | awk '{print $2}' | sed -e 's/:$//'|grep -v lo | sort -n -r`
for tmp1 in $ALLUP_NICS; do
dhclient -cf /etc/dhclient.conf -pf /var/run/dhclient.$tmp1.pid $tmp1 &
dhclient -6 -pf /var/run/dhclient6.$tmp1.pid $tmp1 -lf /var/lib/dhclient/dhclient6.leases &
#bootnic=$tmp1
if [ -z "$bootnic" ]; then
tries=0
while [ $tries -lt 100 ]; do
ALLUP_NICS=`list_candidate_nics up | sort -r`
for tmp1 in $ALLUP_NICS; do
dhclient -cf /etc/dhclient.conf -pf /var/run/dhclient.$tmp1.pid $tmp1 &
dhclient -6 -pf /var/run/dhclient6.$tmp1.pid $tmp1 -lf /var/lib/dhclient/dhclient6.leases &
#bootnic=$tmp1
#break
done
if [ ! -z "$ALLUP_NICS" ]; then
@@ -247,25 +292,25 @@ else
/bin/bash
fi
else
dhclient -cf /etc/dhclient.conf -pf /var/run/dhclient.$bootnic.pid $bootnic &
#we'll kick of IPv6 and IPv4 on all nics, but not wait for them to come up unless doing discovery, to reduce
#chances that we'll perform a partial discovery
#in other scenarios where downed non-bootnics cause issues, will rely on retries to fix things up
dhclient -6 -pf /var/run/dhclient6.$bootnic.pid $bootnic -lf /var/lib/dhclient/dhclient6.leases &
NICSTOBRINGUP=`ip link|grep mtu|grep -v LOOPBACK|grep -v $bootnic|grep -v usb|grep -v ,UP|awk -F: '{print $2}'`
export NICSTOBRINGUP
for nic in $NICSTOBRINGUP; do
(while ! ethtool $nic | grep Link\ detected|grep yes > /dev/null; do sleep 5; done; dhclient -cf /etc/dhclient.conf -pf /var/run/dhclient.$nic.pid $nic ) &
(while ! ethtool $nic | grep Link\ detected|grep yes > /dev/null; do sleep 5; done; dhclient -cf /etc/dhclient.conf -6 -pf /var/run/dhclient6.$nic.pid -lf /var/lib/dhclient/dhclient6.leases $nic ) &
done
dhclient -cf /etc/dhclient.conf -pf /var/run/dhclient.$bootnic.pid "$bootnic" &
#we'll kick of IPv6 and IPv4 on all nics, but not wait for them to come up unless doing discovery, to reduce
#chances that we'll perform a partial discovery
#in other scenarios where downed non-bootnics cause issues, will rely on retries to fix things up
dhclient -6 -pf /var/run/dhclient6.$bootnic.pid "$bootnic" -lf /var/lib/dhclient/dhclient6.leases &
NICSTOBRINGUP=`list_candidate_nics | awk -v bootnic="$bootnic" '$0 != bootnic'`
export NICSTOBRINGUP
for nic in $NICSTOBRINGUP; do
(while ! ethtool "$nic" | grep Link\ detected|grep yes > /dev/null; do sleep 5; done; dhclient -cf /etc/dhclient.conf -pf /var/run/dhclient.$nic.pid "$nic" ) &
(while ! ethtool "$nic" | grep Link\ detected|grep yes > /dev/null; do sleep 5; done; dhclient -cf /etc/dhclient.conf -6 -pf /var/run/dhclient6.$nic.pid -lf /var/lib/dhclient/dhclient6.leases "$nic" ) &
done
gripeiter=101
logger -s -t $log_label -p local4.info "Acquiring network addresses.."
while ! ip -4 -o a show dev $bootnic|grep -v 'scope link'|grep -q inet; do
sleep 0.1
if [ $gripeiter = 1 ]; then
logger -s -t $log_label -p local4.info "It seems to be taking a while to acquire an IPv4 address, you may want to check spanning tree..."
fi
while ! ip -4 -o a show dev "$bootnic"|grep -v 'scope link'|grep -q inet; do
sleep 0.1
if [ $gripeiter = 1 ]; then
logger -s -t $log_label -p local4.info "It seems to be taking a while to acquire an IPv4 address, you may want to check spanning tree..."
fi
gripeiter=$((gripeiter-1))
done
fi
@@ -275,7 +320,7 @@ openssl genrsa -out /etc/xcat/certkey.pem 4096 > /dev/null 2>&1 &
logger -s -t $log_label -p local4.info "Acquired IPv4 address on $bootnic"
ip -4 -o a show dev $bootnic|grep -v 'scope link'|grep -v 'dynamic'|awk '{print $4}'
ip -4 -o a show dev "$bootnic"|grep -v 'scope link'|grep -v 'dynamic'|awk '{print $4}'
if [ -e /usr/sbin/ntpd ]; then
logger -s -t $log_label -p local4.info "Starting ntpd..."

View File

@@ -4,7 +4,7 @@
%ifarch x86_64
%define tarch x86_64
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
%define tarch ppc64
%endif
%ifarch aarch64

View File

@@ -74,7 +74,7 @@ Requires: elilo-xcat xnba-undi
%endif
%ifarch i386 i586 i686 x86 x86_64
Requires: syslinux
Requires: syslinux-xcat
Requires: ipmitool-xcat >= 1.8.17-1
%endif
@@ -84,13 +84,6 @@ Requires: ipmitool-xcat >= 1.8.17-1
%endif
%endif
%if %notpcm
# PCM does not need or ship syslinux-xcat
%if %nots390x
Requires: syslinux-xcat
%endif
%endif
%description
xCAT is a server management package intended for at-scale management, including
hardware management and software management.

View File

@@ -14,6 +14,7 @@ BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
Source1: xcat.conf
Source2: license.tar.gz
Source3: xCATSN
Source4: etc.tar.gz
Source5: templates.tar.gz
Source6: xcat.conf.apach24
Requires: perl-DBD-SQLite
@@ -56,7 +57,7 @@ Requires: elilo-xcat xnba-undi
%endif
%ifarch i386 i586 i686 x86 x86_64
Requires: syslinux
Requires: syslinux-xcat
Requires: ipmitool-xcat >= 1.8.17-1
%endif
%ifos linux
@@ -65,11 +66,6 @@ Requires: ipmitool-xcat >= 1.8.17-1
%endif
%endif
%if %notpcm
# PCM does not need or ship syslinux-xcat
Requires: syslinux-xcat
%endif
%description
xCAT supports management of very large sized cluster by creating a Hierarchical
Cluster and the concept of xCAT Service Nodes. The xCAT Management Node can
@@ -79,6 +75,7 @@ set of compute node. xCATsn package provides xCAT service node support.
%prep
%ifos linux
tar zxf %{SOURCE2}
tar zxf %{SOURCE4}
%else
cp %{SOURCE2} /opt/freeware/src/packages/BUILD
gunzip -f license.tar.gz