| Message ID | 20250903144528.2248743-2-pierre-loup.gosse@smile.fr |
|---|---|
| State | Accepted, archived |
| Commit | 39d10137b86ebb6d1f20c36ae50a7771e6c76251 |
| Headers | show |
| Series | [v5,1/2] wic: add --extra-partition-space option to set unused space | expand |
These changes need to be documented, so would you be able to send a patch for the documentation (yocto-docs repository)? CCing Antonin so he’s aware. Ross > On 3 Sep 2025, at 15:45, pierre-loup.gosse via lists.openembedded.org <pierre-loup.gosse=smile.fr@lists.openembedded.org> wrote: > > From: Pierre-Loup GOSSE <pierre-loup.gosse@smile.fr> > > Makes a clear distinction with --extra-partition-space flag. > > Signed-off-by: Pierre-Loup GOSSE <pierre-loup.gosse@smile.fr> > > CC: Alexander Kanavin <alex.kanavin@gmail.com> > CC: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> > --- > changes in v3: > - adding this patch > > changes in v4: > - no change > > changes in v5: > - fix extra_filesystem_space check > --- > meta/lib/oeqa/selftest/cases/wic.py | 4 ++-- > scripts/lib/wic/help.py | 12 ++++++------ > scripts/lib/wic/ksparser.py | 25 +++++++++++++------------ > scripts/lib/wic/partition.py | 6 +++--- > 4 files changed, 24 insertions(+), 23 deletions(-) > > diff --git a/meta/lib/oeqa/selftest/cases/wic.py b/meta/lib/oeqa/selftest/cases/wic.py > index c244c9f188..b1c318bd4e 100644 > --- a/meta/lib/oeqa/selftest/cases/wic.py > +++ b/meta/lib/oeqa/selftest/cases/wic.py > @@ -1311,12 +1311,12 @@ run_wic_cmd() { > p, _ = self._get_wic_partitions(tempf.name, ignore_status=True) > self.assertNotEqual(p.status, 0, "wic exited successfully when an error was expected:\n%s" % p.output) > > - def test_extra_space(self): > + def test_extra_filesystem_space(self): > native_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "wic-tools") > > with NamedTemporaryFile("w", suffix=".wks") as tempf: > tempf.write("bootloader --ptable gpt\n" \ > - "part / --source rootfs --ondisk hda --extra-space 200M --fstype=ext4\n") > + "part / --source rootfs --ondisk hda --extra-filesystem-space 200M --fstype=ext4\n") > tempf.flush() > > _, partlns = self._get_wic_partitions(tempf.name, native_sysroot) > diff --git a/scripts/lib/wic/help.py b/scripts/lib/wic/help.py > index 800c0abf0f..6b49a67de9 100644 > --- a/scripts/lib/wic/help.py > +++ b/scripts/lib/wic/help.py > @@ -1013,12 +1013,12 @@ DESCRIPTION > --no-fstab-update: This option is specific to wic. It does not update the > '/etc/fstab' stock file for the given partition. > > - --extra-space: This option is specific to wic. It adds extra > - space after the space filled by the content > - of the partition. The final size can go > - beyond the size specified by --size. > - By default, 10MB. This option cannot be used > - with --fixed-size option. > + --extra-filesystem-space: This option is specific to wic. It adds extra > + space after the space filled by the content > + of the partition. The final size can go > + beyond the size specified by --size. > + By default, 10MB. This option cannot be used > + with --fixed-size option. > > --extra-partition-space: This option is specific to wic. It adds extra > empty space after the space filled by the > diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py > index a1aaf1b4b3..705f989750 100644 > --- a/scripts/lib/wic/ksparser.py > +++ b/scripts/lib/wic/ksparser.py > @@ -132,7 +132,7 @@ def systemidtype(arg): > class KickStart(): > """Kickstart parser implementation.""" > > - DEFAULT_EXTRA_SPACE = 10*1024 > + DEFAULT_EXTRA_FILESYSTEM_SPACE = 10*1024 > DEFAULT_OVERHEAD_FACTOR = 1.3 > > def __init__(self, confpath): > @@ -153,7 +153,7 @@ class KickStart(): > part.add_argument('--exclude-path', nargs='+') > part.add_argument('--include-path', nargs='+', action='append') > part.add_argument('--change-directory') > - part.add_argument("--extra-space", type=sizetype("M")) > + part.add_argument('--extra-filesystem-space', type=sizetype("M")) > part.add_argument('--extra-partition-space', type=sizetype("M")) > part.add_argument('--fsoptions', dest='fsopts') > part.add_argument('--fspassno', dest='fspassno') > @@ -175,9 +175,9 @@ class KickStart(): > part.add_argument('--hidden', action='store_true') > > # --size and --fixed-size cannot be specified together; options > - # ----extra-space and --overhead-factor should also raise a parser > - # --error, but since nesting mutually exclusive groups does not work, > - # ----extra-space/--overhead-factor are handled later > + # ----extra-filesystem-space and --overhead-factor should also raise a > + # parser error, but since nesting mutually exclusive groups does not work, > + # ----extra-filesystem-space/--overhead-factor are handled later > sizeexcl = part.add_mutually_exclusive_group() > sizeexcl.add_argument('--size', type=sizetype("M"), default=0) > sizeexcl.add_argument('--fixed-size', type=sizetype("M"), default=0) > @@ -264,12 +264,13 @@ class KickStart(): > parsed.extra_partition_space = 0 > # using ArgumentParser one cannot easily tell if option > # was passed as argument, if said option has a default > - # value; --overhead-factor/--extra-space cannot be used > - # with --fixed-size, so at least detect when these were > - # passed with non-0 values ... > + # value; --overhead-factor/--extra-filesystem-space > + # cannot be used with --fixed-size, so at least detect > + # when these were passed with non-0 values ... > if parsed.fixed_size: > - if parsed.overhead_factor or parsed.extra_space: > - err = "%s:%d: arguments --overhead-factor and --extra-space not "\ > + if parsed.overhead_factor or parsed.extra_filesystem_space: > + err = "%s:%d: arguments --overhead-factor and "\ > + "--extra-filesystem-space not "\ > "allowed with argument --fixed-size" \ > % (confpath, lineno) > raise KickStartError(err) > @@ -280,8 +281,8 @@ class KickStart(): > # with value equal to 0) > if not parsed.overhead_factor: > parsed.overhead_factor = self.DEFAULT_OVERHEAD_FACTOR > - if not parsed.extra_space: > - parsed.extra_space = self.DEFAULT_EXTRA_SPACE > + if not parsed.extra_filesystem_space: > + parsed.extra_filesystem_space = self.DEFAULT_EXTRA_FILESYSTEM_SPACE > > self.partnum += 1 > self.partitions.append(Partition(parsed, self.partnum)) > diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py > index d358aabbd6..0c9b1a5b96 100644 > --- a/scripts/lib/wic/partition.py > +++ b/scripts/lib/wic/partition.py > @@ -28,7 +28,7 @@ class Partition(): > self.align = args.align > self.disk = args.disk > self.device = None > - self.extra_space = args.extra_space > + self.extra_filesystem_space = args.extra_filesystem_space > self.extra_partition_space = args.extra_partition_space > self.exclude_path = args.exclude_path > self.include_path = args.include_path > @@ -104,8 +104,8 @@ class Partition(): > (actual_rootfs_size, rootfs_size)) > else: > extra_blocks = self.get_extra_block_count(actual_rootfs_size) > - if extra_blocks < self.extra_space: > - extra_blocks = self.extra_space > + if extra_blocks < self.extra_filesystem_space: > + extra_blocks = self.extra_filesystem_space > > rootfs_size = actual_rootfs_size + extra_blocks > rootfs_size = int(rootfs_size * self.overhead_factor) > -- > 2.34.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#222864): https://lists.openembedded.org/g/openembedded-core/message/222864 > Mute This Topic: https://lists.openembedded.org/mt/115046316/6875888 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [ross.burton@arm.com] > -=-=-=-=-=-=-=-=-=-=-=- >
I have already sent patches for documentation to the yocto-docs mailing list. Pierre-Loup, On Tue, Sep 9, 2025 at 4:31 PM Ross Burton <Ross.Burton@arm.com> wrote: > These changes need to be documented, so would you be able to send a patch > for the documentation (yocto-docs repository)? > > CCing Antonin so he’s aware. > > Ross > > > On 3 Sep 2025, at 15:45, pierre-loup.gosse via lists.openembedded.org > <pierre-loup.gosse=smile.fr@lists.openembedded.org> wrote: > > > > From: Pierre-Loup GOSSE <pierre-loup.gosse@smile.fr> > > > > Makes a clear distinction with --extra-partition-space flag. > > > > Signed-off-by: Pierre-Loup GOSSE <pierre-loup.gosse@smile.fr> > > > > CC: Alexander Kanavin <alex.kanavin@gmail.com> > > CC: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> > > --- > > changes in v3: > > - adding this patch > > > > changes in v4: > > - no change > > > > changes in v5: > > - fix extra_filesystem_space check > > --- > > meta/lib/oeqa/selftest/cases/wic.py | 4 ++-- > > scripts/lib/wic/help.py | 12 ++++++------ > > scripts/lib/wic/ksparser.py | 25 +++++++++++++------------ > > scripts/lib/wic/partition.py | 6 +++--- > > 4 files changed, 24 insertions(+), 23 deletions(-) > > > > diff --git a/meta/lib/oeqa/selftest/cases/wic.py > b/meta/lib/oeqa/selftest/cases/wic.py > > index c244c9f188..b1c318bd4e 100644 > > --- a/meta/lib/oeqa/selftest/cases/wic.py > > +++ b/meta/lib/oeqa/selftest/cases/wic.py > > @@ -1311,12 +1311,12 @@ run_wic_cmd() { > > p, _ = self._get_wic_partitions(tempf.name, > ignore_status=True) > > self.assertNotEqual(p.status, 0, "wic exited successfully > when an error was expected:\n%s" % p.output) > > > > - def test_extra_space(self): > > + def test_extra_filesystem_space(self): > > native_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "wic-tools") > > > > with NamedTemporaryFile("w", suffix=".wks") as tempf: > > tempf.write("bootloader --ptable gpt\n" \ > > - "part / --source rootfs --ondisk hda > --extra-space 200M --fstype=ext4\n") > > + "part / --source rootfs --ondisk hda > --extra-filesystem-space 200M --fstype=ext4\n") > > tempf.flush() > > > > _, partlns = self._get_wic_partitions(tempf.name, > native_sysroot) > > diff --git a/scripts/lib/wic/help.py b/scripts/lib/wic/help.py > > index 800c0abf0f..6b49a67de9 100644 > > --- a/scripts/lib/wic/help.py > > +++ b/scripts/lib/wic/help.py > > @@ -1013,12 +1013,12 @@ DESCRIPTION > > --no-fstab-update: This option is specific to wic. It does not > update the > > '/etc/fstab' stock file for the given > partition. > > > > - --extra-space: This option is specific to wic. It adds extra > > - space after the space filled by the content > > - of the partition. The final size can go > > - beyond the size specified by --size. > > - By default, 10MB. This option cannot be used > > - with --fixed-size option. > > + --extra-filesystem-space: This option is specific to wic. It > adds extra > > + space after the space filled by the > content > > + of the partition. The final size can > go > > + beyond the size specified by --size. > > + By default, 10MB. This option cannot > be used > > + with --fixed-size option. > > > > --extra-partition-space: This option is specific to wic. It > adds extra > > empty space after the space filled by > the > > diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py > > index a1aaf1b4b3..705f989750 100644 > > --- a/scripts/lib/wic/ksparser.py > > +++ b/scripts/lib/wic/ksparser.py > > @@ -132,7 +132,7 @@ def systemidtype(arg): > > class KickStart(): > > """Kickstart parser implementation.""" > > > > - DEFAULT_EXTRA_SPACE = 10*1024 > > + DEFAULT_EXTRA_FILESYSTEM_SPACE = 10*1024 > > DEFAULT_OVERHEAD_FACTOR = 1.3 > > > > def __init__(self, confpath): > > @@ -153,7 +153,7 @@ class KickStart(): > > part.add_argument('--exclude-path', nargs='+') > > part.add_argument('--include-path', nargs='+', action='append') > > part.add_argument('--change-directory') > > - part.add_argument("--extra-space", type=sizetype("M")) > > + part.add_argument('--extra-filesystem-space', > type=sizetype("M")) > > part.add_argument('--extra-partition-space', type=sizetype("M")) > > part.add_argument('--fsoptions', dest='fsopts') > > part.add_argument('--fspassno', dest='fspassno') > > @@ -175,9 +175,9 @@ class KickStart(): > > part.add_argument('--hidden', action='store_true') > > > > # --size and --fixed-size cannot be specified together; options > > - # ----extra-space and --overhead-factor should also raise a > parser > > - # --error, but since nesting mutually exclusive groups does not > work, > > - # ----extra-space/--overhead-factor are handled later > > + # ----extra-filesystem-space and --overhead-factor should also > raise a > > + # parser error, but since nesting mutually exclusive groups > does not work, > > + # ----extra-filesystem-space/--overhead-factor are handled later > > sizeexcl = part.add_mutually_exclusive_group() > > sizeexcl.add_argument('--size', type=sizetype("M"), default=0) > > sizeexcl.add_argument('--fixed-size', type=sizetype("M"), > default=0) > > @@ -264,12 +264,13 @@ class KickStart(): > > parsed.extra_partition_space = 0 > > # using ArgumentParser one cannot easily tell if > option > > # was passed as argument, if said option has a > default > > - # value; --overhead-factor/--extra-space cannot > be used > > - # with --fixed-size, so at least detect when > these were > > - # passed with non-0 values ... > > + # value; > --overhead-factor/--extra-filesystem-space > > + # cannot be used with --fixed-size, so at least > detect > > + # when these were passed with non-0 values ... > > if parsed.fixed_size: > > - if parsed.overhead_factor or > parsed.extra_space: > > - err = "%s:%d: arguments > --overhead-factor and --extra-space not "\ > > + if parsed.overhead_factor or > parsed.extra_filesystem_space: > > + err = "%s:%d: arguments > --overhead-factor and "\ > > + "--extra-filesystem-space not "\ > > "allowed with argument > --fixed-size" \ > > % (confpath, lineno) > > raise KickStartError(err) > > @@ -280,8 +281,8 @@ class KickStart(): > > # with value equal to 0) > > if not parsed.overhead_factor: > > parsed.overhead_factor = > self.DEFAULT_OVERHEAD_FACTOR > > - if not parsed.extra_space: > > - parsed.extra_space = > self.DEFAULT_EXTRA_SPACE > > + if not parsed.extra_filesystem_space: > > + parsed.extra_filesystem_space = > self.DEFAULT_EXTRA_FILESYSTEM_SPACE > > > > self.partnum += 1 > > self.partitions.append(Partition(parsed, > self.partnum)) > > diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py > > index d358aabbd6..0c9b1a5b96 100644 > > --- a/scripts/lib/wic/partition.py > > +++ b/scripts/lib/wic/partition.py > > @@ -28,7 +28,7 @@ class Partition(): > > self.align = args.align > > self.disk = args.disk > > self.device = None > > - self.extra_space = args.extra_space > > + self.extra_filesystem_space = args.extra_filesystem_space > > self.extra_partition_space = args.extra_partition_space > > self.exclude_path = args.exclude_path > > self.include_path = args.include_path > > @@ -104,8 +104,8 @@ class Partition(): > > (actual_rootfs_size, rootfs_size)) > > else: > > extra_blocks = self.get_extra_block_count(actual_rootfs_size) > > - if extra_blocks < self.extra_space: > > - extra_blocks = self.extra_space > > + if extra_blocks < self.extra_filesystem_space: > > + extra_blocks = self.extra_filesystem_space > > > > rootfs_size = actual_rootfs_size + extra_blocks > > rootfs_size = int(rootfs_size * self.overhead_factor) > > -- > > 2.34.1 > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > > Links: You receive all messages sent to this group. > > View/Reply Online (#222864): > https://lists.openembedded.org/g/openembedded-core/message/222864 > > Mute This Topic: https://lists.openembedded.org/mt/115046316/6875888 > > Group Owner: openembedded-core+owner@lists.openembedded.org > > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [ > ross.burton@arm.com] > > -=-=-=-=-=-=-=-=-=-=-=- > > > >
diff --git a/meta/lib/oeqa/selftest/cases/wic.py b/meta/lib/oeqa/selftest/cases/wic.py index c244c9f188..b1c318bd4e 100644 --- a/meta/lib/oeqa/selftest/cases/wic.py +++ b/meta/lib/oeqa/selftest/cases/wic.py @@ -1311,12 +1311,12 @@ run_wic_cmd() { p, _ = self._get_wic_partitions(tempf.name, ignore_status=True) self.assertNotEqual(p.status, 0, "wic exited successfully when an error was expected:\n%s" % p.output) - def test_extra_space(self): + def test_extra_filesystem_space(self): native_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "wic-tools") with NamedTemporaryFile("w", suffix=".wks") as tempf: tempf.write("bootloader --ptable gpt\n" \ - "part / --source rootfs --ondisk hda --extra-space 200M --fstype=ext4\n") + "part / --source rootfs --ondisk hda --extra-filesystem-space 200M --fstype=ext4\n") tempf.flush() _, partlns = self._get_wic_partitions(tempf.name, native_sysroot) diff --git a/scripts/lib/wic/help.py b/scripts/lib/wic/help.py index 800c0abf0f..6b49a67de9 100644 --- a/scripts/lib/wic/help.py +++ b/scripts/lib/wic/help.py @@ -1013,12 +1013,12 @@ DESCRIPTION --no-fstab-update: This option is specific to wic. It does not update the '/etc/fstab' stock file for the given partition. - --extra-space: This option is specific to wic. It adds extra - space after the space filled by the content - of the partition. The final size can go - beyond the size specified by --size. - By default, 10MB. This option cannot be used - with --fixed-size option. + --extra-filesystem-space: This option is specific to wic. It adds extra + space after the space filled by the content + of the partition. The final size can go + beyond the size specified by --size. + By default, 10MB. This option cannot be used + with --fixed-size option. --extra-partition-space: This option is specific to wic. It adds extra empty space after the space filled by the diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py index a1aaf1b4b3..705f989750 100644 --- a/scripts/lib/wic/ksparser.py +++ b/scripts/lib/wic/ksparser.py @@ -132,7 +132,7 @@ def systemidtype(arg): class KickStart(): """Kickstart parser implementation.""" - DEFAULT_EXTRA_SPACE = 10*1024 + DEFAULT_EXTRA_FILESYSTEM_SPACE = 10*1024 DEFAULT_OVERHEAD_FACTOR = 1.3 def __init__(self, confpath): @@ -153,7 +153,7 @@ class KickStart(): part.add_argument('--exclude-path', nargs='+') part.add_argument('--include-path', nargs='+', action='append') part.add_argument('--change-directory') - part.add_argument("--extra-space", type=sizetype("M")) + part.add_argument('--extra-filesystem-space', type=sizetype("M")) part.add_argument('--extra-partition-space', type=sizetype("M")) part.add_argument('--fsoptions', dest='fsopts') part.add_argument('--fspassno', dest='fspassno') @@ -175,9 +175,9 @@ class KickStart(): part.add_argument('--hidden', action='store_true') # --size and --fixed-size cannot be specified together; options - # ----extra-space and --overhead-factor should also raise a parser - # --error, but since nesting mutually exclusive groups does not work, - # ----extra-space/--overhead-factor are handled later + # ----extra-filesystem-space and --overhead-factor should also raise a + # parser error, but since nesting mutually exclusive groups does not work, + # ----extra-filesystem-space/--overhead-factor are handled later sizeexcl = part.add_mutually_exclusive_group() sizeexcl.add_argument('--size', type=sizetype("M"), default=0) sizeexcl.add_argument('--fixed-size', type=sizetype("M"), default=0) @@ -264,12 +264,13 @@ class KickStart(): parsed.extra_partition_space = 0 # using ArgumentParser one cannot easily tell if option # was passed as argument, if said option has a default - # value; --overhead-factor/--extra-space cannot be used - # with --fixed-size, so at least detect when these were - # passed with non-0 values ... + # value; --overhead-factor/--extra-filesystem-space + # cannot be used with --fixed-size, so at least detect + # when these were passed with non-0 values ... if parsed.fixed_size: - if parsed.overhead_factor or parsed.extra_space: - err = "%s:%d: arguments --overhead-factor and --extra-space not "\ + if parsed.overhead_factor or parsed.extra_filesystem_space: + err = "%s:%d: arguments --overhead-factor and "\ + "--extra-filesystem-space not "\ "allowed with argument --fixed-size" \ % (confpath, lineno) raise KickStartError(err) @@ -280,8 +281,8 @@ class KickStart(): # with value equal to 0) if not parsed.overhead_factor: parsed.overhead_factor = self.DEFAULT_OVERHEAD_FACTOR - if not parsed.extra_space: - parsed.extra_space = self.DEFAULT_EXTRA_SPACE + if not parsed.extra_filesystem_space: + parsed.extra_filesystem_space = self.DEFAULT_EXTRA_FILESYSTEM_SPACE self.partnum += 1 self.partitions.append(Partition(parsed, self.partnum)) diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py index d358aabbd6..0c9b1a5b96 100644 --- a/scripts/lib/wic/partition.py +++ b/scripts/lib/wic/partition.py @@ -28,7 +28,7 @@ class Partition(): self.align = args.align self.disk = args.disk self.device = None - self.extra_space = args.extra_space + self.extra_filesystem_space = args.extra_filesystem_space self.extra_partition_space = args.extra_partition_space self.exclude_path = args.exclude_path self.include_path = args.include_path @@ -104,8 +104,8 @@ class Partition(): (actual_rootfs_size, rootfs_size)) else: extra_blocks = self.get_extra_block_count(actual_rootfs_size) - if extra_blocks < self.extra_space: - extra_blocks = self.extra_space + if extra_blocks < self.extra_filesystem_space: + extra_blocks = self.extra_filesystem_space rootfs_size = actual_rootfs_size + extra_blocks rootfs_size = int(rootfs_size * self.overhead_factor)