The build can now start RPM builds on more than one linux target,
currently set up to do RH9 and FC2. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28628 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -26,8 +26,7 @@ OSX_HOST=bigmac
|
||||
OSX_BUILD=/tmp/BUILD
|
||||
|
||||
|
||||
# Alsmost the same... See below
|
||||
LINUX_HOST=rh9
|
||||
# Alsmost the same... See below for hosts and other info
|
||||
LINUX_BUILD=/tmp/BUILD
|
||||
|
||||
|
||||
@@ -236,48 +235,48 @@ fi
|
||||
# ---------------------------------------------------------------------------
|
||||
# Linux build
|
||||
|
||||
# This build is optional, check if the target machine is up and
|
||||
# running
|
||||
if [ $skiplinux != yes ]; then
|
||||
if ping -q -c1 -w1 $LINUX_HOST > /dev/null; then
|
||||
# the ping succeeded
|
||||
skiplinux=no
|
||||
# The remote Linux builds are different than those above. The source
|
||||
# RPMs were already built in the source step, and so building the
|
||||
# binary RPMs is a very simple followup step. Add to that the fact
|
||||
# that we need to build on more than one distro...
|
||||
|
||||
function DoLinuxBuild {
|
||||
local host=$1
|
||||
local reltag=$2
|
||||
shift;shift
|
||||
local pyver=$@
|
||||
|
||||
# test if the target machine is online
|
||||
if ping -q -c1 -w1 $host > /dev/null; then
|
||||
echo "-----------------------------------------------------------------"
|
||||
echo " The $host machine is online, build continuing..."
|
||||
echo "-----------------------------------------------------------------"
|
||||
else
|
||||
# the ping failed, skip the build
|
||||
skiplinux=yes
|
||||
echo "-----------------------------------------------------------------"
|
||||
echo "The $LINUX_HOST machine is offline, skipping the binary RPM build."
|
||||
echo "The $host machine is offline, skipping the binary RPM build."
|
||||
echo "-----------------------------------------------------------------"
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ $skiplinux != yes ]; then
|
||||
echo "-=-=- Starting Linux build..."
|
||||
|
||||
# The remote linux build is a bit different than the others. The
|
||||
# SRPMs will have already been built in the initial source
|
||||
# building steps, the only thing that the remote build needs to
|
||||
# do is an "rpmbuild --rebuild" for each package. So we'll just
|
||||
# copy the build script over and execute it, there is no need to
|
||||
# unpack the tarball and most of the other steps...
|
||||
|
||||
|
||||
echo "Copying source files and build script..."
|
||||
ssh root@$LINUX_HOST "mkdir -p $LINUX_BUILD && rm -rf $LINUX_BUILD/*"
|
||||
ssh root@$host "mkdir -p $LINUX_BUILD && rm -rf $LINUX_BUILD/*"
|
||||
scp $STAGING_DIR/wxPython*.src.rpm \
|
||||
distrib/all/build-linux \
|
||||
root@$LINUX_HOST:$LINUX_BUILD
|
||||
root@$host:$LINUX_BUILD
|
||||
|
||||
echo "Running build script on $LINUX_HOST..."
|
||||
echo "Running build script on $host..."
|
||||
cmd=./build-linux
|
||||
ssh root@$LINUX_HOST "cd $LINUX_BUILD && $cmd $LINUX_BUILD $skipclean $VERSION $PYVER"
|
||||
ssh root@$host "cd $LINUX_BUILD && ./build-linux $reltag $skipclean $VERSION $pyver"
|
||||
|
||||
echo "Fetching the results..."
|
||||
scp root@$LINUX_HOST:$LINUX_BUILD/wxPythonGTK*.i[0-9]86.rpm $STAGING_DIR
|
||||
ssh root@$LINUX_HOST "rm $LINUX_BUILD/wxPythonGTK*.i[0-9]86.rpm"
|
||||
fi
|
||||
scp "root@$host:$LINUX_BUILD/wxPythonGTK*.i[0-9]86.rpm" $STAGING_DIR
|
||||
ssh root@$host "rm $LINUX_BUILD/wxPythonGTK*.i[0-9]86.rpm"
|
||||
|
||||
}
|
||||
|
||||
|
||||
DoLinuxBuild co-rh9 RH9 $PYVER
|
||||
DoLinuxBuild co-fc2 FC2 2.3
|
||||
|
||||
|
||||
|
||||
@@ -309,7 +308,7 @@ if [ $KIND = daily ]; then
|
||||
# TODO: something to remove old builds from starship, keeping
|
||||
# only N days worth
|
||||
|
||||
# TODO: Send email to wxPython-dev?
|
||||
# Send email to wxPython-dev
|
||||
DATE=`date`
|
||||
TO=wxPython-dev@lists.wxwidgets.org
|
||||
|
||||
@@ -353,6 +352,29 @@ if [ $KIND = release ]; then
|
||||
rm $STAGING_DIR/*
|
||||
rmdir $STAGING_DIR
|
||||
|
||||
# Send email to wxPython-dev
|
||||
DATE=`date`
|
||||
TO=wxPython-dev@lists.wxwidgets.org
|
||||
|
||||
cat <<EOF | /usr/sbin/sendmail $TO
|
||||
From: R'bot <rbot@wxpython.org>
|
||||
To: $TO
|
||||
Subject: New release candidate build uploaded
|
||||
Date: $DATE
|
||||
|
||||
Hi,
|
||||
|
||||
A new RC build of wxPython has been uploaded to starship.
|
||||
|
||||
Version: $VERSION
|
||||
Pythons: $PYVER
|
||||
URL: http://starship.python.net/crew/robind/wxPython/preview/$VERSION
|
||||
|
||||
Have fun!
|
||||
R'bot
|
||||
|
||||
EOF
|
||||
|
||||
echo "Finished at " `date`
|
||||
exit 0
|
||||
fi
|
||||
|
@@ -23,36 +23,61 @@ if [ $# -lt 4]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DESTDIR=$1
|
||||
RELEASE=$1
|
||||
SKIPCLEAN=$2
|
||||
VERSION=$3
|
||||
shift;shift;shift
|
||||
PYVER=$@
|
||||
|
||||
# Since this is probably a VMWare guest, make sure that the date and
|
||||
# time are correct
|
||||
ntpdate gate.alldunn.com
|
||||
rpmtop=_rpm_top
|
||||
|
||||
function DoRPMBuild {
|
||||
echo "*** Setting up RPM build dirs"
|
||||
for dir in SPECS BUILD RPMS SRPMS tmp; do
|
||||
if [ ! -d $rpmtop/$dir ]; then
|
||||
mkdir -p $rpmtop/$dir
|
||||
fi
|
||||
done
|
||||
if [ ! -e $rpmtop/SOURCES ]; then
|
||||
ln -s $PWD $rpmtop/SOURCES
|
||||
fi
|
||||
|
||||
rpmbuild --define "_topdir $PWD/$rpmtop" \
|
||||
--define "_tmppath $PWD/$rpmtop/tmp" \
|
||||
--define "release $RELEASE" \
|
||||
$@
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
return $?
|
||||
fi
|
||||
|
||||
echo "*** Moving RPMs to ."
|
||||
find $rpmtop -name "*.rpm"
|
||||
mv -f `find $rpmtop -name "*.rpm"` .
|
||||
|
||||
echo "*** Cleaning up $rpmtop"
|
||||
rm -rf $rpmtop
|
||||
}
|
||||
|
||||
|
||||
cd $DESTDIR
|
||||
|
||||
for ver in $PYVER; do
|
||||
echo "Building the RPMs for Python $ver..."
|
||||
myrpmbuild --rebuild wxPythonGTK-py$ver-$VERSION-1.src.rpm
|
||||
myrpmbuild --rebuild wxPythonGTK2-py$ver-$VERSION-1.src.rpm
|
||||
for port in GTK GTK2; do
|
||||
rpm2cpio wxPython$port-py$ver-$VERSION-1.src.rpm | \
|
||||
cpio --extract -R root.
|
||||
DoRPMBuild -ba wxPython$port.spec
|
||||
done
|
||||
done
|
||||
|
||||
|
||||
#echo "Copying RPMs to $DESTDIR..."
|
||||
#cp wxPythonGTK*.i[0-9]86.rpm $DESTDIR
|
||||
#cd $DESTDIR
|
||||
|
||||
|
||||
if [ $SKIPCLEAN != yes ]; then
|
||||
echo "Cleaning up..."
|
||||
for ver in $PYVER; do
|
||||
rm wxPythonGTK-py$ver-$VERSION-1.src.rpm
|
||||
rm wxPythonGTK-py$ver-$VERSION-*.src.rpm
|
||||
rm wxPythonGTK2-py$ver-$VERSION-*.src.rpm
|
||||
done
|
||||
rm *.spec *.tar.gz
|
||||
fi
|
||||
|
||||
echo "-=-=-=- Goodbye! -=-=-=-"
|
||||
|
Reference in New Issue
Block a user