Author: cwittich Date: Mon Mar 10 06:57:55 2008 New Revision: 32639
URL: http://svn.reactos.org/svn/reactos?rev=3D32639&view=3Drev Log: add current buildbot scripts
Added: trunk/tools/buildbot/scripts/Linux/build.32 (with props) trunk/tools/buildbot/scripts/Linux/build.64 (with props) trunk/tools/buildbot/scripts/Linux/silence (with props) trunk/tools/buildbot/scripts/Linux/simulate (with props) trunk/tools/buildbot/scripts/Linux/svn-clean (with props) trunk/tools/buildbot/scripts/Linux/time (with props) Modified: trunk/tools/buildbot/scripts/Linux/makeclean trunk/tools/buildbot/scripts/Linux/uploadiso
Added: trunk/tools/buildbot/scripts/Linux/build.32 URL: http://svn.reactos.org/svn/reactos/trunk/tools/buildbot/scripts/Linux/= build.32?rev=3D32639&view=3Dauto =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/tools/buildbot/scripts/Linux/build.32 (added) +++ trunk/tools/buildbot/scripts/Linux/build.32 Mon Mar 10 06:57:55 2008 @@ -1,0 +1,16 @@ +#!/bin/bash + +TIME=3D"$(dirname $0)/time" + +$TIME bash -c "( + export CCACHE_DIR=3D/opt/buildbot/ccache + export CCACHE_PATH=3D/usr/local/rosbe/bin:$PATH + export CCACHE_HARDLINK=3D1 + export PATH=3D/usr/lib/ccache/bin:/usr/local/rosbe/bin:$PATH + export ROS_INTERMEDIATE=3D/mnt/ramdisk/buildbot/debug/obj + export ROS_OUTPUT=3D/mnt/ramdisk/buildbot/debug/output + export ROS_RBUILDFLAGS=3D"-dd" + export LANG=3Den_US + make -j10 $@ +)" +
Propchange: trunk/tools/buildbot/scripts/Linux/build.32 ---------------------------------------------------------------------------= --- svn:eol-style =3D native
Added: trunk/tools/buildbot/scripts/Linux/build.64 URL: http://svn.reactos.org/svn/reactos/trunk/tools/buildbot/scripts/Linux/= build.64?rev=3D32639&view=3Dauto =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/tools/buildbot/scripts/Linux/build.64 (added) +++ trunk/tools/buildbot/scripts/Linux/build.64 Mon Mar 10 06:57:55 2008 @@ -1,0 +1,16 @@ +#!/bin/bash + +TIME=3D"$(dirname $0)/time" + +$TIME bash -c "( + export CCACHE_DIR=3D/opt/buildbot/ccache + export CCACHE_PATH=3D/usr/local/rosbe/bin:$PATH + export CCACHE_HARDLINK=3D1 + export PATH=3D/usr/lib64/ccache/bin:$PATH + export ROS_INTERMEDIATE=3D/mnt/ramdisk/buildbot/debug/obj + export ROS_OUTPUT=3D/mnt/ramdisk/buildbot/debug/output + export ROS_RBUILDFLAGS=3D"-dd" + export LANG=3Den_US + make -j8 $@ +)" +
Propchange: trunk/tools/buildbot/scripts/Linux/build.64 ---------------------------------------------------------------------------= --- svn:eol-style =3D native
Modified: trunk/tools/buildbot/scripts/Linux/makeclean URL: http://svn.reactos.org/svn/reactos/trunk/tools/buildbot/scripts/Linux/= makeclean?rev=3D32639&r1=3D32638&r2=3D32639&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/tools/buildbot/scripts/Linux/makeclean (original) +++ trunk/tools/buildbot/scripts/Linux/makeclean Mon Mar 10 06:57:55 2008 @@ -1,14 +1,37 @@ -#!/bin/sh +#!/bin/bash =
-echo Cleaning... +TIME=3D"$(dirname $0)/time" =
-if [ -f makefile.auto ] -then - rm makefile.auto -fi +OBJ=3D${ROS_INTERMEDIATE:=3Dobj-i386} +OUTPUT=3D${ROS_OUTPUT:=3Doutput-i386} =
-rm -r obj-i386 -rm -r output-i386 -rm *.iso -echo done. -exit 0 +$TIME bash -c "( =
+ echo -e '\n* Cleaning...' + + if [ -f makefile.auto ]; then + echo ' * makefile.auto' + rm makefile.auto + fi + + echo ' * obj-i386' + rm -rf $OBJ + echo ' * output-i386' + rm -rf $OUTPUT + echo ' * CD images' + rm -f *.iso + + echo -e '\n* Compiling tools...' + ../../build clean + echo -e '* Done compiling tools.' + + echo -e '\n* Deleting unversioned files from the source...' + ../../svn-clean --exclude '^.buildbot-sourcedata' + + if [ $# -eq 1 ]; then + if [ "${1}" =3D "rel" ]; then + cat config.template.rbuild | sed 's/"DBG" value=3D"1"/"DBG" va= lue=3D"0"/' > config.rbuild + fi + fi + + exit 0 +)"
Added: trunk/tools/buildbot/scripts/Linux/silence URL: http://svn.reactos.org/svn/reactos/trunk/tools/buildbot/scripts/Linux/= silence?rev=3D32639&view=3Dauto =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/tools/buildbot/scripts/Linux/silence (added) +++ trunk/tools/buildbot/scripts/Linux/silence Mon Mar 10 06:57:55 2008 @@ -1,0 +1,3 @@ +#!/bin/sh + +$@ >> $BUILDLOG 2>&1
Propchange: trunk/tools/buildbot/scripts/Linux/silence ---------------------------------------------------------------------------= --- svn:eol-style =3D native
Added: trunk/tools/buildbot/scripts/Linux/simulate URL: http://svn.reactos.org/svn/reactos/trunk/tools/buildbot/scripts/Linux/= simulate?rev=3D32639&view=3Dauto =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/tools/buildbot/scripts/Linux/simulate (added) +++ trunk/tools/buildbot/scripts/Linux/simulate Mon Mar 10 06:57:55 2008 @@ -1,0 +1,34 @@ +#!/bin/sh + +HERE=3D"$(pwd $(dirname $0))" +TIME=3D$HERE/time + +SILENCE=3D$HERE/silence +BUILDLOG=3D$HERE/simulate.log + +cd fullrel/build +export BUILDLOG + +echo "*** STEP 1: svn update"|tee -a $BUILDLOG +$TIME $SILENCE svn update --revision HEAD --non-interactive +echo + +echo "*** STEP 2: makeclean"|tee -a $BUILDLOG +$TIME $SILENCE ../../makeclean +echo + +echo "*** STEP 3: build all"|tee -a $BUILDLOG +$TIME $SILENCE ../../build +echo + +echo "*** STEP 4: build bootcd"|tee -a $BUILDLOG +$TIME $SILENCE ../../build bootcd +echo + +echo "*** STEP 5: build livecd"|tee -a $BUILDLOG +$TIME $SILENCE ../../build livecd +echo + +echo "*** STEP 6: uploadiso dbg"|tee -a $BUILDLOG +#$TIME $SILENCE ../../uploadiso dbg +echo
Propchange: trunk/tools/buildbot/scripts/Linux/simulate ---------------------------------------------------------------------------= --- svn:eol-style =3D native
Added: trunk/tools/buildbot/scripts/Linux/svn-clean URL: http://svn.reactos.org/svn/reactos/trunk/tools/buildbot/scripts/Linux/= svn-clean?rev=3D32639&view=3Dauto =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/tools/buildbot/scripts/Linux/svn-clean (added) +++ trunk/tools/buildbot/scripts/Linux/svn-clean Mon Mar 10 06:57:55 2008 @@ -1,0 +1,248 @@ +#!/usr/bin/perl + +# svn-clean - Wipes out unversioned files from SVN working copy. +# Copyright (C) 2004, 2005, 2006 Simon Perreault +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, U= SA. + +# Change by Christoph von Wittich: +# disabled usage of SVN::Client because of brolen --execlude + +use strict; +use Cwd; +use File::Path; +use Getopt::Long; +use Pod::Usage; + +# Try to use SVN module if available. +#my $use_svn_module =3D eval { require SVN::Client }; + +my $CWD =3D getcwd; + +my @exclude =3D ""; +my $force =3D 0; +my $quiet =3D 0; +my $print =3D 0; +my $help =3D 0; +my $man =3D 0; +my $nonrecursive =3D 0; +my $path =3D $CWD; +GetOptions( + "exclude=3Ds" =3D> @exclude, + "force" =3D> $force, + "non-recursive|N" =3D> $nonrecursive, + "quiet" =3D> $quiet, + "print" =3D> $print, + "help|?" =3D> $help, + "man" =3D> $man +) or pod2usage(2); +pod2usage(1) if $help; +pod2usage( -exitstatus =3D> 0, -verbose =3D> 2 ) if $man; +$path =3D Cwd::abs_path( $ARGV[0] ) if @ARGV; + +# Precompile regexes. +$_ =3D qr/$_/ foreach @exclude; + +#if ($use_svn_module) { + + # Create SVN client object. No need for connection to remote server. + # my $ctx =3D new SVN::Client; + + # Call handler function with status info for each file. + #$ctx->status( $path, undef, &clean, !$nonrecursive, 1, 0, 1 ); +#} +#else { +# warn "Warning: Not using SVN Perl modules, this might be slow.\n" +# unless $quiet; + + # Build svn client command + my @command =3D qw(svn status --no-ignore -v); + if ($nonrecursive) { + push @command, '-N'; + } + + # Main file-wiping loop. + if ( $^O eq 'MSWin32' ) { + + # Perl on Windows currently doesn't have list pipe opens. + open SVN, join( ' ', @command, @ARGV ) . '|' + or die "Can't call program "svn": $!\n"; + } + else { + open SVN, "-|", @command, @ARGV + or die "Can't call program "svn": $!\n"; + } + LINE: while (<SVN>) { + if (/^([?ID])/) { + my $file =3D (split)[-1]; + foreach my $ex (@exclude) { + if ( $file =3D~ $ex ) { + print "excluded $file\n" unless $quiet or $print; + next LINE; + } + } + if ( $1 eq 'D' ) { + next unless -f $file; + } + else { + next unless -e $file; + } + if ($print) { + print "$file\n"; + } + else { + rmtree( $file, !$quiet, !$force ); + } + } + } +#} + +# Main file-wiping function. +sub clean { + my ( $path, $status ) =3D @_; + + # Use relative path for pretty-printing. + if ( $path =3D~ s/^\Q$CWD\E/?//o ) { + + # If the substitution succeeded, we should have a relative path. M= ake + # sure we don't delete critical stuff. + return if $path =3D~ /^//; + } + + # Find files needing to be removed. + if ( $status->text_status =3D=3D $SVN::Wc::Status::unversioned + or $status->text_status =3D=3D $SVN::Wc::Status::ignored + or $status->text_status =3D=3D $SVN::Wc::Status::deleted ) + { + foreach my $ex (@exclude) { + if ( $path =3D~ $ex ) { + print "excluded $path\n" unless $quiet or $print; + return; + } + } + + # Make sure the file exists before removing it. Do not remove dele= ted + # directories as they are needed to remove the files they contain = when + # committing. + lstat $path or stat $path; + if ( + -e _ + and ( not -d _ + or $status->text_status !=3D $SVN::Wc::Status::deleted ) + ) + { + if ($print) { + print "$path\n"; + } + else { + rmtree( $path, !$quiet, !$force ); + } + } + } +} + +__END__ + +=3Dhead1 NAME + +svn-clean - Wipes out unversioned files from Subversion working copy + +=3Dhead1 SYNOPSIS + +svn-clean [options] [directory or file ...] + +=3Dhead1 DESCRIPTION + +B<svn-clean> will scan the given files and directories recursively and find +unversioned files and directories (files and directories that are not pres= ent in +the Subversion repository). After the scan is done, these files and direct= ories +will be deleted. + +If no file or directory is given, B<svn-clean> defaults to the current dir= ectory +("."). + +B<svn-clean> uses the SVN Perl modules if they are available. This is much +faster than parsing the output of the B<svn> command-line client. + +=3Dhead1 OPTIONS + +=3Dover 8 + +=3Ditem B<-e>, B<--exclude> + +A regular expression for filenames to be exluded. For example, the followi= ng +command will skip files ending in ".zip": + +=3Dover 8 + +svn-clean --exclude '.zip$' + +=3Dback + +Multiple exclude patterns can be specified. If at least one matches, then = the +file is skipped. For example, the following command will skip files ending= in +".jpg" or ".png": + +=3Dover 8 + +svn-clean --exclude '.jpg$' --exclude '.png$' + +=3Dback + +The following command will skip the entire "build" subdirectory: + +=3Dover 8 + +svn-clean --exclude '^build(/|$)' + +=3Dback + +=3Ditem B<-f>, B<--force> + +Files to which you do not have delete access (if running under VMS) or wri= te +access (if running under another OS) will not be deleted unless you use th= is +option. + +=3Ditem B<-N>, B<--non-recursive> + +Do not search recursively for unversioned files and directories. Unversion= ed +directories will still be deleted along with all their contents. + +=3Ditem B<-q>, B<--quiet> + +Do not print progress info. In particular, do not print a message each tim= e a +file is examined, giving the name of the file, and indicating whether "rmd= ir" or +"unlink" is used to remove it, or that it's skipped. + +=3Ditem B<-p>, B<--print> + +Do not delete anything. Instead, print the name of every file and director= y that +would have been deleted. + +=3Ditem B<-?>, B<-h>, B<--help> + +Prints a brief help message and exits. + +=3Ditem B<--man> + +Prints the manual page and exits. + +=3Dback + +=3Dhead1 AUTHOR + +Simon Perreault nomis80@nomis80.org + +=3Dcut
Propchange: trunk/tools/buildbot/scripts/Linux/svn-clean ---------------------------------------------------------------------------= --- svn:eol-style =3D native
Added: trunk/tools/buildbot/scripts/Linux/time URL: http://svn.reactos.org/svn/reactos/trunk/tools/buildbot/scripts/Linux/= time?rev=3D32639&view=3Dauto =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/tools/buildbot/scripts/Linux/time (added) +++ trunk/tools/buildbot/scripts/Linux/time Mon Mar 10 06:57:55 2008 @@ -1,0 +1,3 @@ +#!/bin/sh + +/usr/bin/time -f "\nElapsed time: %E ([h:]m:s)\nCPU usage: %P (%U user, %S= sys)\nPage faults: %F major, %R minor\nNumber of IO waits: %w" "$@"
Propchange: trunk/tools/buildbot/scripts/Linux/time ---------------------------------------------------------------------------= --- svn:eol-style =3D native
Modified: trunk/tools/buildbot/scripts/Linux/uploadiso URL: http://svn.reactos.org/svn/reactos/trunk/tools/buildbot/scripts/Linux/= uploadiso?rev=3D32639&r1=3D32638&r2=3D32639&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/tools/buildbot/scripts/Linux/uploadiso (original) +++ trunk/tools/buildbot/scripts/Linux/uploadiso Mon Mar 10 06:57:55 2008 @@ -1,56 +1,56 @@ -#!/bin/sh +#!/bin/bash =
-if [ -f reactos.iso ] -then - echo No ISO file found. - exit 2 +KEY=3D../../fezile.cute.se.key +SSHUSER=3Drosbuild +HOST=3D$SSHUSER@fezile.cute.se +HOMEDIR=3D/home/$SSHUSER +ISOPATH=3D$HOMEDIR/isostorage +TEMPDIR=3D$HOMEDIR/temp +SSHOPTS=3D"-o StrictHostKeyChecking=3Dno -l $SSHUSER -p 22 -i $KEY $HOST" +LCDD=3Dlivecd +BCDD=3Dbootcd + +if [ -f ReactOS.iso ]; then + BOOTCD=3D1 +fi +if [ -f ReactOS-LiveCD.iso ]; then + LIVECD=3D1 fi =
-echo Getting revision number... -REV=3D`svnversion .` -echo Revision $REV. =
- -echo Compressing iso files... -cp ReactOS.iso bootcd-$REV-$1.iso -cp ReactOS-LiveCD.iso livecd-$REV-$1.iso - -7za a -bd -t7z bootcd-$REV-$1.7z bootcd-$REV-$1.iso -mx9 -7za a -bd -t7z livecd-$REV-$1.7z livecd-$REV-$1.iso -mx9 - -if [ -f bootcd-$REV-$1.iso ] -then - rm bootcd-$REV-$1.iso +if [ ! $BOOTCD -eq 1 -a $LIVECD -eq 1 ]; then + # nothing to do + echo "* There are no ISO files to process." + exit 2 fi =
-if [ -f livecd-$REV-$1.iso ] -then - rm livecd-$REV-$1.iso +echo "* Getting revision number..." +REV=3D$(svnversion .) +echo -e "* Revision $REV.\n" + +BOOT=3Dbootcd-$REV-$1 +LIVE=3Dlivecd-$REV-$1 + +echo "* Rsyncing ISO files onto iso.reactos.org..." +rsync --stats -e "ssh -o StrictHostKeyChecking=3Dno -l $SSHUSER -p 22 -i $= KEY" -avz --include=3DReactOS.iso --include=3DReactOS-LiveCD.iso --exclude= =3D* ./ $HOST:$TEMPDIR +echo -e "* Done.\n" + +if [ $BOOTCD ]; then + echo "* Remotely compressing $BOOT..." + ssh $SSHOPTS "ln $TEMPDIR/ReactOS.iso $TEMPDIR/$BOOT.iso" + ssh $SSHOPTS "7za a -bd -t7z $TEMPDIR/$BOOT.7z $TEMPDIR/$BOOT.iso -mx9" |= tail -n +4 + ssh $SSHOPTS "rm $TEMPDIR/$BOOT.iso" + ssh $SSHOPTS "mv $TEMPDIR/$BOOT.7z $ISOPATH/$BCDD/" +else + echo "* There is no $BOOT to compress." fi =
-echo done. -echo Uploading rev $REV BootCD and LiveCD... - -ftp -n svn.reactos.org <<EOF -user username password -cd www -cd iso -binary -put bootcd-$REV-$1.7z -put livecd-$REV-$1.7z -bye -EOF - -if [ -f bootcd-$REV-$1.7z ] -then - rm bootcd-$REV-$1.7z -fi =
- -if [ -f livecd-$REV-$1.7z ] -then - rm livecd-$REV-$1.7z +if [ $LIVECD ]; then + echo "* Remotely compressing $LIVE..." + ssh $SSHOPTS "ln $TEMPDIR/ReactOS-LiveCD.iso $TEMPDIR/$LIVE.iso" + ssh $SSHOPTS "7za a -bd -t7z $TEMPDIR/$LIVE.7z $TEMPDIR/$LIVE.iso -mx9" |= tail -n +4 + ssh $SSHOPTS "rm $TEMPDIR/$LIVE.iso" + ssh $SSHOPTS "mv $TEMPDIR/$LIVE.7z $ISOPATH/$LCDD/" +else + echo "* There is no $LIVE to compress." fi =
-echo done. -exit 0 - -