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