From d0ae92243936fd26d20b5e7812439b6b2f97d74d Mon Sep 17 00:00:00 2001
From: Adriaan de Groot <groot@kde.org>
Date: Tue, 7 Nov 2023 23:37:31 +0100
Subject: [PATCH] partition: introduce accessor for minimum-size EFI

---
 src/modules/partition/PartitionViewStep.cpp | 5 +++--
 src/modules/partition/core/PartUtils.cpp    | 7 +++++++
 src/modules/partition/core/PartUtils.h      | 6 ++++++
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/modules/partition/PartitionViewStep.cpp b/src/modules/partition/PartitionViewStep.cpp
index c8c138ff70..52092bd230 100644
--- a/src/modules/partition/PartitionViewStep.cpp
+++ b/src/modules/partition/PartitionViewStep.cpp
@@ -561,7 +561,8 @@ PartitionViewStep::onLeave()
             const QString requireConfiguredSize
                 = tr( "The filesystem must be at least %1 MiB in size." ).arg( atLeastMiB );
             const QString requiredMinimumSize
-                = tr( "The filesystem must be at least %1 MiB in size." ).arg( Calamares::BytesToMiB( 32_MiB ) );
+                = tr( "The filesystem must be at least %1 MiB in size." )
+                      .arg( Calamares::BytesToMiB( PartUtils::efiFilesystemMinimumSize() ) );
             const QString suggestConfiguredSize
                 = tr( "The minimum recommended size for the filesystem is %1 MiB." ).arg( atLeastMiB );
 
@@ -569,7 +570,7 @@ PartitionViewStep::onLeave()
             const QString mayFail = tr( "You can continue without setting up an EFI system "
                                         "partition but your system may fail to start." );
             const QString possibleFail = tr( "You can continue with this EFI system "
-                                        "partition configuration but your system may fail to start." );
+                                             "partition configuration but your system may fail to start." );
 
             const QString startList = QStringLiteral( "<br/><br/><ul>" );
             const QString endList = QStringLiteral( "</ul><br/><br/>" );
diff --git a/src/modules/partition/core/PartUtils.cpp b/src/modules/partition/core/PartUtils.cpp
index 2b61c6d9eb..9d8c18d61a 100644
--- a/src/modules/partition/core/PartUtils.cpp
+++ b/src/modules/partition/core/PartUtils.cpp
@@ -545,6 +545,13 @@ efiFilesystemRecommendedSize()
     return uefisys_part_sizeB;
 }
 
+qint64
+efiFilesystemMinimumSize()
+{
+    using Calamares::Units::operator""_MiB;
+    return 32_MiB;
+}
+
 QString
 canonicalFilesystemName( const QString& fsName, FileSystem::Type* fsType )
 {
diff --git a/src/modules/partition/core/PartUtils.h b/src/modules/partition/core/PartUtils.h
index d7d62ed5ea..e1cca794f8 100644
--- a/src/modules/partition/core/PartUtils.h
+++ b/src/modules/partition/core/PartUtils.h
@@ -120,6 +120,12 @@ bool isEfiFilesystemMinimumSize( const Partition* candidate );
  */
 qint64 efiFilesystemRecommendedSize();
 
+/** @brief Returns the hard-minimum size of an EFI boot partition in bytes.
+ *
+ * This is 32MiB, based on the FAT32 standard and EFI documentation.
+ */
+qint64 efiFilesystemMinimumSize();
+
 /**
  * @brief Is the given @p partition bootable in EFI? Depending on
  * the partition table layout, this may mean different flags.
-- 
GitLab