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.


The gtest library uses the entire project version number for the CMake 
SOVERSION, so the library for gtest/gmock 1.13.0 is “1.13.0”; this entire 
string is effectively a major version for the ABI. This is appropriate because 
upstream does not concern itself with ABI stability at all, so even patch 
updates must be considered to break the ABI. This is an even more common 
approach in C++-land


$ dnf -C repoquery --provides gtest | fgrep .so.
Last metadata expiration check: 1:12:51 ago on Mon 20 Feb 2023 10:57:22 AM PST.
libgtest.so.1.12.1
libgtest.so.1.12.1()(64bit)
libgtest_main.so.1.12.1
libgtest_main.so.1.12.1()(64bit)

In their case, any change to the version number is a breaking change, both today and after the proposed change, so this seems fine.
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to