Bug 15553 - build-deps QA error in nativesdk-qemu
Summary: build-deps QA error in nativesdk-qemu
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: devtools / tool chain (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Medium+ normal
Target Milestone: 5.1 M3
Assignee: Richard Purdie
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2024-07-16 21:34 UTC by Denys Dmytriyenko
Modified: 2024-08-06 08:36 UTC (History)
4 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: Don't know


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Denys Dmytriyenko 2024-07-16 21:34:28 UTC
Vanilla Poky master:

$ bitbake nativesdk-qemu
...
ERROR: nativesdk-qemu-9.0.1-r0 do_package_qa: QA Issue: nativesdk-qemu-user-mips rdepends on nativesdk-bash, but it isn't a build dependency? [build-deps]
ERROR: nativesdk-qemu-9.0.1-r0 do_package_qa: Fatal QA errors were found, failing task.
ERROR: Logfile of failure stored in: /OE/poky-master/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qemu/9.0.1/temp/log.do_package_qa.1281734
ERROR: Task (virtual:nativesdk:/OE/poky-master/meta/recipes-devtools/qemu/qemu_9.0.1.bb:do_package_qa) failed with exit code '1'
Comment 1 Richard Purdie 2024-07-17 19:15:00 UTC
I dug into this one and the problem is the bash dependency is added during a do_package subfunction which means the bitbake task dependency code never sees it. It is therefore correctly complaining.

It isn't clear any earlier if the mips package is present or not. What really needs to happen is the RDEPENDS needs to be declared earlier and PACKAGES extended to contain the package so the RDEPENDS is seen. That isn't trivial. I wonder if we still need the bash based wrapper?
Comment 2 Richard Purdie 2024-07-17 19:16:29 UTC
Second question is of course why the autobuilder doesn't see this?
Comment 3 Richard Purdie 2024-07-17 21:36:37 UTC
Further data points:

"bitbake xxx -c populate_sdk" does not cause package_qa to run which is why the autobuilder does not see this.

There is a bask dependency RDEPENDS for ${SPM}-common with a class-target override which fixes the target case.

The bash dependency comes from an RDEPENDS dynamically added in do_package so is missed from the task dependencies

It only applies if mips is in QEMU_TARGETS and is for a wrapper script which adds a work around for user-mode qemu on mips. It may be possible to drop this.
Comment 4 Denys Dmytriyenko 2024-07-18 17:10:50 UTC
I guess we can close it now?
https://git.openembedded.org/openembedded-core/commit/?id=b30c1e5805b3f108a2d0a30259b50b9e7db0f6cc

The second question is also being looked at:
https://git.openembedded.org/openembedded-core/commit/?h=master-next&id=7fa176b2ee31629e54f0b83d43150aa583743e25

But I'm not sure if Richard is still testing it in master-next?
Comment 5 Richard Purdie 2024-08-06 08:36:47 UTC
These two commits together resolve the qemu issue and the fact that nativesdk issues weren't showing up on the autobuilder:

https://git.yoctoproject.org/poky/commit/?id=0655e196d5d639782e2f682aa364cc970ef33406

https://git.yoctoproject.org/poky/commit/?id=46e30464b4d4f2c826723791264629638a32a518