On Mon, Feb 20, 2023, at 3:12 PM, Gordon Messmer wrote:
On 2023-02-20 11:32, Ben Beasley wrote:
> The grpc C++ libraries have CMake SOVERSION e.g. “1.48” for the 1.48.x minor release.
There is no attempt at ABI compatibility across minor releases, and the entire string
“1.48” is effectively a major version for ABI purposes. The “patch” relases of grpc only
change internal implementation details. This approach is fairly common in C++ projects.
I'm finding it difficult to fully follow the path through grpc's build
system, but it looks like the soname matches the "major" component of
"CORE_VERSION":
https://github.com/grpc/grpc/blob/v1.48.0/Makefile
$ dnf -C repoquery --provides grpc | grep libgrpc.so
libgrpc.so.26()(64bit)
...where the full path is: /usr/lib64/libgrpc.so.26.0.0
All of that seems compatible with the proposal, regardless of whether we
use the full version string or truncate it.
This is one of the C libraries, which have a more conventional integer ABI version. For
the C++ libraries, have a look at the grpc-cpp subpackage. You will find libraries like:
libgrpc++.so.1.48()(64bit)