grpc / grpc

The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)

Home Page:https://grpc.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Non-CMake builds do not emit the CMake config or targets (affects all Debian)

rickmark opened this issue · comments

What version of gRPC and what language are you using?

Affects 1.30.2 to current in C++ (libgrpc-dev/libgrpc++-dev)

What operating system (Linux, Windows,...) and version?

Debian / Ubuntu

What runtime / compiler are you using (e.g. python version or version of gcc)

Ubuntu focal

What did you do?

The package system runs make not the cmake targets, therefore does not emit the required cmake files to be installed. This affects all installs of libgrpc-dev (https://packages.debian.org/bullseye/libgrpc-dev)

What did you expect to see?

gRPCConfig.cmake / gRPCTargets.cmake output so the Debian dpkg system could pick them up to usr/lib/${DEB_HOST_MULTIARCH}/cmake/.

What did you see instead?

The files are not generated therefore not included in the .deb file. This leads someone who has installed apt install libgrpc-dev to be unable to find_package(gRPC) but if installed by other means works.

Anything else we should know about your project / environment?

This may require the generation of the cmake targets in tools/buildgen so no matter how gRPC is built, it generates the targets to be consumed by CMake. The "must use CMake to get CMake targets" is not intuitive and as it was installed via apt consumers rarely know or care how the package is built.

Is there a fix for this? Later releases also impacted (e.g. bookworm)?

The gRPC team doesn't maintain or provide any support for the Debian packages, and our make support has been deprecated for years (see link below). You'll likely want to take this up with the Debian package maintainer.

If possible, I'd recommend against using the distro's package altogether, v1.30 is quite out of date. Please see https://github.com/grpc/grpc/tree/master/src/cpp for supported options.

I believe it's fixed in Debian Sid unstable: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1006237 and I hope it will make it's way to next stable.

I believe it's fixed in Debian Sid unstable: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1006237 and I hope it will make it's way to next stable.

How to download and install these beta packages on Ubuntu 22.04?

Solved by installing necessary packages from Debian repos for now:

the following packages:

libgrpc++1.44_1.44.0-2_amd64.deb
libgrpc22_1.44.0-2_amd64.deb
libgrpc++-dev_1.44.0-2_amd64.deb
libgrpc-dev_1.44.0-2_amd64.deb
libprotobuf31_3.20.1-1_amd64.deb
libprotobuf-dev_3.20.1-1_amd64.deb
libprotobuf-lite31_3.20.1-1_amd64.deb
libprotoc31_3.20.1-1_amd64.deb
libssl1.1_1.1.1f-1ubuntu2.18_amd64.deb
protobuf-compiler_3.20.1-1_amd64.deb
protobuf-compiler-grpc_1.44.0-2_amd64.deb