You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are many projects using it nowadays such neatvnc, weston and wayvnc. This means these projects rely on AML's ABI and so do distro maintainers to guarantee proper transitions when there is an ABI change. Currently, AML defines a fixed version: '0.0.0', in the library() section of meson.build. This in turn makes meson set the SONAME of the library as the major version of the version string which is always 0.
This complicates things for reverse-dependencies and distros, because one breaking change can be introduced in AML without bumping the SONAME and all of the sudden the reverse dependencies compiled against an older version of the library will stop working. On distros, we rely on the SONAME to not rebuilding every reverse-dependency when a new (backwards-compatible - therefore the same SONAME) of a library is available.
So, in the end I'd like to see AML managing the SONAME properly. Ideally, it would stick to the major version while it's backwards-compatible, and bump it when a backwards-incompatible change is introduced (removal of public functions, changes on public available structs, etc.). The patch below does this:
Hi, first of all, thanks for developing AML!
There are many projects using it nowadays such neatvnc, weston and wayvnc. This means these projects rely on AML's ABI and so do distro maintainers to guarantee proper transitions when there is an ABI change. Currently, AML defines a fixed
version: '0.0.0',
in thelibrary()
section ofmeson.build
. This in turn makes meson set the SONAME of the library as the major version of theversion
string which is always0
.This complicates things for reverse-dependencies and distros, because one breaking change can be introduced in AML without bumping the SONAME and all of the sudden the reverse dependencies compiled against an older version of the library will stop working. On distros, we rely on the SONAME to not rebuilding every reverse-dependency when a new (backwards-compatible - therefore the same SONAME) of a library is available.
So, in the end I'd like to see AML managing the SONAME properly. Ideally, it would stick to the major version while it's backwards-compatible, and bump it when a backwards-incompatible change is introduced (removal of public functions, changes on public available structs, etc.). The patch below does this:
Mind that it will only bump the SONAME when bumping AML's major version.
If instead you don't want to guarantee ABI compatibility between versions, you can bump the SONAME on every new version:
Cheers
The text was updated successfully, but these errors were encountered: