diff --git a/buildlocal.sh b/buildlocal.sh new file mode 100755 index 000000000..197f55f54 --- /dev/null +++ b/buildlocal.sh @@ -0,0 +1,160 @@ +####################################################################### +#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; 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/* + else + rm -rf /root/rpmbuild/RPMS/noarch/* + rm -rf /root/rpmbuild/RPMS/x86_64/* + rm -rf /root/rpmbuild/RPMS/ppc64/* + 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; 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" = "x64_64" ]; then + $CURDIR/makerpm xCAT-genesis-scripts x86_64 + 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; 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/ + else + cp /root/rpmbuild/RPMS/noarch/* $CURDIR/build/ + cp /root/rpmbuild/RPMS/x86_64/* $CURDIR/build/ + cp /root/rpmbuild/RPMS/ppc64/* $CURDIR/build/ + fi + + #begin to create repo for redhat platform + + grep -i 'Red' /etc/issue; + if [ "$OSNAME" != "AIX" -a $? -eq 0 ]; then + cat >$CURDIR/build/xCAT-core.repo << EOF +[xcat-2-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/ + else + rm -f /etc/zypp/repos.d/xCAT-core.repo + zypper ar file://$CURDIR/build xCAT-core + fi + +fi + +