Message ID | 20230619065728.189934-1-stephan.wurm@a-eberle.de |
---|---|
State | New |
Headers | show |
Series | [meta-security] dm-verity-image-initramfs: Allow compressed image types | expand |
this fails to build: The stack trace of python calls that resulted in this exception/failure was: File: '<code>', lineno: 24, function: <module> 0020:__anon_70__home_akuster_oss_clean_poky_meta_classes_recipe_rootfs_postcommands_bbclass(d) 0021:__anon_125__home_akuster_oss_clean_poky_meta_classes_recipe_image_bbclass(d) 0022:__anon_181__home_akuster_oss_clean_poky_meta_classes_recipe_image_bbclass(d) 0023:__anon_518__home_akuster_oss_clean_poky_meta_classes_recipe_image_bbclass(d) *** 0024:__anon_28__home_akuster_oss_maint_meta_security_recipes_core_images_dm_verity_image_initramfs_bb(d) File: '/home/akuster/oss/maint/meta-security/recipes-core/images/dm-verity-image-initramfs.bb', lineno: 26, function: __anon_28__home_akuster_oss_maint_meta_security_recipes_core_images_dm_verity_image_initramfs_bb 0022:python __anonymous() { 0023: verity_image = d.getVar('DM_VERITY_IMAGE') 0024: verity_type = d.getVar('DM_VERITY_IMAGE_TYPE') 0025: *** 0026: dep = ' %s:do_image_%s' % (verity_image, verity_type.replace('-', '_')) 0027: d.appendVarFlag('do_image', 'depends', dep) 0028:} 0029: 0030:# Ensure dm-verity.env is updated also when rebuilding DM_VERITY_IMAGE Exception: AttributeError: 'NoneType' object has no attribute 'replace On 6/19/23 2:57 AM, Stephan Wurm wrote: > Using <DM_VERITY_IMAGE_TYPE> in the depends variable does not work for > compressed image types like squashfs-zst, as the resulting task > dependency still contains the incompatible dash. Replacing the dash by > an underscore resolves this issue. > > Signed-off-by: Stephan Wurm <stephan.wurm@a-eberle.de> > --- > recipes-core/images/dm-verity-image-initramfs.bb | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/recipes-core/images/dm-verity-image-initramfs.bb b/recipes-core/images/dm-verity-image-initramfs.bb > index 187aeae..fc12ba0 100644 > --- a/recipes-core/images/dm-verity-image-initramfs.bb > +++ b/recipes-core/images/dm-verity-image-initramfs.bb > @@ -19,7 +19,13 @@ IMAGE_FEATURES = "" > IMAGE_LINGUAS = "" > > # Can we somehow inspect reverse dependencies to avoid these variables? > -do_image[depends] += "${DM_VERITY_IMAGE}:do_image_${DM_VERITY_IMAGE_TYPE}" > +python __anonymous() { > + verity_image = d.getVar('DM_VERITY_IMAGE') > + verity_type = d.getVar('DM_VERITY_IMAGE_TYPE') > + > + dep = ' %s:do_image_%s' % (verity_image, verity_type.replace('-', '_')) > + d.appendVarFlag('do_image', 'depends', dep) > +} > > # Ensure dm-verity.env is updated also when rebuilding DM_VERITY_IMAGE > do_image[nostamp] = "1" > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#60337): https://lists.yoctoproject.org/g/yocto/message/60337 > Mute This Topic: https://lists.yoctoproject.org/mt/99618767/3616698 > Group Owner: yocto+owner@lists.yoctoproject.org > Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [akuster808@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
Hello akuster808, Am Mittwoch, dem 21.06.2023 um 19:16 -0400 schrieb akuster808: > this fails to build: > > The stack trace of python calls that resulted in this > exception/failure was: > File: '<code>', lineno: 24, function: <module> > 0020:__anon_70__home_akuster_oss_clean_poky_meta_classes_recipe_rootf > s_postcommands_bbclass(d) > 0021:__anon_125__home_akuster_oss_clean_poky_meta_classes_recipe_imag > e_bbclass(d) > 0022:__anon_181__home_akuster_oss_clean_poky_meta_classes_recipe_imag > e_bbclass(d) > 0023:__anon_518__home_akuster_oss_clean_poky_meta_classes_recipe_imag > e_bbclass(d) > *** > 0024:__anon_28__home_akuster_oss_maint_meta_security_recipes_core_ima > ges_dm_verity_image_initramfs_bb(d) > File: > '/home/akuster/oss/maint/meta-security/recipes-core/images/dm-verity- > image-initramfs.bb', > lineno: 26, function: > __anon_28__home_akuster_oss_maint_meta_security_recipes_core_images_d > m_verity_image_initramfs_bb > 0022:python __anonymous() { > 0023: verity_image = d.getVar('DM_VERITY_IMAGE') > 0024: verity_type = d.getVar('DM_VERITY_IMAGE_TYPE') > 0025: > *** 0026: dep = ' %s:do_image_%s' % (verity_image, > verity_type.replace('-', '_')) > 0027: d.appendVarFlag('do_image', 'depends', dep) > 0028:} > 0029: > 0030:# Ensure dm-verity.env is updated also when rebuilding > DM_VERITY_IMAGE > Exception: AttributeError: 'NoneType' object has no attribute > 'replace this looks like `DM_VERITY_IMAGE_TYPE` was never set or is empty, hence the `replace` operation cannot work. I tested this on kirkstone with `DM_VERITY_IMAGE_TYPE` set to `squashfs` or `squashfs-zst`, while `DM_VERITY_IMAGE` was configured to reflect my normal rootfs image. Best regards Stephan
diff --git a/recipes-core/images/dm-verity-image-initramfs.bb b/recipes-core/images/dm-verity-image-initramfs.bb index 187aeae..fc12ba0 100644 --- a/recipes-core/images/dm-verity-image-initramfs.bb +++ b/recipes-core/images/dm-verity-image-initramfs.bb @@ -19,7 +19,13 @@ IMAGE_FEATURES = "" IMAGE_LINGUAS = "" # Can we somehow inspect reverse dependencies to avoid these variables? -do_image[depends] += "${DM_VERITY_IMAGE}:do_image_${DM_VERITY_IMAGE_TYPE}" +python __anonymous() { + verity_image = d.getVar('DM_VERITY_IMAGE') + verity_type = d.getVar('DM_VERITY_IMAGE_TYPE') + + dep = ' %s:do_image_%s' % (verity_image, verity_type.replace('-', '_')) + d.appendVarFlag('do_image', 'depends', dep) +} # Ensure dm-verity.env is updated also when rebuilding DM_VERITY_IMAGE do_image[nostamp] = "1"
Using <DM_VERITY_IMAGE_TYPE> in the depends variable does not work for compressed image types like squashfs-zst, as the resulting task dependency still contains the incompatible dash. Replacing the dash by an underscore resolves this issue. Signed-off-by: Stephan Wurm <stephan.wurm@a-eberle.de> --- recipes-core/images/dm-verity-image-initramfs.bb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)