####################################################################### #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" = "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; 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/ createrepo $CURDIR/build else rm -f /etc/zypp/repos.d/xCAT-core.repo zypper ar file://$CURDIR/build xCAT-core fi fi