summaryrefslogtreecommitdiff
path: root/gnu/system/image.scm
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2022-09-05 18:12:22 +0200
committerMathieu Othacehe <othacehe@gnu.org>2022-09-24 14:20:36 +0200
commitc009c286a23f48b56731c3e7bc4875a9e88857c4 (patch)
tree4d54290b566a05db41c82cf51703e89c7fb8a099 /gnu/system/image.scm
parentf38e91a84c7d5ca72ddfccdf0ed8a3f0917054c0 (diff)
downloadguix-patches-c009c286a23f48b56731c3e7bc4875a9e88857c4.tar
guix-patches-c009c286a23f48b56731c3e7bc4875a9e88857c4.tar.gz
image: Make the operating-system field mandatory.
Make the operating-system field mandatory as creating an image without it makes no sense. Introduce a new macro, image-without-os for the specific cases where the image is only created to be inherited from afterwards. * gnu/image.scm (<image>)[operating-system]: Make it mandatory. * gnu/system/image.scm (image-without-os): New macro. (efi-disk-image, efi32-disk-image, iso9660-image, docker-image, raw-with-offset-disk-image): Use it. * gnu/system/images/hurd.scm (hurd-disk-image): Ditto.
Diffstat (limited to 'gnu/system/image.scm')
-rw-r--r--gnu/system/image.scm17
1 files changed, 12 insertions, 5 deletions
diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index a04363a130..c59b7eafd7 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -65,6 +65,7 @@
#:use-module (ice-9 match)
#:export (root-offset
root-label
+ image-without-os
esp-partition
esp32-partition
@@ -102,6 +103,12 @@
;; Generic root partition label.
(define root-label "Guix_image")
+(define-syntax-rule (image-without-os . fields)
+ "Return an image record with the mandatory operating-system field set to
+#false. This is useful when creating an image record that will serve as a
+parent image record."
+ (image (operating-system #false) . fields))
+
(define esp-partition
(partition
(size (* 40 (expt 2 20)))
@@ -127,17 +134,17 @@
(initializer (gexp initialize-root-partition))))
(define efi-disk-image
- (image
+ (image-without-os
(format 'disk-image)
(partitions (list esp-partition root-partition))))
(define efi32-disk-image
- (image
+ (image-without-os
(format 'disk-image)
(partitions (list esp32-partition root-partition))))
(define iso9660-image
- (image
+ (image-without-os
(format 'iso9660)
(partitions
(list (partition
@@ -146,11 +153,11 @@
(flags '(boot)))))))
(define docker-image
- (image
+ (image-without-os
(format 'docker)))
(define* (raw-with-offset-disk-image #:optional (offset root-offset))
- (image
+ (image-without-os
(format 'disk-image)
(partitions
(list (partition