Author :
Pierre Le Marre
Date :
2024-07-30 19:18:27
Hash :ce32decc Message :build: Set the ABI version properly
Rational (from: https://gitlab.freedesktop.org/wayland/wayland/-/issues/175):
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.
The minor version is used by `ldconfig(8)` and by some projects 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.
---
In xkbcommon we did not have an API break for a long time, so in order
to avoid an unnecessary SONAME bump, let’s keep the major version version
at 0, e.g. xkbcommon 1.x.y produces `libxkbcommon.so.0.x.y`.
The same goes for `libxkbcommon-x11` and `libxkbregistry`.