254f7b7b43
coded location for compiler.jar file. However, I don't feel we should check in that compiler.jar file, so I've put it into a tools directory under the new build environment structure in c910 so we can more easily re-create build machines. The file path is automatically generated if it's not found to exists so we don't break the current build scripts.
257 lines
7.8 KiB
Plaintext
Executable File
257 lines
7.8 KiB
Plaintext
Executable File
# The shell is commented out so that it will run in bash on linux and ksh on aix
|
|
# !/bin/bash
|
|
|
|
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
|
|
|
|
# Common script to make any one the xcat rpms. To build locally, run in the top dir of local svn repository, for example:
|
|
# ./makerpm xCAT-server
|
|
# ./makerpm xCAT x86_64
|
|
# If you want verbose output: export VERBOSE=1
|
|
|
|
# set -x
|
|
|
|
# Make one of the following rpms: perl-xCAT, xCAT-server, xCAT-client, xCAT-IBMhpc, xCAT-rmc, xCAT-UI, xCAT-test
|
|
function makenoarch {
|
|
RPMNAME=$1
|
|
if [ "$OSNAME" = "AIX" ]; then
|
|
echo '.svn' > /tmp/xcat-excludes
|
|
tar -X /tmp/xcat-excludes -cf $RPMROOT/SOURCES/$RPMNAME-$VER.tar $RPMNAME
|
|
gzip -f $RPMROOT/SOURCES/$RPMNAME-$VER.tar
|
|
rm -f $RPMROOT/SRPMS/$RPMNAME-$VER*rpm $RPMROOT/RPMS/ppc/$RPMNAME-$VER*rpm
|
|
echo "Building $RPMROOT/RPMS/ppc/$RPMNAME-$VER-snap*.ppc.rpm $EMBEDTXT..."
|
|
rpm $QUIET -ba $RPMNAME/$RPMNAME.spec
|
|
RC=$?
|
|
else # linux
|
|
echo "Building $RPMROOT/RPMS/noarch/$RPMNAME-$VER-snap*.noarch.rpm $EMBEDTXT..."
|
|
# TODO: should fix this up, this is a hack for the new build machine
|
|
if [ $RPMNAME = "xCAT-UI" ]; then
|
|
# Only if the old compiler.jar file does not exist.....
|
|
if [ ! -e /xcat2/build/tools/compiler.jar ]; then
|
|
# look for the dynamic location of the compiler.jar file
|
|
DIRNAME=`dirname $(readlink -f $0)`
|
|
COMPILER_JAR=`echo "${DIRNAME%%linux_rpm/*}tools/compiler.jar"`
|
|
if [ -f $COMPILER_JAR ]; then
|
|
sed -i "s#/xcat2/build/tools/compiler.jar#${COMPILER_JAR}#g" xCAT-UI/xCAT-UI.spec
|
|
fi
|
|
fi
|
|
fi
|
|
tar --exclude .svn -czf $RPMROOT/SOURCES/$RPMNAME-$VER.tar.gz $RPMNAME
|
|
rm -f $RPMROOT/SRPMS/$RPMNAME-$VER*rpm $RPMROOT/RPMS/noarch/$RPMNAME-$VER*rpm
|
|
rpmbuild $QUIET -ta $RPMROOT/SOURCES/$RPMNAME-$VER.tar.gz
|
|
RC=$?
|
|
fi
|
|
}
|
|
|
|
|
|
|
|
# Make one of the following rpms: xCAT, xCATsn, xCAT-buildkit, xCAT-OpenStack
|
|
function makexcat {
|
|
if [ "$OSNAME" != "AIX" -a "$1" != "xCAT-buildkit" -a -z "$2" ]; then
|
|
echo 'Usage: makerpm <RPMname> <arch> [<embedded-system>]'
|
|
exit 1
|
|
fi
|
|
|
|
RPMNAME="$1"
|
|
|
|
if [ "$OSNAME" = "AIX" ]; then
|
|
source=/opt/freeware/src/packages
|
|
cd `dirname $0`/$RPMNAME
|
|
echo '.svn' > /tmp/xcat-excludes
|
|
echo 'upflag' >> /tmp/xcat-excludes
|
|
|
|
if [ "$RPMNAME" = "xCAT" ]; then
|
|
tar -X /tmp/xcat-excludes -cf $RPMROOT/SOURCES/postscripts.tar postscripts LICENSE.html
|
|
gzip -f $RPMROOT/SOURCES/postscripts.tar
|
|
tar -X /tmp/xcat-excludes -cf $RPMROOT/SOURCES/templates.tar templates
|
|
gzip -f $RPMROOT/SOURCES/templates.tar
|
|
cp xcat.conf $RPMROOT/SOURCES
|
|
cp xcat.conf.apach24 $RPMROOT/SOURCES
|
|
cp xCATMN $RPMROOT/SOURCES
|
|
else # xCATsn
|
|
tar -X /tmp/xcat-excludes -cf $RPMROOT/SOURCES/license.tar LICENSE.html
|
|
gzip -f $RPMROOT/SOURCES/license.tar
|
|
cp xCATSN $RPMROOT/SOURCES
|
|
fi
|
|
|
|
rm -f $RPMROOT/SRPMS/$RPMNAME-$VER*rpm $RPMROOT/RPMS/ppc/$RPMNAME-$VER*rpm
|
|
cd - >/dev/null
|
|
|
|
echo "Building $RPMROOT/RPMS/ppc/$RPMNAME-$VER-snap*.ppc.rpm $EMBEDTXT..."
|
|
rpm $QUIET -ba $RPMNAME/$RPMNAME.spec
|
|
RC=$?
|
|
else # linux
|
|
ARCH="$2"
|
|
TARGET="--target $ARCH"
|
|
|
|
if [ "$RPMNAME" = "xCAT" ]; then
|
|
cd `dirname $0`/$RPMNAME
|
|
tar --exclude .svn --exclude upflag -czf $RPMROOT/SOURCES/postscripts.tar.gz postscripts LICENSE.html
|
|
tar --exclude .svn -czf $RPMROOT/SOURCES/prescripts.tar.gz prescripts
|
|
tar --exclude .svn -czf $RPMROOT/SOURCES/templates.tar.gz templates
|
|
tar --exclude .svn -czf $RPMROOT/SOURCES/winpostscripts.tar.gz winpostscripts
|
|
cp xcat.conf $RPMROOT/SOURCES
|
|
cp xcat.conf.apach24 $RPMROOT/SOURCES
|
|
cp xCATMN $RPMROOT/SOURCES
|
|
cd - >/dev/null
|
|
elif [ "$RPMNAME" = "xCATsn" ]; then
|
|
cd `dirname $0`/$RPMNAME
|
|
tar --exclude .svn -czf $RPMROOT/SOURCES/license.tar.gz LICENSE.html
|
|
cp xcat.conf $RPMROOT/SOURCES
|
|
cp xcat.conf.apach24 $RPMROOT/SOURCES
|
|
cp xCATSN $RPMROOT/SOURCES
|
|
cd - >/dev/null
|
|
elif [ "$RPMNAME" = "xCAT-buildkit" ]; then
|
|
ARCH="noarch"
|
|
TARGET=""
|
|
tar --exclude .svn --exclude xCAT-buildkit.spec -czf $RPMROOT/SOURCES/$RPMNAME-$VER.tar.gz $RPMNAME
|
|
elif [ "$RPMNAME" = "xCAT-OpenStack" ]; then
|
|
tar --exclude .svn --exclude xCAT-OpenStack.spec -czf $RPMROOT/SOURCES/$RPMNAME-$VER.tar.gz $RPMNAME
|
|
else # do not recognize rpm
|
|
echo "Unrecognized rpm: $RPMNAME"
|
|
exit 2
|
|
fi
|
|
|
|
rm -f $RPMROOT/SRPMS/$RPMNAME-$VER*rpm $RPMROOT/RPMS/$ARCH/$RPMNAME-$VER*rpm
|
|
echo "Building $RPMROOT/RPMS/$ARCH/$RPMNAME-$VER-snap*.$ARCH.rpm $EMBEDTXT..."
|
|
rpmbuild $QUIET -ba $RPMNAME/$RPMNAME.spec $TARGET
|
|
RC=$?
|
|
fi
|
|
}
|
|
|
|
# make ironic rpm for ironic baremetal driver
|
|
function makeironic {
|
|
RPMNAME="$1"
|
|
ARCH="$2"
|
|
cd `dirname $0`/$RPMNAME
|
|
cp -rf ironic_baremetal /tmp/
|
|
cd /tmp/ironic_baremetal
|
|
git init
|
|
git add *
|
|
git commit -a -m "generate rpm"
|
|
python setup.py bdist_rpm
|
|
rm -rf $RPMROOT/RPMS/$ARCH/
|
|
mkdir -p $RPMROOT/RPMS/$ARCH/
|
|
cp -rf dist/*.rpm $RPMROOT/RPMS/$ARCH/
|
|
rm -rf /tmp/ironic_baremetal
|
|
}
|
|
|
|
|
|
# Make the xCAT-nbroot-core rpm
|
|
function makenbroot {
|
|
if [ -z "$2" ]; then
|
|
echo 'Usage: makerpm xCAT-nbroot-core <arch> [<embedded-system>]'
|
|
exit 1
|
|
fi
|
|
|
|
DIR="xCAT-nbroot"
|
|
ARCH="$2"
|
|
RPMNAME="xCAT-nbroot-core-$ARCH"
|
|
SPEC="xcat-core-nbroot"
|
|
cd `dirname $0`/$DIR
|
|
tar --exclude .svn -czf $RPMROOT/SOURCES/xcat-nbrootoverlay.tar.gz -C overlay/ .
|
|
cp LICENSE.html $RPMROOT/BUILD
|
|
cp $SPEC.spec $RPMROOT/SOURCES
|
|
cd - >/dev/null
|
|
rm -f $RPMROOT/SRPMS/$RPMNAME-$VER*rpm $RPMROOT/RPMS/noarch/$RPMNAME-$VER*rpm
|
|
echo "Building $RPMROOT/RPMS/noarch/$RPMNAME-$VER-snap*.noarch.rpm $EMBEDTXT..."
|
|
rpmbuild $QUIET -ba $DIR/$SPEC.spec --target $ARCH
|
|
}
|
|
|
|
|
|
|
|
# Make the xCAT-genesis rpm
|
|
function makegenesis {
|
|
DIR="xCAT-genesis-builder"
|
|
RPMNAME="$1"
|
|
cd `dirname $0`/$DIR
|
|
tar --exclude .svn -cjf $RPMROOT/SOURCES/$RPMNAME.tar.bz2 .
|
|
cp LICENSE.html $RPMROOT/BUILD
|
|
cp $RPMNAME.spec $RPMROOT/SOURCES
|
|
cd - >/dev/null
|
|
rm -f $RPMROOT/SRPMS/$RPMNAME-$VER*rpm $RPMROOT/RPMS/noarch/$RPMNAME-$VER*rpm
|
|
echo "Building $RPMROOT/RPMS/noarch/$RPMNAME-$VER-snap*.noarch.rpm $EMBEDTXT..."
|
|
rpmbuild $QUIET -ba $DIR/$RPMNAME.spec
|
|
}
|
|
function makegenesisscripts {
|
|
DIR="xCAT-genesis-scripts"
|
|
if [ -z "$2" ]; then
|
|
echo 'Usage: makerpm xCAT-genesis-scripts <arch> [<embedded-system>]'
|
|
exit 1
|
|
fi
|
|
|
|
RPMNAME="$1"
|
|
ARCH="$2"
|
|
TARGET="--target $ARCH"
|
|
cd `dirname $0`/
|
|
tar --exclude .svn -cjf $RPMROOT/SOURCES/$RPMNAME.tar.bz2 $DIR
|
|
cp $DIR/LICENSE.html $RPMROOT/BUILD
|
|
cp $DIR/$RPMNAME.spec $RPMROOT/SOURCES
|
|
cd - >/dev/null
|
|
rm -f $RPMROOT/SRPMS/$RPMNAME-$ARCH-$VER*rpm $RPMROOT/RPMS/noarch/$RPMNAME-$ARCH-$VER*rpm
|
|
echo "Building $RPMROOT/RPMS/noarch/$RPMNAME-$ARCH-$VER-snap*.noarch.rpm $EMBEDTXT..."
|
|
rpmbuild $QUIET -ba $DIR/$RPMNAME.spec $TARGET
|
|
}
|
|
|
|
|
|
# Export the name of the embedded system we are building for
|
|
function exportEmbed {
|
|
if [ -n "$1" ]; then
|
|
export "$1=1"
|
|
EMBEDTXT="for $1 "
|
|
else
|
|
EMBEDTXT=""
|
|
fi
|
|
}
|
|
|
|
|
|
# Main code....
|
|
|
|
if [ -z "$1" ]; then
|
|
echo 'Usage: makerpm <RPMname> [<arch>] [<embedded-system>]'
|
|
exit 1
|
|
fi
|
|
|
|
OSNAME=$(uname)
|
|
VER=`cat Version`
|
|
if [ "$VERBOSE" = "1" -o "$VERBOSE" = "yes" ];then
|
|
QUIET=""
|
|
else
|
|
QUIET="--quiet"
|
|
fi
|
|
|
|
if [ "$OSNAME" = "AIX" ]; then
|
|
RPMROOT=/opt/freeware/src/packages
|
|
else # linux
|
|
rpmbuild --version > /dev/null
|
|
if [ $? -gt 0 ]; then
|
|
echo "Error: rpmbuild does not appear to be installed or working."
|
|
exit 2
|
|
fi
|
|
RPMROOT=`rpmbuild --eval '%_topdir' xCATsn/xCATsn.spec`
|
|
if [ $? -gt 0 ]; then
|
|
echo "Error: Could not determine rpmbuild's root directory."
|
|
exit 2
|
|
fi
|
|
fi
|
|
|
|
if [ "$1" = "xCAT" -o "$1" = "xCATsn" -o "$1" = "xCAT-buildkit" -o "$1" = "xCAT-OpenStack" ]; then
|
|
exportEmbed $3
|
|
makexcat $1 $2
|
|
elif [ "$1" = "xCAT-nbroot" -o "$1" = "xCAT-nbroot-core" ]; then
|
|
exportEmbed $3
|
|
makenbroot xCAT-nbroot-core $2
|
|
elif [ "$1" = "xCAT-genesis-builder" ]; then
|
|
exportEmbed $2
|
|
makegenesis $1
|
|
elif [ "$1" = "xCAT-genesis-scripts" ]; then
|
|
exportEmbed $3
|
|
makegenesisscripts $1 $2
|
|
elif [ "$1" = "xCAT-OpenStack-ironic" ]; then
|
|
makeironic $1 $2
|
|
else # must be one of the noarch rpms
|
|
exportEmbed $2
|
|
makenoarch $1
|
|
fi
|
|
|
|
exit $RC
|