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
|
OSX_BUILD=/tmp/BUILD
|
||||||
|
|
||||||
|
|
||||||
# Alsmost the same... See below
|
# Alsmost the same... See below for hosts and other info
|
||||||
LINUX_HOST=rh9
|
|
||||||
LINUX_BUILD=/tmp/BUILD
|
LINUX_BUILD=/tmp/BUILD
|
||||||
|
|
||||||
|
|
||||||
@@ -236,48 +235,48 @@ fi
|
|||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Linux build
|
# Linux build
|
||||||
|
|
||||||
# This build is optional, check if the target machine is up and
|
# The remote Linux builds are different than those above. The source
|
||||||
# running
|
# RPMs were already built in the source step, and so building the
|
||||||
if [ $skiplinux != yes ]; then
|
# binary RPMs is a very simple followup step. Add to that the fact
|
||||||
if ping -q -c1 -w1 $LINUX_HOST > /dev/null; then
|
# that we need to build on more than one distro...
|
||||||
# the ping succeeded
|
|
||||||
skiplinux=no
|
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
|
else
|
||||||
# the ping failed, skip the build
|
|
||||||
skiplinux=yes
|
|
||||||
echo "-----------------------------------------------------------------"
|
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 "-----------------------------------------------------------------"
|
echo "-----------------------------------------------------------------"
|
||||||
|
return 0
|
||||||
fi
|
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..."
|
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 \
|
scp $STAGING_DIR/wxPython*.src.rpm \
|
||||||
distrib/all/build-linux \
|
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
|
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..."
|
echo "Fetching the results..."
|
||||||
scp root@$LINUX_HOST:$LINUX_BUILD/wxPythonGTK*.i[0-9]86.rpm $STAGING_DIR
|
scp "root@$host:$LINUX_BUILD/wxPythonGTK*.i[0-9]86.rpm" $STAGING_DIR
|
||||||
ssh root@$LINUX_HOST "rm $LINUX_BUILD/wxPythonGTK*.i[0-9]86.rpm"
|
ssh root@$host "rm $LINUX_BUILD/wxPythonGTK*.i[0-9]86.rpm"
|
||||||
fi
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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
|
# TODO: something to remove old builds from starship, keeping
|
||||||
# only N days worth
|
# only N days worth
|
||||||
|
|
||||||
# TODO: Send email to wxPython-dev?
|
# Send email to wxPython-dev
|
||||||
DATE=`date`
|
DATE=`date`
|
||||||
TO=wxPython-dev@lists.wxwidgets.org
|
TO=wxPython-dev@lists.wxwidgets.org
|
||||||
|
|
||||||
@@ -353,6 +352,29 @@ if [ $KIND = release ]; then
|
|||||||
rm $STAGING_DIR/*
|
rm $STAGING_DIR/*
|
||||||
rmdir $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`
|
echo "Finished at " `date`
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
@@ -23,36 +23,61 @@ if [ $# -lt 4]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DESTDIR=$1
|
RELEASE=$1
|
||||||
SKIPCLEAN=$2
|
SKIPCLEAN=$2
|
||||||
VERSION=$3
|
VERSION=$3
|
||||||
shift;shift;shift
|
shift;shift;shift
|
||||||
PYVER=$@
|
PYVER=$@
|
||||||
|
|
||||||
# Since this is probably a VMWare guest, make sure that the date and
|
rpmtop=_rpm_top
|
||||||
# time are correct
|
|
||||||
ntpdate gate.alldunn.com
|
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
|
for ver in $PYVER; do
|
||||||
echo "Building the RPMs for Python $ver..."
|
echo "Building the RPMs for Python $ver..."
|
||||||
myrpmbuild --rebuild wxPythonGTK-py$ver-$VERSION-1.src.rpm
|
for port in GTK GTK2; do
|
||||||
myrpmbuild --rebuild wxPythonGTK2-py$ver-$VERSION-1.src.rpm
|
rpm2cpio wxPython$port-py$ver-$VERSION-1.src.rpm | \
|
||||||
|
cpio --extract -R root.
|
||||||
|
DoRPMBuild -ba wxPython$port.spec
|
||||||
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
#echo "Copying RPMs to $DESTDIR..."
|
|
||||||
#cp wxPythonGTK*.i[0-9]86.rpm $DESTDIR
|
|
||||||
#cd $DESTDIR
|
|
||||||
|
|
||||||
|
|
||||||
if [ $SKIPCLEAN != yes ]; then
|
if [ $SKIPCLEAN != yes ]; then
|
||||||
echo "Cleaning up..."
|
echo "Cleaning up..."
|
||||||
for ver in $PYVER; do
|
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
|
done
|
||||||
|
rm *.spec *.tar.gz
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "-=-=-=- Goodbye! -=-=-=-"
|
echo "-=-=-=- Goodbye! -=-=-=-"
|
||||||
|
Reference in New Issue
Block a user