No, it installs whatever recipe stages in do_populate_sysroot which is controlled by SYSROOT_DIRS, so the solution still makes sense to me as explained before and IMHO is better than the alternatives (changing the protobuf .cmake files to be different in sysroot and in PN-dev).
On Fri, Oct 20, 2023 at 8:17 AM Vyacheslav Yurkov <[email protected]> wrote: > I think the problem goes down to how dependencies are populated in the > sysroot. I raised this question in oe-core mailing list > https://lists.openembedded.org/g/openembedded-core/message/189324 , but > didn't get an answer yet. > > DEPENDS += "protobuf" will only install the main package of protobuf to > the sysroot, because it assumes that nativesdk-protobuf-compiler is also > part of the main package (which is not). I guess the part of the system > populating sysroot deals with recipes only, and not with packages. I'm > still trying to understand how that should be addressed properly. > My understanding is that either all packages should be installed to > sysroot (which recipe claims it provides), or we need a way to indicate a > package level dependency (i.e. nativesdk-protobuf-compiler in this case) > > Any ideas? > > Slava > > On 18.10.2023 14:28, Samuli Piippo wrote: > > Following simple test recipe will fail now when trying to use Protobuf > with CMake. > > inherit cmake > DEPENDS += "protobuf" > > do_configure:prepend() { > echo "find_package(Protobuf CONFIG)" > ${S}/CMakeLists.txt > } > > BBCLASSEXTEND = "nativesdk" > > --- > CMake Error at > tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-test/1.0/recipe-sysroot/usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/protobuf/protobuf-targets.cmake:107 > (message): > The imported target "protobuf::protoc" references the file > > > > "tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-test/1.0/recipe-sysroot/usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/bin/protoc-23.4.0" > > but this file does not exist. > --- > > I don't quite see why every project/recipe should fix this independently > when the simple workaround for this yocto-specific issue is available > (namely the use of SYSROOT_DIRS). > > -samuli > > ps. qtgrpc recipe and other Qt6 recipes are now visible in the layerindex > https://layers.openembedded.org/layerindex/recipe/348210/ > > > On Thu, 12 Oct 2023 at 15:06, Vyacheslav Yurkov <[email protected]> > wrote: > >> I'd like to follow-up on this and say that I see this issue now with >> nativesdk build, in particular nativesdk-grpc recipe fails in master with >> the same error. I hope that's partially related to the issue everybody is >> confused about, but I'd like understand how to properly fix it. >> >> | The imported target "protobuf::protoc" references the file >> | >> | >> "/home/uvv/projects/poky/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-grpc/1.56.2/recipe-sysroot/usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/bin/protoc-23.4.0" >> | >> | but this file does not exist. Possible reasons include: >> | >> | * The file was deleted, renamed, or moved to another location. >> >> The protoc-23.4.0 file already exists in the recipe-sysroot-native. >> >> And we do want protoc to be present in the SDK, but nativesdk build is a >> cross-compilation, because SDKMACHINE and HOST might be different. >> In this particular grpc case there's an option to say where the actual >> protoc executable is ( >> -D_gRPC_PROTOBUF_PROTOC_EXECUTABLE=/home/uvv/projects/poky/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-grpc/1.56.2/recipe-sysroot-native/usr/bin/protoc >> is passed to grpc). >> >> So there shouldn't be any issues here, but nativesdk build still fails. >> >> Looking into it further I see that protoc is actually packaged by >> protobuf-compiler package, but when I try to add a package dependency to >> grpc recipe I get this: >> >> nativesdk-protobuf RPROVIDES nativesdk-protobuf-compiler >> >> Moreover, if I go into devshell and forcefully install >> nativesdk-libprotobuf-compiler, then `bitbake nativesdk-grpc` is happy and >> compiles! >> >> So something wrong with the dependencies in protobuf recipe, but I can't >> figure out yet what exactly. Any ideas? >> >> Regards, >> Slava >> >>
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#105611): https://lists.openembedded.org/g/openembedded-devel/message/105611 Mute This Topic: https://lists.openembedded.org/mt/101679410/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
