QEMU vmsep/virtfs setting

Mark Hatle

I've encountered an issue. When I build nativesdk-qemu for mingw32 target I'm getting a failure. Below is my attempt to figure out what is going wrong.

nativesdk-qemu is depending on libcap-ng for some reason, which does not compile for mingw32. Looking into how this dependency is coming about what appears to be happening is "virtfs" support is being enabled which triggers the dependency.

Looking at the bitbake -e output, what I see is:


This is running for me in both the target and nativesdk configurations. Trying to understand why it's enable, go back to the caller:


It SHOULD only be loading that file if 'vmsep' is enabled, but I believe due to the way bitbake, oe-core and BBCLASSEXTEND works, the nativesdk file includes work the same way for both target and nativesdk. Looking at my DISTRO_FEATURES, my target does include 'vmsep', but my nativesdk does not.

So hopefully this explains the failure, the target has vmsep, so the require always kicks in, which causes 'virtfs' to always be added to the configuration.

I see two possible solutions to this:

1) Make the virtfs class-target specific. This would match the prior lines and how they are arranged. However, it's unclear to me if this was intended to be target specific or also alter and SDKs configuration.

2) Only enable virtfs for a Linux system (target or nativesdk), I think this can be done using an override one way or another.

So for #1 the change would be something like:

-PACKAGECONFIG:append = " virtfs"
+PACKAGECONFIG:append:class-target = " virtfs"

So for #2 the change would be something like:

-PACKAGECONFIG:append = " virtfs"
+ENABLE_VIRTFS = " virtfs"
+ENABLE_VRITFS:sdkmingw32 = ""

I'm happy to submit a proper pull request, but I'm not sure what direction to go to fix this.


Join {meta-virtualization@lists.yoctoproject.org to automatically receive all group messages.