Code

check_host: Allocate a large-enough buffer for the host table.
[nagiosplug.git] / tools / tinderbox_build
index 862f1c1d4b6b1684e4da83f2d7fdaab7e753c944..12528d9ba400ee8203f58365ba6508243de6b9e9 100755 (executable)
@@ -14,13 +14,14 @@ use Sys::Hostname;
 use Cwd;
 use Time::Local;
 
-my $Version = '$Revision$';
+my $Version = `git describe --abbrev=4 HEAD`;
 
 my $myhost = hostname;
 chomp($myhost);
 my ($host, $junk) = split(/\./, $myhost);
        
 my $BuildAdministrator = $ENV{TINDERBOX_BUILD_ADMIN} || "$ENV{'USER'}\@$myhost";
+my $TmpDir = $ENV{TMPDIR} || "/tmp";
 
 #Default values of cmdline opts
 my $ReportStatus = 0;  # Do not send results to server
@@ -28,7 +29,9 @@ my $ReportStatus = 0;  # Do not send results to server
 # Set these to what makes sense for your system
 
 # Set these proper values for your tinderbox server
-my $Tinderbox_server = 'tinderbox2@tinderbox.altinity.org';
+# Have the StrictHostKeyChecking=no so that a new host will automatically add hostkey without
+# prompting. If host key changes, then will get error, so this should still be secure
+my $Tinderbox_server = '-p 1022 -o StrictHostKeyChecking=no tinderbox2@tinderbox.opsera.com';
 
 # These shouldn't really need to be changed
 my $BuildTree = 'nagiosplug';
@@ -81,8 +84,8 @@ sub BuildIt {
        if (-e (my $file = "nagios-plugins.spec")) {
                open F, $file;
                while (<F>) {
-                       if (/^Version: HEAD-(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/) {
-                               $StartTime = timelocal(0, $5, $4, $3, ($2 - 1), ($1 - 1900));
+                       if (/^Version: trunk-(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/) {
+                               $StartTime = timegm(0, $5, $4, $3, ($2 - 1), ($1 - 1900));
                                last;
                        }
                }
@@ -231,8 +234,10 @@ sub SetupPath {
     $Path = $ENV{PATH};
     print "Path before: $Path\n";
 
-    if ( $OS eq 'SunOS' ) {
-       $ENV{'PATH'} = '/usr/ccs/bin:' . $ENV{'PATH'};
+    # Don't alter path if we're building off a repository tree;
+    # SunOS make will be used only for snapshots and releases.
+    if ( $OS eq 'SunOS' && !( -e '.svn' || -e '.git' )) {
+        $ENV{'PATH'} = '/usr/ccs/bin:' . $ENV{'PATH'};
     }
 
     $Path = $ENV{PATH};
@@ -241,8 +246,8 @@ sub SetupPath {
 
 sub configure {
        # Configure
-        print LOG "./configure $ConfigureArgs\n";
-        open (CONFIGURE, "./configure $ConfigureArgs 2>&1 |") || die "../configure: $!\n";
+        print LOG "./configure --enable-extra-opts --enable-libtap $ConfigureArgs 2>&1\n";
+        open (CONFIGURE, "./configure --enable-extra-opts --enable-libtap $ConfigureArgs 2>&1 |") || die "../configure: $!\n";
         while (<CONFIGURE>) {
             print $_;
             print LOG $_;
@@ -265,14 +270,16 @@ sub make {
 
 sub maketest {
         # Tests
-        print LOG "LANG=C make test 2>&1\n";
-        open( MAKE, "LANG=C make test 2>&1 |");
+        print LOG "LANG=C make test 2>&1 && make install DESTDIR=$TmpDir/tinderbox_build.$$ 2>&1 && make install-strip DESTDIR=$TmpDir/tinderbox_build2.$$ 2>&1\n";
+        open( MAKE, "LANG=C make test 2>&1 && make install DESTDIR=$TmpDir/tinderbox_build.$$ 2>&1 && make install-strip DESTDIR=$TmpDir/tinderbox_build2.$$ 2>&1 |");
        while ( <MAKE> ) {
                print $_;
                print LOG $_;
        }
        close( MAKE);
-       return ! $?;
+       my $rc = $?;
+       system("rm -fr $TmpDir/tinderbox_build.$$ $TmpDir/tinderbox_build2.$$");
+       return ! $rc;
 }
 
 # Main function