wayland/egl
Simon McVittie 0cdd2a5c54 build: Include the Wayland minor version in libraries' ABI versions
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.

Until now, the ABI minor version was hard-coded, which means we can't
tell which of a pair of Wayland libraries is newer (and therefore
likely to have more symbols and/or fewer bugs).

libwayland-egl already had ABI major version 1, so we can use the
"marketing" version number as the ABI major.minor version number
directly, so Wayland 1.19.90 would produce
libwayland-egl.so.1 -> libwayland-egl.so.1.19.90.

libwayland-cursor and libwayland-server have ABI major version 0,
and OS distributions don't like it when there's a SONAME bump for no
good reason, so use their existing ABI major version together with
the "marketing" minor version:
libwayland-cursor.so.0 -> libwayland-cursor.so.0.19.90.

If the Wayland major version number is incremented to 2, we'll have to
rethink this, so add some error() to break the build if/when that
happens. Assuming that Wayland 2.0 would involve breaking changes,
the best way would probably to bump all the SONAMEs to
libwayland-foo.so.2.

Resolves: https://gitlab.freedesktop.org/wayland/wayland/-/issues/175
Signed-off-by: Simon McVittie <smcv@collabora.com>
2021-10-28 12:46:06 +00:00
..
meson.build build: Include the Wayland minor version in libraries' ABI versions 2021-10-28 12:46:06 +00:00
wayland-egl-abi-check.c egl: fix typo "Backards" 2020-12-17 16:03:14 -05:00
wayland-egl-backend.h build: drop autotools 2021-03-05 09:15:04 +00:00
wayland-egl-core.h wayland-egl: move the wayland-egl{, -core}.h headers to egl/ 2018-02-09 17:31:06 +00:00
wayland-egl-symbols-check wayland-egl: Ignore underscored symbols in ABI check 2018-03-20 10:01:19 -05:00
wayland-egl.c protocol: Add wl_surface.offset 2021-10-28 12:39:39 +00:00
wayland-egl.h wayland-egl: move the wayland-egl{, -core}.h headers to egl/ 2018-02-09 17:31:06 +00:00