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.
This commit is contained in:
Mathieu Othacehe 2022-09-05 18:12:22 +02:00
parent f38e91a84c
commit c009c286a2
No known key found for this signature in database
GPG Key ID: 8354763531769CA6
3 changed files with 14 additions and 8 deletions

View File

@ -170,8 +170,7 @@ that is not in SET, mentioning FIELD in the error message."
(size image-size ;size in bytes as integer
(default 'guess)
(sanitize validate-size))
(operating-system image-operating-system ;<operating-system>
(default #f))
(operating-system image-operating-system) ;<operating-system>
(partition-table-type image-partition-table-type ; 'mbr or 'gpt
(default 'mbr)
(sanitize validate-partition-table-type))

View File

@ -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

View File

@ -74,7 +74,7 @@
#:wal-mode? #f)))))
(define hurd-disk-image
(image
(image-without-os
(format 'disk-image)
(platform hurd)
(partitions