Subject: [PATCH] image: Add 'lba partition label.
From: Gabriel Wicki <[email-masked]>
To: [email-masked]
Date: Tue, 10 Oct 2023 18:29:26 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Some (embedded) system create FAT32/LBA partitions first, i thought this
is too easy to not include in Guix.

Please let me know if I can improve anything!

TIA for review and merge

From c5080162e8a77f60aaf9a967a896f57c113dde47 Mon Sep 17 00:00:00 2001
Message-ID: <[email-masked]>
From: Gabriel Wicki <[email-masked]>
Date: Tue, 10 Oct 2023 18:02:04 +0200
Subject: [PATCH] image: Add 'lba partition label.

* gnu/image.scm (validate-partition-flags): Add lba to the valid flags.
* doc/guix.texi ('partition' Reference): Document it.
---
 doc/guix.texi | 10 ++++++----
 gnu/image.scm |  2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index ad26a29513..95aae6ac02 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -45590,10 +45590,12 @@ partition Reference
 
 @item @code{flags} (default: @code{'()})
 The partition flags as a list of symbols.  Possible values are
-@code{'boot} and @code{'esp}.  The @code{'boot} flags should be set if
-you want to boot from this partition.  Exactly one partition should have
-this flag set, usually the root one. The @code{'esp} flag identifies a
-UEFI System Partition.
+@code{'boot}, @code{'esp} and @code{'lba}.  The @code{'boot} flags
+should be set if you want to boot from this partition.  Exactly one
+partition should have this flag set, usually the root one. The
+@code{'esp} flag identifies a UEFI System Partition.  The @code{'lba}
+flag @acronym{LBA, Local Block Addressing} allows for bigger FAT
+partitions than 8GiB.
 
 @item @code{initializer} (default: @code{#false})
 The partition initializer procedure as a gexp.  This procedure is called
diff --git a/gnu/image.scm b/gnu/image.scm
index 523653dd77..493aea94cd 100644
--- a/gnu/image.scm
+++ b/gnu/image.scm
@@ -100,7 +100,7 @@ (define-with-syntax-properties (validate-partition-offset (value properties))
 
 ;; The supported partition flags.
 (define-with-syntax-properties (validate-partition-flags (value properties))
-  (let ((bad-flags (lset-difference eq? value '(boot esp))))
+  (let ((bad-flags (lset-difference eq? value '(boot esp lba))))
     (unless (and (list? value) (null? bad-flags))
       (raise
        (make-compound-condition

base-commit: f4e8baf3806e79d7111d2943859865ae4ee0b59d
-- 
2.41.0