On Fri, 2020-09-25 at 22:44 -0300, Otavio Salvador wrote: > Em sex., 25 de set. de 2020 às 20:30, Richard Purdie > <[email protected]> escreveu: > > We have multiple bugs ocurring because when do_unpack reruns, it > > just > > dumps the data base into WORKDIR. This means if a file was removed > > from > > a directory in a file://subdir/ url, that file would be left in the > > build confusing users. > > > > Also if files are entirely removed from SRC_URI, they would still > > exist > > in WORKDIR. Read the shadow recipe and the /etc/pam.d/ conditionals > > for an example of how this can break in interesting ways. > > > > To work around these issues, improve the cleaning code to remove > > anything > > except temp/ since it contains logs of the currently running task > > and > > *recipe-sysroot* since do_fetch and do_unpack have dependencies > > which may > > be added there already. That directory is setup to look after > > itself. > > > > We also have to create ${S} since that is a side effect of the > > current > > [cleandirs] which is no longer needed after this change. > > > > Signed-off-by: Richard Purdie <[email protected]> > > Cool; this seems to address some annoying corner cases :-)
Sadly testing shows we simply can't do this. I've tried adding all kinds of tweaks in to make it work and there are just too many corner cases. For example I just saw a recipe on the autobuilder fail as it did this (from log.task_order): do_package_write_deb_setscene (22542): log.do_package_write_deb_setscene.22542 do_populate_lic_setscene (22563): log.do_populate_lic_setscene.22563 do_packagedata_setscene (22912): log.do_packagedata_setscene.22912 do_package_setscene (28295): log.do_package_setscene.28295 do_deploy_source_date_epoch_setscene (29226): log.do_deploy_source_date_epoch_setscene.29226 do_fetch (14380): log.do_fetch.14380 do_unpack (19794): log.do_unpack.19794 do_patch (23663): log.do_patch.23663 do_prepare_recipe_sysroot (48174): log.do_prepare_recipe_sysroot.48174 do_configure (21716): log.do_configure.21716 do_compile (2203): log.do_compile.2203 do_install (48352): log.do_install.48352 do_package_write_ipk (34415): log.do_package_write_ipk.34415 do_package_write_rpm (34825): log.do_package_write_rpm.34825 do_package_qa (6590): log.do_package_qa.6590 do_populate_sysroot (6894): log.do_populate_sysroot.6894 i.e. the do_unpack then wiped out the do_package_setscene and more. Ultimately I think we may have to inject a directory, WORKDIR/sources/ where everything would be downloaded to. That will mean updating WORKDIR references in recipes. For 3.2 we may be able to unpack to a different directory (WORKDIR/soruces?) then move things into position, *but* log a list of what was done so we can delete it later if we rerun do_unpack. That is rather ugly though. Cheers, Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#142815): https://lists.openembedded.org/g/openembedded-core/message/142815 Mute This Topic: https://lists.openembedded.org/mt/77128536/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
