From: <wda...@us...> - 2010-06-13 15:48:15
|
Revision: 6008 http://oorexx.svn.sourceforge.net/oorexx/?rev=6008&view=rev Author: wdashley Date: 2010-06-13 15:48:07 +0000 (Sun, 13 Jun 2010) Log Message: ----------- Add new build scripts. Added Paths: ----------- websites/build/trunk/scripts/ websites/build/trunk/scripts/BuildEnv.txt websites/build/trunk/scripts/buildall.rex websites/build/trunk/scripts/kvmdomain.cls websites/build/trunk/scripts/real-build.rex websites/build/trunk/scripts/realrpmbuild.rex websites/build/trunk/scripts/virt-build.rex websites/build/trunk/scripts/virtdebbuild.rex websites/build/trunk/scripts/virtdocsbuild.rex websites/build/trunk/scripts/virtrpmbuild.rex websites/build/trunk/scripts/virtwinbuild.rex Added: websites/build/trunk/scripts/BuildEnv.txt =================================================================== --- websites/build/trunk/scripts/BuildEnv.txt (rev 0) +++ websites/build/trunk/scripts/BuildEnv.txt 2010-06-13 15:48:07 UTC (rev 6008) @@ -0,0 +1,44 @@ + KVM Environment Documentation + + +Naming KVM Images +================= + +A KVM image name should take the following form: + + osname-arch-type-number.img + +osname - The operating system name. Valid examples are + fedora13 + winxpsp3 + ubuntu501 +arch - The architecture of the operating system. Valid examples are: + i386 + x86_64 +type - The type of image. Valid examples are: + base - basic clonable image with no additional software installed. + orxbuild - base + everything needed to build ooRexx. +number - A numeric number which designate duplicate images. For instance, you + may want multible ooRexx build images of the same osname, arch and + type. This gives each image a unique name. + +Notes: + +1. All parts of the image name should be in LOWER case. + +Valid Example Names: + +fedora13-i386-base-1.img +winxpsp3-i386-base-1.img +ubuntu501-i386-base-1.img +fedora12-x86_64-orxbuild-2.img + + + + + + + + + + Added: websites/build/trunk/scripts/buildall.rex =================================================================== --- websites/build/trunk/scripts/buildall.rex (rev 0) +++ websites/build/trunk/scripts/buildall.rex 2010-06-13 15:48:07 UTC (rev 6008) @@ -0,0 +1,83 @@ +#!/usr/bin/rexx +/*----------------------------------------------------------------------------*/ +/* */ +/* Description: Do an ooRexx build on a virtual machine. */ +/* */ +/* Copyright (c) 2010-2010 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.ibm.com/developerworks/oss/CPLv1.0.htm */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Author: W. David Ashley */ +/* */ +/*----------------------------------------------------------------------------*/ + + +call directory '/home/dashley' + +call './virtbuild.rex' 'fedora13.i386.orxbuild.1' +call './virtbuild.rex' 'fedora13.x86_64.orxbuild.1' +call './virtbuild.rex' 'fedora13.i386.orxbuild.2' -- docs build +call './virtbuild.rex' 'opensuse11.i386.orxbuild.1' +call './virtbuild.rex' 'opensuse11.x86_64.orxbuild.1' +call './virtbuild.rex' 'ubuntu56.i386.orxbuild.1' +call './virtbuild.rex' 'winxpsp3.i386.orxbuild.1' +call './realbuild.rex' '?.?.?.?' -- opensuse zlinux build + +-- send an email that the builds are done +mime1 = .mimepart~new +mime1~addContent('The nightly builds of ooRexx are complete at' date('s') time()'.') +msg = .smtpmsg~new +msg~From = 'don...@bu...' +msg~addRecipient('dav...@gm...') +msg~Subject = 'Nightly builds of ooRexx are complete' +msg~Content = mime1 +smtpconx = .smtp~new +retc = smtpconx~connect('127.0.0.1', 'dashley', 'wda123aa') +if retc = -1 then do + do rsp over smtpconx~cmdresponse + say rsp + end + return + end +retc = smtpconx~send(msg) +if retc = -1 then do + do rsp over smtpconx~cmdresponse + say rsp + end + return + end +retc = smtpconx~logoff +return + + +::requires 'smtpmail.cls' + Added: websites/build/trunk/scripts/kvmdomain.cls =================================================================== --- websites/build/trunk/scripts/kvmdomain.cls (rev 0) +++ websites/build/trunk/scripts/kvmdomain.cls 2010-06-13 15:48:07 UTC (rev 6008) @@ -0,0 +1,118 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Description: Manage a KVM virtual domain. */ +/* */ +/* Copyright (c) 2010-2010 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.ibm.com/developerworks/oss/CPLv1.0.htm */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Author: W. David Ashley */ +/* */ +/*----------------------------------------------------------------------------*/ + + + +::class kvmdomain public + +::attribute domainname get +::attribute domainname set private + +::method init +expose domainname +use strict arg domainname +return + +::method startup +-- start a domain +use strict arg +domainid = self~name2id() +if domainid <> '-' then return -1 +self~docmd('virsh start' self~domainname) +domainid = self~name2id() +if domainid = '-' then return -1 +return 0 + +::method shutdown +-- shutdown a domain +use strict arg wait = .false +domainid = self~name2id() +if domainid = '-' then return 0 +self~docmd('virsh shutdown' self~domainname) +if wait = .true then do i = 1 to 10 + call SysSleep 5 + domainid = self~name2id() + if domainid = '-' then return 0 + end +return 0 + +::method reboot +-- reboot a domain +use strict arg +domainid = self~name2id() +if domainid = '-' then return 0 +self~docmd('virsh reboot' self~domainname) +return 0 + +::method status +-- return the status of a domain +use strict arg +status = self~doCmd('virsh list --all', , self~domainname) +if status = .nil then return 'unknown' +parse var status . . status +return status~strip() + +::method name2id private +-- if the domain is running converts a domain name to a domainid, +-- otherwise it returns .nil +use strict arg +id = self~doCmd('virsh domid' self~domainname, 1) +if id = .nil then return id +return id~strip() + +::method doCmd private +-- perform the command and possibly return one line of the resulting output +use strict arg cmd, line = '', srch = '' +tmpname = SystempFileName('/tmp/kvmdomain.???') +address bash cmd '2>&1 >' tmpname +tmp = .stream~new(tmpname) +tmp~open('read') +arr = tmp~arrayin() +tmp~close() +call SysFileDelete tmpname +if line = '' & srch = '' then return .nil +if line <> '' & srch <> '' then return .nil +if line <> '' & srch = '' then return arr[line] +else do mem over arr + if mem~pos(srch) > 0 then return mem + end +return .nil + Added: websites/build/trunk/scripts/real-build.rex =================================================================== --- websites/build/trunk/scripts/real-build.rex (rev 0) +++ websites/build/trunk/scripts/real-build.rex 2010-06-13 15:48:07 UTC (rev 6008) @@ -0,0 +1,53 @@ +#!/usr/bin/rexx +/*----------------------------------------------------------------------------*/ +/* */ +/* Description: Do an ooRexx build on a virtual machine. */ +/* */ +/* Copyright (c) 2010-2010 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.ibm.com/developerworks/oss/CPLv1.0.htm */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Author: W. David Ashley */ +/* */ +/*----------------------------------------------------------------------------*/ + + +cmdline = argv(1)~strip() +parse var cmdline userid ipaddr . + +'ssh' userid'@'ipaddr 'realrpmbuild.rex' + +-- return an ok +return 0 + + + Added: websites/build/trunk/scripts/realrpmbuild.rex =================================================================== --- websites/build/trunk/scripts/realrpmbuild.rex (rev 0) +++ websites/build/trunk/scripts/realrpmbuild.rex 2010-06-13 15:48:07 UTC (rev 6008) @@ -0,0 +1,183 @@ +#!/usr/bin/rexx +/*----------------------------------------------------------------------------*/ +/* */ +/* Description: This is the build script for any rpm-based external OS. */ +/* */ +/* Copyright (c) 2010-2010 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.ibm.com/developerworks/oss/CPLv1.0.htm */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Author: W. David Ashley */ +/* */ +/*----------------------------------------------------------------------------*/ + + +-- platform specific variables! +-- osname = 'fedora13-i386' +-- osname = 'fedora13-i386' +-- osname = 'fedora13-x86_64' +-- osname = 'opensuse11-i386' +-- osname = 'opensuse11-x86_64' +osname = 'SLES11-s390x' +-- osname = 'winxpsp3-i386' + +-- Initialization +build = .build~new() +build~homedir = '/home/'userid() -- always do first! +-- build~builddir = build~homedir'/buildorx' +build~builddir = '/data1/buildorx' -- value for oorexx.osdl.marist.edu +build~targetdir = '/home/dashley/website/trunk/docroot/builds/interpreter-main' +build~osname = osname + +-- Set our home directory +call directory build~homedir + +-- Do the build +build~build_rpm() + +-- Cleanup +'scp' self~homedir'/BuildRPM.log' 'da...@bu...:/home/dashley/website/trunk/builds/status/' ||, + date('S') || self~osname +call SysFileDelete(self~homedir'/BuildRPM.log') +return + + +/*----------------------------------------------------------------------------*/ +/* Class: build */ +/*----------------------------------------------------------------------------*/ + +::class build public +::method init +return + +/*----------------------------------------------------------------------------*/ +/* Attributes: */ +/*----------------------------------------------------------------------------*/ + +::attribute svnrevision +::attribute homedir +::attribute targetdir +::attribute builddir -- the temp build dir +::attribute osname + +/*----------------------------------------------------------------------------*/ +/* Method: log */ +/*----------------------------------------------------------------------------*/ + +::method log +-- log messages +use strict arg msg +strm = .stream~new(self~homedir'/BuildRPM.log') +strm~open('write append') +msg = date('S') time('N') msg +say msg +strm~lineout(msg) +strm~close() +return + +/*----------------------------------------------------------------------------*/ +/* Method: getsvnrevision */ +/*----------------------------------------------------------------------------*/ + +::method getsvnrevision +verlocal = './temp.ver' +'svnversion >' verlocal +strm = .stream~new(verlocal) +retc = strm~open('read') +if retc <> 'READY:' then return '' +svnver = strm~lineIn() +retc = strm~close() +if svnver = '' then svnver = 'unknown' +return svnver + +/*----------------------------------------------------------------------------*/ +/* Method: build_rpm */ +/*----------------------------------------------------------------------------*/ + +::method build_rpm +self~log('Starting build.') +buildrpt = self~osname'.buildrpt.txt' +savedir = directory() +-- create temp dir and checkout the source +'rm -rf' self~builddir -- make sure the subdir is erased +'mkdir' self~builddir +'svn co http://oorexx.svn.sourceforge.net/svnroot/oorexx/main/trunk/' self~builddir +call directory self~builddir +-- see if we have already built this revision +svnver = self~getsvnrevision() +newdir = self~targetdir'/'svnver'/'self~osname +if self~targetexists('dashley', 'build.oorexx.org', newdir) = .false then do + -- build the rpm + './bootstrap 2>&1 | tee -a' buildrpt + './configure 2>&1 | tee -a' buildrpt + 'make rpm 2>&1 | tee -a' buildrpt + -- copy the results to the host + 'ssh da...@bu... "mkdir -p' newdir'"' + if SysIsFileDirectory('./rpm/RPMS/i386') then , + 'scp ./rpm/RPMS/i386/ooRexx*.rpm da...@bu...:'newdir + else if SysIsFileDirectory('./rpm/RPMS/i486') then , + 'scp ./rpm/RPMS/i486/ooRexx*.rpm da...@bu...:'newdir + else if SysIsFileDirectory('./rpm/RPMS/i586') then , + 'scp ./rpm/RPMS/i586/ooRexx*.rpm da...@bu...:'newdir + else if SysIsFileDirectory('./rpm/RPMS/i686') then , + 'scp ./rpm/RPMS/i686/ooRexx*.rpm da...@bu...:'newdir + else if SysIsFileDirectory('./rpm/RPMS/x86_64') then , + 'scp ./rpm/RPMS/x86_64/ooRexx*.rpm da...@bu...:'newdir + else if SysIsFileDirectory('./rpm/RPMS/s390x') then , + 'scp ./rpm/RPMS/s390x/ooRexx*.rpm da...@bu...:'newdir + else if SysIsFileDirectory('./rpm/RPMS/s390') then , + 'scp ./rpm/RPMS/s390/ooRexx*.rpm da...@bu...:'newdir + else nop -- it must not be a supported rpm type + 'scp' buildrpt 'da...@bu...:'newdir + end +-- remove everything +call directory savedir +'rm -rf' self~builddir +self~log('Finished build.') +return + +/*----------------------------------------------------------------------------*/ +/* Method: targetexist */ +/*----------------------------------------------------------------------------*/ + +::method targetexists +use strict arg userid, host, target +tempf = '/var/orxbuild.tmp' +'ssh' userid'@'host '"ls -l' target'" >' tempf +strm = .stream~new(tempf) +strm~open('read') +arr = strm~arrayin() +strm~close() +if arr~items() = 0 then return .false +if arr[1]~pos('cannot access') > 0 then return .false +return .true + Added: websites/build/trunk/scripts/virt-build.rex =================================================================== --- websites/build/trunk/scripts/virt-build.rex (rev 0) +++ websites/build/trunk/scripts/virt-build.rex 2010-06-13 15:48:07 UTC (rev 6008) @@ -0,0 +1,80 @@ +#!/usr/bin/rexx +/*----------------------------------------------------------------------------*/ +/* */ +/* Description: Do an ooRexx build on a virtual machine. */ +/* */ +/* Copyright (c) 2010-2010 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.ibm.com/developerworks/oss/CPLv1.0.htm */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Author: W. David Ashley */ +/* */ +/*----------------------------------------------------------------------------*/ + + +domain = .kvmdomain~new(arg(1)~strip()) + +-- see if the domain is running +status = domain~status() +do i = 1 to 20 while status <> 'shut off' -- 20 minutes + call SysSleep 60 + status = domain~status() + end +if status <> 'shut off' then do + say date('s') time() 'Domain' arg(1)~strip() 'is running. No build can be performed at this time.' + return 4 + end + +-- start the domain +retc = domain~startup() +if retc <> 0 then do + say date('s') time() 'Domain' arg(1)~strip() 'startup failed. No build can be performed at this time.' + return 4 + end + +-- wait for the domain to shut down +status = domain~status() +do i = 1 to 20 while status <> 'shut off' -- 20 minutes + call SysSleep 60 + status = domain~status() + end +if status <> 'shut off' then do + say date('s') time() 'Domain' arg(1)~strip() 'is still running and the build has not finished within' i 'minutes.' + return 4 + end + +-- return an ok +return 0 + + +::requires 'kvmdomain.cls' + Added: websites/build/trunk/scripts/virtdebbuild.rex =================================================================== --- websites/build/trunk/scripts/virtdebbuild.rex (rev 0) +++ websites/build/trunk/scripts/virtdebbuild.rex 2010-06-13 15:48:07 UTC (rev 6008) @@ -0,0 +1,154 @@ +#!/usr/bin/rexx +/*----------------------------------------------------------------------------*/ +/* */ +/* Description: This is the build daemon for any rpm-based KVM guest OS. */ +/* */ +/* Copyright (c) 2010-2010 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.ibm.com/developerworks/oss/CPLv1.0.htm */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Author: W. David Ashley */ +/* */ +/*----------------------------------------------------------------------------*/ + + +-- platform specific variables! +-- osname = 'fedora13-i386' +-- osname = 'fedora13-i386' +-- osname = 'fedora13-x86_64' +osname = 'ubuntu56-i386' +-- osname = 'opensuse11-i386' +-- osname = 'opensuse11-x86_64' +-- osname = 'SLES11-s390x' +-- osname = 'winxpsp3-i386' + +-- Initialization +build = .build~new() +build~homedir = '/home/'userid() -- always do first! +build~builddir = build~homedir'/buildorx' +build~targetdir = '/imports/builds/interpreter-main' +build~osname = osname +build~builddate = date('S') + +-- Set our home directory +call directory build~homedir + +-- Do the build +build~build_deb() +return + + + +/*----------------------------------------------------------------------------*/ +/* Class: build */ +/*----------------------------------------------------------------------------*/ + +::class build public +::method init +return + +/*----------------------------------------------------------------------------*/ +/* Attributes: */ +/*----------------------------------------------------------------------------*/ + +::attribute svnrevision +::attribute homedir +::attribute targetdir +::attribute builddir -- the temp build dir +::attribute osname +::attribute builddate + +/*----------------------------------------------------------------------------*/ +/* Method: log */ +/*----------------------------------------------------------------------------*/ + +::method log +-- log messages +use strict arg msg +msg = date('S') time('N') msg +say msg +strm = .stream~new('/imports/builds/status/' || self~builddate() || '-' || self~osname) +strm~open('write append') +strm~lineout(msg) +strm~close() +return + +/*----------------------------------------------------------------------------*/ +/* Method: getsvnrevision */ +/*----------------------------------------------------------------------------*/ + +::method getsvnrevision +verlocal = './temp.ver' +'svnversion >' verlocal +strm = .stream~new(verlocal) +retc = strm~open('read') +if retc <> 'READY:' then return '' +svnver = strm~lineIn() +retc = strm~close() +if svnver = '' then svnver = 'unknown' +return svnver + +/*----------------------------------------------------------------------------*/ +/* build_deb */ +/*----------------------------------------------------------------------------*/ + +::method build_deb +use strict arg osname +self~log('Starting build.') +savedir = directory() +buildrpt = osname'.buildrpt.txt' +-- create temp dir and checkout the source +'mkdir' self~builddir() +'svn co http://oorexx.svn.sourceforge.net/svnroot/oorexx/main/trunk/ ./temp' +call directory './temp' +svnver = self~getsvnrevision() +newdir = self~targetdir'/'svnver'/'osname +if sysisfiledirectory(newdir) = 0 then do + -- build the deb + self~log('Building SVN revision' svnver'.') + './bootstrap 2>&1 | tee -a' buildrpt + './configure --disable-static 2>&1 | tee -a' buildrpt + 'make deb 2>&1 | tee -a' buildrpt + -- copy the results to the host + 'mkdir -p' newdir + 'cp ../oorexx*.deb' newdir + 'cp' buildrpt newdir + end +else self~log('This was a duplicate build request for SVN revision' svnver'.') +-- remove everything +call directory savedir +'rm -rf' self~builddir() +self~log('Finished build.') +-- shutdown the system +-- 'sudo shutdown -h now' +return + Property changes on: websites/build/trunk/scripts/virtdebbuild.rex ___________________________________________________________________ Added: svn:executable + * Added: websites/build/trunk/scripts/virtdocsbuild.rex =================================================================== --- websites/build/trunk/scripts/virtdocsbuild.rex (rev 0) +++ websites/build/trunk/scripts/virtdocsbuild.rex 2010-06-13 15:48:07 UTC (rev 6008) @@ -0,0 +1,171 @@ +#!/usr/bin/rexx +/*----------------------------------------------------------------------------*/ +/* */ +/* Description: This is the build script for the docs KVM guest. */ +/* */ +/* Copyright (c) 2010-2010 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.ibm.com/developerworks/oss/CPLv1.0.htm */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Author: W. David Ashley */ +/* */ +/*----------------------------------------------------------------------------*/ + + +-- platform specific variables! +-- osname = 'fedora13-i386' +osname = 'fedora13-docs' +-- osname = 'fedora13-x86_64' +-- osname = 'opensuse11-i386' +-- osname = 'opensuse11-x86_64' +-- osname = 'SLES11-s390x' +-- osname = 'winxpsp3-i386' + +-- Initialization +build = .build~new() +build~homedir = '/home/'userid() -- always do first! +build~builddir = build~homedir'/buildorx' +build~targetdir = '/imports/builds/docs' +build~osname = osname +build~builddate = date('S') + +-- Set our home directory +call directory build~homedir + +-- Do the build +build~build_docs() +return + + +/*----------------------------------------------------------------------------*/ +/* Class: build */ +/*----------------------------------------------------------------------------*/ + +::class build public +::method init +return + +/*----------------------------------------------------------------------------*/ +/* Attributes: */ +/*----------------------------------------------------------------------------*/ + +::attribute svnrevision +::attribute homedir +::attribute targetdir +::attribute builddir -- the temp build dir +::attribute osname +::attribute builddate + +/*----------------------------------------------------------------------------*/ +/* build_docs */ +/*----------------------------------------------------------------------------*/ + +::method build_docs +use strict arg +call log 'Starting build.' +buildrpt = './docs-buildrpt.txt' +savedir = directory() +-- create temp dir and checkout the source +tempdir = './builddocs' +'rm -rf' tempdir -- make sure the subdir is erased +'mkdir' tempdir +'svn co http://oorexx.svn.sourceforge.net/svnroot/oorexx/docs/trunk' tempdir +call directory tempdir +-- see if we have already built this revision +svnver = self~getsvnrevision() +newdir = self~targetdir'/'svnver +if \sysisfiledirectory(newdir) then do + -- build the docs + 'make all 2>&1 | tee -a' buildrpt + -- copy the results to the host + 'mkdir' newdir + 'cp ./oodialog/oodialog.pdf' newdir + 'cp ./oodialog/oodialog-html.zip' newdir + 'cp ./readme/readme.pdf' newdir + 'cp ./readme/readme.html' newdir + 'cp ./rexxpg/rexxpg.pdf' newdir + 'cp ./rexxpg/rexxpg-html.zip' newdir + 'cp ./rexxref/rexxref.pdf' newdir + 'cp ./rexxref/rexxref-html.zip' newdir + 'cp ./rxftp/rxftp.pdf' newdir + 'cp ./rxftp/rxftp-html.zip' newdir + 'cp ./rxmath/rxmath.pdf' newdir + 'cp ./rxmath/rxmath-html.zip' newdir + 'cp ./rxsock/rxsock.pdf' newdir + 'cp ./rxsock/rxsock-html.zip' newdir + 'cp ./rexxextensions/rexxextensions.pdf' newdir + 'cp ./rexxextensions/rexxextensions-html.zip' newdir + 'cp ./winextensions/winextensions.pdf' newdir + 'cp ./winextensions/winextensions-html.zip' newdir + 'cp' buildrpt newdir + end +else call log 'This was a duplicate build request.' +-- remove everything +call directory savedir +'rm -rf' tempdir +call log 'Finished build.' +-- shutdown the system +-- 'sudo shutdown -h now' +return + +/*----------------------------------------------------------------------------*/ +/* Method: getsvnrevision */ +/*----------------------------------------------------------------------------*/ + +::method getsvnrevision +verlocal = './temp.ver' +'svnversion >' verlocal +strm = .stream~new(verlocal) +retc = strm~open('read') +if retc <> 'READY:' then return '' +svnver = strm~lineIn() +retc = strm~close() +if svnver = '' then svnver = 'unknown' +return svnver + + +/*----------------------------------------------------------------------------*/ +/* log */ +/*----------------------------------------------------------------------------*/ + +::routine log +-- log messages +use strict arg msg +use strict arg msg +msg = date('S') time('N') msg +say msg +strm = .stream~new('/imports/builds/status/' || self~builddate() || '-' || self~osname) +strm~open('write append') +strm~lineout(msg) +strm~close() +return + Property changes on: websites/build/trunk/scripts/virtdocsbuild.rex ___________________________________________________________________ Added: svn:executable + * Added: websites/build/trunk/scripts/virtrpmbuild.rex =================================================================== --- websites/build/trunk/scripts/virtrpmbuild.rex (rev 0) +++ websites/build/trunk/scripts/virtrpmbuild.rex 2010-06-13 15:48:07 UTC (rev 6008) @@ -0,0 +1,171 @@ +#!/usr/bin/rexx +/*----------------------------------------------------------------------------*/ +/* */ +/* Description: This is the build script for any rpm-based KVM guest OS. */ +/* */ +/* Copyright (c) 2010-2010 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.ibm.com/developerworks/oss/CPLv1.0.htm */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Author: W. David Ashley */ +/* */ +/*----------------------------------------------------------------------------*/ + + +-- platform specific variables! +osname = 'fedora13-i386' +-- osname = 'fedora13-i386' +-- osname = 'fedora13-x86_64' +-- osname = 'opensuse11-i386' +-- osname = 'opensuse11-x86_64' +-- osname = 'SLES11-s390x' +-- osname = 'winxpsp3-i386' + +-- Initialization +build = .build~new() +build~homedir = '/home/'userid() -- always do first! +build~builddir = build~homedir'/buildorx' +build~targetdir = '/imports/builds/interpreter-main' +build~osname = osname +build~builddate = date('S') + +-- Set our home directory +call directory build~homedir + +-- Do the build +build~build_rpm() + +-- Cleanup +return + + +/*----------------------------------------------------------------------------*/ +/* Class: build */ +/*----------------------------------------------------------------------------*/ + +::class build public +::method init +return + +/*----------------------------------------------------------------------------*/ +/* Attributes: */ +/*----------------------------------------------------------------------------*/ + +::attribute svnrevision +::attribute homedir +::attribute targetdir +::attribute builddir -- the temp build dir +::attribute osname +::attribute builddate + +/*----------------------------------------------------------------------------*/ +/* Method: log */ +/*----------------------------------------------------------------------------*/ + +::method log +-- log messages +use strict arg msg +msg = date('S') time('N') msg +say msg +strm = .stream~new('/imports/builds/status/' || self~builddate() || '-' || self~osname) +strm~open('write append') +strm~lineout(msg) +strm~close() +return + +/*----------------------------------------------------------------------------*/ +/* Method: getsvnrevision */ +/*----------------------------------------------------------------------------*/ + +::method getsvnrevision +verlocal = './temp.ver' +'svnversion >' verlocal +strm = .stream~new(verlocal) +retc = strm~open('read') +if retc <> 'READY:' then return '' +svnver = strm~lineIn() +retc = strm~close() +if svnver = '' then svnver = 'unknown' +return svnver + +/*----------------------------------------------------------------------------*/ +/* Method: build_rpm */ +/*----------------------------------------------------------------------------*/ + +::method build_rpm +self~log('Starting build.') +buildrpt = self~osname'.buildrpt.txt' +savedir = directory() +-- create temp dir and checkout the source +'rm -rf' self~builddir -- make sure the subdir is erased +'mkdir' self~builddir +'svn co http://oorexx.svn.sourceforge.net/svnroot/oorexx/main/trunk/' self~builddir +call directory self~builddir +-- see if we have already built this revision +svnver = self~getsvnrevision() +newdir = self~targetdir'/'svnver'/'self~osname +if \sysisfiledirectory(newdir) then do + -- build the rpm + self~log('Building SVN revision' svnver'.') + './bootstrap 2>&1 | tee -a' buildrpt + './configure 2>&1 | tee -a' buildrpt + 'make rpm 2>&1 | tee -a' buildrpt + -- copy the results to the host + 'mkdir -p' newdir + if SysIsFileDirectory('./rpm/RPMS/i386') then , + 'cp ./rpm/RPMS/i386/ooRexx*.rpm' newdir + else if SysIsFileDirectory('./rpm/RPMS/i486') then , + 'cp ./rpm/RPMS/i486/ooRexx*.rpm' newdir + else if SysIsFileDirectory('./rpm/RPMS/i586') then , + 'cp ./rpm/RPMS/i586/ooRexx*.rpm' newdir + else if SysIsFileDirectory('./rpm/RPMS/i686') then , + 'cp ./rpm/RPMS/i686/ooRexx*.rpm' newdir + else if SysIsFileDirectory('./rpm/RPMS/x86_64') then , + 'cp ./rpm/RPMS/x86_64/ooRexx*.rpm' newdir + else if SysIsFileDirectory('./rpm/RPMS/s390x') then , + 'cp ./rpm/RPMS/s390x/ooRexx*.rpm' newdir + else if SysIsFileDirectory('./rpm/RPMS/s390') then , + 'cp ./rpm/RPMS/s390/ooRexx*.rpm' newdir + else nop -- it must not be a supported rpm type + 'cp' buildrpt newdir + end +else do + self~log('This was a duplicate build request for SVN revision' svnver'.') + end +-- remove everything +call directory savedir +'rm -rf' self~builddir +self~log('Finished build.') +-- shutdown the system +-- 'sudo shutdown -h now' +return + Property changes on: websites/build/trunk/scripts/virtrpmbuild.rex ___________________________________________________________________ Added: svn:executable + * Added: websites/build/trunk/scripts/virtwinbuild.rex =================================================================== --- websites/build/trunk/scripts/virtwinbuild.rex (rev 0) +++ websites/build/trunk/scripts/virtwinbuild.rex 2010-06-13 15:48:07 UTC (rev 6008) @@ -0,0 +1,165 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Description: This is the build script for the Windows KVM guest OS. */ +/* */ +/* Copyright (c) 2010-2010 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.ibm.com/developerworks/oss/CPLv1.0.htm */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Author: W. David Ashley */ +/* */ +/* Notes: */ +/* 1. On Windows we need to avoid any RexxUtil functions because they */ +/* reside in RXAPI and that gets stopped and restarted multiple times */ +/* during the build process. */ +/* */ +/*----------------------------------------------------------------------------*/ + + +-- initialization +hostbuilds = 's:' +builddir = 'c:\buildtemp' +osname = 'winxpsp3-i386-orxbuild-1' +builddate = date('S') + +-- make sure our temp dir is empty +'rmdir /S /Q' builddir + +call log 'Starting build.' +call status hostbuilds, builddate, osname date('S') time('N') 'Starting build.' +say 'Performing SVN checkout' +-- create temp dir and checkout the source +'md' builddir +'svn co http://oorexx.svn.sourceforge.net/svnroot/oorexx/main/trunk/' builddir +call directory builddir +-- build the exe +call value 'SRC_DRV', 'c:', 'ENVIRONMENT' +call value 'SRC_DIR', '\buildtemp', 'ENVIRONMENT' +call setlatestdocs +svnver = getsvnrevision() +say 'Building ooRexx' +'makeorx.bat BOTH PACKAGE' +-- copy the results to the host +say 'Copying build output files to the server' +newdir = hostbuilds'\interpreter-main\'svnver +'md' newdir +'copy ooRexx*.exe' newdir +'copy Win32Rel\Win32Rel.log' newdir'\Win32RelLog.txt' +'copy Win32Dbg\Win32Dbg.log' newdir'\Win32DbgLog.txt' +-- remove everything +say 'Cleanup' +call directory 'c:\' +'rmdir /S /Q' builddir +call log 'Finished build.' +call status hostbuilds, builddate, osname date('S') time('N') 'Finished build.' +-- shut down the system +-- 'shutdown -s' +return + + +getline: procedure +use arg filename +strm = .stream~new(filename) +retc = strm~open('read') +if retc <> 'READY:' then return '' +line = strm~lineIn() +retc = strm~close() +return line + +getsvnrevision: procedure +'svn info > svntemp' +strm = .stream~new('svntemp') +retc = strm~open('read') +if retc <> 'READY:' then return 'unknown' +lines = strm~arrayIn() +retc = strm~close() +revline = lines[5] +parse var revline . svnver . +if svnver = '' then svnver = 'unknown' +say 'The SVN Revision is' svnver +return svnver + +setlatestdocs: +-- Do not use SysFileTree here! RXAPI may not be running! +'dir /aD /oN' hostbuilds'\docs > dirlist.txt' +strm = .stream~new('dirlist.txt') +retc = strm~open('read') +if retc <> 'READY:' then return 'unknown' +lines = strm~arrayIn() +retc = strm~close() +dirline = lines[lines~items() - 2] +parse var dirline . . . . docdir . -- this only works for WinXP +if docdir = '' then do + parse var dirline . . . docdir . -- this works for Win2k + end +if docdir <> '' then do + call value 'DOC_LOCATION', hostbuilds'\docs\'docdir, 'ENVIRONMENT' + end +'del dirlist.txt' +say 'The doc_location is' hostbuilds'\docs\'docdir +return + + +/*----------------------------------------------------------------------------*/ +/* log */ +/*----------------------------------------------------------------------------*/ + +::routine log +-- log messages +use strict arg msg +strm = .stream~new('c:\BuildWinEXEi386.log') +strm~open('write append') +msg = date('S') time('N') msg +say msg +strm~lineout(msg) +strm~close() +return + + +/*----------------------------------------------------------------------------*/ +/* status */ +/*----------------------------------------------------------------------------*/ + +::routine status +use strict arg hostbuilds, builddate, msg +strm = .stream~new(hostbuilds'\status\' || builddate) +strm~open('write append') +strm~lineout(msg) +strm~close() +return + + + + + + + Property changes on: websites/build/trunk/scripts/virtwinbuild.rex ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |