I agree, but for ensuring partition sizes are not changing you have the fixed_size option which is checked in partition.py already
if self.fixed_size and self.size > self.fixed_size:
raise WicError("File system image of partition %s is "
"larger (%d kB) than its allowed size %d kB" %
(self.mountpoint, self.size, self.fixed_size))
So there are currently two issues in Kirkstone:
First: The extra_blocks < BOOTDD_EXTRA_SPACE statement
Second: The get_extra_blocks_count method not taking fixed_size into account.
The following patches should solve the issues (currently not yet tested):
diff --git a/scripts/lib/wic/plugins/source/bootimg-efi.py b/scripts/lib/wic/plugins/source/bootimg-efi.py
index 89a76a7..568e3eb 100644
--- a/scripts/lib/wic/plugins/source/bootimg-efi.py
+++ b/scripts/lib/wic/plugins/source/bootimg-efi.py
@@ -418,8 +418,8 @@ class BootimgEFIPlugin(SourcePlugin):
extra_blocks = part.get_extra_block_count(blocks)
- if extra_blocks < BOOTDD_EXTRA_SPACE:
- extra_blocks = BOOTDD_EXTRA_SPACE
+ #if extra_blocks < BOOTDD_EXTRA_SPACE:
+ # extra_blocks = BOOTDD_EXTRA_SPACE
blocks += extra_blocks
diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py
index 61fd810..4ae416b 100644
--- a/scripts/lib/wic/partition.py
+++ b/scripts/lib/wic/partition.py
@@ -79,10 +79,10 @@ class Partition():
logger.debug("Requested partition size for %s: %d",
self.mountpoint, self.size)
- if not self.size:
- return 0
+ requested_blocks = self.disk_size
- requested_blocks = self.size
+ if not requested_blocks:
+ return 0
logger.debug("Requested blocks %d, current_blocks %d",
requested_blocks, current_blocks)