]> git.saurik.com Git - wxWidgets.git/commitdiff
The build can now start RPM builds on more than one linux target,
authorRobin Dunn <robin@alldunn.com>
Wed, 4 Aug 2004 22:27:18 +0000 (22:27 +0000)
committerRobin Dunn <robin@alldunn.com>
Wed, 4 Aug 2004 22:27:18 +0000 (22:27 +0000)
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

wxPython/distrib/all/build-all
wxPython/distrib/all/build-linux

index 516ddb2a261e7eff93f4df38f5b952ca7f093bbe..ea8290be535080c050cc0af0b5dea2f0ed623d9c 100755 (executable)
@@ -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,49 +235,49 @@ 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
index 7a632ae24cff880f81e2fe8748805716bdd62d11..67d3e28c558ef52f473abf37e6055384ba1fb54c 100755 (executable)
@@ -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!  -=-=-=-"