diff --git a/guix/store.scm b/guix/store.scm index b525994672..bd7bb59f89 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -53,7 +53,7 @@ store-path? derivation-path?)) -(define %protocol-version #x109) +(define %protocol-version #x10b) (define %worker-magic-1 #x6e697863) (define %worker-magic-2 #x6478696f) @@ -257,7 +257,8 @@ (message nix-protocol-error-message) (status nix-protocol-error-status)) -(define* (open-connection #:optional (file %default-socket-path)) +(define* (open-connection #:optional (file %default-socket-path) + #:key (reserve-space? #t)) (let ((s (with-fluids ((%default-port-encoding #f)) ;; This trick allows use of the `scm_c_read' optimization. (socket PF_UNIX SOCK_STREAM 0))) @@ -271,6 +272,8 @@ (protocol-major v)) (begin (write-int %protocol-version s) + (if (>= (protocol-minor v) 11) + (write-int (if reserve-space? 1 0) s)) (let ((s (%make-nix-server s (protocol-major v) (protocol-minor v))))