Completed build of minimal xcat

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11428 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
bp-sawyers 2012-01-27 20:40:27 +00:00
parent 3c431f1f53
commit 11a55328e2
2 changed files with 81 additions and 60 deletions

View File

@ -26,6 +26,7 @@
# UP=0 or UP=1 - override the default upload behavior
# SVNUP=<filename> - control which rpms get built by specifying a coresvnup file
# FRSYUM=0 - put the yum repo and snap builds in the old project web area instead of the FRS area.
# EMBED=<embedded-environment> - the environment for which a minimal version of xcat should be built, e.g. zvm or flex
# VERBOSE=1 - to see lots of verbose output
# you can change this if you need to
@ -76,6 +77,8 @@ else
fi
# Set variables based on which type of build we are doing
if [ -n "$EMBED" ]; then EMBEDDIR="/$EMBED"
else EMBEDDIR=""; fi
XCATCORE="xcat-core" # core-snap is a sym link to xcat-core
echo "svn --quiet up Version"
svn --quiet up Version
@ -97,25 +100,26 @@ else
TARNAME=core-rpms-snap.tar.bz2
fi
fi
DESTDIR=../../$XCATCORE
DESTDIR=../..$EMBEDDIR/$XCATCORE
SRCD=core-snap-srpms
if [ "$PROMOTE" != 1 ]; then # very long if statement to not do builds if we are promoting
mkdir -p $DESTDIR
SRCDIR=../../$SRCD
mkdir -p $SRCDIR
if [ -n "$VERBOSEMODE" ]; then
GREP=grep
else
GREP="grep -q"
fi
# currently aix builds ppc rpms, but someday it should build noarch
if [ "$OSNAME" = "AIX" ]; then
NOARCH=ppc
else
NOARCH=noarch
fi
if [ "$PROMOTE" != 1 ]; then # very long if statement to not do builds if we are promoting
mkdir -p $DESTDIR
SRCDIR=$DESTDIR/../$SRCD
mkdir -p $SRCDIR
if [ -n "$VERBOSEMODE" ]; then
GREP=grep
else
GREP="grep -q"
fi
UPLOAD=0
if [ "$OSNAME" = "AIX" ]; then
source=/opt/freeware/src/packages
@ -135,18 +139,24 @@ if [ -z "$SVNUP" ]; then
svn up > $SVNUP
fi
# Process for making most of the rpms
function maker {
rpmname="$1"
./makerpm $rpmname "$EMBED"
if [ $? -ne 0 ]; then
FAILEDRPMS="$FAILEDRPMS $rpmname"
else
rm -f $DESTDIR/$rpmname*rpm
rm -f $SRCDIR/$rpmname*rpm
mv $source/RPMS/$NOARCH/$rpmname-$VER*rpm $DESTDIR
mv $source/SRPMS/$rpmname-$VER*rpm $SRCDIR
fi
}
# If anything has changed, we should always rebuild perl-xCAT
if ! $GREP 'At revision' $SVNUP; then # Use to be: $GREP perl-xCAT $SVNUP; then
UPLOAD=1
./makerpm perl-xCAT
if [ $? -ne 0 ]; then
FAILEDRPMS="perl-xCAT"
else
rm -f $DESTDIR/perl-xCAT*rpm
rm -f $SRCDIR/perl-xCAT*rpm
mv $source/RPMS/$NOARCH/perl-xCAT-$VER*rpm $DESTDIR/
mv $source/SRPMS/perl-xCAT-$VER*rpm $SRCDIR/
fi
maker perl-xCAT
fi
if [ "$OSNAME" = "AIX" ]; then
# For the 1st one we overwrite, not append
@ -157,15 +167,8 @@ fi
for rpmname in xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-UI xCAT-test; do
if $GREP $rpmname $SVNUP; then
UPLOAD=1
./makerpm $rpmname
if [ $? -ne 0 ]; then
FAILEDRPMS="$FAILEDRPMS $rpmname"
else
rm -f $DESTDIR/$rpmname*rpm
rm -f $SRCDIR/$rpmname*rpm
mv $source/RPMS/$NOARCH/$rpmname-$VER*rpm $DESTDIR/
mv $source/SRPMS/$rpmname-$VER*rpm $SRCDIR/
fi
if [ "$EMBED" = "zvm" -a "$rpmname" != "xCAT-server" -a "$rpmname" != "xCAT-UI" ]; then break; fi # for embedded envs only need to build server special
maker $rpmname
fi
if [ "$OSNAME" = "AIX" ]; then
if [ "$rpmname" = "xCAT-client" -o "$rpmname" = "xCAT-server" ]; then # we do not automatically install the rest of the rpms on AIX
@ -174,7 +177,7 @@ for rpmname in xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-UI xCAT-test; d
fi
done
if [ "$OSNAME" != "AIX" ]; then
if [ "$OSNAME" != "AIX" -a "$EMBED" != "zvm" ]; then
if $GREP xCAT-nbroot $SVNUP; then
UPLOAD=1
ORIGFAILEDRPMS="$FAILEDRPMS"
@ -193,6 +196,7 @@ fi
# Build the xCAT and xCATsn rpms for all platforms
for rpmname in xCAT xCATsn; do
if [ "$EMBED" = "zvm" ]; then break; fi
if $GREP -E "^[UAD] +$rpmname/" $SVNUP; then
UPLOAD=1
ORIGFAILEDRPMS="$FAILEDRPMS"
@ -219,6 +223,20 @@ if [ "$OSNAME" = "AIX" ]; then
echo "rpm -Uvh xCAT-rmc-$SHORTSHORTVER*rpm" >> $DESTDIR/instxcat
fi
# Make sym links in the embed subdirs for the rpms we do not have to build special
cd $DESTDIR
if [ "$EMBED" = "zvm" ]; then
maindir="../../$XCATCORE"
rm -f xCAT-client-$SHORTSHORTVER*rpm
ln -s $maindir/xCAT-client-$SHORTSHORTVER*rpm .
rm -f xCAT-$SHORTSHORTVER*rpm
ln -s $maindir/xCAT-$SHORTSHORTVER*.s390x.rpm .
rm -f xCATsn-$SHORTSHORTVER*rpm
ln -s $maindir/xCATsn-$SHORTSHORTVER*.s390x.rpm .
fi
cd - >/dev/null
# Decide if anything was built or not
if [ -n "$FAILEDRPMS" ]; then
echo "Error: build of the following RPMs failed: $FAILEDRPMS"
@ -251,7 +269,7 @@ if [ "$OSNAME" != "AIX" ]; then
echo '%_gpg_name Jarrod Johnson' >> $MACROS
fi
echo "Signing RPMs..."
build-utils/rpmsign.exp $DESTDIR/*rpm | grep -v -E '(was already signed|rpm --quiet --resign|WARNING: standard input reopened)'
build-utils/rpmsign.exp `find $DESTDIR -type f -name '*.rpm'` | grep -v -E '(was already signed|rpm --quiet --resign|WARNING: standard input reopened)'
build-utils/rpmsign.exp $SRCDIR/*rpm | grep -v -E '(was already signed|rpm --quiet --resign|WARNING: standard input reopened)'
createrepo $DESTDIR
createrepo $SRCDIR
@ -285,21 +303,24 @@ chmod -R g+w $SRCDIR
fi # end of very long if-not-promote
cd $DESTDIR
if [ "$OSNAME" != "AIX" ]; then
# Modify the repo file to point to either xcat-core or core-snap
# Always recreate it, in case the whole dir was copied from devel to 2.x
if [ -n "$1" ]; then embed="$1/"
else embed=""; fi
cat >xCAT-core.repo << EOF
[xcat-2-core]
name=xCAT 2 Core packages
baseurl=$YUMREPOURL/$REL/$CORE
baseurl=$YUMREPOURL/$REL$EMBEDDIR/$CORE
enabled=1
gpgcheck=1
gpgkey=$YUMREPOURL/$REL/$CORE/repodata/repomd.xml.key
gpgkey=$YUMREPOURL/$REL$EMBEDDIR/$CORE/repodata/repomd.xml.key
EOF
# Create the mklocalrepo script
cat >mklocalrepo.sh << 'EOF2'
#!/bin/sh
@ -347,33 +368,33 @@ if [ ! -e core-snap ]; then
fi
if [ "$REL" = "devel" -o "$PREGA" != 1 ]; then
i=0
echo "Uploading RPMs from $CORE to $YUMDIR/$YUM/$REL/ ..."
while [ $((i+=1)) -le 5 ] && ! rsync -urLv --delete $CORE $UPLOADUSER,xcat@web.sourceforge.net:$YUMDIR/$YUM/$REL/
echo "Uploading RPMs from $CORE to $YUMDIR/$YUM/$REL$EMBEDDIR/ ..."
while [ $((i+=1)) -le 5 ] && ! rsync -urLv --delete $CORE $UPLOADUSER,xcat@web.sourceforge.net:$YUMDIR/$YUM/$REL$EMBEDDIR/
do : ; done
fi
# Upload the individual source RPMs to sourceforge
i=0
echo "Uploading src RPMs from $SRCD to $YUMDIR/$YUM/$REL/ ..."
while [ $((i+=1)) -le 5 ] && ! rsync -urLv --delete $SRCD $UPLOADUSER,xcat@web.sourceforge.net:$YUMDIR/$YUM/$REL/
echo "Uploading src RPMs from $SRCD to $YUMDIR/$YUM/$REL$EMBEDDIR/ ..."
while [ $((i+=1)) -le 5 ] && ! rsync -urLv --delete $SRCD $UPLOADUSER,xcat@web.sourceforge.net:$YUMDIR/$YUM/$REL$EMBEDDIR/
do : ; done
# Upload the tarball to sourceforge
if [ "$PROMOTE" = 1 -a "$REL" != "devel" -a "$PREGA" != 1 ]; then
# upload tarball to FRS area
i=0
echo "Uploading $TARNAME to $FRS/xcat/$REL.x_$OSNAME/ ..."
while [ $((i+=1)) -le 5 ] && ! rsync -v $TARNAME $UPLOADUSER,xcat@web.sourceforge.net:$FRS/xcat/$REL.x_$OSNAME/
echo "Uploading $TARNAME to $FRS/xcat/$REL.x_$OSNAME$EMBEDDIR/ ..."
while [ $((i+=1)) -le 5 ] && ! rsync -v $TARNAME $UPLOADUSER,xcat@web.sourceforge.net:$FRS/xcat/$REL.x_$OSNAME$EMBEDDIR/
do : ; done
else
i=0
echo "Uploading $TARNAME to $YUMDIR/$YUM/$REL/ ..."
while [ $((i+=1)) -le 5 ] && ! rsync -v $TARNAME $UPLOADUSER,xcat@web.sourceforge.net:$YUMDIR/$YUM/$REL/
echo "Uploading $TARNAME to $YUMDIR/$YUM/$REL$EMBEDDIR/ ..."
while [ $((i+=1)) -le 5 ] && ! rsync -v $TARNAME $UPLOADUSER,xcat@web.sourceforge.net:$YUMDIR/$YUM/$REL$EMBEDDIR/
do : ; done
fi
# Extract and upload the man pages in html format
if [ "$OSNAME" != "AIX" -a "$REL" = "devel" -a "$PROMOTE" != 1 ]; then
if [ "$OSNAME" != "AIX" -a "$REL" = "devel" -a "$PROMOTE" != 1 -a -z "$EMBED" ]; then
echo "Extracting and uploading man pages to htdocs/ ..."
mkdir -p man
cd man

34
makerpm
View File

@ -18,11 +18,11 @@ function makenoarch {
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 $IMBEDTXT..."
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 $IMBEDTXT..."
echo "Building $RPMROOT/RPMS/noarch/$RPMNAME-$VER-snap*.noarch.rpm $EMBEDTXT..."
tar --exclude .svn -czf $RPMROOT/SOURCES/$RPMNAME-$VER.tar.gz $RPMNAME
rm -f $RPMROOT/SRPMS/xCAT-server-$VER*rpm $RPMROOT/RPMS/noarch/$RPMNAME-$VER*rpm
rpmbuild $QUIET -ta $RPMROOT/SOURCES/$RPMNAME-$VER.tar.gz
@ -35,7 +35,7 @@ function makenoarch {
# Make one of the following rpms: xCAT, xCATsn
function makexcat {
if [ "$OSNAME" != "AIX" -a -z "$2" ]; then
echo 'Usage: makerpm <RPMname> <arch> [<imbedded-system>]'
echo 'Usage: makerpm <RPMname> <arch> [<embedded-system>]'
exit 1
fi
@ -63,7 +63,7 @@ function makexcat {
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 $IMBEDTXT..."
echo "Building $RPMROOT/RPMS/ppc/$RPMNAME-$VER-snap*.ppc.rpm $EMBEDTXT..."
rpm $QUIET -ba $RPMNAME/$RPMNAME.spec
RC=$?
else # linux
@ -84,7 +84,7 @@ function makexcat {
cd - >/dev/null
rm -f $RPMROOT/SRPMS/$RPMNAME-$VER*rpm $RPMROOT/RPMS/$ARCH/$RPMNAME-$VER*rpm
echo "Building $RPMROOT/RPMS/$ARCH/$RPMNAME-$VER-snap*.$ARCH.rpm $IMBEDTXT..."
echo "Building $RPMROOT/RPMS/$ARCH/$RPMNAME-$VER-snap*.$ARCH.rpm $EMBEDTXT..."
rpmbuild $QUIET -ba $RPMNAME/$RPMNAME.spec --target $ARCH
RC=$?
fi
@ -95,7 +95,7 @@ function makexcat {
# Make the xCAT-nbroot-core rpm
function makenbroot {
if [ -z "$2" ]; then
echo 'Usage: makerpm xCAT-nbroot-core <arch> [<imbedded-system>]'
echo 'Usage: makerpm xCAT-nbroot-core <arch> [<embedded-system>]'
exit 1
fi
@ -109,7 +109,7 @@ function makenbroot {
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 $IMBEDTXT..."
echo "Building $RPMROOT/RPMS/noarch/$RPMNAME-$VER-snap*.noarch.rpm $EMBEDTXT..."
rpmbuild $QUIET -ba $DIR/$SPEC.spec --target $ARCH
}
@ -125,18 +125,18 @@ function makegenesis {
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 $IMBEDTXT..."
echo "Building $RPMROOT/RPMS/noarch/$RPMNAME-$VER-snap*.noarch.rpm $EMBEDTXT..."
rpmbuild $QUIET -ba $DIR/$RPMNAME.spec
}
# Export the name of the imbedded system we are building for
function exportImbed {
# Export the name of the embedded system we are building for
function exportEmbed {
if [ -n "$1" ]; then
export "$1=1"
IMBEDTXT="for $1 "
EMBEDTXT="for $1 "
else
IMBEDTXT=""
EMBEDTXT=""
fi
}
@ -144,7 +144,7 @@ function exportImbed {
# Main code....
if [ -z "$1" ]; then
echo 'Usage: makerpm <RPMname> [<arch>] [<imbedded-system>]'
echo 'Usage: makerpm <RPMname> [<arch>] [<embedded-system>]'
exit 1
fi
@ -173,16 +173,16 @@ fi
if [ "$1" = "xCAT" -o "$1" = "xCATsn" ]; then
exportImbed $3
exportEmbed $3
makexcat $1 $2
elif [ "$1" = "xCAT-nbroot" -o "$1" = "xCAT-nbroot-core" ]; then
exportImbed $3
exportEmbed $3
makenbroot xCAT-nbroot-core $2
elif [ "$1" = "xCAT-genesis-builder" ]; then
exportImbed $3
exportEmbed $3
makegenesis $1 $2
else # must be one of the noarch rpms
exportImbed $2
exportEmbed $2
makenoarch $1
fi