about summary refs log tree commit diff
path: root/third_party/nix/src
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/nix/src')
-rw-r--r--third_party/nix/src/proto/worker.proto31
1 files changed, 31 insertions, 0 deletions
diff --git a/third_party/nix/src/proto/worker.proto b/third_party/nix/src/proto/worker.proto
index d983b261c84a..b24d5e97e7eb 100644
--- a/third_party/nix/src/proto/worker.proto
+++ b/third_party/nix/src/proto/worker.proto
@@ -85,6 +85,10 @@ service Worker {
 
   // Check the integrity of the Nix store
   rpc VerifyStore(VerifyStoreRequest) returns (VerifyStoreResponse);
+
+  // Build a single non-materialized derivation (i.e. not from an
+  // on-disk .drv file).
+  rpc BuildDerivation(BuildDerivationRequest) returns (BuildDerivationResponse);
 }
 
 enum HashType {
@@ -117,6 +121,22 @@ enum GCAction {
   DeleteSpecific = 3;
 }
 
+enum BuildStatus {
+  Built = 0;
+  Substituted = 1;
+  AlreadyValid = 2;
+  PermanentFailure = 3;
+  InputRejected = 4;
+  OutputRejected = 5;
+  TransientFailure = 6;  // possibly transient
+  CachedFailure = 7;     // no longer used
+  TimedOut = 8;
+  MiscFailure = 9;
+  DependencyFailed = 10;
+  LogLimitExceeded = 11;
+  NotDeterministic = 12;
+};
+
 // Generic type for any RPC call that just reads or returns a single
 // store path.
 message StorePath {
@@ -254,3 +274,14 @@ message VerifyStoreResponse {
   // True if errors remain (???)
   bool errors = 1;
 }
+
+message BuildDerivationRequest {
+  // Only used for informational purposes.
+  StorePath drvPath = 1;
+  BuildMode buildMode = 2;
+}
+
+message BuildDerivationResponse {
+  BuildStatus status = 1;
+  string errorMessage = 2;
+}