[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#52550] [PATCH 01/10] build: image: Add optional closure copy suppor
From: |
Mathieu Othacehe |
Subject: |
[bug#52550] [PATCH 01/10] build: image: Add optional closure copy support. |
Date: |
Thu, 16 Dec 2021 14:06:40 +0100 |
* gnu/build/image.scm (initialize-root-partition): Add a closure-copy?
argument and honor it.
---
gnu/build/image.scm | 39 ++++++++++++++++++++++++++++++---------
1 file changed, 30 insertions(+), 9 deletions(-)
diff --git a/gnu/build/image.scm b/gnu/build/image.scm
index 6eb0290256..bdd5ec25a9 100644
--- a/gnu/build/image.scm
+++ b/gnu/build/image.scm
@@ -166,6 +166,7 @@ (define* (initialize-root-partition root
bootcfg-location
bootloader-package
bootloader-installer
+ (copy-closures? #t)
(deduplicate? #t)
references-graphs
(register-closures? #t)
@@ -176,30 +177,50 @@ (define* (initialize-root-partition root
"Initialize the given ROOT directory. Use BOOTCFG and BOOTCFG-LOCATION to
install the bootloader configuration.
-If REGISTER-CLOSURES? is true, register REFERENCES-GRAPHS in the store. If
+If COPY-CLOSURES? is true, copy all of REFERENCES-GRAPHS to the partition. If
+REGISTER-CLOSURES? is true, register REFERENCES-GRAPHS in the store. If
DEDUPLICATE? is true, then also deduplicate files common to CLOSURES and the
rest of the store when registering the closures. SYSTEM-DIRECTORY is the name
of the directory of the 'system' derivation. Pass WAL-MODE? to
register-closure."
+ (define root-store
+ (string-append root (%store-directory)))
+
+ (define tmp-store ".tmp-store")
+
(populate-root-file-system system-directory root)
- (populate-store references-graphs root
- #:deduplicate? deduplicate?)
+
+ (when copy-closures?
+ (populate-store references-graphs root
+ #:deduplicate? deduplicate?))
;; Populate /dev.
(when make-device-nodes
(make-device-nodes root))
(when register-closures?
+ (unless copy-closures?
+ ;; XXX: 'register-closure' wants to palpate the things it registers, so
+ ;; create a symlink to the store.
+ (rename-file root-store tmp-store)
+ (symlink (%store-directory) root-store))
+
(for-each (lambda (closure)
(register-closure root closure
#:wal-mode? wal-mode?))
- references-graphs))
+ references-graphs)
+
+ (unless copy-closures?
+ (delete-file root-store)
+ (rename-file tmp-store root-store)))
- (when bootloader-installer
- (display "installing bootloader...\n")
- (bootloader-installer bootloader-package #f root))
- (when bootcfg
- (install-boot-config bootcfg bootcfg-location root)))
+ ;; There's no point installing a bootloader if we do not populate the store.
+ (when copy-closures?
+ (when bootloader-installer
+ (display "installing bootloader...\n")
+ (bootloader-installer bootloader-package #f root))
+ (when bootcfg
+ (install-boot-config bootcfg bootcfg-location root))))
(define* (make-iso9660-image xorriso grub-mkrescue-environment
grub bootcfg system-directory root target
--
2.34.0
- [bug#52550] [PATCH 00/10] Further work on the image API., Mathieu Othacehe, 2021/12/16
- [bug#52550] [PATCH 01/10] build: image: Add optional closure copy support.,
Mathieu Othacehe <=
- [bug#52550] [PATCH 03/10] image: Add a shared-network? field., Mathieu Othacehe, 2021/12/16
- [bug#52550] [PATCH 06/10] Remove VM generation dead-code., Mathieu Othacehe, 2021/12/16
- [bug#52550] [PATCH 04/10] system: image: Add docker support., Mathieu Othacehe, 2021/12/16
- [bug#52550] [PATCH 07/10] scripts: system: Deprecate the docker-image command., Mathieu Othacehe, 2021/12/16
- [bug#52550] [PATCH 08/10] scripts: system: Pass the volatile field to VM generation., Mathieu Othacehe, 2021/12/16
- [bug#52550] [PATCH 10/10] tests: docker: Fix it., Mathieu Othacehe, 2021/12/16
- [bug#52550] [PATCH 05/10] system: vm: Use the image API to generate QEMU images., Mathieu Othacehe, 2021/12/16
- [bug#52550] [PATCH 02/10] image: Add a shared-store? field., Mathieu Othacehe, 2021/12/16
- [bug#52550] [PATCH 09/10] scripts: system: Use the disk-image size argument for VM generation., Mathieu Othacehe, 2021/12/16
- [bug#52550] [PATCH 00/10] Further work on the image API., Ludovic Courtès, 2021/12/22