Re: [yocto] swupate.bblcass dependencies not triggering rebuild
Hi Andreas, On 31/07/2017 11:31, Andreas Fenkart wrote: > Hi > > 2017-07-28 15:20 GMT+02:00 Andreas Fenkart: >> Hi Stefano, >> >> 2017-06-14 10:32 GMT+02:00 Stefano Babic : >>> 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 >>
Re: [yocto] swupate.bblcass dependencies not triggering rebuild
Hi 2017-07-28 15:20 GMT+02:00 Andreas Fenkart: > Hi Stefano, > > 2017-06-14 10:32 GMT+02:00 Stefano Babic : >> 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 >
Re: [yocto] swupate.bblcass dependencies not triggering rebuild
Hi Stefano, 2017-06-14 10:32 GMT+02:00 Stefano Babic: > 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
Re: [yocto] swupate.bblcass dependencies not triggering rebuild
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 must admit that I feel pretty lost here. Best regards, Stefano -- = DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de = -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto