In recipes that are exempt from source code archiving due to COPYLEFT_LICENSE_EXCLUDE, do_deploy_archives does not have a transitive dependency on do_unpack. Given enough parallelism, this means do_deploy_archives can run at the same time or before do_unpack.
Because do_deploy_archives did not specify a working directory, its working directory was ${B}, which defaults to ${S}, which may be set by a recipe to a directory that is created by do_unpack. In this case, do_deploy_archives can fail because do_unpack deletes and re-creates the directory and do_deploy_archives cannot change into the non-existent directory. Avoid this problem by explicitly specifying a working directory for do_deploy_archives (and for do_deploy_all_archives as well for good measure). Signed-off-by: Clemens Lang <clemens.l...@bmw-carit.de> --- meta/classes/archiver.bbclass | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass index d908d16..f9c439e 100644 --- a/meta/classes/archiver.bbclass +++ b/meta/classes/archiver.bbclass @@ -45,6 +45,11 @@ ARCHIVER_WORKDIR = "${WORKDIR}/archiver-work/" do_dumpdata[dirs] = "${ARCHIVER_OUTDIR}" do_ar_recipe[dirs] = "${ARCHIVER_OUTDIR}" do_ar_original[dirs] = "${ARCHIVER_OUTDIR} ${ARCHIVER_WORKDIR}" +# When not set, the working directory for the following tasks can default to +# a location that will be deleted and re-created by do_unpack, which can lead +# to failure; avoid that by explicitly setting them. +do_deploy_archives[dirs] = "${WORKDIR}" +do_deploy_all_archives[dirs] = "${WORKDIR}" # This is a convenience for the shell script to use it -- 2.1.0 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core