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@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue