[OE-core] [PATCH] archiver.bbclass: Run deploy_archives in $WORKDIR

Clemens Lang clemens.lang at bmw-carit.de
Wed Oct 7 09:57:43 UTC 2015


Hey,

On Mon, Aug 17, 2015 at 10:37:47AM +0200, Clemens Lang wrote:
> 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.lang at bmw-carit.de>

So you merged this change in
 - OE Core e22685ff11af6d54c939aa8f327a0aaa1557fbbc
 - poky 76d7e8e9c9881afefafed3acfd1a72d97b025d75
but it turns out that even with this fix, we occasionally see the same
problem:

  00:06:02.343 NOTE: recipe nativesdk-mgu-can-1.0+gitAUTOINC+ed9c00caae-r0: task do_unpack: Started
  00:06:02.344 ERROR: Build of do_deploy_archives failed
  00:06:02.344 ERROR: Traceback (most recent call last):
  00:06:02.344   File "/home/builder/src/base/poky/bitbake/lib/bb/build.py", line 497, in exec_task
  00:06:02.345     return _exec_task(fn, task, d, quieterr)
  00:06:02.345   File "/home/builder/src/base/poky/bitbake/lib/bb/build.py", line 440, in _exec_task
  00:06:02.346     exec_func(func, localdata)
  00:06:02.346   File "/home/builder/src/base/poky/bitbake/lib/bb/build.py", line 212, in exec_func
  00:06:02.346     exec_func_python(func, d, runfile, cwd=adir)
  00:06:02.347   File "/home/builder/src/base/poky/bitbake/lib/bb/build.py", line 237, in exec_func_python
  00:06:02.347     os.chdir(cwd)
  00:06:02.347 OSError: [Errno 2] No such file or directory: '/home/builder/src/base/build_xs-baytrail-hmgua1/tmp/work/i686-nativesdk-linux/nativesdk-mgu-can/1.0+gitAUTOINC+ed9c00caae-r0/git'

Again, the license of the recipe that fails is "CLOSED". You can see
that it tries to cd into ${S}, which is set to ${WORKDIR}/git by the
recipe, even though do_deploy_archives[dirs] is set to ${WORKDIR} in
archiver.bbclass. Any ideas why the working directory might still be
${S}? Is there a way to see all flags of a task similar to bitbake -e
(that output doesn't seem to contain it)?

My initially proposed fix that adds the dependency works correctly,
though. I think we should just acknowledge that do_unpack should be run
before attempting any other tasks related to source code and merge the
initial version of my patch instead to fix this problem.


Let me know what you think,
Clemens Lang
-- 
Clemens Lang • Development Specialist
BMW Car IT GmbH • Lise-Meitner-Str. 14 • 89081 Ulm • http://bmw-carit.com
-------------------------------------------------------------------------
BMW Car IT GmbH
Geschäftsführer: Michael Würtenberger und Reinhard Stolle
Sitz und Registergericht: München HRB 134810
-------------------------------------------------------------------------



More information about the Openembedded-core mailing list