diff mbox series

[1/1] image.bbclass: preserve debugfs tarball with checksum fstype

Message ID 20250909104128.72058-2-mleonhardt@arri.de
State New
Headers show
Series image.bbclass: preserve debugfs tarball with checksum fstype | expand

Commit Message

Manuel Leonhardt Sept. 9, 2025, 10:41 a.m. UTC
Previously, when adding checksum fstypes to IMAGE_FSTYPES_DEBUGFS, e.g.
IMAGE_FSTYPES_DEBUGFS = "tar.bz2 tar.bz2.sha256sum", only the checksum
file remained in DEPLOY_DIR while the tarball file was removed. The
underlying issue was that inside gen_conversion_cmds, removing the
debugfs_ prefix from type broke the comparison with alltypes where the
prefix was expected.

Signed-off-by: Manuel Leonhardt <mleonhardt@arri.de>
---
 meta/classes-recipe/image.bbclass             |  3 ++-
 meta/lib/oeqa/selftest/cases/imagefeatures.py | 13 ++++++++-----
 2 files changed, 10 insertions(+), 6 deletions(-)
diff mbox series

Patch

diff --git a/meta/classes-recipe/image.bbclass b/meta/classes-recipe/image.bbclass
index 24a19fce1a..ccad308b93 100644
--- a/meta/classes-recipe/image.bbclass
+++ b/meta/classes-recipe/image.bbclass
@@ -481,6 +481,7 @@  python () {
             for ctype in sorted(ctypes):
                 if bt.endswith("." + ctype):
                     type = bt[0:-len(ctype) - 1]
+                    original_type = type
                     if type.startswith("debugfs_"):
                         type = type[8:]
                     # Create input image first.
@@ -493,7 +494,7 @@  python () {
                     subimage = type + "." + ctype
                     if subimage not in subimages:
                         subimages.append(subimage)
-                    if type not in alltypes:
+                    if original_type not in alltypes:
                         rm_tmp_images.add(localdata.expand("${IMAGE_NAME}.${type}"))
 
         for bt in basetypes[t]:
diff --git a/meta/lib/oeqa/selftest/cases/imagefeatures.py b/meta/lib/oeqa/selftest/cases/imagefeatures.py
index 94d01ba116..87c3da228a 100644
--- a/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -277,16 +277,19 @@  SKIP_RECIPE[busybox] = "Don't build this"
         """
       
         image = 'core-image-minimal'
-        image_fstypes_debugfs = 'tar.bz2'
-        features = 'IMAGE_GEN_DEBUGFS = "1"\n'
-        features += 'IMAGE_FSTYPES_DEBUGFS = "%s"\n' % image_fstypes_debugfs
-        self.write_config(features)
+        config = """
+IMAGE_GEN_DEBUGFS = "1"
+IMAGE_FSTYPES_DEBUGFS = "tar.bz2 tar.bz2.sha256sum"
+"""
+        self.write_config(config)
 
         bitbake(image)
         bb_vars = get_bb_vars(['DEPLOY_DIR_IMAGE', 'IMAGE_LINK_NAME'], image)
 
-        dbg_tar_file = os.path.join(bb_vars['DEPLOY_DIR_IMAGE'], "%s-dbg.%s" % (bb_vars['IMAGE_LINK_NAME'], image_fstypes_debugfs))
+        dbg_tar_file = os.path.join(bb_vars['DEPLOY_DIR_IMAGE'], "%s-dbg.tar.bz2" % bb_vars['IMAGE_LINK_NAME'])
         self.assertTrue(os.path.exists(dbg_tar_file), 'debug filesystem not generated at %s' % dbg_tar_file)
+        dbg_tar_sha_file = os.path.join(bb_vars['DEPLOY_DIR_IMAGE'], "%s-dbg.tar.bz2.sha256sum" % bb_vars['IMAGE_LINK_NAME'])
+        self.assertTrue(os.path.exists(dbg_tar_sha_file), 'debug filesystem sha256sum not generated at %s' % dbg_tar_sha_file)
         result = runCmd('cd %s; tar xvf %s' % (bb_vars['DEPLOY_DIR_IMAGE'], dbg_tar_file))
         self.assertEqual(result.status, 0, msg='Failed to extract %s: %s' % (dbg_tar_file, result.output))
         result = runCmd('find %s -name %s' % (bb_vars['DEPLOY_DIR_IMAGE'], "udevadm"))