daemon: Delegate deduplication to 'guix substitute'.
authorLudovic Courtès <ludo@gnu.org>
Mon, 14 Dec 2020 16:59:32 +0000 (17:59 +0100)
committerLudovic Courtès <ludo@gnu.org>
Sat, 19 Dec 2020 22:25:01 +0000 (23:25 +0100)
commitc7c7f068c15e419aaf5ef616516aa5ad4e55c2fa
treef672bba546f451bb452174ebf24d30a68ea644ee
parent3c799ccb98ba2ea4c19747306289586e42ae493b
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'.
guix/scripts/substitute.scm
guix/serialization.scm
nix/libstore/build.cc