doubleopen-project / meta-doubleopen

A BitBake layer to create SPDX documents.
GNU General Public License v2.0
12 stars 4 forks source link

quilt: command not found #4

Open hesa opened 3 years ago

hesa commented 3 years ago

When rebuilding an image:

rm -fr sstate-cache/
rm -fr tmp/deploy/spdx/
bitbake core-image-minimal

I get tons of messages like this:

ERROR: libtool-2.4.6-r0 do_create_spdx: Command Error: 'quilt --quiltrc /media/hesa/53abd732-5131-495d-9ac5-c49a4ded3efa1/hesa/opt/poky-dunfell-23.0.2/build/tmp/work/core2-64-poky-linux/libtool/2.4.6-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0 Output: /bin/sh: quilt: command not found

hesa commented 3 years ago

However, this worked:

bitbake -c clean cairo
bitbake cairo
$ ls -1 tmp/deploy/spdx/
cairo-1.16.0-r0.spdx.json
cairo-1.16.0-r0.srclist.json
cairo-1.16.0-r0.tar.bz2

So perhaps the error is on my side

hesa commented 3 years ago

and FYI:

$ git log | head -4
commit af86ef3b2b666fcc02c8867149c4212eb405a094
Author: Mikko Murto <mikko.murto@hhpartners.fi>
Date:   Mon Mar 1 10:47:52 2021 +0000
mmurto commented 3 years ago

Thanks @hesa! I've run into the same one from time to time when deleting the tmp directory before rebuild. I've yet to investigate if that's a problem with the meta layer, or if it should be expected and the clean step should be executed.

gsinf commented 1 year ago

The build fails in the "on_create_spdx" step, where the following message makes it look like the xz(1) binary is not available:

: /bin/sh: 1: xz: not found

I'm using the current master (b43cdf54bfbf300b255dd41166a8e8548204c205).

I've tried to add a DEPENDS += "xr-native" on the faulty recipe by means of a bbappend, but this did not fix the problem.

I've tried to spawn a devshell (bitbake -c devshell $my_recipe) where I could notice that the xz(1) command is effectively available, and it comes from a path that is actually part of the recipe-sysroot-native. The same path is in the PATH variable printed by bitbake.

Could it be a race condition? E.g. on_create_spdx is executed before the sysroot is populated? This would also explain why it happens when the tmp directory is deleted before a rebuild.