diff options
author | Pavel Shlyak <p.shlyak@pantherx.org> | 2022-05-22 16:53:49 +0300 |
---|---|---|
committer | Mathieu Othacehe <othacehe@gnu.org> | 2022-05-23 09:17:12 +0200 |
commit | bb662d71e6e3db69114645d690bc033c5ffa1ac5 (patch) | |
tree | 80590748d08eccb556232fe53330cd0a9155fb82 /gnu | |
parent | 6e99c020b8c19e140635d1a52815d5b3298ed1ec (diff) | |
download | guix-bb662d71e6e3db69114645d690bc033c5ffa1ac5.tar.gz guix-bb662d71e6e3db69114645d690bc033c5ffa1ac5.zip |
image: Add bootable flag support.
* gnu/build/image.scm (sexp->partition): Add flags support.
* gnu/system/image.scm (partition->gexp): Ditto.
(system-disk-image): Set the genimage bootable flag if it is part of the
partition flags.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/build/image.scm | 7 | ||||
-rw-r--r-- | gnu/system/image.scm | 11 |
2 files changed, 13 insertions, 5 deletions
diff --git a/gnu/build/image.scm b/gnu/build/image.scm index 81caa424f8..3e8b94e2d6 100644 --- a/gnu/build/image.scm +++ b/gnu/build/image.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,12 +49,13 @@ "Take SEXP, a tuple as returned by 'partition->gexp', and turn it into a <partition> record." (match sexp - ((size file-system file-system-options label uuid) + ((size file-system file-system-options label uuid flags) (partition (size size) (file-system file-system) (file-system-options file-system-options) (label label) - (uuid uuid))))) + (uuid uuid) + (flags flags))))) (define (size-in-kib size) "Convert SIZE expressed in bytes, to kilobytes and return it as a string." @@ -78,6 +80,7 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum." (fs-options (partition-file-system-options partition)) (label (partition-label partition)) (uuid (partition-uuid partition)) + (flags (partition-flags partition)) (journal-options "lazy_itable_init=1,lazy_journal_init=1")) (apply invoke `("fakeroot" "mke2fs" "-t" ,fs "-d" ,root diff --git a/gnu/system/image.scm b/gnu/system/image.scm index e86e8c0867..74b81d02f6 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -219,7 +219,8 @@ set to the given OS." #$(partition-file-system-options partition) #$(partition-label partition) #$(and=> (partition-uuid partition) - uuid-bytevector))) + uuid-bytevector) + #$(partition-flags partition))) (define gcrypt-sqlite3&co ;; Guile-Gcrypt, Guile-SQLite3, and their propagated inputs. @@ -401,17 +402,21 @@ used in the image." (partition-type-values image partition))) (let ((label (partition-label partition)) (image (partition-image partition)) - (offset (partition-offset partition))) + (offset (partition-offset partition)) + (bootable (if (memq 'boot (partition-flags partition)) + "true" "false" ))) #~(format #f "~/partition ~a { ~/~/~a = ~a ~/~/image = \"~a\" ~/~/offset = \"~a\" + ~/~/bootable = \"~a\" ~/}" #$label #$partition-type-attribute #$partition-type-value #$image - #$offset)))) + #$offset + #$bootable)))) (define (genimage-type-options image-type image) (cond |