Author: eelco
Date: Tue Aug 31 12:36:24 2010
New Revision: 23559
URL: https://svn.nixos.org/websvn/nix/?rev=23559&sc=1

Log:
* Always print hook output on stderr, even if --no-build-output is
  set.
* In the build hook, print a trace message to allow Hydra to pick up
  the name of the remote machine used for the build.

Modified:
   nix/branches/sqlite/scripts/build-remote.pl.in
   nix/branches/sqlite/src/libstore/build.cc

Modified: nix/branches/sqlite/scripts/build-remote.pl.in
==============================================================================
--- nix/branches/sqlite/scripts/build-remote.pl.in      Tue Aug 31 11:51:40 
2010        (r23558)
+++ nix/branches/sqlite/scripts/build-remote.pl.in      Tue Aug 31 12:36:24 
2010        (r23559)
@@ -42,7 +42,7 @@
 # Initialisation.
 my $loadIncreased = 0;
 
-my ($localSystem, $maxSilentTime) = @ARGV;
+my ($localSystem, $maxSilentTime, $printBuildTrace) = @ARGV;
 $maxSilentTime = 0 unless defined $maxSilentTime;
 
 my $currentLoad = $ENV{"NIX_CURRENT_LOAD"};
@@ -197,12 +197,15 @@
 
 
 # Tell Nix we've accepted the build.
-print STDERR "building `$drvPath' on `$hostName'\n";
 sendReply "accept";
 my @inputs = split /\s/, readline(STDIN);
 my @outputs = split /\s/, readline(STDIN);
 
 
+print STDERR "building `$drvPath' on `$hostName'\n";
+print STDERR "@ build-remote $drvPath $hostName\n" if $printBuildTrace;
+
+
 my $maybeSign = "";
 $maybeSign = "--sign" if -e "/nix/etc/nix/signing-key.sec";
 

Modified: nix/branches/sqlite/src/libstore/build.cc
==============================================================================
--- nix/branches/sqlite/src/libstore/build.cc   Tue Aug 31 11:51:40 2010        
(r23558)
+++ nix/branches/sqlite/src/libstore/build.cc   Tue Aug 31 12:36:24 2010        
(r23559)
@@ -678,7 +678,9 @@
                 throw SysError("dupping builder's stdout/stderr");
             
             execl(buildHook.c_str(), buildHook.c_str(), thisSystem.c_str(),
-                (format("%1%") % maxSilentTime).str().c_str(), NULL);
+                (format("%1%") % maxSilentTime).str().c_str(),
+                (format("%1%") % printBuildTrace).str().c_str(),
+                NULL);
             
             throw SysError(format("executing `%1%'") % buildHook);
             
@@ -1362,7 +1364,8 @@
             reply = string(s, 2);
             break;
         }
-        handleChildOutput(worker.hook->fromHook.readSide, s + "\n");
+        s += "\n";
+        writeToStderr((unsigned char *) s.c_str(), s.size());
     }
 
     debug(format("hook reply is `%1%'") % reply);
@@ -2023,11 +2026,16 @@
 
 void DerivationGoal::handleChildOutput(int fd, const string & data)
 {
-    if (verbosity >= buildVerbosity)
-        writeToStderr((unsigned char *) data.c_str(), data.size());
     if ((hook && fd == hook->builderOut.readSide) ||
         (!hook && fd == builderOut.readSide))
+    {
+        if (verbosity >= buildVerbosity)
+            writeToStderr((unsigned char *) data.c_str(), data.size());
         writeFull(fdLogFile, (unsigned char *) data.c_str(), data.size());
+    }
+
+    if (hook && fd == hook->fromHook.readSide)
+        writeToStderr((unsigned char *) data.c_str(), data.size());
 }
 
 
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to