Hi Stefano, 2017-06-14 10:32 GMT+02:00 Stefano Babic <sba...@denx.de>: > Hi Andreas, > > On 13/06/2017 14:18, Andreas Fenkart wrote: >> Hi list, >> >> I want to create a swupdate file, which is a cpio file with rootfs and >> some metadata to control software update. My problem is, that it is not >> rebuilt everytime the rootfs changes. I checked in the cooker log. >> >> NOTE: recipe swupdate-image-1.0-r4: task do_populate_sysroot_setscene: >> Succeeded >> NOTE: Running noexec task 5475 of 5478 (ID: 27, >> meta-devel/recipes-core/images/swupdate-image.bb, do_build) >> >> I generated the dot files with bitbake -g swupdate, and while do_swuimage >> has to run before do_build, do_build does not depend directly on do_swuimage: >> >> swupdate-image.do_createlink -> swupdate-image.do_swuimage >> swupdate-image.do_install -> swupdate-image.do_createlink >> swupdate-image.do_populate_sysroot -> swupdate-image.do_install >> swupdate-image.do_build" -> swupdate-image.do_populate_sysroot >> >> $ bitbake-diffsigs -t swupdate-image do_build >> ERROR: No sigdata files found matching swupdate-image do_build >> >> $ bitbake-diffsigs -t swupdate-image do_populate_sysroot >> Unable to find matching sigdata for .... >> recipes-core/images/swupdate-image.bb.do_install with hashes >> c0bc8039e8dbe8d70939dd3db2ceb922 or e9d7b242613f323d4d6adff3d6d4881b >> >> $ bitbake-diffsigs -t swupdate-image do_install >> ERROR: No sigdata files found matching swupdate-image do_install >> >> $ bitbake-diffsigs -t swupdate-image do_createlink >> Hash for dependent task imagesswupdate-image.bb.do_swuimage changed >> from cec64d7e21b0375ff641427d5d631254 to >> 45510576a402839f4c4d4ac9b9eff578 >> Hash for dependent task imagesrootfs.bb.do_build changed from >> 876eb436b444f84efd355c0294b871bf to fabbabdd000427cdf5e721b59784d5c4 >> Unable to find matching sigdata for >> meta-devel/recipes-core/images/rootfs.bb.do_build with hashes >> 876eb436b444f84efd355c0294b871bf or fabbabdd000427cdf5e721b59784d5c4 >> >> The dependency on rootfs is added here: >> https://github.com/sbabic/meta-swupdate/blob/master/classes/swupdate.bbclass#L64 >> with IMAGE_DEPENDS="rootfs" >> >> Is it correct to 'depend' on :do_build? It seems rather uncommon. > > I think that the first attempt to set dependency here was with > do_rootfs, but this just works for rootfs, not for all other images. In > the history. commit b2f47aa9de53a98380b8677eb9e078db608b0ad3 changed > from do_populatesysroot to do_build because it was noted that it runs > too early. > > I am not sure if I have this issue, maybe it was sporadic. I wrote a > patch, really to fix an issue in the transition morty --> pyro, where I > changed the dependency as: > diff --git a/classes/swupdate.bbclass b/classes/swupdate.bbclass > index 44e4546..511f147 100644 > --- a/classes/swupdate.bbclass > +++ b/classes/swupdate.bbclass > @@ -61,16 +61,23 @@ def swupdate_getdepends(d): > > depstr = "" > for dep in deps: > - depstr += " " + dep + ":do_build" > + if dep.find(":") != -1: > + deptask = "" > + else: > + if (dep == "virtual/kernel") or (dep == "virtual/bootloader"): > + deptask = ":do_deploy" > + else: > + deptask = ":do_image_complete" > + > + depstr += " " + dep + deptask > + > return depstr > > > So "do_image_complete" instead of "do_build", but I have to check > explicitely for kernel and bootloader because they have no > do_image_complete. But I do not know if this can be a correct solution. > >> >> I checked the latest swupdate-image.do_populate siginfo in sstate, which is >> pretty large, so adding just the task-dependencies: >> .. >> Tasks this task depends on: >> ['..-devel/recipes-core/images/swupdate-image.bb.do_install'] >> This task depends on the checksums of files: [] >> Hash for dependent task >> ./meta-devel/recipes-core/images/swupdate-image.bb.do_install is >> e9d7b242613f323d4d6adff3d6d4881b >> Computed Hash is d8b1d389351c25e0c4a519fb8fe9ddda >> .. >> >> Which makes me wonder, since bitbake-diffsig said do_install has no sigdata >> > > We have do_install[noexec] = "1" in the class - is this the reason ?
I removed all the 'noexec' stamps from swupdate.bbclass, but still the cooker.log says, that none of the swupdate-image tasks needs execution: NOTE: Setscene stamp current for task 5(../recipes-core/images/swupdate-image.bb, do_populate_sysroot) NOTE: Setscene stamp current for task 6(../recipes-core/images/swupdate-image.bb, do_populate_lic) NOTE: Setscene stamp current for task 7(../recipes-core/images/swupdate-image.bb, do_packagedata) NOTE: Setscene stamp current for task 8(../recipes-core/images/swupdate-image.bb, do_package_qa) NOTE: Setscene stamp current for task 9(../recipes-core/images/swupdate-image.bb, do_package) The funny thing is, that bitbake swupdate-image actually triggers a built of the rootfs. But the task do_swuimage is not even mentioned in the cooker.log! Now only do_swuimage depends on rootfs:do_build, so how can bitbake built a dependency for task it's not running? This is yocto-2.0.2, quite old, but I'd expect this to work on that release still >> I must admit that I feel pretty lost here. > > Best regards, > Stefano -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto