Please bump library ABI minor version number in new releases
The ABI of a shared library on Linux is given by a major version, which is part of the SONAME and is incremented (rarely) on incompatible changes, and a minor version, which is part of the basename of the regular file to which the SONAME provides a symlink. It's conventional to manage the ABI version in the style of semantic versioning (major.minor.micro where the major version goes up for incompatible changes, the minor version goes up for new ABI, or the micro version goes up for internal fixes), although this is not strictly required.
For example:
->|M|<- ->|M|<- (M = major ABI version 2)
libdrm.so.2 -> libdrm.so.2.4.0
-->| SONAME |<-- ->|mmm|<- (mmm = minor ABI version 4.0)
->|M|<- ->|M|<- (M = major ABI version 3)
libdbus-1.so.3 -> libdbus-1.so.3.19.13
|<--SONAME-->| ->|mmmmm|<- (mmmmm = minor ABI version 19.13)
libdrm currently uses version info that does not change between releases (at least not recently): all recent versions have been libdrm.so.2.4.0
.
The minor version is used by ldconfig(8)
and by projects like the Steam Runtime to choose which of potentially several copies of a library is the newest; keeping it the same means we can't tell, and will potentially choose an outdated version.
It would be great if the minor ABI version of these libraries went up with each release. Now that Autotools support has been dropped, it should be easy to achieve this by setting the version
argument to library()
to be the "marketing" version number such as 2.4.107 (assuming that the major-version part of this version number would go up if and only if there is an incompatible change that results in a SONAME bump).
This is similar to wayland/wayland#175 (closed).