The protoc binary is not enabled for target builds. Try nativesdk build and
it should then fail to find it.

On Tue, 24 Oct 2023 at 14:53, Clément Péron <peron.c...@gmail.com> wrote:

> Hi,
>
> I have pushed a branch on my repo:
> https://github.com/clementperon/meta-openembedded/tree/test_protobuf
>
> and tried to reproduce the issue on my setup with the following kas yaml
> file.
>
> But I don't see any issue at the configure stage.
>
> cat XXXX/cortexa57-poky-linux-musl/test-protobuf/0.3/temp/log.do_configure
>
> Show that -- Version:23.4.0 of Protobuf is found without any issue
>
> Cmake host version is
> $> cmake --version
> cmake version 3.27.7
>
> I'm missing something ?
>
> Regards,
> Clement
>
> kas.yml
> ====================
> header:
>   version: 8
>
> machine: qemuarm64
> distro: poky
> target:
>   - test-protobuf
>
> repos:
>   poky:
>     url: https://git.yoctoproject.org/git/poky
>     path: layers/poky
>     refspec: master
>     layers:
>       meta:
>       meta-poky:
>       meta-yocto-bsp:
>
>   meta-openembedded:
>     url: https://github.com/clementperon/meta-openembedded
>     path: layers/meta-openembedded
>     refspec: test_protobuf
>     layers:
>       meta-oe:
>       meta-networking:
>       meta-python:
>
> bblayers_conf_header:
>   standard: |
>     POKY_BBLAYERS_CONF_VERSION = "2"
>     BBPATH = "${TOPDIR}"
>     BBFILES ?= ""
>
> local_conf_header:
>   libc: |
>     TCLIBC = "musl"
>   standard: |
>     CONF_VERSION = "2"
>     PACKAGE_CLASSES = "package_ipk"
>   debug-tweaks: |
>     EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
>
>   diskmon: |
>     BB_DISKMON_DIRS = "\
>         STOPTASKS,${TMPDIR},1G,100K \
>         STOPTASKS,${DL_DIR},1G,100K \
>         STOPTASKS,${SSTATE_DIR},1G,100K \
>         STOPTASKS,/tmp,100M,100K \
>         ABORT,${TMPDIR},100M,1K \
>         ABORT,${DL_DIR},100M,1K \
>         ABORT,${SSTATE_DIR},100M,1K \
>         ABORT,/tmp,10M,1K"
> ======================
>
> On Sun, 22 Oct 2023 at 20:45, Vyacheslav Yurkov <uvv.m...@gmail.com>
> wrote:
> >
> > I'm a bit confused here.
> >
> > I just did 'find
> tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-grpc/1.56.2/ -name
> "protoc*"' and I see protoc binary only in recipe-sysroot-native. That
> tells me that protoc, which is a part of nativesdk-protobuf-compiler, is
> not installed to recipe-sysroot.
> >
> > What am I missing here?
> >
> > Slava
> >
> > On 20.10.2023 09:35, Martin Jansa wrote:
> >
> > do_prepare_recipe_sysroot doesn't install any packages to RSS. Only
> package manager on target or in do_rootfs uses packages.
> >
> > It installs the files from dependency populate_sysroot task.
> >
> > On Fri, Oct 20, 2023 at 9:11 AM Samuli Piippo <samuli.pii...@gmail.com>
> wrote:
> >>
> >> Dependency to the recipe name will always install all packages to RSS.
> >> You can verify this by checking that the libprotoc.so from the
> nativesdk-protobuf-compile package is in the sysroot.
> >> The problem you are facing is the fact that binaries are not installed
> into the sysroot (for nativesdk builds), so you are only missing the
> bin/protoc-23.4.0 file.
> >> The proposed and twice reverted fix for this is the aforementioned
> SYSROOT_DIRS.
> >>
> >> -samuli
> >>
> >> On Fri, 20 Oct 2023 at 09:17, Vyacheslav Yurkov <uvv.m...@gmail.com>
> 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 <uvv.m...@gmail.com>
> 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 (#105722): 
https://lists.openembedded.org/g/openembedded-devel/message/105722
Mute This Topic: https://lists.openembedded.org/mt/101679410/21656
Group Owner: openembedded-devel+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to