# This is an lxr, bonsai, tinderbox install guide for FreeBSD. It is by # no means perfect, and might be incorrect. But it was what I needed to # do to get it installed. It complements http://www.mozilla.org/tools.html # $Id: tinderbox.txt,v 1.1 2001/08/14 21:26:47 hans Exp $ # License: http://www.opensource.org/licenses/artistic-license.html # Improvements are welcome, email them to hans@lambermont.dyndns.org.NOSPAM 1 ********************************************************************** Get the lxr/bonsai/tinderbox code using update.sh : #!/bin/sh export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot if [ ! -d mozilla ]; then echo "The password for user anonymous is anonymous." cvs login fi cvs co mozilla/webtools 2 ********************************************************************** LXR install. Read mozilla/webtools/lxr/INSTALL FYI the LXR original resides at http://lxr.linux.no/ (lxr-0.3.tar.gz) for the stupid perl path: # for lxr: cd /usr && ln -s . bonsaitools # for bonsai : cd /usr/local/bin && ln -s /usr/bin/perl install /usr/ports/textproc/glimpse cron: cd /usr/local/lxr/html/ && ./update-lxr.sh source logfiles in /home/www/lxr/data/source/update.log add to /usr/local/lxr/html/find: use lib '/usr/local/lxr/html/lib/'; use lib '/usr/local/lxr/html/'; # cd /home/www/lxr/data && ~/mozilla/mozilla/webtools/lxr/genxref source maakt fileidx en xref in . add to /usr/local/lxr/html/genxref open(FILES, "/usr/bin/find instead of open(FILES, "find Created /usr/local/www/data and in there a symlink ln -s ../../lxr/html lxr install /usr/ports/www/apache13 vim /usr/local/etc/apache/httpd.conf -----------httpd.conf diffs-------------------- 322,323c322,323 < User nobody < Group nogroup --- > User cvs > Group cvs 330c330 < ServerAdmin you@your.address --- > ServerAdmin ***@***.*** 367c367 < AllowOverride None --- > AllowOverride Options 389c389 < Options Indexes FollowSymLinks MultiViews --- > Options Indexes FollowSymLinks MultiViews ExecCGI 396c396 < AllowOverride None --- > AllowOverride Options 400a401,407 > Order allow,deny > Allow from all > > > > Options All > AllowOverride All 845c852 < #AddHandler cgi-script .cgi --- > AddHandler cgi-script .cgi -----------httpd.conf diffs-------------------- apachectl restart #restart apache cd /usr/ports/devel/cvsweb && make install cd /usr/ports/databases/mysql322-server && make install cd /usr/ports/databases/mysql322-client && make install cd /usr/ports/devel/gettext && make install cd /usr/ports/textproc/glimpse && make install cd /usr/ports/devel/p5-Data-ShowTable && make install cd /usr/ports/databases/p5-Mysql && make install cd /usr/ports/textproc/urlview && make install 3 ********************************************************************** BONSAI read mozilla/webtools/bonsai/INSTALL install /usr/ports/databases/mysql322-server/ start with /usr/local/etc/rc.d/mysql-server.sh (installs mysql-client-3.22.32, start with /usr/local/etc/rc.d/mysql-client.sh) /usr/local/bin/mysqladmin -u root password 'new-password' get and install TimeDate libnet MailTools CPAN modules (http://theory.uwinnipeg.ca/search/cpan-search.html) install /usr/ports/databases/p5-Mysql Fix trapdoor.c, Makefile make install cd /usr/local/bonsai/data # en do trapdoor passwd part mysql -u root -p use mysql show tables; select * from user; # http://www.mysql.com/documentation/mysql/bychapter/manual_Privilege_system.html#Privilege_system GRANT ALL PRIVILEGES on *.* to cvs@localhost; GRANT ALL PRIVILEGES on *.* to cvs@"%"; # http://www.mysql.com/documentation/mysql/bychapter/manual_Tutorial.html#Creating_database CREATE DATABASE bonsai; cd /usr/local/bonsai && ./maketables.sh Change UID of apache to CVS Edit /usr/local/bonsai/data/treeconfig.pl : @::TreeList = ('source'); %::TreeInfo = ( source => { branch => '', description => 'The CVS repository', module => 'source', repository => '/home/cvs', shortdesc => 'Our Source', }, , ); 1; Use http://cvs/bonsai/toplevel.cgi to go to admin.cgi (with treeid=source ;-) add registry, using mozilla> ./update.sh /usr/local/www/data/registry -> ~/mozilla/mozilla/webtools/registry Need SMTP.pm (from CPAN) is already in libnet-1.0703 /usr/local/lib/perl5/site_perl/5.005/Net/SMTP.pm doeditwhiteboard.cgi: Can't locate Net/SMTP.pm in @INC (@INC contains: /usr/libdata/perl/5.00503/mach /usr/libdata/perl/5.00503 /usr/local/lib/perl5/site_perl/5.005/i386-freebsd /usr/local/lib/perl5/site_perl/5.005 .) at /usr/local/lib/perl5/site_perl/5.005/Mail/Mailer/smtp.pm line 3. -> fix /usr/local/lib/perl5/site_perl/5.005/Mail/Mailer/smtp.pm : use lib '/usr/local/lib/perl5/site_perl/5.005/'; use Net::SMTP; -> /usr/local/bonsai/data/source/whireboard Do bonsai-checkin-daemon stuff form README 4 ********************************************************************** TINDERBOX read ~/mozilla/mozilla/webtools/tinderbox/README vim ~/mozilla/mozilla/webtools/tinderbox/Makefile make install -> /usr/local/tinderbox create tinderbox user: tinderbox:*:102:100::0:0:Tinderbox owner:/usr/local/tinderbox:/bin/tcsh mkdir /home/tinderbox chown tinderbox:cvs /home/tinderbox ln -s /home/tinderbox /usr/local/tinderbox/data cp /usr/local/bonsai/data/passwd /usr/local/tinderbox/data/passwd create /usr/local/tinderbox/.forward "|/usr/local/tinderbox/handlemail.pl" TODO: Jul 2 17:47:46 cvs pw: _secure_path: cannot stat /var/db/mysql/.login_conf: Permission denied cp ~/mozilla/mozilla/webtools/tinderbox/SeaMonkey/treedata.pl /usr/local/tinderbox/source en edit (./buildwho.pl line 47 needs it) $cvs_module='source'; $cvs_branch='HEAD'; $cvs_root='/home/cvs'; $bonsai_tree='source'; ------------- used packages apache-1.3.14 mysql-server-3.22.32 cvsweb-1.104.1.39 libslang-1.4.2 p5-Data-ShowTable-3.3 gettext-0.10.35 libtool-1.3.4_1 p5-Mysql-modules-1.2215 glimpse-4.12.6 urlview-0.9 mysql-client-3.22.32 ------------- 5 ********************************************************************** Changes for some tinderbox build systems: # linux-glibc2.1.2-i386: (cvs install needed, /usr/bin/mail copied) # vipw: tinderbox:*:102:100:Tinderbox owner:/usr/local/tinderbox:/bin/tcsh mkdir /usr/local/tinderbox chown tinderbox:cvs /usr/local/tinderbox su - tinderbox setenv CVSROOT ':pserver:tinderbox@cvs:/home/cvs' # touch .cvspass needed ?! cvs login # passwd is ******** # linux-glibc2.1.3-alpha tinderbox:x:102:100:Tinderbox owner:/usr/local/tinderbox:/usr/local/bin/tcsh # linux-glibc2.1.3-powerpc tinderbox:x:102:100::/usr/local/tinderbox:/bin/tcsh # freebsd-4.2-i386 tinderbox:x:102:100::/usr/local/tinderbox:/bin/tcsh # solaris-2.6-sparc vi passwd #tinderbox:x:102:100:Tinderbox owner:/usr/local/tinderbox:/usr/local/bin/tcsh # irix-6.5-mips tinderbox:*:102:100:Tinderbox owner:/usr/local/tinderbox:/bin/tcsh # windows2000 tinderbox::102:100:Tinderbox owner:/usr/local/tinderbox:/contrib/bin/tcsh http://www.trilobyte.net/barnsons/html/Bugzilla-Guide.html -> install blat for sending smtp email 6 ********************************************************************** Modified UNIX tinderbox.pl script to start the builds. You really want to diff this one against the default one because I changed it to use my guessconfig script output which is not supplied here. The script below is probably under the Netscape Public License Version 1.1 See http://www.mozilla.org/NPL/ #!/usr/local/bin/perl require 5.000; use Sys::Hostname; use Cwd; $Version = "1.000"; sub InitVars { # PLEASE FILL THIS IN WITH YOUR PROPER EMAIL ADDRESS $BuildAdministrator = "$ENV{'USER'}\@$ENV{'HOST'}"; #Default values of cmdline opts $BuildDepend = 1; #depend or clobber $ReportStatus = 1; # Send results to server or not $BuildOnce = 0; # Build once, don't send results to server $BuildClassic = 0; # Build classic source #relative path to binary $BinaryName{'target1'} = 'target1'; $BinaryName{'target2'} = 'debug/target1'; # Set these to what makes sense for your system $cpus = 1; $Make = 'make'; # Must be gnu make $mail = '/usr/bin/mail'; #$CVS = 'cvs -z3 -Q'; $CVS = 'cvs -Q'; $CVSCO = 'co -P'; # Set these proper values for your tinderbox server $Tinderbox_server = 'tinderbox\@cvs'; # These shouldn't really need to be changed $BuildSleep = 15; # Minimum wait period from start of build to start # of next build in minutes (default 10) $BuildTree = ''; $BuildTag = ''; $BuildName = ''; $TopLevel = '.'; $Topsrcdir = 'source'; $BuildObjName = ''; $BuildConfigDir = ''; $ClobberStr = 'clean'; $ConfigureEnvArgs = ''; $ConfigureArgs = ""; $ConfigGuess = './source/tools/guess/guessconfig'; $GuessConfig = `cat /tmp/.guess`; #'NotSetYet'; chomp($GuessConfig); $Logfile = '${BuildDir}.log'; } #EndSub-InitVars sub ConditionalArgs { if ( $BuildClassic ) { } else { $BuildTree = 'source'; $Toolkit = ''; $FE = 'target1,target2'; $BuildModule = 'source'; } $CVSCO .= " -r $BuildTag" if ( $BuildTag ne ''); } sub SetupEnv { umask(0); $ENV{"CVSROOT"} = ':pserver:tinderbox@cvs:/home/cvs'; $ENV{"SRCHOME"} = "$ENV{'HOME'}/develop/source"; $ENV{"MAKEFLAGS"} = "-w -I $ENV{'SRCHOME'} --no-print-directory"; } #EndSub-SetupEnv sub SetupPath { my($Path); $Path = $ENV{PATH}; print "Path before: $Path\n"; $ENV{'PATH'} = '/usr/local/bin:' . $ENV{'PATH'}; # if ( $OS eq 'SunOS' ) { # $ENV{'PATH'} = '/usr/ccs/bin:' . $ENV{'PATH'}; # } $Path = $ENV{PATH}; print "Path After: $Path\n"; } #EndSub-SetupPath ########################################################################## # NO USER CONFIGURABLE PIECES BEYOND THIS POINT # ########################################################################## sub GetSystemInfo { $OS = `uname -s`; $OSVer = `uname -r`; chop($OS, $OSVer); if ( $OS eq 'IRIX64' ) { $OS = 'IRIX'; } $BuildName = $GuessConfig; $DirName = $GuessConfig; $RealOS = $OS; $RealOSVer = $OSVer; if ( $OS eq 'Linux' ) { $RealOSVer = substr($OSVer,0,3); } $logfile = "${DirName}.log"; } #EndSub-GetSystemInfo sub BuildIt { my ($fe, @felist, $EarlyExit, $LastTime, $StartTimeStr); # mkdir("$DirName", 0777); # chdir("$DirName") || die "Couldn't enter $DirName"; mkdir("develop", 0777); mkdir("obj", 0777); chdir("develop") || die "Couldn't enter develop"; $StartDir = getcwd(); $LastTime = 0; print "Starting dir is : $StartDir\n"; print LOG "Starting dir is : $StartDir\n"; $EarlyExit = 0; while ( ! $EarlyExit ) { chdir("$StartDir"); if ( time - $LastTime < (60 * $BuildSleep) ) { $SleepTime = (60 * $BuildSleep) - (time - $LastTime); print "\n\nSleeping $SleepTime seconds ...\n"; sleep($SleepTime); } $LastTime = time; $StartTime = time - 60 * 10; $StartTimeStr = &CVSTime($StartTime); &StartBuild if ($ReportStatus); $CurrentDir = getcwd(); if ( $CurrentDir ne $StartDir ) { print "startdir: $StartDir, curdir $CurrentDir\n"; die "curdir != startdir"; } $BuildDir = $CurrentDir; unlink( "$logfile" ); # we want this earlier print "[BuildIt] opening $logfile\n"; open( LOG, ">$logfile" ) || print "can't open $?\n"; print LOG "current dir is -- $hostname:$CurrentDir\n"; print LOG "Build Administrator is $BuildAdministrator\n"; &PrintEnv; $BuildStatus = 0; mkdir($TopLevel, 0777); chdir($TopLevel) || die "chdir($TopLevel): $!\n"; if ( $BuildClassic ) { } else { print"$CVS $CVSCO $BuildModule\n"; print LOG "$CVS $CVSCO $BuildModule\n"; open (PULL, "$CVS $CVSCO $BuildModule 2>&1 |") || die "open: $!\n"; } while () { print $_; print LOG $_; } close(PULL); # Move to topsrcdir #chdir($Topsrcdir) || die "chdir($Topsrcdir): $!\n"; # print LOG "$Autoconf\n"; # open (AUTOCONF, "$Autoconf 2>&1 | ") || die "$Autoconf: $!\n"; # while () { # print LOG $_; # print $_; # } # close(AUTOCONF); # Set GuessConfig and ConfigGuess print LOG "$ConfigGuess\n"; $BuildObjName = "$ENV{'HOME'}/obj/"; open (GETOBJ, "$ConfigGuess 2>&1 |") || die "$ConfigGuess: $!\n"; while () { $GuessConfig = $_; chomp($GuessConfig); print "ConfigGuess = [$GuessConfig]\n"; print LOG "ConfigGuess = [$GuessConfig]\n"; chomp($BuildObjName .= $GuessConfig); } close (GETOBJ); print "$CVS $CVSCO lib/$GuessConfig\n"; print LOG "$CVS $CVSCO lib/$GuessConfig\n"; open (PULL, "$CVS $CVSCO lib/$GuessConfig 2>&1 |\n") || die"open: $!\n"; while () { print $_; print LOG $_; } close(PULL); chdir($Topsrcdir) || die "chdir($Topsrcdir): $!\n"; # mkdir($BuildObjName, 0777); # chdir($BuildObjName) || die "chdir($BuildObjName): $!\n"; # print LOG "$ConfigureEnvArgs ../configure $ConfigureArgs\n"; # open (CONFIGURE, "$ConfigureEnvArgs ../configure $ConfigureArgs 2>&1 |") || die "../configure: $!\n"; # while () { # print $_; # print LOG $_; # } # close(CONFIGURE); # if we are building depend, rebuild dependencies if ($BuildDepend) { # we hebben geen depend target. # print LOG "$Make MAKE='$Make -j $cpus' depend 2>&1 |\n"; # open ( MAKEDEPEND, "$Make MAKE='$Make -j $cpus' depend 2>&1 |\n"); # while ( ) { # print $_; # print LOG $_; # } # close (MAKEDEPEND); # system("rm -rf dist"); } else { # Building clobber print LOG "$Make MAKE='$Make -j $cpus' $ClobberStr 2>&1 |\n"; open( MAKECLOBBER, "$Make MAKE='$Make -j $cpus' $ClobberStr 2>&1 |"); while ( ) { print $_; print LOG $_; } close( MAKECLOBBER ); } @felist = split(/,/, $FE); foreach $fe ( @felist ) { if (&BinaryExists($fe)) { print LOG "deleting existing binary\n"; &DeleteBinary($fe); } } if ($BuildClassic) { } else { #print LOG "$Make MAKE='$Make -j $cpus' 2>&1 |\n"; #open(BUILD, "$Make MAKE='$Make -j $cpus' 2>&1 |\n"); print LOG "$Make MAKE='$Make' all debug 2>&1 |\n"; open(BUILD, "$Make MAKE='$Make' all debug 2>&1 |\n"); while () { print $_; print LOG $_; } close(BUILD); } foreach $fe (@felist) { if (&BinaryExists($fe)) { print LOG "export binary $fe exists, build SUCCESSFUL!\n"; $BuildStatus = 0; } else { print LOG "export binary $fe missing, build FAILED\n"; $BuildStatus = 666; } print LOG "\nBuild Status = $BuildStatus\n"; $BuildStatusStr = ( $BuildStatus ? 'busted' : 'success' ); # Hans: scp action added if ( $BuildStatusStr eq 'success' ) { print "fe=$fe\n"; my ($pexe, $exe, $dates, $scpstr, $dy, $dm, $dd); $pexe = $BuildObjName . '/' . $BinaryName{"$fe"}; print "pexe=$pexe\n"; $exe = $BinaryName{"$fe"} . '-' . `date +%Y%m%d%H%M%S`; chomp($exe); print "exe=$exe\n"; $dy = `date +%Y`; chomp($dy); $dm = `date +%m`; chomp($dm); $dd = `date +%d`; chomp($dd); $dates = $dy . '/' . $dm . '/' . $dd . '/' . $GuessConfig; print "dates=$dates\n"; $scpstr = "scp $pexe tinderbox\@server:allbuilds/$dates/$exe"; print "$scpstr\n"; print LOG "$scpstr\n"; open (SCP, "$scpstr 2>&1 |") || die "$scpstr: $!\n"; while () { $scpresult = $_; chomp($scpresult); print "scp = [$scpresult]\n"; print LOG "SCP = [$scpresult]\n"; } close (SCP); } print LOG "tinderbox: tree: $BuildTree\n"; print LOG "tinderbox: builddate: $StartTime\n"; print LOG "tinderbox: status: $BuildStatusStr\n"; print LOG "tinderbox: build: $BuildName $fe\n"; print LOG "tinderbox: errorparser: unix\n"; print LOG "tinderbox: buildfamily: unix\n"; print LOG "tinderbox: END\n"; } close(LOG); chdir("$StartDir"); # this fun line added on 2/5/98. do not remove. Translated to english, # that's "take any line longer than 1000 characters, and split it into less # than 1000 char lines. If any of the resulting lines is # a dot on a line by itself, replace that with a blank line." # This is to prevent cases where a . occurs in the log file. Sendmail # interprets that as the end of the mail, and truncates the log before # it gets to Tinderbox. (terry weismann, chris yeh) # # This was replaced by a perl 'port' of the above, writen by # preed@netscape.com; good things: no need for system() call, and now it's # all in perl, so we don't have to do OS checking like before. open(LOG, "$logfile") || die "Couldn't open logfile: $!\n"; open(OUTLOG, ">${logfile}.last") || die "Couldn't open logfile: $!\n"; while () { $q = 0; for (;;) { $val = $q * 1000; $Output = substr($_, $val, 1000); last if $Output eq undef; $Output =~ s/^\.$//g; $Output =~ s/\n//g; print OUTLOG "$Output\n"; $q++; } #EndFor } #EndWhile close(LOG); close(OUTLOG); system( "$mail $Tinderbox_server < ${logfile}.last" ) if ($ReportStatus ); unlink("$logfile"); # if this is a test run, set early_exit to 0. #This mean one loop of execution $EarlyExit++ if ($BuildOnce); } } #EndSub-BuildIt sub CVSTime { my($StartTimeArg) = @_; my($RetTime, $StartTimeArg, $sec, $minute, $hour, $mday, $mon, $year); ($sec,$minute,$hour,$mday,$mon,$year) = localtime($StartTimeArg); $mon++; # month is 0 based. sprintf("%02d/%02d/%02d %02d:%02d:00", $mon,$mday,$year,$hour,$minute ); } sub StartBuild { my($fe, @felist); @felist = split(/,/, $FE); # die "SERVER: " . $Tinderbox_server . "\n"; open( LOG, "|$mail $Tinderbox_server" ); foreach $fe ( @felist ) { print LOG "\n"; print LOG "tinderbox: tree: $BuildTree\n"; print LOG "tinderbox: builddate: $StartTime\n"; print LOG "tinderbox: status: building\n"; print LOG "tinderbox: build: $BuildName $fe\n"; print LOG "tinderbox: errorparser: unix\n"; print LOG "tinderbox: buildfamily: unix\n"; print LOG "tinderbox: END\n"; print LOG "\n"; } close( LOG ); } # check for the existence of the binary sub BinaryExists { my($fe) = @_; my($Binname); $fe = 'x' if (!defined($fe)); $BinName = $BuildObjName . '/' . $BinaryName{"$fe"}; print LOG $BinName . "\n"; if ((-e $BinName) && (-x $BinName) && (-s $BinName)) { 1; } else { 0; } } sub DeleteBinary { my($fe) = @_; my($BinName); $fe = 'x' if (!defined($fe)); $BinName = $BuildObjName . '/' . $BinaryName{"$fe"}; print LOG "unlinking $BinName\n"; unlink ($BinName) || print LOG "unlinking $BinName failed\n"; } sub ParseArgs { my($i, $manArg); if( @ARGV == 0 ) { &PrintUsage; } $i = 0; $manArg = 0; while( $i < @ARGV ) { if ($ARGV[$i] eq '--depend') { $BuildDepend = 1; $manArg++; } elsif ($ARGV[$i] eq '--clobber') { $BuildDepend = 0; $manArg++; } elsif ( $ARGV[$i] eq '--once' ) { $BuildOnce = 1; #$ReportStatus = 0; } elsif ($ARGV[$i] eq '--classic') { $BuildClassic = 1; } elsif ($ARGV[$i] eq '--noreport') { $ReportStatus = 0; } elsif ($ARGV[$i] eq '--version' || $ARGV[$i] eq '-v') { die "$0: version $Version\n"; } elsif ( $ARGV[$i] eq '-tag' ) { $i++; $BuildTag = $ARGV[$i]; if ( $BuildTag eq '' || $BuildTag eq '-t') { &PrintUsage; } } elsif ( $ARGV[$i] eq '-t' ) { $i++; $BuildTree = $ARGV[$i]; if ( $BuildTree eq '' ) { &PrintUsage; } } else { &PrintUsage; } $i++; } #EndWhile if ( $BuildTree =~ /^\s+$/i ) { &PrintUsage; } if ($BuildDepend eq undef) { &PrintUsage; } &PrintUsage if (! $manArg ); } #EndSub-ParseArgs sub PrintUsage { die "usage: $0 [--depend | --clobber] [-v | --version ] [--once --classic --noreport -tag TREETAG -t TREENAME ]\n"; } sub PrintEnv { my ($key); print "------------------- PrintEnv start\n"; print LOG "------------------- PrintEnv start\n"; foreach $key (keys %ENV) { print LOG "$key = $ENV{$key}\n"; print "$key = $ENV{$key}\n"; } print "------------------- PrintEnv end\n"; print LOG "------------------- PrintEnv end\n"; } #EndSub-PrintEnv # Main function print "------------------- InitVars\n"; print LOG "------------------- InitVars\n"; &InitVars; print "------------------- ParseArgs\n"; print LOG "------------------- ParseArgs\n"; #&ParseArgs; $BuildDepend = 1; print "------------------- ConditionalArgs\n"; print LOG "------------------- ConditionalArgs\n"; &ConditionalArgs; print "------------------- GetSystemInfo\n"; print LOG "------------------- GetSystemInfo\n"; &GetSystemInfo; print "------------------- SetupEnv\n"; print LOG "------------------- SetupEnv\n"; &SetupEnv; print "------------------- SetupPath\n"; print LOG "------------------- SetupPath\n"; &SetupPath; print "------------------- BuildIt\n"; print LOG "------------------- BuildIt\n"; &BuildIt; 1; 7 ********************************************************************** unified UNIX-WINDOWS diffs for the tinderbox.pl script to start the builds. These two scripts must become one. When I have the time ... --- tinderbox.pl Tue Aug 14 22:48:23 2001 +++ winderbox.pl Tue Aug 14 22:48:23 2001 @@ -18,14 +18,15 @@ $BuildClassic = 0; # Build classic source #relative path to binary - $BinaryName{'target1'} = 'target1'; - $BinaryName{'target2'} = 'debug/target1'; + $BinaryName{'target1'} = 'target1.exe'; + $BinaryName{'target2'} = 'debug/target1.exe'; # Set these to what makes sense for your system $cpus = 1; #$Make = '~hans/bin/hmake'; # Must be gnu make $Make = 'make'; # Must be gnu make - $mail = '/usr/bin/mail'; + #$mail = '/usr/bin/mail'; + $mail = '/usr/local/bin/blat.exe'; #$CVS = 'cvs -z3 -Q'; $CVS = 'cvs -Q'; $CVSCO = 'co -P'; @@ -282,11 +283,14 @@ # Hans: scp action added if ( $BuildStatusStr eq 'success' ) { print "fe=$fe\n"; - my ($pexe, $exe, $dates, $scpstr, $dy, $dm, $dd); + my ($pexe, $exe, $dates, $scpstr, $dy, $dm, $dd, $alldates); $pexe = $BuildObjName . '/' . $BinaryName{"$fe"}; print "pexe=$pexe\n"; - $exe = $BinaryName{"$fe"} . '-' . `date +%Y%m%d%H%M%S`; - chomp($exe); + $alldates = `date +%Y%m%d%H%M%S`; + chomp($alldates); + $myfe = $BinaryName{"$fe"}; + $myfe =~ s/\.exe//; + $exe = $myfe . '-' . $alldates . '.exe'; print "exe=$exe\n"; $dy = `date +%Y`; chomp($dy); $dm = `date +%m`; chomp($dm); @@ -300,6 +304,7 @@ while () { $scpresult = $_; chomp($scpresult); + chomp($scpresult); print "scp = [$scpresult]\n"; print LOG "SCP = [$scpresult]\n"; } @@ -352,7 +357,7 @@ close(LOG); close(OUTLOG); - system( "$mail $Tinderbox_server < ${logfile}.last" ) + system( "$mail ${logfile}.last -server cvs -f tinderbox\@win2k -t $Tinderbox_server" ) if ($ReportStatus ); unlink("$logfile"); @@ -380,7 +385,8 @@ @felist = split(/,/, $FE); # die "SERVER: " . $Tinderbox_server . "\n"; - open( LOG, "|$mail $Tinderbox_server" ); + #open( LOG, "|$mail $Tinderbox_server" ); + open( LOG, ">startbuildlog" ) || print "can't open $?\n"; foreach $fe ( @felist ) { print LOG "\n"; print LOG "tinderbox: tree: $BuildTree\n"; @@ -393,6 +399,7 @@ print LOG "\n"; } close( LOG ); +system ( "$mail startbuildlog -server cvs -f tinderbox\@win2k -t $Tinderbox_server" ); } # check for the existence of the binary