From a8ac4f081a9a679498ea42ccfe001f218bba3043 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 30 Jun 2017 00:04:38 +0200 Subject: vm: Estimate the disk size by default. * gnu/build/vm.scm (estimated-partition-size): New procedure. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Change #:disk-image-size default to 'guess. [builder]: When DISK-IMAGE-SIZE is 'guess, use 'estimated-partition-size' and compute and estimate of the image size. (qemu-image): Likewise. * guix/build/store-copy.scm (file-size, closure-size): New procedures. * guix/scripts/system.scm (%default-options): Change 'image-size' to 'guess. * doc/guix.texi (Building the Installation Image): Remove '--image-size' flag from example. (Invoking guix system): Document the image size estimate. --- gnu/build/vm.scm | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gnu/build/vm.scm') diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 7d5e613956..d0bc8c3033 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -46,6 +46,7 @@ partition-flags partition-initializer + estimated-partition-size root-partition-initializer initialize-partition-table initialize-hard-disk)) @@ -150,6 +151,12 @@ the #:references-graphs parameter of 'derivation'." (flags partition-flags (default '())) (initializer partition-initializer (default (const #t)))) +(define (estimated-partition-size graphs) + "Return the estimated size of a partition that can store the store items +given by GRAPHS, a list of file names produced by #:references-graphs." + ;; Simply add a 20% overhead. + (round (* 1.2 (closure-size graphs)))) + (define (fold2 proc seed1 seed2 lst) ;TODO: factorize "Like `fold', but with a single list and two seeds." (let loop ((result1 seed1) -- cgit v1.2.3