diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-12-14 17:59:32 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-12-19 23:25:01 +0100 |
commit | c7c7f068c15e419aaf5ef616516aa5ad4e55c2fa (patch) | |
tree | f672bba546f451bb452174ebf24d30a68ea644ee /guix/serialization.scm | |
parent | 3c799ccb98ba2ea4c19747306289586e42ae493b (diff) |
daemon: Delegate deduplication to 'guix substitute'.
This removes the main source of latency between subsequent downloads.
* nix/libstore/build.cc (SubstitutionGoal::tryToRun): Add a
"deduplicate" key to ENV.
(SubstitutionGoal::finished): Remove call to 'optimisePath'.
* guix/scripts/substitute.scm (process-substitution)[destination-in-store?]
[dump-file/deduplicate*]: New variables.
Pass #:dump-file to 'restore-file'.
* guix/scripts/substitute.scm (guix-substitute)[deduplicate?]: New
variable.
Pass #:deduplicate? to 'process-substitution'.
* guix/serialization.scm (dump-file): Export and augment 'dump-file'.
Diffstat (limited to 'guix/serialization.scm')
-rw-r--r-- | guix/serialization.scm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/guix/serialization.scm b/guix/serialization.scm index 9e2dce8bb0..59cd93fb18 100644 --- a/guix/serialization.scm +++ b/guix/serialization.scm @@ -51,7 +51,8 @@ write-file write-file-tree fold-archive - restore-file)) + restore-file + dump-file)) ;;; Comment: ;;; @@ -458,7 +459,10 @@ depends on TYPE." (&nar-read-error (port port) (file file) (token x))))))))) (define (dump-file file input size type) - "Dump SIZE bytes from INPUT to FILE." + "Dump SIZE bytes from INPUT to FILE. + +This procedure is suitable for use as the #:dump-file argument to +'restore-file'." (call-with-output-file file (lambda (output) (dump input output size)))) |