Hi,

took me a while to reproduce the failure locally.
It's because meta-oe and meta-filesystems are not as default included in
the bblayers.conf used for oe-selftest.

I don't want to touch bblayers and I think this is not intended as it would
be the same for e.g. erofs for which no test case was added.
Alexander Kanavin pointed me on the poky mailing list to these tests and in
fact, it's good to have them in general.
So what's the preferred way for oe-core?
Leave the tests and add the dependencies (for the specific tests) or just
remove the test cases?

-- Anna




Am Di., 28. Feb. 2023 um 16:20 Uhr schrieb Alexandre Belloni <
alexandre.bell...@bootlin.com>:

> Hello,
>
> this failed on the autobuilders:
>
> ERROR: Nothing PROVIDES 'f2fs-tools-native' (but
> /home/pokybuild/yocto-worker/beaglebone/build/meta/recipes-sato/images/
> core-image-sato.bb,
> /home/pokybuild/yocto-worker/beaglebone/build/meta/recipes-sato/images/
> core-image-sato-sdk.bb,
> /home/pokybuild/yocto-worker/beaglebone/build/meta/recipes-core/images/
> core-image-minimal.bb,
> /home/pokybuild/yocto-worker/beaglebone/build/meta/recipes-core/images/
> core-image-minimal-dev.bb,
> /home/pokybuild/yocto-worker/beaglebone/build/meta/recipes-core/images/
> core-image-ptest-all.bb DEPENDS on or otherwise requires it). Close
> matches:
>   btrfs-tools-native
>   dosfstools-native
>   spirv-tools-native
>
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/6790/steps/11/logs/stdio
>
> On 28/02/2023 16:00:58+0100, Anna-Lena Marx via lists.openembedded.org
> wrote:
> > Building F2FS rootfs is supported in Yocto/OpenEmbedded -
> > see image_types.bbclass, but not in WIC.
> > This adds it as a nice convenience feature.
> >
> > F2FS needs a minimum size of ~500M to operate correctly due to
> > an overprovision functionality.
> >
> > Signed-off-by: Anna-Lena Marx <anna-lena.m...@inovex.de>
> > ---
> >  meta/classes-recipe/image_types_wic.bbclass |  2 +-
> >  meta/lib/oeqa/selftest/cases/wic.py         |  2 ++
> >  meta/recipes-core/meta/wic-tools.bb         |  2 +-
> >  scripts/lib/wic/help.py                     |  1 +
> >  scripts/lib/wic/ksparser.py                 |  2 +-
> >  scripts/lib/wic/misc.py                     |  1 +
> >  scripts/lib/wic/partition.py                | 32 ++++++++++++++++++++-
> >  7 files changed, 38 insertions(+), 4 deletions(-)
> >
> > diff --git a/meta/classes-recipe/image_types_wic.bbclass
> b/meta/classes-recipe/image_types_wic.bbclass
> > index c339b9bdfb..8ae5ecca4d 100644
> > --- a/meta/classes-recipe/image_types_wic.bbclass
> > +++ b/meta/classes-recipe/image_types_wic.bbclass
> > @@ -89,7 +89,7 @@ do_image_wic[recrdeptask] += "do_deploy"
> >  do_image_wic[deptask] += "do_image_complete"
> >
> >  WKS_FILE_DEPENDS_DEFAULT = '${@bb.utils.contains_any("BUILD_ARCH", [
> 'x86_64', 'i686' ], "syslinux-native", "",d)}'
> > -WKS_FILE_DEPENDS_DEFAULT += "bmap-tools-native cdrtools-native
> btrfs-tools-native squashfs-tools-native e2fsprogs-native
> erofs-utils-native"
> > +WKS_FILE_DEPENDS_DEFAULT += "bmap-tools-native cdrtools-native
> btrfs-tools-native squashfs-tools-native e2fsprogs-native
> erofs-utils-native f2fs-tools-native"
> >  # Unified kernel images need objcopy
> >  WKS_FILE_DEPENDS_DEFAULT +=
> "virtual/${MLPREFIX}${TARGET_PREFIX}binutils"
> >  WKS_FILE_DEPENDS_BOOTLOADERS = ""
> > diff --git a/meta/lib/oeqa/selftest/cases/wic.py
> b/meta/lib/oeqa/selftest/cases/wic.py
> > index ca1abb970a..5e255e35c7 100644
> > --- a/meta/lib/oeqa/selftest/cases/wic.py
> > +++ b/meta/lib/oeqa/selftest/cases/wic.py
> > @@ -1188,6 +1188,7 @@ class Wic2(WicTestCase):
> >          with NamedTemporaryFile("w", suffix=".wks") as wks:
> >              wks.writelines(['part ext2   --fstype ext2     --source
> rootfs\n',
> >                              'part btrfs  --fstype btrfs    --source
> rootfs --size 40M\n',
> > +                            'part f2fs   --fstype f2fs     --source
> rootfs --size 50M\n',
> >                              'part squash --fstype squashfs --source
> rootfs\n',
> >                              'part swap   --fstype swap --size 1M\n',
> >                              'part emptyvfat   --fstype vfat   --size
> 1M\n',
> > @@ -1258,6 +1259,7 @@ class Wic2(WicTestCase):
> >              wks.writelines(
> >                  ['part ext2   --fstype ext2     --source rootfs
> --mkfs-extraopts "-D -F -i 8192"\n',
> >                   "part btrfs  --fstype btrfs    --source rootfs --size
> 40M --mkfs-extraopts='--quiet'\n",
> > +                 "part f2fs   --fstype f2fs     --source rootfs --size
> 50M --mkfs-extraopts='-O extra_attr -o 20'\n",
> >                   'part squash --fstype squashfs --source rootfs
> --mkfs-extraopts "-no-sparse -b 4096"\n',
> >                   'part emptyvfat   --fstype vfat   --size 1M
> --mkfs-extraopts "-S 1024 -s 64"\n',
> >                   'part emptymsdos  --fstype msdos  --size 1M
> --mkfs-extraopts "-S 1024 -s 64"\n',
> > diff --git a/meta/recipes-core/meta/wic-tools.bb
> b/meta/recipes-core/meta/wic-tools.bb
> > index 9282d36a4d..d30ce66b56 100644
> > --- a/meta/recipes-core/meta/wic-tools.bb
> > +++ b/meta/recipes-core/meta/wic-tools.bb
> > @@ -7,7 +7,7 @@ DEPENDS = "\
> >             mtools-native bmap-tools-native grub-native cdrtools-native \
> >             btrfs-tools-native squashfs-tools-native pseudo-native \
> >             e2fsprogs-native util-linux-native tar-native
> erofs-utils-native \
> > -           virtual/${TARGET_PREFIX}binutils \
> > +           f2fs-tools-native virtual/${TARGET_PREFIX}binutils \
> >             "
> >  DEPENDS:append:x86 = " syslinux-native syslinux grub-efi systemd-boot"
> >  DEPENDS:append:x86-64 = " syslinux-native syslinux grub-efi
> systemd-boot"
> > diff --git a/scripts/lib/wic/help.py b/scripts/lib/wic/help.py
> > index 73e3380cde..0094065931 100644
> > --- a/scripts/lib/wic/help.py
> > +++ b/scripts/lib/wic/help.py
> > @@ -931,6 +931,7 @@ DESCRIPTION
> >               btrfs
> >               squashfs
> >               erofs
> > +             f2fs
> >               swap
> >
> >           --fsoptions: Specifies a free-form string of options to be
> > diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py
> > index d1e546b12d..e10ce6581d 100644
> > --- a/scripts/lib/wic/ksparser.py
> > +++ b/scripts/lib/wic/ksparser.py
> > @@ -159,7 +159,7 @@ class KickStart():
> >          part.add_argument('--fstype', default='vfat',
> >                            choices=('ext2', 'ext3', 'ext4', 'btrfs',
> >                                     'squashfs', 'vfat', 'msdos', 'erofs',
> > -                                   'swap', 'none'))
> > +                                   'f2fs', 'swap', 'none'))
> >          part.add_argument('--mkfs-extraopts', default='')
> >          part.add_argument('--label')
> >          part.add_argument('--use-label', action='store_true')
> > diff --git a/scripts/lib/wic/misc.py b/scripts/lib/wic/misc.py
> > index 2b90821b30..dc84a37423 100644
> > --- a/scripts/lib/wic/misc.py
> > +++ b/scripts/lib/wic/misc.py
> > @@ -41,6 +41,7 @@ NATIVE_RECIPES = {"bmaptool": "bmap-tools",
> >                    "mkfs.ext3": "e2fsprogs",
> >                    "mkfs.ext4": "e2fsprogs",
> >                    "mkfs.vfat": "dosfstools",
> > +                  "mkfs.f2fs": "f2fs-tools",
> >                    "mksquashfs": "squashfs-tools",
> >                    "mkswap": "util-linux",
> >                    "mmd": "mtools",
> > diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py
> > index 382afa44bc..6adcaa041f 100644
> > --- a/scripts/lib/wic/partition.py
> > +++ b/scripts/lib/wic/partition.py
> > @@ -208,7 +208,7 @@ class Partition():
> >          Prepare content for a rootfs partition i.e. create a partition
> >          and fill it from a /rootfs dir.
> >
> > -        Currently handles ext2/3/4, btrfs, vfat and squashfs.
> > +        Currently handles ext2/3/4, btrfs, vfat, squashfs and f2fs.
> >          """
> >
> >          rootfs = "%s/rootfs_%s.%s.%s" % (cr_workdir, self.label,
> > @@ -351,6 +351,36 @@ class Partition():
> >               self.mkfs_extraopts, self.fsuuid, rootfs)
> >          exec_native_cmd(mkfs_cmd, native_sysroot, pseudo=pseudo)
> >
> > +    def prepare_rootfs_f2fs(self, rootfs, cr_workdir, oe_builddir,
> rootfs_dir,
> > +                            native_sysroot, pseudo):
> > +        """
> > +        Prepare content for a f2fs rootfs partition.
> > +        """
> > +        du_cmd = "du -ks %s" % rootfs_dir
> > +        out = exec_cmd(du_cmd)
> > +        actual_rootfs_size = int(out.split()[0])
> > +
> > +        min_f2fs_size = 524288
> > +        rootfs_size = self.get_rootfs_size(actual_rootfs_size)
> > +        if rootfs_size < min_f2fs_size:
> > +            rootfs_size = min_f2fs_size
> > +
> > +        with open(rootfs, 'w') as sparse:
> > +            os.ftruncate(sparse.fileno(), rootfs_size * 1024)
> > +
> > +        extraopts = self.mkfs_extraopts or "-O extra_attr,compression"
> > +
> > +        label_str = ""
> > +        if self.label:
> > +            label_str = "-l %s" % self.label
> > +
> > +        mkfs_f2fs_cmd = "mkfs.f2fs %s %s %s" % \
> > +                        (label_str, extraopts, rootfs)
> > +        exec_native_cmd(mkfs_f2fs_cmd, native_sysroot, pseudo=pseudo)
> > +
> > +        sload_f2fs_cmd = "sload.f2fs -f %s %s" % (rootfs_dir, rootfs)
> > +        exec_native_cmd(sload_f2fs_cmd, native_sysroot, pseudo=pseudo)
> > +
> >      def prepare_rootfs_msdos(self, rootfs, cr_workdir, oe_builddir,
> rootfs_dir,
> >                               native_sysroot, pseudo):
> >          """
> > --
> > 2.39.2
> >
>
> >
> > 
> >
>
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#177888): 
https://lists.openembedded.org/g/openembedded-core/message/177888
Mute This Topic: https://lists.openembedded.org/mt/97291696/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to