mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-09-05 20:47:55 +00:00
945f9fe0d1
Add riscv64 to the xCAT and xCATsn build paths, keep the unavailable legacy Genesis dependency conditional, collect the architecture RPMs, and document the forcearch mock target.
169 lines
4.6 KiB
Bash
Executable File
169 lines
4.6 KiB
Bash
Executable File
#!/bin/sh
|
|
#######################################################################
|
|
#build script for local usage
|
|
#used for Linux/AIX/Ubuntu
|
|
#
|
|
###########################################################################
|
|
|
|
|
|
OSNAME=$(uname)
|
|
NAMEALL=$(uname -a)
|
|
|
|
for i in $*; do
|
|
# upper case the variable name
|
|
varstring=`echo "$i"|cut -d '=' -f 1|tr '[a-z]' '[A-Z]'`=`echo "$i"|cut -d '=' -f 2`
|
|
export $varstring
|
|
done
|
|
|
|
if [ -z "$CURDIR" ]; then
|
|
echo "get current directory!"
|
|
CURDIR=$(pwd)
|
|
fi
|
|
|
|
echo "CURDIR is $CURDIR"
|
|
echo "OSNAME is $OSNAME!"
|
|
echo "NAMEALL is $NAMEALL"
|
|
|
|
grep -i 'SUSE' /etc/issue
|
|
if [ $? -eq 0 ]; then
|
|
echo "This is a SUSE system!"
|
|
OS="SUSE";
|
|
fi
|
|
|
|
|
|
ls $CURDIR/makerpm
|
|
|
|
if [ $? -gt 0 ]; then
|
|
echo "Error:no repo exist, exit 1."
|
|
exit 1
|
|
fi
|
|
|
|
# Get a lock, so can not do 2 builds at once
|
|
exec 8>/var/lock/xcatbld.lock
|
|
if ! flock -n 8; then
|
|
echo "Can't get lock /var/lock/xcatbld.lock. Someone else must be doing a build right now. Exiting...."
|
|
exit 1
|
|
fi
|
|
|
|
#delete old package if there is
|
|
rm -rf $CURDIR/build/
|
|
cd $CURDIR
|
|
|
|
echo "==============================================="
|
|
echo $NAMEALL | egrep "Ubuntu"
|
|
|
|
#Check if it is an Ubuntu system
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "This is an Ubuntu system"
|
|
pkg_type="snap"
|
|
build_string="Snap_Build"
|
|
cur_date=`date +%Y%m%d`
|
|
short_ver=`cat Version|cut -d. -f 1,2`
|
|
pkg_version="${short_ver}-${pkg_type}${cur_date}"
|
|
|
|
mkdir -p $CURDIR/build
|
|
|
|
for rpmname in xCAT-client xCAT-genesis-scripts perl-xCAT xCAT-server xCAT xCATsn xCAT-test xCAT-vlan; do
|
|
rpmname_low=`echo $rpmname | tr '[A-Z]' '[a-z]'`
|
|
echo "============================================"
|
|
echo "$rpmname_low"
|
|
cd $rpmname
|
|
dch -v $pkg_version -b -c debian/changelog $build_string
|
|
dpkg-buildpackage -uc -us
|
|
rc=$?
|
|
if [ $rc -gt 0 ]; then
|
|
echo "Error: $rpmname build package failed exit code $rc"
|
|
fi
|
|
cd -
|
|
mv ${rpmname_low}* $CURDIR/build
|
|
|
|
done
|
|
#delete all files except .deb file
|
|
find $CURDIR/build/* ! -name *.deb | xargs rm -f
|
|
|
|
else
|
|
#This is not an Ubuntu system
|
|
echo "This is an $OSNAME system"
|
|
|
|
if [ "$OS" = "SUSE" ]; then
|
|
rm -rf /usr/src/packages/RPMS/noarch/*
|
|
rm -rf /usr/src/packages/RPMS/x86_64/*
|
|
rm -rf /usr/src/packages/RPMS/ppc64/*
|
|
rm -rf /usr/src/packages/RPMS/riscv64/*
|
|
else
|
|
rm -rf /root/rpmbuild/RPMS/noarch/*
|
|
rm -rf /root/rpmbuild/RPMS/x86_64/*
|
|
rm -rf /root/rpmbuild/RPMS/ppc64/*
|
|
rm -rf /root/rpmbuild/RPMS/riscv64/*
|
|
fi
|
|
|
|
mkdir -p $CURDIR/build/
|
|
|
|
#always build perl-xCAT
|
|
$CURDIR/makerpm perl-xCAT
|
|
|
|
|
|
# Build the rest of the noarch rpms
|
|
for rpmname in xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-test xCAT-buildkit xCAT-vlan; do
|
|
if [ "$OSNAME" = "AIX" -a "$rpmname" = "xCAT-buildkit" ]; then continue; fi
|
|
$CURDIR/makerpm $rpmname
|
|
done
|
|
|
|
#build xCAT-genesis-scripts if it is x86_64 platform
|
|
ARCH=$(uname -p)
|
|
if [ "$ARCH" = "x86_64" ]; then
|
|
$CURDIR/makerpm xCAT-genesis-scripts x86_64
|
|
else
|
|
$CURDIR/makerpm xCAT-genesis-scripts ppc64
|
|
fi
|
|
|
|
|
|
# Build the xCAT and xCATsn rpms for all platforms
|
|
for rpmname in xCAT xCATsn; do
|
|
if [ "$OSNAME" = "AIX" ]; then
|
|
$CURDIR/makerpm $rpmname
|
|
if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS $rpmname"; fi
|
|
else
|
|
for arch in x86_64 ppc64 s390x aarch64 riscv64; do
|
|
$CURDIR/makerpm $rpmname $arch
|
|
if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS $rpmname-$arch"; fi
|
|
done
|
|
fi
|
|
done
|
|
|
|
if [ "$OS" = "SUSE" ]; then
|
|
cp /usr/src/packages/RPMS/noarch/* $CURDIR/build/
|
|
cp /usr/src/packages/RPMS/x86_64/* $CURDIR/build/
|
|
cp /usr/src/packages/RPMS/ppc64/* $CURDIR/build/
|
|
cp /usr/src/packages/RPMS/riscv64/* $CURDIR/build/
|
|
else
|
|
cp /root/rpmbuild/RPMS/noarch/* $CURDIR/build/
|
|
cp /root/rpmbuild/RPMS/x86_64/* $CURDIR/build/
|
|
cp /root/rpmbuild/RPMS/ppc64/* $CURDIR/build/
|
|
cp /root/rpmbuild/RPMS/riscv64/* $CURDIR/build/
|
|
fi
|
|
|
|
#begin to create repo for redhat platform
|
|
|
|
grep -i 'Red' /etc/*release*;
|
|
if [ "$OSNAME" != "AIX" -a $? -eq 0 ]; then
|
|
cat >$CURDIR/build/xcat-core.repo << EOF
|
|
[xcat-core]
|
|
name=xCAT 2 Core packages
|
|
baseurl=file://$CURDIR/build
|
|
enabled=1
|
|
gpgcheck=0
|
|
EOF
|
|
|
|
cp $CURDIR/build/xcat-core.repo /etc/yum.repos.d/
|
|
createrepo $CURDIR/build
|
|
else
|
|
rm -f /etc/zypp/repos.d/xcat-core.repo
|
|
zypper ar file://$CURDIR/build xcat-core
|
|
fi
|
|
|
|
fi
|
|
|
|
|